
:root{--bg:#f1f4f8;--card:#fff;--tx:#0f172a;--mu:#64748b;--bd:#e2e8f0;--ac:#0f766e;--ac2:#fff;--sb:#0f172a;--sbt:#cbd5e1;--bad:#b91c1c;--ok:#15803d;--warn:#b45309;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0b1016;--card:#151b23;--tx:#e6eaf0;--mu:#94a3b8;--bd:#273140;--ac:#2dd4bf;--ac2:#04201d;--sb:#080c11;--bad:#ff7a6b;--ok:#4ade80;--warn:#fbbf24;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0b1016;--card:#151b23;--tx:#e6eaf0;--mu:#94a3b8;--bd:#273140;--ac:#2dd4bf;--ac2:#04201d;--sb:#080c11;--bad:#ff7a6b;--ok:#4ade80;--warn:#fbbf24;color-scheme:dark}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx);font:14.5px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
#app{display:flex;min-height:100vh}
#side{width:236px;flex:none;background:var(--sb);color:var(--sbt);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{padding:18px 16px;font-size:15px;font-weight:700;color:#fff;display:flex;gap:10px;align-items:center;line-height:1.2}.brand i{font-style:normal;font-size:24px}
#nav{flex:1;overflow-y:auto;padding:4px 8px}
#nav button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:transparent;color:var(--sbt);padding:10px 12px;border-radius:8px;font:inherit;cursor:pointer;margin-bottom:2px}
#nav button i{font-style:normal;width:20px;text-align:center}#nav button:hover{background:rgba(255,255,255,.07)}
#nav button.on{background:var(--ac);color:var(--ac2);font-weight:600}
.usr{padding:12px 14px;border-top:1px solid rgba(255,255,255,.1);font-size:12px}.usr button{margin-top:8px;width:100%;background:transparent;color:var(--sbt);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:6px;font:inherit;cursor:pointer}#sync{opacity:.7;margin-top:2px}
#cont{flex:1;min-width:0}
.top{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:4}
.top h1{margin:0;font-size:19px}#co{color:var(--mu);font-size:13px}
main{padding:16px 20px 40px;max-width:1040px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px;margin-bottom:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
h3{margin:0 0 12px;font-size:15px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kpi{background:var(--card);border:1px solid var(--bd);border-left:4px solid var(--ac);border-radius:10px;padding:12px 14px}.kpi b{display:block;font-size:26px}.kpi span{color:var(--mu);font-size:12.5px}
label{display:block;font-size:12px;color:var(--mu);margin:0 0 3px;font-weight:600}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);color:var(--tx);font:inherit}
input:focus,select:focus{outline:2px solid var(--ac);outline-offset:-1px}
.f{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}
button.p{background:var(--ac);color:var(--ac2);border:0;padding:10px 16px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}
button.s{background:transparent;border:1px solid var(--bd);color:var(--tx);padding:6px 10px;border-radius:8px;font:inherit;cursor:pointer}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--bd);white-space:nowrap}th{color:var(--mu);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tr:hover td{background:rgba(100,116,139,.06)}
.tag{padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;border:1px solid currentColor}.ok{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.chk{max-height:220px;overflow:auto;border:1px solid var(--bd);border-radius:8px;padding:6px;margin-top:4px}.chk label{display:flex;gap:8px;align-items:center;color:var(--tx);font-size:14px;padding:3px 0;margin:0;font-weight:400}.chk input{width:auto}
.res{font-size:16px}.note{color:var(--mu);font-size:13px}.cred{border-color:var(--ok);background:rgba(21,128,61,.07)}
body.ro main button.p:not(.k){display:none}
#login{display:none;position:fixed;inset:0;z-index:30;background:var(--bg);align-items:center;justify-content:center;padding:16px;overflow:auto}
.lbox{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:26px;width:100%;max-width:370px}.lbox h2{margin:6px 0}.lb{font-size:34px}.lbox label{margin-top:10px}
#pr{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:20;overflow:auto;padding:16px}
#pr .sheet{background:#fff;color:#000;max-width:760px;margin:auto;padding:24px;border-radius:6px}
#pr .sheet td,#pr .sheet th{border:1px solid #999;color:#000;white-space:normal}
@media(max-width:820px){#app{flex-direction:column}#side{width:auto;height:auto;position:sticky;top:env(safe-area-inset-top,0px);z-index:6;flex-direction:row;flex-wrap:wrap;align-items:center}.brand{padding:10px 12px}.brand span br{display:none}#nav{display:flex;overflow-x:auto;flex-basis:100%;order:3;padding:0 8px 8px}#nav button{width:auto;white-space:nowrap;margin:0 4px 0 0}.usr{margin-left:auto;border:0;padding:8px 12px;text-align:right}.usr button{margin:0;width:auto;padding:4px 10px}.top{position:static}main{padding:12px}}
@media print{body>*:not(#pr){display:none!important}#pr{position:static;background:none;padding:0;display:block!important}#pr .bar{display:none}#pr .sheet{max-width:none;padding:0}}

button:disabled{opacity:.55;cursor:wait}#backupStatus{line-height:1.7}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}.auth-brand .lb{flex:none}.auth-brand h2{margin:0;font-size:21px;line-height:1.25;min-width:0}.brand span{white-space:nowrap}.password-field{position:relative}.password-field input{padding-right:64px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:5px 7px;background:transparent;color:var(--ac);border:0;border-radius:5px;cursor:pointer;font:inherit;font-size:12px;font-weight:600}.password-toggle:focus-visible{outline:2px solid var(--ac)}
