*{box-sizing:border-box;margin:0}:root{--bg: #f4f5f7;--panel: #ffffff;--ink: #1c2530;--muted: #66707c;--line: #e2e6ea;--accent: #d97b2e;--accent-ink: #b3611c;--blue: #2f6fb2;--green: #2e8b57;--red: #c94f3d;--amber: #b8860b;--radius: 10px;font-size:15px}body{background:var(--bg);color:var(--ink);font-family:Segoe UI,system-ui,sans-serif}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;background:#22303e;color:#fff;padding:0 20px;height:56px;position:sticky;top:0;z-index:50}.brand{font-weight:700;font-size:18px;letter-spacing:.3px;cursor:pointer;display:flex;align-items:center;gap:10px}.brand-mark{color:var(--accent);font-size:14px}.brand-icon{height:30px;width:auto}.login-logo{width:100%;max-width:380px;display:block;margin:0 auto 18px}.topbar nav{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.nav-btn{white-space:nowrap;flex-shrink:0}.topbar-right{flex-shrink:0}.nav-btn{background:none;border:none;color:#b8c2cc;padding:8px 14px;border-radius:8px;font-weight:600}.nav-btn:hover{color:#fff}.nav-btn.active{background:#ffffff1f;color:#fff}.nav-badge{background:var(--red);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 6px;margin-left:6px}.reminder-panel{border-left:4px solid var(--amber);margin-bottom:16px;padding:12px 16px}.reminder-head{font-weight:700;margin-bottom:8px}.reminder-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #f0f2f4}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}.user-chip{text-align:right;line-height:1.2}.user-name{font-weight:600;font-size:14px}.user-sub{font-size:12px;color:#9fb0bf}.ghost-btn{background:none;border:1px solid rgba(255,255,255,.25);color:#dbe3ea;padding:6px 12px;border-radius:8px;font-size:13px}.ghost-btn:hover{background:#ffffff1a}.main{flex:1;padding:24px;max-width:1400px;width:100%;margin:0 auto}.sel-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px;margin-top:10px}.sel-tile{border:1px solid #e5e8ec;border-radius:10px;background:#fff;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:box-shadow .12s ease}.sel-tile:hover{box-shadow:0 3px 14px #141e2d21}.sel-tile .sel-ph{aspect-ratio:4 / 3;background:#eef1f4;position:relative;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}.sel-tile .sel-ph .sel-fill-hint{color:var(--blue, #1d5aa7);font-size:12.5px;font-weight:600;cursor:pointer}.sel-tile .sel-ph .sel-fill-hint:hover{text-decoration:underline}.sel-empty-actions{display:flex;flex-direction:column;gap:7px;align-items:center}.sel-tile .sel-status{position:absolute;top:7px;right:7px;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;border:none;white-space:nowrap}.sel-tile select.sel-status{cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:14px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 9px) 55%,calc(100% - 5px) 55%;background-size:4px 4px;background-repeat:no-repeat}.sel-tile .sel-link{position:absolute;bottom:7px;right:7px;width:27px;height:27px;display:flex;align-items:center;justify-content:center;background:#fffffff0;border:1px solid #d8dde3;border-radius:999px;font-size:13px;line-height:1;text-decoration:none;box-shadow:0 1px 4px #141e2d2e}.sel-tile .sel-link:hover{background:#fff;transform:scale(1.1)}.sel-tile .sel-info{padding:8px 10px 9px;display:flex;flex-direction:column;gap:3px}.sel-tile .sel-room{align-self:flex-start;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;background:#eef2f7;color:#51606f;border-radius:3px;padding:1px 6px}.sel-tile .sel-name{font-weight:600;font-size:13px;line-height:1.25;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.sel-tile .sel-sub{color:var(--muted, #6b7684);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-tile .sel-price{font-weight:700;font-size:12.5px}.sel-tile .sel-warn{color:var(--red);font-size:11.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-tile .sel-actions{display:flex;gap:8px;margin-top:2px}.sel-code{font-family:ui-monospace,Consolas,monospace;font-size:10.5px;font-weight:600;background:#fbf1df;color:#8a5a15;border:1px solid #d9a94e;border-radius:3px;padding:0 5px;white-space:nowrap}.main.wide{max-width:none;padding:24px 16px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:#22303e;padding:24px}.login-card{background:var(--panel);border-radius:16px;padding:36px;width:100%;max-width:480px}.login-card h1{font-size:26px;margin-bottom:4px}.login-card .tagline{color:var(--muted);margin-bottom:24px}.login-note{font-size:13px;color:var(--muted);background:#f0f3f6;border-radius:8px;padding:10px 12px;margin-bottom:16px}.login-user{display:flex;align-items:center;gap:12px;width:100%;background:none;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;text-align:left}.login-user:hover{border-color:var(--accent);background:#fdf7f1}.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0}.avatar.builder{background:var(--accent)}.login-user .who{flex:1}.login-user .who .nm{font-weight:600}.login-user .who .co{font-size:13px;color:var(--muted)}.page-head{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}.page-head h2{font-size:22px}.spacer{flex:1}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-weight:600}.btn:hover{background:var(--accent-ink)}.btn.secondary{background:#eef1f4;color:var(--ink)}.btn.secondary:hover{background:#e2e7ec}.btn.small{padding:5px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}.link-btn{background:none;border:none;color:var(--blue);padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.muted{color:var(--muted)}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.pill.active{background:#e3f2e8;color:var(--green)}.pill.upcoming{background:#e8f0f9;color:var(--blue)}.pill.complete{background:#eee;color:var(--muted)}.pill.warn,.pill.pending{background:#fbf0d9;color:var(--amber)}.pill.approved{background:#e3f2e8;color:var(--green)}.pill.ordered{background:#e8f0f9;color:var(--blue)}.pill.installed{background:#eee;color:var(--muted)}.pill.client_review{background:#fdf3d9;color:#9a6200}.pill.rejected{background:#f9e9e7;color:#8c2f2f}.job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}.job-card{padding:18px;cursor:pointer;transition:box-shadow .15s}.job-card:hover{box-shadow:0 4px 14px #1423321f}.job-card h3{font-size:17px;margin-bottom:2px}.job-card .addr{color:var(--muted);font-size:13px;margin-bottom:12px}.job-card .row1{display:flex;align-items:center;gap:8px;justify-content:space-between}.progress{height:6px;background:#edf0f3;border-radius:4px;overflow:hidden;margin:12px 0 6px}.progress>div{height:100%;background:var(--green)}.next-tasks{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.next-tasks .nt{display:flex;gap:8px;align-items:center;font-size:13px;padding:3px 0}.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.nt .when{margin-left:auto;color:var(--muted);white-space:nowrap}.jobs-list{overflow:hidden}.jl-group{padding:9px 18px;font-size:12px;font-weight:700;letter-spacing:.5px;border-bottom:1px solid var(--line)}.jl-group:not(:first-child){border-top:1px solid var(--line)}.jl-group.live{color:var(--green);background:#f7faf8}.jl-group.coming{color:var(--blue);background:#f7f9fc}.jl-group.future{color:#7e57c2;background:#faf8fd}.jl-row{display:flex;align-items:center;gap:16px;padding:13px 18px;border-bottom:1px solid #f0f2f4;cursor:pointer}.jl-row:last-child{border-bottom:none}.jl-row:hover{background:#fafcfe}.jl-main{width:260px;flex-shrink:0;min-width:0}.jl-name{font-weight:700;font-size:15px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.jl-sub{color:var(--muted);font-size:12.5px;margin-top:1px}.jl-progress{width:210px;flex-shrink:0;display:flex;align-items:center;gap:10px}.jl-progress .bar{flex:1;height:6px;background:#edf0f3;border-radius:4px;overflow:hidden}.jl-progress .bar>div{height:100%;background:var(--green)}.jl-next{flex:1;min-width:0;display:flex;align-items:center;gap:7px;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jl-chev{color:var(--muted);font-size:18px;flex-shrink:0}.my-tasks{margin-bottom:24px;padding:16px 18px}.my-tasks h3{margin-bottom:10px}.my-task-row{display:flex;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:14px}.job-details{font-size:13px;margin:0 0 14px 2px}.job-layout{display:flex;gap:18px;align-items:flex-start}.job-main{flex:1;min-width:0}.job-sidebar{width:208px;flex-shrink:0;position:sticky;top:76px}.job-side-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 10px 8px}.job-side-item{display:flex;gap:8px;align-items:center;width:100%;padding:8px 10px;border:none;background:none;border-radius:8px;text-align:left;font-weight:600;font-size:13.5px;color:var(--ink)}.job-side-item:hover{background:#f0f3f6}.job-side-item.active{background:#fdf1e6;color:var(--accent-ink)}.job-side-item .job-side-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-side-item.new{color:var(--blue);margin-top:4px}@media(max-width:900px){.job-sidebar{display:none}}.tabs{display:flex;gap:2px;border-bottom:2px solid var(--line);margin-bottom:18px}.tab{background:none;border:none;padding:10px 18px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent-ink);border-bottom-color:var(--accent)}.gantt-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.gantt-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);max-height:calc(100vh - 250px);max-height:calc(100dvh - 250px)}.gantt{position:relative}.gantt-head{display:flex;position:sticky;top:0;background:#fafbfc;border-bottom:1px solid var(--line);z-index:2}.gantt-body{position:relative}.g-row{display:flex;align-items:center;height:40px;border-bottom:1px solid #f0f2f4;position:relative}.g-row:hover{background:#fafcfe}.g-label{position:sticky;left:0;z-index:3;background:var(--panel);flex-shrink:0;width:var(--labelw, 384px);padding:0 10px;font-size:13px;height:100%;display:grid;grid-template-columns:1fr 104px 70px;gap:6px;align-items:center;border-right:1px solid var(--line);white-space:nowrap}.g-row:hover .g-label{background:#fafcfe}.g-label:after{content:"";position:absolute;right:-4px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:4}.g-canvas.body-canvas{cursor:grab}.g-canvas.body-canvas .g-bar{cursor:pointer}.g-canvas.body-canvas .g-bar.editable{cursor:move}.g-label .t-title{display:flex;align-items:center;gap:8px;overflow:hidden}.g-label .task-nm{overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-weight:600}.g-label .task-nm:hover{color:var(--blue)}.g-label.head{font-weight:700;background:#fafbfc;font-size:14px}.g-label.head>div{color:var(--ink)}.g-canvas{position:relative;height:100%;flex-shrink:0}.g-canvas.body-canvas{background-image:repeating-linear-gradient(to right,#f0f2f5 0,#f0f2f5 1px,transparent 1px,transparent 28px)}.g-months-row{display:flex;height:34px;border-bottom:1px solid var(--line);align-items:center}.g-month-cell{font-weight:700;font-size:17px;color:#56677a;height:100%;display:flex;align-items:center;border-left:1px solid var(--line);white-space:nowrap;flex-shrink:0}.g-month-label{position:sticky;left:396px;padding:0 12px;max-width:100%;overflow:hidden}.g-days-row{display:flex;height:36px}.g-day-cell{width:28px;flex-shrink:0;text-align:center;font-size:10px;color:var(--muted);padding-top:2px;line-height:1.3}.g-day-cell b{display:block;font-size:12px;color:var(--ink)}.g-day-cell.we{background:#636ea01f}.g-day-cell.we b{color:var(--muted)}.weekend-shade{position:absolute;top:0;bottom:0;background:#636ea01a}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--red);z-index:1}.g-bar{position:absolute;top:7px;height:26px;border-radius:5px;color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;padding:0 8px;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:0 1px 2px #0000002e;justify-content:center}.bar-label-out{position:absolute;top:11px;font-size:12px;font-weight:600;color:#4a5560;white-space:nowrap;pointer-events:none}.g-bar.editable{cursor:grab}.g-bar.dragging{cursor:grabbing;opacity:.85;z-index:5}.g-bar.done{opacity:.55}.g-bar.changed{outline:2px dashed var(--amber);outline-offset:1px}.g-bar .resize-handle{position:absolute;right:0;top:0;bottom:0;width:9px;cursor:ew-resize}.g-row.mine{background:#fff8e1}.g-row.mine:hover{background:#fff3cd}.g-row.mine .g-label{background:#fff8e1}.g-row.mine .task-nm{font-weight:800}.g-bar.mine{box-shadow:0 0 0 2px #fff,0 0 0 4px #b8860b;z-index:2}.g-bar.mine .bar-nm{font-weight:800}.you-tag{background:#b8860b;color:#fff;font-size:10px;font-weight:800;padding:1px 7px;border-radius:999px;letter-spacing:.4px;text-transform:uppercase}.g-ghost{position:absolute;top:9px;height:22px;border-radius:5px;border:1.5px dashed #9aa5b0;z-index:0}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--muted)}.ms-row{display:flex;border-bottom:1px solid #f0f2f4;position:relative}.ms-name{position:sticky;left:0;z-index:3;background:var(--panel);flex-shrink:0;padding:6px 10px;font-size:13px;border-right:1px solid var(--line);display:flex;align-items:center;gap:6px;flex-wrap:wrap;align-content:center}.ms-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ms-name.head{font-weight:700;background:#fafbfc;font-size:14px;align-items:center}.ms-trade{font-size:11.5px;white-space:nowrap}.ms-flag{font-size:10px;padding:1px 6px}.ms-bar{height:22px;font-size:11.5px;cursor:pointer;z-index:1}.ms-row.conflict,.ms-row.conflict .ms-name{background:#fdf1ef}.ms-danger{position:absolute;top:0;bottom:0;z-index:0;background:repeating-linear-gradient(45deg,#cb3c2e38 0,#cb3c2e38 7px,#cb3c2e0f 7px,#cb3c2e0f 14px);border-left:2px solid var(--red);border-right:2px solid var(--red)}.ms-bar.conflict{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--red);z-index:2;font-weight:800;animation:ms-throb 1.4s ease-in-out infinite}@keyframes ms-throb{0%,to{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--red)}50%{box-shadow:0 0 0 2px #fff,0 0 0 7px #cb3c2e73}}.ms-warn{padding:10px 14px;margin-bottom:12px;border-left:4px solid var(--red)}.ms-pending{padding:10px 14px;margin-bottom:12px;border-left:4px solid var(--amber);display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px}.ms-warn-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:14px;flex-wrap:wrap}.legend .leg{display:flex;align-items:center;gap:6px}.live-btn{border:none;border-radius:999px;padding:9px 18px;font-weight:700;color:#fff;font-size:14px}.live-btn.on{background:var(--green)}.live-btn.on:hover{background:#256f45}.live-btn.off{background:#c77f13}.live-btn.off:hover{background:#a96a0d}.cascade-toggle{display:flex;gap:7px;align-items:center;font-size:13px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.cascade-toggle input{width:15px;height:15px}.tmpl-layout{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:start}.tmpl-list button{display:block;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);background:var(--panel);border-radius:8px;margin-bottom:8px;font-weight:600}.tmpl-list button:hover{border-color:var(--accent)}.tmpl-list button.sel{border-color:var(--accent);background:#fdf7f1}@media(max-width:900px){.tmpl-layout{grid-template-columns:1fr}}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line)}.tbl td{padding:10px 12px;border-bottom:1px solid #f0f2f4;vertical-align:middle}.ledger{table-layout:fixed}.ledger td{vertical-align:top;overflow-wrap:break-word}.ledger tr.room-head td,.ledger tr.draw-note-row td{vertical-align:middle}.tbl tr:hover td{background:#fafcfe}.room-head td{background:#f6f8fa!important;font-weight:700;font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f192380;z-index:100;display:grid;place-items:center;padding:24px}.modal{background:var(--panel);border-radius:14px;width:100%;max-width:640px;max-height:88vh;display:flex;flex-direction:column;overscroll-behavior:contain}.modal.wide{max-width:760px}.modal-head{padding:18px 22px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center}.modal-head h3{font-size:18px}.modal-body{padding:18px 22px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.x-btn{margin-left:auto;background:none;border:none;font-size:20px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:130px 1fr;gap:12px 14px;align-items:center}.form-grid label{font-size:13px;font-weight:600;color:var(--muted)}.form-grid input,.form-grid select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;width:100%}.email-preview{border:1px solid var(--line);border-radius:10px;margin-bottom:14px;overflow:hidden}.email-head{background:#f6f8fa;padding:10px 14px;font-size:13px;border-bottom:1px solid var(--line)}.email-body{padding:12px 14px;font-size:14px;white-space:pre-wrap;font-family:inherit}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#22303e;color:#fff;padding:12px 22px;border-radius:10px;z-index:200;box-shadow:0 6px 20px #0000004d;font-weight:600}.empty{padding:40px;text-align:center;color:var(--muted)}.phone-only{display:none}.inv-search{display:flex;align-items:center;gap:10px;margin-bottom:14px}.inv-search input{flex:1;max-width:460px;padding:9px 12px}.cf-nav{display:flex;align-items:center;gap:8px}.cf-range{font-weight:600;font-size:13.5px;white-space:nowrap}.cf-chart{padding:14px 16px 8px;margin-bottom:14px}.cf-bars{display:flex;align-items:flex-end;gap:4px;height:190px}.cf-bar-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;gap:4px}.cf-bar-val{font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap;height:14px}.cf-bar-track{flex:1;width:100%;display:flex;align-items:flex-end;background:#f4f6f8;border-radius:4px 4px 0 0;overflow:hidden}.cf-bar-fill{width:100%;background:var(--blue);border-radius:4px 4px 0 0;transition:height .18s}.cf-bar-lbl{font-size:10px;color:var(--muted);white-space:nowrap}.cf-bar-col.now .cf-bar-fill{background:var(--accent)}.cf-bar-col.now .cf-bar-lbl,.cf-bar-col.now .cf-bar-val{color:var(--accent-ink);font-weight:700}.cf-card{overflow-x:auto}.cf-tbl{table-layout:fixed;width:100%;min-width:1230px;font-size:12.5px}.cf-tbl th,.cf-tbl td{white-space:nowrap;padding:8px 4px}.cf-tbl .cf-job{width:148px;white-space:normal;overflow-wrap:anywhere;background:var(--panel)}.cf-tbl tr:hover .cf-job{background:#fafcfe}.cf-tbl thead .cf-job{background:var(--panel)}.cf-tbl .cf-month{text-align:right}.cf-tbl th.cf-month{color:var(--muted);font-size:10.5px;letter-spacing:0}.cf-tbl .cf-month.now{background:#fdf4ea}.cf-tbl th.cf-month.now{background:#f7e6d2;color:var(--accent-ink)}.cf-tbl .cf-total{width:86px;text-align:right;font-weight:700;background:#f1edfa;color:#5b3e96;border-left:2px solid #d4c8ec}.cf-tbl th.cf-total{background:#e4dbf4}.cf-tbl .cell-input{width:100%;text-align:right;font-size:12px;padding:4px 3px}.cf-sum td{font-weight:700;border-top:2px solid var(--line);background:#f6f8fa}.cf-sum .cf-job{background:#f6f8fa!important}.cf-run td{font-weight:600;color:var(--blue);background:#f6f8fa}.cf-run .cf-job{background:#f6f8fa!important;color:var(--ink)}.upload-row{display:flex;gap:10px;align-items:center;padding:14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.file-cat{padding:8px 10px;border:1px solid var(--line);border-radius:8px}.doc-icon{width:34px;height:34px;border-radius:8px;background:#eef1f4;display:grid;place-items:center;font-size:15px}.folder-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#f9fafb;border-radius:var(--radius) var(--radius) 0 0;font-size:15px}.drop-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}@media(max-width:900px){.drop-row{grid-template-columns:1fr}}.dropzone{border:2px dashed #b9c3cd;border-radius:var(--radius);background:var(--panel);padding:18px 20px;font-size:14px;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s}.dropzone b{color:var(--ink)}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:#fdf7f1}.dropzone.invoices{border-color:#9db8d4}.dropzone.invoices:hover,.dropzone.invoices.over{border-color:var(--blue);background:#f2f7fc}.ai-status{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:13px;font-weight:600;color:var(--ink)}.ai-status:hover{text-decoration:underline}.draw-picker{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.draw-picker select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-weight:600}.invoice-row{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:10px}.invoice-row-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.invoice-row-fields{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.invoice-row-fields label{display:flex;align-items:center;gap:4px;font-weight:600}.import-msg{margin-bottom:12px;font-size:14px;color:var(--blue);font-weight:600}.budget-tbl th,.budget-tbl td{white-space:nowrap;box-sizing:border-box}.budget-tbl .sticky-col{width:220px;min-width:220px;max-width:220px}.budget-tbl .col-budget,.budget-tbl .col-remaining,.budget-tbl .col-drawn{position:sticky;z-index:1;width:114px;min-width:114px;max-width:114px}.budget-tbl .col-budget{left:220px}.budget-tbl .col-remaining{left:334px}.budget-tbl .col-drawn{left:448px}.budget-tbl .col-budget{background:#eaf1fa;border-left:2px solid #c3d6ec}.budget-tbl th.col-budget{background:#d9e7f6;color:#2f5f96}.budget-tbl .col-draw.even{background:#fbf5ea}.budget-tbl .col-draw.odd{background:#f5ecdb}.budget-tbl .col-draw{border-left:1px solid #e8dcc4}.budget-tbl th.col-draw{color:#8a6d1f}.budget-tbl th.col-draw.even{background:#f3e8d0}.budget-tbl th.col-draw.odd{background:#ede0c2}.budget-tbl .col-drawn{background:#f7efdf;border-left:2px solid #dcc99a;border-right:2px solid #dcc99a;font-weight:600}.budget-tbl th.col-drawn{background:#efe2c6;color:#7c5f14}.budget-tbl .col-remaining{background:#f1edfa;border-left:2px solid #d4c8ec;color:#5b3e96}.budget-tbl th.col-remaining{background:#e4dbf4;color:#5b3e96}.budget-tbl tr:hover td.col-budget{background:#dfeaf7}.budget-tbl tr:hover td.col-draw.even{background:#f5edda}.budget-tbl tr:hover td.col-draw.odd{background:#efe4cb}.budget-tbl tr:hover td.col-drawn{background:#f1e6cd}.budget-tbl tr:hover td.col-remaining{background:#e8e0f5}.budget-tbl.readonly{width:auto;min-width:0}.budget-tbl.readonly .sticky-col,.budget-tbl.readonly .col-budget,.budget-tbl.readonly .col-remaining,.budget-tbl.readonly .col-drawn{position:static;width:auto;min-width:0;max-width:none}.budget-tbl.readonly .sticky-col{min-width:200px}.budget-tbl.readonly td,.budget-tbl.readonly th{padding:10px 18px}.budget-total td.col-budget,.budget-total td.col-drawn,.budget-total td.col-remaining,.budget-total td.col-draw{font-weight:700}.budget-tbl .sticky-col{position:sticky;left:0;background:var(--panel);z-index:1;min-width:200px}.budget-tbl tr:hover .sticky-col{background:#fafcfe}.budget-tbl thead .sticky-col{background:var(--panel)}.budget-total td{font-weight:700;border-top:2px solid var(--line);background:#f6f8fa}.budget-total .sticky-col{background:#f6f8fa!important}.cell-input{border:1px solid transparent;border-radius:6px;padding:5px 7px;width:86px;background:transparent;text-align:right;font:inherit;font-size:13px}.cell-input.name{width:168px;text-align:left;font-weight:600}.line-cell{display:flex;align-items:center;gap:2px}.line-remove{opacity:0;border:none;background:none;color:var(--red);font-size:13px;cursor:pointer;padding:2px 5px;border-radius:5px;flex-shrink:0}.budget-tbl tr:hover .line-remove{opacity:1}.line-remove:hover{background:#fbeae7}.cell-input:hover{border-color:var(--line)}.cell-input:focus{border-color:var(--accent);outline:none;background:#fff}.import-section{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden}.import-section-head{display:flex;align-items:center;padding:10px 14px;background:#f6f8fa;border-bottom:1px solid var(--line)}.import-line{display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid #f4f6f8;font-size:14px;cursor:pointer}.import-line:last-child{border-bottom:none}.import-line:hover{background:#fafcfe}.import-line.off{color:var(--muted)}.import-line-name{flex:1}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:none;background:var(--panel);padding:7px 16px;font-weight:600;font-size:13px;color:var(--muted);cursor:pointer}.seg button.active{background:#22303e;color:#fff}.cal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}.cal{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel)}.cal-head-row{display:grid;grid-template-columns:repeat(7,1fr);background:#fafbfc;border-bottom:1px solid var(--line)}.cal-dow{padding:8px 4px;font-size:12px;font-weight:700;color:var(--muted);text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-cell{min-height:96px;border-right:1px solid #f0f2f4;border-bottom:1px solid #f0f2f4;padding:5px 6px;overflow:hidden}.cal-cell:nth-child(7n){border-right:none}.cal-cell.other{background:#fafbfc}.cal-cell.other .cal-date{color:#c2c9d1}.cal-cell.we{background:#636ea012}.cal-date{font-size:12px;font-weight:600;margin-bottom:4px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%}.cal-date.today{background:var(--blue);color:#fff}.cal-chip{display:block;width:100%;text-align:left;border:none;font-size:11px;font-weight:600;color:#fff;border-radius:4px;padding:2px 6px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-week{position:relative;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:min-content;min-height:96px;padding-bottom:6px}.cal-week-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(7,1fr);z-index:0}.cal-week-bg .cal-cell{min-height:0;padding:0}.cal-date-cell{grid-row:1;padding:5px 6px 3px;z-index:1}.cal-date-cell .cal-date{margin-bottom:0}.cal-date-cell.other .cal-date{color:#c2c9d1}.cal-bar{z-index:1;display:block;text-align:left;border:none;min-width:0;font-size:11px;font-weight:600;color:#fff;border-radius:4px;padding:2px 6px;margin:0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-bar.cont-l{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.cal-bar.cont-r{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.cal-bar.pending{outline:2px dashed var(--amber);outline-offset:-2px}.draw-note-row td{background:#fdfbf4!important;font-size:13px;color:#5a6470}.draw-note-row.add td{background:var(--panel)!important;padding-top:4px;padding-bottom:4px}.draw-note-row.add .link-btn{font-size:12px;color:var(--muted)}.draw-note-row.add .link-btn:hover{color:var(--blue)}.note-edit{display:flex;gap:8px;align-items:flex-start}.note-edit textarea{flex:1;padding:6px 9px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px}.notes-list{padding:6px 0}.note-item{padding:12px 18px;border-bottom:1px solid #f0f2f4;font-size:14px}.note-item:last-child{border-bottom:none}.note-date{display:flex;align-items:center;font-weight:700;font-size:13px;color:var(--muted);margin-bottom:4px}.media-date{font-weight:700;font-size:13px;color:var(--muted);margin:4px 0 8px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.media-card{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:0;background:#0d1117;overflow:hidden;cursor:pointer;aspect-ratio:4 / 3}.media-card:hover{box-shadow:0 2px 10px #0000002e}.media-thumb{width:100%;height:100%;object-fit:cover;display:block}.media-loading{display:grid;place-items:center;color:#8a94a3;font-size:20px}.media-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#0000008c;color:#fff;font-size:15px;display:grid;place-items:center;padding-left:3px;pointer-events:none}.media-length{position:absolute;right:6px;bottom:6px;background:#000000b3;color:#fff;font-size:11px;font-weight:600;border-radius:4px;padding:1px 6px}.media-caption{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 5px;background:linear-gradient(transparent,#000000bf);color:#fff;font-size:12px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-length+.media-caption{padding-right:52px}.media-modal{width:min(920px,94vw)}.media-stage{background:#0d1117;display:grid;place-items:center;min-height:200px}.media-stage img,.media-stage video{max-width:100%;max-height:68vh;display:block}.login-form{display:flex;flex-direction:column;gap:10px;margin-top:14px}.login-form input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:14px}.login-form .btn{padding:10px;font-size:14.5px}.login-error{background:#fdecea;color:var(--red);border-radius:8px;padding:8px 12px;font-size:13.5px}.login-switch{margin-top:14px;font-size:13.5px;color:var(--muted);text-align:center}.pill.expired{background:#fbe3df;color:var(--red)}.pill.planned{background:#ece5f6;color:var(--violet, #7e57c2)}.ins-banner{border-left:4px solid var(--red);margin-bottom:16px;padding:12px 16px}.ins-banner.warn-only{border-left-color:var(--amber)}.g-day-cell.clickable{cursor:pointer}.g-day-cell.clickable:hover{background:#eef4fb}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}@media(max-width:700px){input,select,textarea{font-size:16px}html,body{max-width:100%;overflow-x:clip}select,input,textarea{max-width:100%}.card>div{min-width:0}.card{overflow-wrap:anywhere}.topbar{gap:10px;height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) calc(10px + env(safe-area-inset-right)) 0 calc(10px + env(safe-area-inset-left))}.brand{font-size:15px;gap:6px}.brand-icon{height:24px}.topbar nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-width:0}.topbar nav::-webkit-scrollbar{display:none}.nav-btn{padding:8px 10px;font-size:13px;white-space:nowrap;flex-shrink:0}.topbar-right{gap:8px}.user-chip{display:none}.desktop-only{display:none!important}.ghost-btn{padding:6px 9px;font-size:12px;white-space:nowrap}.main{padding:12px calc(10px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left))}.page-head{gap:10px;margin-bottom:12px}.page-head h2{font-size:19px}.card:has(.tbl),.card:has(table){overflow-x:auto;-webkit-overflow-scrolling:touch}.card .purchases-tbl{min-width:780px}.purchases-tbl td:nth-child(2){min-width:200px}.card .tbl{min-width:560px}.tbl th,.tbl td{padding:8px}.job-grid{grid-template-columns:1fr}.jl-row{flex-wrap:wrap;gap:7px 10px;padding:12px 14px}.jl-main,.jl-progress{width:100%}.jl-next{flex-basis:100%;white-space:normal}.jl-chev{display:none}.my-tasks{padding:14px}.my-task-row{flex-wrap:wrap;gap:6px 8px;padding:10px 0}.my-task-row .spacer{flex-basis:100%;height:0;flex-grow:0}.my-task-row .btn.small{margin-left:0!important;white-space:nowrap}.my-task-row .pill{margin-left:0!important}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}.tabs::-webkit-scrollbar{display:none}.tab{padding:10px 12px;white-space:nowrap;flex-shrink:0;font-size:14px}.g-label{display:none}.gantt-wrap{max-height:62vh;max-height:62dvh;-webkit-overflow-scrolling:touch}.g-month-label{left:0}.g-month-cell{font-size:14px}.bar-label-out{font-size:11.5px}.g-bar{justify-content:flex-start;overflow:visible}.g-bar .bar-nm{position:sticky;left:8px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-cell{min-height:64px;padding:3px}.cal-chip{font-size:10px;padding:1px 4px}.cal-week{min-height:64px}.cal-week-bg .cal-cell{min-height:0;padding:0}.cal-date-cell{padding:3px 3px 2px}.cal-bar{font-size:10px;padding:1px 4px;margin:0 2px 2px}.cal-bar.cont-l{margin-left:0}.cal-bar.cont-r{margin-right:0}.phone-only{display:flex}.hide-on-phone{display:none}.drop-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.dropzone{padding:10px 8px;font-size:12px;text-align:center}.ai-status{display:none}.budget-phone-toggle{align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.budget-phone-toggle .seg button{padding:6px 14px}.budget-tbl{font-size:12.5px}.budget-tbl th,.budget-tbl td{padding:7px 5px}.budget-tbl .col-budget,.budget-tbl .col-remaining,.budget-tbl .col-drawn{position:static}.card .docs-tbl{min-width:0}.docs-tbl td:last-child{white-space:normal}.budget-tbl.phone-summary{width:100%;min-width:0}.budget-tbl.phone-summary .col-draw{display:none}.budget-tbl.phone-summary .sticky-col{width:auto;min-width:0;max-width:none;white-space:normal;overflow-wrap:anywhere}.budget-tbl.phone-summary .col-budget,.budget-tbl.phone-summary .col-remaining,.budget-tbl.phone-summary .col-drawn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-tbl.phone-summary .col-remaining,.budget-tbl.phone-summary .col-drawn{width:76px;min-width:76px;max-width:76px}.budget-tbl.phone-summary .col-budget{width:62px;min-width:62px;max-width:62px}.budget-tbl.phone-summary tfoot td{font-size:11px}.cf-tbl{table-layout:auto;min-width:760px}.cf-tbl .cf-job{position:sticky;left:0;z-index:1;width:108px;min-width:108px;max-width:108px}.cf-tbl .cf-month{width:68px;min-width:68px}.cf-tbl .cf-total{width:74px;min-width:74px}.cf-tbl .cell-input{width:60px}.cf-range{font-size:12.5px}.cf-chart{padding:10px 8px 6px}.cf-bars{height:150px;gap:2px}.cf-bar-val{font-size:8px;height:11px}.cf-bar-lbl{font-size:8px}.ledger{table-layout:auto}.card .ledger{min-width:600px}.ledger th[style],.ledger td[style]{width:auto!important}.ledger th,.ledger td{padding:8px 6px}.ledger .room-head td{white-space:normal}.ledger .file-cat{max-width:120px}.ledger tbody td>b{display:block;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-tbl.phone-summary th{font-size:10px;letter-spacing:0}.budget-tbl.phone-summary td,.budget-tbl.phone-summary th{padding:7px 3px}.budget-tbl.phone-summary .cell-input{width:100%;font-size:12.5px;padding:3px 2px}.budget-tbl.phone-summary .cell-input.name{width:100%;font-size:12.5px}.budget-tbl.phone-summary .line-remove{display:none}.budget-tbl:not(.phone-summary) .sticky-col{width:132px;min-width:132px;max-width:132px}.budget-tbl:not(.phone-summary) .cell-input.name{width:112px}.modal-backdrop{padding:8px;align-items:end}.modal{max-height:94vh;border-radius:14px 14px 0 0}.modal-head{padding:14px 16px 10px}.modal-body{padding:14px 16px}.modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.form-grid{grid-template-columns:1fr;gap:4px 0}.form-grid label{margin-top:8px}.media-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.upload-row{padding:10px;gap:8px}.empty{padding:24px 14px}.toast{width:calc(100% - 24px);text-align:center}.job-details{font-size:12.5px}.legend{font-size:12px;gap:10px}}@media(max-width:700px)and (display-mode:standalone){.topbar{height:calc(52px + max(env(safe-area-inset-top),20px));padding-top:max(env(safe-area-inset-top),20px)}}.audit-summary{padding:14px 16px;margin-bottom:12px}.audit-lights{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 18px}.audit-light-top{font-size:13.5px}.audit-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 12px;flex-wrap:wrap}.audit-chips{display:flex;gap:6px;flex-wrap:wrap}.audit-chips .chip{border:1px solid var(--border, #d6d9de);background:transparent;border-radius:999px;padding:4px 10px;font-size:12.5px;cursor:pointer;color:inherit}.audit-chips .chip.active{background:var(--accent, #c8622a);border-color:var(--accent, #c8622a);color:#fff}.audit-row{display:flex;gap:10px;align-items:flex-start;padding:9px 6px;border-top:1px solid var(--border, #e6e8eb)}.audit-row:first-of-type{border-top:0}.audit-dot{width:9px;height:9px;border-radius:50%;margin-top:6px;flex:0 0 9px;background:#9aa1a9}.audit-row.sev-red .audit-dot{background:var(--red, #c0392b)}.audit-row.sev-yellow .audit-dot{background:#d9a100}.audit-body{flex:1;min-width:0}.audit-title{font-size:13.5px;font-weight:600;overflow-wrap:anywhere}.audit-detail{font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}.audit-action{font-size:12.5px;margin-top:2px}.audit-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}.audit-btns .muted-btn{opacity:.7}.row-active td{font-weight:600}.audit-title.clickable{cursor:pointer}.audit-title.clickable:hover{color:var(--blue)}.audit-caret{display:inline-block;width:14px;color:var(--muted);font-weight:400}.audit-row.open{background:var(--bg-soft, #f6f7f9);border-radius:8px}.audit-panel{margin:8px 0 4px;display:grid;gap:8px}.audit-panel-title{font-size:12.5px;color:var(--muted);font-weight:400}.audit-panel-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.audit-panel-actions .file-cat{max-width:260px}.audit-rec{border:1px solid var(--border, #e6e8eb);border-radius:8px;padding:8px 10px;background:var(--card, #fff)}.audit-rec-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}.audit-rec-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px;font-weight:400}.audit-tbl{font-size:12.5px}.audit-tbl th,.audit-tbl td{padding:4px 8px}.audit-row.for-me{background:#c8622a12;border-radius:8px}.audit-note{font-size:12.5px;margin:3px 0 2px;padding:5px 8px;border-left:3px solid var(--accent, #c8622a);background:var(--card, #fff);border-radius:0 6px 6px 0}.audit-mute{margin:8px 0 4px;padding:8px 10px;border:1px dashed var(--border, #d6d9de);border-radius:8px;display:grid;gap:5px;font-size:13px;font-weight:400}.audit-mute label{display:flex;gap:6px;align-items:center;cursor:pointer}.audit-queue{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-bottom:12px;border-left:4px solid var(--accent, #c8622a)}.audit-answer{margin:6px 0 2px;padding:6px 10px;border-radius:6px;font-size:13px;font-weight:400}.audit-answer.ok{background:#2e6f401a;border-left:3px solid var(--green, #2e6f40)}.audit-answer.err{background:#c0392b14;border-left:3px solid var(--red, #c0392b);color:var(--red, #c0392b)}.topbar nav.topnav{overflow:visible}.nav-group{position:relative;flex-shrink:0}.nav-caret{font-size:10px;margin-left:5px;opacity:.7}.nav-current{font-weight:500;color:#dfe6ec}.nav-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:210px;background:#fff;color:var(--ink);border-radius:10px;padding:6px;box-shadow:0 10px 30px #141e2838;border:1px solid var(--line);z-index:60}.nav-group.open .nav-menu{display:block}@media(hover:hover){.nav-group:hover:not(.picked) .nav-menu{display:block}}.nav-item{display:flex;align-items:center;width:100%;text-align:left;background:none;border:none;padding:9px 12px;border-radius:7px;font-weight:600;color:var(--ink);font-size:14px;cursor:pointer}.nav-item:hover{background:var(--bg)}.nav-item.active{background:#d97b2e1f;color:var(--accent-ink)}.nav-item .nav-badge{margin-left:auto}@media(max-width:700px){.topbar nav.topnav{overflow-x:auto;overflow-y:hidden}.nav-current{display:none}.nav-group .nav-menu{display:none!important}.nav-btn,.nav-item{touch-action:manipulation;-webkit-tap-highlight-color:transparent}}.nav-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:69;background:transparent}.nav-sheet{position:fixed;left:8px;right:8px;top:calc(56px + env(safe-area-inset-top));z-index:70;background:#fff;color:var(--ink);border-radius:10px;padding:6px;box-shadow:0 10px 30px #141e2838;border:1px solid var(--line)}.nav-sheet .nav-item{padding:12px 14px;font-size:15px}@keyframes sel-flash{0%{box-shadow:0 0 0 4px var(--accent)}to{box-shadow:0 0 #d97b2e00}}.sel-tile.sel-just-added{animation:sel-flash 2.4s ease-out}.lab-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.lab-head h3{margin:0}.lab-hint{font-size:13px;flex-basis:100%;max-width:90ch}.lab-small{font-size:12.5px}.lab-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.lab-tab{border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:7px 14px;border-radius:9px;font-weight:600;font-size:14px}.lab-tab:hover{color:var(--ink);border-color:#cfd5dc}.lab-tab.on{background:#22303e;color:#fff;border-color:#22303e}.lab-tab .lab-count{font-weight:500;opacity:.75;margin-left:3px}.lab-subtabs{margin-bottom:10px}.lab-subtabs .lab-tab{padding:5px 11px;font-size:13px}.lab-summary,.lab-roomhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lab-summary{padding:10px 16px;margin-bottom:12px;font-size:14px}.lab-room,.lab-fw,.lab-sheetcard,.lab-note{padding:12px 16px;margin-bottom:14px}.lab-roomhead>b{font-size:15px}.lab-empty{padding:18px;color:var(--muted);margin-bottom:14px}.lab-note{font-size:13.5px;line-height:1.5;border-left:3px solid var(--accent)}.lab-meter{height:7px;width:120px;background:#eef1f4;border-radius:999px;overflow:hidden}.lab-meter i{display:block;height:100%;background:var(--green)}.lab-add{display:flex;gap:14px;padding-top:8px}.lab-tilefoot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:1px}.lab-trade{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;background:#e8f0f9;color:var(--blue);border-radius:3px;padding:1px 6px;white-space:nowrap}.lab-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.lab-sheethead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}.lab-sheethead h4{margin:0;font-size:15px}.lab-scroll{overflow-x:auto}.lab-sheet{border-collapse:collapse;width:100%;font-size:13px}.lab-sheet th{text-align:left;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}.lab-sheet td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle;min-width:110px}.lab-sheet td:first-child,.lab-sheet th:first-child{min-width:0;width:66px}.lab-sheet .num{text-align:right;font-variant-numeric:tabular-nums}.lab-sheet .lab-roomcell{min-width:90px;color:var(--muted);font-weight:600;font-size:12.5px}.lab-sheet .lab-itemcell{min-width:150px}.lab-sheet .lab-notescell{min-width:180px}.lab-itemlink{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--ink);text-align:left}.lab-itemlink:hover{color:var(--accent-ink);text-decoration:underline}.lab-guess{display:inline-block;margin-left:4px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:#9a6200;background:#fdf3d9;border-radius:3px;padding:1px 6px;cursor:help;white-space:nowrap}.lab-tab.zero{opacity:.55}.lab-tab.zero.on{opacity:1}.sel-tile.lab-reading{opacity:.6;cursor:progress}.sel-tile:focus-visible,.lab-bcard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lab-hintbtn{background:none;border:none;padding:6px 8px;font:inherit}.lab-itemroom{display:none}.lab-bphwrap{position:relative}.lab-btag{position:absolute;top:6px;left:6px;font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:1px 6px;border-radius:3px;background:#c94f3d;color:#fff}.lab-btag.pending{background:#66707c}.lab-btag.client_review{background:#b8860b}.lab-thumb{width:58px;height:46px;border-radius:6px;background:#eef1f4;overflow:hidden;flex-shrink:0}.lab-thumb img,.lab-modalthumb img,.lab-fwimg img,.lab-bph img{width:100%;height:100%;display:block}.lab-modalthumb{width:84px;height:84px;border-radius:6px;background:#eceae4;overflow:hidden}.lab-cell{width:100%;min-width:0;border:1px solid transparent;border-radius:6px;padding:4px 6px;background:transparent;font:inherit;font-size:13px;color:var(--ink);resize:vertical;line-height:1.35}.lab-cell:hover{border-color:var(--line);background:#fff}.lab-cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);background:#fff}.lab-cell.derived{color:#66707c;font-style:italic}.lab-cell::placeholder{color:#a0a8b1;opacity:1}.lab-modalcell{border-color:var(--line)!important;background:#fff!important;padding:8px 10px!important;border-radius:8px!important}select.lab-status{font-size:11px;font-weight:700;border:none;border-radius:999px;padding:2px 20px 2px 8px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 6px) 55%;background-size:4px 4px;background-repeat:no-repeat}.lab-previewbtns{display:inline-flex;gap:6px;opacity:.7}.lab-board{background:#eae6dc;color:#2a2622;border-radius:12px;padding:20px 24px;margin-bottom:14px}.lab-board-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;opacity:.7;margin-bottom:10px}.lab-board h3{margin:0 0 2px;font-size:22px;font-weight:700;letter-spacing:.02em;color:#2a2622}.lab-board-sub{font-size:12px;opacity:.7;margin-bottom:16px}.lab-bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:18px 14px}.lab-bcard{cursor:pointer}.lab-bcard:hover .lab-bnm{text-decoration:underline}.lab-bph{aspect-ratio:1;background:#fff;border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#9a948a;font-size:11px;box-shadow:0 1px 3px #0000001f}.lab-bnm{font-weight:600;font-size:12.5px;margin-top:7px;line-height:1.25}.lab-bds{font-size:11px;opacity:.8;line-height:1.3}.lab-brm{font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:.65;margin-top:3px}.lab-fwgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:10px}.lab-fwitem{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:6px;background:#fff;align-content:start}.lab-fwlabel{display:flex;align-items:baseline;gap:8px;justify-content:space-between}.lab-fwlabel b{font-size:13.5px}.lab-fwph{display:block;cursor:pointer}.lab-fwimg{height:96px;border-radius:7px;background:#f3f5f7;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;border:1px dashed #cfd5dc;overflow:hidden}.lab-fwph:hover .lab-fwimg{border-color:var(--accent);color:var(--accent-ink)}.lab-fwitem .lab-cell{border-color:var(--line);background:#fff}.lab-fwitem .lab-fwnotes{min-height:44px}.lab-roomtable td{vertical-align:top}.lab-roomtable .lab-roomname,.lab-roomtable th:first-child{min-width:130px;width:auto}.lab-cardnotes{color:#66707c;font-style:italic;font-size:12px;line-height:1.35;padding:2px 6px 0}.lab-fwhidden{opacity:.6;background:#f6f7f9}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lab-roomtable td:first-child,.lab-roomtable th:first-child{width:auto;min-width:140px}.lab-modal{max-height:90vh;max-height:90dvh}.lab-roomtable .lab-cell{border-color:#edf0f3}.lab-section-h{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);font-weight:700;margin:16px 0 8px}.lab-more{margin-top:14px}.lab-more summary{cursor:pointer;font-weight:600;color:var(--muted);font-size:13px}@media(max-width:700px){.lab-meter{width:80px}.lab-toolbar .btn{flex:1 1 45%}.lab-sheet td{min-width:130px}.lab-fwgrid{grid-template-columns:1fr}.lab .sel-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lab .sel-tile .sel-info{padding:6px 8px 8px}.lab .link-btn{min-height:40px;padding:6px 4px}.lab select.lab-status,.lab .sel-tile select.sel-status{font-size:14px;min-height:34px;padding:4px 22px 4px 9px}.lab .sel-tile .sel-status{top:5px;right:5px}.lab-guess{font-size:11px;padding:3px 8px}.lab-hintbtn{min-height:40px}.lab-tradesheet th:first-child,.lab-tradesheet td:first-child,.lab-tradesheet .lab-roomcell{display:none}.lab-tradesheet .lab-itemcell{position:sticky;left:0;z-index:1;background:var(--panel);min-width:128px;max-width:150px;box-shadow:2px 0 0 var(--line)}.lab-tradesheet .lab-itemroom{display:block}.lab-scroll{-webkit-overflow-scrolling:touch}}@media(max-width:700px){.lab-cell{font-size:16px}}.lab-ro{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#f6f7f9;font-size:13px;min-height:36px}.lab-fwitem .lab-ro{background:#f6f7f9}.lab-doorcard{grid-column:1 / -1;display:grid;gap:6px}.lab-fwitem:has(.lab-doorcard){grid-column:1 / -1}.lab-doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px}.lab-door{border:2px solid var(--line);border-radius:10px;background:#fff;padding:8px 6px 6px;cursor:pointer;display:grid;justify-items:center;gap:4px;color:var(--ink);position:relative}.lab-door:hover:not(:disabled){border-color:#cfd5dc}.lab-door:disabled{cursor:default}.lab-door.on{border-color:var(--accent);box-shadow:0 0 0 2px #d97b2e2e}.lab-door:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lab-door img{height:150px;width:auto;max-width:100%;object-fit:contain}.lab-doorname{font-size:12.5px;font-weight:600;text-align:center;line-height:1.2}.lab-doorpick{font-size:10.5px;font-weight:700;color:var(--accent-ink);text-transform:uppercase;letter-spacing:.3px}@media(max-width:700px){.lab-doors{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.lab-door img{height:120px}}.lab-doormats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.lab-doormat{border:2px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:6px 16px;font-weight:600;font-size:13.5px;cursor:pointer}.lab-doormat:hover:not(:disabled){border-color:#cfd5dc}.lab-doormat:disabled{cursor:default}.lab-doormat.on{border-color:var(--accent);background:#d97b2e1a;color:var(--accent-ink)}.lab-doormat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lab-sizecell{width:64px!important;border-color:var(--line)!important;background:#fff!important;text-align:center}.pm-drop{margin-top:10px;border:2px dashed #cfd5dc;border-radius:10px;padding:34px 16px;text-align:center;color:var(--muted)}.pm-drop.over{border-color:var(--accent);background:#d97b2e0f;color:var(--accent-ink)}.pm-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.pm-tools{display:flex;gap:4px;flex-wrap:wrap}.pm-tool{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:6px 10px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:6px}.pm-tool i{width:12px;height:12px;border-radius:3px;background:var(--k, #999);display:inline-block}.pm-tool.on{border-color:var(--ink);background:#22303e;color:#fff}.pm-hint{margin-top:4px}.pm-scroll{overflow:auto;margin-top:8px;border:1px solid var(--line);border-radius:10px;background:#f0f2f4;max-height:78vh}.pm-stage{position:relative;min-width:100%;background:#fff}.pm-stage img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.pm-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted)}.pm-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.pm-svg.tool-select{cursor:default}.pm-svg.tool-beam,.pm-svg.tool-tg,.pm-svg.tool-stone,.pm-svg.tool-area,.pm-svg.tool-pen,.pm-svg.tool-note,.pm-svg.tool-wood,.pm-svg.tool-tile,.pm-svg.tool-carpet,.pm-svg.tool-lvp{cursor:crosshair}.pm-sched{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 16px;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f8f9fb;font-size:12.5px}.pm-sched .pm-key{margin-right:6px}.pm-sched .pm-sched-labels{color:var(--muted)}.pm-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.pm-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;flex:1}.pm-key{display:inline-flex;align-items:center;gap:6px;font-weight:600}.pm-key i{width:12px;height:12px;border-radius:3px;display:inline-block}.pm-selected{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f8f9fb}.pm-selected input{flex:1;min-width:200px}@media(max-width:700px){.pm-scroll{max-height:70vh}.pm-tool{padding:8px 10px}}.lab-picked{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.lab-picked .lab-door{cursor:default;max-width:220px}.lab-picked .lab-door img{height:170px}.lab-door img.wide{height:150px;width:100%;object-fit:cover;border-radius:6px}.lab-doors.rails{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.lab-picked .lab-door img.wide{height:200px}@media(max-width:700px){.lab-doors.rails{grid-template-columns:repeat(2,minmax(0,1fr))}}.pm-bubble{position:absolute;transform:translate(12px,-50%);z-index:3;display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 8px;box-shadow:0 4px 16px #141e2d2e;font-size:12.5px;max-width:min(320px,80vw)}.pm-bubble.left{transform:translate(calc(-100% - 12px),-50%)}.pm-bubble.below{transform:translate(12px,12px)}.pm-bubble.left.below{transform:translate(calc(-100% - 12px),12px)}.pm-bubble input{flex:1;min-width:120px;border:1px solid var(--line);border-radius:6px;padding:5px 7px;font:inherit;font-size:13px}.pm-bubble-del,.pm-bubble-x{border:none;border-radius:8px;width:36px;height:34px;font-size:16px;cursor:pointer}.pm-bubble-del{background:#f9e9e7;color:#8c2f2f}.pm-bubble-del:hover{background:#f2d4d0}.pm-bubble-x{background:#edf3e3;color:#33691e}.pm-delete{background:var(--red)!important;color:#fff!important}.pm-svg.tool-select:not(.has-sel){touch-action:pan-x pan-y}@media(max-width:700px){.pm-bubble{max-width:70vw}.pm-bubble input{min-width:90px}}.lab-doorwrap{position:relative;display:grid}.lab-doorx{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--red);font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 1px 4px #141e2d2e}.lab-optimg{height:150px;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.lab-optimg img{height:150px;width:auto;max-width:100%;object-fit:contain}.lab-optimg.wide img{width:100%;object-fit:cover;border-radius:6px}.lab-picked .lab-optimg,.lab-picked .lab-optimg img{height:170px}.lab-picked .lab-optimg.wide img{height:200px}.lab-dooradd{border-style:dashed;cursor:pointer;align-content:center;color:var(--muted);min-height:150px}.lab-dooradd:hover{border-color:var(--accent);color:var(--accent-ink)}.lab-dooradd-plus{font-size:28px;line-height:1}.lab-roomphotocell{min-width:96px!important;width:96px}.lab-roomphoto{display:block;cursor:pointer}.lab-roomthumb{width:80px;height:60px;border-radius:6px;background:#f3f5f7;border:1px dashed #cfd5dc;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}.lab-roomthumb img{width:100%;height:100%;object-fit:cover;display:block}.lab-roomphoto:hover .lab-roomthumb{border-color:var(--accent);color:var(--accent-ink)}.lab-roomphoto-links{display:flex;gap:8px;margin-top:3px}.lab-files{padding:12px 16px;margin-bottom:12px}.lab-filelist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.lab-filelist li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line)}.lab-filelist li:first-child{border-top:0}.lab-tradelinks{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.lab-photorow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding:6px;border:2px dashed transparent;border-radius:10px}.lab-photorow.over{border-color:var(--accent);background:#d97b2e0f}.lab-paste summary{font-size:12.5px}.audit-comment{font-size:12.5px;margin:3px 0 2px;padding:4px 8px;border-left:3px solid var(--line, #d8dde3);background:#00000006;border-radius:0 6px 6px 0}.task-info{max-width:460px}.task-info-when{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}.task-info-person{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}.task-info-person:first-of-type{border-top:0}.task-info-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.task-info-actions .btn{text-decoration:none;text-align:center;min-width:88px}@media(max-width:700px){.task-info-person{flex-direction:column}.task-info-actions{flex-direction:row;flex-wrap:wrap}.task-info-actions .btn{min-width:0;flex:1;padding:10px 12px;font-size:15px}}.update-bar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:3000;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:10px 12px 10px 16px;border-radius:12px;background:#22303e;color:#fff;font-size:14px;box-shadow:0 8px 24px #00000040}.update-bar button{border:0;border-radius:8px;padding:7px 14px;background:#d97b2e;color:#fff;font-weight:700;font-size:14px;cursor:pointer}.update-bar button:focus-visible{outline:2px solid #fff;outline-offset:2px}.month-strip{margin-bottom:10px;align-items:center}.month-strip .month-missing{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:#f6dcc0;color:#8a4b12;font-size:11px;font-weight:700;line-height:17px}.month-strip .lab-tab.on .month-missing{background:#d97b2e;color:#fff}.month-strip .month-total{font-size:13px;margin-left:4px}.todo-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--panel)}.seg button{border:none;background:transparent;padding:6px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}.seg button.on{background:var(--accent);color:#fff}.todo-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-top:1px solid var(--line)}.todo-row:first-of-type{border-top:0}.todo-check{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--green)}.todo-main{flex:1;min-width:0;cursor:pointer}.todo-text{font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}.todo-row.done .todo-text{text-decoration:line-through;opacity:.6}.todo-flag{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--red);color:#fff;font-size:11px;font-weight:800;text-align:center;line-height:16px;margin-right:6px;vertical-align:1px}.todo-meta{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:3px;font-size:12.5px}.todo-meta .pill{font-size:11px;padding:1px 8px}.todo-note{font-style:italic;flex-basis:100%}.todo-tail{display:flex;gap:10px;align-items:center;flex-shrink:0;white-space:nowrap;padding-top:2px}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.todo-chip{display:inline-flex;align-items:center;gap:6px}.photo-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.todo-thumb{position:relative;width:88px;height:88px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#eef1f4;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.todo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-x{position:absolute;top:2px;right:2px;border:none;border-radius:50%;width:22px;height:22px;background:#0000008c;color:#fff;font-size:12px;cursor:pointer}.todo-compose textarea,.composer textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:15px;resize:vertical}.todo-compose-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}.todo-section{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.todo-section-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.comment{padding:8px 10px;border-radius:10px;background:#f4f5f7;margin-bottom:8px;font-size:14px}.comment.me{background:#eef3fa}.comment-head{display:flex;gap:8px;align-items:baseline;font-size:12.5px;margin-bottom:2px}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere}.composer{margin-top:10px}.todo-sheet{max-width:620px}.todo-sheet-title{font-size:17px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.todo-sheet-foot{flex-wrap:wrap}.meeting-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:14px;cursor:pointer}.todo-fab{display:none}@media(max-width:700px){.todo-quick{display:grid;grid-template-columns:1fr 1fr}.todo-quick>*{width:100%;min-width:0}.todo-quick input.file-cat:not([type=date]){grid-column:1 / -1;order:-1}.todo-quick .btn{width:auto;justify-self:end}.todo-tail{flex-basis:100%;justify-content:flex-end;padding-left:28px}.todo-row{flex-wrap:wrap}.todo-fab{display:flex;position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:30px;line-height:1;align-items:center;justify-content:center;box-shadow:0 6px 18px #00000040;z-index:30;cursor:pointer}.todos-page{padding-bottom:80px}.todo-sheet-foot .btn{flex:1}}.todo-group{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.todo-group:first-of-type{border-top:0}.todo-group-head{display:flex;align-items:center;gap:7px;margin-bottom:2px}.todo-group .todo-row{padding-left:16px}.invoice-search{display:flex;align-items:center;gap:10px;margin-bottom:10px}.invoice-search input{flex:1;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:14px}.invoice-search input:focus{outline:2px solid var(--accent, #c8763a);outline-offset:1px;border-color:transparent}.lab-tab .lab-files-count{margin-left:5px;font-size:12px}.lab-tab.has-files:not(.on){border-color:#d97b2e;color:var(--ink)}
