:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.6;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--brand-color-1: #0d6efd;--brand-color-2: #00bfa6;--brand-gradient: linear-gradient(45deg, var(--brand-color-1), var(--brand-color-2));--text-primary: #111827;--text-secondary: #6b7280;--surface-primary: #ffffff;--surface-secondary: #f3f4f6;--border-color: #e5e7eb;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .05);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .07), 0 4px 6px -4px rgb(0 0 0 / .05);--radius-md: .375rem;--radius-lg: .5rem;--danger-color: #c62828;--danger-surface: #ffebee;--danger-border: #ef9a9a;--success-color: #057a55;--success-surface: #f3fcf9;--success-border: #a3e6cb;--skeleton-bg: #e5e7eb}html[data-theme=dark]{--brand-color-1: #2583ff;--brand-color-2: #00e0c5;--text-primary: #f3f4f6;--text-secondary: #9ca3af;--surface-primary: #1f2937;--surface-secondary: #111827;--border-color: #374151;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .2);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -2px rgb(0 0 0 / .2);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .4), 0 4px 6px -4px rgb(0 0 0 / .3);--danger-color: #ef9a9a;--danger-surface: #3e2723;--danger-border: #c62828;--success-color: #a3e6cb;--success-surface: #043c2c;--success-border: #057a55;--skeleton-bg: #374151}body{margin:0;min-height:100vh;background-color:var(--surface-secondary);color:var(--text-primary);transition:background-color .3s,color .3s}#root{width:100%;height:100vh;display:flex;flex-direction:column}*{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-weight:700;color:var(--text-primary);letter-spacing:-.025em}h1{font-size:2.25rem}h2{font-size:1.875rem}h3{font-size:1.5rem}.container{width:100%;max-width:1600px;margin:0 auto;padding:0 1.5rem}.main-content{flex:1;padding:2.5rem 0;overflow-y:auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.page-title{font-size:1.875rem;background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-fill-color:transparent}.form-input{width:100%;padding:.625rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-color);font-size:1rem;background-color:var(--surface-primary);color:var(--text-primary);transition:box-shadow .2s,border-color .2s}.form-input:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-color-1) 25%,transparent);border-color:var(--brand-color-1)}.form-input::placeholder{color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-md);border:none;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;color:var(--text-primary)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm)}.btn:not(:disabled):hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.btn-primary{background:var(--brand-gradient);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:not(:disabled):hover{filter:brightness(1.1)}.btn-secondary{background-color:var(--surface-primary);color:var(--text-primary);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.btn-danger{background-color:var(--danger-surface);color:var(--danger-color);border:1px solid var(--danger-border);box-shadow:var(--shadow-sm)}.btn-icon{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-secondary);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:background-color .2s,color .2s}.btn-icon:hover{background-color:var(--surface-secondary);color:var(--text-primary)}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem}.login-card{background-color:var(--surface-primary);padding:2.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;text-align:center}.login-card h2{background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-fill-color:transparent;margin-bottom:1.5rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-form .btn{width:100%;padding-top:.75rem;padding-bottom:.75rem;margin-top:.5rem;min-height:48px}.form-group{text-align:left}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-secondary)}.login-error{color:var(--danger-color);background-color:var(--danger-surface);border:1px solid var(--danger-border);padding:.75rem;border-radius:var(--radius-md);margin-top:1.5rem}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .form-input{padding-right:3rem}.password-toggle-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.25rem;cursor:pointer;color:var(--text-secondary);display:inline-flex;border-radius:50%}.password-toggle-btn:hover{color:var(--text-primary);background-color:var(--surface-secondary)}.spinner{width:1.25rem;height:1.25rem;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.save-status{font-size:.875rem;font-weight:500;padding:.25rem .75rem;border-radius:var(--radius-md);animation:status-fade 3s forwards}.save-status.success{color:var(--success-color);background-color:var(--success-surface)}.save-status.error{color:var(--danger-color);background-color:var(--danger-surface)}@keyframes status-fade{0%{opacity:1}80%{opacity:1}to{opacity:0}}.table-placeholder{text-align:center;padding:4rem;color:var(--text-secondary)}.btn-group{display:flex;justify-content:flex-end;gap:.75rem;align-items:center}.skeleton{background-color:var(--skeleton-bg);border-radius:var(--radius-md);position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{to{transform:translate(100%)}}
