:root{--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";--bg: #F8FAFC;--card-bg: #FFFFFF;--border: #E5E7EB;--text: #111827;--muted: #6B7280;--primary: #2563EB;--primary-contrast: #FFFFFF;--danger: #EF4444;--danger-contrast: #FFFFFF;--danger-tint: rgba(239, 68, 68, .08);--chip-bg: #EEF2FF;--table-header-bg: #F9FAFB;--tab-active-bg: #F8FAFF;color-scheme:light;--pill-active-bg: #111827;--pill-active-color: #FFFFFF;--header-h: 64px;--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-accent: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-danger: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);--gradient-warning: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--gradient-info: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--btn-primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--btn-secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--btn-accent-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)}[data-theme=dark]{--bg: #0b1220;--card-bg: #0f172a;--border: #1f2a44;--text: #e5e7eb;--muted: #9ca3af;--primary: #60a5fa;--primary-contrast: #0b1220;--danger: #F87171;--danger-contrast: #0b1220;--danger-tint: rgba(248, 113, 113, .15);--chip-bg: #0b1220;--table-header-bg: #0b1528;--tab-active-bg: #162039;color-scheme:dark;--pill-active-bg: #e5e7eb;--pill-active-color: #0b1220;--gradient-primary: linear-gradient(135deg, #4c63d2 0%, #5a3f8c 100%);--gradient-secondary: linear-gradient(135deg, #c77bb8 0%, #c4455c 100%);--gradient-accent: linear-gradient(135deg, #3d8dd4 0%, #00c4d4 100%);--gradient-success: linear-gradient(135deg, #059669 0%, #047857 100%);--gradient-danger: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);--gradient-warning: linear-gradient(135deg, #d97706 0%, #b45309 100%);--gradient-info: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);--btn-primary-gradient: linear-gradient(135deg, #4c63d2 0%, #5a3f8c 100%);--btn-secondary-gradient: linear-gradient(135deg, #c77bb8 0%, #c4455c 100%);--btn-accent-gradient: linear-gradient(135deg, #3d8dd4 0%, #00c4d4 100%)}html,body,#root{height:100%}html,body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}*,*:before,*:after{box-sizing:border-box}#root{overflow-x:hidden}h1,h2,h3{font-weight:700;color:var(--text)}label,.label{font-weight:600;color:var(--text)}button{font-family:var(--font-sans)}table{font-size:14px}.muted{color:var(--muted)}.app-header{position:sticky;top:0;z-index:50;width:100%;padding:10px 16px;background:var(--card-bg);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0000000a}.app-header-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.user-chip{display:inline-flex;align-items:center;gap:10px;background:var(--card-bg);border:1px solid var(--border);border-radius:9999px;padding:6px 10px}.user-chip .avatar{width:28px;height:28px;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;background:var(--chip-bg);color:var(--text);font-weight:800;font-size:14px}.user-chip .label{font-weight:600;color:var(--text);font-size:13px}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 2px 8px #0000000f;transition:box-shadow .2s ease-in-out}.card:hover{box-shadow:0 4px 12px #00000014}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;font-weight:700;padding:8px 16px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:all .2s ease-in-out;box-shadow:0 2px 4px #0000001a}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #0000001a}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.btn-primary{background:var(--btn-primary-gradient);border:none;color:#fff;box-shadow:0 4px 10px #667eea4d}.btn-primary:hover:not(:disabled){box-shadow:0 6px 15px #667eea66}.btn-outline{background:var(--card-bg);border:1px solid var(--border);color:var(--text);box-shadow:0 1px 2px #0000000d}.btn-outline:hover:not(:disabled){border-color:var(--primary);background:var(--tab-active-bg)}.btn.small{padding:6px 12px;font-weight:600;font-size:12px}.btn-danger{background:var(--gradient-danger);border:none;color:#fff;box-shadow:0 4px 10px #ef44444d}.btn-danger:hover:not(:disabled){box-shadow:0 6px 15px #ef444466}.btn-danger-outline{background:var(--card-bg);border:1px solid var(--danger);color:var(--danger)}.btn-danger-outline:hover:not(:disabled){background:var(--danger-tint)}.btn-outline-blue{background:#fff;border:1px solid var(--border);color:var(--primary)}.btn-outline-blue:hover{background:#f8fafc;border-color:var(--primary)}[data-theme=dark] .btn-outline-blue{background:#fff;border-color:var(--border);color:var(--primary)}[data-theme=dark] .btn-outline-blue:hover{background:#f8fafc;border-color:var(--primary)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--card-bg);color:var(--text);text-decoration:none;cursor:pointer;transition:background .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out}.icon-btn:hover{background:var(--tab-active-bg);border-color:var(--primary)}.icon-btn svg{width:18px;height:18px}.icon-btn-md{width:36px;height:36px;border-radius:10px}.icon-btn-table{background:var(--card-bg);border:1px solid var(--border);color:var(--text)}.icon-btn-table:hover{background:var(--tab-active-bg);border-color:var(--primary)}.icon-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.icon-btn-primary{background:var(--btn-primary-gradient);border:none;color:#fff;box-shadow:0 4px 10px #667eea4d}.icon-btn-primary:hover{box-shadow:0 6px 15px #667eea66;transform:translateY(-1px)}.file-input{display:none}.upload-btn{display:inline-flex;align-items:center;gap:8px;background:var(--btn-primary-gradient);color:#fff;border:none;border-radius:9999px;padding:10px 16px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;text-decoration:none;box-shadow:0 4px 10px #667eea4d;transition:all .2s ease-in-out}.upload-btn:hover{transform:translateY(-1px);box-shadow:0 6px 15px #667eea66}.upload-btn:active{transform:translateY(0)}.upload-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:#fff3;border-radius:9999px;padding:2px}.upload-hint{font-size:12px;color:var(--muted);margin-top:6px}.upload-summary{margin-top:6px;font-size:12px;color:var(--muted)}.dropzone{position:relative;border:2px dashed var(--border);background:var(--card-bg);border-radius:12px;padding:18px 16px;min-height:86px;display:flex;align-items:center;transition:all .2s ease-in-out;box-shadow:0 1px 3px #0000000d}.dropzone:hover{border-color:#667eea;box-shadow:0 2px 6px #667eea26}.dropzone.dragover{border-color:#667eea;background:linear-gradient(135deg,#667eea0d,#764ba20d);box-shadow:0 0 0 3px #667eea1a inset,0 4px 12px #667eea33}.dz-badge{position:absolute;top:10px;right:10px;font-size:12px;font-weight:700;color:#fff;background:var(--btn-primary-gradient);border:none;padding:4px 10px;border-radius:9999px;box-shadow:0 2px 4px #667eea4d}.dz-body{width:100%;text-align:center}.dz-text{color:var(--text);font-weight:500}.dz-sub{margin-top:8px;font-size:12px;color:var(--muted);white-space:normal;word-break:break-word;max-height:96px;overflow:auto}.browse-btn{display:inline-block;margin-left:6px;background:var(--btn-primary-gradient);color:#fff;border:none;border-radius:8px;padding:2px 10px;font-weight:700;cursor:pointer;box-shadow:0 2px 4px #667eea4d;transition:all .2s ease-in-out}.browse-btn:hover{transform:translateY(-1px);box-shadow:0 4px 6px #667eea66}.input{border:1px solid var(--border);border-radius:8px;padding:8px 10px;outline:none;background:var(--card-bg);color:var(--text);transition:all .2s ease-in-out}.input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.select{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--card-bg);color:var(--text);transition:all .2s ease-in-out;cursor:pointer}.select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.select-chip{border-radius:9999px;font-weight:700;padding:8px 14px;background:var(--tab-active-bg);border:1px solid #667eea;color:var(--text);transition:all .2s ease-in-out}.select-chip:hover{border-color:#764ba2;box-shadow:0 2px 4px #667eea33}[data-theme=dark] .select-chip{background:#111a2e;border-color:#4c63d2}input,select,textarea{color:var(--text);transition:all .2s ease-in-out}input[type=text],input[type=month],input[type=file],input[type=number]{background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:6px}input[type=text]:focus,input[type=month]:focus,input[type=number]:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.tabs{display:flex;gap:12px;margin:0 0 16px;background:var(--bg);border:0;border-radius:0;box-shadow:none;position:sticky;top:var(--header-h, 64px);z-index:45;padding:12px 0}.tab-btn{border-radius:9999px;font-weight:700;padding:10px 18px;border:1px solid var(--border);background:var(--card-bg);color:var(--text);transition:all .2s ease-in-out;position:relative;box-shadow:0 1px 2px #0000000a}.tab-btn.active{background:var(--btn-primary-gradient);color:#fff;border:none;box-shadow:0 4px 10px #667eea4d}.tab-btn.active:after{content:none}.tab-btn:hover:not(.active){border-color:#667eea;box-shadow:0 2px 6px #667eea26;transform:translateY(-1px)}.menu{position:absolute;top:44px;right:0;width:220px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000014;padding:8px}.menu .menu-name{font-weight:700;color:var(--text);padding:8px;border-bottom:1px solid var(--border)}.menu .menu-item{width:100%;text-align:left;background:var(--card-bg);border:0;color:var(--text);font-weight:600;padding:10px 8px;border-radius:8px;cursor:pointer}.menu .menu-item:hover{background:#0000000a}.theme-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.theme-switch{width:46px;height:26px;border-radius:9999px;position:relative;background:#e5e7eb;box-shadow:inset 0 0 0 1px var(--border);transition:background .2s ease-in-out,box-shadow .2s ease-in-out}.theme-switch.on{background:linear-gradient(135deg,#60a5fa,#3b82f6);box-shadow:inset 0 0 0 1px #3b82f666}.theme-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;transition:transform .2s ease-in-out}.theme-switch.on .theme-knob{transform:translate(20px)}.toggle-text{font-weight:700;color:var(--text)}[data-theme=dark] .theme-switch{background:#19233a;box-shadow:inset 0 0 0 1px #243252}[data-theme=dark] .theme-switch.on{background:linear-gradient(135deg,#5ea2fa,#2563eb);box-shadow:inset 0 0 0 1px #2563eb80}[data-theme=dark] .dashboard-card-1{background:linear-gradient(135deg,#4c63d2,#5a3f8c)!important;box-shadow:0 4px 6px #0000004d!important}[data-theme=dark] .dashboard-card-2{background:linear-gradient(135deg,#c77bb8,#c4455c)!important;box-shadow:0 4px 6px #0000004d!important}[data-theme=dark] .dashboard-card-3{background:linear-gradient(135deg,#3d8dd4,#00c4d4)!important;box-shadow:0 4px 6px #0000004d!important}.status-pill{border-radius:9999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block;box-shadow:0 2px 4px #0000001a}.status-pill.completed{background:var(--gradient-success);color:#fff;border:none}.status-pill.failed{background:var(--gradient-danger);color:#fff;border:none}.status-pill.queued,.status-pill.processing,.status-pill.pending{background:var(--gradient-info);color:#fff;border:none}.message-success{background:linear-gradient(135deg,#10b9811a,#0596691a);border:1px solid rgba(16,185,129,.3);color:#059669;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}.message-error{background:linear-gradient(135deg,#ef44441a,#dc26261a);border:1px solid rgba(239,68,68,.3);color:#dc2626;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}.message-info{background:linear-gradient(135deg,#3b82f61a,#2563eb1a);border:1px solid rgba(59,130,246,.3);color:#2563eb;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}[data-theme=dark] .message-success{background:linear-gradient(135deg,#10b98126,#05966926);border-color:#10b98166;color:#34d399}[data-theme=dark] .message-error{background:linear-gradient(135deg,#ef444426,#dc262626);border-color:#ef444466;color:#f87171}[data-theme=dark] .message-info{background:linear-gradient(135deg,#3b82f626,#2563eb26);border-color:#3b82f666;color:#60a5fa}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-section{padding:16px 0;border-top:1px solid var(--border)}.form-section:first-child{border-top:0;padding-top:0}.right-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.form-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}@media (max-width: 900px){.form-grid-2{grid-template-columns:1fr}.form-row{flex-direction:column;align-items:flex-start;gap:8px}.right-actions{justify-content:flex-start;margin-top:8px}}.table thead th{background:var(--table-header-bg);border-bottom:1px solid var(--border);color:var(--text);font-weight:700;padding:10px;text-align:left}.table tbody td{padding:10px;color:var(--text);border-bottom:1px solid var(--border)}.signin-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg);position:relative}.signin-topbar{position:absolute;top:14px;right:16px}.signin-card{width:520px;max-width:92vw;text-align:center;padding:32px 28px;border-radius:16px;background:var(--card-bg);border:1px solid var(--border);box-shadow:0 8px 30px #0000000f}.signin-title{margin:6px 0 4px;font-size:28px;line-height:1.2;color:var(--text)}.signin-subtitle{margin:0 0 4px;color:var(--muted);font-weight:600}
