* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bg:#0b1020; --panel:#151d3a; --line:#243056; --ink:#eef2ff; --muted:#9fb0d0;
  --brand:#6c5ce7; --brand2:#00d4ff; --green:#22c55e; --red:#ef4444; --amber:#f59e0b;
}
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:var(--bg); color:var(--ink); min-height:100vh; }
.hidden { display:none !important; }
.brand b { color:var(--brand2); }
.brand.big { font-size:22px; }
a, button { font-family:inherit; }

.btn { border:none; border-radius:9px; padding:9px 16px; font-weight:600; font-size:14px;
  color:#fff; background:#2a3966; cursor:pointer; }
.btn:hover { filter:brightness(1.1); }
.btn.primary { background:linear-gradient(135deg,var(--brand),var(--brand2)); }
.btn.ghost { background:transparent; border:1px solid var(--line); }
.btn.sm { padding:5px 10px; font-size:13px; }
.btn.danger { background:var(--red); }
.err { color:#f87171; font-size:14px; min-height:18px; }
.msg { font-size:14px; min-height:20px; margin-top:8px; }
.msg.ok { color:var(--green); } .msg.err { color:var(--amber); }
.hint { color:var(--muted); font-size:13px; margin:6px 0 14px; }

input, select, textarea { background:#0f1730; border:1px solid var(--line); color:var(--ink);
  border-radius:9px; padding:9px 11px; font-size:14px; outline:none; font-family:inherit; }
input:focus, select:focus, textarea:focus { border-color:var(--brand); }
textarea { width:100%; resize:vertical; }
.imp-actions { display:flex; gap:12px; align-items:center; margin-top:10px; flex-wrap:wrap; }
code { background:#0f1730; padding:2px 7px; border-radius:6px; font-size:13px; color:var(--brand2); }
label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted); }

/* Login */
.login { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.card { width:100%; max-width:380px; background:var(--panel); border:1px solid var(--line);
  border-radius:16px; padding:28px; }
.card .brand.big { text-align:center; margin-bottom:22px; }
.card form { display:flex; flex-direction:column; gap:14px; }

/* App shell */
.topbar { display:flex; align-items:center; gap:20px; padding:14px 22px;
  border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--bg); z-index:5; }
.tabs { display:flex; gap:6px; flex:1; }
.tab { background:transparent; border:none; color:var(--muted); padding:9px 14px;
  border-radius:9px; cursor:pointer; font-size:15px; font-weight:600; }
.tab.active { background:var(--panel); color:var(--ink); }
main { padding:22px; max-width:1200px; margin:0 auto; }
.tabpanel { animation:fade .15s ease; }
@keyframes fade { from{opacity:.4} to{opacity:1} }

.toolbar { display:flex; gap:14px; align-items:flex-end; flex-wrap:wrap; margin-bottom:16px; }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:14px;
  padding:20px; margin-bottom:18px; }
.panel.narrow { max-width:520px; }
.panel h3 { margin-bottom:14px; }
.grid { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.grid input, .grid select { min-width:130px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.grid2 button { grid-column:1/-1; }
.chk { grid-column:1/-1; flex-direction:row; align-items:center; gap:8px; color:var(--ink); font-size:14px; }
.chk input { width:auto; }

.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:14px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th, td { padding:11px 13px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; }
th { background:#0f1730; color:var(--muted); font-weight:600; position:sticky; top:0; }
tr:last-child td { border-bottom:none; }
td input, td select { padding:6px 8px; font-size:13px; }
.pill { padding:2px 9px; border-radius:999px; font-size:12px; font-weight:600; }
.pill.late { background:rgba(245,158,11,.15); color:var(--amber); }
.pill.ot { background:rgba(34,197,94,.15); color:var(--green); }
.pill.ok { background:rgba(159,176,208,.12); color:var(--muted); }
.pill.flag { background:rgba(239,68,68,.15); color:var(--red); }
