@font-face{font-family:Sora;font-weight:400;src:url(/fonts/sora-latin-400-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Sora;font-weight:600;src:url(/fonts/sora-latin-600-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Sora;font-weight:700;src:url(/fonts/sora-latin-700-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Hanken Grotesk;font-weight:400;src:url(/fonts/hanken-grotesk-latin-400-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Hanken Grotesk;font-weight:500;src:url(/fonts/hanken-grotesk-latin-500-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Hanken Grotesk;font-weight:600;src:url(/fonts/hanken-grotesk-latin-600-normal.woff2)format("woff2");font-display:swap}:root{--ink:#15140f;--ink-soft:#3c3a34;--paper:#fff;--paper-soft:#f7f5f1;--paper-panel:#f1eee7;--accent:#e2720f;--accent-deep:#b85a0a;--accent-tint:#fbe6d2;--slate:#5b6472;--brown:#6e4a2e;--gray:#8c8983;--line:#e3dfd6;--line-strong:#cfc9bb;--row-alt:#faf8f4;--ok:#3f6b4e;--bad:#a33a2a;--warn:#b8860b;--font-display:"Sora","Segoe UI",sans-serif;--font-body:"Hanken Grotesk","Segoe UI",Arial,sans-serif;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:var(--paper-soft);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:var(--accent-deep);text-decoration:none}a:hover{text-decoration:underline}.shell{min-height:100vh;display:flex}.content{flex:1;min-width:0}.side{background:var(--ink);color:#cfc9bb;flex-direction:column;flex-shrink:0;width:222px;height:100vh;transition:width .16s;display:flex;position:sticky;top:0}.side.closed{width:58px}.side .label{white-space:nowrap}.side.closed .label{display:none}.side-top{color:#fff;align-items:center;gap:10px;padding:14px 13px 12px;display:flex}.side-top:hover{text-decoration:none}.side-top img{border-radius:7px;flex-shrink:0;width:30px;height:30px;display:block}.side-top .brand{font-family:var(--font-display);letter-spacing:.05em;font-size:12px;font-weight:700;line-height:1.25}.side-top .brand span{color:var(--accent)}.side nav{scrollbar-width:thin;flex:1;padding:2px 9px 8px;overflow:hidden auto}.side .cap{letter-spacing:.13em;text-transform:uppercase;color:#6d6a63;padding:13px 8px 4px;font-size:9.5px;font-weight:600}.side.closed .cap{border-top:1px solid #2c2a25;margin-top:5px;padding:5px 8px 0}.side nav a{color:#cfc9bb;border-radius:7px;align-items:center;gap:10px;margin-bottom:1px;padding:7px 8px;font-size:13px;font-weight:500;display:flex}.side nav a svg{opacity:.8;flex-shrink:0}.side nav a:hover{color:#fff;background:#ffffff12;text-decoration:none}.side nav a.on{color:#fff;background:#e2720f2b}.side nav a.on svg{color:var(--accent);opacity:1}.side-bottom{border-top:1px solid #2c2a25;padding:9px 9px 11px}.side-user{color:#fff;align-items:center;gap:10px;padding:5px 8px 8px;font-size:12.5px;font-weight:500;display:flex}.avatar{background:var(--accent);color:#fff;width:26px;height:26px;font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.side-btn{color:#cfc9bb;width:100%;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:7px 8px;font-size:12.5px;display:flex}.side-btn svg{opacity:.8;flex-shrink:0}.side-btn:hover{color:#fff;background:#ffffff12}@media (max-width:720px){.side{width:58px}.side .label{display:none}.side .cap{border-top:1px solid #2c2a25;margin-top:5px;padding:5px 8px 0}.side-collapse{display:none}}.wrap{max-width:1180px;margin:0 auto;padding:24px 20px 64px}h1{font-family:var(--font-display);margin-bottom:3px;font-size:21px;font-weight:700}h2{font-family:var(--font-display);margin:0 0 10px;font-size:15px;font-weight:600}.sub{color:var(--gray);margin-bottom:20px;font-size:13px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;padding:18px}.grid{gap:14px;display:grid}.g2{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat .k{letter-spacing:.09em;text-transform:uppercase;color:var(--gray);font-size:10.5px;font-weight:600}.stat .v{font-family:var(--font-display);margin-top:5px;font-size:22px;font-weight:700;line-height:1.15}.stat .n{color:var(--gray);margin-top:3px;font-size:11.5px}.stat.accent{background:var(--ink);border-color:var(--ink)}.stat.accent .k{color:#8c8983}.stat.accent .v{color:var(--accent)}.stat.accent .n{color:#8c8983}table{border-collapse:collapse;width:100%;font-size:13.5px}th{text-align:left;letter-spacing:.07em;text-transform:uppercase;color:var(--gray);border-bottom:1px solid var(--line-strong);white-space:nowrap;padding:7px 10px;font-size:10.5px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}tbody tr:nth-child(2n){background:var(--row-alt)}tbody tr:last-child td{border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tfoot td{border-top:2px solid var(--line-strong);background:var(--paper-panel);font-weight:700}.scroll{overflow-x:auto}.pill{letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.pill.green,.pill.Done,.pill.Paid,.pill.Received,.pill.Resolved{color:var(--ok);background:#e8f0e9;border-color:#c6dccb}.pill.red,.pill.Blocked,.pill.Unpaid{color:var(--bad);background:#fbe7e3;border-color:#f0c7bf}.pill.amber,.pill.Watch,.pill.Requested,.pill.Partial,.pill--progress{color:var(--warn);background:#fdf2dc;border-color:#efdcae}.pill.grey{background:var(--paper-panel);color:var(--gray);border-color:var(--line-strong)}.pill.accent{background:var(--accent-tint);color:var(--accent-deep);border-color:#f0cda8}.stage{text-transform:uppercase;letter-spacing:.06em;background:var(--paper-panel);color:var(--ink-soft);border-radius:5px;padding:2px 9px;font-size:10.5px;font-weight:700;display:inline-block}.stage.quoted{background:var(--accent-tint);color:var(--accent-deep)}.stage.won{color:var(--ok);background:#e8f0e9}.stage.lost{background:var(--paper-panel);color:var(--gray)}.board{grid-template-columns:repeat(5,minmax(190px,1fr));gap:12px;display:grid;overflow-x:auto}.col{background:var(--paper-panel);border-radius:var(--radius);min-width:190px;padding:11px}.col h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:3px;font-size:11px}.col .colsum{color:var(--gray);margin-bottom:10px;font-size:11.5px}.deal{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--line-strong);color:inherit;border-radius:7px;margin-bottom:9px;padding:10px 11px;display:block}.deal:hover{border-color:var(--accent);text-decoration:none}.deal.red{border-left-color:var(--bad)}.deal.amber{border-left-color:var(--warn)}.deal.green{border-left-color:var(--ok)}.deal .t{font-size:13px;font-weight:600;line-height:1.3}.deal .c{color:var(--gray);margin:2px 0 6px;font-size:11.5px}.deal .v{font-family:var(--font-display);font-size:13.5px;font-weight:700}.empty{color:var(--gray);padding:6px 2px;font-size:12px;font-style:italic}.bar{background:var(--paper-panel);border-radius:4px;min-width:70px;height:6px;overflow:hidden}.bar i{background:var(--accent);height:100%;display:block}.overdue{color:var(--bad);font-weight:600}.muted{color:var(--gray)}.warnbox{background:var(--accent-tint);border:1px solid #f0cda8;border-left:3px solid var(--accent);border-radius:7px;margin-bottom:14px;padding:11px 13px;font-size:13px}.two{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:820px){.two{grid-template-columns:1fr}}.kv{font-size:13px}.kv div{border-bottom:1px dotted var(--line);gap:10px;padding:4px 0;display:flex}.kv div:last-child{border:none}.kv b{min-width:118px;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;padding-top:1px;font-size:11.5px;font-weight:600}.tabsec{margin-top:22px}.tabsec h2{align-items:baseline;gap:9px;display:flex}.tabsec h2 .n{color:var(--gray);font-size:11.5px;font-weight:400}.loginwrap{background:var(--ink);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.loginbox{background:var(--paper);border-radius:12px;width:100%;max-width:370px;padding:34px 30px}.loginbox .brand{font-family:var(--font-display);letter-spacing:.05em;margin-bottom:4px;font-size:16px;font-weight:700}.loginbox .brand span{color:var(--accent)}.loginbox p.sub{margin-bottom:22px;font-size:12.5px}label{text-transform:uppercase;letter-spacing:.07em;color:var(--gray);margin-bottom:5px;font-size:11px;font-weight:600;display:block}input[type=text],input[type=password],input[type=email],input:not([type]){border:1px solid var(--line-strong);width:100%;font:inherit;background:var(--paper-soft);border-radius:7px;margin-bottom:15px;padding:10px 12px;font-size:14px}input:focus{outline:2px solid var(--accent);outline-offset:-1px;background:var(--paper)}.btn{background:var(--ink);color:#fff;width:100%;font-family:var(--font-display);cursor:pointer;border:none;border-radius:7px;padding:11px;font-size:14px;font-weight:600}.btn:hover{background:var(--accent-deep)}.err{color:var(--bad);background:#fbe7e3;border:1px solid #f0c7bf;border-radius:7px;margin-bottom:15px;padding:9px 12px;font-size:13px}.foot{text-align:center;color:var(--gray);margin-top:34px;font-size:11.5px}select,textarea{border:1px solid var(--line-strong);width:100%;font:inherit;background:var(--paper-soft);border-radius:7px;margin-bottom:15px;padding:9px 11px;font-size:14px}select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}input[type=number],input[type=date]{border:1px solid var(--line-strong);width:100%;font:inherit;background:var(--paper-soft);border-radius:7px;margin-bottom:15px;padding:10px 12px;font-size:14px}td input,td select{margin-bottom:0;padding:6px 8px;font-size:13px}.inline{margin:0;display:inline}.inline select{background:var(--paper);border-color:var(--line);border-radius:5px;width:auto;margin:0;padding:3px 7px;font-size:11.5px}.inline select:hover{border-color:var(--accent)}.actions{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:18px;display:flex}.btn-sm{background:var(--ink);color:#fff;font-family:var(--font-display);cursor:pointer;border:none;border-radius:7px;padding:7px 14px;font-size:12.5px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-block}.btn-sm:hover{background:var(--accent-deep);color:#fff;text-decoration:none}.btn-ghost{background:var(--paper);color:var(--ink);border:1px solid var(--line-strong)}.btn-ghost:hover{background:var(--paper-panel);color:var(--ink);border-color:var(--accent)}.formrow{flex-wrap:wrap;align-items:flex-end;gap:9px;display:flex}.formrow>div{flex:1;min-width:150px}.formrow input,.formrow select,.formrow button{margin-bottom:0}.chips{flex-wrap:wrap;gap:7px;margin-bottom:16px;display:flex}.chip{background:var(--paper-soft);border:1px solid var(--line-strong);color:var(--ink-soft);font:inherit;cursor:pointer;text-transform:capitalize;border-radius:20px;padding:5px 13px;font-size:12.5px;font-weight:500}.chip:hover{border-color:var(--accent);color:var(--accent-deep);text-decoration:none}a.chip{display:inline-block}.chip.on{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-deep);font-weight:600}.skel{background:var(--paper-panel);border-radius:5px;position:relative;overflow:hidden}.skel:after{content:"";background:linear-gradient(90deg,#0000,#ffffffa6,#0000);animation:1.25s infinite sweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skel:after{animation:none}}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:14px;display:grid}.tpl-card{color:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-soft);text-align:center;padding:10px 10px 12px;display:block}.tpl-card:hover{border-color:var(--accent);text-decoration:none}.tpl-thumb{border:1px solid var(--line);background:#fff;border-radius:6px;width:190px;height:269px;margin:0 auto;display:block;position:relative;overflow:hidden}.tpl-thumb iframe{transform-origin:0 0;pointer-events:none;border:0;width:794px;height:1123px;position:absolute;top:0;left:0;transform:scale(.2393)}.tpl-name{font-family:var(--font-display);margin-top:10px;font-size:13px;font-weight:600;display:block}.tpl-blurb{color:var(--gray);margin-top:2px;font-size:11.5px;line-height:1.4;display:block}.tpl-cta{margin-top:10px;display:inline-block}.chead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:18px;display:flex}.chead .chips{margin-bottom:2px}.composer{grid-template-columns:minmax(320px,460px) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:980px){.composer{grid-template-columns:1fr}}.cform{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:6px 18px 18px}.csec{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.csec:first-child{border-top:none;margin-top:0;padding-top:12px}.csec-cap{letter-spacing:.11em;text-transform:uppercase;color:var(--gray);margin-bottom:11px;font-size:10px;font-weight:700}.cfield,.cfield input,.cfield select,.cfield textarea{min-width:0}.cgrid2{grid-template-columns:1fr 1fr;gap:18px;display:grid}.cgrid2>*{min-width:0}.chint{color:var(--gray);margin-bottom:8px;font-size:11.5px}.citem{grid-template-columns:minmax(0,1fr) 58px 92px 42px;align-items:center;gap:8px;margin-bottom:9px;display:grid}.citem>*{min-width:0}.citem-head{letter-spacing:.07em;text-transform:uppercase;color:var(--gray);margin-bottom:5px;font-size:10.5px;font-weight:600}.citem input{margin-bottom:0;padding:10px 11px;font-size:14px}.citem input[type=number]{text-align:right;padding:10px 8px}.citem .rm{border:1px solid var(--line-strong);background:var(--paper-soft);height:42px;color:var(--gray);cursor:pointer;border-radius:7px;padding:0;font-size:16px;line-height:1}.citem .rm:hover{color:var(--bad);border-color:var(--bad);background:#fbe7e3}.citem-foot{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.ctotal{color:var(--gray);font-size:13px}.ctotal b{font-family:var(--font-display);color:var(--ink);margin-left:6px;font-size:16px}.cpreview{min-width:0;position:sticky;top:14px}.cpreview-bar{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12.5px;display:flex}.btn-auto{width:auto;padding:11px 22px;font-size:13.5px}.cpreview-stage{background:var(--paper-panel);border:1px solid var(--line);border-radius:10px;justify-content:center;padding:18px;display:flex;overflow:hidden}.cpreview-fit{border-radius:3px;flex-shrink:0;overflow:hidden;box-shadow:0 2px 6px #15140f1a,0 14px 34px #15140f29}.cpreview-fit iframe{transform-origin:0 0;background:#fff;border:0;display:block}.previewbar{background:var(--warn);color:#fff;letter-spacing:.02em;text-align:center;padding:7px 20px;font-size:12px;font-weight:600}.previewbar code{background:#ffffff38;border-radius:4px;padding:1px 5px;font-size:11.5px}.setupbox{max-width:520px}.setupbox .warnbox{margin-bottom:18px}.envtable{font-size:12.5px}.envtable code{background:var(--paper-panel);border-radius:4px;padding:1px 5px;font-size:11.5px}.envtable .muted{margin-top:3px;font-size:11.5px}.steps{margin-bottom:14px;padding-left:18px;font-size:13px}.steps li{margin-bottom:8px}.steps code{background:var(--paper-panel);border-radius:4px;padding:1px 5px;font-size:11.5px}
