@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap");:root{--bg:#F6F5F1;--panel:#FFFFFF;--rail:#1C1C1A;--rail-fg:#D9D8D2;--fg:#1C1C1A;--muted:#6B6A64;--line:#E2E0D8;--soft:#EFEDE6;--accent:#F26A1B;--accent-deep:#D95F12;--accent-soft:#FDEBDF;--ok:#1F7A4D;--ok-soft:#DFF2E7;--warn:#B7791F;--warn-soft:#FBEFD6;--crit:#C0392B;--crit-soft:#F9E1DE;--info:#2563A8;--info-soft:#E0EAF7;--display:"Bebas Neue",Impact,"Arial Narrow",sans-serif;--body:"DM Sans",system-ui,-apple-system,Segoe UI,sans-serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--r:6px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141412;--panel:#1E1E1B;--rail:#0F0F0E;--rail-fg:#C9C8C1;--fg:#ECEAE3;--muted:#9A9890;--line:#2E2D29;--soft:#262521;--accent:#F27A33;--accent-deep:#F26A1B;--accent-soft:#3A2416;--ok:#5BBF86;--ok-soft:#173224;--warn:#E0A94A;--warn-soft:#3A2D14;--crit:#E8766A;--crit-soft:#3C1C19;--info:#6FA3E6;--info-soft:#172739;color-scheme:dark}}:root[data-theme=dark]{--bg:#141412;--panel:#1E1E1B;--rail:#0F0F0E;--rail-fg:#C9C8C1;--fg:#ECEAE3;--muted:#9A9890;--line:#2E2D29;--soft:#262521;--accent:#F27A33;--accent-deep:#F26A1B;--accent-soft:#3A2416;--ok:#5BBF86;--ok-soft:#173224;--warn:#E0A94A;--warn-soft:#3A2D14;--crit:#E8766A;--crit-soft:#3C1C19;--info:#6FA3E6;--info-soft:#172739;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body,html{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:14px;line-height:1.45;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{display:grid;grid-template-columns:232px 1fr;min-height:100%}.rail{background:var(--rail);color:var(--rail-fg);display:flex;flex-direction:column;padding-block:18px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:16px;gap:18px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{font-family:var(--display);font-size:22px;letter-spacing:.06em;color:#fff;line-height:1}.brand small{display:block;font-family:var(--body);font-size:10px;letter-spacing:.18em;color:var(--accent);margin-top:4px}.role{display:flex;background:#2A2A27;border-radius:var(--r);padding:3px;gap:3px}.role button{flex:1 1;border:0;background:transparent;color:#A8A79F;border-radius:4px;padding:7px 4px;font-size:12px;font-weight:600}.role button[aria-pressed=true]{background:var(--accent);color:#fff}.nav{flex-direction:column;gap:2px}.nav,.nav a{display:flex}.nav a{color:var(--rail-fg);text-decoration:none;padding:9px 10px;border-radius:var(--r);justify-content:space-between;align-items:center;font-weight:500}.nav a.on{background:#2A2A27;color:#fff}.nav a .n{font-family:var(--mono);font-size:11px;color:#A8A79F;background:#1C1C1A;padding:1px 7px;border-radius:10px}.rail .foot{margin-top:auto;font-size:11.5px;color:#8F8E86;line-height:1.5}.rail .foot b{color:#fff;font-weight:600}.line24{display:block;font-family:var(--mono);font-size:14px;color:var(--accent);letter-spacing:.02em;margin-top:4px}.main{min-width:0;padding-block:22px 48px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}h1{font-family:var(--display);font-size:38px;line-height:.95;margin:0;letter-spacing:.02em;text-wrap:balance}h1 small{display:block;font-family:var(--body);font-size:12px;letter-spacing:.16em;color:var(--muted);margin-bottom:6px}.sample,h1 small{text-transform:uppercase}.sample{font-size:11px;letter-spacing:.12em;color:var(--warn);border:1px dashed var(--warn);padding:3px 8px;border-radius:3px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px;margin-bottom:22px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;min-width:0}.tile .k{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.tile .v{font-family:var(--display);font-size:34px;line-height:1;margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile .s{font-size:12px;color:var(--muted);margin-top:4px}.tile.hot{border-left:4px solid var(--crit)}.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.bar input[type=search]{flex:1 1;min-width:200px;border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:9px 12px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:500}.chip[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn{border:0;background:var(--accent);color:#fff;border-radius:var(--r);padding:10px 16px;font-weight:600}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--fg)}.btn.sm{padding:7px 12px;font-size:12.5px}.tbl{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.row{display:grid;grid-template-columns:6px 150px 1fr 150px 120px 110px 30px;grid-gap:12px;gap:12px;align-items:center;padding:11px 14px 11px 0;border-top:1px solid var(--line);cursor:pointer;min-width:0}.row:first-child{border-top:0}.row.head,.row:hover{background:var(--soft)}.row.head{cursor:default;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-block:8px}.row.head:hover{background:var(--soft)}.pri{height:100%;min-height:36px;border-radius:0 3px 3px 0}.pri.n{background:var(--line)}.pri.h{background:var(--warn)}.pri.e{background:var(--crit)}.step{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 9px;border-radius:4px;white-space:nowrap}.step i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}.st-req{background:var(--warn-soft);color:var(--warn)}.st-sch{background:var(--info-soft);color:var(--info)}.st-prog{background:var(--accent-soft);color:var(--accent-deep)}.st-done{background:var(--ok-soft);color:var(--ok)}.st-rep{background:var(--soft);color:var(--muted)}.st-quote{background:var(--crit-soft);color:var(--crit)}.id{font-family:var(--mono);font-size:12px;color:var(--muted)}.addr{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.addr small{display:block;font-weight:400;color:var(--muted);font-size:12px}.date{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px}.date small{display:block;color:var(--muted);font-size:11.5px}.cost{font-family:var(--mono);font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cost.zero{color:var(--ok)}.chev,.empty{color:var(--muted)}.empty{padding:40px 20px;text-align:center}.props{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:12px;gap:12px}.prop{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;cursor:pointer;display:grid;grid-gap:10px;gap:10px;min-width:0}.prop:hover{border-color:var(--accent)}.prop h3{margin:0;font-size:16px;font-weight:700}.prop h3 small{display:block;font-weight:400;color:var(--muted);font-size:12.5px}.plan{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.plan b{color:var(--ok);font-weight:600}.visits{display:flex;gap:4px}.visits span{flex:1 1;height:6px;border-radius:3px;background:var(--line)}.visits span.d{background:var(--ok)}.visits span.nx{background:var(--accent)}.prop .meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted)}.prop .meta b{color:var(--fg);font-weight:600}.scrim{inset:0;background:rgba(20,20,18,.45);z-index:20}.scrim,.sheet{position:fixed}.sheet{top:0;right:0;bottom:0;width:min(760px,100%);background:var(--bg);z-index:21;overflow:auto;box-shadow:-12px 0 40px rgba(0,0,0,.25);padding-top:env(safe-area-inset-top,0);padding-right:env(safe-area-inset-right,0)}.sh{border-bottom:1px solid var(--line);padding:18px max(24px,env(safe-area-inset-right,0px)) 16px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.sh,.sh .x{background:var(--panel)}.sh .x{position:absolute;right:18px;top:16px;border:1px solid var(--line);width:34px;height:34px;border-radius:50%;font-size:16px}.sh .id{margin-bottom:6px}.sh h2{font-family:var(--display);font-size:30px;margin:0 40px 2px 0;line-height:1;letter-spacing:.02em}.sh .sub{color:var(--muted);font-size:13px}.pipe{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:4px;gap:4px;margin-top:14px}.pipe div{height:8px;border-radius:3px;background:var(--line);position:relative}.pipe div.d{background:var(--ok)}.pipe div.c{background:var(--accent)}.pipe div span{position:absolute;top:12px;left:0;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.pipe div.c span{color:var(--accent-deep);font-weight:700}.pipe-pad{height:20px}.sb{padding:18px 24px 40px;display:grid;grid-gap:14px;gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;min-width:0}.card h4{margin:0 0 8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.two{grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.kv,.two{display:grid}.kv{grid-template-columns:120px 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:500}.act{display:flex;flex-wrap:wrap;gap:8px}.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-gap:8px;gap:8px}.ph{aspect-ratio:4/3;max-width:100%;border-radius:4px;background:linear-gradient(135deg,var(--soft),var(--line));display:flex;align-items:flex-end;padding:6px;font-size:11px;color:var(--muted);border:1px solid var(--line)}.ph.b{border-left:3px solid var(--warn)}.ph.a{border-left:3px solid var(--ok)}.parts{width:100%;border-collapse:collapse;font-size:13px}.parts td{padding:7px 0;border-top:1px solid var(--line)}.parts td:last-child{text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.parts tr.tot td{font-weight:700;border-top:2px solid var(--fg)}.cov{color:var(--ok);font-weight:600}.log{grid-gap:10px}.log,.log div{display:grid;gap:10px}.log div{grid-template-columns:118px 1fr;grid-gap:10px;font-size:13px}.log time{font-family:var(--mono);font-size:11.5px;color:var(--muted);padding-top:2px}.hw{display:grid;grid-gap:6px;gap:6px;font-size:13px}.hw div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:6px}.hw div:first-child{border-top:0;padding-top:0}.hw span:last-child{font-family:var(--mono);font-size:12px;color:var(--muted)}.docs a{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line);color:var(--fg);text-decoration:none;font-size:13px}.docs a:first-child{border-top:0}.docs a span:last-child{color:var(--muted);font-family:var(--mono);font-size:11.5px}.paper{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:20px 22px}.pb{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--accent);padding-bottom:8px;font-family:var(--display);font-size:18px;letter-spacing:.04em}.pb span{font-family:var(--body);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.pkg{border:1px solid var(--line);border-radius:8px;background:var(--panel);margin-bottom:18px;overflow:hidden}.pkh{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--rail);color:#fff;padding:14px 18px}.pkt{font-family:var(--display);font-size:22px;letter-spacing:.03em;line-height:1}.pks{color:#D9D8D2;font-size:12.5px;margin-top:4px}.pkp{font-family:var(--display);font-size:34px;line-height:1;color:var(--accent)}.pkp small{display:block;font-family:var(--body);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#D9D8D2;margin-top:3px}.pkg2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;padding:14px 18px}.pkg2 h5{margin:0 0 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-deep)}.pkg2 ul{margin:0;padding-left:16px;font-size:12.8px;line-height:1.45;display:grid;grid-gap:4px;gap:4px}.pkf{display:grid;grid-gap:6px;gap:6px;padding:12px 18px;border-top:1px solid var(--line);background:var(--soft);font-size:12px;color:var(--muted)}.pkf b{color:var(--fg)}@media (max-width:860px){.pkg2{grid-template-columns:1fr}}.viewer{position:fixed;inset:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));max-width:980px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;z-index:41;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.vh{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 56px 12px 16px;border-bottom:1px solid var(--line);position:relative}.vh .x{position:absolute;right:12px;top:10px;border:1px solid var(--line);background:var(--panel);width:34px;height:34px;border-radius:50%;font-size:16px}.vb{overflow:auto;background:var(--soft);padding:16px;display:grid;grid-gap:12px;gap:12px;justify-items:center}.vb img{max-width:100%;box-shadow:0 2px 12px rgba(0,0,0,.18);background:#fff}.cal{display:grid;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:var(--r);padding:12px;background:var(--panel)}.calh{display:flex;justify-content:space-between;align-items:center}.calg{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.dow{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;padding:2px 0}.cd{border:1px solid var(--line);background:var(--panel);border-radius:5px;padding:6px 2px 4px;display:grid;justify-items:center;grid-gap:3px;gap:3px;font-size:13px}.cd i{width:6px;height:6px;border-radius:50%;background:var(--line)}.cd.open i{background:var(--ok)}.cd.few i{background:var(--warn)}.cd.full i{background:var(--crit)}.cd:disabled{opacity:.4;cursor:not-allowed}.cd.sel{background:var(--fg);color:var(--bg);border-color:var(--fg)}.calleg{display:flex;gap:12px;font-size:11px;color:var(--muted)}.calleg i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.calleg .open{background:var(--ok)}.calleg .few{background:var(--warn)}.calleg .full{background:var(--crit)}.calleg .closed{background:var(--line)}.calw{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:6px;gap:6px}.calw,.cw{display:grid}.cw{border:1px solid var(--line);background:var(--panel);border-radius:5px;padding:8px 6px;font-size:12.5px;font-weight:600;grid-gap:2px;gap:2px}.cw small{font-weight:400;color:var(--muted);font-size:11px}.cw:disabled{opacity:.4;cursor:not-allowed}.cw.sel{background:var(--accent);border-color:var(--accent)}.cw.sel,.cw.sel small{color:#fff}.calsel{font-size:12.5px;background:var(--ok-soft);color:var(--ok);padding:8px 10px;border-radius:5px}.thread{display:grid;grid-gap:8px;gap:8px;max-height:280px;overflow:auto;padding:4px 2px}.bub{max-width:78%;justify-self:start;background:var(--soft);border-radius:12px 12px 12px 3px;padding:8px 11px}.bub.me{justify-self:end;background:var(--accent-soft);border-radius:12px 12px 3px 12px}.bub.r-shc:not(.me){background:var(--info-soft)}.bt{font-size:13px;line-height:1.4;white-space:pre-wrap}.bm{font-size:10.5px;color:var(--muted);margin-top:3px}.chatin{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;margin-top:10px}.chatin textarea{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:9px 11px;font:inherit;color:var(--fg);resize:none;min-height:40px}.cl{grid-gap:0;gap:0}.cl,.cl>div{display:grid}.cl>div{grid-template-columns:1fr 150px 130px;grid-gap:10px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}.cl>div:first-child{border-top:0}.cl>div.ok{background:var(--ok-soft)}.cl>div.ok .clbox span{color:var(--ok)}.clbox{display:grid;grid-template-columns:18px 1fr;grid-gap:10px;gap:10px;align-items:start;cursor:pointer}.clbox input{margin-top:2px;accent-color:var(--ok)}.stamp{font-family:var(--mono);font-size:11.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.clact{display:flex;gap:8px;align-items:center;justify-content:flex-end}@media (max-width:860px){.cl>div{grid-template-columns:1fr}.clact{justify-content:flex-start}}.form{display:grid;grid-gap:10px;gap:10px}.form label{display:grid;grid-gap:4px;gap:4px;font-size:12px;color:var(--muted)}.form input,.form select,.form textarea{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:9px 11px;font:inherit;color:var(--fg)}.form textarea{min-height:90px;resize:vertical}.toast{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:var(--r);z-index:30;font-weight:500}.gate{min-height:100vh;display:grid;justify-items:center;align-content:start;padding-block:16px 28px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.gcard{width:100%;max-width:440px;background:var(--panel);border-radius:8px;padding:28px 28px 22px;border:1px solid var(--line);border-top:5px solid var(--accent)}.gate.wide .gcard{max-width:720px}.demo{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.demo button{border:1px solid var(--line);background:var(--soft);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600}.gfoot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}.gfoot a{color:var(--accent-deep);font-weight:600}.sec{font-family:var(--display);font-size:20px;letter-spacing:.03em;margin-top:10px;padding-bottom:4px;border-bottom:2px solid var(--fg)}.chk{display:grid!important;grid-template-columns:18px 1fr;grid-gap:10px;gap:10px;align-items:start;font-size:12.5px;color:var(--fg)!important}.chk input{margin-top:3px}.today{grid-gap:10px;gap:10px}.job,.today{display:grid}.job{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;grid-template-columns:70px 1fr auto;grid-gap:12px;gap:12px;align-items:center;min-width:0}.job .t{font-family:var(--display);font-size:26px;line-height:1}.job .t small{display:block;font-family:var(--body);font-size:11px;color:var(--muted);letter-spacing:.08em}.job .w{min-width:0}.job .w b{display:block}.job .w span{color:var(--muted);font-size:12.5px}@media (max-width:860px){.app{grid-template-columns:1fr}.rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding-right:max(16px,env(safe-area-inset-right,0px))}.rail .foot{display:none}.nav{flex-direction:row;flex-wrap:wrap}.main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.row{grid-template-columns:6px 1fr 90px 30px}.row .cost,.row .head-hide,.row .id{display:none}.row .step{font-size:11px}.two{grid-template-columns:1fr}.pipe div span{display:none}.pipe-pad{height:0}.job{grid-template-columns:60px 1fr}.job .act{grid-column:1/-1}}@media (prefers-reduced-motion:no-preference){.sheet{animation:in .18s ease-out}@keyframes in{0%{transform:translateX(24px);opacity:0}}}.gate .gcard{margin-top:16px}.spin{color:var(--muted);padding:30px;text-align:center}.err{background:var(--crit-soft);color:var(--crit);padding:8px 10px;border-radius:var(--r);font-size:13px}.sheet-page{max-width:860px}.sheet-page .sh{border:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;position:relative}.sheet-page .sb{border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r) var(--r);background:var(--bg)}.main .prop a{color:inherit;text-decoration:none}