@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#151c2c;--bg-card-hover:#1a2236;--bg-sidebar:#0d1220;--bg-input:#1a2236;--bg-overlay:#0009;--text-primary:#e8ecf4;--text-secondary:#8892a4;--text-muted:#5c6578;--text-heading:#fff;--accent-blue:#3b82f6;--accent-blue-light:#60a5fa;--accent-blue-dim:#3b82f626;--accent-green:#22c55e;--accent-green-dim:#22c55e26;--accent-red:#ef4444;--accent-red-dim:#ef444426;--accent-orange:#f59e0b;--accent-orange-dim:#f59e0b26;--accent-purple:#a855f7;--accent-purple-dim:#a855f726;--accent-cyan:#06b6d4;--accent-cyan-dim:#06b6d426;--accent-pink:#ec4899;--accent-teal:#14b8a6;--border-color:#1e293b;--border-light:#2a3548;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 32px #0006;--shadow-glow-blue:0 0 20px #3b82f626;--sidebar-width:260px;--sidebar-collapsed:72px;--topbar-height:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}a{color:var(--accent-blue-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-blue)}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}input,select,textarea{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:10px 14px;font-family:inherit;font-size:.9rem}input:focus,select:focus,textarea:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-dim);outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);padding:20px}.card:hover{border-color:var(--border-light);box-shadow:var(--shadow-md)}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;align-items:center;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-pending{background:var(--accent-orange-dim);color:var(--accent-orange)}.badge-approved,.badge-valid{background:var(--accent-green-dim);color:var(--accent-green)}.badge-rejected{background:var(--accent-red-dim);color:var(--accent-red)}.badge-info{background:var(--accent-blue-dim);color:var(--accent-blue)}.badge-darurat{background:var(--accent-red-dim);color:var(--accent-red)}.badge-kegiatan{background:var(--accent-purple-dim);color:var(--accent-purple)}.badge-keamanan{background:var(--accent-red-dim);color:var(--accent-red)}.badge-fasilitas{background:var(--accent-cyan-dim);color:var(--accent-cyan)}.badge-sampah{background:var(--accent-orange-dim);color:var(--accent-orange)}.badge-baru{background:var(--accent-blue-dim);color:var(--accent-blue)}.badge-proses{background:var(--accent-orange-dim);color:var(--accent-orange)}.badge-selesai,.badge-kesehatan{background:var(--accent-green-dim);color:var(--accent-green)}.badge-wajib{background:var(--accent-red-dim);color:var(--accent-red)}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent-blue);color:#fff}.btn-primary:hover{box-shadow:var(--shadow-glow-blue);background:#2563eb}.btn-outline{border:1px solid var(--border-light);color:var(--text-secondary);background:0 0}.btn-outline:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:5px 12px;font-size:.78rem}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);border-bottom:1px solid var(--border-color);padding:10px 12px;font-size:.7rem;font-weight:600}.data-table td{color:var(--text-secondary);border-bottom:1px solid var(--border-color);padding:12px;font-size:.85rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-card-hover)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:.4s forwards fadeIn}.animate-fade-in-up{animation:.5s forwards fadeInUp}.animate-slide-in{animation:.4s forwards slideInLeft}.delay-1{opacity:0;animation-delay:50ms}.delay-2{opacity:0;animation-delay:.1s}.delay-3{opacity:0;animation-delay:.15s}.delay-4{opacity:0;animation-delay:.2s}.delay-5{opacity:0;animation-delay:.25s}.delay-6{opacity:0;animation-delay:.3s}.delay-7{opacity:0;animation-delay:.35s}.delay-8{opacity:0;animation-delay:.4s}
