:root{--bg:#f2f1ec;--paper:#fff;--ink:#1b2228;--muted:#5e6a73;--line:#dad8d0;--brand:#1f2a33;--accent:#c8892b;--accent-soft:#f6ebd8;--good:#2e7a4c;--good-soft:#e1f0e6;--bad:#b4471f;--bad-soft:#f8e4db;--display:"Barlow Condensed", "Arial Narrow", sans-serif;--body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#11161a;--paper:#192127;--ink:#e6e9eb;--muted:#95a2ab;--line:#2b363e;--brand:#0b0f12;--accent:#e0a34b;--accent-soft:#33291a;--good:#66c48d;--good-soft:#18301f;--bad:#eb8a5f;--bad-soft:#3a2117;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--body);margin:0;font-size:15px;line-height:1.45}button,input,select{font:inherit;color:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.top{background:var(--brand);color:#f2f1ec;padding:calc(14px + env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) 14px max(16px, env(safe-area-inset-left,0px));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.mark{background:var(--accent);color:#1b2228;width:40px;height:40px;font-family:var(--display);border-radius:8px;flex:none;place-items:center;font-size:20px;font-weight:700;display:grid}.name{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:26px;font-weight:700;line-height:1}.verse{opacity:.75;max-width:46ch;font-size:12px}.co{align-items:center;gap:8px;font-size:14px;display:flex}.co select{color:#f2f1ec;background:0 0;border:1px solid #ffffff59;border-radius:6px;padding:4px 6px}.co select option{color:#1b2228}.tabs{padding:8px max(12px, env(safe-area-inset-left,0px));background:var(--paper);border-bottom:1px solid var(--line);z-index:5;gap:4px;display:flex;position:sticky;top:0;overflow-x:auto}.tabs button{white-space:nowrap;cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:99px;padding:8px 14px;font-weight:500}.tabs button.on{background:var(--brand);color:#f2f1ec}main{width:100%;max-width:1180px;padding:18px max(14px, env(safe-area-inset-left,0px)) 40px;flex:1;margin:0 auto}.stack{flex-direction:column;gap:16px;min-width:0;display:flex}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:14px;min-width:0;padding:18px;display:flex}h2{font-family:var(--display);letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:22px}h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 0 0;font-size:13px}.head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.note{color:var(--muted);font-size:13px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g5{grid-template-columns:repeat(5,minmax(0,1fr))}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.lbl{color:var(--muted);font-size:12px;font-weight:500}.hint{color:var(--muted);font-size:12px}.field input,.field select,.search{border:1px solid var(--line);background:var(--bg);border-radius:8px;width:100%;min-height:40px;padding:8px 10px}.field input:focus,.field select:focus,.search:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.numwrap{display:block;position:relative}.numwrap input{padding-right:38px}.suf{color:var(--muted);pointer-events:none;font-size:12px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.calc{font-family:var(--mono);font-variant-numeric:tabular-nums;padding:9px 0;font-size:14px}.rows{flex-direction:column;gap:10px;display:flex}.row{border-bottom:1px dashed var(--line);align-items:end;gap:10px;padding-bottom:10px;display:grid}.row:last-child{border-bottom:0}.r3{grid-template-columns:2fr 1fr 36px}.r5{grid-template-columns:1.6fr 1fr 1fr 1fr 36px}.client{grid-template-columns:1.4fr 1fr 1.3fr 1.6fr 36px}.phase{grid-template-columns:2fr .7fr .9fr 1.3fr 1fr 36px}.mat{grid-template-columns:2.4fr 1fr 1fr 36px}.row.missing{background:var(--bad-soft);border-radius:8px;padding:8px}.x{width:36px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;font-size:20px}.x:hover{color:var(--bad);border-color:var(--line)}.btn{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:8px;align-self:flex-start;min-height:40px;padding:9px 14px;font-weight:500}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1b2228}.btn[disabled]{opacity:.45;cursor:not-allowed}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px 0;font-weight:500}.link.back{align-self:flex-start}.link.danger{color:var(--bad)}.toggle{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.pill{font-family:var(--mono);background:var(--accent-soft);border-radius:99px;padding:3px 10px;font-size:12px}.hero{background:var(--brand);color:#f2f1ec;border-radius:14px;flex-direction:column;gap:16px;padding:20px;display:flex}.kpi{flex-direction:column;gap:2px;display:flex}.kpi .k{text-transform:uppercase;letter-spacing:.08em;opacity:.75;font-size:12px}.kpi .v{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;line-height:1}.kpi .v.accent{color:var(--accent)}.kpi .m{opacity:.7;font-size:12px}.kpi.big .v{color:var(--accent);font-size:56px}.kpi.warn .v{color:#f0936b}.kpis{border-top:1px solid #ffffff26;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-top:14px;display:grid}.alert{background:#f0936b26;border-left:3px solid #f0936b;border-radius:6px;margin:0;padding:10px 12px;font-size:14px}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl td{border-bottom:1px solid var(--line);padding:8px 0}.tbl td:last-child{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.tbl tr.sum td{border-bottom:2px solid var(--ink);font-weight:600}.eq{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.eqhead{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.eqname{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex:1;min-width:10rem;padding:8px 10px;font-weight:600}.qlist{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.qlist li button{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;grid-template-columns:1fr auto 5.5rem;align-items:center;gap:12px;width:100%;padding:12px 4px;display:grid}.qlist li button:hover{background:var(--bg)}.qt{flex-direction:column;font-weight:600;display:flex}.qt small,.qp small{color:var(--muted);font-size:12.5px;font-weight:400}.qp{font-family:var(--mono);text-align:right;flex-direction:column;display:flex}.good{color:var(--good)!important}.bad{color:var(--bad)!important}.status{text-transform:uppercase;letter-spacing:.06em;text-align:center;background:var(--bg);border-radius:99px;padding:3px 8px;font-size:12px}.s-ready{background:var(--accent-soft)}.s-won{background:var(--good-soft);color:var(--good)}.s-lost{background:var(--bad-soft);color:var(--bad)}.seg{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-self:flex-start;display:inline-flex;overflow:hidden}.seg button{background:var(--paper);cursor:pointer;border:0;border-right:1px solid var(--line);padding:9px 14px}.seg button:last-child{border-right:0}.seg button.on{background:var(--brand);color:#f2f1ec}.seg.small button{text-transform:capitalize;padding:6px 12px;font-size:13px}.seg button[disabled]{opacity:.4;cursor:not-allowed}.builder{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.check{background:var(--paper);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;padding:18px;display:flex;position:sticky;top:64px}.price .k{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px;display:block}.price .v{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:44px;font-weight:700;line-height:1.05;display:block}.price .m{color:var(--muted);font-size:12.5px;display:block}.marginbar{background:var(--bg);border-radius:99px;height:10px;position:relative;overflow:visible}.marginbar .fill{background:var(--good);border-radius:99px;height:100%}.marginbar .fill.low{background:var(--bad)}.marginbar .floor{background:var(--ink);width:2px;height:18px;position:absolute;top:-4px}.mrow{justify-content:space-between;gap:10px;font-size:14px;display:flex}.mrow>:last-child{font-family:var(--mono);font-variant-numeric:tabular-nums}details summary{cursor:pointer;color:var(--muted);padding:4px 0;font-size:13px}details .mrow{padding:3px 0}.checks{flex-direction:column;gap:6px;margin:4px 0;padding:0;list-style:none;display:flex}.checks li{grid-template-columns:22px 1fr;gap:6px;font-size:13.5px;display:grid}.checks small{color:var(--muted);font-size:12px;display:block}.checks .dot{border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:grid}.checks .ok .dot{background:var(--good-soft);color:var(--good)}.checks .no .dot{background:var(--bad-soft);color:var(--bad)}.actions{flex-wrap:wrap;gap:8px;display:flex}.foot{color:var(--muted);padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px));flex-wrap:wrap;justify-content:center;gap:16px;font-size:12px;display:flex}@media (width<=900px){.builder{grid-template-columns:1fr}.check{order:-1;position:static}.grid.g5,.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.grid,.grid.g3,.r5,.cat,.client,.phase,.mat{grid-template-columns:1fr 1fr}.r5>:first-child,.cat>:nth-child(2),.client>:first-child,.phase>:first-child,.mat>:first-child{grid-column:1/-1}.row .x{justify-self:end}.kpi.big .v{font-size:46px}.qlist li button{grid-template-columns:1fr auto}.qlist .status{grid-column:1/-1;justify-self:start}.verse{display:none}}.picker{flex-direction:column;gap:10px;display:flex}.tpl{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.tpl button{text-align:left;border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:10px;flex-direction:column;gap:2px;padding:12px;display:flex}.tpl button:hover{border-color:var(--accent)}.tpl small{color:var(--muted);font-size:12.5px}.jobcheck{background:var(--accent-soft);border-radius:8px;padding:10px 12px}.jobcheck ul{margin:6px 0 0;padding-left:18px;font-size:14px}.csv summary{color:var(--accent);font-size:14px}.csv textarea{border:1px solid var(--line);background:var(--bg);width:100%;font-family:var(--mono);border-radius:8px;margin:8px 0;padding:8px 10px;font-size:13px}.actions{align-items:center}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:99px;padding:8px 14px;font-size:14px}.chip.on{background:var(--brand);color:#f2f1ec;border-color:var(--brand)}.supplier{grid-template-columns:1.3fr 1.3fr 1.3fr .7fr auto 36px}.mini-link{color:inherit;white-space:nowrap;font-size:13px;text-decoration:none}.cat{grid-template-columns:.9fr 1.8fr .6fr .8fr .8fr 1fr 1.1fr 36px}.checked{font-family:var(--mono);align-items:center;gap:6px;padding:8px 0;font-size:13px;display:flex}.checked .stale{color:var(--bad)}.mini{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:6px;padding:2px 8px;font-size:12px}.pcheck{margin:0;padding:0;list-style:none}.pcheck li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.pcheck li span{flex-direction:column;display:flex}.pcheck small{color:var(--muted);font-size:12.5px}.pcheck a,.note a{color:var(--accent);font-weight:500}.warnbox{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:6px;margin:0;padding:8px 10px;font-size:13px}.fh .fhhead{flex-direction:column;gap:6px;display:flex}.fh .k{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:12px;font-weight:600;display:block}.fh .v{font-family:var(--display);font-size:34px;font-weight:700;line-height:1;display:block}.fh .m{opacity:.75;font-size:12.5px}.ritual{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.step{cursor:pointer;border:1px solid #ffffff2e;border-radius:10px;grid-template-columns:22px 1fr;align-items:start;gap:8px;padding:10px;display:grid}.step input,.big3 input[type=checkbox],.todos input{width:20px;height:20px;accent-color:var(--accent);margin:2px 0 0}.step b{font-size:14px;display:block}.step small{opacity:.7;font-size:12px}.step.done{background:#c8892b40;border-color:#0000}.big3{background:var(--accent-soft);border-radius:8px;grid-template-columns:22px 20px 1fr;align-items:center;gap:8px;padding:6px 10px;display:grid}.big3 .n{font-family:var(--mono);color:var(--accent)}.big3 input[type=text]{background:0 0;border:0;width:100%;padding:8px 4px;font-size:15px}.big3 input[type=text]:focus{outline:none}.big3.done input[type=text],.todos li.done span{color:var(--muted);text-decoration:line-through}.todos{margin:0;padding:0;list-style:none}.todos li{grid-template-columns:22px 1fr 36px;align-items:center;gap:8px;padding:4px 0;display:grid}.addrow{gap:8px;display:flex}.addrow input{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex:1;min-height:40px;padding:8px 10px}.pulse{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.pulse>div{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;padding:12px;display:flex}.pulse .v{font-family:var(--display);font-size:30px;font-weight:700;line-height:1}.pulse .k{color:var(--muted);font-size:12.5px}.pulse .bad .v{color:var(--bad)}.nudges{flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:14px;display:flex}.goal{grid-template-columns:2fr 1.5fr .8fr}@media (width<=900px){.cat{grid-template-columns:1fr 1fr}.cat>:nth-child(2){grid-column:1/-1}.supplier{grid-template-columns:1fr 1fr}}@media (width<=640px){.ritual,.pulse{grid-template-columns:1fr 1fr}.goal{grid-template-columns:1fr}.supplier>:first-child{grid-column:1/-1}}.wizard{z-index:6;background:var(--brand);color:#f2f1ec;padding:12px max(14px, env(safe-area-inset-left,0px));flex-direction:column;gap:6px;display:flex;position:sticky;top:49px;box-shadow:0 4px 14px #0000002e}.wizard .wtop{justify-content:space-between;align-items:center;display:flex}.wizard .wstep{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:12px;font-weight:600}.wizard b{font-family:var(--display);letter-spacing:.02em;font-size:22px}.wizard .wtell{opacity:.85;font-size:14px}.wizard .btn{color:#f2f1ec;background:0 0;border-color:#ffffff59}.wizard .btn.primary{background:var(--accent);color:#1b2228;border-color:var(--accent)}.wprog{gap:4px;display:flex}.wprog button{cursor:pointer;background:#fff3;border:0;border-radius:99px;flex:1;height:6px;padding:0}.wprog button.ok{background:var(--good)}.wprog button.cur{background:var(--accent)}.wizfocus{outline:3px solid var(--accent);outline-offset:2px;scroll-margin-top:230px}section{scroll-margin-top:230px}.wizcta{border-color:var(--accent)}.acct{color:#f2f1ec;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:6px;padding:4px 10px;font-size:13px}.acctpanel{background:var(--paper);border-bottom:1px solid var(--line);padding:14px max(16px, env(safe-area-inset-left,0px));flex-direction:column;gap:8px;max-width:520px;display:flex}.acctpanel input{border:1px solid var(--line);background:var(--bg);border-radius:8px;min-height:40px;padding:8px 10px}.pill.warn{background:var(--bad-soft);color:var(--bad)}.snaps{max-height:360px;margin:0;padding:0;list-style:none;overflow:auto}.snaps li,.restore{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.snaps li span,.restore>span:first-child{flex-direction:column;display:flex}.snaps small,.restore small{color:var(--muted);font-size:12.5px}.restore{border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:stretch;margin-top:10px;padding:12px}.note.bad{color:var(--bad)}.note.good{color:var(--good)}label.btn{cursor:pointer}.printquote{display:none}@media print{@page{margin:16mm}body *{visibility:hidden}.printquote,.printquote *{visibility:visible}.printquote{color:#111;background:#fff;font:11pt/1.45 Inter,system-ui,sans-serif;display:block;position:absolute;inset:0}.printquote header{border-bottom:2px solid #111;justify-content:space-between;gap:24px;margin-bottom:16px;padding-bottom:10px;display:flex}.printquote h1{margin:0 0 4px;font-size:20pt}.printquote header p{color:#444;margin:0;font-size:9.5pt}.printquote .qmeta{text-align:right;flex-direction:column;font-size:9.5pt;display:flex}.printquote .qmeta b{font-size:12pt}.printquote .k{text-transform:uppercase;letter-spacing:.08em;color:#666;margin-bottom:3px;font-size:8pt;display:block}.printquote .pq-for{flex-direction:column;margin-bottom:14px;display:flex}.printquote h2{margin:6px 0 10px;font-size:14pt}.printquote ol,.printquote ul{margin:4px 0 12px 18px;padding:0}.printquote .pq-incl{color:#333}.printquote .pq-total{border-collapse:collapse;min-width:55%;margin-top:8px;margin-left:auto}.printquote .pq-total td{border-bottom:1px solid #ddd;padding:5px 0}.printquote .pq-total td:last-child{text-align:right;font-variant-numeric:tabular-nums;padding-left:24px}.printquote .pq-total .grand td{border-bottom:2px solid #111;font-size:13pt;font-weight:700}.printquote .pq-terms{color:#333;margin-top:18px;font-size:9.5pt}.printquote .pq-sign{color:#555;gap:40px;margin-top:40px;font-size:9pt;display:flex}.printquote .pq-sign div{flex:1}.printquote .pq-sign span{border-bottom:1px solid #111;height:28px;margin-bottom:4px;display:block}}
