:root{--ink: #1e2420;--ink-2: #2c332e;--paper: #f3f1ec;--card: #ffffff;--line: #e3dfd6;--line-2: #d4cfc3;--muted: #6b6f69;--faint: #9a9d97;--accent: #14551e;--accent-dark: #0d3a14;--accent-soft: #e2eee3;--ok: #2f7a4b;--bad: #b3261e;--warn-bg: #fff4dc;--radius: 12px;--shadow: 0 1px 2px rgba(30, 36, 32, .06), 0 2px 8px rgba(30, 36, 32, .05);--shadow-lg: 0 12px 40px rgba(30, 36, 32, .22);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}html{font-size:15px}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3,h4{margin:0;line-height:1.2;letter-spacing:-.01em}h1{font-size:1.75rem;font-weight:750}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:0}a{color:inherit}img{display:block}button,input,select,textarea{font:inherit;color:inherit}code{background:#0000000d;padding:1px 5px;border-radius:4px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:.85rem}.center{text-align:center}.ok{color:var(--ok);font-weight:600}.bad{color:var(--bad)}.spacer{flex:1}.grow{flex:1;min-width:0}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line{display:flex;align-items:center;gap:4px}.stack{display:flex;flex-direction:column;gap:14px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:24px;padding:calc(10px + var(--safe-t)) 24px 10px;background:var(--ink);color:#fff}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-text strong{font-size:1.02rem;letter-spacing:.01em}.brand-text small{font-size:.72rem;opacity:.6;text-transform:uppercase;letter-spacing:.08em}.topnav{display:flex;gap:4px;margin-left:12px}.topnav a{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;text-decoration:none;color:#ffffffb8;font-weight:550}.topnav a:hover{background:#ffffff14;color:#fff}.topnav a.active{background:#ffffff1f;color:#fff}.topbar-user{margin-left:auto;font-size:.85rem;opacity:.7}.status-strip{display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 16px;font-size:.85rem;font-weight:550;text-align:center}.status-strip.is-offline{background:#3a3f3b;color:#fff}.status-strip.is-syncing{background:var(--accent-soft);color:var(--accent-dark)}.main{flex:1}.page{max-width:1240px;margin:0 auto;padding:28px 24px 64px}.page.narrow{max-width:640px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head p{margin-top:4px}.bottomnav{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border-radius:10px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s,transform .05s}.btn:hover{background:#faf9f6;border-color:#c4beb0}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn-danger-ghost{color:var(--bad);border-color:#e7c3bf;background:transparent}.btn-danger-ghost:hover{background:#fdf1f0;border-color:var(--bad)}.btn-ghost-light{background:transparent;color:#fff;border-color:#ffffff40}.btn-lg{min-height:50px;padding:10px 22px;font-size:1.02rem}.btn-sm{min-height:32px;padding:4px 10px;font-size:.85rem;border-radius:8px}.btn-block{width:100%}.link-btn{background:none;border:0;padding:0;color:var(--accent-dark);font-weight:650;text-decoration:underline;cursor:pointer}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:0;background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{background:#0000000c;color:var(--ink)}.icon-btn.light{color:#fff}.icon-btn.light:hover{background:#ffffff1f}.icon-btn.small{width:30px;height:30px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.82rem;font-weight:650;color:var(--muted)}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--line-2);background:#fff;outline:none;font-size:16px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #14551e2e}.input-row{display:flex;gap:8px}.input-row input{flex:1}.error-note{background:#fdecea;color:#8c1d18;border:1px solid #f3c7c3;padding:10px 14px;border-radius:10px;font-size:.9rem;margin-bottom:14px}.stack .error-note{margin-bottom:0}.warn-note{background:var(--warn-bg);border:1px solid #f0d9a4;padding:10px 14px;border-radius:10px;font-size:.9rem;margin-bottom:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:16px}.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.chip-active{background:#e1f0e5;color:#22603a}.chip-on_hold{background:#fbefd2;color:#7d5a10}.chip-completed{background:#e6e7ea;color:#464b55}.chip-warranty{background:#e3ecf6;color:#2c4f78}.chip-admin{background:var(--accent-soft);color:var(--accent-dark)}.chip-member{background:#eceae4;color:#55594f}.toolbar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search{flex:1;min-width:240px;position:relative;display:flex;align-items:center}.search svg{position:absolute;left:13px;color:var(--faint);pointer-events:none}.search input.search-input{padding-left:42px}.segmented{display:flex;background:#e8e5dd;border-radius:11px;padding:3px;gap:2px}.segmented button{border:0;background:transparent;padding:8px 14px;border-radius:9px;font-weight:600;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:6px}.segmented button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}.count{font-size:.75rem;font-weight:700;background:#0000000f;padding:1px 7px;border-radius:999px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.project-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s}.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1e24201a}.project-card.skeleton{height:270px}.project-thumb{position:relative;aspect-ratio:16 / 10;background:#e9e6df}.project-thumb img{width:100%;height:100%;object-fit:cover}.project-thumb .chip{position:absolute;top:10px;left:10px;box-shadow:0 1px 4px #0002}.thumb-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#b9b3a6;background:repeating-linear-gradient(135deg,#ebe8e1 0,#ebe8e1 12px,#e5e1d9 12px,#e5e1d9 24px)}.project-info{padding:14px 16px;display:flex;flex-direction:column;gap:6px;flex:1}.project-title{display:flex;align-items:baseline;gap:8px;justify-content:space-between}.project-title h3{font-size:1.05rem}.job-no{font-size:.8rem;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.project-meta{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:8px;font-size:.88rem;font-weight:600;color:var(--ink-2)}.project-meta>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.last-photo{white-space:nowrap}.empty{text-align:center;padding:56px 20px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}.empty h3{color:var(--ink)}.back-link{display:inline-flex;align-items:center;gap:4px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.9rem;margin-bottom:12px}.back-link:hover{color:var(--ink)}.project-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;color:var(--muted);font-size:.92rem}.facts a{display:inline-flex;align-items:center;gap:4px;color:var(--accent-dark);text-decoration:none;font-weight:550}.facts a:hover{text-decoration:underline}.notes{margin-top:10px;max-width:760px;white-space:pre-wrap;font-size:.93rem;color:var(--ink-2)}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:20px}.tabs button{display:flex;align-items:center;gap:8px;padding:12px 16px;margin-bottom:-2px;border:0;border-bottom:3px solid transparent;background:none;font-weight:650;color:var(--muted);cursor:pointer}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.tab-actions{display:flex;gap:10px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.photo-day{margin-bottom:26px}.photo-day h4,.doc-section h4,.section-label{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:10px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.photo-tile{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:0;padding:0;background:#e5e1d9;cursor:pointer}.photo-tile img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.photo-tile:hover img{transform:scale(1.03)}.photo-cap{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 6px;font-size:.75rem;color:#fff;text-align:left;background:linear-gradient(transparent,#000a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-tile.pending{cursor:default}.photo-tile.pending img{opacity:.55;filter:saturate(.6)}.pending-label{position:absolute;left:6px;bottom:6px;display:flex;align-items:center;gap:6px;background:#1e2420d9;color:#fff;font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:999px}.photo-tile.failed .pending-label{background:#8a5a00e6}.pending-discard{position:absolute;top:6px;right:6px;border:0;border-radius:6px;font-size:.72rem;padding:3px 7px;background:#fffe;cursor:pointer}.fab{position:fixed;right:18px;bottom:calc(84px + var(--safe-b));z-index:25;width:64px;height:64px;border-radius:50%;border:0;background:var(--accent);color:#fff;box-shadow:0 6px 20px #14551e66;cursor:pointer;display:grid;place-items:center}.doc-section{margin-bottom:26px}.doc-list{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.doc-row{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border-bottom:1px solid var(--line);min-height:64px}.doc-row:last-child{border-bottom:0}.doc-row.skeleton{border-radius:0}.doc-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:8px;border-radius:8px;text-decoration:none}.doc-main:hover{background:#f7f5f0}.doc-icon{width:40px;height:40px;flex:none;border-radius:9px;display:grid;place-items:center;background:#ecebe6;color:var(--muted)}.doc-icon.pdf{background:#fbe4dc;color:#b3401e}.doc-text{display:flex;flex-direction:column;min-width:0}.doc-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-actions{display:flex;gap:2px}.dropzone{border:2px dashed var(--line-2);border-radius:var(--radius);padding:26px;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);background:#faf9f6}.dropzone strong{color:var(--ink)}.dropzone.drag,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.file-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;max-height:200px;overflow:auto}.file-list li{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);font-size:.9rem}.file-list li:last-child{border-bottom:0}.team-list{padding:0;overflow:hidden}.team-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.team-row:last-child{border-bottom:0}.team-row.inactive{opacity:.6}.avatar{width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.team-main{display:flex;flex-direction:column;flex:1;min-width:160px}.team-actions{display:flex;gap:6px;flex-wrap:wrap}.credentials{background:#f7f5f0;border:1px solid var(--line);border-radius:10px;padding:14px;display:grid;gap:10px}.credentials div{display:flex;flex-direction:column}.credentials strong{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05rem;-webkit-user-select:all;user-select:all}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1e2420a6;display:grid;place-items:center;padding:20px;animation:fade .12s}.modal{width:100%;max-width:480px;max-height:calc(100vh - 40px);overflow:auto;background:var(--card);border-radius:16px;box-shadow:var(--shadow-lg);animation:pop .15s}.modal-wide{max-width:640px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 4px 22px}.modal-body{padding:12px 22px 22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span-2{grid-column:span 2}.form-actions{display:flex;align-items:center;gap:10px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:translateY(8px) scale(.98);opacity:0}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0d0f0e;color:#fff;display:flex;flex-direction:column}.lb-top{display:flex;align-items:center;justify-content:space-between;padding:calc(8px + var(--safe-t)) 12px 8px 18px}.lb-count{font-size:.9rem;opacity:.75;font-variant-numeric:tabular-nums}.lb-actions{display:flex;gap:4px}.lb-stage{flex:1;min-height:0;position:relative;display:grid;place-items:center;padding:0 12px;overflow:hidden}.lb-stage img{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;max-width:calc(100% - 24px);max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.lb-nav{z-index:2;position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:#ffffff1a;color:#fff;cursor:pointer;display:grid;place-items:center}.lb-nav:hover{background:#fff3}.lb-nav.left{left:16px}.lb-nav.right{right:16px}.lb-info{padding:12px 18px calc(16px + var(--safe-b));display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center}.lb-caption{display:flex;align-items:center;gap:6px;font-weight:550;min-height:30px}.lb-meta{font-size:.82rem;opacity:.65}.lb-edit{display:flex;gap:8px;width:100%;max-width:560px}.lb-edit input{flex:1}.login-page{position:relative;min-height:100vh;min-height:100dvh;display:grid;align-items:center;justify-items:start;padding:40px 6vw;overflow:hidden;background:var(--ink)}.login-photo{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/signin-sm.jpg) center / cover no-repeat;background-image:image-set(url(/signin-sm.jpg) 1x,url(/signin.jpg) 2x);animation:login-zoom 18s ease-out both}@media (min-width: 900px){.login-photo{background-image:url(/signin.jpg);background-position:62% 40%}}.login-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#141a169e,#141a1640 42%,#141a1600 70%),linear-gradient(0deg,#141a168c,#141a1600 35%)}@keyframes login-zoom{0%{transform:scale(1.06)}to{transform:scale(1)}}.login-mark{display:none}.login-tag{position:absolute;z-index:1;right:28px;bottom:22px;margin:0;color:#fff;opacity:.9;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.5)}.login-card{position:relative;z-index:1;width:100%;max-width:400px;background:#fffffff0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:20px;padding:30px;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 60px #00000059;animation:login-rise .5s ease-out both}@keyframes login-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.login-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:10px;text-align:center}.login-brand h1{font-size:1.5rem}.login-brand p{color:var(--muted);font-size:.88rem;margin-top:2px}@media (max-width: 640px){.login-page{padding:0;align-items:end;justify-items:stretch}.login-photo{background-position:64% 30%;bottom:40%}.login-photo:after{background:linear-gradient(0deg,#141a16bf,#141a1600 45%),linear-gradient(180deg,#141a1673,#141a1600 30%)}.login-mark{display:block;position:absolute;z-index:1;top:max(22px,env(safe-area-inset-top));left:0;right:0;text-align:center;filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}.login-mark img{margin:0 auto}.login-tag{display:none}.login-card{max-width:none;border-radius:22px 22px 0 0;background:#fff;padding:24px 22px calc(22px + env(safe-area-inset-bottom));margin-top:46vh;box-shadow:0 -10px 40px #00000040}.login-brand{display:none}.login-card:before{content:"Sign in";font-weight:800;font-size:1.35rem;color:var(--ink)}}@media (prefers-reduced-motion: reduce){.login-photo,.login-card{animation:none}}.boot{min-height:100vh;display:grid;place-items:center}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid #0000001a;border-top-color:var(--accent);animation:spin .8s linear infinite}.lightbox .spinner{border-color:#ffffff26;border-top-color:#fff}.spinner.sm{width:13px;height:13px;border-width:2px;display:inline-block;vertical-align:middle;border-color:#ffffff4d;border-top-color:#fff}.tab-actions .spinner.sm{border-color:#0000001a;border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#ebe8e1 25%,#f4f2ed,#ebe8e1 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:8px}.skeleton.fill{position:absolute;top:0;right:0;bottom:0;left:0}@keyframes shimmer{to{background-position:-200% 0}}.touch-only{display:none!important}@media (pointer: coarse){.touch-only{display:inline-flex!important}.fab.touch-only{display:grid!important;place-items:center;padding:0;line-height:0}.fab.touch-only[hidden],.desktop-only{display:none!important}}@media (max-width: 720px){.topbar{padding:calc(8px + var(--safe-t)) 14px 8px}.topnav,.topbar-user,.brand-text small{display:none}.page{padding:18px 14px calc(110px + var(--safe-b))}h1{font-size:1.45rem}.page-head{align-items:center;margin-bottom:14px}.toolbar{flex-direction:column}.segmented{width:100%}.segmented button{flex:1;justify-content:center;padding:9px 6px}.project-grid{grid-template-columns:1fr;gap:12px}.project-card{flex-direction:row}.project-thumb{aspect-ratio:auto;width:112px;flex:none;min-height:112px}.project-thumb .chip{top:auto;bottom:6px;left:6px;font-size:.68rem}.project-info{padding:12px 14px}.last-photo{display:none!important}.project-title{flex-direction:column;gap:2px}.project-head{flex-direction:column;gap:12px}.project-head>.btn{align-self:flex-start}.tabs{position:sticky;top:calc(54px + var(--safe-t));background:var(--paper);z-index:20}.tabs button{flex:1;justify-content:center;padding:12px 6px}.tab-actions .btn-lg{flex:1}.photo-grid{grid-template-columns:repeat(3,1fr);gap:3px}.photo-tile{border-radius:3px}.doc-row{padding-right:4px}.doc-actions .icon-btn:first-child{display:none}.team-actions{width:100%}.modal-backdrop{align-items:end;padding:0}.modal{max-width:none;border-radius:18px 18px 0 0;max-height:92vh;padding-bottom:var(--safe-b)}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.lb-nav{display:none}.lb-stage{padding:0}.bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 8px calc(6px + var(--safe-b))}.bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:.72rem;font-weight:650;text-decoration:none;color:var(--muted);border-radius:10px}.bottomnav a.active{color:var(--accent)}}.badge{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#d93a2b;color:#fff;font-size:.7rem;font-weight:800;line-height:1}.topnav a .badge{margin-left:2px}.ml{margin-left:6px}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.check{display:flex;align-items:center;gap:10px;font-size:.93rem;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--accent);flex:none}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.strong-link{font-weight:700;text-decoration:none}.strong-link:hover{text-decoration:underline}.division-tabs{display:flex;align-items:center;gap:14px;margin:-8px 0 22px;padding-bottom:12px;border-bottom:1px solid var(--line)}.division-label{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-dark);background:var(--accent-soft);padding:4px 9px;border-radius:6px}.division-tabs nav{display:flex;gap:4px;overflow-x:auto;min-width:0;scrollbar-width:none}.division-tabs nav::-webkit-scrollbar{display:none}.division-tabs a{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:8px;text-decoration:none;font-weight:600;color:var(--muted);white-space:nowrap}.division-tabs a:hover{background:#0000000a;color:var(--ink)}.division-tabs a.active{background:var(--ink);color:#fff}.chip-vacant{background:#fde8e4;color:#9b2c1c}.chip-emergency{background:#d93a2b;color:#fff}.chip-urgent{background:#fbe0c4;color:#8a4410}.wo-new{background:#dce9fb;color:#1d4f91}.wo-scheduled{background:#ece3fb;color:#5b3a9a}.wo-in_progress{background:#fbefd2;color:#7d5a10}.wo-waiting{background:#eceae4;color:#55594f}.wo-completed{background:#e1f0e5;color:#22603a}.wo-cancelled{background:#e6e7ea;color:#6a6e76;text-decoration:line-through}.owner-select{width:auto!important;min-width:170px}.scroll-x{overflow-x:auto;max-width:100%}.scroll-x button{white-space:nowrap;flex:none!important}.table-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.data-table{width:100%;border-collapse:collapse;font-size:.92rem}.data-table th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:11px 14px;background:#faf9f6;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:#faf8f4}.data-table tbody tr:last-child td{border-bottom:0}.data-table tr.archived{opacity:.55}.data-table .num{text-align:right;white-space:nowrap}.data-table td[data-label=Phone]{white-space:nowrap}.data-table a{color:inherit}.wo-count{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--accent-dark)}.archived-toggle{margin-top:14px;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.detail-main,.detail-side{display:flex;flex-direction:column}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.card-head h3{display:flex;align-items:center;gap:8px}.card h3+*{margin-top:0}.card>h3{margin-bottom:12px}.vacant-box{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:6px 0}.tenant-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:14px}.tenant-card{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fcfbf8;min-width:0}.contact-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 18px;margin:0}.kv.one-col{grid-template-columns:1fr;margin-top:14px;gap:8px}.kv dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}.kv dd{margin:2px 0 0;font-weight:600}.past-leases{display:flex;flex-direction:column}.past-lease{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line)}.past-lease:last-child{border-bottom:0}.qr-card{align-items:center;display:flex;flex-direction:column;gap:8px}.qr-card .section-label{align-self:flex-start}.qr-img{width:190px;height:190px;image-rendering:pixelated}.qr-placeholder{width:190px;height:190px;background:#eee;border-radius:8px}.qr-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.tenant-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.tenant-row{display:grid;grid-template-columns:1.3fr 1fr 1.3fr auto;gap:8px;align-items:center}.wo-list{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card .wo-list{box-shadow:none;margin-bottom:8px}.wo-row{display:flex;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);text-decoration:none;border-left:4px solid transparent}.wo-row:last-child{border-bottom:0}.wo-row:hover{background:#faf8f4}.wo-row.is-new{background:#f5f9ff;border-left-color:#3f7fd6}.wo-row.is-new.emergency{background:#fff3f1;border-left-color:#d93a2b}.wo-num{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums;min-width:48px}.wo-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.wo-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.wo-addr{font-size:.88rem;font-weight:600;color:var(--ink-2)}.wo-desc{font-size:.88rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.wo-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;flex:none}.wo-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:14px 16px}.inline-field{display:flex;flex-direction:column;gap:4px;font-size:.75rem;font-weight:650;color:var(--muted)}.inline-field select,.inline-field input{min-height:40px!important;padding:6px 10px!important;min-width:170px}.wo-description{white-space:pre-wrap;font-size:1.02rem;line-height:1.5}.resolution{margin-top:12px;background:#eef6f0;border:1px solid #cfe5d6;padding:10px 14px;border-radius:10px;font-size:.92rem}.wo-photos{margin-top:14px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.add-photo{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);background:#f7f5f0!important;border:2px dashed var(--line-2)!important;font-weight:600;font-size:.82rem}.timeline{list-style:none;margin:0 0 14px;padding:0 0 0 18px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:12px}.timeline li{position:relative}.timeline li:before{content:"";position:absolute;left:-24px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--line-2);border:2px solid var(--card)}.timeline li.note:before{background:var(--accent)}.timeline li.event .tl-body{color:var(--muted);font-size:.9rem}.timeline li.note .tl-body{background:#f7f5f0;padding:8px 12px;border-radius:8px;white-space:pre-wrap}.tl-meta{font-size:.75rem;color:var(--faint);margin-top:3px}.note-form{display:flex;gap:8px}.note-form input{flex:1}.owner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.owner-card .card-head{margin-bottom:4px}.owner-stats{display:flex;gap:16px;margin-top:12px;font-size:.88rem;color:var(--muted);flex-wrap:wrap}.owner-stats strong{color:var(--ink);font-size:1.05rem}.toasts{position:fixed;right:18px;bottom:18px;z-index:70;display:flex;flex-direction:column;gap:8px;max-width:360px}.toast{display:flex;align-items:center;background:var(--ink);color:#fff;border-radius:12px;box-shadow:var(--shadow-lg);animation:pop .2s;overflow:hidden}.toast.emergency{background:#b8261a}.toast-main{display:flex;gap:10px;align-items:center;flex:1;text-align:left;padding:12px 6px 12px 14px;background:none;border:0;color:inherit;cursor:pointer}.toast-main>span{display:flex;flex-direction:column;font-size:.85rem}.toast .icon-btn{color:#fff9}.public-page{min-height:100vh;background:var(--paper)}.public-head{display:flex;align-items:center;gap:12px;padding:calc(14px + var(--safe-t)) 18px 14px;background:var(--ink);color:#fff}.public-head div{display:flex;flex-direction:column;line-height:1.15}.public-head .brand-tag{display:block!important;max-width:none}.public-head span{font-size:.8rem;opacity:.7}.public-main{max-width:560px;margin:0 auto;padding:18px 14px 40px}.public-card{background:var(--card);border-radius:16px;padding:22px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px}.public-card h1{font-size:1.4rem}.public-address{display:flex;flex-direction:column;gap:2px}.public-card fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.public-card legend{font-weight:750;font-size:1.02rem;margin-bottom:10px;padding:0}.emergency-box{display:flex;gap:10px;align-items:flex-start;background:#fff1ee;border:1px solid #f3cbc3;color:#7d1f14;padding:12px 14px;border-radius:12px;font-size:.9rem;line-height:1.45}.emergency-box svg{flex:none;margin-top:1px}.emergency-box a{font-weight:800;color:#b8261a}.chip-choices{display:flex;flex-wrap:wrap;gap:8px}.chip-choices button,.yn button{border:1.5px solid var(--line-2);background:#fff;border-radius:999px;padding:10px 14px;font-weight:600;cursor:pointer;font-size:.95rem}.chip-choices button.on,.yn button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}.yn{display:flex;gap:8px;flex-wrap:wrap}.urgency-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.urgency-choices button{display:flex;flex-direction:column;gap:3px;text-align:left;padding:12px;border-radius:12px;border:1.5px solid var(--line-2);background:#fff;cursor:pointer}.urgency-choices button span{font-size:.78rem;color:var(--muted)}.urgency-choices button.on{border-color:var(--accent);background:var(--accent-soft)}.urgency-choices button.emergency.on{border-color:#d93a2b;background:#fff1ee}.public-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.public-photo{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#eee}.public-photo img{width:100%;height:100%;object-fit:cover}.public-photo>button{position:absolute;top:5px;right:5px;width:28px;height:28px;border-radius:50%;border:0;background:#000a;color:#fff;display:grid;place-items:center;cursor:pointer}.public-photo.add{border:2px dashed var(--line-2);background:#faf9f6;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:600;font-size:.85rem;cursor:pointer}.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}.done-card{text-align:center;align-items:center}.done-icon{width:72px;height:72px;border-radius:50%;background:#e1f0e5;color:var(--ok);display:grid;place-items:center}.done-card .emergency-box{text-align:left}.qr-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;max-width:1240px;margin:0 auto;padding:0 24px 60px}.qr-sign{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;break-inside:avoid}.qs-head{display:flex;flex-direction:column;align-items:center;gap:6px;align-self:stretch;justify-content:center;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:4px}.qs-head div{display:flex;flex-direction:column;text-align:left;line-height:1.15}.qs-head strong{font-size:1.15rem}.qs-head span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.qr-sign h2{font-size:1.7rem;font-weight:800}.qs-sub{color:var(--ink-2)}.qs-qr{width:230px;height:230px;image-rendering:pixelated}.qs-addr{font-weight:700;font-size:1.02rem}.qs-emergency{font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;align-self:stretch}.pick-list{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;margin-bottom:18px}.pick-list summary{cursor:pointer;font-weight:650}.pick-actions{display:flex;gap:14px;margin:10px 0}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 14px}@media print{@page{size:letter;margin:.4in}body{background:#fff}.topbar,.bottomnav,.status-strip,.no-print,.toasts,.fab{display:none!important}.qr-sheet{display:block;padding:0;max-width:none}.qr-sign{height:4.85in;border:1.5px dashed #999;border-radius:0;margin:0 0 .1in;padding:.25in;justify-content:center;page-break-inside:avoid}.qr-sign:nth-child(2n){page-break-after:always}.qs-qr{width:2.5in;height:2.5in}}@media (max-width: 960px){.detail-grid{grid-template-columns:1fr}}@media (max-width: 720px){.division-tabs{margin:-4px -14px 16px;padding:0 14px 10px;gap:8px}.division-label{display:none}.head-actions .btn{padding:8px 12px}.owner-select{width:100%!important}.bottomnav a{position:relative}.bn-icon{position:relative;display:inline-flex}.bn-icon .badge{position:absolute;top:-6px;right:-12px;min-width:17px;height:17px;font-size:.65rem}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{padding:12px 14px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.data-table td{padding:0;border:0}.data-table td[data-label=Property]{grid-column:1 / -1;font-size:1.02rem}.data-table td[data-label=Owner],.data-table td[data-label=Lease]{grid-column:1 / -1}.data-table td[data-label=Owner]{font-size:.82rem;color:var(--muted)}.data-table td.num{text-align:left}.data-table td[data-label="Work orders"] .faint,.data-table td[data-label=Rent] .faint{display:none}.tenant-row{grid-template-columns:1fr 1fr auto}.tenant-row input:first-child{grid-column:1 / -1}.wo-row{flex-wrap:wrap;gap:4px 10px;padding:12px 14px}.wo-num{min-width:0}.wo-side{flex-direction:row;align-items:center;width:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px}.wo-actions{padding:12px}.wo-actions .btn{flex:1}.wo-actions .spacer{display:none}.inline-field{flex:1;min-width:140px}.inline-field select,.inline-field input{min-width:0;width:100%}.toasts{left:12px;right:12px;bottom:calc(76px + var(--safe-b));max-width:none}.urgency-choices{grid-template-columns:1fr}.qr-sheet{padding:0 14px 100px;grid-template-columns:1fr}}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-dark)}.ink{color:var(--ink)}.schedule-card{padding:20px 22px}.schedule-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.schedule-head h2{font-size:1.45rem;margin:2px 0 4px}.schedule-note{margin-top:12px;background:var(--warn-bg);border:1px solid #f0d9a4;padding:10px 14px;border-radius:10px;white-space:pre-wrap;font-weight:550}.pdf-preview{display:block;width:100%;height:72vh;min-height:520px;border:1px solid var(--line);border-radius:10px;margin-top:16px;background:#eceae4}.schedule-missing{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-style:dashed;color:var(--muted)}.schedule-missing>div{flex:1;min-width:200px}.schedule-missing h3{color:var(--ink)}.sched-week{border-bottom:1px solid var(--line)}.sched-week:last-child{border-bottom:0}.sched-week .doc-row{border-bottom:0}.sched-week .doc-row.older{min-height:48px;padding-left:40px;opacity:.7}.sched-week .doc-row.older .doc-icon{width:30px;height:30px}.sched-week .doc-row.older strong{font-weight:550;font-size:.9rem}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}.stat-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}.stat strong{font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-bottom:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.pipe-step{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:10px 14px;border:0;border-right:1px solid var(--line);background:transparent;cursor:pointer;text-align:left;position:relative}.pipe-step:last-child{border-right:0}.pipe-step:hover{background:#faf8f4}.pipe-step.on{background:var(--accent-soft);box-shadow:inset 0 -3px 0 var(--accent)}.pipe-label{font-size:.74rem;font-weight:700;color:var(--muted);white-space:nowrap}.pipe-step strong{font-size:1.3rem;font-variant-numeric:tabular-nums}.pipe-val{font-size:.82rem;color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}.money{font-variant-numeric:tabular-nums;font-weight:650}.due{color:var(--bad);font-weight:700}.warn-note a{color:var(--accent-dark);font-weight:650}.stage-new{background:#dce9fb;color:#1d4f91}.stage-contacted{background:#e3effb;color:#2b5d8f}.stage-meeting{background:#ece3fb;color:#5b3a9a}.stage-estimating{background:#fbefd2;color:#7d5a10}.stage-proposal{background:#fbe0c4;color:#8a4410}.stage-won{background:#d5ecdc;color:#1c5a33}.stage-lost{background:#e6e7ea;color:#6a6e76}.stage-stepper{display:flex;gap:0;margin-bottom:18px;overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;box-shadow:var(--shadow)}.stage-stepper button{flex:1;border:0;background:transparent;padding:10px 12px;border-radius:9px;font-weight:650;color:var(--muted);cursor:pointer;white-space:nowrap;font-size:.88rem}.stage-stepper button:hover{background:#0000000a;color:var(--ink)}.stage-stepper button.on{background:var(--ink);color:#fff}.stage-stepper button.stage-btn-won.on{background:var(--ok)}.stage-stepper button.stage-btn-lost.on{background:#6a6e76}.stage-stepper button.stage-btn-won{margin-left:10px}.kv.big dd{font-size:1.15rem}.inline-date{min-height:34px!important;padding:4px 8px!important;width:auto!important;font-size:.95rem!important}.resolution.lost{background:#f1f1f2;border-color:#dcdde0}.prospects-toggle{padding:3px 8px;border:1px solid var(--line);border-radius:999px;gap:6px!important}.prospects-toggle input{width:15px;height:15px}.team-link{display:flex;flex-direction:column;gap:2px;text-decoration:none}@media (max-width: 1240px){.topbar-user{display:none}.topnav{margin-left:0}.topnav a{padding:8px 10px}}@media (max-width: 1080px){.topnav a span:not(.badge){display:none}.topnav a{padding:9px 12px}}@media (max-width: 720px){.stat-row{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:10px 12px}.stat strong{font-size:1.3rem}.pipeline{grid-template-columns:repeat(5,minmax(110px,1fr));overflow-x:auto}.schedule-head .head-actions{width:100%}.schedule-head .head-actions .btn{flex:1}.schedule-head h2{font-size:1.25rem}.data-table td[data-label=Location],.data-table td[data-label="Est. contract"],.data-table td[data-label="Est. start"],.data-table td[data-label=Stage],.data-table td[data-label=Follow-up],.data-table td[data-label="Handled by"]{grid-column:auto}.data-table td[data-label=Lead]{grid-column:1 / -1;font-size:1.02rem}.data-table td.money{font-size:1.05rem}.data-table td[data-label=Follow-up] .faint,.data-table td[data-label="Handled by"] .faint{display:none}.stage-stepper button{flex:none}}.sched-week .doc-text strong{white-space:normal}.topnav.utility{margin-left:auto}.topnav.utility a{color:#fff9;font-weight:550}.topbar-user{display:none}.topnav:not(.utility) a{font-size:1.02rem}@media (max-width: 1080px){.topnav a span:not(.badge){display:inline}.topnav.utility a span:not(.badge){display:none}}@media (max-width: 860px){.brand-text small{display:none}.topnav a{padding:8px 10px}}.whats-new{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}.wn-card{margin-bottom:0;display:flex;flex-direction:column;gap:6px;padding:16px 18px}.wn-head{display:flex;align-items:center;gap:8px;color:var(--muted)}.wn-head h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.wn-main{font-size:1.15rem;font-weight:750}.wn-alert{color:#c0392b}.wn-note{background:var(--warn-bg);border-radius:8px;padding:6px 10px;font-size:.86rem}.wn-actions{display:flex;gap:6px;margin-top:auto;padding-top:6px;flex-wrap:wrap}.wn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.wn-list li a{display:flex;flex-direction:column;gap:1px;padding:7px 0;border-bottom:1px solid var(--line);text-decoration:none}.wn-list li:last-child a{border-bottom:0}.wn-list li a:hover strong{text-decoration:underline}.wn-list strong{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wn-list .chip{margin-left:4px;vertical-align:1px}.feed-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.feed-head h2{display:flex;align-items:center;gap:8px;font-size:1.3rem}.feed-day{margin-bottom:26px}.feed-day-label{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--line)}.feed-project{margin-bottom:16px}.feed-project-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.feed-project-head .strong-link{font-size:1.02rem}.feed-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.more-tile{display:grid!important;place-items:center;background:#e8e5dd!important;color:var(--ink-2);font-weight:750;text-decoration:none;font-size:1.05rem}.more-tile:hover{background:#dedad0!important}.lb-project{color:#fff;font-weight:700}@media (max-width: 960px){.whats-new{grid-template-columns:1fr 1fr}}@media (max-width: 720px){.whats-new{grid-template-columns:1fr;gap:10px;margin-bottom:20px}.wn-card{padding:14px}.feed-grid{grid-template-columns:repeat(3,1fr);gap:3px}.bottomnav a{font-size:.66rem}}.wn-title{display:flex;align-items:center;gap:6px;min-width:0}.wn-title strong{flex:0 1 auto}.wn-list .chip{margin-left:0;flex:none}@media (max-width: 720px){.whats-new{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -14px 18px;padding:2px 14px 6px;scrollbar-width:none}.whats-new::-webkit-scrollbar{display:none}.wn-card{flex:0 0 82%;scroll-snap-align:start;gap:4px}.wn-main{font-size:1.05rem}.wn-list li:nth-child(n+3){display:none}.wn-list li a{padding:5px 0}.wn-note{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.page-head p{font-size:.9rem}}@media (max-width: 720px){.wn-note{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.jobs-week{margin-bottom:28px}.jobs-week .feed-head{margin-bottom:2px;align-items:center;flex-wrap:wrap;gap:10px}.jobs-sub{margin-bottom:10px}.small-seg button{padding:6px 12px;font-size:.88rem}.wt-card{padding:6px 18px}.wt-none{border-style:dashed}.wt-jobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:0 28px}.wt-job{padding:12px 0 10px;border-bottom:1px solid var(--line);break-inside:avoid}.wt-job-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.wt-job-head .strong-link,.wt-job-head>strong{font-size:1.02rem}.wt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.wt-row{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:5px 6px;border-radius:6px;align-items:baseline}.wt-row.today{background:var(--accent-soft)}.wt-row.today .wt-when{color:var(--accent-dark);font-weight:800}.wt-when{font-size:.82rem;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.wt-main{display:flex;flex-direction:column;min-width:0}.wt-name{font-weight:600;font-size:.93rem}.wt-who{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.8rem;color:var(--muted)}.who.crew{color:var(--accent-dark);font-weight:700}.who.crew:before{content:"● ";font-size:.6rem;vertical-align:1px}.wt-note{font-style:italic}.wt-empty{padding:14px 0}.project-sched{padding:12px 18px}.sched-toggle{width:100%;background:none;border:0;padding:0;cursor:pointer;text-align:left;margin-bottom:4px}.reading{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:600}.reading .spinner.sm{border-color:#0000001a;border-top-color:var(--accent)}.read-existing{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;background:#f7f5f0;border-radius:10px;padding:10px 12px}.sr{display:flex;flex-direction:column;gap:8px}.sr-summary{display:flex;flex-direction:column;gap:2px;background:#eef6f0;border:1px solid #cfe5d6;border-radius:10px;padding:10px 14px}.sr-jobs{border:1px solid var(--line);border-radius:10px;max-height:44vh;overflow:auto}.sr-job{border-bottom:1px solid var(--line);padding:8px 12px}.sr-job:last-child{border-bottom:0}.sr-job-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sr-toggle{flex:1;min-width:180px;display:flex;flex-direction:column;align-items:flex-start;background:none;border:0;padding:2px 0;cursor:pointer;text-align:left}.sr-match{display:flex;gap:6px;align-items:center}.sr-match select{min-height:36px!important;padding:4px 8px!important;width:240px!important;font-size:.9rem!important}.sr-tasks{list-style:none;margin:6px 0 2px;padding:0;font-size:.85rem;display:flex;flex-direction:column;gap:3px}.sr-tasks li{display:grid;grid-template-columns:80px 1fr 1fr;gap:8px}@media (max-width: 720px){.wt-card{padding:4px 12px}.wt-jobs{grid-template-columns:1fr}.wt-row{grid-template-columns:74px 1fr;gap:8px;padding:5px 4px}.jobs-week .head-actions{width:100%;justify-content:space-between}.sr-match{width:100%}.sr-match select{width:100%!important;flex:1}.sr-tasks li{grid-template-columns:64px 1fr}.sr-tasks li span:last-child{grid-column:2}}.jobs-week .head-actions .btn{white-space:nowrap}.jobs-sub a{color:var(--accent-dark)}@media (max-width: 720px){.jobs-week .head-actions{gap:8px}.jobs-week .head-actions .btn{flex:1}.jobs-week .head-actions label.check{width:100%}}.ps-sub{margin-bottom:8px}.ps-sub a{color:var(--accent-dark);font-weight:600;text-decoration:none}.ps-week{margin-bottom:10px}.ps-week .section-label{margin:8px 0 4px}@media (max-width: 720px){.page-head{flex-wrap:wrap}.page-head>div{flex:1 1 220px}.page-head>.btn-lg{width:100%}}.logo{display:block;flex:none;-webkit-user-select:none;user-select:none}.brand .logo{margin-right:2px}.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}.wn-snippet{font-size:.86rem;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.logs-tab .tab-actions{margin-bottom:16px}.log-day{margin-bottom:18px}.log-card{padding:14px 16px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px}.log-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.log-actions{margin-left:auto;display:flex;gap:2px}.log-with{font-size:.92rem;font-weight:600}.log-with .muted{font-weight:500;margin-right:4px}.log-body{white-space:pre-wrap;line-height:1.5;overflow-wrap:anywhere}@media (max-width: 720px){.logs-tab .tab-actions .btn{width:100%;justify-content:center}.wn-snippet{-webkit-line-clamp:1}}.tab-short{display:none}@media (max-width: 720px){.tabs button{white-space:nowrap;gap:6px}.tab-long{display:none}.tab-short{display:inline}}@media (max-width: 520px){.tabs button{padding:12px 2px;gap:5px;font-size:.95rem}.tabs button svg{display:none}.tabs .count{padding:1px 5px}}@media (max-width: 370px){.tabs button{font-size:.88rem;gap:3px}}.print-only{display:none}.insp-list{display:flex;flex-direction:column;gap:10px}.insp-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);color:var(--ink);font:inherit}.insp-card:hover{border-color:var(--line-2)}.insp-card:active{transform:translateY(1px)}.insp-num{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#eceae4;color:var(--muted);font-weight:800;font-size:1.05rem}.insp-card.is-in_progress .insp-num{background:var(--accent-soft);color:var(--accent-dark)}.insp-card.is-complete .insp-num{background:var(--accent);color:#fff}.insp-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.insp-card-title{font-weight:700;font-size:1.02rem}.insp-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;color:var(--muted);font-size:.82rem}.insp-card-meta svg{vertical-align:-2px}.insp-go{flex:none;color:var(--faint)}.insp-bar{display:block;height:6px;border-radius:999px;background:#e8e5dd;overflow:hidden}.insp-bar>span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .25s}.insp-bar.big{height:8px;margin:10px 0 18px}.insp-chip-not_started{background:#eceae4;color:#55594f}.insp-chip-in_progress{background:#fbefd2;color:#7d5a10}.insp-chip-complete{background:#e1f0e5;color:#22603a}.insp-status-complete{color:var(--ok);font-weight:700}.insp-sync{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.back-link.as-btn{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-weight:600;font-size:.9rem}.insp-form{scroll-margin-top:calc(70px + var(--safe-t))}@media (max-width: 720px){.insp-form{scroll-margin-top:calc(110px + var(--safe-t))}}.insp-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.insp-title-row h2{font-size:1.3rem;margin-bottom:2px}.insp-tools{display:flex;align-items:center;gap:12px}.insp-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;color:var(--muted);font-weight:600;cursor:pointer}.insp-toggle input{width:18px;height:18px;accent-color:var(--accent)}.insp-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.insp-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:6px 6px 8px;box-shadow:var(--shadow)}.insp-item.is-done{border-color:#bcd6c0}.insp-check{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;background:none;border:0;padding:10px;border-radius:10px;cursor:pointer;font:inherit;color:var(--ink);min-height:52px}.insp-check:active{background:#f6f5f1}.insp-box{flex:none;width:28px;height:28px;border-radius:7px;border:2px solid var(--line-2);background:#fff;display:grid;place-items:center;color:#fff;margin-top:1px;transition:background .12s,border-color .12s}.insp-item.is-done .insp-box{background:var(--accent);border-color:var(--accent)}.insp-check-text{display:flex;flex-direction:column;gap:3px;min-width:0}.insp-item-title{font-weight:650;line-height:1.35}.insp-item.is-done .insp-item-title{color:var(--ink-2)}.insp-who{font-size:.78rem;color:var(--ok);font-weight:600}.insp-q .insp-who{color:var(--faint);font-weight:500}.insp-section-title{font-size:1.05rem;padding:10px 10px 4px}.insp-desc{padding:0 10px}.insp-questions{list-style:none;margin:2px 0 0;padding:0 4px 0 50px;display:flex;flex-direction:column}.insp-item.is-section .insp-questions{padding-left:4px}.insp-q{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 6px;border-top:1px solid var(--line)}.insp-q-text{font-size:.95rem;line-height:1.35}.insp-yn{flex:none;display:flex;background:#eeece6;border-radius:10px;padding:3px;gap:3px}.insp-yn button{min-width:50px;min-height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;font:inherit;font-weight:700;font-size:.88rem;color:var(--muted);cursor:pointer}.insp-yn button.on.yn-yes{background:var(--accent);color:#fff}.insp-yn button.on.yn-no{background:var(--bad);color:#fff}.insp-yn button.on.yn-na{background:#6b6f69;color:#fff}.insp-q.ans-no .insp-q-text{color:var(--bad);font-weight:600}.insp-note{display:block;width:calc(100% - 20px);margin:6px 10px 2px;font-size:.95rem;min-height:64px;resize:vertical}.insp-photos{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 2px}.insp-thumb{width:72px;height:72px;border-radius:8px;overflow:hidden;border:1px solid var(--line);padding:0;background:#eceae4;cursor:pointer;display:grid;place-items:center;position:relative}.insp-thumb img{width:100%;height:100%;object-fit:cover}.insp-thumb.uploading{cursor:default}.insp-actions{display:flex;gap:4px;padding:4px 6px 0;flex-wrap:wrap}.insp-act{display:inline-flex;align-items:center;gap:5px;background:none;border:0;border-radius:8px;padding:7px 10px;min-height:36px;font:inherit;font-size:.85rem;font-weight:650;color:var(--muted);cursor:pointer}.insp-act:hover,.insp-act:active{background:#f1efe9;color:var(--ink)}.insp-item .error-note{margin:8px 10px 0}.insp-viewer{display:grid;place-items:center;min-height:200px;background:#111;border-radius:10px;overflow:hidden}.insp-viewer img{max-width:100%;max-height:70vh;display:block}.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}@media (max-width: 560px){.insp-questions{padding-left:4px}.insp-q{flex-direction:column;align-items:stretch;gap:8px}.insp-yn button{flex:1;min-height:44px}.insp-title-row{align-items:flex-start}}@media print{.print-only{display:block}.insp-print-head{font-size:.85rem;color:#555;margin-bottom:4px}.insp-box,.insp-yn button{-webkit-print-color-adjust:exact;print-color-adjust:exact}.insp-item,.insp-card{box-shadow:none;break-inside:avoid;border-color:#bbb}.insp-items{gap:6px}.insp-check{min-height:0;padding:6px}.insp-q{padding:4px 6px}.insp-yn{background:none}.insp-yn button{min-height:0;min-width:0;padding:2px 6px;color:#999}.insp-yn button:not(.on){text-decoration:none}.insp-yn button.on{outline:1.5px solid #000}.insp-note{border:0;padding:0 0 0 10px;resize:none;min-height:0;font-style:italic}.insp-thumb{width:1.1in;height:1.1in}.page{padding:0!important}}.sub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-bottom:18px}.sub-card{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.sub-card:hover{border-color:var(--line-2)}.sub-card.inactive{opacity:.65}.sub-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.sub-card-main h3{font-size:1.02rem}.sub-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;font-size:.82rem;color:var(--muted)}.sub-card-meta svg{vertical-align:-2px}.sub-search{margin-bottom:14px;max-width:460px}.warn-text{color:#8a5a00;font-weight:600}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.sub-section{margin-bottom:14px}.sub-section .card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.sub-section h3{font-size:1.02rem}.sub-jobs{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}.sub-job{display:flex;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid var(--line);cursor:pointer}.sub-job:first-child{border-top:0}.sub-job input{width:20px;height:20px;accent-color:var(--accent);flex:none}.sub-job.disabled{opacity:.6;cursor:default}.sub-job-text{display:flex;flex-direction:column;min-width:0}.sub-danger{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 8px}.name-picker{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:10px}.name-pick{display:flex!important;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--line)}.name-pick:first-child{border-top:0}.name-pick>span:nth-of-type(1){flex:1}.name-pick input{width:18px;height:18px;accent-color:var(--accent)}.switch-row{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.switch-row input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex:none}.project-head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.sub-access-btn.is-off{border-color:#e2c27c;background:#fdf6e3;color:#7d5a10}.doc-share{color:var(--faint)}.doc-share.on{color:var(--ok)}.sub-shell .topnav.utility span{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sub-today{display:flex;align-items:center;gap:12px;margin-bottom:14px;text-decoration:none;color:var(--ink);background:var(--accent-soft);border-color:#bcd6c0}.sub-today>span{flex:1;display:flex;flex-direction:column;gap:2px}.sub-today svg{color:var(--accent-dark);flex:none}.sub-job-card{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);padding:14px 16px}.sub-job-card:hover{border-color:var(--line-2)}.sub-job-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.sub-job-main strong{font-size:1.02rem}.sub-doc-count{display:inline-flex;align-items:center;gap:4px}.sub-h2{font-size:1.15rem;margin:18px 0 10px}.small-empty{padding:22px}.sub-lines{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.sub-lines li{display:flex;gap:12px;flex-wrap:wrap}.sub-line-date{font-weight:700;color:var(--accent-dark);font-size:.88rem;min-width:150px}.sub-confirm{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px}.sub-sched-group{margin-bottom:18px}.sub-sched-group.is-today .sub-line-card{border-left:4px solid var(--accent)}.sub-line-card{display:flex;align-items:center;gap:12px;padding:12px 14px}.sub-line-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;color:var(--ink);text-decoration:none}.sub-line-task{font-size:.95rem}@media (max-width: 560px){.sub-line-card{flex-direction:column;align-items:stretch}.sub-line-card .btn{align-self:flex-start}.sub-grid{grid-template-columns:1fr}.sub-section .card-head{flex-direction:column}}.brand .logo-full{height:40px;width:auto}.brand-tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.65;color:#fff;padding-left:12px;border-left:1px solid rgba(255,255,255,.25);line-height:1.2;max-width:150px}@media (max-width: 720px){.brand .logo-full{height:34px}.brand-tag{display:none}.sub-shell .brand-tag{display:block;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.search-trigger{margin-left:auto;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:9px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#ffffffd9;font:inherit;font-size:.9rem;cursor:pointer;min-width:190px}.search-trigger:hover{background:#ffffff24}.search-trigger .st-label{flex:1;text-align:left}.search-trigger .st-kbd{font:inherit;font-size:.72rem;opacity:.6;border:1px solid rgba(255,255,255,.25);border-radius:5px;padding:1px 5px}.topbar .topnav.utility{margin-left:0}.search-backdrop{align-items:flex-start;padding-top:9vh}.search-dialog{width:min(640px,calc(100vw - 24px));max-height:78vh;display:flex;flex-direction:column;background:var(--card);border-radius:14px;box-shadow:0 20px 60px #0000004d;overflow:hidden}.search-dialog-head{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 16px;border-bottom:1px solid var(--line);color:var(--muted)}.search-dialog-head input{flex:1;border:0!important;box-shadow:none!important;outline:none;font-size:1.08rem;padding:8px 0;background:transparent}.search-results{overflow:auto;padding:6px 6px 10px}.search-hint{padding:14px 12px}.search-group{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);padding:10px 10px 4px}.search-hit{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:none;padding:9px 10px;border-radius:9px;cursor:pointer;font:inherit;color:var(--ink)}.search-hit.sel,.search-hit:hover{background:#f1efe9}.search-hit-icon{flex:none;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:#eceae4;color:var(--muted)}.search-hit-text{display:flex;flex-direction:column;min-width:0}.search-hit-text strong,.search-hit-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 720px){.search-trigger{min-width:0;width:40px;height:40px;padding:0;justify-content:center;border-color:transparent}.search-trigger .st-label,.search-trigger .st-kbd{display:none}.search-backdrop{padding-top:0}.search-dialog{width:100vw;max-height:none;height:100dvh;border-radius:0;padding-top:var(--safe-t)}}.log-weather{font-size:.86rem;color:var(--ink-2);margin:2px 0 6px}.log-weather-preview{background:#f4f2ec;border-radius:8px;padding:8px 10px}.lb-tools{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 6px}.lb-chip{border:1px solid rgba(255,255,255,.3);background:#ffffff14;color:#fff;border-radius:999px;padding:7px 12px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.lb-chip.on{background:#fff;color:var(--ink);border-color:#fff}.photo-badges{position:absolute;top:6px;right:6px;display:flex;gap:4px}.photo-badges span{background:#0000008c;color:#ffd56b;border-radius:6px;padding:1px 6px;font-size:.8rem;line-height:1.5}.share-on{border-color:#bcd6c0;background:var(--accent-soft);color:var(--accent-dark)}.share-link{display:flex;flex-direction:column;gap:8px;background:#f4f2ec;border-radius:10px;padding:10px}.share-link.off{opacity:.55}.share-link input{font-size:.88rem;background:#fff}.share-link-actions{display:flex;gap:6px;flex-wrap:wrap}.share-modes{display:flex;flex-direction:column;gap:8px;padding-left:32px}.share-modes .check{display:flex;gap:8px;align-items:flex-start}.share-modes input{margin-top:3px;accent-color:var(--accent)}.home-page{min-height:100vh;display:flex;flex-direction:column}.home-hero{position:relative;min-height:220px;display:flex;align-items:flex-end;background:#2c3a2e center / cover no-repeat}.home-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#0009,#0000000d 60%)}.home-hero-text{position:relative;z-index:1;color:#fff;padding:22px 20px;max-width:1000px;width:100%;margin:0 auto}.home-hero-text h1{color:#fff;font-size:1.8rem;text-shadow:0 2px 8px rgba(0,0,0,.4)}.home-hero-text p{opacity:.85;margin-top:2px}.home-main{max-width:1000px;width:100%;margin:0 auto;padding:16px 16px 40px;flex:1}.home-tabs{margin-bottom:16px}.home-foot{text-align:center;color:var(--faint);font-size:.8rem;padding:18px 16px calc(18px + var(--safe-b))}.home-schedule>p{margin-bottom:14px}.home-week{margin-bottom:14px}.home-week-card{padding:4px 0}.home-task{display:flex;gap:14px;padding:10px 16px;border-top:1px solid var(--line)}.home-task:first-child{border-top:0}.home-task-date{flex:none;width:170px;font-weight:700;color:var(--accent-dark);font-size:.9rem}.home-task.is-owner{background:#fdf6e3}.home-you{display:inline-block;margin-left:8px;background:#f2c14e;color:#4a3500;border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:700;vertical-align:1px}@media (max-width: 560px){.home-hero{min-height:180px}.home-hero-text h1{font-size:1.45rem}.home-task{flex-direction:column;gap:2px}.home-task-date{width:auto}}.offline-toggle.on{color:var(--ok)}.offline-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f4f2ec;border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:.9rem}.offline-bar svg{color:var(--muted);flex:none}.offline-bar.all{background:var(--accent-soft)}.offline-bar.all svg{color:var(--ok)}.error-text{color:var(--bad)}.doc-row.as-btn,.doc-main.as-btn{border:0;background:none;font:inherit;text-align:left;cursor:pointer;width:100%;color:inherit}.saved-link .count{margin-left:2px}.strip-link{color:inherit;font-weight:700}.file-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#2a2d2a;display:flex;flex-direction:column}.fv-top{display:flex;align-items:center;gap:6px;padding:calc(8px + var(--safe-t)) 8px 8px;background:#161816;color:#fff}.fv-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.fv-scroll{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:8px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.fv-center{flex:1;display:grid;place-items:center;color:#fff}.fv-other{gap:14px;text-align:center;padding:20px}.fv-img{max-width:100%}.fv-page{position:relative;background:#fff;flex:none;margin:0 auto;box-shadow:0 2px 10px #0006}.fv-page canvas{display:block}.fv-page-no{position:absolute;bottom:6px;right:8px;font-size:.75rem;background:#00000080;color:#fff;border-radius:6px;padding:1px 6px}.fv-zoom{position:absolute;left:50%;transform:translate(-50%);bottom:calc(16px + var(--safe-b));display:flex;align-items:center;gap:2px;background:#141614eb;border-radius:999px;padding:4px;color:#fff;box-shadow:0 6px 20px #00000059}.fv-zoom button{border:0;background:none;color:#fff;font:inherit;font-size:1.3rem;width:46px;height:42px;border-radius:999px;cursor:pointer}.fv-zoom button:disabled{opacity:.35}.fv-zoom .fv-zoom-label{font-size:.85rem;font-weight:700;width:64px}.fv-pages{font-size:.78rem;opacity:.7;padding:0 12px 0 4px;white-space:nowrap}.chip-urgent{background:#fde2df;color:#a32014;font-weight:700}.chip-overdue{background:#fde2df;color:#a32014}.badge-task{background:#2f7a45}.task-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.task-filters .seg{display:flex;gap:4px;background:#eceae4;border-radius:10px;padding:3px;overflow-x:auto}.task-filters .seg button{flex:1;white-space:nowrap;border:0;background:none;border-radius:8px;padding:8px 12px;font:inherit;font-weight:650;font-size:.9rem;color:var(--muted);cursor:pointer}.task-filters .seg button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}.task-filter-row{display:flex;gap:10px;flex-wrap:wrap}.task-filter-row select{width:auto;min-width:180px}.task-card{display:flex;align-items:center;gap:14px;padding:12px 14px;color:var(--ink);text-decoration:none}.task-card:hover{border-color:var(--line-2)}.task-card.is-urgent{border-left:4px solid #c8372d}.task-card.is-done{opacity:.8}.task-thumb{flex:none;width:64px;height:64px;border-radius:10px;overflow:hidden;background:#eceae4;display:grid;place-items:center;color:var(--faint);position:relative}.task-thumb img{width:100%;height:100%;object-fit:cover}.task-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.task-title{font-weight:650;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-no{color:var(--faint);font-weight:700}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:.82rem;color:var(--muted)}.task-body{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.task-desc{white-space:pre-wrap;font-size:1.05rem;line-height:1.5}.task-assign{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.task-assign select{width:auto;min-width:200px}.task-photos{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.task-done{border-color:#bcd6c0;background:#f4faf5;display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.task-done h3{display:flex;align-items:center;gap:8px;color:var(--accent-dark);font-size:1rem}.task-close-btn{margin:4px 0 14px}.task-urgent{display:flex;align-items:center;gap:8px;align-self:end;padding-bottom:10px}.task-urgent input{width:20px;height:20px;accent-color:#c8372d}.photo-picker{display:flex;flex-direction:column;gap:10px}.pp-buttons,.pp-thumbs{display:flex;gap:8px;flex-wrap:wrap}.pp-thumb{position:relative;width:76px;height:76px;border-radius:10px;overflow:hidden;background:#eceae4}.pp-thumb img{width:100%;height:100%;object-fit:cover}.pp-thumb button{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:#0009;color:#fff;display:grid;place-items:center;cursor:pointer}.project-tasks{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px}.project-tasks>svg{color:var(--accent-dark);flex:none}.project-tasks a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none}.project-tasks .spacer{flex:1}.wn-title .chip{margin-left:6px}@media (max-width: 560px){.task-filters .seg button{flex:none;padding:8px 10px;font-size:.85rem}.task-filter-row select{flex:1;min-width:0}.task-thumb{width:56px;height:56px}.task-urgent{padding-bottom:0}}.page.narrow-wide{max-width:920px}@media (max-width: 440px){.division-tabs a{padding:7px 9px;gap:5px;font-size:.93rem}.division-tabs a>svg{display:none}}.task-done-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start;justify-content:space-between}.page.page-wide{max-width:1500px}.ok-note{background:var(--accent-soft);color:var(--accent-dark);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-weight:600}.phone-only{display:none}.sort-seg button{display:inline-flex;align-items:center;gap:5px}.near-note{margin:-8px 0 12px}.ptable{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.ptable-head,.prow-link{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(170px,.8fr) minmax(220px,.9fr) minmax(280px,1fr);gap:18px;align-items:center}.ptable-head{padding:10px 64px 10px 16px;border-bottom:1px solid var(--line);font-size:.82rem;font-weight:700;color:var(--muted)}.th-sort{border:0;background:none;font:inherit;color:inherit;cursor:pointer;padding:0;display:inline-flex;gap:4px}.th-sort.on{color:var(--ink)}.th-sort span{font-size:.75rem;opacity:.7}.prow{position:relative;border-top:1px solid var(--line);display:flex;align-items:center}.prow:first-of-type{border-top:0}.ptable-head+.prow{border-top:0}.prow:hover{background:#faf9f6}.prow-link{flex:1;min-width:0;padding:12px 0 12px 16px;color:var(--ink);text-decoration:none;min-height:104px;box-sizing:border-box}.pt-name{display:flex;align-items:center;gap:16px;min-width:0}.prow-thumb{flex:none;width:80px;height:80px;border-radius:6px;overflow:hidden;background:#eceae4;display:grid;place-items:center;color:var(--faint)}.prow-thumb img{width:100%;height:100%;object-fit:cover}.prow-title{display:flex;flex-direction:column;gap:3px;min-width:0}.prow-title strong{font-size:1.05rem}.prow-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow-sub{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.prow-sub .dist{font-weight:700;color:var(--accent-dark)}.pt-updated{display:flex;flex-direction:column;gap:8px;color:var(--muted)}.avatars{display:flex}.mini-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.66rem;font-weight:800;background:#e6ebe4;color:var(--accent-dark);border:2px solid #fff;margin-left:-6px}.mini-avatar:first-child{margin-left:0}.pt-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;font-size:.85rem;color:var(--muted)}.pt-stats span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.pt-stats strong{color:var(--ink)}.pt-recent{display:flex;gap:8px;align-items:center}.recent-thumb{flex:none;width:64px;height:64px;border-radius:6px;overflow:hidden;background:#f1efe9}.recent-thumb img{width:100%;height:100%;object-fit:cover;display:block}.prow-cam{flex:none;width:44px;height:44px;margin:0 10px;border-radius:50%;display:grid;place-items:center;cursor:pointer;border:0;padding:0;background:var(--accent);color:#fff;box-shadow:0 2px 6px #14551e4d}.prow-cam:active{transform:scale(.95)}@media (max-width: 1250px){.ptable-head,.prow-link{grid-template-columns:minmax(240px,1.5fr) minmax(150px,.8fr) minmax(210px,1fr)}.pt-recent{display:none}}@media (max-width: 860px){.ptable-head{display:none}.prow-link{display:block;padding:10px 0 10px 12px}.pt-updated,.pt-stats,.pt-recent{display:none}.prow-thumb{width:64px;height:64px}.pt-name{gap:12px}.prow-title strong{font-size:1rem}.phone-only{display:inline}.prow-title>span.prow-addr{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sort-seg{width:100%}.sort-seg button{flex:1;justify-content:center}}.pin-map{height:min(60vh,460px);border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#dfe3dc}.pin-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.small-seg{display:inline-flex;background:#eceae4;border-radius:9px;padding:3px;gap:3px}.small-seg button{border:0;background:none;border-radius:7px;padding:6px 12px;font:inherit;font-weight:650;font-size:.86rem;color:var(--muted);cursor:pointer}.small-seg button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}.pin-icon{background:none;border:0}.pin-dot{display:block;width:30px;height:30px;border-radius:50% 50% 50% 0;background:#c8372d;transform:rotate(-45deg);border:3px solid #fff;box-shadow:0 2px 8px #00000073}.address-row{display:grid;grid-template-columns:1.6fr 70px 1fr;gap:12px}.state-field input{background:#f4f2ec;color:var(--muted);text-align:center}.loc-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f4f2ec;border-radius:10px;padding:8px 10px}.loc-row svg{color:var(--accent-dark);flex:none}.loc-row .small{flex:1;min-width:180px}@media (max-width: 560px){.address-row{grid-template-columns:1fr 64px}.address-row .field:last-child{grid-column:1 / -1}}.owner-names{display:flex;flex-direction:column;gap:8px}.owner-names .add-owner{align-self:flex-start}.owner-people{display:flex;gap:6px;align-items:flex-start;margin:2px 0 6px}.owner-people svg{margin-top:2px;color:var(--muted);flex:none}.home-phases{list-style:none;margin:0;padding:6px 0}.home-phase{padding:12px 16px;border-top:1px solid var(--line);position:relative}.hp-row{display:flex;align-items:center;gap:14px}.home-phase:first-child{border-top:0}.hp-dot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--line-2);background:#fff;display:grid;place-items:center;color:#fff}.home-phase.is-done .hp-dot{background:var(--accent);border-color:var(--accent)}.home-phase.is-now .hp-dot{border-color:#d8a23a;background:#fbefd2}.hp-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.hp-main strong{font-size:1rem}.hp-dates{color:var(--accent-dark);font-weight:600;font-size:.9rem}.home-phase.is-done .hp-main strong{color:var(--muted)}.hp-status{flex:none}.hp-keys{list-style:none;margin:8px 0 2px 36px;padding:0;display:flex;flex-direction:column;gap:6px}.hp-key{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;font-size:.92rem;background:#eef5ee}.hp-key.is-walkthrough{background:#fbefd2}.hp-key-name{flex:1;min-width:0;font-weight:600}.hp-key-date{flex:none;font-weight:600;color:var(--accent-dark);white-space:nowrap}.hp-key.is-past{opacity:.6}.hp-key-ico{flex:none;width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;background:var(--accent)}.is-walkthrough>.hp-key-ico,.hp-key-ico.is-walkthrough{background:#c58a1c}.home-next{display:flex;align-items:center;gap:10px;margin:10px 0 12px;padding:10px 14px;border-radius:12px;background:#eef5ee;border:1px solid #cfe2cf}.home-next.is-walkthrough{background:#fbefd2;border-color:#f0dba8}.home-next .hp-key-ico{width:28px;height:28px}.home-next-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.home-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 8px}.home-legend .hp-key-ico{width:18px;height:18px;margin-left:8px}.home-legend .hp-key-ico:first-child{margin-left:0}@media (max-width: 520px){.hp-keys{margin-left:0}.hp-key{flex-wrap:wrap}.hp-key-date{width:100%;padding-left:30px;font-size:.85rem}}.log-hint{margin-top:-4px}.log-section-field textarea{min-height:0}.log-quick{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 4px}.chip-btn{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:.85rem;font-weight:600;color:var(--ink-2);cursor:pointer}.chip-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.log-sections{margin:6px 0 0;display:flex;flex-direction:column;gap:8px}.log-sec{display:grid;grid-template-columns:150px 1fr;gap:10px}.log-sec dt{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-top:2px}.log-sec dd{margin:0;white-space:pre-wrap;line-height:1.45}.log-sec.is-issues dd{color:#a32014}@media (max-width: 560px){.log-sec{grid-template-columns:1fr;gap:2px}}textarea.autogrow{field-sizing:content;min-height:2.7em;max-height:40vh}.progress{display:flex;align-items:center;gap:10px;margin-top:6px;min-width:0}.progress-track{position:relative;flex:1 1 auto;min-width:60px;max-width:260px;height:8px;border-radius:999px;background:#e7e3da;overflow:hidden}.progress-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,#3d7a4a,var(--accent));transition:width .6s ease}.progress.is-done .progress-fill{background:var(--ok)}.progress-label{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-label strong{color:var(--ink)}.progress-compact{margin-top:5px}.progress-compact .progress-track{max-width:140px;height:6px}.progress-compact .progress-label{font-size:.76rem}.progress-light .progress-track{max-width:320px;height:9px;background:#ffffff47}.progress-light .progress-fill{background:#fff}.progress-light .progress-label,.progress-light .progress-label strong{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.45)}.dash-hero{position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 0 18px;padding:22px 24px;border-radius:18px;color:#fff;background:radial-gradient(circle at 85% 0%,#2e5a35 0,transparent 55%),linear-gradient(135deg,#1e2420,#22402a 60%,#14551e);box-shadow:var(--shadow)}.dash-hero:after{content:"";position:absolute;right:-30px;bottom:-14px;width:360px;height:100px;opacity:.09;background:url(/logo-mark-white.svg) right bottom / contain no-repeat;pointer-events:none}.dash-hero-text{position:relative;z-index:1;min-width:0}.dash-hero h1{color:#fff;font-size:1.85rem}.dash-date{opacity:.8;margin-top:3px;font-size:.95rem}.dash-summary{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:12px}.dash-summary span{background:#ffffff21;border:1px solid rgba(255,255,255,.18);padding:4px 11px;border-radius:999px;font-size:.86rem;font-weight:600}.dash-wx{position:relative;z-index:1;display:flex;align-items:center;gap:12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:10px 14px}.dash-wx-icon{font-size:2rem;line-height:1}.dash-wx-now{font-size:2rem;font-weight:750;letter-spacing:-.02em}.dash-wx-detail{display:flex;flex-direction:column;font-size:.8rem;line-height:1.35;opacity:.92}.dash-wx-place{opacity:.7;font-size:.74rem}@media (max-width: 640px){.dash-hero{padding:18px 16px;border-radius:14px;margin:-4px 0 14px}.dash-hero h1{font-size:1.45rem}.dash-wx{width:100%;padding:8px 12px}.dash-wx-icon,.dash-wx-now{font-size:1.6rem}}.changes-banner{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#eef4ff;border:1px solid #cfdcf6;color:#1d3c74;text-decoration:none;font-size:.92rem}.changes-banner:hover{background:#e5eefd}.changes-banner>span:nth-child(2){flex:1;min-width:0}.changes-go{font-weight:700;white-space:nowrap}.chg-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.chg-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}.chg-stat strong{display:block;font-size:1.5rem}.chg-stat span{color:var(--muted);font-size:.8rem}.chg-stat.later strong{color:#b4441b}.chg-stat.sooner strong{color:var(--ok)}.filter-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filter-row select{width:auto;min-width:200px;max-width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--line-2);background:#fff}.chg-job{margin-bottom:12px}.chg-job-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.chg-list{list-style:none;margin:0;padding:0}.chg-row{padding:9px 0;border-top:1px solid var(--line)}.chg-row:first-child{border-top:0}.chg-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chg-name{font-weight:650}.chg-row.is-removed .chg-name{text-decoration:line-through;color:var(--muted)}.chg-sub{margin-top:2px}.chg-new{color:var(--ink)}.chg-was{text-decoration:line-through}.chg-later{background:#fde7d9;color:#9a3a12}.chg-sooner{background:#dff0e3;color:#1f6036}.chg-added{background:#e1ecfd;color:#1e4a8f}.chg-removed{background:#eee;color:#555}.chg-other{background:#f1ecdf;color:#6b5a2d}.ps-changes{background:#f7f9fd;border:1px solid #dfe7f5;border-radius:12px;padding:10px 14px;margin:10px 0 14px}.ps-changes-foot{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.sub-changes{margin-bottom:16px;border-color:#cfdcf6;background:#f7f9fd}.sub-changes h3{display:flex;align-items:center;gap:8px;margin-bottom:6px}.sub-line-date .chip{margin-left:6px;vertical-align:1px}@media (max-width: 640px){.chg-summary{grid-template-columns:repeat(3,1fr)}.chg-summary .chg-stat:nth-child(n+4){display:none}.changes-banner{flex-wrap:wrap}}.hp-updated{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:#fde7d9;color:#9a3a12;font-size:.72rem;font-weight:700;letter-spacing:.02em;vertical-align:1px}.home-hero-text .progress{margin-top:10px}.notif-card .card-head h3{display:flex;align-items:center;gap:8px}.notif-off{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.notif-actions{display:flex;gap:8px;flex-wrap:wrap}.notif-prefs{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.notif-prefs .switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.93rem;cursor:pointer}.notif-prefs .switch-row:last-of-type{border-bottom:0}input[role=switch]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:44px;height:26px;border-radius:999px;background:#cfcac0;position:relative;cursor:pointer;transition:background .2s;margin:0}input[role=switch]:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}input[role=switch]:checked{background:var(--accent)}input[role=switch]:checked:after{transform:translate(18px)}.push-nudge{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;border-radius:12px;background:#fffbea;border:1px solid #f1e2a6}.push-nudge>div{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.push-nudge>svg{flex:none;color:#9a7a10}.project-head{display:block}.project-hero{position:relative;display:flex;align-items:flex-end;min-height:150px;border-radius:18px;overflow:hidden;margin-bottom:12px;background:linear-gradient(135deg,#1e2420,#22402a 60%,#14551e) center / cover no-repeat;box-shadow:var(--shadow)}.project-hero.has-photo{min-height:260px;background-size:cover;background-position:center 55%}.project-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,#0e1410d1,#0e141059 55%,#0e14100d)}.project-hero:not(.has-photo):after{content:"";position:absolute;right:-20px;top:14px;width:300px;height:90px;opacity:.1;background:url(/logo-mark-white.svg) right / contain no-repeat}.project-hero.skeleton{min-height:180px}.project-hero-inner{position:relative;z-index:1;width:100%;padding:22px 24px;color:#fff}.project-hero h1{color:#fff;font-size:2rem;text-shadow:0 2px 10px rgba(0,0,0,.45)}.project-hero .facts{color:#ffffffe0;text-shadow:0 1px 4px rgba(0,0,0,.4)}.project-hero .facts a{color:#fff}.project-hero .chip{box-shadow:0 1px 4px #0003}.project-hero .progress{margin-top:12px}.project-head-below{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;flex-wrap:wrap}.project-head-below .notes{margin-top:0;flex:1 1 320px}@media (max-width: 640px){.project-hero{border-radius:14px;margin-left:-4px;margin-right:-4px}.project-hero.has-photo{min-height:220px}.project-hero-inner{padding:16px}.project-hero h1{font-size:1.5rem}}.view-seg button{display:inline-flex;align-items:center;gap:5px}.jobs-map{position:relative;height:calc(100vh - 290px);min-height:420px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#e8e6df;box-shadow:var(--shadow)}.jobs-map-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.map-layer-toggle{position:absolute;z-index:500;top:10px;right:10px;box-shadow:var(--shadow);background:#fff}.map-missing{position:absolute;z-index:500;left:10px;bottom:10px;margin:0;background:#ffffffeb;padding:5px 10px;border-radius:8px;box-shadow:var(--shadow)}.job-pin-wrap{background:none;border:0}.job-pin{position:absolute;left:2px;top:0;display:grid;place-items:center;width:40px;height:40px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--accent);border:3px solid #fff;box-shadow:0 3px 10px #00000059;color:#fff}.job-pin b{transform:rotate(45deg);font-size:.72rem;font-weight:800;letter-spacing:-.01em}.job-pin.approx{background:#7d837a;border-style:dashed}.job-pin.on{background:#c55a11;transform:rotate(-45deg) scale(1.15)}.job-pin-pct{position:absolute;left:50%;top:44px;transform:translate(-50%);background:#fff;color:var(--ink);font-size:.66rem;font-weight:800;padding:0 5px;border-radius:6px;box-shadow:0 1px 3px #0004;white-space:nowrap}.me-dot-wrap{background:none;border:0}.me-dot{display:block;width:18px;height:18px;border-radius:50%;background:#1d8cf8;border:3px solid #fff;box-shadow:0 0 0 6px #1d8cf840,0 1px 4px #0005}.map-card{position:absolute;z-index:600;left:12px;right:12px;bottom:12px;max-width:420px;margin:0 auto;background:#fff;border-radius:16px;padding:14px;box-shadow:0 12px 40px #0000004d;animation:login-rise .2s ease-out both}.map-card-close{position:absolute;top:8px;right:8px}.map-card-top{display:flex;gap:12px;align-items:center;padding-right:28px}.map-card-thumb{flex:none;width:64px;height:64px;border-radius:10px;overflow:hidden;background:var(--paper);display:grid;place-items:center;color:var(--faint)}.map-card-thumb img{width:100%;height:100%;object-fit:cover}.map-card-title{display:flex;flex-direction:column;min-width:0}.map-card-title strong{font-size:1.02rem}.map-card-actions{display:flex;gap:8px;margin-top:12px}.map-card-actions .btn{flex:1;justify-content:center}@media (max-width: 640px){.jobs-map{height:calc(100dvh - 300px);min-height:380px;border-radius:12px}}.markup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0d0f0e;display:flex;flex-direction:column;color:#fff;touch-action:none}.markup-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + var(--safe-t)) 12px 10px}.markup-title{font-size:.95rem;opacity:.85}.markup-stage{position:relative;flex:1;min-height:0;overflow:hidden;display:grid;place-items:center}.markup-canvas{position:absolute;top:6px;right:6px;bottom:6px;left:6px;margin:auto;max-width:calc(100% - 12px);max-height:calc(100% - 12px);width:auto;height:auto;border-radius:4px;cursor:crosshair;touch-action:none}.markup-tools,.markup-top{position:relative;z-index:2}.markup-canvas.tool-text{cursor:text}.markup-error{color:#ffb4ad}.markup-text{position:absolute;left:12px;right:12px;top:12px;max-width:480px;margin:0 auto;background:#1f2421;border-radius:12px;padding:10px;box-shadow:0 8px 30px #000a}.markup-text textarea{width:100%;border-radius:8px;border:0;padding:10px;font-size:1rem;color:var(--ink);resize:none}.markup-text-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.markup-tools{padding:8px 12px calc(10px + var(--safe-b));display:flex;flex-direction:column;gap:8px;align-items:center}.markup-toolset{display:flex;gap:4px;background:#1f2421;border-radius:14px;padding:4px}.markup-toolset button{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;color:#cfd3cf;padding:6px 10px;border-radius:10px;font-size:.7rem;cursor:pointer;min-width:52px}.markup-toolset button.on{background:#fff;color:var(--ink)}.markup-colors{display:flex;gap:10px;align-items:center}.markup-colors button[role=radio]{width:28px;height:28px;border-radius:50%;border:2px solid #ffffff55;cursor:pointer;padding:0}.markup-colors button.on{outline:3px solid #fff;outline-offset:2px}.markup-undo{background:#1f2421;border:0;color:#fff;width:40px;height:34px;border-radius:10px;display:grid;place-items:center;margin-left:6px;cursor:pointer}.markup-undo:disabled{opacity:.35}.markup-hint{font-size:.78rem;opacity:.6}.btn-dark{background:#2a302c;color:#fff;border-color:#2a302c}.btn-dark:hover{background:#343b36}.pp-thumb{position:relative}.pp-draw{position:absolute;left:4px;bottom:4px;display:inline-flex;align-items:center;gap:3px;border:0;border-radius:999px;background:#000000a6;color:#fff;font-size:.7rem;font-weight:700;padding:3px 7px;cursor:pointer}.pp-hint{margin-top:6px}.lb-saved{font-size:.85rem;color:#b8e6c3;margin:6px 0}.lb-markup-tag{opacity:.9}.tab-actions-right{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;min-width:0;max-width:100%}@media (max-width: 520px){.tab-actions-right{margin-left:0;width:100%}.tab-actions-right .btn{flex:1 1 auto;justify-content:center;padding-left:10px;padding-right:10px}}.select-bar{position:sticky;top:8px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:-6px 0 16px;padding:10px 14px;background:var(--ink);color:#fff;border-radius:12px;box-shadow:var(--shadow-lg)}.select-bar-actions{display:flex;gap:10px;align-items:center}.select-bar .link-btn{color:#fff}.photo-tile.picked{outline:3px solid var(--accent);outline-offset:-3px}.photo-tile.picked img{opacity:.82}.pick-mark{position:absolute;z-index:2;top:6px;right:6px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#ffffffd9;border:2px solid #fff;box-shadow:0 1px 4px #0004;color:#fff}.photo-tile.picked .pick-mark{background:var(--accent)}.day-pick{margin-left:10px;font-weight:600}.report-builder .rb-options{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.rb-photos{list-style:none;margin:0;padding:0;max-height:44vh;overflow:auto;border:1px solid var(--line);border-radius:12px}.rb-photos li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-top:1px solid var(--line)}.rb-photos li:first-child{border-top:0}.rb-num{flex:none;width:22px;text-align:right;font-weight:700;color:var(--muted);font-size:.85rem}.rb-thumb{flex:none;width:56px;height:56px;border-radius:8px;overflow:hidden;background:var(--paper)}.rb-thumb img{width:100%;height:100%;object-fit:cover}.rb-cap{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.rb-cap input{width:100%;padding:7px 10px;border:1px solid var(--line-2);border-radius:8px}.rb-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}.rb-done{background:var(--accent-soft);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}.spinner.sm.dark{border-color:#0000001a;border-top-color:var(--accent)}.report-list{list-style:none;margin:0;padding:0}.report-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);flex-wrap:wrap}.report-list li:first-child{border-top:0}.report-list li.is-off .rl-main{opacity:.55}.rl-main{display:flex;flex-direction:column;min-width:0;flex:1 1 260px}.rl-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.public-report{min-height:100vh;background:var(--paper)}.pr-band{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;background:linear-gradient(135deg,#1e2420,#14551e)}.pr-kicker{color:#fff;opacity:.85;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}.pr-main{max-width:980px;margin:0 auto;padding:22px 18px 40px}.pr-head{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:20px}.pr-notes{white-space:pre-wrap;max-width:760px}.pr-photos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.pr-photos li{background:var(--card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.pr-photo{display:block;width:100%;padding:0;border:0;background:#ddd;cursor:zoom-in;aspect-ratio:4 / 3}.pr-photo img{width:100%;height:100%;object-fit:cover}.pr-cap{padding:10px 12px;font-size:.92rem}.pr-num{font-weight:800;color:var(--accent)}.pr-foot{text-align:center;padding:20px}.pr-lightbox .lb-stage img{max-width:100%;max-height:100%}.hp-dates .hp-updated{display:table;margin:4px 0 0;white-space:nowrap}.theme-seg{flex-wrap:wrap}.theme-seg button{flex:1 1 auto}:root{--lot-available: #2f8a4b;--lot-reserved: #d9a21b;--lot-under_contract: #e07a1f;--lot-sold: #b33a2c;--lot-not_for_sale: #8a8f86}.admin-only-tag{display:inline-block;margin-left:10px;padding:1px 8px;border-radius:999px;background:#efe9da;color:#6b5a2d;font-size:.72rem;font-weight:700;vertical-align:2px}.dev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.dev-card{display:flex;flex-direction:column;padding:0;overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}.dev-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.dev-card-plat{position:relative;height:170px;background:#f2efe8;border-bottom:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.dev-card-plat img{width:100%;height:100%;object-fit:cover;object-position:center}.dev-card-plat .chip{position:absolute;top:10px;left:10px;box-shadow:0 1px 4px #0002}.dev-card-noplat{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--faint)}.dev-card-body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px}.dev-card-name{font-size:1.1rem}.dev-card-foot{color:var(--ink-2)}.dev-st-planning{background:#e6e7ea;color:#3f4650}.dev-st-under_development{background:#fbefd2;color:#7a5a10}.dev-st-selling{background:#e1f0e5;color:#1f6036}.dev-st-sold_out{background:#e1ecfd;color:#1e4a8f}.dev-st-on_hold{background:#eceae4;color:#555}.lot-bar-wrap{display:flex;flex-direction:column;gap:5px}.lot-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#e7e3da;gap:2px}.lb-seg{display:block;min-width:6px}.lb-seg.st-sold{background:var(--lot-sold)}.lb-seg.st-under_contract{background:var(--lot-under_contract)}.lb-seg.st-available{background:var(--lot-available)}.lb-seg.st-not_for_sale{background:var(--lot-not_for_sale)}.dev-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.dev-head .facts span{display:inline-flex;align-items:center;gap:4px}.dev-stats{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:18px}.dev-stat{display:flex;flex-direction:column;gap:6px;padding:14px 16px}.dev-stat strong{font-size:1.45rem}.dev-tabs{overflow-x:auto;scrollbar-width:none}.dev-tabs::-webkit-scrollbar{display:none}.dev-tabs button{white-space:nowrap}.lot-chip.st-available{background:#dff0e3;color:#1f6036}.lot-chip.st-reserved{background:#fbefd2;color:#7a5a10}.lot-chip.st-under_contract{background:#fde7d9;color:#9a3a12}.lot-chip.st-sold{background:#fbe0dc;color:#8f2a1f}.lot-chip.st-not_for_sale{background:#eceae4;color:#555}.lot-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:-1px}.lot-dot.st-available{background:var(--lot-available)}.lot-dot.st-reserved{background:var(--lot-reserved)}.lot-dot.st-under_contract{background:var(--lot-under_contract)}.lot-dot.st-sold{background:var(--lot-sold)}.lot-dot.st-not_for_sale{background:var(--lot-not_for_sale)}.lot-legend{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 12px}.lot-legend button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:600;cursor:pointer}.lot-legend button span{color:var(--muted);font-weight:700}.lot-legend button.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.plat-wrap{position:relative}.plat-map{position:relative;height:calc(100vh - 330px);min-height:460px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#f4f3ef}.plat-map.is-placing{cursor:crosshair;box-shadow:0 0 0 3px var(--accent)}.plat-map .leaflet-container{background:#f4f3ef}.plat-empty{padding:40px 20px}.lot-pin-wrap{background:none;border:0}.lot-pin{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2.5px solid #fff;color:#fff;font-size:.72rem;font-weight:800;box-shadow:0 2px 6px #00000059;letter-spacing:-.02em;overflow:hidden;white-space:nowrap}.lot-pin.st-available{background:var(--lot-available)}.lot-pin.st-reserved{background:var(--lot-reserved);color:#2b2205}.lot-pin.st-under_contract{background:var(--lot-under_contract)}.lot-pin.st-sold{background:var(--lot-sold)}.lot-pin.st-not_for_sale{background:var(--lot-not_for_sale)}.lot-pin.on{outline:3px solid var(--ink);outline-offset:1px;transform:scale(1.18)}.pin-bar{display:flex;flex-direction:column;gap:8px;padding:10px 12px;margin-bottom:10px;border-radius:12px;background:var(--accent-soft);border:1px solid #c5dfc9}.pin-chips{display:flex;gap:6px;flex-wrap:wrap}.pin-chips button{border:1px solid var(--line-2);background:var(--card);border-radius:8px;padding:3px 9px;font-weight:700;font-size:.82rem;cursor:pointer}.pin-chips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.lot-card{max-width:380px}.lot-card-top{display:flex;align-items:center;gap:8px;padding-right:28px;margin-bottom:4px}.lot-card-top strong{font-size:1.1rem}.lot-quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.lot-quick button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--card);border-radius:999px;padding:5px 10px;font-size:.8rem;font-weight:650;cursor:pointer}.lot-quick button.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--paper)}.lot-quick-form{margin-top:4px}.lot-sale{border:1px solid var(--line);border-radius:12px;padding:10px 14px 14px;display:flex;flex-direction:column;gap:12px;margin:0}.lot-sale legend{font-weight:700;font-size:.85rem;padding:0 6px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.three input{min-width:0;width:100%}.table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--line);background:var(--card)}.lot-table{min-width:760px}.lot-table tr.clickable{cursor:pointer}.work-group{margin-bottom:16px}.work-list{padding:0;overflow:hidden}.work-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line)}.work-row:first-child{border-top:0}.work-row.st-done .work-main strong{color:var(--muted)}.work-status{flex:none;display:inline-flex;align-items:center;gap:4px;border:0;border-radius:999px;padding:4px 10px;font-size:.76rem;font-weight:750;cursor:pointer;min-width:92px;justify-content:center}.work-status.st-planned{background:#eceae4;color:#555}.work-status.st-in_progress{background:#fbefd2;color:#7a5a10}.work-status.st-done{background:#dff0e3;color:#1f6036}.work-main{flex:1;min-width:0;display:flex;flex-direction:column;text-align:left;background:none;border:0;padding:0;cursor:pointer;color:inherit}.work-money{flex:none;text-align:right}.over{color:var(--bad)}.work-sum{align-items:center;gap:16px}.work-sum .progress{margin:0}.dev-updates{display:flex;flex-direction:column;gap:14px;max-width:820px}.dev-updates textarea{width:100%}.dev-updates .input-row select{flex:1;min-width:0}.update-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.update-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.update-head .icon-btn{margin-left:auto}.update-body{margin-top:6px;white-space:pre-wrap}.lb-cap-input{width:100%;background:transparent;border:0;border-bottom:1px solid #ffffff40;color:#fff;padding:4px 0}.doc-cat-select{width:auto}@media (max-width: 720px){.dev-stats{grid-template-columns:1fr 1fr}.dev-stat-wide{grid-column:1 / -1}.plat-map{height:calc(100dvh - 330px);min-height:380px;border-radius:12px}.form-grid.three{grid-template-columns:1fr}.dev-tabs .tab-label{font-size:.85rem}.work-row{flex-wrap:wrap}.work-money{width:100%;text-align:left;padding-left:104px}.bottomnav a span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.jobs-map,.plat-wrap,.plat-map{isolation:isolate}.map-card,.lot-card{z-index:1100}@media (max-width: 720px){html{font-size:14px}.bottomnav{align-items:stretch;padding:4px 4px calc(4px + var(--safe-b))}.bottomnav a{flex:1 1 0;min-width:0;justify-content:flex-start;gap:3px;padding:6px 1px 5px;font-size:10px;line-height:12px;letter-spacing:-.01em}.bn-icon{height:24px;width:24px;align-items:center;justify-content:center;flex:none}.bn-icon svg{width:22px;height:22px}.bottomnav a>span:last-child{display:block;width:100%;height:12px;line-height:12px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.jobsite-bar{position:relative;z-index:25;display:flex;align-items:center;gap:10px;padding:8px 14px 8px 16px;background:var(--accent-soft);color:var(--accent-dark);border-bottom:1px solid #00000014;box-shadow:0 2px 8px #0000000d}.jobsite-pin{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff}.jobsite-name{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;background:none;border:0;padding:0;color:inherit;text-align:left;cursor:pointer;font:inherit}.jobsite-name strong{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--ink)}.jobsite-kicker{font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em}.jobsite-actions{flex:none;display:flex;align-items:center;gap:6px}.jobsite-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:56px;height:48px;padding:4px 8px;border-radius:10px;background:var(--card);color:var(--ink);border:1px solid var(--line-2);font:inherit;font-size:.74rem;font-weight:650;cursor:pointer}.jobsite-btn svg{color:var(--accent-dark)}.jobsite-btn:active{transform:scale(.96)}.jobsite-x{color:var(--accent-dark)}.jobsite-optin>svg{color:var(--accent-dark)}.jobsite-optin{background:var(--accent-soft);border-color:#00000012}@media (max-width: 760px){.jobsite-bar{position:sticky;top:calc(56px + var(--safe-t));padding:7px 10px;gap:8px}.jobsite-pin{display:none}.jobsite-btn{min-width:50px;height:46px;padding:4px 6px}}.tpl-card{margin-bottom:16px}.tpl-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.tpl-card .card-head h3{display:flex;align-items:center;gap:8px;margin:0}.tpl-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}.tpl-list li{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.tpl-list li:first-child{border-top:0}.tpl-order{flex:none;display:flex;flex-direction:column}.tpl-order .icon-btn{height:20px}.tpl-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;background:none;border:0;padding:4px 0;font:inherit;color:inherit;cursor:pointer}.tpl-main strong{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tpl-start{padding:10px 12px;border-radius:10px;background:var(--accent-soft)}.tpl-start .check{align-items:flex-start}.apply-tpl{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.folder-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.folder-actions{margin-left:auto;display:flex;gap:4px}.folder-empty{margin:0 0 8px;padding:10px 12px;border:1px dashed var(--line-2);border-radius:10px}.project-tabs{margin-bottom:16px}.project-tabs .tab-close{flex:none;margin-left:auto;padding:8px 10px;color:var(--muted);border-bottom-color:transparent!important}.project-tabs .tab-close:hover{color:var(--ink)}.project-tab-panel{margin-bottom:24px;padding-bottom:20px;border-bottom:2px solid var(--line)}.project-photos{margin-top:8px}.project-section-title{display:flex;align-items:center;gap:8px;font-size:1.15rem;margin:6px 0 14px}.project-section-title svg{color:var(--accent)}@media (max-width: 520px){.project-tabs button svg{display:inline-block}.project-tabs .tab-close{flex:none;padding:12px 8px}}.shell.has-sidebar{flex-direction:row;align-items:stretch}.shell-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh}.bottomnav{display:none!important}.sidebar{flex:none;width:250px;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;padding:14px 12px 12px;background:var(--ink);color:#fff;scrollbar-width:thin;scrollbar-color:#ffffff33 transparent}.sb-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 4px 14px}.sb-brand{display:flex;color:#fff}.sb-avatar,.sb-mini-avatar{flex:none;display:grid;place-items:center;border-radius:50%;background:#ffffff24;color:#fff;font-weight:750;text-decoration:none;letter-spacing:.02em}.sb-avatar{width:34px;height:34px;font-size:.78rem}.sb-avatar:hover{background:#ffffff38}.sb-mini-avatar{width:22px;height:22px;font-size:.6rem}.sb-search .search-trigger{width:100%;min-width:0;margin:0;height:40px}.sb-nav{flex:1;display:flex;flex-direction:column}.sb-company{font-size:.84rem;font-weight:750;color:#fff;padding:16px 10px 6px}.sb-group+.sb-group{margin-top:2px}.sb-heading{width:100%;display:flex;align-items:center;gap:6px;padding:14px 10px 6px;margin:0;background:none;border:0;cursor:pointer;font:inherit;color:#ffffff8f;font-size:.7rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.sb-heading span:first-child{flex:1;text-align:left}.sb-heading:hover{color:#fff}.sb-heading svg{transition:transform .15s}.sb-heading.closed svg{transform:rotate(-90deg)}.sb-heading-dot{width:7px;height:7px;border-radius:50%;background:#e5484d}.sb-link{width:100%;display:flex;align-items:center;gap:12px;padding:8px 10px;margin:1px 0;border-radius:8px;background:none;border:0;cursor:pointer;font:inherit;text-align:left;text-decoration:none;color:#ffffffc7;font-weight:600;font-size:.93rem}.sb-link>svg{width:19px;height:19px;flex:none}.sb-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-link:hover{background:#ffffff12;color:#fff}.sb-link.active{background:#ffffff21;color:#fff}.sb-link.active>svg{color:#9fd6a8}.sb-link .badge{margin-left:auto}.sb-footer{margin-top:auto;padding-top:10px;border-top:1px solid #ffffff1c}.sb-nav>.sb-group:last-of-type{margin-bottom:18px}.page{max-width:none;margin:0;padding:30px 40px 64px}.page.page-wide{max-width:none}.page.narrow{max-width:680px;margin:0 auto}.page.narrow-wide{max-width:960px;margin:0 auto}.qr-sheet{max-width:none}.topbar{gap:12px}.topbar .brand{flex:1;min-width:0}.topbar-menu{position:relative;flex:none;width:42px;height:42px;margin-left:-6px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:#fff;cursor:pointer}.topbar-menu:hover{background:#ffffff14}.menu-dot{position:absolute;top:8px;right:7px;width:9px;height:9px;border-radius:50%;background:#e5484d;box-shadow:0 0 0 2px var(--ink)}.topbar .search-trigger{min-width:0;width:42px;height:42px;padding:0;justify-content:center;border-color:transparent;background:transparent;margin-left:0}.topbar .search-trigger .st-label,.topbar .search-trigger .st-kbd{display:none}@media (min-width: 1000px){.topbar{display:none}}@media (max-width: 999px){.sidebar{display:none}.page{padding:24px 24px 56px}}@media (max-width: 720px){.page{padding:18px 14px calc(40px + var(--safe-b))}.fab{bottom:calc(22px + var(--safe-b))}.toasts{bottom:calc(16px + var(--safe-b))}}.drawer-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000}.drawer-scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:0;padding:0;background:#0f121080;cursor:pointer;animation:fade-in .18s ease}.drawer{position:absolute;left:0;top:0;bottom:0;width:min(86vw,360px);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);padding:calc(16px + var(--safe-t)) 18px calc(18px + var(--safe-b));box-shadow:8px 0 40px #00000040;animation:drawer-in .22s cubic-bezier(.2,.8,.2,1)}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer-avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#e5e2db;color:var(--ink-2);font-weight:700;font-size:1.05rem}.drawer-actions{display:flex;gap:10px}.drawer-round{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;text-decoration:none;cursor:pointer;background:var(--card);color:var(--ink);border:1px solid var(--line-2);box-shadow:var(--shadow)}.drawer-who{display:flex;flex-direction:column;gap:2px;padding:14px 2px 6px}.drawer-who strong{font-size:1.35rem;line-height:1.2}.drawer-who span{color:var(--muted)}.drawer .sb-company{display:none}.drawer .sb-heading{color:var(--muted);text-transform:none;letter-spacing:0;font-size:.9rem;font-weight:550;padding:18px 4px 4px}.drawer .sb-heading:hover{color:var(--ink)}.drawer .sb-link{color:var(--ink);font-size:1.08rem;font-weight:550;gap:16px;padding:11px 8px;border-radius:10px}.drawer .sb-link>svg{width:23px;height:23px}.drawer .sb-link:hover{background:#0000000a}.drawer .sb-link.active{background:var(--accent-soft);color:var(--accent-dark)}.drawer .sb-link.active>svg{color:var(--accent)}.drawer .sb-footer{border-top-color:var(--line);margin-top:18px}@media print{.sidebar,.drawer-wrap{display:none!important}.page{padding:0}}.wstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.wstat{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);text-align:left;font:inherit;color:var(--ink)}button.wstat{cursor:pointer}.wstat>svg{grid-row:1 / 3;color:var(--accent);width:28px;height:28px;padding:6px;box-sizing:content-box;border-radius:10px;background:var(--accent-soft)}.wstat strong{font-size:1.6rem;line-height:1.1}.wstat span{color:var(--muted);font-size:.85rem}.wstat.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.wstat.warn>svg{color:#a35b00;background:#fbefd2}.wstat.warn strong{color:#a35b00}.wdue{padding:14px 18px;margin-bottom:18px;border-left:4px solid #e0a325}.wdue h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:1rem}.wdue-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);flex-wrap:wrap}.wdue-row:first-of-type{border-top:0}.wdue-home{flex:1;min-width:200px;display:flex;flex-direction:column;text-decoration:none;color:inherit}.wtabs{display:inline-flex;margin:4px 0 14px}.wtabs button{display:inline-flex;align-items:center;gap:6px}.wchk{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap;background:#eeebe4;color:var(--muted)}.wchk b{font-weight:750}.wchk-done{background:#e1f0e5;color:#22603a}.wchk-overdue{background:#fde2df;color:#a32014}.wchk-due{background:#fbefd2;color:#7d5a10}.wchk-soon{background:#e8eefb;color:#2b4e8c}.wbar{display:flex;align-items:center;gap:10px;margin-top:6px}.wbar-track{flex:1;max-width:220px;height:6px;border-radius:999px;background:#e6e2da;overflow:hidden}.wbar-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.wbar span{font-size:.78rem;font-weight:650;color:var(--muted);white-space:nowrap}.wbar.expired .wbar-track i{background:#b9b4aa}.wlist{padding:0;overflow:hidden}.wrow{display:grid;grid-template-columns:76px minmax(0,2.2fr) minmax(0,1.1fr) minmax(0,1.5fr) minmax(0,1fr) 18px;align-items:center;gap:16px;padding:12px 16px;border-top:1px solid var(--line);text-decoration:none;color:inherit}.wrow:first-child{border-top:0}.wrow:hover{background:#00000005}.wrow-photo{width:76px;height:60px;border-radius:10px;overflow:hidden;background:#eceae4;display:grid;place-items:center;color:var(--faint)}.wrow-photo img{width:100%;height:100%;object-fit:cover}.wrow-main{display:flex;flex-direction:column;min-width:0}.wrow-main strong{font-size:1.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wrow-dates{display:flex;flex-direction:column;gap:2px}.wrow-dates b{color:var(--ink);font-weight:650}.wrow-checks{display:flex;flex-wrap:wrap;gap:6px}.wrow-go{color:var(--faint)}.wsource{margin:-4px 0 14px}.wgroup{padding:4px 0;margin-bottom:14px;overflow:hidden}.wgroup-head{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 16px 8px}.wgroup-head h3{margin:0;display:flex;align-items:center;gap:8px;font-size:1.05rem}.wgroup-head h3 a{color:inherit}.wgroup-facts{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:3px}.wgroup-facts>*{display:inline-flex;align-items:center;gap:4px;color:inherit}.witem{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line);text-decoration:none;color:inherit}.witem:hover{background:#00000005}.witem-box{flex:none;width:22px;height:22px;border-radius:6px;border:2px solid var(--line-2);display:grid;place-items:center;color:#fff}.witem-box.on{background:var(--accent);border-color:var(--accent)}.witem-main{flex:1;min-width:0;display:flex;flex-direction:column}.witem.done .witem-main strong{color:var(--muted);text-decoration:line-through;text-decoration-color:#0000004d}.witem-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.witem-who{font-size:.82rem;font-weight:650;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);white-space:nowrap}.chip-visit{background:#e8eefb;color:#2b4e8c}.chip-off{background:#eeebe4;color:var(--muted);margin-left:6px}.wfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0 0 14px}.wfacts dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);font-weight:700}.wfacts dd{margin:2px 0 0}.wsub{margin:14px 0 6px;font-size:.9rem}.photo-tile-wrap{position:relative;display:block}.photo-tile-wrap .photo-del{position:absolute;top:4px;right:4px;background:#000000a0;color:#fff;border-radius:8px}.wpanel{padding:16px 18px;margin-bottom:16px;border-left:4px solid var(--accent)}.wpanel.expired{border-left-color:#b9b4aa}.wpanel-head{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap}.wpanel-head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:1.08rem}.wpanel-head h3 svg{color:var(--accent)}.wpanel-head b{color:var(--ink)}.wpanel-all{margin-left:auto;display:inline-flex;align-items:center;gap:2px;text-decoration:none}.wpanel .wbar-track{max-width:360px}.wtiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.wtile{padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;align-items:flex-start;gap:4px}.wtile.done{background:#eef6f0;border-color:#cfe5d5}.wtile-head{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;flex-wrap:wrap}.wtile p{margin:0}.wtile-note{color:var(--ink-2);white-space:pre-wrap}.wpanel-items h4{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:.95rem}.wpanel-items .witem{padding-left:0;padding-right:0}.warranty-move{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:var(--accent-soft)}.warranty-move .field{margin:0;min-width:180px}.warranty-move p{flex:1;min-width:220px;margin:0}.warranty-banner{background:#eef6f0;border-color:#cfe5d5;color:var(--accent-dark);margin-bottom:16px}.warranty-banner:hover{background:#e3f0e7}@media (max-width: 1100px){.wrow{grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"photo main go" "photo checks go" "photo dates go";row-gap:6px}.wrow-photo{grid-area:photo;width:64px;height:64px;align-self:start}.wrow-main{grid-area:main}.wrow-checks{grid-area:checks}.wrow-dates{grid-area:dates;flex-direction:row;gap:12px;flex-wrap:wrap}.wrow-items{display:none}.wrow-go{grid-area:go}}@media (max-width: 720px){.wstats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wstat{padding:10px 12px;column-gap:10px}.wstat strong{font-size:1.3rem}.wstat>svg{width:22px;height:22px}.wtabs{display:flex}.wtabs button{flex:1;justify-content:center}.witem{flex-wrap:wrap;padding:11px 14px}.witem-side{width:100%;justify-content:flex-start;padding-left:34px}.wtiles,.wfacts{grid-template-columns:1fr}.wpanel-all{margin-left:0}}button.back-link{background:none;border:0;padding:0;font:inherit;cursor:pointer}@media (max-width: 720px){.prow-link{min-height:0}}.prow-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1500px){.ptable-head,.prow-link{grid-template-columns:minmax(240px,1.6fr) minmax(150px,.75fr) minmax(210px,.9fr) 208px}.recent-thumb:nth-child(4){display:none}}@media (max-width: 1250px){.ptable-head,.prow-link{grid-template-columns:minmax(240px,1.5fr) minmax(150px,.8fr) minmax(210px,1fr)}}@media (max-width: 720px){.prow-title>span.prow-addr{white-space:nowrap;display:block;-webkit-line-clamp:unset}.prow-link{min-height:104px;display:flex!important;align-items:center}.prow-link>.pt-name{flex:1;min-width:0}}.ptable-head,.prow-link{grid-template-columns:minmax(250px,1.5fr) minmax(170px,.8fr) minmax(150px,.7fr) minmax(210px,.9fr) 280px}.prow-link{height:104px;min-height:0}.prow-title{gap:2px}.prow-title>span,.prow-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prow-sub{flex-wrap:nowrap}.prow-phone-progress{display:none}.pt-progress{display:flex;flex-direction:column;justify-content:center;gap:7px;min-width:0}.pp-top{display:flex;align-items:baseline;gap:8px;min-width:0}.pp-top strong{font-size:1.05rem;color:var(--ink)}.pp-stage{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pp-track{display:block;width:100%;max-width:200px;height:8px;border-radius:999px;background:#e7e3da;overflow:hidden}.pp-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3d7a4a,var(--accent))}.pt-progress.is-done .pp-track i{background:var(--ok)}@media (max-width: 1500px){.ptable-head,.prow-link{grid-template-columns:minmax(230px,1.5fr) minmax(150px,.8fr) minmax(140px,.7fr) minmax(200px,.9fr) 208px}}@media (max-width: 1250px){.ptable-head,.prow-link{grid-template-columns:minmax(230px,1.5fr) minmax(140px,.8fr) minmax(140px,.7fr) minmax(200px,1fr)}}@media (max-width: 720px){.pt-progress{display:none}.prow-link{height:104px;min-height:0}.prow-phone-progress{display:block}.prow-phone-progress .progress{margin-top:3px}}.pt-updated .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-stats .st-short{display:none}@media (max-width: 1500px){.pt-stats .st-long{display:none}.pt-stats .st-short{display:inline}.pt-stats{gap:8px 12px;grid-template-columns:auto auto;justify-content:start}.ptable-head,.prow-link{grid-template-columns:minmax(200px,1.5fr) minmax(140px,.8fr) minmax(125px,.65fr) minmax(170px,.8fr) 136px}.recent-thumb:nth-child(n+3){display:none}}@media (max-width: 1250px){.ptable-head,.prow-link{grid-template-columns:minmax(200px,1.5fr) minmax(130px,.8fr) minmax(120px,.65fr) minmax(170px,.8fr)}}.pt-recent{padding-left:6px}@media (max-width: 1100px){.ptable-head,.prow-link{grid-template-columns:minmax(180px,1.3fr) minmax(120px,.7fr) minmax(115px,.6fr) 205px;gap:14px}}.sel{display:flex;flex-direction:column;gap:14px}.sel-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:36px 24px}.sel-empty-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.sel-empty h3{margin:4px 0 0}.sel-empty p{max-width:560px;margin:0 0 6px}.sel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px 18px;flex-wrap:wrap;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.sel-progress{display:flex;align-items:center;gap:12px;min-width:0}.sel-progress>div{display:flex;flex-direction:column;min-width:0}.sel-progress strong{font-size:1.05rem}.sel-changed-note{color:#a32014;font-weight:650}.sel-actions{display:flex;gap:8px;flex-wrap:wrap}.sel-ring .sel-ring-track{fill:none;stroke:#e6e2da;stroke-width:5}.sel-ring .sel-ring-fill{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;transition:stroke-dasharray .4s}.sel-ring text{font-size:11px;font-weight:750;fill:var(--ink)}.sel-ring.light .sel-ring-track{stroke:#ffffff2e}.sel-ring.light .sel-ring-fill{stroke:#8fd19b}.sel-ring.light text{fill:#fff}.sel-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.sel-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:132px;padding:14px 16px;text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s,border-color .12s}.sel-tile:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0000001a;border-color:#cfd8cf}.sel-tile-num{font-size:1.9rem;font-weight:800;line-height:1;color:#b9c7bb;letter-spacing:-.02em}.sel-tile-name{font-weight:700;font-size:1.02rem;line-height:1.25;flex:1}.sel-tile-foot{display:flex;align-items:center;gap:10px;width:100%}.sel-tile-bar{flex:1;height:6px;border-radius:999px;background:#ebe8e1;overflow:hidden}.sel-tile-bar i{display:block;height:100%;background:var(--accent);border-radius:inherit}.sel-tile-count{font-size:.8rem;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.sel-tile.complete{background:#f1f8f2;border-color:#cfe5d5}.sel-tile.complete .sel-tile-num{color:#7fb38a}.sel-tile.complete .sel-tile-count{color:var(--accent-dark)}.sel-dot{position:absolute;top:12px;right:12px;width:10px;height:10px;border-radius:50%;background:#e5484d;box-shadow:0 0 0 3px #e5484d26}.sel-cat{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}.sel-rail{position:sticky;top:12px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 40px);overflow-y:auto;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:14px}.sel-rail-all{display:flex;align-items:center;gap:4px;padding:8px 8px 10px;border:0;border-bottom:1px solid var(--line);margin-bottom:4px;background:none;font:inherit;font-weight:650;color:var(--accent-dark);cursor:pointer;text-align:left}.sel-rail-item{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:6px;padding:7px 8px;border:0;border-radius:8px;background:none;font:inherit;font-size:.88rem;color:var(--ink-2, var(--ink));cursor:pointer;text-align:left}.sel-rail-item:hover{background:#00000008}.sel-rail-item.on{background:var(--accent-soft);color:var(--accent-dark);font-weight:700}.sel-rail-num{font-weight:800;color:var(--faint);font-size:.8rem}.sel-rail-item.on .sel-rail-num{color:var(--accent)}.sel-rail-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-rail-count{font-size:.74rem;color:var(--muted)}.sel-rail-item.complete .sel-rail-count{color:var(--accent)}.sel-main{min-width:0;display:flex;flex-direction:column;gap:12px}.sel-cat-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.sel-cat-head h2{margin:0;font-size:1.6rem}.sel-cat-num{font-size:1.6rem;font-weight:800;color:#b9c7bb}.sel-cat-count{color:var(--muted);font-weight:600;margin-left:auto}.sel-back{display:none}.sel-cat-notes{padding:10px 14px;border-radius:10px;background:#fbf7ec;border:1px solid #efe4c6}.sel-cat-notes p{margin:0 0 4px;white-space:pre-wrap}.sel-cat-notes:not(:has(p)){background:none;border-style:dashed;border-color:var(--line-2)}.sel-cat-notes.editing{background:var(--card)}.sel-cat-notes textarea{width:100%}.sel-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.sel-item{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-left:4px solid #e0a325;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.sel-item.st-selected{border-left-color:var(--accent)}.sel-item.st-na{border-left-color:#c9c4b9;opacity:.85}.sel-item.changed{box-shadow:0 0 0 2px #e5484d40,var(--shadow)}.sel-item-body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 8px;text-align:left;font:inherit;color:inherit;background:none;border:0;width:100%}button.sel-item-body{cursor:pointer}button.sel-item-body:hover{background:#00000005}.sel-item-name{font-size:.74rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sel-item-choice{font-size:1.22rem;font-weight:750;line-height:1.25}.sel-item-details{display:flex;flex-direction:column;gap:2px;font-size:.9rem}.sel-item-details b{font-weight:650;color:var(--muted);margin-right:4px}.sel-item-open{color:#a35b00;font-weight:650}.sel-item-na{color:var(--muted);font-style:italic}.sel-item-notes{font-size:.88rem;color:var(--ink-2, var(--muted));white-space:pre-wrap;padding:6px 8px;margin-top:2px;border-radius:8px;background:#f6f4ef}.sel-item-photos{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 8px}.sel-thumb{position:relative;width:74px;height:74px;border-radius:8px;overflow:hidden;background:#eceae4;border:0;padding:0;cursor:pointer;display:block}.sel-thumb img{width:100%;height:100%;object-fit:cover;display:block}.sel-thumb .photo-del{position:absolute;top:3px;right:3px;background:#000000a0;color:#fff;border-radius:7px}.sel-item-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto;padding:8px 16px 10px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}.sel-item-foot>span:first-child{display:inline-flex;align-items:center;gap:4px}.sel-item.st-selected .sel-item-foot>span:first-child{color:var(--accent-dark)}.sel-changed-chip{display:inline-flex;padding:2px 8px;border-radius:999px;background:#fde2df;color:#a32014;font-size:.72rem;font-weight:750;white-space:nowrap}.sel-add{display:flex;align-items:center;justify-content:center;gap:8px;min-height:110px;border:2px dashed var(--line-2);border-radius:12px;background:none;color:var(--muted);font:inherit;font-weight:650;cursor:pointer}.sel-add:hover{border-color:var(--accent);color:var(--accent-dark)}.sel-add-form{padding:14px 16px;gap:10px;border-left-color:var(--line-2)}.sel-cat-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:4px}.sel-chips{display:flex;flex-wrap:wrap;gap:6px}.sel-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);font:inherit;font-size:.85rem;font-weight:600;color:var(--ink);cursor:pointer}.sel-chip.big{padding:9px 15px;font-size:.95rem}.sel-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.sel-choice-input{font-size:1.1rem!important;font-weight:650}.sel-editor-actions{flex-wrap:wrap}.sel-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:60vh;overflow-y:auto}.sel-history li{padding:10px 2px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.sel-history li:first-child{border-top:0}.sel-history li.after{background:#fff7f6}.sel-h-top{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.sel-h-diff s{color:var(--muted)}.sel-sign-summary{padding:10px 14px;border-radius:10px;background:var(--accent-soft)}.sig-pad{position:relative;height:190px;border:1px solid var(--line-2);border-radius:12px;background:#fff;overflow:hidden}.sig-pad canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.sig-line{position:absolute;left:24px;right:24px;bottom:44px;border-bottom:1px solid #cfcac0;pointer-events:none}.sig-clear{position:absolute;right:8px;top:8px}.sel-present{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:flex;flex-direction:column;background:#101813;color:#eef2ee}.sel-present-head{display:flex;align-items:center;gap:22px;padding:calc(16px + var(--safe-t)) 32px 16px;background:#0b110d;border-bottom:1px solid #ffffff14}.sel-present-logo{height:46px;width:auto}.sel-present-title{display:flex;flex-direction:column;flex:1;min-width:0}.sel-present-title span{font-size:.8rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:#8fd19b}.sel-present-title strong{font-size:1.35rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-present-progress{display:flex;align-items:center;gap:10px;font-weight:650}.sel-present-progress small{font-weight:500;color:#b9c4bb}.sel-present-close{width:48px;height:48px;border-radius:50%;border:1px solid #ffffff2e;background:#ffffff10;color:#fff;display:grid;place-items:center;cursor:pointer}.sel-present-body{flex:1;overflow-y:auto;padding:28px 32px calc(28px + var(--safe-b))}.sel-board.present{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.present .sel-tile,.present .sel-item,.present .sel-rail{background:#18241c;border-color:#ffffff17;color:#eef2ee;box-shadow:none}.present .sel-tile{min-height:158px;padding:18px 20px}.present .sel-tile:hover{border-color:#8fd19b80}.present .sel-tile-num{font-size:2.6rem;color:#4f6b55}.present .sel-tile-name{font-size:1.2rem}.present .sel-tile-bar{background:#ffffff1a}.present .sel-tile-bar i{background:#8fd19b}.present .sel-tile-count{color:#b9c4bb;font-size:.9rem}.present .sel-tile.complete{background:#1d3324;border-color:#8fd19b55}.present .sel-tile.complete .sel-tile-num{color:#8fd19b}.sel-cat.present{grid-template-columns:290px minmax(0,1fr)}.present .sel-rail{top:0;max-height:calc(100vh - 160px)}.present .sel-rail-all{color:#8fd19b;border-color:#ffffff17}.present .sel-rail-item{color:#d6ddd7;font-size:1rem;padding:9px 10px}.present .sel-rail-item:hover{background:#ffffff0d}.present .sel-rail-item.on{background:#8fd19b26;color:#fff}.present .sel-rail-num,.present .sel-rail-count{color:#7f9384}.present .sel-rail-item.on .sel-rail-num{color:#8fd19b}.present .sel-cat-head h2{font-size:2.3rem;color:#fff}.present .sel-cat-num{font-size:2.3rem;color:#4f6b55}.present .sel-cat-count{color:#b9c4bb;font-size:1.05rem}.present .sel-items{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.present .sel-item{border-left-width:5px}.present .sel-item.st-selected{border-left-color:#8fd19b}.present .sel-item-name{color:#9fb2a4;font-size:.85rem}.present .sel-item-choice{font-size:1.6rem;color:#fff}.present .sel-item-details{font-size:1.05rem;color:#dfe6e0}.present .sel-item-details b{color:#9fb2a4}.present .sel-item-open{color:#f0b54a;font-size:1.1rem}.present .sel-item-notes{background:#ffffff0d;color:#dfe6e0;font-size:1rem}.present .sel-item-foot{border-color:#ffffff14;color:#9fb2a4;font-size:.85rem}.present .sel-item.st-selected .sel-item-foot>span:first-child{color:#8fd19b}.present .sel-thumb{width:120px;height:120px}.present button.sel-item-body:hover{background:#ffffff08}.present .sel-add{border-color:#ffffff26;color:#9fb2a4}.present .sel-cat-notes{background:#ffffff0d;border-color:#ffffff1a;color:#eef2ee}.present .sel-cat-nav .btn{background:#ffffff10;color:#fff;border-color:#ffffff26}.present .sel-cat-nav .btn-primary{background:#8fd19b;color:#0b110d;border-color:#8fd19b}.stpl{display:flex;flex-direction:column;gap:10px}.stpl-cat{padding:10px 14px}.stpl-cat.off{opacity:.6}.stpl-head{display:flex;align-items:center;gap:8px}.stpl-title{flex:1;display:flex;align-items:baseline;gap:10px;min-width:0;background:none;border:0;font:inherit;color:inherit;cursor:pointer;text-align:left;padding:6px 0}.stpl-num{font-weight:800;color:#b9c7bb;font-size:1.15rem}.stpl-add{margin:8px 0 4px 40px}.tpl-list li.off{opacity:.55}@media (max-width: 1100px){.sel-cat{grid-template-columns:1fr}.sel-rail{display:none}.sel-back{display:inline-flex}.sel-cat.present{grid-template-columns:1fr}}@media (max-width: 720px){.sel-toolbar{padding:10px 12px}.sel-actions{width:100%}.sel-actions .btn{flex:1 1 auto;justify-content:center}.sel-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sel-tile{min-height:112px;padding:12px}.sel-tile-num{font-size:1.5rem}.sel-tile-name{font-size:.95rem}.sel-items{grid-template-columns:1fr}.sel-cat-head h2{font-size:1.3rem}.sel-present-head{padding:calc(10px + var(--safe-t)) 14px 10px;gap:12px}.sel-present-logo,.sel-present-progress span{display:none}.sel-present-body{padding:16px 14px calc(16px + var(--safe-b))}.present .sel-items{grid-template-columns:1fr}.sel-board.present{grid-template-columns:repeat(2,minmax(0,1fr))}}.sel-editor>.link-btn{align-self:flex-start}.present .link-btn,.present .sel-tile.complete .sel-tile-count{color:#8fd19b}@media (max-width: 520px){.project-tabs button svg{display:none}.project-tabs button{padding-left:4px;padding-right:4px}.project-tabs .tab-close svg{display:inline-block}}.mcam{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#000;color:#fff;display:flex;flex-direction:column;touch-action:manipulation;user-select:none;-webkit-user-select:none}.mcam-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:#000}.mcam-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;pointer-events:none;animation:mcam-flash .22s ease-out forwards}@keyframes mcam-flash{0%{opacity:.75}to{opacity:0}}.mcam-top{position:relative;display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 14px 14px;background:linear-gradient(#000a,#0000)}.mcam-job{flex:1;min-width:0;text-align:center;line-height:1.2;text-shadow:0 1px 3px #000a}.mcam-job span{display:block;font-size:.72rem;opacity:.8;text-transform:uppercase;letter-spacing:.06em}.mcam-job strong{display:block;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mcam-round{width:44px;height:44px;border-radius:50%;border:0;background:#0008;color:#fff;display:grid;place-items:center;cursor:pointer;flex:none;padding:0}.mcam-round.on{background:#ffd54a;color:#222}.mcam-round-spacer{width:44px;flex:none}.mcam-bottom{position:relative;margin-top:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px 22px calc(26px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#000b)}.mcam-shutter{width:78px;height:78px;border-radius:50%;border:4px solid #fff;background:transparent;padding:4px;cursor:pointer;display:grid;place-items:center}.mcam-shutter span{display:block;width:100%;height:100%;border-radius:50%;background:#fff;transition:transform .08s}.mcam-shutter:active span{transform:scale(.86)}.mcam-shutter:disabled{opacity:.4}.mcam-last{justify-self:start;position:relative;width:54px;height:54px}.mcam-last img,.mcam-last-empty{width:54px;height:54px;border-radius:10px;object-fit:cover;border:2px solid #fff;display:block}.mcam-last-empty{border-color:#fff5}.mcam-count{position:absolute;top:-8px;right:-10px;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;display:grid;place-items:center;box-shadow:0 1px 4px #0008}.mcam-done{justify-self:end;min-width:84px;height:46px;padding:0 20px;border-radius:999px;border:0;background:var(--accent);color:#fff;font-weight:700;font-size:1.02rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.mcam-done:disabled{opacity:.85}.mcam-wait{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;place-content:center;gap:10px;font-size:.95rem;opacity:.85;pointer-events:none}.mcam-error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(340px,86vw);background:#1d211ef2;border-radius:16px;padding:20px;display:grid;gap:12px;text-align:center;z-index:2}.mcam-error p{margin:0;line-height:1.45}@media (orientation: landscape) and (max-height: 520px){.mcam{flex-direction:row}.mcam-top{position:absolute;top:0;left:0;right:120px;padding-top:10px}.mcam-bottom{position:absolute;right:0;top:0;bottom:0;margin:0;grid-template-columns:none;grid-template-rows:1fr auto 1fr;justify-items:center;padding:18px calc(16px + env(safe-area-inset-right)) 18px 16px;background:linear-gradient(90deg,#0000,#000b)}.mcam-last{align-self:end;justify-self:center;order:3}.mcam-done{align-self:start;justify-self:center;order:1;min-width:0;padding:0 16px}.mcam-shutter{order:2}}.modal-backdrop.over-lightbox{z-index:70}.move-photos{display:grid;gap:12px}.move-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--card);color:var(--muted)}.move-search input{flex:1;border:0;outline:0;background:transparent;padding:11px 0;font:inherit;color:var(--ink);min-width:0}.move-list{max-height:min(52vh,420px);overflow-y:auto;border:1px solid var(--line);border-radius:10px}.move-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:11px 14px;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;font:inherit;color:inherit}.move-row:last-child{border-bottom:0}.move-row:hover{background:#f4f2ec}.move-row.on{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}.move-name{flex:1;min-width:0;display:grid;gap:2px}.move-name strong,.move-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.move-empty{padding:18px 14px;display:flex;align-items:center;gap:8px}.move-photos .modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.photo-tile.unmovable{opacity:.35;cursor:not-allowed}@media (max-width: 999px){html.has-topbar,html.has-topbar body{background:#1e2420}:root[data-theme=dark].has-topbar,:root[data-theme=dark].has-topbar body{background:#0b0d0c}.has-topbar .shell-main{background:var(--paper);min-height:100vh}}.proj-mbar,.prow-m3,.prow-mdist,.proj-new-short,.prow-maddr{display:none}.proj-sheet{display:grid;gap:18px}.proj-sheet h4{margin:0 0 8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.proj-sheet .segmented{width:100%}.proj-sheet .segmented button{flex:1;justify-content:center;padding:10px 6px}.proj-sheet .btn-lg{width:100%;justify-content:center;margin-top:4px}@media (max-width: 720px){.page-head:has(.proj-new){margin-bottom:12px;flex-wrap:nowrap;align-items:center}.page-head:has(.proj-new) h1{font-size:1.6rem}.page-head:has(.proj-new) p{font-size:.85rem;margin-top:0}.page-head:has(.proj-new) .saved-link{display:none}.proj-new{flex:none;border-radius:999px;padding:9px 16px}.proj-new-long{display:none}.proj-new-short{display:inline}.proj-toolbar{display:none}.proj-mbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}.proj-msearch{flex:1;min-width:0;height:52px;display:flex;align-items:center;gap:10px;padding:0 16px 0 18px;background:var(--card);border:1px solid var(--line);border-radius:999px;color:var(--muted);box-shadow:0 1px 2px #1e24200a}.proj-msearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.proj-msearch input{flex:1;min-width:0;width:auto;border:0!important;outline:0;background:transparent!important;padding:0!important;height:100%;font:inherit;font-size:16px;color:var(--ink);box-shadow:none!important;border-radius:0}.proj-msearch input::placeholder{color:var(--faint)}.proj-mclear{border:0;background:#0000000f;color:var(--muted);width:26px;height:26px;border-radius:50%;font-size:1.1rem;line-height:1;cursor:pointer;padding:0;flex:none}.proj-mfilter{position:relative;flex:none;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 1px 2px #1e24200a}.proj-mfilter-dot{position:absolute;top:11px;right:11px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--card)}.ptable{background:transparent;border:0;box-shadow:none;overflow:visible;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.ptable .prow,.ptable .prow-link{min-width:0}.ptable .prow-title{min-width:0;flex:1}.ptable .ptable-head{display:none}.ptable .prow,.ptable .prow:first-of-type,.ptable .ptable-head+.prow{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px #1e24200a}.ptable .prow:hover{background:var(--card)}.ptable .prow.skeleton{border-radius:18px}.ptable .prow-link{display:block!important;height:auto;min-height:0;padding:12px 56px 12px 12px}.ptable .prow-link>.pt-name{display:flex;align-items:center;gap:14px}.ptable .prow-thumb{width:72px;height:72px;border-radius:14px}.ptable .prow-title{gap:3px}.ptable .prow-title strong{font-size:1.04rem;font-weight:650}.ptable .prow-title>span.prow-addr{display:none}.ptable .prow-title>span.prow-maddr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-size:.8rem}.ptable .prow-sub,.ptable .prow-phone-progress,.ptable .pt-progress,.ptable .pt-updated,.ptable .pt-stats,.ptable .pt-recent{display:none!important}.ptable .prow-m3{display:flex;align-items:center;gap:8px;min-width:0;font-size:.82rem;overflow:hidden;white-space:nowrap}.ptable .prow-m3 .progress{margin-top:0;flex:1;min-width:0}.ptable .prow-m3 .progress-track{max-width:120px;height:6px}.ptable .prow-m3>.muted{overflow:hidden;text-overflow:ellipsis}.ptable .prow-mdist{display:block;position:absolute;top:12px;right:14px;font-size:.8rem;font-weight:600;color:var(--muted)}.ptable .prow-cam{position:absolute;right:10px;bottom:10px;width:38px;height:38px;margin:0;background:var(--accent-soft);color:var(--accent-dark);box-shadow:none}.ptable .prow-cam svg{width:19px;height:19px}}@media (max-width: 720px){.wn-card .wn-main{font-size:.86rem;font-weight:650;line-height:1.3}.wn-card .wn-main .muted,.wn-card .wn-main .small{font-size:inherit;font-weight:500}.wn-card .wn-list strong{font-size:.92rem}.wn-card .wn-list .muted.small{font-size:.85rem}.wn-card .wn-actions .btn{font-size:.82rem;padding:6px 11px;border-radius:9px}.wn-card .wn-actions .btn svg{width:14px;height:14px}}.ok-text{color:var(--ok);font-weight:600}.settings-list{padding:0;overflow:hidden}.settings-item{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.settings-item:last-child{border-bottom:0}.settings-item:hover{background:#f7f5f0}.settings-icon{flex:none;width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent-dark);display:grid;place-items:center}.settings-text{flex:1;min-width:0;display:grid;gap:2px}.settings-item>svg{color:var(--faint);flex:none}.settings-version h3{margin:0 0 10px}.settings-version dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}.settings-version dt{color:var(--muted)}.settings-version dd{margin:0;font-weight:650}.settings-version-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}@media (min-width: 721px) and (pointer: fine){.ptable .prow-cam{display:none}.ptable-head,.ptable .prow-link{padding-right:16px}}.wn-head{display:flex;align-items:center;gap:8px;min-width:0}.wn-head h3{margin:0}.wn-count{font-size:.74rem;font-weight:700;padding:2px 8px;border-radius:999px;background:#0000000d;color:var(--muted);white-space:nowrap}.wn-count.alert{background:#fbe4e1;color:#b3261e}.wn-links{margin-left:auto;display:flex;gap:12px;font-size:.85rem;font-weight:650;white-space:nowrap}.wn-links a,.wn-links .link-btn{color:var(--accent-dark);text-decoration:none;font-weight:650;font-size:inherit;padding:0}.wn-links a:hover,.wn-links .link-btn:hover{text-decoration:underline}.wn-empty{font-size:.88rem;margin:4px 0 0}.wn-list .wn-snippet{-webkit-line-clamp:1}.dash-allprojects{display:flex;justify-content:center;width:100%;margin:0 0 16px}@media (min-width: 1000px){.dash-allprojects{display:inline-flex;width:auto}}@media (max-width: 720px){.dash-hero{flex-wrap:nowrap;align-items:center;gap:10px;padding:12px 14px;margin:-4px 0 10px;border-radius:12px}.dash-hero:after{display:none}.dash-hero h1{font-size:1.1rem;line-height:1.25}.dash-date{font-size:.8rem;margin-top:1px}.dash-summary{display:none}.dash-wx{width:auto;flex:none;gap:6px;padding:6px 10px;border-radius:10px}.dash-wx-icon,.dash-wx-now{font-size:1.25rem}.dash-wx-detail{display:none}.dash-allprojects{margin-bottom:12px;padding:10px 14px}}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.wn-card{min-width:0;overflow:hidden}.wn-list,.wn-list li,.wn-list li a{min-width:0;max-width:100%}.wn-list li a>*{min-width:0;max-width:100%}.wn-title{min-width:0;max-width:100%}.wn-title strong{min-width:0;flex:0 1 auto;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wn-list li a>strong,.wn-list .wn-snippet,.wn-list .muted.small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 720px){.wn-card .wn-list strong{font-size:.92rem}.wn-card .wn-list .wn-snippet{font-size:.86rem}.wn-card .wn-list .muted.small{font-size:.82rem}}@media (max-width: 720px){.wn-list li:nth-child(2) a{border-bottom:0}}:root[data-theme=dark]{color-scheme:dark;--ink: #e9e7e2;--ink-2: #d4d2cc;--paper: #121513;--card: #1b1f1c;--line: #2c322e;--line-2: #3a413c;--muted: #a2a8a0;--faint: #737a72;--accent: #2f8a3e;--accent-dark: #8fd49b;--accent-soft: #1d3424;--ok: #5cc184;--bad: #ff8f84;--warn-bg: #3a3120;--chrome: #0b0d0c;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .55)}:root[data-theme=dark] body{background:var(--paper)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background-color:#151916;border-color:var(--line-2);color:var(--ink)}:root[data-theme=dark] ::placeholder{color:#7d847c}:root[data-theme=dark] img.logo[src="/logo.svg"],:root[data-theme=dark] img.logo[src="/logo-mark-green.svg"]{filter:brightness(0) invert(1) opacity(.92)}:root[data-theme=dark] .login-card img.logo{filter:none}:root[data-theme=dark] .login-page{--ink: #1e2420;--ink-2: #2c332e;--card: #fff;--line: #e3dfd6;--line-2: #d4cfc3;--muted: #6b6f69;color-scheme:light}:root[data-theme=dark] .login-page input:not([type=checkbox]){background:#fff!important;color:#1e2420!important;border-color:#d4cfc3!important}:root[data-theme=dark] .topbar{background:var(--chrome)}:root[data-theme=dark] .btn:hover{background:#23221f;border-color:#585142}:root[data-theme=dark] input:not([type=checkbox]):not([type=file]),:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:#1d1d1d}:root[data-theme=dark] .error-note{background:#411d19;color:#f3aca9;border:1px solid #57322f}:root[data-theme=dark] .warn-note{border:1px solid #5e5132}:root[data-theme=dark] .chip-active{background:#223f2a;color:#c2eed3}:root[data-theme=dark] .chip-on_hold{background:#483b1b;color:#f4e0b5}:root[data-theme=dark] .chip-completed{background:#27292c;color:#c5c9cf}:root[data-theme=dark] .chip-warranty{background:#1c2e42;color:#b2ccea}:root[data-theme=dark] .chip-member{background:#2c2b27;color:#c9cbc5}:root[data-theme=dark] .segmented{background:#302e2a}:root[data-theme=dark] .segmented button.on{background:#1d1d1d}:root[data-theme=dark] .project-thumb{background:#2f2d2a}:root[data-theme=dark] .thumb-placeholder{background:repeating-linear-gradient(135deg,#2e2c28 0,#2e2c28 12px,#32302c 12px,#32302c 24px)}:root[data-theme=dark] .photo-tile{background:#32302c}:root[data-theme=dark] .pending-discard{background:#1d1d1dee}:root[data-theme=dark] .doc-main:hover{background:#262522}:root[data-theme=dark] .doc-icon{background:#2c2b27}:root[data-theme=dark] .doc-icon.pdf{background:#45251a;color:#efa791}:root[data-theme=dark] .dropzone{background:#23221f}:root[data-theme=dark] .avatar{background:var(--chrome)}:root[data-theme=dark] .credentials{background:#262522}:root[data-theme=dark] .skeleton{background:linear-gradient(90deg,#2e2c28 25%,#282623,#2e2c28 75%)}:root[data-theme=dark] .division-tabs a.active{background:var(--chrome)}:root[data-theme=dark] .chip-vacant{background:#432019;color:#f1a99f}:root[data-theme=dark] .wo-new{background:#1a2c45;color:#a4c5f2}:root[data-theme=dark] .wo-scheduled{background:#291a43;color:#b49ce3}:root[data-theme=dark] .wo-in_progress{background:#483b1b;color:#f4e0b5}:root[data-theme=dark] .wo-waiting{background:#2c2b27;color:#c9cbc5}:root[data-theme=dark] .wo-completed{background:#223f2a;color:#c2eed3}:root[data-theme=dark] .wo-cancelled{background:#27292c;color:#bbbdc2}:root[data-theme=dark] .data-table th{background:#23221f}:root[data-theme=dark] .data-table tbody tr:hover{background:#242220}:root[data-theme=dark] .tenant-card{background:#22211e}:root[data-theme=dark] .qr-placeholder{background:#272727}:root[data-theme=dark] .wo-row:hover{background:#242220}:root[data-theme=dark] .wo-row.is-new{background:#1e2022}:root[data-theme=dark] .wo-row.is-new.emergency{background:#3f1d18}:root[data-theme=dark] .resolution{background:#222723;border:1px solid #2f573c}:root[data-theme=dark] .add-photo{background:#262522!important}:root[data-theme=dark] .timeline li.note .tl-body{background:#262522}:root[data-theme=dark] .public-head{background:var(--chrome)}:root[data-theme=dark] .emergency-box{background:#3f1f18;border:1px solid #57362f;color:#f4bab3}:root[data-theme=dark] .emergency-box a{color:#ef9891}:root[data-theme=dark] .chip-choices button,:root[data-theme=dark] .yn button{background:#1d1d1d}:root[data-theme=dark] .urgency-choices button{background:#1d1d1d}:root[data-theme=dark] .urgency-choices button.emergency.on{background:#3f1f18}:root[data-theme=dark] .public-photo{background:#272727}:root[data-theme=dark] .public-photo.add{background:#23221f}:root[data-theme=dark] .done-icon{background:#223f2a}:root[data-theme=dark] .qr-sign{background:#1d1d1d}:root[data-theme=dark] .schedule-note{border:1px solid #5e5132}:root[data-theme=dark] .pdf-preview{background:#2c2b27}:root[data-theme=dark] .pipe-step:hover{background:#242220}:root[data-theme=dark] .stage-new{background:#1a2c45;color:#a4c5f2}:root[data-theme=dark] .stage-contacted{background:#1a2e43;color:#a4c7eb}:root[data-theme=dark] .stage-meeting{background:#291a43;color:#b49ce3}:root[data-theme=dark] .stage-estimating{background:#483b1b;color:#f4e0b5}:root[data-theme=dark] .stage-proposal{background:#4b341d;color:#f3ccae}:root[data-theme=dark] .stage-won{background:#23442d;color:#c5f2d6}:root[data-theme=dark] .stage-lost{background:#27292c;color:#bbbdc2}:root[data-theme=dark] .stage-stepper button.on{background:var(--chrome)}:root[data-theme=dark] .resolution.lost{background:#232326;border-color:#3e4046}:root[data-theme=dark] .more-tile{background:#302e2a!important}:root[data-theme=dark] .more-tile:hover{background:#433c2b!important}:root[data-theme=dark] .read-existing{background:#262522}:root[data-theme=dark] .sr-summary{background:#222723;border:1px solid #2f573c}:root[data-theme=dark] .insp-num{background:#2c2b27}:root[data-theme=dark] .insp-bar{background:#302e2a}:root[data-theme=dark] .insp-chip-not_started{background:#2c2b27;color:#c9cbc5}:root[data-theme=dark] .insp-chip-in_progress{background:#483b1b;color:#f4e0b5}:root[data-theme=dark] .insp-chip-complete{background:#223f2a;color:#c2eed3}:root[data-theme=dark] .insp-item.is-done{border-color:#375a3c}:root[data-theme=dark] .insp-check:active{background:#262522}:root[data-theme=dark] .insp-box{background:#1d1d1d}:root[data-theme=dark] .insp-yn{background:#2b2a26}:root[data-theme=dark] .insp-thumb{background:#2c2b27}:root[data-theme=dark] .insp-act:hover,:root[data-theme=dark] .insp-act:active{background:#2a2825}:root[data-theme=dark] .warn-text{color:#f5dfb7}:root[data-theme=dark] .sub-access-btn.is-off{border-color:#685938;background:#433819;color:#f4e0b5}:root[data-theme=dark] .sub-today{border-color:#375a3c}:root[data-theme=dark] .brand-tag{border-left:1px solid rgba(56,56,56,.25)}:root[data-theme=dark] .search-trigger{border:1px solid rgba(56,56,56,.18)}:root[data-theme=dark] .search-trigger .st-kbd{border:1px solid rgba(56,56,56,.25)}:root[data-theme=dark] .search-hit.sel,:root[data-theme=dark] .search-hit:hover{background:#2a2825}:root[data-theme=dark] .search-hit-icon{background:#2c2b27}:root[data-theme=dark] .log-weather-preview{background:#282723}:root[data-theme=dark] .share-on{border-color:#375a3c}:root[data-theme=dark] .share-link{background:#282723}:root[data-theme=dark] .share-link input{background:#1d1d1d}:root[data-theme=dark] .home-task.is-owner{background:#433819}:root[data-theme=dark] .home-you{background:#6b5729;color:#f9f0d8}:root[data-theme=dark] .offline-bar{background:#282723}:root[data-theme=dark] .fv-page{background:#1d1d1d}:root[data-theme=dark] .chip-overdue{background:#441e1a;color:#f1a69f}:root[data-theme=dark] .task-filters .seg{background:#2c2b27}:root[data-theme=dark] .task-filters .seg button.on{background:#1d1d1d}:root[data-theme=dark] .task-thumb{background:#2c2b27}:root[data-theme=dark] .task-done{border-color:#375a3c;background:#202420}:root[data-theme=dark] .pp-thumb{background:#2c2b27}:root[data-theme=dark] .prow:hover{background:#23221f}:root[data-theme=dark] .prow-thumb{background:#2c2b27}:root[data-theme=dark] .mini-avatar{background:#292d28;border:2px solid #383838}:root[data-theme=dark] .recent-thumb{background:#2a2825}:root[data-theme=dark] .pin-map{background:#2e312c}:root[data-theme=dark] .small-seg{background:#2c2b27}:root[data-theme=dark] .small-seg button.on{background:#1d1d1d}:root[data-theme=dark] .pin-dot{border:3px solid #383838}:root[data-theme=dark] .state-field input{background:#282723}:root[data-theme=dark] .loc-row{background:#282723}:root[data-theme=dark] .hp-dot{background:#1d1d1d}:root[data-theme=dark] .home-phase.is-now .hp-dot{border-color:#776440;background:#483b1b}:root[data-theme=dark] .hp-key{background:#232723}:root[data-theme=dark] .hp-key.is-walkthrough{background:#483b1b}:root[data-theme=dark] .is-walkthrough>.hp-key-ico,:root[data-theme=dark] .hp-key-ico.is-walkthrough{background:#6f572a}:root[data-theme=dark] .home-next{background:#232723;border:1px solid #335433}:root[data-theme=dark] .home-next.is-walkthrough{background:#483b1b;border-color:#5d5032}:root[data-theme=dark] .chip-btn{background:#1d1d1d}:root[data-theme=dark] .log-sec.is-issues dd{color:#f1a69f}:root[data-theme=dark] .progress-track{background:#403827}:root[data-theme=dark] .changes-banner{background:#18263f;border:1px solid #2d3a54;color:#b5cbf2}:root[data-theme=dark] .changes-banner:hover{background:#192942}:root[data-theme=dark] .chg-stat.later strong{color:#efab92}:root[data-theme=dark] .filter-row select{background:#1d1d1d}:root[data-theme=dark] .chg-later{background:#452b1a;color:#f2bba5}:root[data-theme=dark] .chg-sooner{background:#214129;color:#c2f0d2}:root[data-theme=dark] .chg-added{background:#1a2a43;color:#a4c2f2}:root[data-theme=dark] .chg-removed{background:#272727;color:#c8c8c8}:root[data-theme=dark] .chg-other{background:#413820;color:#e9dcba}:root[data-theme=dark] .ps-changes{background:#1e1f22;border:1px solid #2c3951}:root[data-theme=dark] .sub-changes{border-color:#2d3a54;background:#1e1f22}:root[data-theme=dark] .hp-updated{background:#452b1a;color:#f2bba5}:root[data-theme=dark] input[role=switch]{background:#484031}:root[data-theme=dark] input[role=switch]:after{background:#1d1d1d}:root[data-theme=dark] .push-nudge{background:#403918;border:1px solid #5d5432}:root[data-theme=dark] .jobs-map{background:#2f2e2a}:root[data-theme=dark] .map-layer-toggle{background:#1d1d1d}:root[data-theme=dark] .map-missing{background:#1d1d1deb}:root[data-theme=dark] .map-card{background:#1d1d1d}:root[data-theme=dark] .pr-photo{background:#303030}:root[data-theme=dark] .admin-only-tag{background:#433921;color:#e9dcba}:root[data-theme=dark] .dev-card-plat{background:#2a2825}:root[data-theme=dark] .dev-st-planning{background:#27292c;color:#c6cbd2}:root[data-theme=dark] .dev-st-under_development{background:#483b1b;color:#f5e2b7}:root[data-theme=dark] .dev-st-selling{background:#223f2a;color:#c2f0d2}:root[data-theme=dark] .dev-st-sold_out{background:#1a2a43;color:#a4c2f2}:root[data-theme=dark] .dev-st-on_hold{background:#2c2b27;color:#c8c8c8}:root[data-theme=dark] .lot-bar{background:#403827}:root[data-theme=dark] .lot-chip.st-available{background:#214129;color:#c2f0d2}:root[data-theme=dark] .lot-chip.st-reserved{background:#483b1b;color:#f5e2b7}:root[data-theme=dark] .lot-chip.st-under_contract{background:#452b1a;color:#f2bba5}:root[data-theme=dark] .lot-chip.st-sold{background:#45201a;color:#f2aca4}:root[data-theme=dark] .lot-chip.st-not_for_sale{background:#2c2b27;color:#c8c8c8}:root[data-theme=dark] .plat-map{background:#272623}:root[data-theme=dark] .lot-pin{border:2.5px solid #383838}:root[data-theme=dark] .lot-pin.st-reserved{color:#fbf6e6}:root[data-theme=dark] .pin-bar{border:1px solid #315a38}:root[data-theme=dark] .pin-chips button.on{background:var(--chrome)}:root[data-theme=dark] .work-status.st-planned{background:#2c2b27;color:#c8c8c8}:root[data-theme=dark] .work-status.st-in_progress{background:#483b1b;color:#f5e2b7}:root[data-theme=dark] .work-status.st-done{background:#214129;color:#c2f0d2}:root[data-theme=dark] .sidebar{background:var(--chrome)}:root[data-theme=dark] .sb-footer{border-top:1px solid rgba(56,56,56,.11)}:root[data-theme=dark] .drawer-avatar{background:#312f2c}:root[data-theme=dark] .wstat.warn>svg{color:#f3d2a9;background:#483b1b}:root[data-theme=dark] .wstat.warn strong{color:#f3d2a9}:root[data-theme=dark] .wdue{border-left:4px solid #796741}:root[data-theme=dark] .wchk{background:#2c2a27}:root[data-theme=dark] .wchk-done{background:#223f2a;color:#c2eed3}:root[data-theme=dark] .wchk-overdue{background:#441e1a;color:#f1a69f}:root[data-theme=dark] .wchk-due{background:#483b1b;color:#f4e0b5}:root[data-theme=dark] .wchk-soon{background:#192642;color:#a6beeb}:root[data-theme=dark] .wbar-track{background:#312f2c}:root[data-theme=dark] .wbar.expired .wbar-track i{background:#504838}:root[data-theme=dark] .wrow-photo{background:#2c2b27}:root[data-theme=dark] .chip-visit{background:#192642;color:#a6beeb}:root[data-theme=dark] .chip-off{background:#2c2a27}:root[data-theme=dark] .wtile.done{background:#222723;border-color:#2f573a}:root[data-theme=dark] .warranty-banner{background:#222723;border-color:#2f573a}:root[data-theme=dark] .warranty-banner:hover{background:#223e2b}:root[data-theme=dark] .pp-track{background:#403827}:root[data-theme=dark] .sel-changed-note{color:#f1a69f}:root[data-theme=dark] .sel-tile:hover{border-color:#3e4c3e}:root[data-theme=dark] .sel-tile-bar{background:#2e2c28}:root[data-theme=dark] .sel-tile.complete{background:#212522;border-color:#2f573a}:root[data-theme=dark] .sel-cat-notes{background:#413619;border:1px solid #574c2f}:root[data-theme=dark] .sel-item{border-left:4px solid #796741}:root[data-theme=dark] .sel-item-open{color:#f3d2a9}:root[data-theme=dark] .sel-item-notes{background:#262522}:root[data-theme=dark] .sel-thumb{background:#2c2b27}:root[data-theme=dark] .sel-changed-chip{background:#441e1a;color:#f1a69f}:root[data-theme=dark] .sel-history li.after{background:#221e1e}:root[data-theme=dark] .move-row:hover{background:#282723}:root[data-theme=dark] .settings-item:hover{background:#262522}:root[data-theme=dark] .wn-count.alert{background:#441f1a;color:#ef9691}@media (max-width: 720px){:root[data-theme=dark] .bottomnav{background:#1d1d1df2}}@media print{:root[data-theme=dark] body{background:#1d1d1d}:root[data-theme=dark] .qr-sign{border:1.5px dashed #575757}:root[data-theme=dark] .insp-print-head{color:#c8c8c8}:root[data-theme=dark] .insp-item,:root[data-theme=dark] .insp-card{border-color:#4d4d4d}}
