:root{--color-primary:#2563eb;--color-primary-dark:#1e40af;--color-primary-light:#3b82f6;--color-secondary:#10b981;--color-secondary-dark:#059669;--color-secondary-light:#34d399;--color-accent:#f59e0b;--color-danger:#ef4444;--color-warning:#f59e0b;--color-success:#10b981;--color-info:#3b82f6;--color-bg:#fff;--color-bg-secondary:#f9fafb;--color-bg-tertiary:#f3f4f6;--color-border:#e5e7eb;--color-text:#111827;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"Courier New",monospace;--transition-fast:150ms ease-in-out;--transition-normal:250ms ease-in-out;--transition-slow:350ms ease-in-out}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg-secondary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:2.25rem}h2{font-size:1.875rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{margin-bottom:var(--spacing-md)}.container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-lg)}.page-wrapper{display:flex;min-height:100vh}.main-content{flex:1 1;padding:var(--spacing-xl);overflow-y:auto}.card{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-lg)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.card-title{font-size:1.25rem;font-weight:600;margin:0}.card-body{padding:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:.875rem;font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-secondary);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--color-secondary-dark)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-outline:hover:not(:disabled){background:var(--color-bg-tertiary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.75rem}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.input-group{margin-bottom:var(--spacing-lg)}.input-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--spacing-xs);color:var(--color-text)}.input-label.required:after{content:" *";color:var(--color-danger)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);transition:border-color var(--transition-fast)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.input:disabled{background:var(--color-bg-tertiary);cursor:not-allowed}.input-error{border-color:var(--color-danger)}.input-error:focus{box-shadow:0 0 0 3px rgba(239,68,68,.1)}.input-helper{color:var(--color-text-secondary)}.input-error-message,.input-helper{font-size:.75rem;margin-top:var(--spacing-xs)}.input-error-message{color:var(--color-danger)}select.input{cursor:pointer;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 .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}.table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:collapse;background:var(--color-bg)}.table thead{background:var(--color-bg-tertiary)}.table th{text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border)}.table td,.table th{padding:var(--spacing-md)}.table td{border-bottom:1px solid var(--color-border)}.table tbody tr{transition:background-color var(--transition-fast)}.table tbody tr:hover{background:var(--color-bg-secondary)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:500;border-radius:var(--radius-md);white-space:nowrap}.badge-primary{background:rgba(37,99,235,.1);color:var(--color-primary)}.badge-success{background:rgba(16,185,129,.1);color:var(--color-success)}.badge-warning{background:rgba(245,158,11,.1);color:var(--color-warning)}.badge-danger{background:rgba(239,68,68,.1);color:var(--color-danger)}.grid{display:grid;grid-gap:var(--spacing-lg);gap:var(--spacing-lg)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.font-bold{font-weight:600}.font-semibold{font-weight:500}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.mt-0{margin-top:0}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.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-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.spinner{border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.toast{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);background:var(--color-bg);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;align-items:center;gap:var(--spacing-md);animation:slideIn .3s ease-out;z-index:1000}@keyframes slideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:999;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:600px;width:90%;max-height:90vh;overflow-y:auto;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-header{border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.modal-body,.modal-footer,.modal-header{padding:var(--spacing-lg)}.modal-footer{border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--spacing-md)}@media print{body{background:#fff}.no-print{display:none!important}.page-wrapper{display:block}.card{box-shadow:none;page-break-inside:avoid}}