#app{min-height:100vh;display:flex;flex-direction:column}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#dc2626,#7f1d1d)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.loading-icon{font-size:3rem;animation:bounce 1s ease-in-out infinite}.loading-text{color:#fff;font-size:1.25rem;font-weight:500}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #dc2626;--color-primary-dark: #991b1b;--color-primary-light: #ef4444;--color-secondary: #10b981;--color-secondary-dark: #059669;--color-danger: #ef4444;--color-warning: #f59e0b;--color-success: #22c55e;--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-light: #9ca3af;--color-text-inverse: #ffffff;--color-bg-primary: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-tertiary: #f3f4f6;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", monospace;--font-size-xs: .75rem;--font-size-sm: .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;--font-size-5xl: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--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 -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--z-dropdown: 1000;--z-modal: 1050;--z-popover: 1100;--z-tooltip: 1150;--z-toast: 1200}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-4xl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md)}h4{font-size:var(--font-size-xl);margin-bottom:var(--spacing-sm)}h5{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}h6{font-size:var(--font-size-base);margin-bottom:var(--spacing-sm)}p{margin-bottom:var(--spacing-md);line-height:var(--line-height-relaxed)}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .2s;text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border-light)}.btn-outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-danger{background-color:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:#dc2626;border-color:#dc2626}.btn-warning{background-color:var(--color-warning);color:var(--color-text-inverse);border-color:var(--color-warning)}.btn-warning:hover:not(:disabled){background-color:#ea580c;border-color:#ea580c}.btn-success{background-color:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:#16a34a;border-color:#16a34a}.btn-large{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.btn-small{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-block{width:100%}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #dc26261a}.form-textarea{resize:vertical;min-height:100px}.form-error{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-danger)}.form-help{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.radio-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.radio-label input[type=radio]{margin:0}.card{background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 var(--spacing-lg)}.grid{display:grid;gap:var(--spacing-lg)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.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)}.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-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.table th{background-color:var(--color-bg-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.table tr:hover{background-color:var(--color-bg-secondary)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1;color:var(--color-text-inverse);background-color:var(--color-primary);border-radius:var(--radius-full);white-space:nowrap}.badge-success{background-color:var(--color-success)}.badge-warning{background-color:var(--color-warning)}.badge-danger{background-color:var(--color-danger)}.badge-secondary{background-color:var(--color-text-secondary)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-sm{font-size:var(--font-size-sm)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.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)}.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)}.p-0{padding:0}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}@media (max-width: 768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}.container{padding:0 var(--spacing-md)}.form-row{grid-template-columns:1fr}}.spinner{display:inline-block;width:20px;height:20px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}
