:root{--bg:#f6f8fb;--card:#fff;--ink:#111827;--muted:#667085;--line:#d9e0ea;--primary:#1d4ed8;--danger:#dc2626;--ok:#059669}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif}a{color:var(--primary);text-decoration:none}
.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#0f172a;color:#fff;padding:20px}.brand{display:flex;gap:10px;align-items:center;color:#fff;margin-bottom:28px;min-width:0}.brand strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.brand span,.brand img{display:grid;place-items:center;width:42px;height:42px;max-width:42px;max-height:42px;border-radius:12px;background:linear-gradient(135deg,var(--primary),#06b6d4);font-weight:800;object-fit:contain;object-position:center;overflow:hidden;flex:0 0 42px}.brand img{background:#fff;padding:5px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{color:#cbd5e1;padding:12px 14px;border-radius:12px}.sidebar nav a.active,.sidebar nav a:hover{background:#1e293b;color:#fff}
.main{margin-left:250px;padding:24px}.public{max-width:980px;margin:0 auto;padding:48px 20px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{margin:0}.topbar div:last-child{display:flex;gap:14px;align-items:center}
.card,.install-card,.login-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:20px;box-shadow:0 10px 30px rgba(15,23,42,.06)}.login-card{max-width:440px;margin:8vh auto}.install-card{max-width:980px;margin:0 auto}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:18px;min-width:0}.login-brand h1{margin:0;font-size:24px;line-height:1.1}.login-brand p{margin:3px 0 0;color:var(--muted);font-weight:700}.login-logo,.login-logo-fallback{width:64px;height:64px;max-width:64px;max-height:64px;border-radius:18px;flex:0 0 64px;box-shadow:0 14px 28px rgba(29,78,216,.16);overflow:hidden}.login-logo{display:block;object-fit:contain;object-position:center;background:#fff;border:1px solid var(--line);padding:8px}.login-logo-fallback{display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#06b6d4);color:#fff;font-size:20px;font-weight:900}.login-intro{color:var(--muted);line-height:1.5;margin-bottom:18px}
.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span2{grid-column:1/-1}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{font-size:32px}
label{display:grid;gap:7px;font-weight:700;font-size:14px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit;background:#fff}textarea{min-height:90px}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px;vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.btn,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:10px 14px;background:#e5e7eb;color:#111827;font-weight:800;cursor:pointer}.btn.primary,button.primary{background:var(--primary);color:#fff}.btn.danger,button.danger{background:#fee2e2;color:var(--danger)}.btn.small,button.small{padding:7px 10px;font-size:12px}.inline{display:inline}.alert{border-radius:14px;padding:12px 14px;margin-bottom:16px}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}.alert.notice{background:#eff6ff;color:#1e40af}.badge{display:inline-flex;border-radius:999px;background:#eef2ff;color:#3730a3;padding:4px 9px;font-size:12px;font-weight:800}.badge.success{background:#dcfce7;color:#166534}.badge.error{background:#fee2e2;color:#991b1b}.badge.info{background:#dbeafe;color:#1d4ed8}.warning-check{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:12px}
code{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:3px 6px}footer{margin-top:28px;color:var(--muted);font-size:12px}
@media(max-width:860px){.sidebar{position:static;width:auto}.main{margin-left:0}.grid.two,.stats{grid-template-columns:1fr}}
