:root{--accent:#fd5806;--accent-soft:#fff1e8;--ink:#16191d;--navy:#1c232c;--slate:#475569;--muted:#64748b;--line:#e2e8f0;--bg:#f6f7f9;--text:#0f172a;--ok:#15803d;--ok-bg:#dcfce7;--warn:#92400e;--warn-bg:#fef3c7;--info:#1d4ed8;--info-bg:#dbeafe;--mat:#2563eb;--lab:#fd5806;--oth:#94a3b8}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}
a{color:var(--navy)}
main{max-width:1240px;margin:0 auto;padding:22px 24px 50px}
main:focus,h1:focus{outline:none}
h1{font-size:1.5rem;color:var(--navy);line-height:1.25;margin-bottom:4px}
h2{font-size:1.08rem;color:var(--navy);margin:0 0 10px}
h3{font-size:.95rem;color:var(--navy);margin-bottom:6px}
p+p{margin-top:8px}
.muted{color:var(--slate)}.small{font-size:.84rem}.tiny{font-size:.75rem}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--ink);font-weight:700;border:0;border-radius:999px;padding:9px 18px;cursor:pointer;font-size:.88rem;text-decoration:none;line-height:1.2}
.btn.ghost{background:#fff;border:1.5px solid var(--line);color:var(--navy)}.btn.sm{padding:5px 12px;font-size:.8rem}.btn.danger{background:#fff;border:1.5px solid #fecaca;color:#b91c1c}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}
.pill{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 9px;background:var(--accent-soft);color:#9a3412}
.pill.info{background:var(--info-bg);color:var(--info)}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.gray{background:#f1f5f9;color:var(--slate)}
.note{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:10px 12px;font-size:.84rem}
.note.blue{background:var(--info-bg);color:#1e3a8a}
/* layout */
.intro{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}.intro p{max-width:720px}
.layout{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:18px;align-items:start}
.side{position:sticky;top:78px}
@media (max-width:980px){.layout{grid-template-columns:minmax(0,1fr)}.side{position:static}}
/* project picker */
.pgroups{display:flex;flex-wrap:wrap;gap:4px 16px}.pg{min-width:0;flex:var(--cols) 0 calc(var(--cols) * 140px)}
.projects{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:8px}
@media (max-width:1100px){.pg{flex-basis:100%}.projects{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (max-width:620px){.pgroups{grid-template-columns:minmax(0,1fr)}.projects{grid-template-columns:1fr 1fr}.proj small{display:none}.proj{min-height:48px}}
.proj{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:10px 11px;text-align:left;cursor:pointer;font:inherit;color:var(--text);display:flex;flex-direction:column;gap:2px;min-height:64px}
.proj b{font-size:.86rem;color:var(--navy);line-height:1.25}.proj small{font-size:.72rem;color:var(--muted)}
.proj:hover{border-color:#fdba74}.proj[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.group{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 6px}
.pcard{padding:14px 18px}
/* form */
.f{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.f .full{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:700;color:var(--slate)}
label .u{font-weight:500;color:var(--muted)}
label.chk{flex-direction:row;align-items:center;gap:8px;font-weight:600;color:var(--text);font-size:.86rem;padding:6px 0}
input,select{font:inherit;font-size:.95rem;border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;color:var(--text);font-weight:400;width:100%}
label.chk input{width:auto;accent-color:var(--accent);transform:scale(1.15)}
input:focus,select:focus{outline:2px solid var(--accent);border-color:transparent}
input[aria-invalid="true"]{border-color:#dc2626}
.hint{font-size:.74rem;color:var(--muted);font-weight:500}
.seg{display:grid;grid-template-columns:repeat(3,1fr);border:1.5px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{border:0;background:#fff;padding:8px 6px;font:inherit;font-size:.85rem;font-weight:700;color:var(--slate);cursor:pointer}
.seg button+button{border-left:1.5px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--navy);color:#fff}
details.more{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
details.more summary{cursor:pointer;font-weight:700;color:var(--navy);font-size:.88rem}
/* result */
.res-head{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.big{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 6px}
.big div{border-radius:12px;padding:10px 12px;background:#f8fafc;border:1px solid var(--line)}
.big div.lk{background:var(--navy);border-color:var(--navy)}.big div.lk b,.big div.lk span{color:#fff}
.big b{display:block;font-size:1.55rem;color:var(--navy);line-height:1.1;font-variant-numeric:tabular-nums}
.big span{font-size:.74rem;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:.04em}
@media (max-width:520px){.big b{font-size:1.15rem}.big div{padding:8px}}
.hist{display:flex;align-items:flex-end;gap:2px;height:64px;margin:10px 0 2px}
.hist i{flex:1;background:#cbd5e1;border-radius:3px 3px 0 0;min-height:2px}.hist i.in{background:#fdba74}.hist i.mid{background:var(--accent)}
.axis{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}
.stack{display:flex;height:14px;border-radius:999px;overflow:hidden;margin:8px 0}
.stack i{display:block}.leg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--slate)}.leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.kv{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:.88rem;font-variant-numeric:tabular-nums}.kv .t{border-top:1px solid var(--line);padding-top:6px;font-weight:800;color:var(--navy)}
table{width:100%;border-collapse:collapse;font-size:.84rem}
th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:7px 8px;border-bottom:1.5px solid var(--line);white-space:nowrap}
td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td .src{display:block;font-size:.72rem;color:var(--muted);margin-top:2px}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.empty{text-align:center;padding:36px 18px;color:var(--slate)}
.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:10px 0}
.vgrid div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.vgrid b{display:block;font-size:1.15rem;color:var(--navy);font-variant-numeric:tabular-nums}.vgrid span{font-size:.74rem;color:var(--slate);font-weight:700}
.list a.item{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;color:var(--text);margin-bottom:8px}
.list a.item:hover{border-color:#fdba74}
.disc{font-size:.8rem;color:var(--slate);border-left:3px solid var(--accent);padding:6px 10px;background:#fff;margin:10px 0}
.foot{max-width:1240px;margin:0 auto;padding:0 24px 30px;font-size:.78rem;color:var(--muted)}
.foot a{color:var(--slate)}
.printonly{display:none}
@media (max-width:700px){main{padding:16px 14px 40px}.f{grid-template-columns:1fr}.foot{padding:0 14px 24px}}
@media print{.pcard,.cxh,.cx-banner,.cxh-drawer,.cx-pwa,.side,.actions,.noprint,.foot .noprint{display:none!important}
 body{background:#fff;font-size:11.5px}main{padding:0;max-width:none}.layout{display:block}.card{border:1px solid #cbd5e1;break-inside:avoid;padding:12px;margin-bottom:10px}
 .printonly{display:block}.big div.lk{background:#fff;border:2px solid #000}.big div.lk b,.big div.lk span{color:#000}a{color:#000;text-decoration:none}
 table{font-size:10px}td .src a::after{content:" (" attr(href) ")";word-break:break-all}}

.mbar{display:none}
@media (max-width:980px){.mbar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:25;background:var(--navy);color:#fff;border-radius:14px;padding:10px 14px;justify-content:space-between;align-items:center;text-decoration:none;box-shadow:0 10px 30px rgba(15,23,42,.3);transition:transform .2s,opacity .2s}.mbar b{color:#fdba74;font-size:1.05rem}.mbar.hide{transform:translateY(120%);opacity:0;pointer-events:none}main{padding-bottom:80px}}

.tiers{display:grid;gap:8px;margin-top:8px}.tier{border:1px solid var(--cx-line,#e2e8f0);border-radius:10px;padding:8px 10px}.tier.cur{border-color:#fd5806;background:#fff7f2}.tier p{margin:2px 0}
tr.grp td{background:#f8fafc;border-top:2px solid #e2e8f0}
