:root{--theme-bg:#f3f4f6;--theme-bg-deep:#f3f4f6;--theme-blue:#6b7280;--theme-blue-dark:#4b5563;--theme-blue-ink:#342c45;--theme-accent:#9ca3af;--theme-accent-soft:#7a6a9a29;--theme-border-soft:#d1d5db;--theme-surface:#fbfafc;--white:#fff;--black:#000;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--spacing-2xl:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px 0 #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono:"SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-family);background:var(--theme-bg);color:var(--gray-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;line-height:1.5}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-weight:700;line-height:1.2}h1{color:var(--gray-900);font-size:32px}h2{color:var(--gray-900);font-size:24px}h3{color:var(--gray-900);font-size:20px}h4{color:var(--gray-800);font-size:16px}h5{color:var(--gray-800);font-size:14px}h6{color:var(--gray-700);text-transform:uppercase;letter-spacing:.05em;font-size:12px}p{color:var(--gray-700);margin:0}button,.btn{font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);border:none;outline:none;justify-content:center;align-items:center;font-weight:600;line-height:1;display:inline-flex}.btn-primary,button[class*=save],button[class*=submit]{background:var(--theme-blue-dark);color:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:10px 18px;font-size:14px}.btn-primary:hover,button[class*=save]:hover{background:var(--theme-blue-ink);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-secondary,button[class*=cancel],button[class*=close]{background:var(--gray-200);color:var(--gray-700);border-radius:var(--radius-md);border:1px solid var(--gray-300);padding:10px 18px;font-size:14px}.btn-secondary:hover{background:var(--gray-300);color:var(--gray-800)}.btn-ghost{color:var(--theme-blue);border-radius:var(--radius-md);background:0 0;border:1px solid #0000;padding:8px 12px;font-size:14px}.btn-ghost:hover{background:var(--gray-100);color:var(--theme-blue-dark)}.btn-icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--gray-600);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.btn-icon:hover{background:var(--gray-100);color:var(--gray-900)}.btn-icon svg{width:20px;height:20px}input,select,textarea{font-family:var(--font-family);border:1px solid var(--gray-300);border-radius:var(--radius-md);background:var(--white);color:var(--gray-900);transition:all var(--transition-fast);padding:10px 12px;font-size:14px}input::placeholder,textarea::placeholder{color:var(--gray-500)}input:focus,select:focus,textarea:focus{border-color:var(--theme-blue-dark);box-shadow:0 0 0 3px var(--theme-accent-soft);background:var(--white);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--gray-100);color:var(--gray-500);cursor:not-allowed}.card,.panel{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--gray-300)}.card-header,.panel-header{padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200);background:var(--gray-50);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.card-header h3,.panel-header h3{color:var(--gray-900);margin:0;font-size:16px;font-weight:700}.card-body,.panel-body{padding:var(--spacing-lg)}.card-footer,.panel-footer{padding:var(--spacing-lg);border-top:1px solid var(--gray-200);background:var(--gray-50);justify-content:space-between;align-items:center;gap:var(--spacing-lg);display:flex}table{border-collapse:collapse;width:100%;font-size:14px}thead{background:var(--gray-100);border-bottom:1px solid var(--gray-300)}thead th{text-align:left;color:var(--gray-700);text-transform:uppercase;letter-spacing:.05em;border-right:1px solid var(--gray-200);padding:12px;font-size:12px;font-weight:700}thead th:last-child{border-right:none}tbody tr{border-bottom:1px solid var(--gray-200);transition:background var(--transition-fast)}tbody tr:hover{background:var(--gray-50)}tbody tr.active{background:var(--theme-accent-soft);border-bottom-color:var(--theme-blue)}tbody td{color:var(--gray-700);border-right:1px solid var(--gray-200);padding:12px}tbody td:last-child{border-right:none}tbody td.numeric{text-align:right;font-variant-numeric:tabular-nums}.badge,.label{border-radius:var(--radius-xl);align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.badge-primary{background:var(--theme-accent-soft);color:var(--theme-blue-ink)}.badge-success{color:#059669;background:#10b9811a}.badge-warning{color:#d97706;background:#f59e0b1a}.badge-danger{color:#dc2626;background:#ef44441a}.badge-info{color:#2563eb;background:#3b82f61a}.alert{border-radius:var(--radius-md);border-left:4px solid;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.alert-success{color:#059669;background:#10b9811a;border-color:#10b981}.alert-warning{color:#d97706;background:#f59e0b1a;border-color:#f59e0b}.alert-danger{color:#dc2626;background:#ef44441a;border-color:#ef4444}.alert-info{color:#2563eb;background:#3b82f61a;border-color:#3b82f6}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--gray-700);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.form-label.required:after{content:"*";color:var(--danger)}.form-control{border:1px solid var(--gray-300);border-radius:var(--radius-md);background:var(--white);width:100%;color:var(--gray-900);transition:all var(--transition-fast);padding:10px 12px;font-size:14px}.form-control:focus{border-color:var(--theme-blue-dark);box-shadow:0 0 0 3px var(--theme-accent-soft);outline:none}.form-control::placeholder{color:var(--gray-500)}.form-text{color:var(--gray-600);margin-top:4px;font-size:12px}.form-text.error{color:var(--danger)}.modal,.dialog{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);border:1px solid var(--gray-200);max-width:90vw;max-height:90vh}.modal-header,.dialog-header{padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;display:flex}.modal-body,.dialog-body{padding:var(--spacing-lg);max-height:calc(90vh - 120px);overflow-y:auto}.modal-footer,.dialog-footer{padding:var(--spacing-lg);border-top:1px solid var(--gray-200);justify-content:flex-end;gap:var(--spacing-md);display:flex}.nav,.navbar{background:var(--white);border-bottom:1px solid var(--gray-200);padding:0 var(--spacing-lg);height:56px;box-shadow:var(--shadow-sm);align-items:center;display:flex}.nav-item,.navbar-item{color:var(--gray-700);cursor:pointer;transition:all var(--transition-fast);border-bottom:2px solid #0000;padding:8px 16px;font-weight:500}.nav-item:hover,.navbar-item:hover{color:var(--theme-blue-dark);border-bottom-color:var(--theme-blue)}.nav-item.active,.navbar-item.active{color:var(--theme-blue-dark);border-bottom-color:var(--theme-blue-dark)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.gap-2xl{gap:var(--spacing-2xl)}.p-0{padding:0}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.m-0{margin:0}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.text-sm{font-size:13px}.text-md{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:20px}.text-muted{color:var(--gray-600)}.text-dark{color:var(--gray-900)}.text-light{color:var(--gray-500)}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.opacity-50{opacity:.5}.opacity-75{opacity:.75}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-base)}.animate-slide-up{animation:slideUp var(--transition-base)}.animate-slide-down{animation:slideDown var(--transition-base)}
