:root{--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-bg:#f8f9fa;--color-surface:#fff;--color-border:#e2e8f0;--color-border-muted:#f1f5f9;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-muted:#eff6ff;--color-danger:#dc2626;--color-danger-muted:#fef2f2;--color-success:#16a34a;--color-success-muted:#f0fdf4;--color-success-text:#065f46;--color-warning:#d97706;--color-warning-muted:#fef3c7;--color-warning-text:#92400e;--color-info:#0284c7;--color-info-muted:#e0f2fe;--color-info-text:#0c4a6e;--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;--transition-fast:.1s ease;--transition-base:.15s ease;--transition-slow:.25s ease;--sidebar-width:240px;--sidebar-bg:#fff;--sidebar-text:#475569;--sidebar-text-active:#0f172a;--sidebar-item-hover:#f1f5f9;--sidebar-item-active:#f1f5f9;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:.875rem;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}img,svg{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:600;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-base), opacity var(--transition-base);border:none;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary,.btn--primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled),.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-ghost,.btn--ghost{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled),.btn--ghost:hover:not(:disabled){background:var(--color-bg)}.btn-danger,.btn--danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled),.btn--danger:hover:not(:disabled){opacity:.9}.btn--success{background:var(--color-success);color:#fff}.btn--success:hover:not(:disabled){opacity:.9}.btn--sm{padding:var(--spacing-1) var(--spacing-2);font-size:.8rem}.modal-overlay,.modal-backdrop{z-index:100;padding:var(--spacing-4);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;width:100%;max-width:560px;max-height:90vh;display:flex}.modal--sm{max-width:400px}.modal--wide{max-width:900px}.modal-header{padding:var(--spacing-4) var(--spacing-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:var(--font-size-lg)}.modal-body{padding:var(--spacing-6);flex:1;overflow-y:auto}.modal-subtitle{color:var(--color-text-secondary);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm)}.modal-footer,.modal-actions{justify-content:flex-end;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--color-border);display:flex}.modal-actions{border-top:none;padding:0}.table-container,.table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.table th{padding:var(--spacing-3) var(--spacing-4);text-align:left;color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.table td{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border-muted);color:var(--color-text-primary);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--color-accent-muted)}.toast{bottom:var(--spacing-6);right:var(--spacing-6);padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-md);font-size:var(--font-size-sm);z-index:200;box-shadow:var(--shadow-md);font-weight:500;position:fixed}.toast--success{background:var(--color-success);color:#fff}.toast--error{background:var(--color-danger);color:#fff}.toast--warning{background:var(--color-warning,#f59e0b);color:#fff}.form-field{gap:var(--spacing-1);flex-direction:column;display:flex}.form-field label{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500}.form-field input,.form-field textarea,.input,.textarea{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-base);font-family:inherit}.form-field input:focus,.form-field textarea:focus,.input:focus,.textarea:focus{border-color:var(--color-accent);outline:none}.textarea{resize:vertical;width:100%;min-height:200px}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.field-error,.form-error{font-size:var(--font-size-sm);color:var(--color-danger)}.error-banner{padding:var(--spacing-3) var(--spacing-4);background:var(--color-danger-muted);color:var(--color-danger);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm)}.warning-banner,.review-banner{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);background:var(--color-warning-muted);color:var(--color-warning-text);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm);display:flex}.loading,.empty-state{padding:var(--spacing-8);text-align:center;color:var(--color-text-muted)}.muted,.text-muted{color:var(--color-text-muted)}.controls{align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.select{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer}.quarter-selector{border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;overflow:hidden}.quarter-btn{padding:var(--spacing-2) var(--spacing-3);background:var(--color-surface);border:none;border-right:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast)}.quarter-btn:last-child{border-right:none}.quarter-btn:hover{background:var(--color-bg)}.quarter-btn.active{background:var(--color-accent);color:#fff}.tabs{border-bottom:2px solid var(--color-border);margin-bottom:var(--spacing-6);display:flex}.tab-btn{font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-base), border-color var(--transition-base);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.625rem 1.25rem;font-weight:500}.tab-btn:hover{color:var(--color-text-secondary)}.tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.auth-container{width:100%;max-width:420px;padding:var(--spacing-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-container h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-6);text-align:center}.auth-container form{gap:var(--spacing-4);flex-direction:column;display:flex}.auth-container .form-group{gap:var(--spacing-1);flex-direction:column;display:flex}.auth-container .form-group label{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500}.auth-container .form-group input{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-base), box-shadow var(--transition-base)}.auth-container .form-group input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #2563eb1a}.auth-container .form-group input[readonly]{background-color:var(--color-bg);color:var(--color-text-secondary)}.auth-container button[type=submit]{width:100%;padding:var(--spacing-3) var(--spacing-4);margin-top:var(--spacing-2);background:var(--color-accent);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-base);border:none;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.auth-container button[type=submit]:hover{background:var(--color-accent-hover)}.auth-container .error{padding:var(--spacing-3) var(--spacing-4);background:var(--color-danger-muted);color:var(--color-danger);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.auth-container .success{padding:var(--spacing-3) var(--spacing-4);background:var(--color-success-muted);color:var(--color-success-text);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.auth-container p{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-4)}.auth-container p a{color:var(--color-accent);font-weight:500}.auth-container p a:hover{text-decoration:underline}
