:root{--bg:#0f172a;--card:#111827;--muted:#9ca3af;--text:#e5e7eb;--primary:#22c55e;--danger:#ef4444;--warning:#f59e0b;--accent:#3b82f6}*{box-sizing:border-box}body{margin:0;background:#0b1220;font-family:Inter,system-ui,Segoe UI,Roboto,Ubuntu,sans-serif;color:var(--text)}a{color:inherit;text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:260px;background:#0b1220;border-right:1px solid #1f2937;padding:16px;position:sticky;top:0;height:100vh}.brand{font-weight:700;margin-bottom:24px;color:var(--primary)}.nav .nav-link{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;color:#cbd5e1;background:transparent;border:1px solid transparent;width:100%;text-align:left}.nav .nav-link.active,.nav .nav-link:hover{background:#121a2b;color:#fff}.header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #1f2937;background:#0b1220;position:sticky;top:0;z-index:10}.content{flex:1;display:flex;flex-direction:column}.container{padding:20px}.card{background:#0b1220;border:1px solid #1f2937;border-radius:12px;padding:16px;margin-bottom:16px}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,1fr)}.btn{background:#1f2937;color:#e5e7eb;border:1px solid #374151;padding:8px 12px;border-radius:8px;cursor:pointer}.btn.primary{background:var(--primary);border-color:var(--primary);color:#0b1220}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.warning{background:var(--warning);border-color:var(--warning);color:#0b1220}.input,.select{background:#0b1220;color:#e5e7eb;border:1px solid #374151;border-radius:8px;padding:8px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid #1f2937}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.row{display:flex;gap:8px;align-items:center}.menu-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px}.right{margin-left:auto}.label{font-size:12px;color:#9ca3af}.field{display:flex;flex-direction:column;gap:6px}.modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.modal .panel{background:#0b1220;border:1px solid #1f2937;border-radius:12px;padding:16px;min-width:320px;max-width:720px;width:90%;max-height:90vh;overflow:auto;-webkit-overflow-scrolling:touch}.backdrop{position:fixed;inset:0;background:#00000080;z-index:90;display:none}.backdrop.show{display:block}@media(max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr)}.sidebar{position:fixed;left:-280px;top:0;bottom:0;height:100vh;z-index:100;transition:left .2s ease}.sidebar.open{left:0}.header .menu-btn{display:inline-flex}}@media(max-width:640px){.container{padding:12px}.filters{flex-direction:column}.filters .input,.filters .select,.filters .btn{width:100%}.row{flex-wrap:wrap}.table th,.table td{padding:8px;font-size:13px}.grid{display:flex;flex-direction:column;gap:12px}.modal .panel{width:96%;max-width:96%}}.login-wrap{display:flex;min-height:100vh;align-items:center;justify-content:center;background:linear-gradient(135deg,#0b122099,#11182799),url(/images/login-bg.jpg) center/cover no-repeat}.login-left{display:none}.brand-box{max-width:460px;text-align:center;padding:16px}.brand-logo{width:140px;height:auto;opacity:.95;filter:drop-shadow(0 6px 18px rgba(0,0,0,.35));margin-bottom:12px}.brand-title{margin:0;font-size:34px;letter-spacing:2px;color:var(--primary)}.brand-subtitle{margin:8px 0 0;color:#9ca3af}.login-right{flex:1;display:flex;align-items:center;justify-content:center;padding:32px}.login-card{max-width:640px;width:100%;border-radius:16px;box-shadow:0 10px 30px #00000059,inset 0 1px #ffffff05;padding:28px;background:#0b12208c;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-height:560px;display:flex;flex-direction:column;justify-content:center;gap:16px}.login-header{text-align:center;margin-bottom:12px}.login-title{margin:0}.login-subtitle{color:#9ca3af;font-size:14px;margin-top:4px}.btn.large{padding:12px 14px;font-weight:600}.login-card .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.login-card .btn.primary:hover{filter:brightness(1.08)}@media(max-width:1024px){.login-left{display:none}.login-right{flex:1;padding:20px}.login-card{max-width:440px}.login-wrap{background:linear-gradient(135deg,#0b122099,#11182799),url(/images/login-bg.jpg) center/cover no-repeat}}
