:root{--paper:#f3efe6;--card:#fbf8f2;--ink:#1c1917;--muted:#6b635b;--line:#ddd4c6;--accent:#1e4d3a;--accent-2:#163828;--accent-ink:#fff;--accent-soft:#e0e4da;--accent-text:#1e4d3a;--brass:#b0894f;--live:#2f6f4e;--mid:#b56a1b;--danger:#9b2c1f;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--serif:Fraunces, Georgia, "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;margin:0}body{color:var(--ink);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:"Source Sans 3",system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4}#app{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3.serif,.serif{font-family:var(--serif);letter-spacing:-.02em;font-weight:650}a{color:var(--accent-text)}[hidden]{display:none!important}.topbar{z-index:20;padding:calc(var(--sat) + 10px) calc(var(--sar) + 14px) 10px calc(var(--sal) + 14px);background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(8px);border-bottom:1px solid #0000;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar.scrolled{border-bottom-color:var(--line)}.topbar .grow{flex:1;min-width:0}.topbar .title{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:650;overflow:hidden}.topbar .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.icon-btn{border:1px solid var(--line);background:var(--card);cursor:pointer;width:40px;height:40px;color:var(--ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.icon-btn svg{width:20px;height:20px}.page{width:100%;max-width:560px;padding:8px calc(var(--sar) + 16px) calc(var(--sab) + 32px) calc(var(--sal) + 16px);flex:1;margin:0 auto}.page.center{flex-direction:column;justify-content:center;display:flex}.mark{background:var(--accent);width:44px;height:44px;color:var(--accent-ink);font-family:var(--serif);border-radius:12px;flex-shrink:0;place-items:center;font-size:18px;font-weight:650;display:grid;overflow:hidden}.mark.logo{border:1px solid var(--line);background:#fff}.mark img{object-fit:contain;width:100%;height:100%}.mark.lg{border-radius:18px;width:72px;height:72px;font-size:28px}.mark.xl{border-radius:22px;width:96px;height:96px;font-size:36px}.hero{background:var(--accent);color:var(--accent-ink);margin:0 calc(-16px - var(--sar)) 18px calc(-16px - var(--sal));padding:calc(var(--sat) + 18px) calc(var(--sar) + 18px) 22px calc(var(--sal) + 18px);align-items:center;gap:14px;display:flex}.hero .mark.logo{border-color:#0000}.hero h1{margin:0;font-size:24px;line-height:1.15}.hero p{opacity:.85;margin:2px 0 0;font-size:14px}.page.has-hero{padding-top:0}h1.page-title{margin:6px 0 4px;font-size:30px;line-height:1.1}h2{margin:22px 0 8px;font-size:22px}.lede{color:var(--muted);margin:0 0 18px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:18px 0 8px;font-size:12px;font-weight:700}.muted{color:var(--muted)}.small{font-size:13px}.notfile{color:var(--muted);font-style:italic}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;margin:0 0 12px;padding:14px 16px}.card h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:13px}.kv{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:15px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;margin:0}.row{text-align:left;background:var(--card);border:1px solid var(--line);cursor:pointer;width:100%;color:inherit;border-radius:16px;align-items:center;gap:12px;margin:0 0 10px;padding:12px 14px;text-decoration:none;display:flex}.row .grow{flex:1;min-width:0}.row b{font-size:16px;display:block}.row .meta{color:var(--muted);font-size:13px}.chev{color:var(--muted)}.dot{background:var(--live);border-radius:50%;flex-shrink:0;width:9px;height:9px}.dot.hold{background:var(--mid)}.dot.done{background:var(--brass)}.pill{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.pill.warn{color:#8a4a12;background:#f8e6cc}.empty{text-align:center;color:var(--muted);border:1.5px dashed var(--line);border-radius:16px;padding:28px 12px}.btn{cursor:pointer;background:var(--accent);min-height:48px;color:var(--accent-ink);white-space:nowrap;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.5;cursor:default}.btn.block{white-space:normal;text-align:center;overflow-wrap:anywhere;width:100%;line-height:1.25}.btn.ghost{background:var(--card);color:var(--ink);border:1.5px solid var(--line)}.btn.quiet{color:var(--accent-text);background:0 0;min-height:40px;padding:8px 4px}.btn.danger{color:var(--danger);background:0 0;border:1.5px solid #e5c3bd}.btn.small{border-radius:11px;min-height:38px;padding:6px 12px;font-size:14px}.btn.google{color:#1f1f1f;background:#fff;border:1.5px solid #d6d0c6}.btn-row{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.btn-row>.btn{white-space:normal;text-align:center;overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.25}.row .btn{flex-shrink:0}.field{margin:0 0 14px;display:block}.field>span{margin:0 0 5px;font-size:14px;font-weight:600;display:block}.field>span i{color:var(--muted);font-style:normal;font-weight:400}.field input,.field select,.field textarea,.input{border:1.5px solid var(--line);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:10px 12px;font-size:16px}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:2px solid var(--accent-text);outline-offset:1px}.hint{color:var(--muted);margin:4px 0 0;font-size:13px}.error{color:var(--danger);margin:8px 0;font-size:14px;font-weight:600}.divider{color:var(--muted);align-items:center;gap:10px;margin:18px 0;font-size:13px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.switch{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-weight:600;display:flex}.switch input{width:48px;height:28px;accent-color:var(--mid)}.steps{gap:6px;margin:8px 0 14px;display:flex}.steps i{background:var(--line);border-radius:4px;flex:1;height:4px}.steps i.on{background:var(--accent)}.jstatus{margin:0 0 14px}.jbar-label{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px;margin:2px 0 8px;font-size:14px;display:flex}.jbar-phase{color:var(--ink);font-family:var(--serif);font-size:18px;font-weight:650}.jbar-paused{letter-spacing:.1em;text-transform:uppercase;color:#8a4a12;background:#f8e6cc;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700;display:none}.jbar{background:#e6ddcf;border-radius:999px;height:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000a}.jbar-fill{border-radius:inherit;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 70%, #fff), var(--accent));height:100%;transition:width .35s;display:block}.jstatus.done .jbar-fill{background:linear-gradient(90deg, var(--accent), var(--brass))}.jstatus.paused .jbar-fill{background:repeating-linear-gradient(-45deg,#a39889 0 6px,#c2b8aa 6px 12px)}.jstatus.paused .jbar-phase{color:var(--muted)}.jstatus.paused .jbar-paused{display:inline-block}.hold-alert{color:#7a3a0c;border:1px solid #ebbd84;border-left:4px solid var(--mid);background:#fbead3;border-radius:12px;align-items:center;gap:8px;margin-bottom:12px;padding:9px 12px;font-size:15px;font-weight:700;line-height:1.3;display:flex}.hold-alert:before{content:"";border-left:3px solid;border-right:3px solid;flex-shrink:0;width:3px;height:11px}.jstatus.compact{margin:6px 0 0}.jstatus.compact .jbar{height:5px}.jstatus.compact .jbar-label{margin:0 0 4px;font-size:12px}.jstatus.compact .jbar-phase{font-family:inherit;font-size:12px;font-weight:700}.jstatus.compact .hold-alert{color:#9a4f10;background:0 0;border:0;gap:6px;margin:0 0 4px;padding:0;font-size:12px}.jstatus.compact .hold-alert:before{border-width:2.5px;width:2px;height:9px}.phases{margin:10px 0 0;padding:0;font-size:14px;list-style:none}.phases li{color:var(--muted);align-items:center;gap:8px;padding:3px 0;display:flex}.phases li:before{content:"";border:1.5px solid var(--line);border-radius:50%;flex-shrink:0;width:10px;height:10px}.phases li.past{color:var(--ink)}.phases li.past:before{background:var(--accent);border-color:var(--accent)}.phases li.now{color:var(--ink);font-weight:700}.phases li.now:before{background:var(--paper);border:3px solid var(--accent)}.stepper{align-items:center;gap:8px;margin:10px 0;display:flex}.stepper select{flex:1}.stepper .icon-btn{border-radius:12px;width:48px;height:48px}.swatches{grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 12px;display:grid}.swatch{background:var(--card);cursor:pointer;border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;font-size:12px;font-weight:600;display:flex}.swatch i{width:36px;height:36px;box-shadow:inset 0 0 0 3px var(--sw-paper,#fff);border:1px solid #0000001a;border-radius:50%;display:block}.swatch[aria-pressed=true]{border-color:var(--ink)}.custom-color{align-items:center;gap:10px;display:flex}.custom-color input[type=color]{border:1.5px solid var(--line);background:#fff;border-radius:12px;width:56px;height:48px;padding:3px}.contrast{border-radius:12px;align-items:flex-start;gap:8px;margin:10px 0;padding:9px 12px;font-size:14px;display:flex}.contrast.good{color:#1d4d33;background:#e3efe6}.contrast.ok{color:#6c4b0c;background:#f7efd9}.contrast.low{color:#7d2417;background:#f9e0dc;font-weight:700}.preview{border:1px solid var(--line);background:var(--paper);border-radius:18px;margin:8px 0 16px;overflow:hidden}.preview .hero{margin:0;padding:14px 16px}.preview .hero h1{font-size:19px}.preview .pv-body{padding:12px 14px 14px}.preview .pv-body .btn{min-height:40px;font-size:14px}.logo-drop{border:1.5px dashed var(--line);background:var(--card);border-radius:16px;align-items:center;gap:14px;padding:14px;display:flex}.logo-drop .mark{border-radius:18px;width:88px;height:88px}.sheet{z-index:100;color:#111;padding:calc(var(--sat) + 12px) calc(var(--sar) + 18px) calc(var(--sab) + 24px) calc(var(--sal) + 18px);text-align:center;background:#fff;flex-direction:column;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.sheet .close{top:calc(var(--sat) + 12px);right:calc(var(--sar) + 14px);color:#111;background:#fff;border:2px solid #111;position:absolute}.sheet .mark{margin:26px 0 8px}.sheet .kicker{text-transform:uppercase;letter-spacing:.1em;color:#444;margin:8px 0 2px;font-size:13px;font-weight:700}.sheet h2{margin:2px 0 14px;font-size:26px}.sheet img.qr{width:min(92vw,420px);height:auto;image-rendering:pixelated}.sheet .cap{margin:12px 0 4px;font-size:17px;font-weight:700}.sheet .url{color:#555;overflow-wrap:anywhere;max-width:420px;margin:0 0 12px;font-size:13px}.sheet .btn-row{width:100%;max-width:420px}.sheet .btn.ghost{color:#111;background:#fff;border:2px solid #111}.pay-sheet{text-align:left;align-items:stretch}.pay-sheet h2,.pay-sheet .kicker,.pay-sheet .cap{text-align:left}.pay-sheet .pay-method{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;margin:0 0 10px;display:flex}.pay-sheet .pay-method span{color:#444;font-size:14px;font-weight:500}.pay-sheet .confirm-box{width:100%;max-width:420px}.toast{left:50%;bottom:calc(var(--sab) + 24px);z-index:200;color:#fff;background:#1c1917;border-radius:12px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0003}.signin-brand{text-align:center;flex-direction:column;align-items:center;gap:8px;margin:24px 0 18px;display:flex}.signin-brand h1{margin:6px 0 0;font-size:30px}.gmark{width:20px;height:20px}details.fold{background:var(--card);border:1px solid var(--line);border-radius:16px;margin:0 0 12px;padding:12px 16px}details.fold>summary{cursor:pointer;justify-content:space-between;font-weight:700;list-style:none;display:flex}details.fold>summary:after{content:"+";color:var(--muted);font-size:20px;line-height:1}details.fold[open]>summary:after{content:"–"}.phase-edit{align-items:center;gap:6px;margin:6px 0;display:flex}.phase-edit input{flex:1;min-height:42px}.phase-edit .icon-btn{width:38px;height:38px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:40px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.foot{text-align:center;color:var(--muted);margin:28px 0 0;font-size:12px}.btn svg{flex-shrink:0;width:18px;height:18px}.tabs{top:calc(var(--sat) + 60px);z-index:15;padding:6px calc(var(--sar) + 12px) 8px calc(var(--sal) + 12px);background:var(--paper);border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;display:flex;position:sticky;overflow-x:auto}.page.has-hero .tabs{margin:-18px calc(-16px - var(--sar)) 0 calc(-16px - var(--sal));padding-top:calc(var(--sat) + 6px);position:sticky;top:0}.tabs button{min-height:40px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:14px;font-weight:700;display:inline-flex}.tabs button.on{background:var(--accent);color:var(--accent-ink)}.badge{color:#fff;background:#c2410c;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:800;display:inline-grid}.chips{scrollbar-width:none;gap:8px;padding:4px 0 10px;display:flex;overflow-x:auto}.chip{border:1.5px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:7px 14px;font-weight:700;display:inline-flex}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.chat{flex-direction:column;min-height:50vh;display:flex}.msgs{flex-direction:column;gap:8px;padding:4px 0 12px;display:flex}.msg{align-self:flex-start;max-width:86%}.msg.mine{text-align:right;align-self:flex-end}.msg .bubble{text-align:left;background:var(--card);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px 16px 16px 4px;padding:9px 12px;font-size:16px;display:inline-block}.msg.mine .bubble{background:var(--accent);color:var(--accent-ink);border-color:#0000;border-radius:16px 16px 4px}.msg .who{color:var(--muted);margin:0 0 2px 4px;font-size:12px;font-weight:700}.msg .when{color:var(--muted);margin:2px 4px 0;font-size:11px}.composer{padding:10px 0 calc(var(--sab) + 10px);background:var(--paper);align-items:flex-end;gap:8px;display:flex;position:sticky;bottom:0}.composer .input{resize:none;flex:1;min-height:48px}.card .composer,.tasks-fold .composer{background:0 0;padding:8px 0 0;position:static}.confirm-box{border:2px solid var(--accent);background:#fff;border-radius:16px;margin:10px 0;padding:14px 16px}.confirm-box p{margin:0 0 6px}.quote-doc{border:1px solid var(--line);background:#fff;border-radius:16px;margin:0 0 12px;padding:14px 16px}.qscope{white-space:pre-wrap;margin:8px 0 10px}.qnotes{white-space:pre-wrap;color:var(--muted);border-top:1px dashed var(--line);margin:10px 0 0;padding-top:8px;font-size:14px}.lines{border-collapse:collapse;width:100%;font-size:15px}.lines td{vertical-align:top;border-bottom:1px solid #eee7da;padding:7px 0}.lines td.amt{text-align:right;white-space:nowrap;padding-left:10px;font-weight:600}.lines .qsec td{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-top:12px;font-size:12px;font-weight:700}.lines tfoot td{border-bottom:0}.lines .qtotal td{font-family:var(--serif);border-top:2px solid var(--ink);padding-top:10px;font-size:20px;font-weight:650}.qitem{border:1px solid var(--line);border-left:4px solid var(--accent);background:#fff;border-radius:12px;gap:8px;margin:0 0 10px;padding:10px;display:grid}.qitem.materials{border-left-color:var(--brass)}.qitem-top{align-items:center;gap:6px;display:flex}.qitem-top select{flex-shrink:0;width:118px;min-height:44px}.qitem-top .grow{flex:1;min-width:0;min-height:44px}.qitem-nums{grid-template-columns:1fr 1fr 1.3fr 1.1fr;align-items:end;gap:6px;display:grid}.qitem-nums label span,.qamt span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:11px;font-weight:700;display:block;overflow:hidden}.qitem-nums .input{min-height:44px;padding:8px}.qamt b{text-align:right;min-height:44px;line-height:44px;display:block}.input.small{min-height:40px;font-size:14px}.qsum{border-top:2px solid var(--ink);justify-content:space-between;align-items:baseline;gap:8px;padding-top:6px;display:flex}.qsum span{color:var(--muted);font-size:13px}.qsum b{font-family:var(--serif);font-size:22px}.decision{border-radius:12px;margin:0 0 10px;padding:8px 12px;font-size:14px;font-weight:700}.decision.ok{color:#1d4d33;background:#e3efe6}.decision.no{color:#7d2417;background:#f9e0dc}.decision.wait{color:#6c4b0c;background:#f7efd9}.task{border-bottom:1px solid #eee7da;align-items:center;gap:10px;padding:8px 0;font-size:16px;display:flex}.task input[type=checkbox]{width:24px;height:24px;accent-color:var(--accent);flex-shrink:0}.task .done{color:var(--muted);text-decoration:line-through}.task .grow{flex:1}.tasks-fold{border-left:2px solid var(--line);margin:-4px 0 12px;padding:0 4px 0 14px}.tasks-fold>summary{cursor:pointer;color:var(--accent-text);padding:4px 0 8px;font-size:14px;font-weight:700}.update-text{white-space:pre-wrap;margin:6px 0 8px}.photo-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.photo-grid.n1{grid-template-columns:1fr}.photo-grid.n2{grid-template-columns:1fr 1fr}.ph{aspect-ratio:1;cursor:pointer;background:#e6ddcf;border:0;border-radius:10px;padding:0;position:relative;overflow:hidden}.photo-grid.n1 .ph{aspect-ratio:4/3}.ph img{object-fit:cover;width:100%;height:100%;display:block}.ph-x{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:50%;width:28px;height:28px;font-size:18px;line-height:1;position:absolute;top:4px;right:4px}.btn.disabled{opacity:.5;pointer-events:none}.lightbox{z-index:120;padding:calc(var(--sat) + 56px) 8px calc(var(--sab) + 16px);background:#000000eb;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.lightbox img{object-fit:contain;max-width:100%;max-height:100%}.lightbox .close{top:calc(var(--sat) + 10px);right:calc(var(--sar) + 12px);position:absolute}.assistant{z-index:110;background:var(--paper);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.asst-head{padding:calc(var(--sat) + 10px) calc(var(--sar) + 12px) 10px calc(var(--sal) + 16px);border-bottom:1px solid var(--line);background:var(--paper);align-items:center;gap:8px;display:flex}.asst-head .title{font-family:var(--serif);font-size:20px;font-weight:650}.asst-head .sub{color:var(--muted);font-size:12px}.asst-body{padding:14px calc(var(--sar) + 16px) 8px calc(var(--sal) + 16px);-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.asst-composer{padding:10px calc(var(--sar) + 16px) calc(var(--sab) + 10px) calc(var(--sal) + 16px);border-top:1px solid var(--line)}.asst-composer .input{max-height:30vh}.chips.wrap{flex-wrap:wrap;padding:0;overflow:visible}.asst-card{border:1.5px solid var(--accent);text-align:left;background:#fff;border-radius:14px;margin-top:6px;padding:10px 12px}.asst-warn{color:#7a4a06;text-align:left;background:#f7efd9;border-radius:8px;margin-top:4px;padding:6px 10px;font-size:13px}.bubble.err{color:#7d2417!important;background:#f9e0dc!important}.msg .bubble{max-width:100%}.dots{gap:4px;display:inline-flex}.dots i{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite dot}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,80%,to{opacity:.25}40%{opacity:1}}.asst-btn{background:var(--accent);min-height:40px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:800;display:inline-flex}.asst-btn svg{width:16px;height:16px}.asst-head .grow{flex:1;min-width:0}.nudge{background:var(--accent-soft);color:var(--accent-text);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.nudge .grow{flex:1;min-width:160px}.row-link{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;align-items:center;gap:10px;display:flex}.row-link .grow{flex:1}.lead.closed{opacity:.6}.pill.grey{color:var(--muted);background:#ece6db}.hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.bizcard{text-align:left;border-top:8px solid var(--accent);width:100%;color:var(--ink);background:#fff;border-radius:18px;margin:6px 0 14px;padding:16px 18px 12px;box-shadow:0 6px 24px #0000001a}.bizcard-top{align-items:center;gap:14px;display:flex}.bizcard-top .grow{flex:1;min-width:0}.bizcard-name{font-family:var(--serif);font-size:22px;font-weight:650;line-height:1.15}.bizcard-trade{color:var(--accent-text);margin-top:2px;font-size:14px;font-weight:700}.bizcard-rows{grid-template-columns:auto 1fr;gap:6px 14px;margin:14px 0 4px;font-size:15px;display:grid}.bizcard-rows dt{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-top:2px;font-size:13px;font-weight:700}.bizcard-rows dd{overflow-wrap:anywhere;margin:0}.share-sheet{overflow-y:auto}.share-sheet .qr{width:220px;height:220px}.reco{background:var(--accent-soft);color:var(--accent-text);border-radius:14px;margin:0 0 12px;padding:10px 14px;font-weight:700}.pill.ref{background:var(--accent-soft);color:var(--accent-text);margin-top:6px;display:inline-block}.detail-meter{margin:-4px 0 12px;font-size:14px}.detail-meter .dm-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.dm-bar{gap:4px;display:inline-flex}.dm-bar i{background:var(--line);border-radius:3px;width:26px;height:6px}.detail-meter.thin .dm-bar i.on{background:#c0812a}.detail-meter.ok .dm-bar i.on{background:#6f8f3a}.detail-meter.good .dm-bar i.on{background:#2f7d4f}.qphotos{grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0 10px;display:grid}.qphotos .ph{aspect-ratio:1;background:var(--line);cursor:pointer;border:0;border-radius:10px;padding:0;position:relative;overflow:hidden}.qphotos .ph img{object-fit:cover;width:100%;height:100%;display:block}.qphotos.pick .ph{opacity:.55;outline:2px solid #0000}.qphotos.pick .ph.on{opacity:1;outline:3px solid var(--accent);outline-offset:-3px}.qphotos .ph .tick{background:var(--accent);color:var(--accent-ink);border-radius:999px;place-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:grid;position:absolute;top:4px;right:4px}.qphotos .ph.add{border:1.5px dashed var(--line);background:var(--card);opacity:1;place-items:center;font-size:13px;font-weight:700;display:grid}.seg{border:1.5px solid var(--line);background:var(--card);border-radius:999px;gap:3px;width:-moz-fit-content;width:fit-content;margin:4px 0;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:inherit;background:0 0;border:0;border-radius:999px;padding:7px 14px;font-weight:700}.seg button.on{background:var(--accent);color:var(--accent-ink)}.switch-row{cursor:pointer;align-items:flex-start;gap:10px;margin:4px 0 14px;display:flex}.qsum.sub{border-top:0;padding-top:2px;font-size:14px}.opt-bar{margin:4px 0 10px}.opt-bar.on{border:1.5px solid var(--line);background:var(--bg);border-radius:12px;padding:10px}.opt-bar .chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.opt-row{align-items:center;gap:6px;margin-top:8px;display:flex}.opt-row .input{flex:1;min-width:0}.qopt.multi{border:1.5px solid var(--line);cursor:pointer;border-radius:12px;margin:10px 0;padding:10px 12px}.qopt.multi.picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.qopt-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.qopt-head input{width:20px;height:20px;accent-color:var(--accent)}.pill.ok{color:#1f6b3a;background:#dcefe2}.job-total .jt-row{justify-content:space-between;padding:4px 0;display:flex}.job-total .jt-row.total{border-top:2px solid var(--ink,#222);margin-top:4px;padding-top:8px;font-size:18px}.co-line{border-top:1px dashed var(--line);margin-top:8px;padding-top:8px}.co-line.credit .qitem{border-left-color:#b4483a}.seg.small button{padding:5px 12px;font-size:14px}.fold.co summary{cursor:pointer;padding:6px 0}.pill.no{color:#8a2b22;background:#f6dede}[data-testid=billing] .jt-row,.inv-lines .jt-row,[data-testid=owner-invoice] .jt-row{justify-content:space-between;gap:12px;padding:4px 0;display:flex}[data-testid=billing]>.jt-row.total,.inv-lines .jt-row.total,[data-testid=owner-invoice] .jt-row.total{border-top:2px solid var(--ink,#222);margin-top:4px;padding-top:8px;font-size:17px}.inv-lines{margin:6px 0 4px;font-size:14px}.inv-lines .jt-row span{color:var(--muted)}.inv{border-top:1px solid var(--line,#e6dfd3);margin-top:12px;padding-top:6px}.inv .row{box-shadow:none;background:0 0;border:0;gap:8px;padding-left:0;padding-right:0}.inv.pending .meta{font-size:13px}.small-pill{vertical-align:1px;margin-left:6px;padding:1px 7px;font-size:11px}.pay-preview{border:1.5px dashed var(--line,#d9d4cc);background:#00000004;border-radius:12px;margin-top:10px;padding:10px 12px}.field .error.small,.field .hint.small{margin-top:4px;font-size:12.5px;display:block}.mj-group{margin-bottom:14px}.mj-card{color:inherit;background:var(--mj-paper,#fff);border:1.5px solid #00000014;border-radius:16px;margin-bottom:10px;text-decoration:none;display:block;overflow:hidden;box-shadow:0 1px 2px #0000000a}.mj-head{background:var(--mj-accent);color:var(--mj-ink);align-items:center;gap:10px;padding:10px 12px;display:flex}.mj-head .mark{border-radius:10px;width:40px;height:40px;font-size:15px}.mj-biz{font-size:15px;font-weight:700}.mj-trade{opacity:.85;font-size:12.5px}.mj-head .chev{color:inherit;opacity:.8}.mj-body{padding:10px 12px 12px}.mj-name{margin-bottom:4px;font-size:17px;display:block}.mj-hold{color:#8a4a12;background:#f8e6cc;border-radius:999px;margin:2px 0 6px;padding:2px 8px;font-size:12.5px;font-weight:600;display:inline-block}.mj-badges{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.mj-badge{color:#fff;background:#c2410c;border-radius:999px;padding:3px 9px;font-size:12.5px;font-weight:600}.home-switch{margin:0 0 14px}.file-row{border-top:1px solid #0000000f;align-items:flex-start;gap:10px;padding:10px 0;display:flex}.file-row:first-of-type{border-top:0}.file-name{word-break:break-word}.file-actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.file-row.cust{flex-direction:column;gap:8px}.file-row.cust .file-actions{flex-direction:row;width:100%}.file-row.cust .file-actions>*{flex:1 1 0;justify-content:center;min-height:40px}.file-row select.input.small{max-width:220px;margin-top:6px;padding:4px 8px;font-size:13px}.file-add{margin-top:12px}.contract-text{white-space:pre-wrap;word-break:break-word;background:#fafaf7;border:1px solid #e5e2da;border-radius:12px;max-height:360px;margin:8px 0;padding:12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.sig-wrap{margin:8px 0}.sig-pad{aspect-ratio:560/180;touch-action:none;cursor:crosshair;background:#fff;border:2px dashed #c9c4b8;border-radius:14px;width:100%;display:block}.sig-base{color:#8a857a;justify-content:space-between;align-items:center;padding:4px 4px 0;font-size:13px;display:flex}.sig-line{border-bottom:1px solid #eee;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 0;display:flex}.sig-img{object-fit:contain;object-position:left;width:auto;max-width:220px;height:56px}.sign-box{margin-top:10px}.rate-row{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 0;display:flex}.rate-row [data-testid=rate-kind]{flex:0 0 118px}.rate-row .grow{flex:150px;min-width:0}.rate-row .rate-price{flex:80px;min-width:0}.rate-row .rate-unit{flex:0 0 96px}.saved-rate{margin-top:6px}.est-flag{background:#fff6e0;border:1px solid #f0d58a;border-radius:10px;margin:10px 0 4px;padding:8px 10px;font-size:14px;font-weight:600}.est-obs{margin:0;padding-left:18px;font-size:14px}.est-row{border:1px solid #e6e2d8;border-radius:12px;margin:6px 0;padding:8px}.est-row.off{opacity:.55}.est-top{align-items:center;gap:8px;display:flex}.est-nums{grid-template-columns:1.2fr 1fr 1fr;gap:6px;margin-top:6px;display:grid}.est-meta{margin:6px 0 4px}.render-img{margin-top:8px;position:relative}.render-img img{border-radius:12px;width:100%;display:block}.ph{position:relative}.ai-tag{color:#fff;pointer-events:none;background:#141414c7;border-radius:6px;padding:2px 6px;font-size:10px;font-weight:700;position:absolute;bottom:4px;left:4px}.ai-tag.big{padding:4px 8px;font-size:13px;bottom:10px;left:10px}.lightbox .ai-tag.big{position:fixed;bottom:24px;left:16px}.limit-back{z-index:150;padding:0 12px calc(var(--sab,0px) + 12px);background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.limit-sheet{width:100%;max-width:480px;margin:0;box-shadow:0 10px 30px #00000040}.limit-sheet h3{margin:4px 0 8px}.limit-sheet .next-tier{background:var(--paper,#f6f6f6);border-radius:10px;padding:8px 10px}.plan-row{margin:8px 0}.plan-row-top{justify-content:space-between;gap:8px;font-size:15px;display:flex}.plan-bar{background:var(--line);border-radius:4px;height:8px;margin-top:4px;overflow:hidden}.plan-bar i{background:var(--accent,#2a6);height:100%;display:block}.plan-bar i.full{background:#c0392b}.billing-soon{border:2px dashed var(--line);text-align:center;color:#555;border-radius:12px;margin-top:12px;padding:10px;font-weight:700}.timer-row,.worker-row{border-top:1px solid var(--line);align-items:center;gap:8px;padding:8px 0;display:flex}.timer-row:first-of-type,.worker-row:first-of-type{border-top:0}.timer-row .meta{color:var(--muted);margin-top:2px;font-size:13px}.btn-row.tight{flex-wrap:nowrap;gap:6px}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.week-nav{align-items:center;gap:6px;font-size:14px;display:flex}.tsheet-wrap{margin-top:8px;overflow-x:auto}.tsheet{border-collapse:collapse;width:100%;font-size:13px}.tsheet th,.tsheet td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:4px}.tsheet th:first-child,.tsheet td:first-child{text-align:left}.tseg{border-top:1px solid var(--line);padding:8px 0;font-size:14px}.tseg .row-between{align-items:flex-start;gap:8px}.tseg.void span{color:var(--muted);text-decoration:line-through}.seg-edit{background:var(--paper,#f6f6f6);border-radius:12px;margin-top:8px;padding:10px}.edit-log{color:var(--muted);margin:6px 0 0;padding-left:18px;font-size:12px}.link{color:var(--accent-text,#1f3a5f);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.link.small,.small{font-size:13px}.site-map{background:var(--line);border:0;border-radius:12px;width:100%;height:180px}.worker-add{grid-template-columns:1fr 110px auto;gap:6px;margin-top:10px;display:grid}.input.small{max-width:150px;padding:6px 8px;font-size:13px}.onsite{margin:0 0 8px}.consent{margin:0 0 10px;padding-left:18px;font-size:14px}.consent li{margin:4px 0}.geo-prompt{left:12px;right:12px;bottom:calc(var(--sab) + 12px);z-index:140;background:var(--card,#fff);border:2px solid var(--accent,#1f3a5f);border-radius:16px;max-width:480px;margin:0 auto;padding:12px 14px;position:fixed;box-shadow:0 10px 30px #00000040}.tsheet-jobs ul{margin:4px 0 8px;padding-left:18px;font-size:13px}.archived-card{border-left:4px solid var(--accent)}.archived-card .file-row{margin-bottom:6px}.about-bio{white-space:pre-line;margin:0 0 8px;line-height:1.5}.about-facts{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.about-facts b{color:var(--accent-text);font-size:18px}.service-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.service-card{text-align:left;border:1.5px solid var(--line);background:var(--paper);cursor:pointer;font:inherit;color:inherit;border-radius:12px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.service-card b{color:var(--accent-text)}.service-card span{color:var(--muted);font-size:13px}.service-card .service-go{color:var(--accent-text);margin-top:4px;font-size:12px;font-style:normal;font-weight:700}.service-card:hover{border-color:var(--accent)}.service-card:focus-visible{border-color:var(--accent)}.work-grid{border-radius:10px;grid-template-columns:repeat(3,1fr);gap:4px;display:grid;overflow:hidden}.work-thumb{background:var(--line);aspect-ratio:1;cursor:zoom-in;border:0;padding:0}.work-thumb img{object-fit:cover;width:100%;height:100%;display:block}.lightbox figure{flex-direction:column;align-items:center;max-width:100%;max-height:100%;margin:0;display:flex}.lightbox figure img{object-fit:contain;max-width:100vw;max-height:82vh}.lightbox figcaption{color:#fff;text-align:center;padding:8px 14px;font-size:15px}.lightbox figcaption i{opacity:.7;margin-left:6px;font-style:normal}.lightbox .lb-prev,.lightbox .lb-next{color:#fff;background:#0008;border-radius:50%;position:absolute;top:50%;transform:translateY(-50%)}.lightbox .lb-prev{left:8px}.lightbox .lb-next{right:8px}.lightbox .lb-action{bottom:calc(var(--sab,0px) + 18px);position:absolute;left:50%;transform:translate(-50%)}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.svc-row{align-items:flex-start;gap:6px;margin-bottom:8px;display:flex}.svc-fields{flex:1;gap:4px;display:grid}.svc-tools{gap:2px;display:flex}.icon-btn.small{width:32px;height:32px;min-height:32px;font-size:15px}.work-edit{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-bottom:8px;display:grid}.work-item{gap:4px;display:grid}.work-item img{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%}.work-item input{padding:6px 8px;font-size:13px}.bio-draft{border:1.5px dashed var(--accent);background:var(--accent-soft);border-radius:12px;margin:8px 0;padding:10px 12px}.grok-bio{margin:6px 0 10px}.grok-bio summary{cursor:pointer;color:var(--accent-text);font-weight:700}.page-preview{border:2px solid var(--accent);background:var(--paper);border-radius:18px;margin-top:12px;padding:0 10px 10px;overflow:hidden}.page-preview .preview-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text);padding:8px 2px;font-size:12px;font-weight:800}.page-preview .hero{margin:0 -10px 12px}.warn{color:#6b4a00;background:#fff7e6;border:1px solid #f0c36d;border-radius:10px;padding:8px 10px}.portfolio-prev{object-fit:cover;border-radius:10px;width:100%;max-height:220px;margin-bottom:8px}.ref-list{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.ref-st{background:var(--line);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:800}.ref-st.qualified{color:#6b4a00;background:#fff1c2}.ref-st.rewarded{background:var(--accent-soft);color:var(--accent-text)}.page.wide{max-width:1180px}.table-wrap{margin:0 -4px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1.5px solid var(--line);white-space:nowrap;padding:6px 8px;font-size:12px}.admin-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover{background:var(--accent-soft)}.admin-table .badge{background:var(--line);color:var(--ink,#222);height:18px;margin-left:4px;font-size:11px}.admin-table .badge.ok,.kv .badge.ok{background:var(--accent);color:var(--accent-ink)}.admin-table .badge.warn,.kv .badge.warn{color:#fff;background:#c2410c}.admin-sum{font-weight:700}.admin-actions{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.support-job{border-top:1px solid var(--line);padding:8px 0}.support-chat{background:var(--paper);border-radius:8px;gap:3px;margin-top:6px;padding:6px 8px;display:grid}.audit-row{border-bottom:1px solid var(--line);padding:6px 0}.print-sheet{z-index:90;-webkit-overflow-scrolling:touch;background:#e9e9e6;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.print-bar{z-index:2;padding:10px 12px;padding-top:max(10px, env(safe-area-inset-top));background:var(--paper,#fff);border-bottom:1px solid #0000001a;align-items:center;gap:8px;display:flex;position:sticky;top:0}.print-bar .print-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.print-help{max-width:820px;margin:10px auto 0;padding:0 14px;font-size:14px}.print-paper{max-width:820px;margin:14px auto 40px}.print-page{background:#fff;margin:0 0 14px;box-shadow:0 1px 4px #0000002e}.print-page img{width:100%;height:auto;display:block}.print-image img{object-fit:contain;max-height:80vh}.print-btn{white-space:nowrap}.pdoc{color:#1e1e1e;background:#fff;padding:28px 30px;font-size:13px;line-height:1.4;box-shadow:0 1px 4px #0000002e}.pdoc.landscape{max-width:none}.pdoc-head{background:var(--pa,#1e4d3a);color:#fff;align-items:center;gap:14px;margin:-28px -30px 18px;padding:16px 30px;display:flex}.pdoc-head img{background:#fff;border-radius:4px;max-width:110px;max-height:48px;padding:4px}.pdoc-head div{flex-direction:column;display:flex}.pdoc-head b{font-size:18px}.pdoc-head span{opacity:.9;font-size:12px}.pdoc h1{margin:0 0 2px;font-size:22px}.pdoc-sub{color:#666;margin:0 0 10px}.pdoc h2{color:var(--pa,#1e4d3a);border-bottom:1px solid #ddd;margin:18px 0 8px;padding-bottom:3px;font-size:15px}.pdoc-kv{grid-template-columns:max-content 1fr;gap:3px 14px;margin:6px 0 10px;display:grid}.pdoc-kv dt{color:#666;font-weight:600}.pdoc-kv dd{margin:0}.pdoc-table{border-collapse:collapse;width:100%;margin:4px 0 12px;font-size:12px}.pdoc-table th,.pdoc-table td{text-align:left;vertical-align:top;border-bottom:1px solid #ddd;padding:4px 6px}.pdoc-table th{background:#f4f4f2;font-weight:700}.pdoc-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pdoc-table tfoot td{border-top:2px solid #bbb;font-weight:700}.pdoc-totals{border-collapse:collapse;min-width:260px;margin:4px 0 12px auto}.pdoc-totals th{text-align:right;padding:2px 14px 2px 0;font-weight:400}.pdoc-totals td{text-align:right;font-variant-numeric:tabular-nums}.pdoc-totals tr.strong th,.pdoc-totals tr.strong td{border-top:1px solid #bbb;font-weight:700}.pdoc-img img{max-width:100%;max-height:420px}.pdoc-img figcaption{color:#666;font-size:12px}.table-scroll{overflow-x:auto}@media (max-width:600px){.pdoc{padding:18px 14px}.pdoc-head{margin:-18px -14px 14px;padding:12px 14px}.pdoc-table{font-size:11px}}@media print{@page{size:letter portrait;margin:12mm}html,body{background:#fff!important}body.print-open #app>:not(.print-sheet){display:none!important}body.print-open .print-sheet{background:#fff;position:static;top:auto;bottom:auto;left:auto;right:auto;overflow:visible}body.print-open .print-bar,body.print-open .print-help{display:none!important}body.print-open .print-paper{max-width:none;margin:0}.print-page{box-shadow:none;break-after:page;page-break-after:always;break-inside:avoid;margin:0}.print-page:last-child{break-after:auto;page-break-after:auto}.print-page img{object-fit:contain;width:100%;max-height:100vh}.pdoc{box-shadow:none;padding:0;font-size:11pt}.pdoc-head{-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact;margin:0 0 14px}.pdoc-table th{-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact}.pdoc-sec.new-page{break-before:page;page-break-before:always}.pdoc h2{break-after:avoid;page-break-after:avoid}.pdoc-table{font-size:9pt}.pdoc-table thead{display:table-header-group}.pdoc-table tr{break-inside:avoid;page-break-inside:avoid}.topbar,nav.tabs,.bottom-nav,.toast,.limit-back,.print-btn,.btn,button,.icon-btn{display:none!important}.card{break-inside:avoid;border:1px solid #ddd;box-shadow:none!important}.page{max-width:none!important;padding:0!important}}@page wide{size:letter landscape;margin:10mm}@media print{.pdoc.landscape{page:wide}}.expense-list{margin:8px 0;padding:0;list-style:none}.expense-list li{border-bottom:1px solid #00000012;align-items:center;gap:10px;padding:8px 0;display:flex}.expense-main{flex:1;min-width:0}.expense-receipt img{object-fit:cover;border-radius:6px;width:40px;height:40px;display:block}.expense-receipt.none{text-align:center;color:#aaa;width:40px}.expense-edit{border-top:1px solid #00000014;margin-top:10px;padding-top:10px}.pill.cat-sub{color:#23408e;background:#e8eefc}.pill.cat-materials{color:#2c5e1f;background:#eef6ea}.report-range{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.report-range .field{margin:0}.report-sum{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0;display:grid}.report-sum div{background:#00000009;border-radius:10px;padding:8px 10px}.report-sum b{font-size:18px;display:block}.report-sum span{color:#666;font-size:12px}.report-card .row-between{flex-wrap:wrap;gap:6px}.report-table{border-collapse:collapse;width:100%;font-size:12px}.report-table th,.report-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #00000014;padding:4px 6px}.report-table .num{text-align:right;font-variant-numeric:tabular-nums}.pill.qst{vertical-align:middle;margin-left:4px}.pill.qst.wait{color:#6c4b0c;background:#f7efd9}.decision.grey{color:var(--muted);background:#ece6db}.quote-doc.dim{opacity:.62;filter:grayscale(.85)}.qvalid{color:var(--accent-text);margin:4px 0 0;font-size:13px;font-weight:700}.qvalid.gone{color:#8a2b22}.prev-versions{border-top:1px solid var(--line);margin-top:14px;padding-top:4px}.prev-versions>summary{cursor:pointer;min-height:24px;padding:10px 0;font-weight:700}.prev-q{margin:6px 0 14px}.prev-head{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;display:flex}.prev-head .btn{margin-left:auto}.valid-for .check-row{align-items:center;gap:8px;font-weight:600;display:flex}.valid-for .valid-days{align-items:center;gap:8px;margin-top:6px;display:flex}.valid-for .valid-days input{width:84px}.quote-row-end{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.quote-row-end .amt{font-size:15px}.photo-src-row{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.photo-src-row .photo-src{cursor:pointer;flex:140px;justify-content:center;gap:6px;min-height:44px}.photo-src-row .photo-src.disabled{opacity:.5;pointer-events:none}.new-photo-tag{color:#fff;background:#000a;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;top:4px;left:4px}.mj-request{margin:8px 0 4px}.mj-request-label{margin:10px 2px 6px;font-size:14px;font-weight:650;line-height:1.3}.pin-map{border:1px solid var(--line);touch-action:none;background:#e8e4dc;border-radius:12px;height:240px;margin:8px 0;overflow:hidden}.pin-icon{background:0 0;border:0}.pin-dot{background:var(--accent,#c2410c);border:3px solid #fff;border-radius:50% 50% 50% 0;width:26px;height:26px;margin:0 1px;display:block;transform:rotate(-45deg);box-shadow:0 2px 6px #0006}.site-msg{border-radius:10px;margin:8px 0;padding:8px 12px;font-size:14px}.site-msg.ok{color:#1d4d33;background:#e3efe6}.site-msg.approx{color:#6c4b0c;background:#f7efd9}.site-msg.none,.site-msg.err{color:#7d2417;background:#f9e0dc}.site-msg small{opacity:.85;margin-top:2px;display:block}.waiting-card{border-left:4px solid #d99a3a;margin-bottom:12px;padding:12px 14px}.perm-row{border-top:1px solid var(--line,#e6dfd2);padding:10px 0}.perm-row:first-of-type{border-top:0}.perm-row .perm-name{margin-bottom:4px;font-weight:700}.perm-row .check-row{align-items:flex-start;gap:8px;padding:5px 0;display:flex}.perm-row .check-row input{margin-top:3px}.whos-on .chips{flex-wrap:wrap;gap:6px;margin:6px 0 10px;display:flex}.share-my-card-row{gap:8px;margin:0 0 14px;display:flex}.share-my-card-row>.btn{flex:1}.qr-full{z-index:1000;color:#111;padding:calc(var(--sat,0px) + 16px) calc(var(--sar,0px) + 16px) calc(var(--sab,0px) + 16px) calc(var(--sal,0px) + 16px);text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.qr-full img{width:min(94vw,100vh - 220px,640px);width:min(94vw,100dvh - 220px,640px);height:auto;image-rendering:pixelated;background:#fff}.qr-full-name{margin:0;font-size:24px;font-weight:800}.qr-full-cap{color:#333;max-width:520px;margin:0;font-size:16px}.qr-full>*{flex:none}.qr-full .btn{min-width:200px;height:auto}.cred-row{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.cred-row:first-of-type{border-top:0}.cred-row .grow{overflow-wrap:anywhere;flex:1;min-width:0}.cred-actions{flex-direction:column;gap:6px;display:flex}.cred-form{border:1.5px solid var(--line);background:var(--paper);border-radius:14px;margin-top:10px;padding:12px}.cred-banner{border:1.5px solid var(--mid);background:#fbf1e3;border-radius:14px;gap:4px;margin:0 0 14px;padding:12px 14px;display:grid}.cred-banner.bad{border-color:var(--danger);background:#fbe9e6}.cred-banner .btn{justify-self:start;margin-top:6px}.cal-head{align-items:center;gap:8px;margin:0 0 8px;display:flex}.cal-head .grow{text-align:center;font-weight:700;font-family:var(--serif);flex:1;font-size:19px}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.cal-dow{text-align:center;color:var(--muted);padding:2px 0;font-size:12px;font-weight:700}.cal-day{background:var(--card);cursor:pointer;border:1.5px solid #0000;border-radius:8px;min-height:64px;padding:3px;font-size:11px;overflow:hidden}.cal-day.out{opacity:.45}.cal-day.today{border-color:var(--accent)}.cal-day.sel{background:var(--accent-soft)}.cal-day.bo{background:repeating-linear-gradient(135deg, #f6e1dc 0 6px, var(--card) 6px 12px)}.cal-day .n{font-size:12px;font-weight:700}.cal-chip{white-space:nowrap;text-overflow:ellipsis;background:var(--accent);color:var(--accent-ink);border-radius:4px;margin-top:2px;padding:0 3px;font-size:10.5px;display:block;overflow:hidden}.cal-chip.t-delivery{background:#2f5d8a}.cal-chip.t-sub{background:#6a4c93}.cal-chip.t-inspection{background:#b56a1b}.cal-chip.t-crew{background:#1e4d3a}.cal-chip.t-visit{background:#0f766e}.cal-chip.t-other{background:#57534e}.cal-chip.k-quote{color:var(--ink);border:1px solid var(--line);background:#fff}.cal-chip.k-lead{color:#713f12;background:#fef3c7}.cal-chip.k-cred{background:var(--danger)}.cal-chip.k-blackout{color:var(--danger);border:1px dashed var(--danger);background:#fbe9e6}.cal-item{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:9px 0;display:flex}.cal-item:first-child{border-top:0}.cal-item .when{min-width:74px;font-size:13px;font-weight:700}.cal-item .grow{overflow-wrap:anywhere;flex:1;min-width:0}.cal-bar{background:var(--accent);border-radius:2px;align-self:stretch;width:4px}.cal-week .cal-wday{border-top:1px solid var(--line);padding:8px 0}.cal-week .cal-wday.today b{color:var(--accent-text)}.cal-sheet{z-index:90;background:var(--paper);padding:calc(var(--sat) + 10px) calc(var(--sar) + 16px) calc(var(--sab) + 24px) calc(var(--sal) + 16px);position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.cal-sheet h2{margin:6px 0 12px}.cal-sheet .row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.blackout-row{border:1.5px dashed var(--danger);background:#fdf3f1;border-radius:12px;margin:6px 0;padding:10px 12px}.sched-row{border-top:1px solid var(--line);gap:10px;padding:10px 0;display:flex}.sched-row:first-of-type{border-top:0}.sched-row .d{text-align:center;background:var(--accent-soft);border-radius:10px;min-width:54px;padding:4px 0;font-weight:700;line-height:1.1}.sched-row .d small{color:var(--muted);font-size:11px;font-weight:600;display:block}:root{--r-lg:22px;--r-md:16px;--r-sm:12px;--lift-1:0 1px 1px #1c19170a, 0 2px 4px #1c19170d, 0 6px 14px -4px #1c19171a;--lift-2:0 1px 2px #1c19170d, 0 6px 12px -2px #1c191717, 0 18px 32px -12px #1c191733;--rim:inset 0 1px 0 #ffffffbf;--accent-grad:linear-gradient(180deg, color-mix(in srgb, var(--accent) 88%, #fff) 0%, var(--accent) 55%, var(--accent-2,var(--accent)) 100%)}body{background:radial-gradient(120% 60% at 50% -10%, color-mix(in srgb, var(--accent) 9%, var(--paper)) 0%, var(--paper) 60%) fixed, var(--paper)}.topbar{background:color-mix(in srgb, var(--paper) 86%, transparent)}.topbar.scrolled{border-bottom-color:#0000;box-shadow:0 6px 18px -12px #1c191759}.icon-btn{background:var(--card);box-shadow:var(--lift-1), var(--rim);border:0;width:44px;height:44px}.icon-btn:active{scale:.97;box-shadow:0 1px 2px #0000001f}.card,details.fold{border-radius:var(--r-lg);box-shadow:var(--lift-1), var(--rim);border:0;padding:16px 18px}.card h3{letter-spacing:.06em}.row{border-radius:var(--r-md);box-shadow:var(--lift-1), var(--rim);border:0;padding:14px 16px;transition:translate .12s,scale .12s,box-shadow .12s}.row:active{translate:0 1px;box-shadow:0 1px 2px #1c19171a}.row .chev{background:color-mix(in srgb, var(--accent) 10%, var(--card));width:28px;height:28px;color:var(--accent-text);border-radius:50%;place-items:center;font-weight:800;display:grid}.dot{width:11px;height:11px;box-shadow:0 0 0 3px color-mix(in srgb, var(--live) 18%, transparent)}.dot.hold{box-shadow:0 0 0 3px color-mix(in srgb, var(--mid) 20%, transparent)}.empty{background:color-mix(in srgb, var(--card) 70%, transparent);box-shadow:inset 0 0 0 1.5px var(--line);border-radius:var(--r-lg);border:0}.btn{background-color:var(--accent);background-image:var(--accent-grad);box-shadow:0 1px 0 #ffffff40 inset, 0 -2px 0 #00000024 inset, 0 6px 14px -6px color-mix(in srgb, var(--accent) 70%, #000);border-radius:999px;transition:translate .1s,box-shadow .1s,filter .1s}.btn:active{filter:brightness(.97);translate:0 1px;box-shadow:inset 0 1px #fff3,0 1px 2px #00000040}.btn.ghost{background:var(--card);box-shadow:var(--lift-1), var(--rim), inset 0 0 0 1.5px color-mix(in srgb, var(--line) 80%, transparent);border:0}.btn.ghost:active{box-shadow:inset 0 0 0 1.5px var(--line), 0 1px 1px #00000014}.btn.quiet{box-shadow:none;background:0 0}.btn.danger{background:var(--card);box-shadow:var(--lift-1), inset 0 0 0 1.5px #e5c3bd;border:0}.btn.google{box-shadow:var(--lift-1), inset 0 0 0 1.5px #d6d0c6;background:#fff;border:0}.btn.small{border-radius:999px;min-height:40px}.btn[disabled]{box-shadow:none;filter:saturate(.6)}.chip{box-shadow:var(--lift-1), inset 0 0 0 1.5px var(--line);border:0;min-height:40px}.chip.on{box-shadow:0 4px 10px -4px color-mix(in srgb, var(--accent) 60%, transparent), inset 0 0 0 2px var(--accent)}.seg{box-shadow:inset 0 1px 3px #0000001a, inset 0 0 0 1.5px var(--line);background:color-mix(in srgb, var(--paper) 60%, var(--card));border:0}.seg button{min-height:38px}.seg button.on,.tabs button.on{background-color:var(--accent);background-image:var(--accent-grad);box-shadow:0 3px 8px -3px color-mix(in srgb, var(--accent) 70%, #000), 0 1px 0 #ffffff40 inset}.tabs{background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(8px);border-bottom:0;box-shadow:0 8px 16px -14px #1c191780}.tabs button{border-radius:999px}.field input,.field select,.field textarea,.input{box-shadow:inset 0 1px 2px #00000014, inset 0 0 0 1.5px var(--line);border:0;border-radius:14px}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{box-shadow:inset 0 0 0 2px var(--accent-text), 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.pill{box-shadow:inset 0 0 0 1px #0000000a}.mark{box-shadow:var(--lift-1);border-radius:14px}.hero{box-shadow:0 14px 30px -18px color-mix(in srgb, var(--accent) 80%, #000);background-color:var(--accent);background-image:var(--accent-grad);border-radius:0 0 28px 28px}.toast{border-radius:999px;padding:12px 18px}.page.has-tabs,body.has-tabbar .page{padding-bottom:calc(var(--sab) + 112px)}.sec-head{justify-content:space-between;align-items:center;gap:10px;margin:22px 0 10px;display:flex}.sec-head h2,.sec-head h1{margin:0}h2.sec-title{margin:22px 0 10px}.ico{display:block}.ibadge,.tile-ic{--c:var(--ic,var(--ib,var(--accent)));color:#fff;background:linear-gradient(160deg, color-mix(in srgb, var(--c) 72%, #fff) 0%, var(--c) 58%, color-mix(in srgb, var(--c) 82%, #000) 100%);width:46px;height:46px;box-shadow:0 1px 0 #ffffff73 inset, 0 -3px 0 #00000029 inset, 0 6px 12px -5px color-mix(in srgb, var(--c) 75%, #000);border-radius:15px;flex-shrink:0;place-items:center;display:inline-grid}.ibadge.sm{border-radius:11px;width:34px;height:34px}.ibadge.lg{border-radius:19px;width:60px;height:60px}.tile-ic svg{width:26px;height:26px}.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:6px 0 14px;display:grid}@media (min-width:520px){.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.tile{text-align:left;border-radius:var(--r-lg);cursor:pointer;min-height:128px;color:var(--ink);background:linear-gradient(180deg, color-mix(in srgb, var(--ic,var(--accent)) 7%, var(--card)) 0%, var(--card) 70%);box-shadow:var(--lift-2), var(--rim), inset 0 -3px 0 color-mix(in srgb, var(--ic,var(--accent)) 14%, transparent);border:0;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;transition:translate .12s,scale .12s,box-shadow .12s;display:flex;position:relative}.tile:active{translate:0 3px;scale:.985;box-shadow:0 1px 2px #1c19171f,inset 0 2px 4px #0000000f}.tile:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}.row:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}.btn:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}.chip:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}.bottom-nav a:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}.ask-fab:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}.tile .tile-ic{margin-bottom:6px}.tile b{font-size:16px;line-height:1.2}.tile-sub{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.25;display:-webkit-box;overflow:hidden}.tile-count{font-family:var(--serif);color:color-mix(in srgb, var(--ic,var(--accent)) 70%, var(--ink));font-size:26px;font-weight:700;line-height:1}.tile-badge{color:#fff;background:linear-gradient(#ef4444,#b91c1c);border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 8px;font-size:12px;font-weight:800;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 3px 8px -2px #b91c1c99,inset 0 1px #ffffff59}.dash .hello{margin:4px 0 10px}.dash .hello .page-title{margin:2px 0 0}.agenda-strip{scrollbar-width:none;cursor:pointer;gap:8px;padding:4px 2px 12px;display:flex;overflow-x:auto}.agenda-pill{background:var(--card);max-width:85%;box-shadow:var(--lift-1), var(--rim);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex-shrink:0;padding:10px 14px;font-size:14px;overflow:hidden}.agenda-pill b{color:var(--accent-text)}.agenda-pill.quiet{color:var(--muted)}.dash-alerts{gap:8px;margin:0 0 12px;display:grid}.dash-alert{text-align:left;border-radius:var(--r-md);cursor:pointer;border:0;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 14px;font-size:14px;font-weight:700;display:flex}.dash-alert.bad{color:#7d2417;background:#fde8e6;box-shadow:inset 0 0 0 1.5px #f2b8b0,0 4px 10px -6px #9b2c1f80}.dash-alert.warn{color:#6c4005;background:#fbefd9;box-shadow:inset 0 0 0 1.5px #ecc98b,0 4px 10px -6px #8a4a1273}.dash-alert svg{flex-shrink:0}.nudge-card{border-radius:var(--r-lg);background:linear-gradient(135deg, #eef2ff, var(--card));box-shadow:var(--lift-1), var(--rim);flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 12px;padding:14px 16px;display:flex}.nudge-card .grow{flex:1;min-width:160px}.search-box{background:var(--card);box-shadow:inset 0 1px 3px #00000014, inset 0 0 0 1.5px var(--line), var(--lift-1);color:var(--muted);border-radius:999px;align-items:center;gap:8px;margin:4px 0 14px;padding:4px 6px 4px 14px;display:flex}.search-box input{min-width:0;min-height:46px;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:16px}.search-box:focus-within{box-shadow:inset 0 0 0 2px var(--accent-text), 0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent)}.sub-head{align-items:center;gap:12px;margin:4px 0 14px;display:flex}.bottom-nav{z-index:40;left:calc(var(--sal) + 10px);right:calc(var(--sar) + 10px);bottom:calc(var(--sab) + 10px);background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:saturate(1.3)blur(14px);max-width:540px;box-shadow:0 10px 30px -10px #1c191759, 0 2px 6px #1c191714, var(--rim);border-radius:26px;gap:2px;margin:0 auto;padding:6px;display:flex;position:fixed}.bottom-nav a{min-height:56px;color:var(--muted);border-radius:20px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:700;text-decoration:none;display:flex}.bottom-nav a .nav-ic svg{width:24px;height:24px}.bottom-nav a.on{color:var(--accent-ink);background-color:var(--accent);background-image:var(--accent-grad);box-shadow:0 6px 14px -6px color-mix(in srgb, var(--accent) 80%, #000), 0 1px 0 #ffffff40 inset}.bottom-nav a:active{scale:.96}.ask-fab{z-index:41;right:calc(var(--sar) + 16px);bottom:calc(var(--sab) + 96px);cursor:pointer;color:#fff;background:linear-gradient(160deg,#8b5cf6,#6d28d9 60%,#5b21b6);border:0;border-radius:999px;align-items:center;gap:6px;min-height:52px;padding:0 18px 0 14px;font-weight:800;display:inline-flex;position:fixed;box-shadow:0 12px 24px -10px #5b21b6bf,inset 0 1px #ffffff59,inset 0 -3px #0000002e}.ask-fab:active{translate:0 2px}.ask-fab svg{width:22px;height:22px}body:not(.has-tabbar) .ask-fab{bottom:calc(var(--sab) + 20px)}.ask-back{z-index:90;background:#14100c61;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.ask-sheet{background:var(--paper);width:100%;max-width:560px;max-height:86vh;padding:14px calc(var(--sar) + 16px) calc(var(--sab) + 20px) calc(var(--sal) + 16px);border-radius:28px 28px 0 0;animation:.2s rise;overflow-y:auto;box-shadow:0 -18px 40px -18px #00000073}.ask-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.ask-head b{align-items:center;gap:8px;font-size:18px;display:inline-flex}.ask-answer{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--lift-1), var(--rim);padding:14px 16px}.ask-answer p:first-child{margin-top:0;font-size:16px}.ask-link{justify-content:space-between;margin-top:8px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:.4;transform:translateY(30px)}}body.is-locked{overflow:hidden}.lock-screen{z-index:300;text-align:center;padding:calc(var(--sat) + 20px) 20px calc(var(--sab) + 20px);background:radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--accent) 22%, var(--paper)), var(--paper) 70%);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.lock-screen h2{margin:10px 0 0}.lock-badge{color:#fff;background-color:var(--accent);background-image:var(--accent-grad);width:76px;height:76px;box-shadow:0 14px 28px -12px color-mix(in srgb, var(--accent) 80%, #000), 0 -4px 0 #00000029 inset, 0 1px 0 #ffffff59 inset;border-radius:24px;place-items:center;display:grid}.lock-badge svg{width:38px;height:38px}.lock-dots{gap:14px;margin:14px 0 18px;display:flex}.lock-dots i{width:16px;height:16px;box-shadow:inset 0 0 0 2px var(--accent-text);border-radius:50%;transition:transform .1s}.lock-dots i.on{background:var(--accent-text);transform:scale(1.1)}.lock-pad{grid-template-columns:repeat(3,76px);gap:14px 22px;margin-bottom:10px;display:grid}.lock-key{cursor:pointer;width:76px;height:76px;color:var(--ink);background:var(--card);box-shadow:var(--lift-2), var(--rim);border:0;border-radius:50%;place-items:center;font-size:28px;font-weight:700;display:grid}.lock-key:active{translate:0 2px;scale:.96;box-shadow:0 1px 2px #00000026}.lock-key.ghost{box-shadow:none;color:var(--accent-text);background:0 0;font-size:24px}.lock-key svg{width:30px;height:30px}.switch-row{cursor:pointer;align-items:flex-start;gap:12px;min-height:44px;padding:8px 0;display:flex}.switch-row input{width:24px;height:24px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.idc{border-radius:var(--r-md);background:color-mix(in srgb, #eef2ff 70%, var(--card));gap:8px;margin:10px 0;padding:14px;display:grid;box-shadow:inset 0 0 0 1.5px #c7d2fe}.idc .btn svg{width:20px;height:20px}.row-input{align-items:center;gap:8px;display:flex}.row-input .input{flex:1;min-width:0}.pill.ok{color:#14532d;background:#dcfce7;padding:6px 12px;font-size:13px}.lightbox .lb-prev,.lightbox .lb-next,.lightbox .close{z-index:2}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.tile:active,.row:active,.btn:active,.lock-key:active,.bottom-nav a:active,.icon-btn:active,.ask-fab:active{translate:none;scale:none}}@media print{.ask-fab,.bottom-nav,.lock-screen{display:none!important}}
