:root{--bg-base:#0f172a;--bg-surface:#1e293b;--bg-hover:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-primary:#6366f1;--accent-hover:#4f46e5;--border-color:#334155;--danger:#ef4444;--success:#10b981;--sidebar-width:260px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,sans-serif;line-height:1.5;overflow-x:hidden}h1,h2,h3{color:var(--text-primary);font-weight:600}a{color:var(--accent-primary);text-decoration:none}a:hover{color:var(--accent-hover)}.app-layout{min-height:100vh;display:flex;position:relative}.sidebar{width:var(--sidebar-width);background-color:var(--bg-surface);border-right:1px solid var(--border-color);z-index:50;flex-direction:column;transition:transform .3s;display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);letter-spacing:.05em;justify-content:space-between;align-items:center;height:64px;padding:0 1.5rem;font-size:1.25rem;font-weight:700;display:flex}.sidebar-nav{flex-direction:column;gap:.25rem;padding:1rem 0;display:flex}.nav-item{color:var(--text-secondary);align-items:center;gap:.75rem;padding:.75rem 1.5rem;transition:all .2s;display:flex}.nav-item:hover,.nav-item.active{background-color:var(--bg-hover);color:var(--text-primary)}.nav-item.active{border-right:3px solid var(--accent-primary)}.main-content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background-color:var(--bg-base);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex}.page-container{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.btn{background-color:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;transition:background-color .2s;display:flex}.btn:hover{background-color:var(--accent-hover)}.icon-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.mobile-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;background:#0009;display:none;position:fixed;inset:0}@media (width<=768px){.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-overlay.open{display:block}.topbar{padding:0 1rem}.page-container{padding:1rem}.hide-on-mobile{display:none!important}.data-row-details{flex-direction:column;gap:1.5rem;padding:1rem;display:flex}.data-row-header,.grid-label{grid-template-columns:1fr auto auto;gap:.5rem;padding:.75rem 1rem;font-size:.875rem}.grid-label{padding:0 1rem .5rem}.detail-section ul{word-break:break-all;padding-left:1rem}.detail-section p,.detail-section li{font-size:.875rem}.detail-section h4{font-size:.75rem}.badge{white-space:nowrap;padding:.2rem .5rem;font-size:.65rem}}@media (width>=769px){.mobile-menu-btn{display:none!important}}.login-wrapper{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;width:100%;max-width:400px;padding:2rem;box-shadow:0 10px 15px -3px #00000080}.login-header{text-align:center;margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;display:block}.form-error{color:var(--danger);text-align:center;margin-bottom:1rem;font-size:.875rem}.input-field{background-color:var(--bg-base);border:1px solid var(--border-color);width:100%;color:var(--text-primary);appearance:none;border-radius:6px;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}.input-field:focus{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary)}.input-field:disabled{opacity:.6;cursor:not-allowed;background-color:var(--bg-surface)}.input-field:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--bg-base) inset!important;-webkit-text-fill-color:var(--text-primary)!important}.input-field:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--bg-base) inset!important;-webkit-text-fill-color:var(--text-primary)!important}.input-field:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--bg-base) inset!important;-webkit-text-fill-color:var(--text-primary)!important}.input-field:-webkit-autofill:active{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--bg-base) inset!important;-webkit-text-fill-color:var(--text-primary)!important}.data-grid{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.data-row{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;transition:border-color .2s;overflow:hidden}.data-row:hover{border-color:var(--accent-hover)}.data-row-header{cursor:pointer;grid-template-columns:2fr 2fr 1fr 1fr;align-items:center;gap:1rem;padding:1rem 1.5rem;display:grid}.data-row-header>div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:2fr 2fr 1fr 1fr;gap:1rem;padding:0 1.5rem .5rem;font-size:.75rem;font-weight:600;display:grid}.badge{border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.pending{color:#fbbf24;background-color:#f59e0b1a;border:1px solid #f59e0b33}.badge.approved{color:#34d399;background-color:#10b9811a;border:1px solid #10b98133}.badge.denied{color:#f87171;background-color:#ef44441a;border:1px solid #ef444433}.data-row-details{border-top:1px solid var(--border-color);background-color:#0f172a4d;grid-template-columns:2fr 1fr;gap:1rem;padding:1.5rem;display:grid}.detail-section h4{color:var(--text-secondary);text-transform:uppercase;margin-bottom:.5rem;font-size:.875rem}.action-bar{border-top:1px solid var(--border-color);gap:1rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:.8s linear infinite spin}.data-row-header,.grid-label{grid-template-columns:3fr 1fr 1fr;align-items:center;gap:1rem;padding:1rem 1.5rem;display:grid}.grid-label{padding:0 1.5rem .5rem}
