*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--white:#fff;--gray-25:#fcfcfd;--gray-50:#f9fafb;--gray-100:#f2f4f7;--gray-200:#eaecf0;--gray-300:#d0d5dd;--gray-400:#98a2b3;--gray-500:#667085;--gray-600:#475467;--gray-700:#344054;--gray-800:#1d2939;--gray-900:#101828;--accent-50:#eef4ff;--accent-100:#e0eaff;--accent-200:#c7d7fe;--accent-300:#a4bcfd;--accent-400:#8098f9;--accent-500:#6172f3;--accent-600:#444ce7;--accent-700:#3538cd;--accent-800:#2d31a6;--accent-900:#2b2f83;--success-50:#ecfdf3;--success-500:#12b76a;--success-700:#027a48;--warning-50:#fffaeb;--warning-500:#f79009;--warning-700:#b54708;--danger-50:#fef3f2;--danger-500:#f04438;--danger-700:#b42318;--info-50:#eff8ff;--info-500:#2e90fa;--info-700:#175cd3;--bg-page:var(--gray-50);--bg-card:var(--white);--bg-sidebar:var(--white);--text-primary:var(--gray-900);--text-secondary:var(--gray-600);--text-muted:var(--gray-400);--border:var(--gray-200);--border-light:var(--gray-100);--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #1018281a, 0 1px 2px #1018280f;--shadow-md:0 4px 8px -2px #1018281a, 0 2px 4px -2px #1018280f;--shadow-lg:0 12px 16px -4px #10182814, 0 4px 6px -2px #10182808;--shadow-xl:0 20px 24px -4px #10182814, 0 8px 8px -4px #10182808;--ease:cubic-bezier(.4,0,.2,1)}html{-webkit-font-smoothing:antialiased;font-size:14px}body{background:var(--bg-page);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);z-index:100;flex-direction:column;width:240px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-logo{color:var(--accent-600);letter-spacing:-.3px;border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:20px 24px;font-size:17px;font-weight:700;display:flex}.sidebar-nav{flex:1;padding:12px}.sidebar-section{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:16px 12px 6px;font-size:11px;font-weight:600}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);transition:all .18s var(--ease);align-items:center;gap:10px;margin-bottom:2px;padding:9px 12px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex}.nav-item .icon{text-align:center;width:20px;font-size:16px}.nav-item:hover{background:var(--gray-50);color:var(--text-primary)}.nav-item.active{background:var(--accent-50);color:var(--accent-700);font-weight:600}.main-content{flex:1;min-height:100vh;margin-left:240px}.header{background:var(--white);border-bottom:1px solid var(--border);z-index:50;justify-content:space-between;align-items:center;padding:20px 32px;display:flex;position:sticky;top:0}.header h1{color:var(--gray-900);letter-spacing:-.3px;font-size:18px;font-weight:700}.page-content{padding:24px 32px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:box-shadow .2s var(--ease);padding:20px 24px}.card:hover{box-shadow:var(--shadow-sm)}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:all .25s var(--ease);padding:18px 20px}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card .label{color:var(--text-muted);margin-bottom:8px;font-size:12.5px;font-weight:500}.stat-card .value{color:var(--gray-900);letter-spacing:-.5px;font-size:26px;font-weight:700;transition:opacity .3s}.stat-card .sub{color:var(--text-muted);margin-top:4px;font-size:12px}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all .18s var(--ease);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13.5px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-600);color:var(--white);box-shadow:0 1px 2px #444ce74d}.btn-primary:hover:not(:disabled){background:var(--accent-700);box-shadow:0 2px 6px #444ce759}.btn-secondary{background:var(--white);color:var(--gray-700);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-300)}.btn-danger{background:var(--danger-500);color:var(--white)}.btn-danger:hover:not(:disabled){background:var(--danger-700)}.btn-sm{border-radius:var(--radius-sm);padding:5px 12px;font-size:12.5px}.form-group{margin-bottom:16px}.form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.input{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);background:var(--white);transition:all .18s var(--ease);outline:none;padding:9px 13px;font-family:inherit;font-size:13.5px}.input:focus{border-color:var(--accent-300);box-shadow:0 0 0 3px var(--accent-100)}.input::placeholder{color:var(--gray-400)}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23667085' stroke-width='1.67' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}textarea.input{resize:vertical}.table-container{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}table{border-collapse:collapse;width:100%}thead{background:var(--gray-50);border-bottom:1px solid var(--border)}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:11px 16px;font-size:12px;font-weight:600}td{color:var(--text-secondary);border-bottom:1px solid var(--border-light);padding:12px 16px;font-size:13.5px}tbody tr{transition:background .15s var(--ease)}tbody tr:hover{background:var(--gray-25)}tbody tr:last-child td{border-bottom:none}.badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;line-height:20px;display:inline-flex}.badge-green{background:var(--success-50);color:var(--success-700)}.badge-yellow{background:var(--warning-50);color:var(--warning-700)}.badge-red{background:var(--danger-50);color:var(--danger-700)}.badge-blue{background:var(--info-50);color:var(--info-700)}.badge-gray{background:var(--gray-100);color:var(--gray-600)}.badge-purple{background:var(--accent-50);color:var(--accent-700)}.empty-state{text-align:center;background:var(--white);border:1px dashed var(--gray-300);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;padding:64px 24px;display:flex}.empty-state .icon{opacity:.7;margin-bottom:16px;font-size:48px}.empty-state p{color:var(--text-muted);margin-bottom:16px;font-size:14px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn .2s var(--ease);background:#1018288c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:var(--radius-xl);width:90%;max-width:520px;box-shadow:var(--shadow-xl);animation:slideUp .25s var(--ease);max-height:90vh;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.modal-header h2{font-size:17px;font-weight:700}.modal-body{padding:20px 24px}.modal-footer{border-top:1px solid var(--border-light);background:var(--gray-25);border-radius:0 0 var(--radius-xl) var(--radius-xl);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-content{animation:fadeInUp .3s var(--ease)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.text-mono{font-family:SF Mono,Fira Code,Consolas,monospace}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.toast-pop{animation:.18s ease-out toast-in}
