:root{--bg:#f8f9fa;--panel:#fff;--surface:#fff;--text:#212529;--muted:#6c757d;--primary:#0d6efd;--primary-hover:#0b5ed7;--success:#198754;--warn:#ffc107;--danger:#dc3545;--card:#fff;--border:#dee2e6;--sidebar-bg:#343a40;--sidebar-text:#adb5bd;--sidebar-active:#0d6efd}*{box-sizing:border-box}body,html{height:100%;margin:0;padding:0}body{background:linear-gradient(135deg,#f5f7fa,#e8eaf6);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.admin-layout{display:flex;min-height:100vh}.sidebar{width:260px;background:linear-gradient(180deg,#667eea,#764ba2);color:#fff;padding:0;position:fixed;top:0;left:0;height:100vh;box-shadow:0 0 30px rgba(102,126,234,.3);overflow-y:auto;overflow-x:hidden;z-index:1000;transition:width .3s ease}.sidebar.collapsed{width:80px}.sidebar.collapsed .brand-text,.sidebar.collapsed .logout-btn span,.sidebar.collapsed .sidebar-nav a span,.sidebar.collapsed .user-details{opacity:0;width:0;overflow:hidden;white-space:nowrap}.sidebar-brand{padding:15px 15px 20px;border-bottom:1px solid hsla(0,0%,100%,.15);margin-bottom:20px;display:flex;flex-direction:column;align-items:center;gap:15px;position:relative}.sidebar:not(.collapsed) .sidebar-brand{align-items:flex-start}.toggle-btn{position:absolute;right:15px;top:15px;background:hsla(0,0%,100%,.2);border:none;width:32px;height:32px;border-radius:8px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.toggle-btn:hover{background:hsla(0,0%,100%,.35);transform:scale(1.1)}.sidebar.collapsed .toggle-btn{left:50%;transform:translateX(-50%);right:auto;top:15px}.sidebar.collapsed .toggle-btn:hover{transform:translateX(-50%) scale(1.1)}.sidebar.collapsed .sidebar-brand{padding-top:55px;align-items:center}.sidebar:not(.collapsed) .sidebar-brand .brand-logo{position:absolute;left:15px;top:60px}.sidebar:not(.collapsed) .sidebar-brand .brand-text{margin-left:65px;margin-top:45px}.brand-logo{width:50px;height:50px;background:hsla(0,0%,100%,.2);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 15px rgba(0,0,0,.1);flex-shrink:0}.brand-text{transition:opacity .3s ease,width .3s ease;overflow:hidden}.brand-text h2{margin:0;font-size:18px;font-weight:700;color:#fff;line-height:1.2;white-space:nowrap}.brand-subtitle{margin:2px 0 0;font-size:12px;color:hsla(0,0%,100%,.7);font-weight:500;white-space:nowrap}.sidebar-nav{list-style:none;padding:10px 12px;margin:0}.sidebar-nav li{margin:0 0 8px}.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:14px 16px;color:hsla(0,0%,100%,.85);text-decoration:none;transition:all .3s ease;border-radius:10px;font-weight:500;position:relative}.sidebar.collapsed .sidebar-nav a{justify-content:center;padding:14px 10px}.sidebar-nav a span{transition:opacity .3s ease,width .3s ease;white-space:nowrap}.sidebar-nav a:hover{background:hsla(0,0%,100%,.15);color:#fff;transform:translateX(4px)}.sidebar-nav a.active{background:hsla(0,0%,100%,.25);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(0,0,0,.15)}.sidebar-nav a.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:60%;background:#fff;border-radius:0 4px 4px 0}.sidebar-nav a i{width:20px;text-align:center;font-size:16px}.sidebar-footer{position:absolute;bottom:0;left:0;right:0;padding:20px;border-top:1px solid hsla(0,0%,100%,.15);background:rgba(0,0,0,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sidebar.collapsed .sidebar-footer{padding:15px 10px}.user-info{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:10px;background:hsla(0,0%,100%,.1);border-radius:10px;transition:all .3s ease}.sidebar.collapsed .user-info{justify-content:center;padding:10px;gap:0}.user-details{transition:opacity .3s ease,width .3s ease;overflow:hidden}.sidebar.collapsed .user-details{display:none}.user-avatar{width:45px;height:45px;min-width:45px;min-height:45px;border-radius:50%;background:hsla(0,0%,100%,.25);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px;border:2px solid hsla(0,0%,100%,.3);box-shadow:0 4px 12px rgba(0,0,0,.1);flex-shrink:0}.user-details{flex:1 1}.user-name{font-size:14px;font-weight:600;color:#fff;margin:0 0 4px}.user-role{font-size:11px;color:hsla(0,0%,100%,.7);margin:0;gap:4px;text-transform:uppercase;letter-spacing:.5px}.logout-btn,.user-role{display:flex;align-items:center}.logout-btn{width:100%;padding:12px 16px;background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.2);border-radius:10px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease;justify-content:center;gap:8px}.logout-btn i{flex-shrink:0;font-size:16px}.logout-btn span{transition:opacity .3s ease,width .3s ease;white-space:nowrap}.sidebar.collapsed .logout-btn{padding:12px;gap:0}.logout-btn:hover{background:hsla(0,0%,100%,.25);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}.main-content{margin-left:260px;flex:1 1;padding:30px;min-height:100vh;transition:margin-left .3s ease}.main-content.expanded{margin-left:80px}@media (max-width:768px){.sidebar,.sidebar.collapsed{width:70px}.brand-text,.sidebar-brand span,.sidebar-footer .user-details,.sidebar-nav a span,.toggle-btn{display:none}.main-content,.main-content.expanded{margin-left:70px}}.stat-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px rgba(102,126,234,.08);transition:transform .3s ease,box-shadow .3s ease;border:1px solid rgba(102,126,234,.1)}.stat-card:hover{transform:translateY(-6px);box-shadow:0 12px 24px rgba(102,126,234,.15)}.stat-card .card-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:12px}.stat-card.primary .card-icon{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.stat-card.success .card-icon{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.stat-card.info .card-icon{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.stat-card.warning .card-icon{background:linear-gradient(135deg,#fa709a,#fee140);color:#fff}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;border:none;cursor:pointer;font-weight:600;transition:all .3s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.btn-primary,.btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px rgba(102,126,234,.3)}.btn-primary:hover,.btn.primary:hover{box-shadow:0 6px 16px rgba(102,126,234,.4)}.btn-success,.btn.success{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;box-shadow:0 4px 12px rgba(72,187,120,.3)}.btn-warning,.btn.warn{background:linear-gradient(135deg,#ed8936,#dd6b20);color:#fff;box-shadow:0 4px 12px rgba(237,137,54,.3)}.btn-danger,.btn.danger{background:linear-gradient(135deg,#f56565,#e53e3e);color:#fff;box-shadow:0 4px 12px hsla(0,88%,68%,.3)}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:12px;text-align:left}.table tbody tr{border-bottom:1px solid var(--border)}.table tbody tr:hover{background:hsla(0,0%,100%,.02)}.badge{padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border)}.badge.green{background:rgba(34,197,94,.12);color:#86efac}.badge.red{background:rgba(239,68,68,.12);color:#fecaca}.badge.amber{background:rgba(245,158,11,.12);color:#fde68a}.badge.indigo{background:rgba(99,102,241,.12);color:#c7d2fe}.alert{padding:12px 14px;border-radius:10px;border:1px solid var(--border)}.alert.error{background:rgba(239,68,68,.08);color:#fecaca;border-color:#7f1d1d}.header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.subtle{color:var(--muted)}.toast-container{bottom:20px;z-index:60}.toast{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:240px;box-shadow:0 10px 20px rgba(0,0,0,.35)}.toast-success{border-color:#0f7a37;background:#0f7a37}.toast-error{border-color:#7f1d1d;background:#991b1b}.toast-info{border-color:#1e3a8a;background:#1e40af}.toast-close{background:transparent;color:#fff;opacity:.85}.cursor-pointer{cursor:pointer}.table>:not(caption)>*>*{padding:.75rem 1rem}.table-hover tbody tr:hover{background-color:rgba(59,130,246,.05)}.card{border:1px solid rgba(0,0,0,.05);transition:box-shadow .2s ease}.card:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.08)}.badge{font-weight:500;padding:.35em .65em}.form-label{margin-bottom:.5rem;font-size:.9rem}.btn-group .btn{padding:.25rem .5rem}.btn-group .btn i{font-size:.875rem}.page-link{color:#3b82f6;border:1px solid #dee2e6}.page-link:hover{color:#2563eb;background-color:#f8f9fa}.page-item.active .page-link{background-color:#3b82f6;border-color:#3b82f6}.form-control:focus,.form-select:focus{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(59,130,246,.25)}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{animation:fadeIn .3s ease}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:400px}.toast{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);border-left:4px solid;font-size:14px;font-weight:500;animation:slideInRight .3s ease-out;min-width:300px}.toast-success{border-left-color:#198754;background:linear-gradient(90deg,#d4edda 0,#fff 15%)}.toast-error{border-left-color:#dc3545;background:linear-gradient(90deg,#f8d7da 0,#fff 15%)}.toast-info{border-left-color:#0dcaf0;background:linear-gradient(90deg,#cff4fc 0,#fff 15%)}.toast span{flex:1 1;color:#212529}.toast-close{background:none;border:none;font-size:20px;font-weight:700;color:#6c757d;cursor:pointer;padding:0 0 0 12px;line-height:1;transition:color .2s}.toast-close:hover{color:#212529}@keyframes slideInRight{0%{transform:translateX(400px);opacity:0}to{transform:translateX(0);opacity:1}}@media (max-width:768px){.toast-container{left:20px;right:20px;max-width:none}.toast{min-width:auto}}.table-gradient-header{background:linear-gradient(135deg,#667eea,#764ba2)!important}.table-gradient-header th{color:#fff!important;font-weight:600!important;border-bottom:1px solid hsla(0,0%,100%,.2)!important;padding:12px!important}