:root{
  --bg:#f4f5f7;--card:#fff;--ink:#1d2430;--mute:#6b7380;--line:#e3e6ea;--soft:#f8f9fb;
  --brand:#0f6e5c;--brand-2:#e7f3f0;--red:#c62f2f;--red-2:#fdecec;--amber:#a86200;--amber-2:#fff4e0;
  --green:#1f7a3a;--green-2:#e8f5ec;--blue:#1f5fb4;--blue-2:#e9f1fc;--violet:#6b3fb0;--violet-2:#f1ebfb;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--blue)}
button{font:inherit}

/* header */
.top{display:flex;align-items:center;gap:20px;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}
.brand .logo{font-size:26px}
.brand b{display:block;font-size:16px}
.brand small{color:var(--mute);font-size:12px}
.search{flex:1;max-width:560px}
.search input{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--soft)}
.search input:focus{outline:2px solid var(--brand);background:#fff}
.who{margin-left:auto;display:flex;gap:14px;align-items:center;color:var(--mute);font-size:13px;white-space:nowrap}
.sync.bad{color:var(--red);font-weight:600}

/* tabs */
.tabs{display:flex;gap:2px;padding:0 20px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:57px;z-index:4}
.tabs a{padding:11px 16px;cursor:pointer;color:var(--mute);text-decoration:none;border-bottom:3px solid transparent;font-weight:600}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--brand);border-bottom-color:var(--brand)}
.n{display:inline-block;min-width:22px;padding:0 6px;border-radius:10px;background:var(--line);color:var(--ink);font-size:12px;text-align:center}
.n.red{background:var(--red);color:#fff}
.n:empty{display:none}
.note{margin:12px 20px 0;padding:8px 12px;background:var(--amber-2);color:#6b4500;border-radius:8px;font-size:13px}

main{padding:16px 20px 60px}
.loading,.empty{padding:40px;text-align:center;color:var(--mute)}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;cursor:pointer}
.kpi:hover{border-color:var(--brand)}
.kpi .l{color:var(--mute);font-size:13px}
.kpi .v{font-size:28px;font-weight:700;margin:2px 0;font-variant-numeric:tabular-nums}
.kpi .s{font-size:12px;color:var(--mute)}
.kpi.red .v{color:var(--red)} .kpi.amber .v{color:var(--amber)} .kpi.green .v{color:var(--green)}

.grid2{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;align-items:start}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:16px;overflow:hidden}
.card h3{margin:0;padding:12px 16px;font-size:15px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.card h3 .more{margin-left:auto;font-size:13px;font-weight:500;cursor:pointer;color:var(--blue)}
.card .pad{padding:12px 16px}

/* filters */
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.chip{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:5px 12px;cursor:pointer;font-size:13px}
.chip b{font-variant-numeric:tabular-nums}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.bar select{padding:5px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--card)}
.bar .sp{flex:1}
.bar .cnt{color:var(--mute);font-size:13px}

/* tables */
.tbl{width:100%;border-collapse:collapse;background:var(--card)}
.wrap{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:auto}
.tbl th{position:sticky;top:0;background:var(--soft);text-align:left;font-size:12px;color:var(--mute);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr.r{cursor:pointer}
.tbl tr.r:hover td{background:#f2f7f6}
.tbl tr.day td{background:var(--soft);font-weight:700;font-size:13px;color:var(--ink);padding:6px 10px}
.tbl tr.day td span{font-weight:500;color:var(--mute);margin-left:10px}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl .code{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;white-space:nowrap}
.tbl .prod{max-width:320px}
.tbl .st{max-width:300px}
.tbl small{color:var(--mute)}
.morebtn{display:block;margin:12px auto;padding:8px 18px;border:1px solid var(--line);background:var(--card);border-radius:8px;cursor:pointer}

/* badges */
.b{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}
.b.tt{background:#111;color:#fff}.b.sp{background:#ee4d2d;color:#fff}.b.vt{background:#e2001a;color:#fff}.b.ot{background:var(--line)}
.b.ok{background:var(--green-2);color:var(--green)}.b.bad{background:var(--red-2);color:var(--red)}
.b.wait{background:var(--amber-2);color:var(--amber)}.b.info{background:var(--blue-2);color:var(--blue)}.b.vio{background:var(--violet-2);color:var(--violet)}
.b.none{background:var(--soft);color:var(--mute);border:1px dashed var(--line)}

/* list rows on overview */
.li{display:flex;gap:10px;padding:9px 16px;border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start}
.li:last-child{border-bottom:0}
.li:hover{background:#f2f7f6}
.li .m{flex:1;min-width:0}
.li .t{font-weight:600}
.li .d{color:var(--mute);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li .r{text-align:right;white-space:nowrap;font-size:13px}
.dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--line)}
.dot.red{background:var(--red)}.dot.amber{background:#e39400}

.bars{display:flex;gap:6px;align-items:flex-end;height:120px;padding:10px 16px 0}
.bars .c{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--mute)}
.bars .bar1{width:100%;max-width:42px;background:var(--brand);border-radius:4px 4px 0 0;min-height:2px;position:relative}
.bars .bar1 i{position:absolute;bottom:0;left:0;right:0;background:#9fd3c7;border-radius:4px 4px 0 0}
.legend{display:flex;gap:14px;font-size:12px;color:var(--mute);padding:8px 16px 12px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}

/* drawer */
.drawer{position:fixed;inset:0;background:rgba(20,25,35,.35);z-index:20;display:flex;justify-content:flex-end}
.drawer[hidden]{display:none}
.drawer-in{width:min(620px,100%);height:100%;background:var(--card);overflow:auto;padding:20px 24px;position:relative;box-shadow:-8px 0 30px rgba(0,0,0,.15)}
.x{position:absolute;right:14px;top:12px;border:0;background:var(--soft);width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:16px}
.drawer h2{margin:0 40px 4px 0;font-size:18px}
.drawer .sub{color:var(--mute);margin-bottom:14px}
.kv{display:grid;grid-template-columns:190px 1fr;border-top:1px solid var(--line)}
.kv div{padding:7px 0;border-bottom:1px solid var(--line);white-space:pre-wrap;word-break:break-word}
.kv .k{color:var(--mute);font-size:13px;padding-right:10px}
.sec{margin:18px 0 6px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--brand)}
.sec.staff{color:var(--amber)}
.copy{border:1px solid var(--line);background:var(--soft);border-radius:6px;padding:0 6px;margin-left:6px;cursor:pointer;font-size:11px}
mark{background:#fff0a8;padding:0}

/* login */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px;width:min(360px,100%);display:flex;flex-direction:column;gap:14px}
.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--mute)}
.login-card input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:16px;color:var(--ink)}
.login-card button{padding:11px;border:0;border-radius:8px;background:var(--brand);color:#fff;font-weight:700;cursor:pointer;font-size:15px}
.login-err{background:var(--red-2);color:var(--red);padding:8px 10px;border-radius:8px;font-size:13px}

@media (max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr}}
@media (max-width:700px){
  .top{flex-wrap:wrap;gap:10px;padding:10px 16px}.search{order:3;flex-basis:100%;max-width:none}
  .tabs{top:0;position:static;overflow-x:auto;padding:0 8px}.tabs a{padding:10px 10px;white-space:nowrap}
  main{padding:12px 16px 40px}.note{margin:10px 16px 0}
  .kpis{grid-template-columns:repeat(2,1fr)}.kv{grid-template-columns:1fr}.kv .k{padding-bottom:0;border-bottom:0}
}
