:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #eff6ff;--secondary: #475569;--secondary-hover: #334155;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--bg-app: #f1f5f9;--bg-card: #ffffff;--bg-sidebar: #0f172a;--text-main: #1e293b;--text-muted: #64748b;--text-light: #f8fafc;--border-color: #e2e8f0;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none;font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.container{max-width:1280px;margin:0 auto;padding:0 1rem}.card{background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);padding:1.5rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out forwards}.animate-slide-up{animation:slideInUp var(--transition-normal) ease-out forwards}.page-transition{animation:fadeIn .4s ease-out}.app-layout{display:flex;height:100vh;width:100%;overflow:hidden;background-color:var(--bg-app)}.sidebar{width:260px;background-color:var(--bg-sidebar);color:var(--text-light);display:flex;flex-direction:column;flex-shrink:0;transition:width var(--transition-normal)}.sidebar-header{height:64px;display:flex;align-items:center;padding:0 1.5rem;font-weight:700;font-size:1.25rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-nav{flex:1;padding:1rem .5rem;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:#94a3b8;text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-bottom:.25rem}.nav-item:hover{background-color:#ffffff0d;color:#fff}.nav-item.active{background-color:var(--primary);color:#fff;font-weight:500}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.top-header{height:64px;background-color:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;flex-shrink:0}.content-area{flex:1;overflow-y:auto;padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast);font-size:.875rem;line-height:1.25rem;padding:.5rem 1rem;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);box-shadow:0 4px 12px #2563eb4d}.btn-secondary{background-color:#fff;color:var(--text-main);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-app)}.btn-outline{background-color:transparent;border:1px solid var(--primary);color:var(--primary)}.btn-outline:hover:not(:disabled){background-color:var(--primary-light)}.btn-ghost{background-color:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background-color:#0000000d;color:var(--text-main)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-sm{padding:.25rem .75rem;font-size:.75rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.btn-icon{padding:.5rem;aspect-ratio:1}.login-container{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(-45deg,#ee7752,#e73c7e,#23a6d5,#23d5ab);background-size:400% 400%;animation:gradientBG 15s ease infinite;position:relative;overflow:hidden}@keyframes gradientBG{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.login-card{background:#ffffffe6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;padding:3rem;width:100%;max-width:420px;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(255,255,255,.5);position:relative;z-index:10;transform:translateY(0);transition:transform .3s ease,box-shadow .3s ease}.login-card:hover{transform:translateY(-5px);box-shadow:0 30px 60px -15px #0000004d}.login-header{text-align:center;margin-bottom:2.5rem}.logo-container{width:64px;height:64px;background:linear-gradient(135deg,#4f46e5,#3b82f6);border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;color:#fff;font-size:1.75rem;font-weight:800;box-shadow:0 10px 25px -5px #3b82f680}.login-header h1{font-size:2rem;font-weight:700;color:#1e293b;margin-bottom:.5rem;letter-spacing:-.02em}.login-header p{color:#64748b;font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.input-group{position:relative}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:1rem;color:#94a3b8;z-index:10}.modern-input{width:100%;padding:.875rem 1rem .875rem 2.75rem;border:2px solid #e2e8f0;border-radius:12px;background:#f8fafc;font-size:.95rem;color:#1e293b;transition:all .2s ease;outline:none}.modern-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a}.modern-input::placeholder{color:#cbd5e1}.login-btn{background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff;border:none;padding:1rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 10px 20px -10px #3b82f680}.login-btn:hover{transform:translateY(-2px);box-shadow:0 15px 30px -10px #3b82f699;filter:brightness(1.1)}.login-btn:active{transform:translateY(0)}.login-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #f1f5f9;text-align:center}.demo-credentials{font-size:.8rem;color:#94a3b8;background:#f8fafc;padding:1rem;border-radius:12px;display:inline-block;border:1px solid #e2e8f0}.shape{position:absolute;filter:blur(50px);z-index:1;opacity:.6}.shape-1{top:-10%;left:-10%;width:300px;height:300px;background:#a855f7;border-radius:50%;animation:float 20s infinite}.shape-2{bottom:-10%;right:-5%;width:250px;height:250px;background:#3b82f6;border-radius:50%;animation:float 25s infinite reverse}@keyframes float{0%{transform:translate(0)}50%{transform:translate(30px,50px)}to{transform:translate(0)}}.dashboard-container{display:flex;flex-direction:column;gap:2rem;font-family:Inter,sans-serif;color:#475569}.page-title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:.5rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.kpi-card{border-radius:8px;color:#fff;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a;display:flex;flex-direction:column}.kpi-main{padding:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;flex:1}.kpi-label{font-size:.9rem;font-weight:500;opacity:.9;display:block;margin-bottom:.5rem}.kpi-value{font-size:2rem;font-weight:700;line-height:1}.kpi-icon{opacity:.8}.kpi-footer{padding:.75rem 1.5rem;background:#0000001a;font-size:.8rem;display:flex;align-items:center;gap:.5rem}.footer-text{opacity:.8}.kpi-card.blue{background-color:#3b82f6}.kpi-card.orange{background-color:#f97316}.kpi-card.grey{background-color:#64748b}.kpi-card.yellow{background-color:#fbbf24;color:#fff}.badge-up{color:#dcfce7;font-weight:700;display:flex;align-items:center;gap:2px}.badge-down{color:#fee2e2;font-weight:700;display:flex;align-items:center;gap:2px}.charts-grid{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:1.5rem;margin-top:1rem}@media(max-width:1280px){.charts-grid{grid-template-columns:1fr 1fr}.chart-card:last-child{grid-column:span 2}}@media(max-width:1024px){.charts-grid{grid-template-columns:1fr}.chart-card:last-child{grid-column:span 1}}.alert-card{background:#fff;border-radius:8px;padding:1rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 6px -1px #0000000d;border-left:4px solid transparent}.alert-critical{border-left-color:#ef4444;background:#fef2f2}.alert-warning{border-left-color:#f59e0b;background:#fffbeb}.chart-card{background:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000000d;overflow:hidden;display:flex;flex-direction:column;border:1px solid #e2e8f0}.chart-header{padding:1rem 1.5rem;color:#fff;font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.05em}.chart-header.blue{background-color:#60a5fa}.chart-header.green{background-color:#10b981}.plain-header{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;font-weight:600;color:#475569}.mini-stats{display:flex;gap:2rem;justify-content:center;margin-bottom:1rem;padding:1rem;background:#f8fafc;border-radius:6px;margin:1rem}.mini-stat{display:flex;flex-direction:column;align-items:center}.mini-stat span{font-size:.8rem;color:#64748b}.mini-stat strong{font-size:1.2rem;color:#0f172a}.text-orange{color:#f97316!important}.chart-body{padding:1rem;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.custom-legend{margin-top:1rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;width:100%}.legend-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#475569}.dot{width:10px;height:10px;border-radius:50%}.dashboard-header{background:linear-gradient(120deg,#fff,#f1f5f9);padding:2.5rem;border-radius:2rem;border:none;box-shadow:0 10px 30px -10px #0000000d;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden}.dashboard-header:before{content:"";position:absolute;top:-50%;left:-10%;width:200px;height:200px;background:radial-gradient(circle,rgba(59,130,246,.08) 0%,transparent 70%);border-radius:50%;pointer-events:none}.dashboard-title h1{font-size:2.2rem;font-weight:800;color:#0f172a;margin-bottom:.5rem;letter-spacing:-.04em}.dashboard-title p{color:#64748b;font-size:1.05rem;font-weight:500}.stat-card{background:#fff;border-radius:1.75rem;padding:1.75rem;border:none;box-shadow:0 10px 25px -5px #0000000a,0 8px 10px -6px #00000003;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:flex;justify-content:space-between;align-items:flex-start;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px -5px #00000014}.stat-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#fff0 40%,#fffc);opacity:0;transition:opacity .4s ease;z-index:0}.stat-card:after{display:none}.stat-card.blue{background:linear-gradient(145deg,#fff,#f0f7ff)}.stat-card.purple{background:linear-gradient(145deg,#fff,#f7f5ff)}.stat-card.amber{background:linear-gradient(145deg,#fff,#fffdf0)}.stat-card.emerald{background:linear-gradient(145deg,#fff,#f0fdf7)}.stat-card.orange{background:linear-gradient(145deg,#fff,#fff5eb)}.stat-card.indigo{background:linear-gradient(145deg,#fff,#f0f3ff)}.stat-content h3{font-size:2.5rem;font-weight:800;margin-top:.5rem;color:#1e293b;letter-spacing:-.05em;line-height:1}.stat-content p{font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem}.stat-icon{width:60px;height:60px;border-radius:1.25rem;display:flex;align-items:center;justify-content:center;font-size:1.6rem;transition:transform .4s cubic-bezier(.34,1.56,.64,1);z-index:1;box-shadow:0 4px 6px -1px #0000000d}.stat-card:hover .stat-icon{transform:scale(1.15) rotate(8deg)}.stat-icon.blue{background:#fff;color:#3b82f6}.stat-icon.purple{background:#fff;color:#8b5cf6}.stat-icon.amber{background:#fff;color:#f59e0b}.stat-icon.emerald{background:#fff;color:#10b981}.stat-icon.orange{background:#fff;color:#f97316}.stat-icon.indigo{background:#fff;color:#6366f1}.section-card{background:#fff;border-radius:2rem;border:none;box-shadow:0 10px 30px -10px #0000000a;display:flex;flex-direction:column;overflow:hidden;height:100%}.section-header{padding:2rem;border-bottom:1px solid #f8fafc;display:flex;justify-content:space-between;align-items:center;background:transparent}.section-title{font-size:1.25rem;font-weight:700;display:flex;align-items:center;gap:.75rem;color:#334155}.section-content{padding:2rem;flex:1}.requests-list{display:flex;flex-direction:column;gap:1rem}.request-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border-radius:1.5rem;transition:all .2s ease;background:#f8fafc;border:1px solid transparent}.request-item:hover{background:#fff;box-shadow:0 8px 20px -5px #0000000f;transform:scale(1.01)}.req-info h4{font-size:1.05rem;font-weight:700;color:#1e293b;margin-bottom:.2rem}.req-info span{font-size:.9rem;color:#64748b}.status-badge{padding:.5rem 1.25rem;border-radius:2rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.status-badge.approved{background:#d1fae5;color:#065f46}.status-badge.rejected{background:#fee2e2;color:#991b1b}.status-badge.pending{background:#fef3c7;color:#92400e}.chart-container{height:350px;width:100%;margin-top:1rem}.chart-legend{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}.legend-item{font-size:.85rem;color:#475569;background:#f1f5f9;padding:.5rem 1rem;border-radius:9999px;font-weight:600;transition:background .2s}.legend-item:hover{background:#e2e8f0}.dashboard-header{background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:2rem;border-radius:1.5rem;border:1px solid rgba(255,255,255,.5);box-shadow:0 4px 6px -1px #00000005,0 2px 4px -1px #00000005,0 0 0 1px #00000005;display:flex;justify-content:space-between;align-items:center}.dashboard-title h1{font-size:2rem;font-weight:800;color:#1e293b;margin-bottom:.5rem;letter-spacing:-.03em;background:linear-gradient(to right,#1e293b,#475569);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.dashboard-title p{color:#64748b;font-size:1rem;font-weight:500}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.stat-card{background:#fff;border-radius:1.25rem;padding:1.75rem;border:1px solid #f1f5f9;box-shadow:0 2px 10px #00000008;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;justify-content:space-between;align-items:flex-start;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 20px 25px -5px #0000000d,0 10px 10px -5px #00000005;border-color:#0000}.stat-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#fff0,#ffffff80);z-index:0;opacity:0;transition:opacity .3s ease}.stat-card:hover:before{opacity:1}.stat-card:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:4px;opacity:.7}.stat-card.blue:after{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.stat-card.purple:after{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.stat-card.amber:after{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.stat-card.emerald:after{background:linear-gradient(90deg,#10b981,#34d399)}.stat-card.orange:after{background:linear-gradient(90deg,#f97316,#fb923c)}.stat-card.indigo:after{background:linear-gradient(90deg,#6366f1,#818cf8)}.stat-content{z-index:1}.stat-content h3{font-size:2.25rem;font-weight:800;margin-top:.75rem;color:#0f172a;letter-spacing:-.04em}.stat-content p{font-size:.75rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em}.stat-icon{width:56px;height:56px;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:transform .3s ease;z-index:1;box-shadow:inset 0 2px 4px #ffffff80}.stat-card:hover .stat-icon{transform:rotate(6deg) scale(1.1)}.stat-icon.blue{background:#eff6ff;color:#2563eb}.stat-icon.purple{background:#f5f3ff;color:#7c3aed}.stat-icon.amber{background:#fffbeb;color:#d97706}.stat-icon.emerald{background:#ecfdf5;color:#059669}.stat-icon.orange{background:#fff7ed;color:#ea580c}.stat-icon.indigo{background:#eef2ff;color:#4f46e5}.dashboard-main{display:grid;grid-template-columns:2fr 1fr;gap:2rem}.section-card{background:#fff;border-radius:1.5rem;border:1px solid #f1f5f9;box-shadow:0 4px 6px -1px #00000005;display:flex;flex-direction:column;overflow:hidden;height:100%}.section-header{padding:1.5rem 1.75rem;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;align-items:center;background:#fafafa}.section-title{font-size:1.15rem;font-weight:700;display:flex;align-items:center;gap:.75rem;color:#334155}.requests-list{display:flex;flex-direction:column;gap:.5rem}.request-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border:1px solid transparent;border-radius:1rem;transition:all .2s ease;background:#fff}.request-item:hover{background:#f8fafc;border-color:#e2e8f0;transform:translate(4px)}.req-info h4{font-size:1rem;font-weight:700;color:#1e293b;margin-bottom:.2rem}.req-info span{font-size:.85rem;color:#64748b;display:flex;gap:.5rem}.req-date{font-size:.85rem;color:#94a3b8;font-weight:500}.status-badge{padding:.35rem 1rem;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 2px 4px #0000000d}.status-badge.approved{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.status-badge.rejected{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.status-badge.pending{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.chart-container{height:320px;width:100%;margin-top:1rem;position:relative}.chart-legend{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:2rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#475569;background:#f1f5f9;padding:.25rem .75rem;border-radius:9999px;font-weight:600}.legend-dot{width:8px;height:8px;border-radius:50%}.dashboard-header{background:linear-gradient(135deg,var(--bg-card) 0%,#f8fafc 100%);padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center}.dashboard-title h1{font-size:1.8rem;color:var(--text-main);margin-bottom:.25rem;letter-spacing:-.02em}.dashboard-title p{color:var(--text-muted);font-size:.95rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;display:flex;justify-content:space-between;align-items:flex-start;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.stat-card:after{content:"";position:absolute;top:0;left:0;width:100%;height:4px}.stat-card.blue:after{background:#3b82f6}.stat-card.purple:after{background:#8b5cf6}.stat-card.amber:after{background:#f59e0b}.stat-card.emerald:after{background:#10b981}.stat-content h3{font-size:2rem;font-weight:700;margin-top:.5rem;color:var(--text-main)}.stat-content p{font-size:.85rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-icon.blue{background:#eff6ff;color:#3b82f6}.stat-icon.purple{background:#f5f3ff;color:#8b5cf6}.stat-icon.amber{background:#fffbeb;color:#f59e0b}.stat-icon.emerald{background:#ecfdf5;color:#10b981}.stat-card.orange:after{background:#f97316}.stat-icon.orange{background:#fff7ed;color:#f97316}.stat-card.indigo:after{background:#6366f1}.stat-icon.indigo{background:#eef2ff;color:#6366f1}.dashboard-main{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}@media(max-width:1024px){.dashboard-main{grid-template-columns:1fr}}.section-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.section-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.section-title{font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.5rem;color:var(--text-main)}.section-content{padding:1.5rem;flex:1}.requests-list{display:flex;flex-direction:column}.request-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border-color);transition:background-color .2s}.request-item:last-child{border-bottom:none}.request-item:hover{background-color:#f8fafc;margin:0 -1rem;padding:1rem;border-radius:var(--radius-sm)}.req-info h4{font-size:.95rem;font-weight:600;color:var(--text-main)}.req-info span{font-size:.85rem;color:var(--text-muted)}.req-meta{display:flex;align-items:center;gap:1rem}.req-date{font-size:.85rem;color:var(--text-muted)}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.approved{background:#ecfdf5;color:#047857}.status-badge.rejected{background:#fef2f2;color:#b91c1c}.status-badge.pending{background:#fffbeb;color:#b45309}.chart-container{height:300px;width:100%;margin-top:1rem}.chart-legend{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted)}.legend-dot{width:10px;height:10px;border-radius:50%}.card{background-color:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--border-color)}.card-title{font-size:1.125rem;font-weight:600;color:var(--text-main);line-height:normal}.card-description{font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.card-content{padding:1.5rem}.card-footer{padding:1rem 1.5rem;background-color:#f8fafc;border-top:1px solid var(--border-color);display:flex;align-items:center;gap:1rem}.input-wrapper{display:flex;flex-direction:column;gap:.375rem;width:100%}.input-label{font-size:.875rem;font-weight:500;color:var(--text-main)}.input-container{position:relative;display:flex;align-items:center}.input-field{width:100%;padding:.625rem .875rem;font-size:.875rem;line-height:1.25rem;color:var(--text-main);background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.input-field:disabled{background-color:var(--bg-app);cursor:not-allowed;opacity:.7}.input-field.has-icon{padding-left:2.5rem}.input-icon{position:absolute;left:.75rem;color:var(--text-muted);pointer-events:none}.input-error{font-size:.75rem;color:var(--danger)}.table-container{width:100%;overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-card)}.table{width:100%;border-collapse:collapse;font-size:.875rem;text-align:left}.table th{padding:.75rem 1rem;font-weight:600;color:var(--text-muted);background-color:#f8fafc;border-bottom:1px solid var(--border-color);white-space:nowrap}.table td{padding:.75rem 1rem;color:var(--text-main);border-bottom:1px solid var(--border-color);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background-color:#f8fafc}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1;white-space:nowrap}.badge-default{background-color:#e2e8f0;color:#475569}.badge-success{background-color:#dcfce7;color:#166534}.badge-warning{background-color:#fef3c7;color:#92400e}.badge-danger{background-color:#fee2e2;color:#b91c1c}.badge-info{background-color:#dbeafe;color:#1e40af}.badge-outline{border:1px solid currentColor;background-color:transparent}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:scaleIn .2s ease-out;border:1px solid var(--border-color)}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:1.125rem;font-weight:600;color:var(--text-main)}.modal-close{color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm);transition:all .2s}.modal-close:hover{background-color:var(--bg-app);color:var(--text-main)}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;background-color:#f8fafc;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.75rem}.modal-sm{max-width:400px}.modal-lg{max-width:800px}.modal-xl{max-width:1100px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
