:root{--bg:#0b1020;--panel:#121a2c;--panel2:#172239;--line:#25314a;--text:#edf3ff;--muted:#8fa0bd;--accent:#65d7a1;--warn:#f2bd65;--danger:#ef7777}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#0e1525;color:var(--text)}a{color:#79b8ff;text-decoration:none}a:hover{text-decoration:underline}
.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#080d18;border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:6px 10px 26px}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#65d7a1,#4e93ff);color:#07101a;display:grid;place-items:center;font-weight:900}.brand b{display:block}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.center{justify-content:center}
nav a,.sidebar-bottom a{display:block;padding:12px 13px;color:#aebbd1;border-radius:10px;margin:3px 0}nav a.active,nav a:hover{background:#172239;color:#fff;text-decoration:none}.sidebar-bottom{margin-top:auto}.main{flex:1;min-width:0}.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#0d1423}.user-chip{color:var(--muted);font-size:13px}
.hero{margin:28px;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:26px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#142038,#10192b)}.hero.compact{margin-bottom:0}.hero h1{margin:7px 0;font-size:30px}.hero p{margin:0;color:var(--muted)}.eyebrow{font-size:11px;color:var(--accent);letter-spacing:2px;font-weight:700}.btn{display:inline-block;border:1px solid var(--line);padding:10px 14px;border-radius:9px;background:#18243a;color:#fff;cursor:pointer}.btn.primary{background:#65d7a1;color:#07101a;border:0;font-weight:700}.btn.full{width:100%;margin-top:10px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 28px 20px}.kpi,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px}.kpi{padding:18px}.kpi small,.kpi span{display:block;color:var(--muted)}.kpi strong{font-size:30px;display:block;margin:7px 0}.kpi.warn strong{color:var(--warn)}
.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin:0 28px 28px}.panel{padding:18px;margin:0 28px 18px}.grid-2 .panel{margin:0}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel-head h2{margin:0;font-size:17px}.muted{color:var(--muted);font-size:12px}
#map,#analysisMap{height:480px;border-radius:10px;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}td{font-size:13px}td small{color:var(--muted)}.badge{display:inline-block;padding:4px 8px;border-radius:99px;background:#26324a;color:#dce6f7;font-size:10px;font-weight:800}.badge.active,.badge.low{background:#173b31;color:#65d7a1}.badge.warning,.badge.medium{background:#44361e;color:#f2bd65}.badge.inactive,.badge.high{background:#452526;color:#ef7777}.danger-link{color:#ef7777;margin-left:8px}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-grid label{font-size:12px;color:var(--muted)}.form-grid input,.form-grid select,.form-grid textarea,.login-card input{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);background:#0c1423;color:#fff;border-radius:8px}.form-grid textarea{min-height:90px}.wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;gap:8px}
.flash{margin:16px 28px;padding:12px 14px;border-radius:9px}.flash.success{background:#15362c;color:#65d7a1}.flash.error{background:#432426;color:#ff9898}
.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#182945,#0a0f1c)}.login-card{width:min(420px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:30px}.login-card h1{font-size:24px}.login-card label{display:block;color:var(--muted);font-size:13px;margin:15px 0}.login-card .brand{padding-bottom:10px}
@media(max-width:1000px){.sidebar{width:205px}.kpis{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.sidebar{display:none}.kpis,.grid-2,.hero,.panel{margin-left:14px;margin-right:14px}.hero{align-items:flex-start;flex-direction:column}.kpis{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.topbar{padding:0 14px}}
