*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;width:100%}:root{--color-primary: #1E3A5F;--color-primary-dark: #152B47;--color-primary-light: #2A5080;--color-accent: #3B82F6;--color-accent-light: #60A5FA;--color-accent-bg: #EFF6FF;--color-success: #10B981;--color-success-bg: #ECFDF5;--color-warning: #F59E0B;--color-warning-bg: #FFFBEB;--color-danger: #EF4444;--color-danger-bg: #FEF2F2;--color-purple: #8B5CF6;--color-purple-bg: #F5F3FF;--color-bg: #F3F4F6;--color-surface: #FFFFFF;--color-text: #1F2937;--color-text-secondary: #6B7280;--color-text-tertiary: #9CA3AF;--color-border: #E5E7EB;--color-border-light: #F3F4F6;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 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, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .05);--sidebar-width: 240px;--topbar-height: 56px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.text-xs{font-size:11px}.text-sm{font-size:12px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:22px}.text-3xl{font-size:28px}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.py-1{padding-top:4px;padding-bottom:4px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.m-0{margin:0}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.ml-auto{margin-left:auto}.mr-2{margin-right:8px}.table-container{overflow-x:auto;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead{background:var(--color-bg);border-bottom:2px solid var(--color-border)}.data-table th{padding:10px 16px;text-align:left;font-weight:600;color:var(--color-text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table th.sortable{cursor:pointer;transition:color var(--transition-fast)}.data-table th.sortable:hover{color:var(--color-text)}.data-table td{padding:10px 16px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:nth-child(2n){background:#fafbfc}.data-table tbody tr:hover{background:var(--color-accent-bg)}.data-table tbody tr:last-child td{border-bottom:none}.form-input,.form-select,.form-textarea{display:block;width:100%;padding:8px 12px;font-size:14px;line-height:1.5;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-bg)}.form-input::placeholder{color:var(--color-text-tertiary)}.form-input:disabled,.form-select:disabled{background:var(--color-bg);cursor:not-allowed;opacity:.7}.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='%236b7280' 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}.form-textarea{resize:vertical;min-height:80px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--color-text);margin-bottom:4px}.form-group{margin-bottom:16px}.form-error{font-size:12px;color:var(--color-danger);margin-top:4px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card-header{padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.card-body{padding:20px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.relative{position:relative}.absolute{position:absolute}.overflow-hidden{overflow:hidden}.w-full{width:100%}.h-full{height:100%}.rounded-full{border-radius:var(--radius-full)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-base) ease}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease}.animate-slide-in-right{animation:slideInRight var(--transition-slow) ease}.animate-scale-in{animation:scaleIn var(--transition-base) ease}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40;animation:fadeIn var(--transition-fast) ease}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary)}.pagination-buttons{display:flex;gap:4px}.pagination-btn{padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text);background:var(--color-surface);transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-text-tertiary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}
