:root{--navy: #1b2a4a;--navy-2: #243656;--rust: #c45c26;--rust-dark: #a34b1e;--sand: #f4efe8;--sand-2: #ebe3d8;--steel: #2c3e50;--white: #ffffff;--line: #ddd3c6;--muted: #6d645b;--ok: #2f6b4f;--hold: #8a6d3b;--danger: #9b2c2c;--quoted: #c45c26;--shadow: 0 8px 24px rgba(27, 42, 74, .08);--radius: 10px;--tap: 44px;--sidebar: 300px;--tabbar: calc(56px + env(safe-area-inset-bottom, 0px)) ;--savebar: 52px;font-family:Segoe UI,Helvetica Neue,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--sand);color:var(--steel)}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%}a{color:var(--rust)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.boot-error{max-width:32rem;margin:3rem auto;padding:1.5rem;background:var(--white);border-radius:var(--radius)}.shell{min-height:100dvh;background:var(--sand)}.sidebar{display:flex;flex-direction:column;background:var(--navy);color:#f4efe8;min-height:100dvh;padding:calc(12px + env(safe-area-inset-top,0px)) 14px calc(14px + env(safe-area-inset-bottom,0px));gap:12px}.brand{display:flex;align-items:center;gap:10px;padding:6px 4px 8px}.brand-mark{width:36px;height:36px;border-radius:9px;background:radial-gradient(circle at 50% 34%,var(--rust) 0 7px,transparent 8px),linear-gradient(180deg,transparent 42%,var(--sand) 42%);box-shadow:inset 0 0 0 2px #f4efe826;flex:none}.brand-name{font-weight:700;letter-spacing:.02em;font-size:1.05rem}.brand-sub{font-size:.75rem;opacity:.7}.job-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px}.job-card{display:block;width:100%;text-align:left;background:var(--navy-2);border:1px solid rgba(244,239,232,.08);color:inherit;border-radius:10px;padding:12px;min-height:var(--tap)}.job-card.is-active{background:var(--sand);color:var(--navy);border-color:var(--sand)}.job-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.job-card .muted,.job-card-meta{font-size:.8rem;opacity:.78;margin-top:4px}.job-card.is-active .muted,.job-card.is-active .job-card-meta{opacity:.7}.empty-side{padding:24px 8px;text-align:center;opacity:.9}.sidebar-foot{display:flex;flex-direction:column;gap:8px}.workspace{display:flex;flex-direction:column;min-height:100dvh;min-width:0;background:var(--sand)}.topbar{display:flex;align-items:center;gap:10px;background:var(--navy);color:var(--sand);padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;min-height:56px;position:sticky;top:0;z-index:8}.top-titles{flex:1;min-width:0}.top-titles h1{margin:0;font-size:1.05rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-titles .muted{margin:2px 0 0;font-size:.78rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{width:var(--tap);height:var(--tap);border:0;background:transparent;color:inherit;display:grid;place-items:center;border-radius:10px;flex:none}.icon-btn:focus-visible,.btn:focus-visible,.tab:focus-visible,.d-tab:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--rust);outline-offset:2px}.save-chip{font-size:.75rem;padding:6px 10px;border-radius:999px;background:#f4efe81f;white-space:nowrap}.status-select select{min-height:40px;background:var(--navy-2);color:var(--sand);border:1px solid rgba(244,239,232,.18);border-radius:8px;padding:0 10px}.desktop-tabs{display:none}.pane{flex:1;overflow:auto;padding:16px 16px calc(var(--tabbar) + var(--savebar) + 16px)}.savebar{position:fixed;left:0;right:0;bottom:var(--tabbar);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;background:var(--white);border-top:1px solid var(--line);min-height:var(--savebar);z-index:9}.tabbar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(6,1fr);background:var(--navy);color:#c9c1b5;padding-bottom:env(safe-area-inset-bottom,0px);z-index:10}.tab{min-height:56px;border:0;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;padding:6px 2px 4px}.tab svg{width:20px;height:20px}.tab.is-active{color:var(--sand);box-shadow:inset 0 3px 0 var(--rust)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 16px;border-radius:10px;border:1px solid transparent;font-weight:650;text-decoration:none}.btn-block{width:100%}.btn-primary{background:var(--rust);color:var(--white);border-color:var(--rust)}.btn-primary:hover{background:var(--rust-dark)}.btn-navy{background:var(--navy);color:var(--sand)}.btn-ghost{background:transparent;color:inherit;border-color:currentColor;opacity:.95}.sidebar .btn-ghost{border-color:#f4efe847;color:var(--sand)}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.text-btn{background:none;border:0;color:var(--rust);min-height:36px;padding:0 4px;font-weight:650}.search input,.field input,.field select,.field textarea,.line-row input,.settings-form input{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:8px;background:var(--white);padding:10px 12px;font-size:16px}textarea{min-height:88px;resize:vertical}.field input[readonly]{background:var(--sand-2);font-variant-numeric:tabular-nums}.search input{background:var(--navy-2);color:var(--sand);border-color:#f4efe829}.search input::placeholder{color:#f4efe88c}.form-grid{display:grid;gap:14px}.section-title{margin:0 0 14px;font-size:1.15rem;color:var(--navy)}.label,legend.label{display:block;font-size:.78rem;font-weight:650;letter-spacing:.02em;color:var(--navy);margin-bottom:6px;padding:0}.field{display:block;min-width:0}fieldset.field{border:0;margin:0;padding:0}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--white)}.choice input{width:18px;height:18px;accent-color:var(--rust)}.pill{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:#f4efe824;flex:none}.job-card.is-active .pill{background:var(--sand-2)}.pill-visit{color:#9ec0e6}.job-card.is-active .pill-visit{color:var(--navy)}.pill-quoted{color:#f0b089}.job-card.is-active .pill-quoted{color:var(--rust)}.pill-accepted{color:#8dcfb0}.job-card.is-active .pill-accepted{color:var(--ok)}.pill-on-hold{color:#e0c58a}.job-card.is-active .pill-on-hold{color:var(--hold)}.muted,.hint{color:var(--muted);font-size:.85rem}.hint{margin:8px 0 0}.quote-table-wrap{margin:20px 0}.quote-head{display:none}.line-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px}.line-desc{grid-column:1 / -1}.line-amt{min-height:var(--tap);display:flex;align-items:center;justify-content:flex-end;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}.line-remove{grid-column:1 / -1;justify-self:start}.totals{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:12px 0 18px}.totals div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-variant-numeric:tabular-nums}.total-incl{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:4px 0;font-size:1.05rem;color:var(--navy)}.photo-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.drop-target{display:none}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-card{margin:0;background:var(--white);border-radius:10px;overflow:hidden;border:1px solid var(--line)}.photo-thumb{display:block;width:100%;padding:0;border:0;background:#d7cfc4;aspect-ratio:4 / 3}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-card figcaption{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px}.photo-card select{min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--white);padding:0 8px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b2a4af0;z-index:40;display:grid;grid-template-columns:var(--tap) 1fr var(--tap);grid-template-rows:var(--tap) 1fr auto;align-items:center;justify-items:center;padding:env(safe-area-inset-top,0px) 8px env(safe-area-inset-bottom,0px)}.lightbox[hidden]{display:none}.lightbox img{grid-column:2;grid-row:2;max-width:min(96vw,1100px);max-height:78dvh;object-fit:contain}.lb-close{grid-column:1 / -1;grid-row:1;justify-self:end;background:transparent;color:var(--sand);border:0;min-height:var(--tap);padding:0 12px;font-weight:700}.lb-nav{grid-row:2;width:var(--tap);height:var(--tap);border:0;border-radius:50%;background:#f4efe81f;color:var(--sand);font-size:28px}.lb-meta{grid-column:1 / -1;color:var(--sand);padding:8px}.summary{display:grid;gap:16px}.summary h3{margin:0 0 6px;color:var(--navy);font-size:.9rem}.summary p{margin:0 0 8px}.review-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 8px}.example-flag{background:#f7e2d4;color:var(--rust-dark);padding:10px 12px;border-radius:8px}.install-banner{background:#f7e2d4;color:var(--navy);padding:10px 12px;border-radius:8px;margin-bottom:12px;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.9rem}.sidebar .install-banner{background:#c45c2633;color:var(--sand)}.empty-main{max-width:28rem;margin:12vh auto;text-align:center;padding:16px}.sun-mark{width:64px;height:64px;margin:0 auto 12px;border-radius:50%;background:var(--rust);box-shadow:0 0 0 8px var(--sand-2)}.device-note{margin-top:28px;padding:16px;background:var(--white);border-radius:10px;border:1px solid var(--line)}.device-note .choice{margin:8px 0 12px}.device-note .review-actions{margin-top:12px}.price-book{margin:28px 0 8px}.price-book .section-title{margin-bottom:6px}.price-book-head{display:none}.price-book-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px}.price-book-row .pb-desc,.price-book-row .pb-rate,.price-book-row .pb-use{grid-column:1 / -1}.price-book-row input[type=text],.price-book-row input[type=number]{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:8px;background:var(--white);padding:10px 12px;font-size:16px}.apply-book{margin-top:8px}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar) + 64px);transform:translate(-50%);background:var(--navy);color:var(--sand);padding:10px 16px;border-radius:999px;z-index:50;box-shadow:var(--shadow);max-width:90vw}.toast[hidden]{display:none}.add-line{margin-top:4px}.print-only{display:none}@media(min-width:768px){.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;max-height:100dvh}.workspace{min-height:100dvh}.back-btn,.tabbar,.savebar{display:none!important}.pane{padding:24px 32px 48px}.desktop-tabs{display:flex;gap:4px;padding:8px 24px 0;background:var(--sand);border-bottom:1px solid var(--line);overflow:auto}.d-tab{min-height:var(--tap);padding:0 16px;border:0;background:transparent;color:var(--muted);font-weight:650;border-bottom:3px solid transparent;display:inline-flex;align-items:center;gap:6px}.d-tab.is-active{color:var(--navy);border-bottom-color:var(--rust)}.d-tab .count{background:var(--sand-2);border-radius:999px;padding:0 7px;font-size:.75rem}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:1fr 1fr 1fr}.span-2{grid-column:1 / -1}.quote-head{display:grid;grid-template-columns:minmax(180px,1.8fr) 80px 80px 130px 130px;gap:8px;padding:0 4px 8px;color:var(--navy);font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.quote-head span:nth-child(2),.quote-head span:nth-child(4),.quote-head span:nth-child(5){text-align:right}.line-row{grid-template-columns:minmax(180px,1.8fr) 80px 80px 130px 130px;align-items:center;margin-bottom:6px;padding:6px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.line-desc{grid-column:auto}.line-qty,.line-rate{text-align:right}.price-book-head{display:grid;grid-template-columns:minmax(160px,1.6fr) 72px 80px 120px 150px;gap:8px;padding:0 4px 8px;color:var(--navy);font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.price-book-head span:nth-child(2),.price-book-head span:nth-child(4){text-align:right}.price-book-row{grid-template-columns:minmax(160px,1.6fr) 72px 80px 120px 150px;align-items:center;margin-bottom:6px;padding:6px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.price-book-row .pb-desc,.price-book-row .pb-rate,.price-book-row .pb-use{grid-column:auto}.price-book-row .label{display:none}.price-book-row .pb-qty input,.price-book-row .pb-rate input{text-align:right}.line-amt{justify-content:flex-end}.line-remove{grid-column:1 / -1}.photo-grid{grid-template-columns:repeat(3,1fr);gap:14px}.drop-target{display:block;border:1.5px dashed var(--line);border-radius:10px;padding:18px;text-align:center;color:var(--muted);margin-bottom:14px;background:#ffffff80}.drop-target.is-over{border-color:var(--rust);background:#f7e2d4;color:var(--navy)}.summary{grid-template-columns:1fr 1fr 1fr}.toast{bottom:24px}}@media(min-width:1280px){.pane{padding:28px 40px 56px}.photo-grid{grid-template-columns:repeat(4,1fr)}.quote-head,.line-row{grid-template-columns:minmax(240px,2fr) 88px 88px 140px 140px}.price-book-head,.price-book-row{grid-template-columns:minmax(220px,2fr) 80px 88px 130px 160px}}@media(max-width:767px){.shell[data-mode=jobs] .workspace,.shell[data-mode=job] .sidebar,.shell[data-mode=settings] .sidebar,.shell[data-mode=settings] .tabbar,.shell[data-mode=settings] .savebar{display:none}.shell[data-mode=settings] .pane{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}}@media print{:root{color:#111}body{background:#fff}.no-print,.sidebar,.topbar,.desktop-tabs,.savebar,.tabbar,.toast,.lightbox,.pane,.workspace{display:none!important}.print-only{display:block!important}.print-quote{font-size:11pt;line-height:1.35;color:#111;max-width:100%}.print-head{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid #1b2a4a;padding-bottom:8px;margin-bottom:12px}.print-brand{font-size:16pt;font-weight:800;color:#1b2a4a}.print-right{text-align:right}.print-quote h1{font-size:16pt;margin:12px 0 6px;color:#1b2a4a}.print-quote h2{font-size:12pt;margin:16px 0 6px;color:#1b2a4a}.print-quote table{width:100%;border-collapse:collapse;table-layout:fixed}.print-quote th,.print-quote td{border-bottom:1px solid #d7d1c8;padding:5px 6px;text-align:left;word-wrap:break-word}.print-quote .num{text-align:right;font-variant-numeric:tabular-nums;width:18%}.print-totals{margin-top:10px;width:55%;margin-left:auto}.print-totals th{font-size:12pt}.print-foot{margin-top:18px;font-size:9pt;color:#444}@page{size:A4;margin:12mm}}
