:root{--brand:#c54731;--brand-dark:#9f3827;--gold:#bb7b0a;--ink:#26241e;--muted:#6b7280;--bg:#f4f5f7;--card:#fff;--line:#e3e6ea;--green:#14804a;--red:#c8323e;--blue:#2763c4;--violet:#7551b8;--shadow:0 8px 28px rgba(30,30,30,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial;color:var(--ink)}button,input,select,textarea{font:inherit}.boot{padding:50px;text-align:center;color:var(--muted)}
.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#2a2722,#171615)}.auth-card{width:min(460px,95vw);background:white;border-radius:22px;padding:28px;box-shadow:0 28px 80px rgba(0,0,0,.35)}.auth-logo{display:block;width:150px;margin:0 auto 14px}.auth-card h1{text-align:center;font-size:23px;margin:5px 0}.auth-card p{text-align:center;color:var(--muted);font-size:13px;line-height:1.5}.field{margin:13px 0}.field label{display:block;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:10px 11px;border:1px solid #cfd4dc;border-radius:9px;background:#fff}.field textarea{min-height:80px;resize:vertical}.btn{border:1px solid #cfd4dc;background:#fff;color:#363b44;border-radius:9px;padding:9px 12px;font-weight:800;cursor:pointer}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.dark{background:#26241e;color:white;border-color:#26241e}.btn.danger{color:var(--red);border-color:#efc3c7}.btn.small{padding:6px 9px;font-size:11px}.btn:disabled{opacity:.45;cursor:not-allowed}.wide{width:100%}
.top{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:8px 20px;gap:18px;position:sticky;top:0;z-index:15}.brand{display:flex;align-items:center;gap:10px;min-width:270px}.brand img{width:50px;height:50px;object-fit:contain}.brand strong{display:block;font-size:14px}.brand span{font-size:11px;color:var(--muted)}.nav{display:flex;gap:5px;flex:1}.nav button{border:0;background:transparent;border-radius:8px;padding:9px 11px;font-weight:750;color:#525965;cursor:pointer}.nav button.active,.nav button:hover{background:#f7e8e4;color:var(--brand-dark)}.userbox{text-align:right;font-size:12px}.userbox b{display:block}.shell{max-width:1580px;margin:0 auto;padding:18px 20px 40px}.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:13px}.page-head h1{font-size:26px;margin:0 0 5px}.page-head p{margin:0;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.versionbar{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:10px;background:#2a2722;color:#fff;border-radius:14px;padding:12px 14px;margin-bottom:12px}.versionbar .vlabel{font-size:10px;text-transform:uppercase;color:#d7d3cf;font-weight:800}.versionbar .vmain{font-size:14px;font-weight:850;margin-top:3px}.versionbar select{width:100%;margin-top:5px;border:1px solid #5b5751;background:#fff;color:#222;border-radius:7px;padding:6px}.pill{display:inline-block;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900}.pill.official{background:#ddf5e8;color:#146d42}.pill.draft{background:#fff2c7;color:#825e00}.toolbar{display:grid;grid-template-columns:1.2fr .7fr 1.4fr .65fr;gap:10px;background:#fff;border:1px solid var(--line);padding:11px;border-radius:13px;box-shadow:var(--shadow);margin-bottom:12px}.toolbar select{width:100%;min-height:39px;border:1px solid #d2d6dc;border-radius:8px;padding:7px;background:#fff}.toolbar select[multiple]{height:74px}.toolbar label{display:block;font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:850;margin-bottom:4px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.kpi{background:white;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow);cursor:pointer;min-height:128px}.kpi:hover{border-color:#b9c0c9;transform:translateY(-1px)}.kpi .lbl{font-size:11px;color:var(--muted);font-weight:800}.kpi .value{font-size:24px;font-weight:950;margin:7px 0 5px;letter-spacing:-.03em}.kpi .comp{font-size:11px;font-weight:800}.kpi .sub{font-size:10px;color:var(--muted);margin-top:5px;line-height:1.35}.good{color:var(--green)}.bad{color:var(--red)}.neutral{color:var(--muted)}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}.card-head{padding:14px 16px 10px;display:flex;justify-content:space-between;gap:12px}.card-head h2{font-size:16px;margin:0 0 3px}.card-head p{font-size:11px;color:var(--muted);margin:0}.card-body{padding:12px 16px 16px}.two{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px}.chart-scroll{overflow-x:auto;border-top:1px solid #f0f1f2;padding:10px}.legend{display:flex;gap:12px;font-size:10px;color:var(--muted);align-items:center;flex-wrap:wrap}.dot{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:4px}.diag-row{display:grid;grid-template-columns:170px 1fr 110px;gap:8px;align-items:center;padding:8px 0;cursor:pointer}.track{height:11px;background:#edf0f2;border-radius:999px;overflow:hidden}.fill{height:100%;border-radius:999px}.num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow:auto;max-height:520px}.tbl{border-collapse:collapse;width:100%;font-size:11px}.tbl th{position:sticky;top:0;background:#f7f8fa;color:#525965;text-align:left;padding:9px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:8px 9px;border-bottom:1px solid #eef0f2;vertical-align:top}.tbl tr.clickable{cursor:pointer}.tbl tr.clickable:hover{background:#faf6f5}.tag{font-size:9px;font-weight:900;padding:3px 6px;border-radius:999px;background:#f1f4f7}.empty{padding:35px;text-align:center;color:var(--muted)}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.drop{border:2px dashed #d3d7dd;border-radius:14px;padding:20px;text-align:center;background:#fafafa}.drop.ready{border-color:#96c8aa;background:#f3fbf6}.drop input{width:100%;margin-top:10px}.mapping{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.mapping-row{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;align-items:center;margin:5px 0}.mapping-row label{font-size:11px;font-weight:750}.mapping-row select{width:100%;padding:6px;border:1px solid #d2d6dc;border-radius:7px}.req{color:var(--red)}.notice{padding:11px 13px;border-radius:10px;background:#fff7dd;border:1px solid #f2d888;color:#6f5600;font-size:11px;line-height:1.45;margin-bottom:12px}.success{background:#edf9f2;border-color:#b8dec6;color:#245f3b}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.form-grid .span3{grid-column:1/-1}
.modal{display:none;position:fixed;inset:0;background:rgba(20,20,20,.58);z-index:40;padding:20px;align-items:center;justify-content:center}.modal.open{display:flex}.modal-box{width:min(1280px,97vw);max-height:92vh;background:#fff;border-radius:16px;display:flex;flex-direction:column;overflow:hidden}.modal-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.modal-head h3{margin:0;font-size:16px}.modal-body{overflow:auto}.modal-actions{padding:10px 15px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.metric-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 16px;background:#fafafa}.metric-strip>div{background:white;border:1px solid var(--line);border-radius:9px;padding:9px}.metric-strip span{display:block;font-size:9px;color:var(--muted);font-weight:800}.metric-strip b{font-size:16px}.modal-table{padding:0 12px 15px}.modal table{min-width:900px}
#toast{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:8px}.toast{background:#26241e;color:#fff;padding:10px 13px;border-radius:9px;box-shadow:0 8px 25px rgba(0,0,0,.25);font-size:12px}.toast.err{background:#9d2933}
svg text{font-family:inherit;fill:#6b7280;font-size:10px}.gridline{stroke:#e6e8eb;stroke-width:1}.bar{cursor:pointer}.bar:hover{opacity:.78}
@media(max-width:1050px){.kpis{grid-template-columns:repeat(2,1fr)}.two,.upload-grid{grid-template-columns:1fr}.toolbar,.versionbar,.form-grid{grid-template-columns:1fr 1fr}.brand{min-width:auto}.brand div{display:none}}
@media(max-width:680px){.top{height:auto;flex-wrap:wrap}.nav{order:3;width:100%;overflow:auto}.kpis{grid-template-columns:1fr}.toolbar,.versionbar,.form-grid{grid-template-columns:1fr}.shell{padding:12px}.page-head{display:block}.actions{justify-content:flex-start;margin-top:9px}}
