:root{--bg:#f5f5f8;--surface:#fff;--text:#20212b;--muted:#606575;--line:#dcdde7;--accent:#4939cd;--tint:#efedfc;--good:#246850;--bad:#a53c49;color-scheme:light;font-family:Satoshi,sans-serif;font-size:15px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.55}body.dark{--bg:#14151c;--surface:#1e202a;--text:#efeff6;--muted:#afb3c5;--line:#373b4d;--accent:#b9b0ff;--tint:#302a49;--good:#8bc9ad;--bad:#f4a2ac;color-scheme:dark}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button,.button{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:9px 14px;border-radius:7px;cursor:pointer;text-decoration:none;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-weight:500;font-size:14px}button:hover,.button:hover{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}body.dark .primary{color:#17141f}.primary:hover{color:#fff;filter:brightness(.93)}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.17;letter-spacing:-.035em}h2{font-size:21px;letter-spacing:-.025em}h3{font-size:16px}small,.muted{color:var(--muted)}small{font-size:12px}label{display:block;font-size:13px;font-weight:500}input,select,textarea{display:block;width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);margin:5px 0 0}textarea{min-height:95px;resize:vertical}input[type=checkbox]{width:auto;display:inline;margin:0 8px 0 0}input[type=number]{font-variant-numeric:tabular-nums}fieldset{border:0;padding:0;margin:0}legend{font-weight:700;margin-bottom:12px}.logo{display:flex;gap:10px;align-items:center;font-weight:700;color:var(--text);text-decoration:none}.logo svg{width:30px;height:30px;color:var(--accent);flex-shrink:0}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.14em;font-weight:700;color:var(--muted)}.tag{font-size:12px;padding:4px 8px;border:1px solid var(--line);border-radius:4px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.tag.draft{color:var(--muted)}.tag.reviewed,.tag.approved{color:var(--good)}.tag.archived{color:var(--bad)}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:grid;gap:16px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:25px 0}.kpi{border-top:2px solid var(--line);padding:18px 0}.kpi strong{display:block;font-size:28px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin:5px 0}.rail{width:228px;position:fixed;left:0;top:0;bottom:0;background:var(--surface);border-right:1px solid var(--line);padding:27px 16px;display:flex;flex-direction:column;z-index:20}.rail .logo{padding:0 10px 28px}.rail nav{display:grid;gap:3px;overflow:auto}.rail nav button{border:0;justify-content:flex-start;background:transparent;color:var(--muted);padding:10px 14px}.rail nav button.active{background:var(--tint);color:var(--accent);font-weight:700}.rail-bottom{margin-top:auto;padding-top:20px;display:grid;gap:8px}.shell{margin-left:228px}.topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:16px 36px;display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar select{max-width:290px;margin:0}.main{max-width:1440px;margin:auto;padding:35px 40px 65px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-head p{margin-top:8px;max-width:750px}.banner{border:1px solid var(--line);background:var(--tint);padding:10px 18px;font-size:13px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:7px;margin:16px 0}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 14px;vertical-align:middle}th{color:var(--muted);font-size:12px;letter-spacing:.045em;text-transform:uppercase;font-weight:700;white-space:nowrap}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td input,td select{min-width:110px;margin:0;padding:8px}td .wide{min-width:175px}.positive{color:var(--good)}.negative{color:var(--bad)}.empty{text-align:center;padding:55px 20px}.empty p{max-width:450px;margin:10px auto 20px;color:var(--muted)}.record-list{display:grid;gap:10px}.record{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 19px;background:var(--surface);border:1px solid var(--line);border-radius:7px}.record p{font-size:13px;color:var(--muted);margin-top:4px}.record button{flex-shrink:0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tabs button.active{background:var(--tint);color:var(--accent)}.separator{border:0;border-top:1px solid var(--line);margin:24px 0}.auth{max-width:1080px;margin:8vh auto;padding:25px;display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.auth h1{font-size:36px;margin:35px 0 20px}.auth p{color:var(--muted)}.auth form{display:grid;gap:16px}.auth .panel{padding:32px}.auth .logo{margin-bottom:20px}.footnote{font-size:12px;color:var(--muted);margin-top:20px}.bar-chart{height:170px;display:flex;align-items:flex-end;gap:7px;padding-top:15px}.bar-column{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:5px;font-size:12px}.bar{background:var(--accent);width:100%;min-height:3px;border-radius:3px 3px 0 0;opacity:.8}.bar.neg{background:var(--bad)}.info-line{border-left:3px solid var(--accent);padding:12px 16px;background:var(--tint);font-size:13px;margin:18px 0}.progress{height:5px;background:var(--line);border-radius:3px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}.mobile-menu{display:none}.danger{color:var(--bad)}.check-line{display:flex;align-items:flex-start;font-size:13px;gap:5px}.check-line input{margin-top:5px}.link-button{border:0;padding:3px 0;background:transparent;color:var(--accent)}#notice{position:fixed;bottom:24px;right:24px;max-width:450px;padding:14px 20px;background:var(--text);color:var(--surface);border-radius:8px;z-index:100;display:none}#notice.show{display:block}dialog{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:28px;width:min(650px,94vw);max-height:88vh;overflow:auto}dialog::backdrop{background:#14142188}dialog form{display:grid;gap:16px}dialog h2{margin-bottom:8px}.history{padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.print-title{display:none}
@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:28px 25px}.topbar{padding:15px 25px}.rail{width:210px}.shell{margin-left:210px}}
@media(max-width:720px){.rail{display:none;width:260px;box-shadow:20px 0 60px #0004}.rail.open{display:flex}.shell{margin:0}.mobile-menu{display:inline-flex}.main{padding:25px 18px}.topbar{padding:12px 16px}.topbar select{max-width:180px}.topbar .muted{display:none}.grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.panel{padding:18px}.auth{grid-template-columns:1fr;gap:30px;margin:20px auto}.auth h1{font-size:36px;margin:25px 0 15px}.record{align-items:flex-start;flex-wrap:wrap}.kpi strong{font-size:24px}.kpis{gap:12px}.topbar>.row{gap:6px}h1{font-size:28px}#notice{right:12px;left:12px;bottom:12px}.bar-chart{gap:4px}.banner{font-size:12px}}
@media print{.rail,.topbar,.banner,button,.no-print,#notice{display:none!important}.shell{margin:0}.main{max-width:none;padding:0}.panel{break-inside:avoid;border-color:#999}.table-wrap{overflow:visible}.print-title{display:block;margin-bottom:15px}body,body.dark{--bg:#fff;--surface:#fff;--text:#111;--muted:#333;--line:#aaa;color:#111;background:#fff}.grid{display:block}.grid>.panel{margin-bottom:18px}}
:root{--text-xs:12px;--text-sm:14px;--text-base:16px;--text-xl:clamp(24px,2.2vw,32px)}
.eyebrow,.tag,th,.bar-column{font-size:var(--text-xs)}button,.button{min-height:44px}.rail nav button{min-height:44px}.link-button{min-height:36px}.grid>*,.panel,.main,#content,.stack{min-width:0}.auth h1{font-size:36px}.skip-link{position:fixed;left:10px;top:-100px;z-index:200;background:var(--surface);padding:12px}.skip-link:focus{top:10px}
@media(prefers-reduced-motion:no-preference){button,.button{transition:background .15s,color .15s,border-color .15s}.bar{transition:height .2s}}
