[hidden]{display:none!important}
:root{
  --bg:#f5f7fb;--surface:#fff;--text:#162033;--muted:#64748b;--line:#e6eaf0;
  --primary:#2563eb;--primary-dark:#1748b8;--navy:#0f1f38;--danger:#dc2626;
  --shadow:0 12px 30px rgba(15,31,56,.08);--radius:18px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}
.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;color:#1643a3}.brand-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#0f2f66,#2563eb);display:grid;place-items:center;color:#fff;font-weight:900;letter-spacing:-1px}.guest{display:flex;align-items:center;gap:9px;color:#475569;font-size:14px}.guest-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf1ff;color:#2563eb;font-weight:700}
.hero{background:radial-gradient(circle at 78% 20%,#d9e9ff 0,transparent 24%),linear-gradient(135deg,#eff6ff 0%,#fff 70%);padding:64px 5vw 52px;border-bottom:1px solid var(--line)}.hero-inner{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.3fr .7fr;gap:48px;align-items:center}.eyebrow{font-size:16px;font-weight:700;color:#334155}.hero h1{font-size:54px;line-height:1;margin:10px 0 16px;letter-spacing:-2px}.hero h1 span{color:var(--primary)}.hero p{color:var(--muted);font-size:18px;margin:0 0 26px}.search{max-width:580px;background:#fff;border:1px solid #dbe3ef;border-radius:14px;padding:0 16px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 22px rgba(37,99,235,.06)}.search input{width:100%;border:0;outline:0;padding:16px 4px;background:transparent}.building{height:210px;border-radius:28px;background:linear-gradient(155deg,#dce8fb,#a9c6ed);position:relative;overflow:hidden;box-shadow:var(--shadow)}.building:before{content:"ABDI";position:absolute;right:26px;top:24px;background:#fff;color:#1d4ed8;font-weight:900;padding:8px 12px;border-radius:8px}.building:after{content:"";position:absolute;left:42px;right:42px;bottom:0;height:150px;background:repeating-linear-gradient(90deg,#1f4d7d 0 28px,#76a6d2 28px 31px);clip-path:polygon(10% 22%,90% 0,100% 100%,0 100%);opacity:.9}
.container{max-width:1240px;margin:0 auto;padding:38px 24px 70px}.section{margin-bottom:34px}.section-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:800;color:#153e91;margin:0 0 16px}.section-title:before{content:"";width:9px;height:9px;border:3px solid #3b82f6;border-radius:3px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.app-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;min-height:190px;display:flex;flex-direction:column;transition:.2s ease;box-shadow:0 4px 14px rgba(15,23,42,.03)}.app-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#cfd9ea}.app-head{display:flex;gap:14px;align-items:center}.app-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:23px;background:var(--accent,#2563eb);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}.app-name{font-weight:800;font-size:16px}.app-desc{color:var(--muted);font-size:13px;line-height:1.55;margin:13px 0 18px;flex:1}.open-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:10px;background:#f3f6fb;color:#1d4ed8;font-size:13px;font-weight:700}.empty{background:#fff;border:1px dashed #cbd5e1;border-radius:16px;padding:36px;text-align:center;color:#64748b}.footer{border-top:1px solid var(--line);background:#fff;padding:18px 5vw;display:flex;justify-content:space-between;gap:16px;color:#64748b;font-size:12px}
/* Admin */
.admin-body{min-height:100vh;background:#f4f6fa}.admin-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#0f1f38,#10294a);color:#dce7f8;padding:24px 18px;display:flex;flex-direction:column}.sidebar .brand{color:#fff;margin-bottom:32px}.side-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#7890ae;margin:10px 12px}.nav-item{padding:11px 12px;border-radius:10px;color:#c4d2e5;font-size:14px;margin:2px 0}.nav-item.active{background:#2563eb;color:#fff}.sidebar-bottom{margin-top:auto}.admin-main{padding:34px}.admin-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.admin-header h1{margin:0 0 6px;font-size:26px}.subtext{margin:0;color:var(--muted);font-size:14px}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:700;cursor:pointer}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:#eef2f7;color:#334155}.btn-danger{background:#fff0f0;color:#dc2626}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 14px rgba(15,23,42,.03);overflow:hidden}.table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;min-width:900px}.admin-table th,.admin-table td{text-align:left;padding:14px 16px;border-bottom:1px solid #edf0f5;font-size:13px;vertical-align:middle}.admin-table th{background:#f8fafc;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.admin-table tr:last-child td{border-bottom:0}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.status.on{background:#dcfce7;color:#15803d}.status.off{background:#fee2e2;color:#b91c1c}.actions{display:flex;gap:7px}.icon-btn{width:34px;height:34px;border:0;border-radius:9px;cursor:pointer;background:#eef4ff;color:#2563eb}.icon-btn.delete{background:#fff0f0;color:#dc2626}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 70% 20%,#dbeafe,transparent 25%),#f5f7fb}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow)}.login-card .brand{margin-bottom:22px}.login-card h1{font-size:25px;margin:0 0 7px}.login-card p{color:var(--muted);font-size:14px;margin:0 0 24px}.field{margin-bottom:15px}.field label{display:block;font-size:12px;font-weight:800;margin-bottom:7px;color:#334155}.field input,.field select,.field textarea{width:100%;border:1px solid #dbe2ea;border-radius:10px;padding:11px 12px;outline:none;background:#fff}.field input:focus,.field select:focus,.field textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #dbeafe}.login-error{color:#b91c1c;background:#fef2f2;border-radius:9px;padding:10px 12px;font-size:13px;margin-bottom:14px;display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}.modal-backdrop.show{display:flex}.modal{width:min(650px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.18)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{margin:0;font-size:21px}.close{border:0;background:#f1f5f9;border-radius:9px;width:36px;height:36px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.toast{position:fixed;right:22px;bottom:22px;background:#0f172a;color:#fff;padding:12px 16px;border-radius:10px;font-size:13px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:200}.toast.show{opacity:1;transform:none}
@media(max-width:1050px){.grid{grid-template-columns:repeat(3,1fr)}.hero-inner{grid-template-columns:1fr}.building{display:none}.admin-shell{grid-template-columns:1fr}.sidebar{display:none}}
@media(max-width:760px){.topbar{padding:0 18px}.hero{padding:42px 20px}.hero h1{font-size:40px}.container{padding:28px 16px 54px}.grid{grid-template-columns:1fr 1fr}.footer{flex-direction:column}.admin-main{padding:22px 14px}.admin-header{flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
@media(max-width:520px){.grid{grid-template-columns:1fr}.hero h1{font-size:34px}.hero p{font-size:15px}.guest span:last-child{display:none}}

/* Admin v1.3 navigation & views */
.sidebar button.nav-item,.sidebar a.nav-item{display:block;width:100%;border:0;text-align:left;cursor:pointer;background:transparent;font:inherit;text-decoration:none}
.sidebar .nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.sidebar .nav-item.active:hover{background:#2563eb}.sidebar-portal-link{margin-top:8px!important}
.admin-view{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;display:flex;align-items:center;gap:14px;box-shadow:0 4px 14px rgba(15,23,42,.03)}.stat-card span{display:block;color:#64748b;font-size:12px;margin-bottom:5px}.stat-card strong{font-size:26px}.stat-icon{width:44px;height:44px;border-radius:12px;background:#eaf1ff;color:#2563eb;display:grid;place-items:center;font-size:20px;font-weight:900}.stat-icon.ok{background:#dcfce7;color:#15803d}.stat-icon.off{background:#fee2e2;color:#b91c1c}.stat-icon.cat{background:#f3e8ff;color:#7e22ce}
.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.dashboard-panel{padding:20px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.panel-head h2,.settings-section h2{font-size:16px;margin:0 0 4px}.panel-head p{margin:0;color:#64748b;font-size:12px}.text-btn{border:0;background:transparent;color:#2563eb;font-weight:700;cursor:pointer;white-space:nowrap}.recent-list{display:grid}.recent-item{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-top:1px solid #edf0f5}.recent-item:first-child{border-top:0}.recent-icon{width:38px;height:38px;border-radius:10px;background:var(--accent,#2563eb);display:grid;place-items:center;color:#fff}.recent-item strong{display:block;font-size:13px}.recent-item span:not(.status){color:#64748b;font-size:11px}.category-summary{display:grid}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;border-top:1px solid #edf0f5;font-size:13px}.summary-row:first-child{border-top:0}.summary-row strong{background:#eef4ff;color:#2563eb;border-radius:999px;min-width:30px;text-align:center;padding:4px 8px}.empty-mini,.table-empty{color:#64748b;text-align:center;padding:20px!important}.count-badge{display:inline-flex;background:#f1f5f9;border-radius:999px;padding:5px 9px;color:#475569;font-size:11px;font-weight:700}.page-note{font-size:12px;color:#64748b;margin:12px 4px}.modal-small{width:min(440px,100%)}
.settings-panel{padding:24px;max-width:900px}.settings-section{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #edf0f5}.settings-section:last-of-type{border-bottom:0;margin-bottom:0}.settings-section>h2{margin-bottom:15px}.settings-actions{display:flex;justify-content:flex-end;padding-top:4px}.switch-row{display:flex;align-items:center;gap:12px;cursor:pointer}.switch-row>input{position:absolute;opacity:0;pointer-events:none}.switch-ui{width:46px;height:26px;border-radius:999px;background:#cbd5e1;position:relative;transition:.2s;flex:0 0 auto}.switch-ui:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);transition:.2s}.switch-row input:checked+.switch-ui{background:#2563eb}.switch-row input:checked+.switch-ui:after{transform:translateX(20px)}.switch-row strong{font-size:13px}.switch-row small{display:block;color:#64748b;margin-top:3px;font-size:11px}
@media(max-width:1150px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:1050px){.admin-shell{display:grid;grid-template-columns:210px 1fr}.sidebar{display:flex}.admin-main{padding:24px}}
@media(max-width:760px){.admin-shell{grid-template-columns:1fr}.sidebar{position:relative;min-height:auto;padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:4px}.sidebar .brand,.side-label{grid-column:1/-1}.sidebar-bottom{grid-column:1/-1;margin-top:8px}.stats-grid{grid-template-columns:1fr 1fr}.admin-main{padding:18px 12px}}
@media(max-width:520px){.stats-grid{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr}}
