:root{--va-green: #01589b;--va-green-dark: #162b56;--va-green-light: #0693e3;--va-green-muted: #4a8fc4;--va-accent: #8ebcdf;--va-bg: #f0f4f8;--va-surface: #ffffff;--va-text: #162b56;--va-text-muted: #5a6f82;--va-border: #d8e2ea;--va-radius: 12px;--va-shadow: 0 2px 12px rgba(1, 88, 155, .08)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{overscroll-behavior-y:none;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--va-bg);color:var(--va-text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' stroke='%235a6f82' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:.75rem;padding-block:.5rem;padding-left:.75rem;padding-right:2.25rem;border:1px solid var(--va-border);border-radius:8px;color:var(--va-text);font:inherit;line-height:1.4;cursor:pointer}select:disabled{opacity:.65;cursor:not-allowed;background-color:#f4f7fa;color:var(--va-text-muted)}select:focus{outline:none;border-color:var(--va-green-light);box-shadow:0 0 0 3px #0693e326}.page{min-height:100%;display:flex;flex-direction:column}.page-header{background:var(--va-green);color:#fff;padding:1.25rem 2rem;padding-top:calc(1.25rem + env(safe-area-inset-top,0px));display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.page-header-brand{flex:1;min-width:0}.page-header-trailing{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:.5rem;flex-shrink:0}.user-identity-chip{display:flex;align-items:center;gap:.55rem;min-width:0;max-width:11rem;color:#fff;align-self:center}.user-identity-chip--compact{max-width:9.5rem}.user-identity-chip--avatar-only{max-width:none}.user-identity-avatar{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff29;border:1px solid rgba(255,255,255,.32);font-size:.75rem;font-weight:700;letter-spacing:.02em;line-height:1}.user-identity-text{min-width:0;display:flex;flex-direction:column;gap:.05rem}.user-identity-name{font-size:.85rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-identity-role{font-size:.68rem;opacity:.8;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header-brand .header-subtitle-meta{margin-top:.15rem}.page-header h1{margin:0;font-size:1.5rem;font-weight:600}.page-header p,.page-header .header-subtitle{margin:.25rem 0 0;opacity:.85;font-size:.95rem}.page-body{flex:1;padding:2rem;max-width:1200px;width:100%;margin:0 auto}.offline-banner,.review-banner{background:#e8f5e9;border:1px solid #a5d6a7;border-radius:8px;padding:.85rem 1rem;margin:0 0 1rem}.slip-photos{background:var(--va-surface);border:1px solid var(--va-border);border-radius:12px;padding:1rem 1.15rem;margin-bottom:1.25rem}.slip-photos label{display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0}.slip-photo-list{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;padding:0}.slip-photo-list img{width:140px;height:140px;object-fit:cover;border-radius:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:var(--va-radius);font-weight:600;transition:background .15s,transform .1s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--va-green);color:#fff}.btn-primary:hover{background:var(--va-green-light)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff;color:var(--va-green);border:1.5px solid var(--va-green)}.btn-secondary:hover{background:var(--va-bg)}.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}.btn-ghost:hover{background:#ffffff1a}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1.25rem}.form-card{background:var(--va-surface);border:1px solid var(--va-border);border-radius:var(--va-radius);padding:1.5rem;box-shadow:var(--va-shadow);transition:border-color .15s,transform .15s;display:flex;flex-direction:column;gap:.75rem}.form-card:hover{border-color:var(--va-green-muted);transform:translateY(-2px)}.form-card h2{margin:0;font-size:1.1rem;color:var(--va-green)}.form-card .short-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--va-text-muted)}.form-card p{margin:0;font-size:.9rem;color:var(--va-text-muted);line-height:1.5;flex:1}.status-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .6rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.status-badge.mapped{background:#e3f0fa;color:var(--va-green)}.status-badge.draft{background:#fef3e2;color:#9a6700}.status-badge.photo-req{background:#ffedd5;color:#9a3412}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--va-green) 0%,var(--va-green-dark) 100%);padding:2rem}.login-card{background:var(--va-surface);border-radius:calc(var(--va-radius) + 4px);padding:2.5rem 3rem;width:100%;max-width:420px;box-shadow:0 8px 32px #0003;text-align:center}.login-card h1{margin:0 0 .5rem;color:var(--va-green);font-size:1.75rem}.login-card .subtitle{margin:0 0 2rem;color:var(--va-text-muted)}.login-hint{margin:-1.5rem 0 1.5rem;font-size:.8rem;color:var(--va-text-muted)}.vivid-air-logo{display:block;width:min(220px,70vw);height:auto;margin:0 auto 1.25rem}.brand-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--va-bg)}.brand-loader--section{min-height:min(40vh,320px);padding:2rem 1rem}.brand-loader--compact{min-height:6rem;padding:1.25rem 1rem}.brand-loader__pulse{animation:brand-loader-pulse 1.5s ease-in-out infinite}.brand-loader__logo{display:block;width:min(100px,28vw);height:auto;margin:0}@keyframes brand-loader-pulse{0%,to{opacity:.45;transform:scale(.98)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.brand-loader__pulse{animation:none;opacity:.85;transform:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-header .vivid-air-logo{width:140px;margin:0 0 .5rem}.pin-display{display:flex;justify-content:center;gap:1rem;margin-bottom:2rem}.pin-digit{width:3.5rem;height:3.5rem;border:2px solid var(--va-border);border-radius:var(--va-radius);display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:600;color:var(--va-green);background:var(--va-bg)}.pin-digit.filled{border-color:var(--va-green);background:#e3f0fa}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.pin-key{height:3.5rem;border:1px solid var(--va-border);border-radius:var(--va-radius);background:var(--va-bg);font-size:1.25rem;font-weight:600;color:var(--va-text);transition:background .1s}.pin-key:hover{background:#e3f0fa}.pin-key.action{font-size:.9rem;color:var(--va-text-muted)}.placeholder-panel{background:var(--va-surface);border:1px dashed var(--va-border);border-radius:var(--va-radius);padding:3rem 2rem;text-align:center;color:var(--va-text-muted)}.placeholder-panel h2{margin:0 0 .5rem;color:var(--va-text)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--va-text-muted)}.empty-state h2{margin:0 0 .5rem;color:var(--va-text)}.page-header-compact{padding:.875rem 1.25rem}.page-header-compact h1{font-size:1.15rem}.page-header-compact p{font-size:.8rem}.header-draft{opacity:.9;font-style:italic}.page-body-flush{padding:0;max-width:none}.page-form{min-height:100dvh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}.page-form .page-header-compact{position:sticky;top:0;z-index:200;flex-shrink:0}.page-form .page-body-flush{flex:1;min-height:0;overflow:hidden}.mockup-frame{flex:1;min-height:0;height:100%;background:var(--va-bg)}.mockup-iframe{display:block;width:100%;height:100%;min-height:0;border:none;background:#fff}.header-actions{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;position:relative}.header-actions .btn-ghost,.header-actions .surface-switcher-link{min-height:44px}.nav-menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.45);border-radius:var(--va-radius);background:#ffffff14;color:#fff;flex-shrink:0}.nav-menu-toggle:hover{background:#ffffff29}.nav-menu-toggle-icon{display:flex;flex-direction:column;justify-content:center;gap:5px;width:20px}.nav-menu-toggle-icon span{display:block;height:2px;width:100%;background:currentColor;border-radius:1px;transition:transform .15s,opacity .15s}.header-actions--open .nav-menu-toggle-icon span:nth-child(1){transform:translateY(7px) rotate(45deg)}.header-actions--open .nav-menu-toggle-icon span:nth-child(2){opacity:0}.header-actions--open .nav-menu-toggle-icon span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.tablet-nav-panel{display:none}.header-actions--menu .tablet-nav-panel:not([hidden]){display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;top:calc(100% + .5rem);right:0;z-index:250;width:min(22rem,calc(100vw - 1.5rem));min-width:min(18rem,calc(100vw - 1.5rem));max-height:min(75vh,32rem);overflow-x:hidden;overflow-y:auto;padding:.35rem 0;background:var(--va-green-dark);border:1px solid rgba(255,255,255,.28);border-radius:var(--va-radius);box-shadow:0 12px 32px #00000059;color:#fff}.tablet-nav-list{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:0}.header-actions--menu .tablet-nav-panel .tablet-nav-item,.header-actions--menu .tablet-nav-panel .btn-ghost,.header-actions--menu .tablet-nav-panel .surface-switcher-link{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:flex-start;gap:.5rem;min-height:52px;margin:0;padding:.85rem 1.15rem;font-size:1rem;font-weight:600;line-height:1.25;text-align:left;text-decoration:none;color:#fff!important;background:transparent;border:none;border-radius:0;border-bottom:1px solid rgba(255,255,255,.12);opacity:1;white-space:normal}.header-actions--menu .tablet-nav-panel .tablet-nav-item:last-child,.header-actions--menu .tablet-nav-panel .btn-ghost:last-child,.header-actions--menu .tablet-nav-panel .surface-switcher:last-child .surface-switcher-link{border-bottom:none}.header-actions--menu .tablet-nav-panel .tablet-nav-item:hover,.header-actions--menu .tablet-nav-panel .tablet-nav-item:focus-visible,.header-actions--menu .tablet-nav-panel .btn-ghost:hover,.header-actions--menu .tablet-nav-panel .surface-switcher-link:hover{background:#ffffff1f;color:#fff!important}.header-actions--menu .tablet-nav-panel .surface-switcher{display:block;width:100%}.header-actions--menu .tablet-nav-panel .tablet-nav-item--disabled,.header-actions--menu .tablet-nav-panel .tablet-nav-item--disabled:hover{cursor:not-allowed;opacity:.45;background:transparent}.tablet-nav-item-hint{margin-left:auto;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;opacity:.8}.tablet-nav-identity{display:flex;flex-direction:column;gap:.15rem;padding:.65rem 1rem .75rem;margin-bottom:.15rem;border-bottom:1px solid rgba(255,255,255,.18);color:#fff}.tablet-nav-identity-name{font-size:.95rem;font-weight:650;line-height:1.25}.tablet-nav-identity-role{font-size:.75rem;opacity:.8;line-height:1.2}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;margin-left:.35rem;border-radius:999px;background:#fee2e2;color:#b42318;font-size:.7rem;font-weight:700}.flagged-list{display:flex;flex-direction:column;gap:1.25rem}.flagged-card{background:var(--va-surface);border:1px solid var(--va-border);border-left:4px solid #b42318;border-radius:var(--va-radius);padding:1.5rem;box-shadow:var(--va-shadow)}.flagged-card h2{margin:.5rem 0 .25rem;font-size:1.2rem;color:var(--va-green)}.flagged-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.flagged-form-type{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--va-text-muted)}.flagged-meta{margin:0;font-size:.9rem;color:var(--va-text-muted)}.flagged-notes{margin:1rem 0;padding:1rem;background:#fff8f0;border:1px solid #f5d9b8;border-radius:var(--va-radius)}.flagged-notes strong{display:block;margin-bottom:.35rem;font-size:.85rem;color:#9a6700}.flagged-notes p{margin:0;line-height:1.5;white-space:pre-wrap}.flagged-edit-btn{margin-top:.5rem}.status-badge.flagged{background:#fee2e2;color:#b42318}.success-banner{margin-bottom:1.5rem;padding:1rem 1.25rem;background:#dcfce7;border:1px solid #86efac;border-radius:var(--va-radius);color:#166534;font-weight:500}.muted-text{color:var(--va-text-muted)}.error-text{color:#b42318}@media(max-width:899px){.page-header{padding:1rem 1.25rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));gap:.75rem}.page-body{padding:1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom,0px))}.job-context-label{font-size:.85rem}}@media(max-width:639px){html,body{overflow-x:hidden}.page-header{padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));gap:.75rem}.page-header .vivid-air-logo{width:120px}.page-header .header-subtitle{font-size:.85rem}.page-header-trailing{gap:.4rem}.user-identity-avatar{width:2.25rem;height:2.25rem}.nav-menu-toggle{width:40px;height:40px}.page-body{padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px))}.form-grid{grid-template-columns:1fr;gap:1rem}.form-card{padding:1.25rem}.login-page{padding:1rem;align-items:flex-start;padding-top:calc(1.5rem + env(safe-area-inset-top,0px))}.login-card{padding:1.75rem 1.25rem;margin-top:.5rem}.login-card h1{font-size:1.5rem}.pin-digit{width:3rem;height:3rem;font-size:1.5rem}.pin-key{height:3.25rem;font-size:1.15rem}.empty-state{padding:2.5rem 1rem}.flagged-card{padding:1.25rem}.flagged-card-header{flex-direction:column;align-items:flex-start}.flagged-edit-btn{width:100%;justify-content:center}.success-banner{font-size:.9rem;padding:.875rem 1rem}.task-complete-overlay{padding:1rem;align-items:center}.task-complete-dialog{padding:1.5rem 1.25rem;max-height:min(92dvh,640px)}.task-complete-dialog h2{font-size:1.2rem}.task-complete-actions{flex-direction:column-reverse}.task-complete-submit,.task-complete-cancel{width:100%}.chip{min-height:44px}.job-select-actions{flex-direction:column}.job-select-actions .btn{width:100%;min-height:48px}}.surface-switcher-link{display:inline-flex;align-items:center;font-size:.85rem;font-weight:600;color:#fff;text-decoration:none;padding:.5rem .85rem;border:1px solid rgba(255,255,255,.4);border-radius:999px}.surface-switcher-link:hover{background:#ffffff26}.job-select section{margin-bottom:2rem}.job-blank-section{margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--va-border)}.job-blank-btn{min-height:44px}.job-blank-hint{margin:.5rem 0 0;font-size:.85rem;color:var(--va-text-muted)}.job-new-client-toggle{margin-top:.75rem;display:inline-block;background:none;border:none;color:var(--va-green);text-decoration:underline;font:inherit;cursor:pointer;padding:0}.job-new-client{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}.job-new-client input{flex:1;min-width:12rem;padding:.65rem .85rem;border:1px solid var(--va-border);border-radius:8px;font:inherit}.task-form-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding:0 .15rem .15rem}.task-form-link{font-size:.85rem;padding:.45rem .75rem}.task-card-main{display:block;width:100%;text-align:left;border:none;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer}.job-select h2{font-size:1rem;margin-bottom:.75rem;color:#64748b}.job-customer-search{display:block;margin-bottom:.5rem}.job-customer-search input{width:100%;box-sizing:border-box;min-height:48px;padding:.75rem .9rem;border:1px solid var(--va-border);border-radius:8px;font-size:1rem;background:#fff}.job-customer-search input:focus{outline:2px solid var(--va-green);outline-offset:1px}.job-customer-search-meta{margin:0 0 .75rem;font-size:.85rem}.job-customer-empty{margin:0 0 .75rem;font-size:.9rem}.chip-grid{display:flex;flex-wrap:wrap;gap:.5rem}.chip{padding:.7rem 1.15rem;border:1.5px solid var(--va-border);border-radius:10px;background:#fff;color:var(--va-text);cursor:pointer;font-size:.95rem;font-weight:600;box-shadow:0 1px 2px #01589b0f;transition:border-color .15s,background .15s,box-shadow .15s}.chip:hover{border-color:var(--va-green-light);box-shadow:0 2px 8px #01589b1f}.chip.active{border-color:var(--va-green);background:var(--va-green);color:#fff}.job-select-actions{display:flex;gap:.75rem;margin-top:1rem}.job-select-actions .btn-ghost{color:var(--va-green);background:#fff;border:1.5px solid var(--va-green)}.job-select-actions .btn-ghost:hover{background:var(--va-bg)}.equipment-history{margin-top:1.5rem;padding:1rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.equipment-history h3{font-size:.875rem;margin:0 0 .5rem;color:#64748b}.equipment-history ul{list-style:none;padding:0;margin:0;font-size:.875rem}.equipment-history li{padding:.25rem 0}.job-context{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .7rem;margin-top:.45rem;max-width:40rem}.job-context-label{min-width:0;font-size:.9rem;font-weight:600;line-height:1.35;color:#fff;opacity:.95;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-context-change{flex-shrink:0;font-size:.8rem;font-weight:650;line-height:1.35;color:#fff;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;opacity:.88;padding:.1rem 0;border-radius:2px}.job-context-change:hover{opacity:1}.job-context-change:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:3px}.fp-view-empty{text-align:center;padding:3rem 1rem;color:var(--va-text-muted)}.fp-view-empty p{margin:.35rem 0}.fp-view-legend{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.85rem}.fp-view-legend li{display:inline-flex;align-items:center;gap:.4rem}.fp-view-legend-chip{display:inline-block;padding:.15rem .6rem;border-radius:999px;color:#fff;font-weight:600;font-size:.75rem}.fp-view-hint{margin:0 0 1rem;font-size:.9rem;color:var(--va-text-muted)}.fp-view-legend-btn{display:inline-flex;align-items:center;gap:.4rem;border:none;background:none;padding:0;cursor:pointer;font:inherit}.fp-view-legend-btn:hover .fp-view-legend-chip{filter:brightness(1.08);box-shadow:0 2px 8px #00000026}.fp-view-legend-form{font-size:.8rem;font-weight:600;color:var(--va-green)}.fp-view-canvas{position:relative;max-width:100%;border:1px solid var(--va-border);border-radius:var(--va-radius);overflow:hidden;background:#f8fafc}.fp-view-canvas img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.fp-view-shape{position:absolute;border:2px solid;border-radius:6px;display:flex;align-items:flex-start;padding:.3rem .45rem;box-sizing:border-box;pointer-events:none}.fp-view-shape-label{font-size:.75rem;font-weight:700}.fp-view-marker{position:absolute;transform:translate(-50%,-50%);font-size:.8rem;font-weight:600;color:#fff;padding:.35rem .65rem;border-radius:999px;border:2px solid;white-space:nowrap;max-width:12rem;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 6px #00000026}.fp-view-marker--linked{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem .7rem;cursor:pointer;max-width:9rem;white-space:normal;text-align:center;transition:transform .12s,box-shadow .12s}.fp-view-marker--linked:hover{transform:translate(-50%,-50%) scale(1.05);box-shadow:0 4px 12px #00000038}.fp-view-marker-label{font-size:.8rem;font-weight:700;line-height:1.2}.fp-view-marker-form{font-size:.65rem;font-weight:600;opacity:.92;text-transform:uppercase;letter-spacing:.02em}.fp-view-legend-type{color:var(--va-text-muted);text-transform:capitalize}.fp-tasks-strip{margin:0 0 1.25rem;padding:1rem 1.1rem;background:#fff8f0;border:1px solid #f5d0a9;border-radius:var(--va-radius)}.fp-tasks-strip-heading{margin:0 0 .65rem;font-size:.95rem;font-weight:700;color:var(--va-text)}.fp-tasks-strip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.fp-tasks-strip-link{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .75rem;border-radius:8px;background:#fff;border:1px solid var(--va-border);text-decoration:none;color:inherit;transition:border-color .12s,box-shadow .12s}.fp-tasks-strip-link:hover{border-color:#d97706;box-shadow:0 2px 8px #d977061f}.fp-tasks-strip-title{font-weight:600;font-size:.9rem}.fp-tasks-strip-count{font-size:.8rem;font-weight:600;color:#b45309;white-space:nowrap}.fp-task-pin-wrap{position:absolute;z-index:2;transform:translate(-50%,-50%)}.fp-task-pin-wrap--open{z-index:5}.fp-task-pin{width:1.7rem;height:1.7rem;border-radius:999px;border:2px solid #fff;color:#fff;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #162b5647;padding:0;cursor:pointer}.fp-task-pin-card{position:absolute;left:50%;top:calc(100% + .45rem);transform:translate(-50%);width:min(13rem,70vw);padding:.7rem .75rem;background:#fff;border:1px solid var(--va-border);border-radius:10px;box-shadow:0 10px 28px #162b5629;display:flex;flex-direction:column;gap:.55rem}.fp-task-pin-card-head{display:flex;align-items:flex-start;gap:.45rem}.fp-task-pin-card-head strong{font-size:.88rem;color:var(--va-text);line-height:1.3}.fp-task-pin-card-num{flex-shrink:0;width:1.25rem;height:1.25rem;border-radius:999px;color:#fff;font-size:.68rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.task-complete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#162b5673;display:flex;align-items:center;justify-content:center;z-index:300;padding:1.5rem}.task-complete-dialog{background:var(--va-surface);border-radius:calc(var(--va-radius) + 4px);padding:2rem 2.25rem;width:100%;max-width:520px;max-height:min(90dvh,640px);overflow-y:auto;box-shadow:0 12px 40px #00000038;text-align:left}.task-complete-dialog h2{margin:0 0 .75rem;font-size:1.35rem;color:var(--va-green);line-height:1.3}.task-complete-description{margin:0 0 1.5rem;color:var(--va-text-muted);line-height:1.55;font-size:.95rem}.task-complete-photo-section{margin-bottom:1.75rem;padding:1.25rem 1.35rem;background:#e3f0fa;border:1px solid #b8d4ea;border-radius:var(--va-radius)}.task-complete-photo-hint{margin:0 0 1rem;font-size:.9rem;font-weight:600;color:var(--va-green)}.task-complete-photo-status{margin:0 0 1rem;font-size:.875rem;color:var(--va-text-muted)}.task-complete-photo-status--ready{color:#166534;font-weight:600}.task-complete-photo-btn{width:100%;min-height:48px;font-size:1rem}.task-complete-error{margin:0 0 1rem}.task-complete-actions{display:flex;gap:.75rem}.task-complete-cancel{color:var(--va-green);background:#fff;border:1.5px solid var(--va-green);min-height:48px;padding:.75rem 1.25rem}.task-complete-cancel:hover{background:var(--va-bg)}.task-complete-submit{flex:1;min-height:48px;font-size:1rem}.task-card--completed{opacity:1}.task-photo-missing-hint{margin:.5rem 0 0;font-size:.9rem;color:#b45309;font-weight:500}.task-completed-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.85rem}.task-photo-view-btn{width:100%;min-height:48px;font-size:1rem}.task-photo-update-btn{width:100%;min-height:48px;font-size:1rem;color:var(--va-green);background:#fff;border:1.5px solid var(--va-green)}.task-photo-update-btn:hover{background:var(--va-bg)}.task-photo-view-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#162b568c;display:flex;align-items:center;justify-content:center;z-index:350;padding:1rem}.task-photo-view-dialog{position:relative;width:100%;max-width:min(96vw,640px);max-height:92dvh;background:var(--va-surface);border-radius:calc(var(--va-radius) + 4px);padding:1rem;box-shadow:0 12px 40px #00000040;overflow:auto}.task-photo-view-close{position:sticky;top:0;float:right;z-index:1;margin-bottom:.5rem;min-height:44px;color:var(--va-green);background:#fff;border:1.5px solid var(--va-green)}.task-photo-view-img{display:block;width:100%;max-height:calc(92dvh - 5rem);object-fit:contain;border-radius:var(--va-radius)}
