@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--primary-50:#eef2ff;--primary-100:#e0e7ff;--primary-200:#c7d2fe;--primary-300:#a5b4fc;--primary-400:#818cf8;--primary-500:#6366f1;--primary-600:#4f46e5;--primary-700:#4338ca;--primary-800:#3730a3;--primary-900:#312e81;--accent-50:#ecfdf5;--accent-100:#d1fae5;--accent-200:#a7f3d0;--accent-300:#6ee7b7;--accent-400:#34d399;--accent-500:#10b981;--accent-600:#059669;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-400:#fbbf24;--warning-500:#f59e0b;--warning-600:#d97706;--danger-50:#fff1f2;--danger-100:#ffe4e6;--danger-400:#fb7185;--danger-500:#f43f5e;--danger-600:#e11d48;--info-50:#f0f9ff;--info-100:#e0f2fe;--info-400:#38bdf8;--info-500:#0ea5e9;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#020617;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 6px -1px rgba(0,0,0,.08),0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -4px rgba(0,0,0,.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.08),0 8px 10px -6px rgba(0,0,0,.04);--shadow-glow:0 0 20px rgba(99,102,241,.15);--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:64px;--content-max-width:1400px;--z-sidebar:40;--z-header:50;--z-modal-backdrop:60;--z-modal:70;--z-toast:80;--z-tooltip:90}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--slate-800);background-color:var(--slate-50);line-height:1.6;min-height:100vh}a{color:var(--primary-600);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-700)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--slate-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--slate-400)}.auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-900) 0,var(--primary-700) 50%,var(--primary-500) 100%);padding:var(--space-4);position:relative;overflow:hidden}.auth-layout:before{width:600px;height:600px;background:hsla(0,0%,100%,.03);top:-200px;right:-200px}.auth-layout:after,.auth-layout:before{content:"";position:absolute;border-radius:50%}.auth-layout:after{width:400px;height:400px;background:hsla(0,0%,100%,.02);bottom:-100px;left:-100px}.auth-card{background:#fff;border-radius:var(--radius-2xl);padding:var(--space-10);width:100%;max-width:440px;box-shadow:var(--shadow-xl),0 0 60px rgba(0,0,0,.15);position:relative;z-index:1;animation:fadeInUp .5s ease}.auth-logo{text-align:center;margin-bottom:var(--space-8)}.auth-logo h1{font-size:var(--font-size-2xl);font-weight:800;background:linear-gradient(135deg,var(--primary-600),var(--primary-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.auth-logo p{font-size:var(--font-size-sm);color:var(--slate-500);margin-top:var(--space-1)}.shell{display:flex;min-height:100vh}.shell-content{flex:1 1;margin-left:var(--sidebar-width);transition:margin-left var(--transition-slow);min-width:0;overflow-x:hidden}.shell-content.collapsed{margin-left:var(--sidebar-collapsed)}.shell-main{padding:var(--space-6);padding-top:calc(var(--header-height) + var(--space-6));max-width:var(--content-max-width);margin:0 auto}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:linear-gradient(180deg,var(--slate-900) 0,var(--slate-800) 100%);color:#fff;z-index:var(--z-sidebar);transition:width var(--transition-slow);display:flex;flex-direction:column;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-brand{padding:var(--space-5) var(--space-5);display:flex;align-items:center;gap:var(--space-3);border-bottom:1px solid hsla(0,0%,100%,.08);min-height:var(--header-height)}.sidebar-brand-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--primary-500),var(--primary-400));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--font-size-lg);flex-shrink:0}.sidebar-brand-text{overflow:hidden;white-space:nowrap;transition:opacity var(--transition-base)}.sidebar.collapsed .sidebar-brand-text{opacity:0;width:0}.sidebar-brand-text h2{font-size:var(--font-size-base);font-weight:700;letter-spacing:-.3px}.sidebar-brand-text span{font-size:var(--font-size-xs);color:var(--slate-400)}.sidebar-nav{flex:1 1;padding:var(--space-4) var(--space-3);overflow-y:auto}.sidebar-section{margin-bottom:var(--space-6)}.sidebar-section-title{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--slate-500);padding:0 var(--space-3);margin-bottom:var(--space-2);font-weight:600}.sidebar.collapsed .sidebar-section-title{opacity:0}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--slate-400);font-size:var(--font-size-sm);font-weight:500;transition:all var(--transition-fast);cursor:pointer;text-decoration:none;margin-bottom:2px;white-space:nowrap;overflow:hidden}button.sidebar-link{background:transparent;border:none;width:100%;text-align:left;font-family:inherit}.sidebar-link:hover{color:#fff;background:hsla(0,0%,100%,.06)}.sidebar-link.active{color:#fff;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));box-shadow:0 2px 8px rgba(79,70,229,.3)}.sidebar-link-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.sidebar-link-label{transition:opacity var(--transition-base)}.sidebar.collapsed .sidebar-link-label{opacity:0;width:0}.sidebar-footer{padding:var(--space-4);border-top:1px solid hsla(0,0%,100%,.08)}.header{position:fixed;top:0;right:0;left:var(--sidebar-width);height:var(--header-height);background:hsla(0,0%,100%,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--slate-200);z-index:var(--z-header);padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between;transition:left var(--transition-slow)}.header.collapsed{left:var(--sidebar-collapsed)}.header-left{gap:var(--space-4)}.header-left,.header-toggle{display:flex;align-items:center}.header-toggle{width:36px;height:36px;justify-content:center;border-radius:var(--radius-md);border:none;background:transparent;color:var(--slate-600);cursor:pointer;transition:all var(--transition-fast)}.header-toggle:hover{background:var(--slate-100);color:var(--slate-800)}.header-breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--slate-500)}.header-breadcrumb span{color:var(--slate-800);font-weight:600}.header-right{gap:var(--space-3)}.header-avatar,.header-right{display:flex;align-items:center}.header-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary-500),var(--primary-400));color:#fff;justify-content:center;font-weight:700;font-size:var(--font-size-sm);cursor:pointer;transition:transform var(--transition-fast)}.header-avatar:hover{transform:scale(1.05)}.header-user-info{text-align:right}.header-user-name{font-size:var(--font-size-sm);font-weight:600;color:var(--slate-800)}.header-user-role{font-size:var(--font-size-xs);color:var(--slate-500)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;line-height:1.5}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));color:#fff;box-shadow:0 2px 8px rgba(79,70,229,.25)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-700),var(--primary-600));box-shadow:0 4px 12px rgba(79,70,229,.35);transform:translateY(-1px)}.btn-secondary{background:#fff;color:var(--slate-700);border:1px solid var(--slate-300)}.btn-secondary:hover:not(:disabled){background:var(--slate-50);border-color:var(--slate-400)}.btn-danger{background:linear-gradient(135deg,var(--danger-600),var(--danger-500));color:#fff}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#be123c,var(--danger-600));transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,var(--accent-600),var(--accent-500));color:#fff}.btn-ghost{background:transparent;color:var(--slate-600)}.btn-ghost:hover:not(:disabled){background:var(--slate-100)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md)}.btn-full{width:100%}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:600;color:var(--slate-700);margin-bottom:var(--space-2)}.form-label .required{color:var(--danger-500);margin-left:2px}.form-input{width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--slate-800);background:#fff;border:1.5px solid var(--slate-300);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;line-height:1.5}.form-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.form-input::placeholder{color:var(--slate-400)}.form-input.error{border-color:var(--danger-500);box-shadow:0 0 0 3px rgba(244,63,94,.1)}.form-error{color:var(--danger-500);display:flex;align-items:center;gap:var(--space-1)}.form-error,.form-hint{font-size:var(--font-size-xs);margin-top:var(--space-1)}.form-hint{color:var(--slate-400)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394A3B8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:20px;padding-right:36px}textarea.form-input{min-height:100px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-4);gap:var(--space-4)}.card{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--slate-200);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--slate-100);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:var(--font-size-lg);font-weight:700;color:var(--slate-800)}.card-subtitle{font-size:var(--font-size-sm);color:var(--slate-500);margin-top:2px}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--slate-100);background:var(--slate-50)}.stat-card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);border:1px solid var(--slate-200);box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;gap:var(--space-4);transition:all var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-icon.primary{background:var(--primary-100);color:var(--primary-600)}.stat-card-icon.success{background:var(--accent-100);color:var(--accent-600)}.stat-card-icon.warning{background:var(--warning-100);color:var(--warning-600)}.stat-card-icon.danger{background:var(--danger-100);color:var(--danger-600)}.stat-card-icon.info{background:var(--info-100);color:var(--info-500)}.stat-card-content{flex:1 1}.stat-card-label{font-size:var(--font-size-sm);color:var(--slate-500);font-weight:500}.stat-card-value{font-size:var(--font-size-2xl);font-weight:800;color:var(--slate-800);line-height:1.2;margin-top:2px}.stat-card-trend{font-size:var(--font-size-xs);font-weight:600;margin-top:var(--space-1);display:flex;align-items:center;gap:4px}.stat-card-trend.up{color:var(--accent-600)}.stat-card-trend.down{color:var(--danger-500)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-5);gap:var(--space-5);margin-bottom:var(--space-6)}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--slate-200);background:#fff}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--slate-500);background:var(--slate-50);border-bottom:1px solid var(--slate-200);white-space:nowrap}.table td,.table th{padding:var(--space-3) var(--space-4)}.table td{font-size:var(--font-size-sm);color:var(--slate-700);border-bottom:1px solid var(--slate-100);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--slate-50)}.table-actions{display:flex;align-items:center;gap:var(--space-2)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);font-size:11px;font-weight:600;border-radius:var(--radius-full);letter-spacing:.3px;text-transform:capitalize}.badge-success{background:var(--accent-100);color:var(--accent-600)}.badge-danger{background:var(--danger-100);color:var(--danger-600)}.badge-warning{background:var(--warning-100);color:var(--warning-600)}.badge-info{background:var(--info-100);color:var(--info-500)}.badge-neutral{background:var(--slate-100);color:var(--slate-600)}.badge-primary{background:var(--primary-100);color:var(--primary-600)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn .2s ease}.modal{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.modal-lg{max-width:720px}.modal-sm{max-width:400px}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--slate-100);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--font-size-lg);font-weight:700;color:var(--slate-800)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:none;background:transparent;color:var(--slate-400);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--slate-100);color:var(--slate-600)}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--slate-100);justify-content:flex-end;gap:var(--space-3);background:var(--slate-50)}.modal-footer,.page-header{display:flex;align-items:center}.page-header{justify-content:space-between;margin-bottom:var(--space-6)}.page-header-left h1{font-size:var(--font-size-2xl);font-weight:800;color:var(--slate-900);letter-spacing:-.5px}.page-header-left p{font-size:var(--font-size-sm);color:var(--slate-500);margin-top:2px}.filter-bar,.page-header-actions{display:flex;align-items:center;gap:var(--space-3)}.filter-bar{margin-bottom:var(--space-5);flex-wrap:wrap}.search-input-wrapper{position:relative;flex:1 1;min-width:240px;max-width:400px}.search-input-wrapper .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--slate-400);pointer-events:none}.search-input{width:100%;padding:var(--space-2) var(--space-3);padding-left:38px;font-family:var(--font-family);font-size:var(--font-size-sm);border:1.5px solid var(--slate-300);border-radius:var(--radius-md);background:#fff;outline:none;transition:all var(--transition-fast)}.search-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.filter-select{padding:var(--space-2) var(--space-3);padding-right:36px;font-family:var(--font-family);font-size:var(--font-size-sm);border:1.5px solid var(--slate-300);border-radius:var(--radius-md);background:#fff;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394A3B8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:20px;cursor:pointer;transition:all var(--transition-fast)}.filter-select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-top:1px solid var(--slate-100)}.pagination-info{font-size:var(--font-size-sm);color:var(--slate-500)}.pagination-controls{display:flex;align-items:center;gap:var(--space-1)}.pagination-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:1px solid var(--slate-200);background:#fff;color:var(--slate-600);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--slate-50);border-color:var(--slate-300)}.pagination-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-state-icon{width:64px;height:64px;background:var(--slate-100);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5);color:var(--slate-400)}.empty-state h3{font-size:var(--font-size-lg);font-weight:700;color:var(--slate-700);margin-bottom:var(--space-2)}.empty-state p{font-size:var(--font-size-sm);color:var(--slate-500);max-width:400px;margin:0 auto var(--space-5)}.loader{display:flex;align-items:center;justify-content:center;padding:var(--space-12)}.spinner{width:36px;height:36px;border:3px solid var(--slate-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{width:18px;height:18px;border-width:2px}.skeleton{background:linear-gradient(90deg,var(--slate-200) 25%,var(--slate-100) 50%,var(--slate-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.confirm-icon{width:56px;height:56px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-4)}.confirm-icon.danger{background:var(--danger-100);color:var(--danger-500)}.confirm-icon.warning{background:var(--warning-100);color:var(--warning-500)}.confirm-icon.success{background:var(--accent-100);color:var(--accent-500)}.confirm-text{text-align:center}.confirm-text h3{font-size:var(--font-size-lg);font-weight:700;color:var(--slate-800);margin-bottom:var(--space-2)}.confirm-text p{font-size:var(--font-size-sm);color:var(--slate-500)}.profile-dropdown{position:relative}.profile-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--slate-200);min-width:220px;z-index:var(--z-tooltip);animation:fadeIn .15s ease;overflow:hidden}.profile-menu-header{padding:var(--space-4);border-bottom:1px solid var(--slate-100)}.profile-menu-name{font-weight:600;font-size:var(--font-size-sm);color:var(--slate-800)}.profile-menu-email{font-size:var(--font-size-xs);color:var(--slate-500);margin-top:2px}.profile-menu-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--slate-600);cursor:pointer;transition:all var(--transition-fast);border:none;background:none;width:100%;text-align:left}.profile-menu-item:hover{background:var(--slate-50);color:var(--slate-800)}.profile-menu-item.danger{color:var(--danger-500)}.profile-menu-item.danger:hover{background:var(--danger-50)}.activity-list{list-style:none}.activity-item{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--slate-100)}.activity-item:last-child{border-bottom:none}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--primary-400);margin-top:6px;flex-shrink:0}.activity-content{flex:1 1}.activity-text{font-size:var(--font-size-sm);color:var(--slate-700)}.activity-time{font-size:var(--font-size-xs);color:var(--slate-400);margin-top:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width:768px){.sidebar{transform:translateX(-100%);width:var(--sidebar-width)}.sidebar.mobile-open{transform:translateX(0)}.shell-content{margin-left:0}.header{left:0}.page-header{align-items:flex-start;gap:var(--space-3)}.filter-bar,.page-header{flex-direction:column}.search-input-wrapper{max-width:100%}.form-row{grid-template-columns:1fr}.modal{margin:var(--space-4);max-height:calc(100vh - 2rem)}}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}.tab-btn{background:transparent;border:none;outline:none;font-family:inherit;display:flex;align-items:center;transition:all var(--transition-fast);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.tab-btn:hover{background:var(--primary-50);color:var(--primary-700)!important}.custom-select-container{position:relative;width:100%}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;background:#fff;border:1px solid var(--slate-300);border-radius:var(--radius-md);font-size:14px;color:var(--slate-900);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none}.custom-select-trigger span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1}.custom-select-trigger:hover{border-color:var(--primary-400)}.custom-select-trigger.open{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.placeholder-text{color:var(--slate-400)}.custom-select-icon{color:var(--slate-500);transition:transform .2s ease}.custom-select-icon.open{transform:rotate(180deg)}.custom-select-menu{position:absolute;top:calc(100% + 4px);left:0;width:100%;background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:50;max-height:250px;overflow-y:auto;padding:4px;margin-bottom:30px;animation:dropdownFadeIn .15s ease-out}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{padding:8px 12px;font-size:14px;color:var(--slate-700);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.custom-select-option:hover{background:var(--slate-50);color:var(--slate-900)}.custom-select-option.selected{background:var(--primary-50);color:var(--primary-700);font-weight:500}.custom-select-empty{padding:12px;text-align:center;font-size:13px;color:var(--slate-500)}.custom-select-menu.menu-upward{top:auto;bottom:calc(100% + 4px);animation:dropdownFadeInUpward .15s ease-out;margin-bottom:0}@keyframes dropdownFadeInUpward{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.back-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--primary-700);text-decoration:none;border-radius:50%;background-color:var(--primary-50);transition:all .2s ease;border:1px solid var(--primary-100);flex-shrink:0}.back-icon-btn:hover{background-color:var(--primary-600);color:#fff;border-color:var(--primary-600);box-shadow:0 4px 12px rgba(99,102,241,.25);transform:translateX(-3px)}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--slate-600);font-size:13px;font-weight:600;text-decoration:none;padding:6px 14px;border-radius:var(--radius-full);background-color:var(--slate-50);transition:all var(--transition-fast);margin-bottom:var(--space-3);border:1px solid var(--slate-200);height:36px}.back-link:hover{background-color:#fff;color:var(--primary-600);border-color:var(--primary-200);box-shadow:var(--shadow-sm)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}@keyframes pulse-red{0%{background-color:var(--danger-50)}50%{background-color:var(--danger-100)}to{background-color:var(--danger-50)}}tr.insufficient-row td{animation:pulse-red 2s infinite;transition:background-color .3s ease,transform .2s ease}tr.insufficient-row:hover td{background-color:var(--danger-100)!important;animation:none}tr.insufficient-row td:first-child{border-left:3px solid var(--danger-500)}