*{box-sizing:border-box;margin:0;padding:0;font-family:"Segoe UI",Arial,sans-serif}body{background:#f6f7ff;min-height:100vh;color:#172554}a{text-decoration:none}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2ff,#ffffff 45%,#e0f2fe)}.login-card{width:390px;padding:32px;background:white;border-radius:24px;box-shadow:0 24px 60px rgba(30,41,59,.14);text-align:left}.login-logo{width:58px;height:58px;border-radius:18px;background:#eef2ff;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 14px}.login-card h2{text-align:center;color:#312e81}.login-subtitle{text-align:center;color:#64748b;margin:6px 0 22px}.login-card label{display:block;font-size:14px;font-weight:700;margin:12px 0 6px;color:#334155}.login-card input[type=email],.login-card input[type=password],.admin-form input,.admin-form select,.admin-form textarea{width:100%;padding:13px 14px;border:1px solid #dbe3ef;border-radius:12px;outline:none;background:#fbfdff}.login-card input:focus,.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 4px rgba(79,70,229,.1)}.login-card button,.admin-form button,.primary-btn{width:100%;padding:13px 16px;background:linear-gradient(135deg,#4f46e5,#312e81);border:none;color:white;border-radius:12px;font-weight:800;cursor:pointer;margin-top:14px}.login-card button:hover,.admin-form button:hover,.primary-btn:hover{opacity:.93}.remember{display:flex!important;gap:8px;align-items:center;font-weight:500!important}.remember input{width:auto}.error{background:#fee2e2;color:#b91c1c;padding:11px;border-radius:12px;margin-bottom:12px;text-align:center;font-weight:700}.demo-login{margin-top:18px;padding:12px;border-radius:14px;background:#f8fafc;color:#475569;font-size:13px;line-height:1.5}.layout{display:flex;min-height:100vh}.sidebar{width:270px;background:linear-gradient(180deg,#312e81,#4338ca);color:white;padding:22px 18px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.brand-icon{width:46px;height:46px;border-radius:15px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:24px}.brand h2{font-size:22px}.brand p{font-size:12px;color:#c7d2fe}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav a{color:#e0e7ff;padding:12px 13px;border-radius:14px;display:flex;align-items:center;gap:10px;font-weight:650;transition:.2s}.sidebar nav a span{flex:1}.sidebar nav a b{background:#ef4444;color:white;border-radius:999px;padding:2px 7px;font-size:12px}.sidebar nav a.active,.sidebar nav a:hover{background:rgba(255,255,255,.17);color:white}.logout-link{margin-top:10px;background:rgba(239,68,68,.16)!important}.sidebar-art{margin-top:24px;padding:18px;border-radius:20px;text-align:center;background:rgba(255,255,255,.12);font-size:34px}.main{flex:1;padding:24px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;background:white;padding:18px 20px;border-radius:22px;box-shadow:0 10px 25px rgba(15,23,42,.06)}.topbar h1{font-size:28px;color:#1e1b4b}.topbar p{color:#64748b;margin-top:4px}.top-actions{display:flex;align-items:center;gap:12px;color:#475569;font-size:14px;white-space:nowrap}.notif{position:relative;background:#eef2ff;padding:9px 12px;border-radius:14px}.notif b{background:#ef4444;color:white;border-radius:50%;font-size:10px;padding:2px 5px;position:absolute;top:-5px;right:-5px}.avatar{width:42px;height:42px;border-radius:50%;background:#eef2ff;display:flex;align-items:center;justify-content:center}.user-info{display:flex;flex-direction:column}.user-info small{color:#64748b}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;margin-bottom:18px}.stat-card{padding:18px;border-radius:20px;display:flex;gap:14px;align-items:center;box-shadow:0 10px 25px rgba(15,23,42,.06);background:white}.stat-card .icon{font-size:30px;width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.65)}.stat-card p{color:#475569;font-weight:700}.stat-card h2{font-size:30px;margin:4px 0;color:#1e1b4b}.stat-card span{font-size:12px;color:#64748b}.stat-card.purple{background:#ede9fe}.stat-card.green{background:#dcfce7}.stat-card.blue{background:#dbeafe}.stat-card.orange{background:#ffedd5}.dashboard-grid,.page-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.page-grid.two{grid-template-columns:1fr 1.2fr}.panel{background:white;border-radius:22px;padding:20px;margin-bottom:18px;box-shadow:0 10px 25px rgba(15,23,42,.06)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel-head h3,.panel h3{font-size:20px;color:#1e1b4b}.panel-head a{color:#4f46e5;font-weight:800}.box-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.mini-card{background:#f8fafc;border:1px solid #eef2f7;border-radius:16px;padding:16px;color:#64748b}.mini-card b{font-size:24px;color:#1e1b4b}.weather-main{display:flex;align-items:center;gap:16px;margin:16px 0}.weather-main.large .weather-icon{font-size:64px}.weather-icon{font-size:50px}.weather-main h2{font-size:38px;color:#1e1b4b}.weather-main p{font-weight:700}.weather-small{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:14px 0}.weather-small div{background:#f8fafc;border:1px solid #eef2f7;border-radius:16px;padding:14px;text-align:center;display:flex;flex-direction:column;gap:5px}.weather-small b{color:#1e1b4b}.weather-small span{font-size:12px;color:#64748b}.advisory{background:#fff7ed;border-left:5px solid #f59e0b;padding:14px;border-radius:14px;display:flex;gap:10px;color:#7c2d12}.announce-box,.alert-item,.table-card{background:#f8fafc;border:1px solid #eef2f7;padding:15px;border-radius:16px;margin-bottom:12px}.announce-box span,.pill{display:inline-block;background:#eef2ff;color:#4338ca;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;margin:6px 0}.admin-form{display:flex;flex-direction:column;gap:8px}.admin-form textarea{min-height:125px;resize:vertical}#map{width:100%;height:430px;border-radius:18px;overflow:hidden}.map-layout{display:grid;grid-template-columns:2fr 340px;gap:18px}.details-list{display:grid;gap:12px}.details-list div{padding:12px;border-radius:14px;background:#f8fafc;display:flex;justify-content:space-between;gap:14px}.data-table{width:100%;border-collapse:collapse;margin-top:12px}.data-table th,.data-table td{text-align:left;padding:13px;border-bottom:1px solid #eef2f7}.data-table th{color:#475569;font-size:13px;text-transform:uppercase}.status{padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800}.status.green{background:#dcfce7;color:#166534}.status.yellow{background:#fef3c7;color:#92400e}.status.red{background:#fee2e2;color:#991b1b}.timeline{display:grid;gap:14px;margin-top:14px}.timeline-item{display:flex;gap:12px;align-items:flex-start}.dot{width:18px;height:18px;border-radius:50%;background:#cbd5e1;margin-top:4px}.dot.done{background:#22c55e}.dot.active{background:#3b82f6}.chart-bars{height:220px;display:flex;align-items:end;gap:14px;padding-top:15px}.bar{flex:1;background:linear-gradient(180deg,#818cf8,#4f46e5);border-radius:12px 12px 0 0;min-height:30px;position:relative}.bar span{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%);font-size:12px;color:#64748b}@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.page-grid,.map-layout{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.top-actions{flex-wrap:wrap}}@media(max-width:768px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.main{padding:14px}.stats-grid,.box-row{grid-template-columns:1fr}.topbar h1{font-size:22px}#map{height:320px}.login-card{width:92%}}

/* --- Topbar & Navigation (moved from topbar.php) --- */
.top-actions{display:flex;align-items:center;gap:10px}
.top-date,.top-time{font-size:11px;color:#64748b;white-space:nowrap}
.notif-bell-wrap{position:relative}
.notif-bell{background:none;border:none;font-size:18px;color:#64748b;cursor:pointer;padding:6px 8px;border-radius:8px;position:relative;transition:.15s}
.notif-bell:hover{background:#f1f5f9;color:#2563eb}
.notif-badge{position:absolute;top:0;right:0;background:#dc2626;color:#fff;font-size:9px;font-weight:800;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;transform:translate(30%,-30%)}
.notif-dropdown{display:none;position:absolute;right:0;top:100%;margin-top:8px;width:340px;background:#fff;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.15);border:1px solid #e2e8f0;z-index:1000;overflow:hidden;animation:slideDown .2s ease}
.notif-dropdown.show{display:block}
.notif-drop-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #f1f5f9;font-size:13px}
.notif-drop-head a{font-size:11px;color:#2563eb;font-weight:600}
.notif-drop-list{max-height:320px;overflow-y:auto}
.notif-drop-item{padding:10px 16px;border-bottom:1px solid #f8fafc;cursor:pointer;transition:.1s;display:flex;gap:10px;align-items:flex-start;font-size:12px}
.notif-drop-item:hover{background:#f8fafc}
.notif-drop-item.unread{background:#eff6ff}
.notif-drop-item .n-icon{font-size:16px;flex-shrink:0;margin-top:1px}
.notif-drop-item .n-time{font-size:10px;color:#94a3b8;white-space:nowrap}
.notif-drop-empty{padding:20px;text-align:center;color:#94a3b8;font-size:12px}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.profile-dropdown{position:relative}
.profile-trigger{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:10px;transition:.15s}
.profile-trigger:hover{background:#f1f5f9}
.profile-menu{display:none;position:absolute;right:0;top:100%;margin-top:6px;background:white;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.12);border:1px solid #e2e8f0;min-width:200px;z-index:999;overflow:hidden;animation:slideDown .2s ease}
.profile-menu.show{display:block}
.profile-menu a{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:12px;color:#334155;text-decoration:none;font-weight:600;transition:.1s}
.profile-menu a:hover{background:#f1f5f9}
.profile-menu hr{margin:4px 0;border:none;border-top:1px solid #e2e8f0}
.avatar{width:36px;height:36px;border-radius:50%;background:#dbeafe;display:flex;align-items:center;justify-content:center;font-size:18px;overflow:hidden;flex-shrink:0}
.user-info strong{font-size:12px;color:#1e293b;display:block;line-height:1.2}
.user-info small{font-size:10px;color:#64748b}
