:root{--gold: #E3A72F;--gold-deep: #C6871A;--gold-soft: #FBF3E1;--gold-line: #F0DCB0;--gold-ink: #8A6216;--steel: #8A94A0;--steel-soft: #EEF1F4;--pos: #4E9A6B;--danger: #C05A45;--radius: 20px;--radius-sm: 14px;--font-num: "Outfit", system-ui, sans-serif;--font-body: "Zen Kaku Gothic New", system-ui, sans-serif;--paper: #FBFAF7;--card: #FFFFFF;--bg: #F0EEE9;--ink: #3C3B39;--ink-soft: #6E6C67;--ink-faint: #A5A29B;--line: #EEECE6;--line-strong: #E3E0D8}[data-surface=customer]{--paper: #FBFAF7;--card: #FFFFFF;--bg: #F0EEE9;--ink: #3C3B39;--ink-soft: #6E6C67;--ink-faint: #A5A29B;--line: #EEECE6;--line-strong: #E3E0D8}[data-surface=console]{--paper: #F7F8FA;--card: #FFFFFF;--bg: #EEEFF1;--ink: #33322F;--ink-soft: #6A6965;--ink-faint: #9B9A94;--line: #E9E9E6;--line-strong: #DEDEDA}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.num{font-family:var(--font-num);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}.login{min-height:100dvh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:340px;background:var(--card);border:1px solid var(--line-strong);border-radius:18px;padding:28px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 16px 40px -22px #33322f4d}.brand{display:flex;align-items:center;gap:9px}.brand .brandlogo{height:24px;width:auto}.brand span{color:var(--steel);font-weight:700;font-size:12px;letter-spacing:.22em}label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-soft)}input,select{font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--paper);color:var(--ink)}input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.err{color:var(--danger);font-size:13px}.ok-msg{color:var(--pos);font-size:13px}.muted{color:var(--ink-faint);font-size:13px}.top{display:flex;align-items:center;gap:14px;padding:16px 22px;background:var(--card);border-bottom:1px solid var(--line-strong);position:sticky;top:0;z-index:5;flex-wrap:wrap}.ttl{font-size:18px;font-weight:700}.nav{display:flex;gap:4px;background:var(--panel, var(--paper));border:1px solid var(--line-strong);border-radius:11px;padding:4px}.navbtn{border:0;background:none;font:inherit;font-size:12.5px;color:var(--ink-soft);padding:7px 13px;border-radius:8px;cursor:pointer}.navbtn.on{background:var(--ink);color:#fff;font-weight:600}.link{margin-left:auto;border:0;background:none;color:var(--steel);font:inherit;font-size:12px;cursor:pointer}.wrap{max-width:1120px;margin:0 auto;padding:20px 22px;display:flex;flex-direction:column;gap:16px}.loading{padding:48px;text-align:center;color:var(--ink-faint)}.dash-head{display:flex;justify-content:flex-end}.panel{background:var(--card);border:1px solid var(--line-strong);border-radius:16px;padding:18px}.panel h2{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:15px}.cols{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}@media (max-width: 820px){.cols{grid-template-columns:1fr}}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}@media (max-width: 900px){.kpis{grid-template-columns:repeat(2,1fr)}}.kpi{background:var(--card);border:1px solid var(--line-strong);border-radius:14px;padding:15px}.kpi.hero{background:linear-gradient(150deg,#fff,#fefbf3);border-color:var(--gold-line)}.kpi.kpi--alert{background:var(--gold-soft);border-color:var(--gold-line)}.kpi-l{font-size:11.5px;color:var(--ink-soft);display:flex;align-items:center;gap:6px}.kpi-l:before{content:"";width:7px;height:7px;border-radius:2px;background:var(--steel)}.kpi.hero .kpi-l:before{background:var(--gold)}.kpi.kpi--alert .kpi-l:before{background:var(--danger)}.kpi-v{font-family:var(--font-num);font-weight:700;font-size:27px;margin-top:9px;line-height:1}.kpi.hero .kpi-v{color:var(--gold-deep)}.kpi-s{font-size:11.5px;margin-top:7px;color:var(--ink-faint)}.brow{padding:12px 0;border-top:1px solid var(--line)}.brow:first-of-type{border-top:0;padding-top:2px}.bhead{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:8px}.status{font-size:11px;font-weight:700;padding:4px 10px;border-radius:7px;white-space:nowrap}.status.ok{color:var(--pos);background:#eaf3ee}.status.warn{color:var(--danger);background:#f8e9e6}.btrack{height:9px;background:var(--steel-soft);border-radius:5px;overflow:hidden}.btrack i{display:block;height:100%;background:var(--gold);border-radius:5px}.btrack i.over{background:var(--danger)}.bmeta{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font-size:11px;color:var(--ink-faint);flex-wrap:wrap}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;font-size:11px;color:var(--ink-faint);font-weight:600;letter-spacing:.04em;padding:0 10px 10px}.tbl th.r,.tbl td.r{text-align:right}.tbl td{padding:12px 10px;border-top:1px solid var(--line);vertical-align:middle}.tbl .n,.tbl .num{font-family:var(--font-num);font-weight:600}.tbl tr.dim td{color:var(--ink-faint)}.badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;background:var(--gold-soft);color:var(--gold-ink)}.badge.soon{background:var(--steel-soft);color:var(--steel)}.stack{height:30px;border-radius:8px;overflow:hidden;display:flex;margin-bottom:14px;background:var(--steel-soft)}.stack i{height:100%}.slegend{display:grid;grid-template-columns:1fr 1fr;gap:9px}.slegend .si{display:flex;align-items:center;gap:8px;font-size:12.5px}.slegend .si .sw{width:10px;height:10px;border-radius:3px;flex:none}.slegend .si .sv{margin-left:auto;font-family:var(--font-num);font-weight:600;color:var(--ink-soft)}.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--ink-soft)}.frow{display:flex;gap:10px;flex-wrap:wrap}.frow label{flex:1;min-width:140px}.pz-head{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:6px}.pz{display:grid;grid-template-columns:2fr 1fr .7fr .9fr;gap:8px}.budget{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px}.btn{font:inherit;font-weight:700;font-size:14px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);border-radius:10px;padding:10px 16px;cursor:pointer}.btn.small{padding:7px 14px;font-size:13px;margin-left:auto}.btn--primary{background:var(--ink);color:#fff;border-color:var(--ink)}
