*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}:root{--bg:#f5f7fa;--surface:#fff;--text:#111827;--muted:#64748b;--border:#e2e8f0;--primary:#2563eb;--danger:#dc2626;--shadow:0 8px 30px rgba(15,23,42,.07)}[data-theme=dark]{--bg:#0f172a;--surface:#172033;--text:#f8fafc;--muted:#94a3b8;--border:#29364d;--primary:#60a5fa;--shadow:0 8px 30px rgba(0,0,0,.2)}body{background:var(--bg)}label{display:block;font-size:.9rem;font-weight:600;margin:14px 0 7px}input{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:12px 13px;outline:none}input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}button{font:inherit}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:10px 14px;cursor:pointer}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.muted{color:var(--muted)}.auth-page{display:grid;place-items:center;padding:24px}.auth-card,.installer{width:min(440px,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:32px;box-shadow:var(--shadow)}.brand-mark,.logo{font-weight:900;letter-spacing:-.04em}.brand-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--primary);color:#fff;margin-bottom:18px}.auth-card h1,.installer h1{margin:0}.auth-card form{margin-top:24px}.auth-card .btn{width:100%;margin-top:18px}.installer-link{display:block;margin-top:22px;color:var(--primary);font-size:.9rem}.steps{display:flex;gap:8px;list-style:none;padding:0;margin:24px 0;overflow:auto}.steps li{font-size:.75rem;padding:7px 10px;border:1px solid var(--border);border-radius:999px;white-space:nowrap}.steps .active{border-color:var(--primary);color:var(--primary)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.check-row{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--border)}.installer>.btn{margin-top:18px;width:100%}.app-shell{display:flex;min-height:100vh}.sidebar{width:245px;background:var(--surface);border-right:1px solid var(--border);padding:22px 14px;position:sticky;top:0;height:100vh}.logo{padding:0 12px 22px;font-size:1.15rem}.logo span{font-weight:700;margin-left:5px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:10px 12px;border-radius:9px;color:var(--muted);text-decoration:none}.sidebar nav a:hover,.sidebar nav a.active{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary)}.main{flex:1;padding:28px;max-width:1600px;margin:auto;width:100%}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.topbar h1{margin:0}.top-actions{display:flex;gap:8px;align-items:center}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.card span{color:var(--muted);font-size:.9rem}.card strong{display:block;font-size:1.9rem;margin-top:8px}.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.panel-header{display:flex;justify-content:space-between;align-items:center}.panel h2{font-size:1rem;margin:0 0 16px}.map-placeholder{min-height:430px;border-radius:12px;background:repeating-linear-gradient(45deg,#eef2f7,#eef2f7 10px,#e8edf3 10px,#e8edf3 20px);display:grid;place-items:center;color:#64748b;font-weight:800;letter-spacing:.12em}.status-dot{font-size:.75rem;color:var(--muted)}@media(max-width:1000px){.sidebar{width:200px}.cards{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{display:block}.sidebar{width:100%;height:auto;position:relative;border-right:0;border-bottom:1px solid var(--border)}.sidebar nav{display:flex;overflow:auto}.main{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.cards{grid-template-columns:1fr 1fr}.map-placeholder{min-height:280px}}@media(max-width:450px){.cards{grid-template-columns:1fr}.auth-card,.installer{padding:24px}}
.alert{margin:18px 0;padding:11px 13px;border-radius:10px;border:1px solid var(--border);font-size:.9rem}.alert.error{border-color:#ef4444}.alert.success{border-color:#22c55e}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.form-grid .full{grid-column:1/-1}@media(max-width:650px){.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
.map{min-height:430px;border-radius:12px;overflow:hidden;border:1px solid var(--border)}
select,textarea{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:12px 13px;font:inherit}textarea{resize:vertical}.toolbar{display:flex;gap:8px;margin-bottom:18px}.toolbar input{max-width:420px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}tr:hover td{background:color-mix(in srgb,var(--primary) 3%,transparent)}.actions{display:flex;gap:7px;align-items:center}.btn.danger{border-color:#ef4444;color:#ef4444;background:transparent}.actions form{margin:0}.full{grid-column:1/-1}
