
:root{
  --bg:#f5f7fa; --card:#fff; --ink:#111927; --muted:#6b7a8d; --line:#e3e8ef;
  --brand:#1e40af; --brand2:#172d6e; --soft:#eef3ff;
  --ok:#0d7a4d; --oks:#e5f6ed; --warn:#96620a; --warns:#fdf5e3; --bad:#b02a20; --bads:#fdeeec;
  --sehatsy:#0e7490; --coffee:#92400e;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--ink);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased}
#app{display:flex;min-height:100vh}
aside{width:238px;background:var(--brand2);color:#bfcdf0;flex-shrink:0;display:flex;flex-direction:column}
.brand{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand b{color:#fff;font-size:14px;display:block;letter-spacing:.3px}
.brand span{font-size:10.5px;color:#8ba3d8}
nav{padding:8px 0;flex:1;overflow-y:auto}
.ng{padding:13px 16px 5px;font-size:9.5px;letter-spacing:1.1px;text-transform:uppercase;color:#7f97ce;font-weight:700}
nav a{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 16px;color:#bfcdf0;
  cursor:pointer;font-size:13px;border-left:3px solid transparent}
nav a:hover{background:rgba(255,255,255,.07);color:#fff}
nav a.active{background:rgba(255,255,255,.14);color:#fff;border-left-color:#60a5fa;font-weight:600}
nav a .pill{background:#dc2626;color:#fff;font-size:9.5px;padding:1px 6px;border-radius:9px;font-weight:700}
.sfoot{padding:10px 16px;border-top:1px solid rgba(255,255,255,.12);font-size:10.5px;color:#7f97ce}
main{flex:1;min-width:0;display:flex;flex-direction:column}
header{background:var(--card);border-bottom:1px solid var(--line);padding:14px 24px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
header h1{font-size:18px;font-weight:650;letter-spacing:-.2px}
header p{font-size:12px;color:var(--muted);margin-top:1px}
.content{padding:22px 24px 60px;flex:1}
button{font-family:inherit;font-size:12.5px;cursor:pointer;border:none;border-radius:6px;padding:7px 13px;font-weight:600}
.btn{background:var(--brand);color:#fff}.btn:hover{background:var(--brand2)}
.btn-o{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn-o:hover{background:#f8fafc}
.btn-s{padding:4px 9px;font-size:11.5px}
.btn-ok{background:var(--ok);color:#fff}
.btn-bad{background:#fff;color:var(--bad);border:1px solid #f0c7c3}.btn-bad:hover{background:var(--bads)}
.card{background:var(--card);border:1px solid var(--line);border-radius:9px;margin-bottom:18px;overflow:hidden}
.card-h{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;
  align-items:center;gap:10px;flex-wrap:wrap}
.card-h h3{font-size:13.5px;font-weight:650}
.card-h small{color:var(--muted);font-size:11.5px;font-weight:400;display:block;margin-top:1px}
.card-b{padding:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:12px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:14px 16px}
.kpi .lb{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700}
.kpi .vl{font-size:21px;font-weight:700;margin-top:6px;letter-spacing:-.6px}
.kpi .sb{font-size:11.5px;color:var(--muted);margin-top:2px}
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:9px 12px;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;
  color:var(--muted);background:#f8fafc;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
td{padding:9px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:#fbfcfe}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);margin-bottom:3px;font-size:13.5px}
.tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700;white-space:nowrap}
.t-ok{background:var(--oks);color:var(--ok)}.t-warn{background:var(--warns);color:var(--warn)}
.t-bad{background:var(--bads);color:var(--bad)}.t-info{background:var(--soft);color:var(--brand)}
.t-gray{background:#f1f5f9;color:var(--muted)}
.t-bu1{background:#e0f2fe;color:var(--sehatsy)}.t-bu2{background:#fef3c7;color:var(--coffee)}
label{display:block;font-size:11.5px;font-weight:650;margin-bottom:4px;color:#334155}
input,select,textarea{width:100%;padding:7px 10px;border:1px solid #cbd5e1;border-radius:6px;
  font-family:inherit;font-size:13px;background:#fff;color:var(--ink)}
input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--soft)}
input:disabled{background:#f8fafc;color:var(--muted)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.g4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
.fld{margin-bottom:12px}
.hint{font-size:11px;color:var(--muted);margin-top:3px}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:flex-start;
  justify-content:center;padding:30px 16px;z-index:100;overflow-y:auto}
.mbox{background:#fff;border-radius:11px;width:100%;max-width:880px;box-shadow:0 20px 50px rgba(0,0,0,.28)}
.mh{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.mh h3{font-size:15px}
.mb{padding:20px}
.mf{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;
  background:#f8fafc;border-radius:0 0 11px 11px;flex-wrap:wrap}
.x{background:none;color:var(--muted);font-size:21px;padding:0 5px;line-height:1}
.tb{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.tb input,.tb select{width:auto;min-width:135px}
.lt input,.lt select{padding:5px 8px;font-size:12.5px}
.tot{margin-left:auto;width:330px;margin-top:12px}
.tot div{display:flex;justify-content:space-between;padding:5px 0;font-size:13px}
.tot .g{border-top:2px solid var(--ink);margin-top:5px;padding-top:8px;font-weight:750;font-size:15.5px}
.bar{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.bar .nm{width:165px;font-size:12px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trk{flex:1;height:8px;background:#eef2f7;border-radius:4px;overflow:hidden}
.fil{height:100%;border-radius:4px;background:var(--brand)}
.bar .vl{width:118px;text-align:right;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}
.banner{background:var(--warns);border:1px solid #f0dfae;color:#7a4d05;padding:10px 14px;border-radius:7px;
  margin-bottom:16px;font-size:12.5px}
.banner.info{background:var(--soft);border-color:#c3d4f7;color:#1e3a8a}
.clk{cursor:pointer}
.rpt td,.rpt th{padding:6px 12px}
.rpt .sec{font-weight:700;background:#f8fafc}
.rpt .tot2{font-weight:700;border-top:1.5px solid var(--ink)}
.ind{padding-left:28px !important;color:#334155}
.je{background:#fafbfd;border:1px dashed #cbd5e1;border-radius:7px;padding:12px;margin-top:14px}
.je h4{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:8px}
.je table{font-size:12px}.je td{padding:4px 8px;border:none}
@media(max-width:860px){#app{flex-direction:column}aside{width:100%}nav{display:flex;flex-wrap:wrap;padding:5px}
 .ng{display:none}nav a{border-left:none}.g2,.g3,.g4{grid-template-columns:1fr}.tot{width:100%}}


/* ============ ONLINE EDITION ADDITIONS ============ */

/* --- sign-in screen --- */
#signin{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
#signin .card{width:100%;max-width:390px;margin:0;box-shadow:0 12px 34px rgba(15,23,42,.10)}
#signin .brandbox{background:var(--brand2);color:#fff;padding:24px 22px}
#signin .brandbox b{display:block;font-size:15px;letter-spacing:.3px}
#signin .brandbox span{font-size:11.5px;color:#8ba3d8}
#signin .pad{padding:22px}
#signin label{margin-top:14px}
#signin label:first-of-type{margin-top:0}
#signin button{width:100%;margin-top:20px;padding:11px;font-size:14px}
#signin button:disabled{opacity:.6;cursor:default}
#signin .alert{background:var(--bads);border:1px solid #f0c7c3;color:var(--bad);
  padding:10px 13px;border-radius:7px;margin-bottom:14px;font-size:12.5px}
#signin .fine{font-size:11px;color:var(--muted);margin-top:16px;text-align:center;line-height:1.5}

/* --- save status strip --- */
#syncbar:empty{display:none}
.syncmsg{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:8px 24px;font-size:12.5px;font-weight:600;border-bottom:1px solid var(--line)}
.syncmsg.s-ok{background:var(--oks);color:var(--ok)}
.syncmsg.s-wait{background:var(--soft);color:var(--brand)}
.syncmsg.s-warn{background:var(--warns);color:var(--warn)}
.syncmsg.s-bad{background:var(--bads);color:var(--bad)}

/* --- sidebar footer with the signed-in user --- */
.sfoot a{color:#bfcdf0}
.sfoot a:hover{color:#fff}
.sfoot div:first-child b{color:#fff;font-size:12px}
