:root{--bg: #f3f5fb;--bg-soft: #f8fafc;--surface: #ffffff;--surface-2: #eef2f7;--surface-hover: #e2e8f0;--text: #111827;--text-soft: #64748b;--text-muted: #6b7280;--border: #e5e7eb;--border-strong: #cbd5e1;--primary: #111827;--primary-contrast: #ffffff;--sidebar-bg: linear-gradient(180deg, #0f172a 0%, #131c31 100%);--sidebar-text: #ffffff;--sidebar-muted: #cbd5e1;--sidebar-hover: rgba(255, 255, 255, .08);--shadow-soft: 0 10px 30px rgba(15, 23, 42, .06);--shadow-strong: 0 20px 50px rgba(15, 23, 42, .2);--overlay: rgba(15, 23, 42, .45);--status-approved-bg: #dcfce7;--status-approved-text: #166534;--status-pending-bg: #fef3c7;--status-pending-text: #92400e;--status-review-bg: #dbeafe;--status-review-text: #1d4ed8}[data-theme=dark]{--bg: #0b1220;--bg-soft: #111827;--surface: #172033;--surface-2: #1f2a40;--surface-hover: #273249;--text: #f8fafc;--text-soft: #cbd5e1;--text-muted: #94a3b8;--border: #263246;--border-strong: #334155;--primary: #f8fafc;--primary-contrast: #0f172a;--sidebar-bg: linear-gradient(180deg, #050b16 0%, #0b1220 100%);--sidebar-text: #f8fafc;--sidebar-muted: #94a3b8;--sidebar-hover: rgba(255, 255, 255, .08);--shadow-soft: 0 10px 30px rgba(0, 0, 0, .28);--shadow-strong: 0 20px 50px rgba(0, 0, 0, .4);--overlay: rgba(2, 6, 23, .7);--status-approved-bg: rgba(34, 197, 94, .18);--status-approved-text: #86efac;--status-pending-bg: rgba(245, 158, 11, .18);--status-pending-text: #fcd34d;--status-review-bg: rgba(59, 130, 246, .18);--status-review-text: #93c5fd}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:12px 14px;outline:none;background:var(--surface);color:var(--text)}input:focus,select:focus,textarea:focus{border-color:var(--border-strong);box-shadow:0 0 0 4px #94a3b81f}label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600;color:var(--text-soft)}a{color:inherit;text-decoration:none}button{border:none;cursor:pointer;transition:all .2s ease}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);padding:24px;display:flex;flex-direction:column;justify-content:space-between}.sidebar-brand{font-size:24px;font-weight:800;margin-bottom:32px;letter-spacing:.4px}.sidebar-nav{display:flex;flex-direction:column;gap:12px}.sidebar-nav-item{width:100%;text-align:left;padding:12px 14px;border-radius:14px;color:var(--sidebar-muted);background:transparent}.sidebar-nav-item.active,.sidebar-nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text);transform:translate(2px)}.sidebar-foot{margin-top:24px}.sidebar-link{display:inline-block;padding:10px 14px;border-radius:999px;background:var(--sidebar-hover);color:var(--sidebar-muted)}.main-content{padding:24px 32px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.topbar h2{margin:0 0 6px;font-size:30px}.topbar p{margin:0;color:var(--text-muted)}.topbar-actions{display:flex;gap:12px}.theme-toggle{padding:11px 16px;border-radius:12px;background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.theme-toggle:hover{background:var(--bg-soft)}.theme-toggle-label{font-weight:600}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.summary-card{background:var(--surface);border-radius:20px;padding:18px 20px;box-shadow:var(--shadow-soft)}.summary-card p{margin:0 0 8px;color:var(--text-muted);font-size:14px}.summary-card h3{margin:0;font-size:28px}.filters-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.search-input{flex:1;min-width:240px}.filter-pills{display:flex;gap:10px;flex-wrap:wrap}.filter-pill{background:var(--surface);color:var(--text-soft);padding:10px 14px;border-radius:999px;border:1px solid var(--border);text-transform:capitalize}.filter-pill.active,.filter-pill:hover{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}.content-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.panel{background:var(--surface);border-radius:22px;padding:20px;box-shadow:var(--shadow-soft);animation:fadeInUp .35s ease}.panel-header{margin-bottom:16px}.panel h3{margin-top:0}.invoice-table{width:100%;border-collapse:collapse}.invoice-table th,.invoice-table td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--border)}.invoice-table th{font-size:13px;color:var(--text-soft);font-weight:700}.invoice-table tbody tr{cursor:pointer;transition:background .2s ease}.invoice-table tbody tr:hover{background:var(--surface)}.selected-row{background:#6366f11f}.status-badge{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;text-transform:capitalize}.status-approved{background:var(--status-approved-bg);color:var(--status-approved-text)}.status-pending{background:var(--status-pending-bg);color:var(--status-pending-text)}.status-review{background:var(--status-review-bg);color:var(--status-review-text)}.detail-panel{display:flex;flex-direction:column;gap:20px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.detail-header p{margin:6px 0 0;color:var(--text-soft);font-size:14px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-grid p{margin:6px 0 0;color:var(--text-soft)}.detail-section strong{display:block;margin-bottom:8px}.detail-section p{margin:0;color:var(--text-soft);line-height:1.6}.line-items{display:flex;flex-direction:column;gap:10px}.line-item{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;background:var(--bg-soft)}.detail-actions{display:flex;gap:12px;margin-top:auto}.btn{padding:11px 16px;border-radius:12px;font-weight:600}.btn-primary{background:var(--primary);color:var(--primary-contrast)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 20px #11182726}.btn-secondary{background:var(--surface-2);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover)}.modal-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease;z-index:1000}.modal-card{width:min(100%,460px);background:var(--surface);border-radius:24px;padding:24px;box-shadow:var(--shadow-strong);animation:popIn .22s ease}.import-modal{width:min(100%,720px)}.modal-card h3{margin-top:0}.modal-card p{color:#4b5563;line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.import-form{display:flex;flex-direction:column;gap:16px}.upload-dropzone{border:2px dashed #cbd5e1;border-radius:18px;padding:28px;text-align:center;background:var(--bg-soft)}.upload-dropzone p{margin:0 0 6px;font-weight:700;color:#0f172a}.upload-dropzone span{color:#64748b;font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full-width{width:100%}.toast{position:fixed;right:24px;bottom:24px;background:var(--primary);color:var(--primary-contrast);padding:14px 18px;border-radius:14px;box-shadow:var(--shadow-strong);animation:slideUp .25s ease}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.analytics-panel{margin-top:0}.stack-list{display:flex;flex-direction:column;gap:12px}.stack-row,.activity-row,.citation-card{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--bg-soft)}.activity-row p,.citation-card p{margin:6px 0 0;color:var(--text-soft);line-height:1.5}.assistant-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.assistant-chat{display:flex;flex-direction:column;gap:16px}.chat-message{padding:14px 16px;border-radius:16px;max-width:85%}.chat-message strong{display:block;margin-bottom:6px}.chat-message p{margin:0;line-height:1.6}.chat-message.assistant{background:var(--bg-soft)}.chat-message.user{background:#111827;color:#fff;align-self:flex-end}.assistant-input-row{display:flex;gap:12px;margin-top:10px}.assistant-suggestions{margin-top:20px}.assistant-suggestions h4{margin:0 0 12px}.suggestion-pill{display:block;width:100%;text-align:left;margin-bottom:10px;padding:12px 14px;border-radius:14px;background:var(--bg-soft);color:#111827}.suggestion-pill:hover{background:var(--surface-hover)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:1180px){.summary-grid,.analytics-grid,.assistant-layout,.content-grid{grid-template-columns:1fr}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.topbar,.filters-bar,.assistant-input-row{flex-direction:column;align-items:stretch}.detail-grid,.summary-grid,.form-grid{grid-template-columns:1fr}}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 16px}.loading-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.loading-label{margin:0;font-size:14px;color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.error-message-container{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;border-radius:16px;background:#ef444414;border:1px solid rgba(239,68,68,.2)}.error-icon{font-size:28px}.error-text{margin:0;color:#dc2626;font-weight:500;text-align:center}[data-theme=dark] .error-text{color:#fca5a5}.upgrade-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;margin-bottom:20px;border-radius:16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;animation:fadeInUp .3s ease}[data-theme=dark] .upgrade-banner{background:linear-gradient(135deg,#f59e0b26,#f59e0b14);border-color:#f59e0b4d}.upgrade-banner-content{display:flex;align-items:center;gap:12px}.upgrade-banner-content p{margin:0;font-weight:600;color:#92400e}[data-theme=dark] .upgrade-banner-content p{color:#fcd34d}.upgrade-icon{font-size:24px}.upgrade-banner-actions{display:flex;gap:10px}.upload-dropzone{cursor:pointer;transition:all .2s ease}.upload-dropzone:hover,.upload-dropzone.drag-active{border-color:var(--primary);background:#6366f10a;transform:scale(1.01)}.upload-dropzone.has-file{border-color:var(--border-strong);border-style:solid}.upload-icon{font-size:36px;display:block;margin-bottom:8px}.file-preview{display:flex;align-items:center;gap:12px;justify-content:center}.file-icon{font-size:32px}.file-preview p{margin:4px 0 0;font-size:13px}.extracted-results{padding:16px;border-radius:16px;background:var(--bg-soft);border:1px solid var(--border)}.extracted-results h4{margin:0 0 14px;font-size:15px}.extracted-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.extracted-field{display:flex;flex-direction:column;gap:4px}.extracted-field label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.extracted-field span{font-size:15px;font-weight:600}.risk-reasons{margin-top:12px}.risk-reasons label{display:block;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.risk-reasons ul{margin:0;padding-left:18px}.risk-reasons li{font-size:14px;color:#dc2626;margin-bottom:4px}.ocr-text-preview{margin-top:8px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--border);font-size:12px;line-height:1.5;max-height:180px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.btn-sm{padding:7px 12px;font-size:13px}.risk-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;text-transform:capitalize}.risk-high{background:#ef44441f;color:#dc2626}.risk-medium{background:#f59e0b1f;color:#d97706}.risk-low{background:#22c55e1f;color:#16a34a}[data-theme=dark] .risk-high{background:#ef44442e;color:#fca5a5}[data-theme=dark] .risk-medium{background:#f59e0b2e;color:#fcd34d}[data-theme=dark] .risk-low{background:#22c55e2e;color:#86efac}.usage-panel{margin-bottom:24px}.usage-grid{display:flex;flex-direction:column;gap:16px}.usage-item{display:flex;flex-direction:column;gap:6px}.usage-header{display:flex;justify-content:space-between;align-items:center}.usage-label{font-size:14px;font-weight:600;color:var(--text-soft)}.usage-value{font-size:14px;font-weight:700;color:var(--text)}.usage-plan-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700;background:#6366f11f;color:#6366f1}[data-theme=dark] .usage-plan-badge{background:#6366f133;color:#a5b4fc}.usage-bar-track{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.usage-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width .5s ease;min-width:2px}.chart-container{display:flex;flex-direction:column;gap:14px}.bar-chart-row{display:flex;align-items:center;gap:12px}.bar-label{min-width:80px;font-size:13px;font-weight:600;text-transform:capitalize;color:var(--text-soft)}.bar-track{flex:1;height:24px;border-radius:8px;background:var(--surface-2);overflow:hidden}.bar-fill{height:100%;border-radius:8px;transition:width .5s ease;min-width:4px}.bar-value{min-width:28px;text-align:right;font-size:14px;font-weight:700}.chat-messages{display:flex;flex-direction:column;gap:12px;max-height:500px;overflow-y:auto;padding:4px}.chat-message.error{border-left:3px solid #ef4444}.invoice-refs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.invoice-ref-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#6366f11a;color:#6366f1}[data-theme=dark] .invoice-ref-badge{background:#6366f133;color:#a5b4fc}.empty-state{color:var(--text-muted);font-size:14px;font-style:italic}@media(max-width:720px){.extracted-grid{grid-template-columns:1fr 1fr}.upgrade-banner{flex-direction:column;align-items:flex-start}}
