:root{--color-primary: #0F3A5D;--color-primary-hover: #0B2C47;--color-primary-dark: #081F33;--color-primary-darker: #051421;--color-primary-light: #EBF3F8;--color-primary-subtle: #F3F8FB;--color-green: #1E824C;--color-green-hover: #16683C;--color-green-dark: #12522F;--color-green-light: #EAF6EE;--color-green-subtle: #F4FAF6;--color-gold: #D4A338;--color-gold-hover: #BE912F;--color-gold-light: #FAF4E5;--color-gold-subtle: #FCF9F0;--color-coral: #E63946;--color-coral-light: #FDE8EA;--color-bg: #F8FAFC;--color-surface: #FFFFFF;--color-surface-hover: #F1F5F9;--color-border: #E2E8F0;--color-border-subtle: #EDF2F7;--color-text-primary: #0F172A;--color-text-secondary: #475569;--color-text-muted: #94A3B8;--color-text-inverse: #FFFFFF;--color-success: #15803D;--color-success-bg: #DCFCE7;--color-success-border: #BBF7D0;--color-warning: #B45309;--color-warning-bg: #FEF3C7;--color-warning-border: #FDE68A;--color-danger: #DC2626;--color-danger-bg: #FEE2E2;--color-danger-border: #FECACA;--color-info: #0284C7;--color-info-bg: #E0F2FE;--color-info-border: #BAE6FD;--shadow-xs: 0 1px 2px 0 rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px 0 rgba(15, 23, 42, .08), 0 1px 2px -1px rgba(15, 23, 42, .04);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .07), 0 2px 4px -2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .03);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .09), 0 8px 10px -6px rgba(15, 23, 42, .04);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--transition-fast: .15s ease;--transition-base: .22s ease;--transition-slow: .35s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;height:100%}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text-primary);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;display:flex;flex-direction:column}app-root{display:flex;flex-direction:column;min-height:100vh;width:100%}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:700;line-height:1.25;letter-spacing:-.015em}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1rem}h6{font-size:.875rem}@media (min-width: 768px){h1{font-size:2.75rem}h2{font-size:2rem}h3{font-size:1.5rem}}p{color:var(--color-text-secondary);line-height:1.65}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}img{max-width:100%;height:auto;display:block}.container{width:100%;max-width:1240px;margin-left:auto;margin-right:auto;padding-left:1.25rem;padding-right:1.25rem}.container-narrow{width:100%;max-width:860px;margin-left:auto;margin-right:auto;padding-left:1.25rem;padding-right:1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-size:.9375rem;font-weight:600;padding:.65rem 1.25rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1.25}.btn i{font-size:1.15em;line-height:1}.btn:disabled,.btn[disabled]{opacity:.6;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover);color:#fff;box-shadow:var(--shadow-sm)}.btn-green{background-color:var(--color-green);color:#fff}.btn-green:hover{background-color:var(--color-green-hover);color:#fff;box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--color-green-light);color:var(--color-green-dark);border-color:#1e824c33}.btn-secondary:hover{background-color:#d6efe0;color:var(--color-green-dark)}.btn-gold{background-color:var(--color-gold);color:#0f172a;font-weight:700}.btn-gold:hover{background-color:var(--color-gold-hover);color:#0f172a;box-shadow:var(--shadow-sm)}.btn-outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-outline:hover{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover{background-color:#b91c1c}.btn-xs{font-size:.75rem;padding:.25rem .5rem;border-radius:var(--radius-sm)}.btn-sm{font-size:.8125rem;padding:.45rem .85rem;border-radius:var(--radius-sm)}.btn-lg{font-size:1.0625rem;padding:.85rem 1.75rem;border-radius:var(--radius-md)}.btn-block{width:100%}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-xs);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.card-hover:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.card-header{margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:1.15rem;font-weight:700;color:var(--color-text-primary)}.card-subtitle{font-size:.875rem;color:var(--color-text-secondary);margin-top:.25rem}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;padding:.25rem .65rem;border-radius:var(--radius-full);line-height:1;text-transform:capitalize}.badge-success{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.badge-danger{background-color:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.badge-info{background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}.badge-neutral{background-color:var(--color-surface-hover);color:var(--color-text-secondary);border:1px solid var(--color-border)}.badge-gold{background-color:var(--color-gold-light);color:#926e1e;border:1px solid #EED8A1}.badge-coral{background-color:var(--color-coral-light);color:var(--color-coral);border:1px solid #FBC7CC}.form-group{margin-bottom:1.25rem;display:flex;flex-direction:column}.form-label{font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.4rem;display:flex;align-items:center;justify-content:space-between}.form-label .required{color:var(--color-danger);margin-left:.25rem}.form-control{width:100%;padding:.6875rem .95rem;font-family:inherit;font-size:.9375rem;color:var(--color-text-primary);background-color: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)}.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0f3a5d1f;outline:none}.form-control.is-invalid{border-color:var(--color-danger);background-color:#fffdfd}.form-control.is-invalid:focus{box-shadow:0 0 0 3px #dc26261f}.form-hint{font-size:.8125rem;color:var(--color-text-secondary);margin-top:.35rem}.form-error{font-size:.8125rem;color:var(--color-danger);font-weight:500;margin-top:.35rem;display:flex;align-items:center;gap:.25rem}.form-checkbox{display:flex;align-items:flex-start;gap:.65rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.875rem;color:var(--color-text-secondary)}.form-checkbox input[type=checkbox]{width:1.15rem;height:1.15rem;margin-top:.15rem;accent-color:var(--color-primary);cursor:pointer}.alert{padding:.85rem 1.15rem;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:1.25rem;display:flex;align-items:flex-start;gap:.75rem}.alert i{font-size:1.25rem;flex-shrink:0;margin-top:.1rem}.alert-success{background-color:var(--color-success-bg);border:1px solid var(--color-success-border);color:#14532d}.alert-warning{background-color:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:#78350f}.alert-danger{background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:#7f1d1d}.alert-info{background-color:var(--color-info-bg);border:1px solid var(--color-info-border);color:#0c4a6e}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface)}.table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.table th{background-color:#f8fafc;color:var(--color-text-secondary);font-weight:600;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.table td{padding:.85rem 1rem;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background-color:#f8fafc}.stat-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1.25rem;box-shadow:var(--shadow-xs)}.stat-icon{width:3.25rem;height:3.25rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.stat-icon-blue{background-color:var(--color-primary-light);color:var(--color-primary)}.stat-icon-green{background-color:var(--color-green-light);color:var(--color-green)}.stat-icon-gold{background-color:var(--color-gold-light);color:#b27b1e}.stat-value{font-size:1.75rem;font-weight:800;color:var(--color-text-primary);line-height:1.1}.stat-label{font-size:.875rem;color:var(--color-text-secondary);margin-top:.25rem}.spinner{width:1.25rem;height:1.25rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner-dark{border-color:#0f3a5d33;border-top-color:var(--color-primary)}@keyframes spin{to{transform:rotate(360deg)}}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-secondary)}.text-primary{color:var(--color-primary)}.text-green{color:var(--color-green)}.text-gold{color:var(--color-gold)}.text-coral{color:var(--color-coral)}.bg-primary-light{background-color:var(--color-primary-light)}.bg-green-light{background-color:var(--color-green-light)}.bg-gold-light{background-color:var(--color-gold-light)}.bg-coral-light{background-color:var(--color-coral-light)}.mr-1{margin-right:.35rem}.mr-2{margin-right:.75rem}.ml-1{margin-left:.35rem}.ml-2{margin-left:.75rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-xs{font-size:.75rem}.text-sm{font-size:.8125rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.d-flex{display:flex}.align-center{align-items:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.gap-4{gap:2rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.grid{display:grid;gap:1.5rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-full{grid-column:1 / -1}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}@media (max-width: 991px){.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-2,.col-span-3,.col-span-4{grid-column:span 2 / span 2}}@media (max-width: 640px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.col-span-1,.col-span-2,.col-span-3,.col-span-4{grid-column:span 1 / span 1}}
