:root{--brand: #2563eb;--brand-dark: #1d4ed8;--brand-light: #dbeafe;--brand-soft: #eff6ff;--accent: #2563eb;--accent-soft: #dbeafe;--amber: #f59e0b;--amber-soft: #fef3c7;--slate-900: #0f172a;--slate-800: #1e293b;--slate-600: #475569;--slate-400: #94a3b8;--slate-200: #e2e8f0;--slate-100: #f1f5f9;--slate-50: #f8fafc;--bg: var(--slate-50);--card: #FFFFFF;--text: var(--slate-900);--muted: var(--slate-600);--border: var(--slate-200);--success: #16a34a;--error: #dc2626;--warning: var(--amber);--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--shadow-lg: 0 24px 64px rgba(15, 23, 42, .18);font-family:-apple-system,BlinkMacSystemFont,Inter,Helvetica Neue,system-ui,sans-serif;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg);color:var(--text);min-height:100vh}button{font-family:inherit;cursor:pointer}.btn-primary{background:var(--brand);color:#fff;border:none;padding:10px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:background .15s ease,transform .05s ease;display:inline-flex;align-items:center;gap:6px}.btn-primary:hover{background:var(--brand-dark)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{background:var(--slate-400);cursor:not-allowed}.btn-secondary{background:#fff;color:var(--slate-800);border:1px solid var(--border);padding:10px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:background .15s ease}.btn-secondary:hover{background:var(--slate-100)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.app-shell{max-width:1180px;margin:0 auto;padding:28px 24px 64px}.app-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 0;margin-bottom:24px;border-bottom:1px solid var(--border)}.app-brand{display:flex;align-items:center;gap:12px}.app-brand img{height:36px;width:auto}.app-brand-text{display:flex;flex-direction:column;line-height:1.1}.app-brand-name{font-size:16px;font-weight:700;color:var(--slate-900);letter-spacing:-.01em}.app-brand-sub{font-size:12px;color:var(--muted);margin-top:2px}.page-title{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--slate-900);margin:0 0 4px}.page-subtitle{font-size:14px;color:var(--muted);margin:0 0 24px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500;background:var(--brand-soft);color:var(--brand)}.status-pill.success{background:#dcfce7;color:var(--success)}.status-pill.muted{background:var(--slate-100);color:var(--muted)}.status-pill.warn{background:var(--amber-soft);color:#b45309}.dropzone{border:2px dashed var(--slate-200);border-radius:var(--radius);padding:40px 24px;text-align:center;background:#fff;transition:border-color .15s ease,background .15s ease}.dropzone.active{border-color:var(--brand);background:var(--brand-soft)}.dropzone-hint{color:var(--muted);font-size:13px;margin-top:6px}.doc-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.doc-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fff;border-radius:var(--radius-sm);border:1px solid var(--border);transition:border-color .15s ease}.doc-row:hover{border-color:var(--slate-400)}.doc-row-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.doc-filename{font-weight:500;font-size:14px;color:var(--slate-900)}.doc-meta{font-size:12px;color:var(--muted)}input,select,textarea{font-family:inherit;color:var(--slate-900)}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)!important}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted);font-size:14px}.app-topbar-right{display:flex;align-items:center;gap:12px}.app-user{font-size:13px;color:var(--muted)}.btn-logout{background:transparent;border:1px solid var(--border);color:var(--slate-800);padding:6px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background .15s ease,border-color .15s ease}.btn-logout:hover{background:var(--slate-100);border-color:var(--slate-400)}.login-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:radial-gradient(at 20% 0%,var(--brand-soft) 0px,transparent 50%),radial-gradient(at 80% 100%,var(--amber-soft) 0px,transparent 40%),var(--bg)}.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.login-brand img{height:36px;width:auto}.login-brand-name{font-size:16px;font-weight:600;color:var(--slate-900);line-height:1.2}.login-brand-sub{font-size:12px;color:var(--muted)}.login-form{display:flex;flex-direction:column;gap:14px}.login-field{display:flex;flex-direction:column;gap:6px}.login-label{font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.login-input-wrap{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:#fff;color:var(--slate-400)}.login-input-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);color:var(--brand)}.login-input-wrap input{border:none;outline:none;background:transparent;font-size:14px;color:var(--slate-900);width:100%}.login-error{font-size:13px;color:var(--error);background:#fef2f2;border:1px solid #fecaca;padding:8px 12px;border-radius:var(--radius-sm)}.login-submit{background:var(--brand);color:#fff;border:none;padding:12px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;margin-top:4px;transition:background .15s ease}.login-submit:hover:not(:disabled){background:var(--brand-dark)}.login-submit:disabled{background:var(--slate-400);cursor:not-allowed}.login-footer{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);text-align:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
