:root{--bg:#0d1017;--panel:#151924;--panel2:#1b2130;--line:#252d3d;--fg:#e6e9ef;--muted:#8d97a8;--brand:#1E4D9E;--brand-deep:#16386f;--accent:#48CDF1;--accent-dim:#2b7fa3;--good:#52FFB0;--good-dim:#1f7a56;--warn:#e0a458;--danger:#e06c75;--radius:8px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font:14px/1.5 var(--font);background:var(--bg);color:var(--fg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.side a:hover,a.btn:hover,.logo:hover,a.muted:hover{text-decoration:none}button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--fg);padding:.45rem .8rem}button:hover{border-color:var(--accent-dim)}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}button.primary:hover{filter:brightness(1.14);border-color:var(--brand)}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--accent)}input,select,textarea{font:inherit;background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:.45rem .6rem;width:100%}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent);inline-size:15px;block-size:15px;margin:0}.app{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.side{background:var(--panel);border-right:1px solid var(--line);padding:1rem .75rem;display:flex;flex-direction:column;gap:.15rem}@media (max-width:760px){.module-rail{display:none}}.module-rail{height:3px;margin:-1rem -.75rem .85rem;border-radius:0}.brand{padding:.15rem .35rem 1rem}.logo{display:flex;align-items:center;gap:.5rem}.logo-txt{font-weight:700;font-size:15px;line-height:1.1;letter-spacing:-.01em}.logo-txt small{display:block;font-weight:500;color:var(--muted);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;margin-top:.12rem}.login .logo{justify-content:center}.side a{padding:.45rem .6rem;border-radius:6px;color:var(--muted)}.side a:hover{background:var(--panel2);color:var(--fg)}.side a.on{background:var(--brand-deep);color:#fff;font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}.side .foot{margin-top:auto;border-top:1px solid var(--line);padding-top:.75rem;color:var(--muted);font-size:12px}.main{padding:1.25rem 1.5rem;overflow:auto}h1{font-size:19px;margin:0 0 .2rem}h2{font-size:15px;margin:1.5rem 0 .6rem}.sub{color:var(--muted);font-size:12.5px;margin:0 0 1.1rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-weight:500;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:.5rem .6rem;border-bottom:1px solid var(--line)}td{padding:.55rem .6rem;border-bottom:1px solid var(--line)}tbody tr:hover{background:var(--panel2)}.tag{display:inline-block;font-size:11px;padding:.1rem .45rem;border-radius:20px;border:1px solid var(--line);background:var(--panel2);color:var(--muted)}.tag.tether{border-color:var(--good-dim);color:var(--good)}.tag.info{border-color:var(--accent-dim);color:var(--accent)}.tag.warn{border-color:var(--warn);color:var(--warn)}.tag.danger{border-color:var(--danger);color:var(--danger)}.board{display:flex;gap:.7rem;align-items:stretch;overflow-x:auto;padding-bottom:1rem}.col{min-width:230px;max-width:230px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column}.col h3{margin:0;padding:.6rem .7rem;font-size:12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:.4rem;font-weight:600}.col.won h3{color:var(--good);border-bottom-color:var(--good-dim)}.col.lost h3{color:var(--muted)}.col.won{border-color:var(--good-dim)}.col h3 .count{color:var(--muted);font-weight:400;font-variant-numeric:tabular-nums}.col .body{padding:.5rem;display:flex;flex-direction:column;gap:.5rem;min-height:60px}.opp{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:.55rem .6rem;font-size:12.5px}.opp .nm{font-weight:600;margin-bottom:.2rem}.opp .meta{color:var(--muted);font-size:11.5px}.center{min-height:100vh;display:grid;place-items:center;padding:2rem}.login{max-width:380px;width:100%;text-align:center}.login h1{font-size:24px}.err{border:1px solid var(--danger);color:var(--danger);background:#2a1618;border-radius:var(--radius);padding:.7rem .9rem;font-size:13px;margin:.6rem 0}.note{border:1px solid var(--line);background:var(--panel);border-left:3px solid var(--warn);border-radius:6px;padding:.6rem .8rem;font-size:12.5px;color:var(--muted);margin:.6rem 0}.kv{display:grid;grid-template-columns:145px 1fr;gap:.35rem .8rem;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0}.muted{color:var(--muted)}.help{cursor:help;color:var(--muted);font-size:12px;margin-left:.3rem}.help:hover{color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:.7rem}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem}.stat .k{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.stat .v{font-size:22px;font-weight:600;margin-top:.2rem;font-variant-numeric:tabular-nums}.stat .n{color:var(--muted);font-size:11.5px}.stat.attn .v{color:var(--warn)}.tagline{color:var(--muted);font-size:11px;line-height:1.45;letter-spacing:.01em;margin:0 0 .55rem}.login .tagline{color:var(--good);font-size:13px;line-height:1.5;margin:.35rem 0 .9rem}.timeline{list-style:none;padding:0;margin:0;font-size:13px}.timeline li{padding:.5rem 0 .5rem .9rem;border-left:2px solid var(--line);position:relative}.timeline li:before{content:"";position:absolute;left:-5px;top:.85rem;width:8px;height:8px;border-radius:50%;background:var(--accent-dim)}.mtop,.mtabs{display:none}@media (max-width:1024px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:start}.side{display:none}.mtop{display:flex;position:sticky;top:0;z-index:30;align-items:center;gap:.7rem;padding:calc(.45rem + env(safe-area-inset-top)) .9rem .45rem;background:var(--panel);border-bottom:1px solid var(--line)}.mtop-brand{flex:1;min-width:0}.mtop-menu{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .7rem}.mtop .badge{text-decoration:none}.drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:50}.drawer{position:absolute;top:0;left:0;bottom:0;width:min(310px,86vw);background:var(--panel);border-right:1px solid var(--line);padding:calc(.9rem + env(safe-area-inset-top)) .8rem calc(1rem + env(safe-area-inset-bottom));overflow-y:auto;display:flex;flex-direction:column;gap:.1rem}.drawer a{padding:.65rem .6rem;border-radius:6px;color:var(--muted);font-size:15px}.drawer a:hover{background:var(--panel2);color:var(--fg);text-decoration:none}.drawer a.on{background:var(--brand-deep);color:#fff;font-weight:600}.drawer .foot{margin-top:1rem;border-top:1px solid var(--line);padding-top:.75rem;color:var(--muted);font-size:12px}body.no-scroll{overflow:hidden}}@media (max-width:760px){.mtabs{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.mtabs .tab{flex:1;text-align:center;padding:.8rem .15rem;font-size:12.5px;color:var(--muted)}.mtabs .tab:hover{text-decoration:none}.mtabs .tab.on{color:var(--fg);font-weight:600;box-shadow:inset 0 2px 0 var(--accent)}.main{padding:.9rem .9rem calc(4.6rem + env(safe-area-inset-bottom))}input,select,textarea{font-size:16px}button,a.btn{min-height:40px}h1{font-size:20px}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}table td:first-child,table th:first-child{position:sticky;left:0;z-index:1;background:var(--panel)}.board{scroll-snap-type:x mandatory}.col{min-width:84vw;max-width:84vw;scroll-snap-align:start}.row>select,.row>input:not([type=checkbox]):not([type=radio]){flex:1 1 150px;min-width:0}#nl-badge-frame{bottom:calc(4.4rem + env(safe-area-inset-bottom))!important}}.field{display:block;margin:0 0 1rem}.field>span,.field>legend{display:block;font-weight:600;font-size:.86rem;margin-bottom:.3rem}.field>span>em{font-style:normal;font-weight:400;color:var(--muted);font-size:.78rem;margin-left:.35rem}.field input[type=text],.field input:not([type]),.field select,.field textarea{width:100%;box-sizing:border-box}.field small{display:block;margin-top:.3rem;line-height:1.4}fieldset.field{border:0;padding:0;margin:0 0 1rem}.checks{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}.inline{display:flex;align-items:center;gap:.4rem;font-weight:400;font-size:.88rem}.inline input{width:auto;margin:0}.two-up{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}@media (max-width: 560px){.two-up{grid-template-columns:1fr}}.linkish{background:none;border:0;padding:.2rem 0;margin:0 0 .7rem;color:var(--accent);cursor:pointer;font-size:.88rem}a.btn{display:inline-block;padding:.42rem .8rem;border-radius:6px;background:var(--brand);border:1px solid var(--brand);color:#fff;font-weight:600;text-decoration:none;font-size:.88rem}a.btn:hover{filter:brightness(1.08)}a.btn.ghost{background:var(--panel2);border-color:var(--line);color:var(--fg);font-weight:400}a.btn.ghost:hover{border-color:var(--accent-dim);filter:none}.unsaved-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:var(--panel2);border:1px solid var(--warn);border-radius:var(--radius);padding:.55rem .7rem .55rem .9rem;margin:0 0 .9rem;box-shadow:0 4px 10px #00000059}.unsaved-bar .msg{color:var(--warn);font-weight:600;font-size:.86rem;display:flex;align-items:center;gap:.5rem}.unsaved-bar .msg:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--warn);flex:none}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover,th.sortable.active{color:var(--fg)}th.sortable .th-label{display:inline-flex;align-items:center;gap:.3rem}th.sortable .sort-arrow{font-size:9px;color:var(--accent);width:8px;display:inline-block}.email-body{white-space:pre-wrap;word-break:break-word;margin:.35rem 0 0;padding:.6rem .7rem;max-height:320px;overflow:auto;background:var(--panel2);border:1px solid var(--line);border-radius:6px;font-size:12.5px;line-height:1.5;color:var(--fg)}button.linklike{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font-size:inherit;text-decoration:underline}button.linklike:hover{color:var(--fg)}.consent{max-width:560px;width:100%}.consent h1{font-size:21px}.consent ul{padding-left:1.1rem;margin:.4rem 0 .9rem;font-size:13.5px;line-height:1.55}.consent .no{color:var(--muted)}.badge{display:inline-block;min-width:1.2rem;text-align:center;font-size:11px;line-height:1.2rem;border-radius:20px;background:var(--warn);color:#111;margin-left:.4rem;font-weight:600;padding:0 .35rem}table.plan-grid td,table.plan-grid th{padding-left:.25rem;padding-right:.25rem}table.plan-grid td:first-child,table.plan-grid th:first-child{min-width:120px;max-width:170px;padding-left:.6rem}.report-controls{margin:.2rem 0 1rem;gap:.9rem}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.7rem;margin-bottom:1rem}.report-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem .9rem;color:inherit;text-decoration:none}.report-card:hover{border-color:var(--accent-dim);background:var(--panel2)}table.report-table td.up{color:var(--good)}table.report-table td.down{color:var(--danger)}table.report-table tr.total-row td{font-weight:600;border-top:2px solid var(--line)}table.report-table tr.parent-row td{background:color-mix(in srgb,var(--accent, #3b82f6) 10%,transparent);border-bottom:2px solid var(--line)}table.report-table tfoot td{font-weight:600;border-top:2px solid var(--line);background:var(--panel2)}details.how summary{cursor:pointer;color:var(--muted);font-size:12.5px}details.how ul{margin:.6rem 0 .4rem;padding-left:1.1rem;font-size:12.5px;line-height:1.5}.chart{margin:.4rem 0 1rem;padding:.8rem .9rem .5rem}.chart figcaption{margin-bottom:.2rem}.chart .chart-title{font-weight:600;font-size:13.5px;color:var(--fg)}.chart .chart-caption{color:var(--muted);font-size:12px;margin-top:.15rem}.chart-print{display:none}.chart-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:.8rem}@media (max-width:700px){.chart-row{grid-template-columns:1fr}}.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;align-self:flex-end}.seg button{background:var(--panel);color:var(--muted);border:0;border-right:1px solid var(--line);padding:.42rem .8rem;font-size:12.5px;cursor:pointer}.seg button:last-child{border-right:0}.seg button.on{background:var(--panel2);color:var(--fg);font-weight:600}.chart-tools{display:inline-flex;gap:.3rem}button.mini{padding:.15rem .5rem;font-size:11px;border-radius:5px}.print-only{display:none}@media print{.mtop,.mtabs,.drawer-back{display:none!important}@page{margin:0}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}#nl-badge-frame{display:none!important}:root{color-scheme:light;--bg:#fff;--panel:#fff;--panel2:#f4f4f2;--line:#d8d7d0;--fg:#0b0b0b;--muted:#52514e}html,body{background:#fff!important;color:#0b0b0b}.side,.no-print,.report-controls,.chart-tools,a.muted[href="/reports"],.how,.sub a{display:none!important}.app{display:block}.main{padding:12mm 12mm 22mm;overflow:visible}.print-brand-top{display:flex!important;align-items:center;gap:.45rem;font-size:12px;margin-bottom:.6rem}.print-brand{display:flex!important;position:fixed;left:12mm;right:12mm;bottom:6mm;align-items:center;gap:.5rem;font-size:9.5px;color:#52514e;border-top:1px solid #d8d7d0;padding-top:2mm;background:#fff}.print-brand .stamp{margin-left:auto;text-align:right;max-width:62%;color:#6b6a66}.chart-canvas{display:none!important}img.chart-print{display:block!important;width:100%;height:auto}.card[style*=overflow]{overflow:visible!important}.table-tools button,.table-tools input[type=search]{display:none!important}.print-only{display:block}.print-meta{font-size:11px;color:#52514e;margin:.2rem 0 .6rem;line-height:1.5}.print-foot{font-size:10px;color:#6b6a66;margin-top:1rem;border-top:1px solid #d8d7d0;padding-top:.4rem}.how-print{font-size:11px;margin-top:1rem;break-inside:avoid}.how-print h2{font-size:13px}.note{background:#fff;border-color:#d8d7d0}.card,.chart,.stat{background:#fff;border-color:#d8d7d0;box-shadow:none}.chart{break-inside:avoid}.chart-row{display:block}table{font-size:9px;width:100%;table-layout:fixed}th,td{padding:.3rem!important;white-space:normal!important;overflow-wrap:break-word}th{text-transform:none!important;letter-spacing:0!important}thead{display:table-header-group}tr{break-inside:avoid}td.up,.stat .chg.good{color:#006300!important}.stat .chg.bad{color:#b42d2d!important}.tag.tether{color:#006300!important;border-color:#006300!important}.tag.warn{color:#8a5a00!important;border-color:#8a5a00!important}td.down{color:#b42d2d!important}.tag{border-color:#999;color:#333;background:#fff}}.stat .chg{font-size:12px;margin-top:.15rem;font-variant-numeric:tabular-nums}.stat .chg.good{color:var(--good)}.stat .chg.bad{color:var(--danger)}.stat .chg .vs{color:var(--muted)}.stat .spark{display:block;margin-top:.35rem}.chart.planned{border-style:dashed;opacity:.92}.planned-body{display:grid;grid-template-columns:minmax(160px,1fr) minmax(200px,1.3fr);gap:1rem;align-items:center;margin-top:.4rem}.planned-shape{opacity:.7}.planned-needs .k{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.25rem}.planned-needs ul{margin:0;padding-left:1.1rem;font-size:12.5px;color:var(--fg)}.planned-needs li{margin-bottom:.25rem}@media (max-width:700px){.planned-body{grid-template-columns:1fr}}@media print{.chart.planned{display:none!important}}.cap{max-width:520px;margin:0 auto;padding:max(.8rem,env(safe-area-inset-top)) 1rem 2.5rem;display:flex;flex-direction:column;gap:.6rem}.cap-head{display:flex;justify-content:space-between;align-items:center}.cap input,.cap select,.cap textarea{width:100%;font-size:16px;padding:.6rem .7rem}.cap .row input[type=date]{width:auto}.cap-label{display:flex;flex-direction:column;gap:.25rem;font-size:12.5px;color:var(--muted)}.cap-small{display:flex;flex-direction:column;font-size:12px;color:var(--muted);flex:1}.cap-stack{display:flex;flex-direction:column;gap:.45rem}.cap-big{display:flex;flex-direction:column;gap:.5rem}.cap-big button{font-size:16px;padding:.85rem;width:100%}.cap-big .row button{flex:1}.cap-big>button.primary{font-size:18px;padding:1.4rem}.cap-photo{display:flex;flex-direction:column;gap:.4rem}.cap-photo img{width:100%;max-height:260px;object-fit:contain;border-radius:10px;border:1px solid var(--line);background:#000}.cap-chips{display:flex;flex-wrap:wrap;gap:.4rem}.cap-chip{padding:.55rem .85rem;border-radius:20px;font-size:14px}.cap-chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.cap-save{font-size:17px;padding:1rem;margin-top:.4rem}.cap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.cap-list li{display:flex;justify-content:space-between;gap:.5rem;padding:.45rem .1rem;border-bottom:1px solid var(--line);font-size:14px}.cap-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:.6rem}.cap-grid.has-img{grid-template-columns:260px 1fr}.cap-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.4rem}@media (max-width:760px){.cap-grid.has-img{grid-template-columns:1fr}.cap-grid img{max-height:240px;object-fit:contain}.cap-fields{grid-template-columns:1fr 1fr}}.nav-group{display:flex;flex-direction:column;gap:.1rem;margin-top:.55rem}.nav-head{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;border-radius:6px;padding:.3rem .6rem;color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:left;min-height:0}.nav-head:hover{color:var(--fg);background:var(--panel2)}.nav-caret{font-size:10px;opacity:.8}.side a.nav-child,.drawer a.nav-child{padding-left:1.35rem}.order-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.order-grid h2,.card>h2{font-size:14px;margin:0 0 .6rem}.order-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem;margin-top:.5rem}.order-fields label{display:flex;flex-direction:column;gap:.2rem;font-size:12px;color:var(--muted)}.order-fields label.wide{grid-column:1/-1}.order-addr{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.order-addr label{display:flex;flex-direction:column;gap:.15rem}.order-addr label.wide{grid-column:span 3}.order-suggest{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:320px;overflow-y:auto;display:flex;flex-direction:column}.order-suggest button{text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.55rem .7rem;background:none}.order-suggest button:hover{background:var(--panel2)}.order-lines td input{width:100%}.order-totals{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;margin-top:.7rem}.order-totals>div{display:flex;gap:1rem;align-items:center}.order-totals .grand{font-size:16px}@media (max-width:900px){.order-grid{grid-template-columns:1fr}.order-addr{grid-template-columns:1fr 1fr}.order-addr label.wide{grid-column:span 2}}@media print{.order-grid{grid-template-columns:1fr 1fr}.order-lines{display:table}}.intl-progress-head,.intl-progress-row{display:grid;grid-template-columns:minmax(150px,220px) repeat(25,minmax(14px,1fr));gap:3px;align-items:center}.intl-progress-head{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.intl-progress-head>div{border-bottom:1px solid var(--line);padding-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.intl-progress-row{padding:.25rem 0;border-bottom:1px solid var(--line);font-size:12.5px}.intl-progress-row>div:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.intl-progress-row .cell{height:14px;border-radius:3px;border:1px solid var(--line);background:transparent}.intl-progress-row .cell.done{background:var(--accent-dim);border-color:var(--accent-dim)}.intl-progress-row .cell.on_track{background:var(--good);border-color:var(--good)}.intl-progress-row .cell.due_soon{background:var(--warn);border-color:var(--warn)}.intl-progress-row .cell.overdue,.intl-progress-row .cell.no_timer{background:var(--danger);border-color:var(--danger)}.intl-progress-row .cell.paused{background:var(--muted);border-color:var(--muted)}
