:root{--navy:#0f1f3d;--navy2:#1b2f57;--gold:#c9a227;--bg:#f5f6f8;--card:#fff;--field:#fff;--hover:#fafbfc;--mute:#eef0f4;--ink:#16213a;--muted:#667089;--line:#e3e6ec;--ok:#1f8a5b;--warn:#c27a00;--bad:#c23b3b;--okbg:#e6f4ec;--warnbg:#fdf3e1;--badbg:#fbeaea;--warnline:#f0d9a8;--warnink:#7a5200;--r:12px;color-scheme:light}
:root[data-theme=dark]{--bg:#0d1320;--card:#151d2e;--field:#1b2438;--hover:#1b2438;--mute:#232d44;--ink:#e7ebf3;--muted:#9aa4ba;--line:#283350;--ok:#43c08a;--warn:#e3a33a;--bad:#ef6b6b;--okbg:#143326;--warnbg:#3a2c12;--badbg:#3c1a1a;--warnline:#5c4618;--warnink:#f3cf88;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0}body{font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.45}
[hidden]{display:none!important}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}
.boot{position:fixed;inset:0;display:grid;place-items:center}.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.brand{display:flex;gap:10px;align-items:center}.brand b{display:block;font-size:16px}.brand small{color:var(--gold);font-weight:600;letter-spacing:.02em}
.logo{width:36px;height:36px;border-radius:9px;background:var(--gold);color:var(--navy);display:grid;place-items:center;font-weight:800;font-size:18px}
.btn{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:9px 14px;font-weight:600;color:var(--ink);display:inline-flex;gap:6px;align-items:center;justify-content:center;white-space:nowrap}
.btn:hover{border-color:var(--muted)}.btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy2)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}.btn-danger{color:var(--bad)}.btn-lg{padding:13px 18px;font-size:16px;width:100%}.btn-sm{padding:5px 10px;font-size:13px}
.btn:disabled{opacity:.55;cursor:default}
.input{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:var(--field);width:100%;min-width:0}.input:focus{outline:2px solid #c9a22755;border-color:var(--gold)}.input-sm{padding:6px 8px;font-size:13px}
textarea.input{min-height:80px;resize:vertical}
.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.row>.btn{flex:0 0 auto}.grow{flex:1}.right{margin-left:auto}
.gate{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,var(--navy),#22396b)}
.gate-card{background:var(--card);border-radius:18px;padding:28px;max-width:470px;width:100%;box-shadow:0 20px 60px #0004}
.gate-card h1{font-size:21px;line-height:1.3;margin:18px 0 12px}.gate-list{margin:0 0 20px;padding-left:20px;color:var(--muted)}.gate-list li{margin:4px 0}
.or{text-align:center;color:var(--muted);margin:16px 0 10px;font-size:13px}.msg{color:var(--bad);min-height:1em;font-size:14px}.fine{color:var(--muted);font-size:12px;margin:6px 0 0}
.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.side{background:var(--navy);color:#fff;padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.side .brand small{color:var(--gold)}#nav{display:flex;flex-direction:column;gap:2px}
#nav a,.tabbar a{display:flex;gap:10px;align-items:center;color:#cfd6e6;text-decoration:none;padding:9px 10px;border-radius:9px;font-weight:500;cursor:pointer}
#nav a:hover{background:#ffffff12;color:#fff}#nav a.on{background:#ffffff1c;color:#fff}#nav a .ico{width:20px;text-align:center}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}.side-foot .input{background:#ffffff14;border-color:#ffffff22;color:#fff}.side-foot option{color:#000}
.plan-box{font-size:12px;color:#cfd6e6;background:#ffffff10;border-radius:9px;padding:9px}.plan-box b{color:#fff}
.main{min-width:0;padding:20px 26px 90px}.top{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.top h2{margin:0;font-size:22px}.top-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.banner{background:var(--warnbg);border:1px solid var(--warnline);color:var(--warnink);padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:14px}.card h3{margin:0 0 10px;font-size:16px}.card .sub{color:var(--muted);font-size:13px;margin-top:-6px;margin-bottom:10px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px}.kpi b{display:block;font-size:24px}.kpi span{color:var(--muted);font-size:13px}
table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:8px;border-bottom:1px solid var(--line)}
td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}tr.click{cursor:pointer}tr.click:hover td{background:var(--hover)}.num{text-align:right;font-variant-numeric:tabular-nums}
.table-wrap{overflow-x:auto}td .input{padding:6px 8px}
.pill{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:600}.p-ok{background:var(--okbg);color:var(--ok)}.p-warn{background:var(--warnbg);color:var(--warn)}.p-bad{background:var(--badbg);color:var(--bad)}.p-mute{background:var(--mute);color:var(--muted)}
.alert{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:10px;border:1px solid var(--line);margin-bottom:8px;background:var(--card)}.alert .dot{width:10px;height:10px;border-radius:50%;margin-top:6px;flex:0 0 auto}
.alert.bad .dot{background:var(--bad)}.alert.warn .dot{background:var(--warn)}.alert.ok .dot{background:var(--ok)}.alert .grow small{color:var(--muted)}
.empty{text-align:center;color:var(--muted);padding:30px 10px}.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
.drop{border:2px dashed var(--line);border-radius:14px;padding:30px;text-align:center;background:var(--card);cursor:pointer}.drop:hover,.drop.over{border-color:var(--gold);background:var(--hover)}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field label{font-size:12px;color:var(--muted);font-weight:600}
.muted{color:var(--muted)}.small{font-size:13px}.up{color:var(--bad)}.down{color:var(--ok)}
.modal{position:fixed;inset:0;background:#0f1f3d88;display:grid;place-items:center;padding:16px;z-index:50}.modal-card{background:var(--card);border-radius:16px;max-width:760px;width:100%;max-height:92vh;overflow:auto;padding:20px}
.modal-card h3{margin:0 0 12px}.modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;z-index:60;font-size:14px;max-width:90vw}
.tabbar{display:none}.chart{width:100%;height:120px}
.photo{width:100%;max-height:200px;object-fit:cover;border-radius:10px}
.print-area{display:none}
@media (max-width:860px){.app{grid-template-columns:1fr}.side{display:none}.main{padding:14px 14px 90px}
 .tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--navy);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:40;overflow-x:auto}
 .tabbar a{flex-direction:column;gap:2px;font-size:11px;padding:6px 8px;min-width:64px;color:#cfd6e6}.tabbar a.on{color:#fff;background:#ffffff1c}
 .g2,.g3,.g4{grid-template-columns:1fr 1fr}.top h2{font-size:19px}}
@media (max-width:520px){.g2,.g3{grid-template-columns:1fr}}
@media print{body{background:#fff}.app,.gate,.modal,.toast,.boot{display:none!important}.print-area{display:block;padding:10mm;font-size:12pt}
 .print-area h1{font-size:20pt;margin:0 0 4mm}.print-area table{font-size:11pt}.print-area .photo{max-height:60mm}}

.icon-btn{width:38px;height:38px;padding:0}.lang-sel{max-width:150px}
.gate-top{display:flex;justify-content:flex-end;gap:8px;margin-bottom:6px}.gate-links{display:flex;gap:14px;justify-content:center;margin-top:10px;font-size:12px}.gate-links a{color:var(--muted)}
[dir=rtl] .top-actions{margin-left:0;margin-right:auto}[dir=rtl] th{text-align:right}[dir=rtl] .num{text-align:left}[dir=rtl] .right{margin-left:0;margin-right:auto}
.print-area table{width:100%;border-collapse:collapse}.print-area th,.print-area td{border-bottom:1px solid #ccc;padding:4px 6px;color:#000}.print-area .btn,.print-area button,.print-area input[type=file]{display:none}
@media print{:root{color-scheme:light}}
:root[data-theme=dark] .btn-primary{background:var(--gold);border-color:var(--gold);color:#0f1f3d}:root[data-theme=dark] .btn-primary:hover{background:#d8b33a}
:root[data-theme=dark] .side,:root[data-theme=dark] .tabbar{background:#0a1222}:root[data-theme=dark] .gate{background:linear-gradient(160deg,#0a1222,#15233f)}
