:root{--bg: #f1f5f9;--card: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #4f46e5;--primary-h: #4338ca;--danger: #dc2626;--ok: #059669;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:0 24px;height:56px;background:#0f172a;color:#f8fafc;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.topbar::-webkit-scrollbar{display:none}.brand{display:flex;align-items:center;gap:8px;font-weight:600;white-space:nowrap;flex-shrink:0}.tabs{display:flex;gap:4px;flex-shrink:0}.tab{display:inline-flex;align-items:center;gap:6px;background:transparent;color:#cbd5e1;border:none;padding:8px 14px;border-radius:8px;font-weight:500;white-space:nowrap;flex-shrink:0}.tab:hover{color:#fff}.tab.active{background:#334155;color:#fff}.userbox{display:flex;align-items:center;gap:12px;white-space:nowrap;flex-shrink:0}.username{color:#cbd5e1;font-size:14px}.btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:8px;padding:8px 14px;font-weight:500;background:var(--primary);color:#fff}.btn:hover{background:var(--primary-h)}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:transparent;color:#cbd5e1;border:1px solid #334155}.btn.ghost:hover{background:#1e293b;color:#fff}.btn.secondary{background:#e2e8f0;color:var(--text)}.btn.secondary:hover{background:#cbd5e1}.content{max-width:1680px;width:100%;margin:0 auto;padding:24px;flex:1}.page-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.page-head h2{margin:0;font-size:22px}.export-group{display:flex;align-items:center;gap:8px;margin-right:auto}.export-label{display:flex;align-items:center;gap:6px;font-size:13px}.export-label select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--card);font-size:13px}.range{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.range label{font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.range input{padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:#fff}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;gap:12px;align-items:center}.kpi-icon{width:42px;height:42px;border-radius:10px;background:#eef2ff;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-label{font-size:13px;color:var(--muted)}.kpi-value{font-size:22px;font-weight:700}.kpi-sub{font-size:12px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.chart-card h3{margin:0 0 12px;font-size:15px}.vendor-list{list-style:none;margin:0;padding:0}.vendor-list li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.vendor-list li:last-child{border-bottom:none}.pie-legend{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.pie-legend li{display:flex;align-items:center;gap:8px;font-size:13px}.pie-legend .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.pie-legend .name{flex:1;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-legend .amt{font-weight:600;font-variant-numeric:tabular-nums}.amt{font-weight:600}.muted{color:var(--muted)}.alert{background:#fee2e2;color:#991b1b;padding:10px 14px;border-radius:8px;margin-bottom:12px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:center}.toolbar input,.toolbar select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}.toolbar .spacer{flex:1}.table-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafc;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px;vertical-align:top}.table tr:last-child td{border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.th-sort{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;font:inherit;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.th-sort:hover{color:var(--primary)}.th-sort.active{color:var(--text);font-weight:600}.th-sort .sort-idle{opacity:0}.th-sort:hover .sort-idle{opacity:.4}.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#eef2ff;color:var(--primary);font-size:12px;white-space:nowrap}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 4px 0;font-size:13px}.pagination-buttons{display:flex;align-items:center;gap:10px}.pagination-buttons .btn{padding:6px 12px;font-size:13px}.row-actions{display:flex;gap:4px}.icon-btn{border:none;background:transparent;color:var(--muted);padding:6px;border-radius:6px;display:inline-flex}.icon-btn:hover{background:#f1f5f9;color:var(--text)}.icon-btn.danger:hover{color:var(--danger);background:#fee2e2}.empty{padding:40px;text-align:center;color:var(--muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal{background:#fff;border-radius:12px;width:100%;max-width:580px;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:17px}.modal-body{padding:20px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:4px}.field.full{grid-column:1 / -1}.field label{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:8px;width:100%}.field textarea{resize:vertical;min-height:60px}.combobox{position:relative}.combobox-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;margin:0;padding:4px;list-style:none;max-height:220px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0f172a24}.combobox-item{padding:7px 10px;border-radius:6px;font-size:14px;cursor:pointer}.combobox-item.active{background:#f1f5f9}.combobox-item.selected{font-weight:600}.combobox-hint{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;padding:8px 10px;font-size:12.5px;color:var(--muted);background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0f172a24}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#312e81);padding:24px}.login-card{background:#fff;border-radius:14px;padding:32px;width:100%;max-width:400px}.login-card .logo{display:flex;align-items:center;gap:10px;margin-bottom:8px;color:var(--primary)}.login-card h1{font-size:20px;margin:0 0 4px}.login-card .sub{color:var(--muted);font-size:14px;margin:0 0 20px}.login-card .field{margin-bottom:14px}.login-card button[type=submit]{width:100%;justify-content:center;padding:10px}.switch{text-align:center;margin-top:14px;font-size:14px;color:var(--muted)}.switch button{background:none;border:none;color:var(--primary);font-weight:600;padding:0}@media(max-width:640px){.form-grid{grid-template-columns:1fr}.content{padding:16px 12px}.topbar{padding:0 12px;gap:12px}.brand{font-size:14px}.tab{padding:8px 12px;font-size:13px}.grid-2{grid-template-columns:1fr}.chart-card{padding:12px;overflow:hidden}.kpi-value{font-size:19px}}.wizard-step{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.wizard-step h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:15px}.step-no{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:700;flex:none}.learn-pill{display:inline-flex;align-items:center;gap:6px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 16px;border:2px dashed var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;text-align:center;transition:border-color .15s}.dropzone:hover{border-color:var(--primary);color:var(--primary)}.dropzone input{display:none}.dz-main{font-weight:600;color:var(--text)}.dz-sub{font-size:12px}.detection-banner{display:flex;gap:12px;align-items:flex-start;background:#eef2ff;border:1px solid #c7d2fe;border-radius:var(--radius);padding:12px 14px}.det-ico{color:var(--primary);flex:none;margin-top:2px}.det-title{font-weight:700;display:flex;align-items:center;gap:8px}.conf-high{background:#ecfdf5;color:var(--ok);border:1px solid #a7f3d0;font-size:11px;font-weight:600;border-radius:999px;padding:1px 8px}.det-sub{color:var(--muted);font-size:13px;margin-top:2px}.det-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}.field-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.field-label input{padding:5px 8px;border:1px solid var(--border);border-radius:6px}.learn-note{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;margin:12px 0 0}.stat-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}.chip{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;border:1px solid var(--border);color:var(--text);border-radius:999px;padding:4px 12px;font-size:13px}.chip.new{background:#ecfdf5;border-color:#a7f3d0;color:var(--ok);font-weight:700}.chip.learned{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9;font-weight:600}.chip.total{background:#0f172a;border-color:#0f172a;color:#fff;font-weight:600}.cat-bars{display:grid;gap:6px;margin-bottom:16px;max-width:480px}.cat-row{display:grid;grid-template-columns:120px 1fr 28px;align-items:center;gap:10px;font-size:13px}.cat-name{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-track{height:10px;background:var(--bg);border-radius:999px;overflow:hidden}.cat-fill{height:100%;background:var(--primary);border-radius:999px}.cat-count{text-align:right;font-weight:600}.import-table select{max-width:150px;padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:13px}.wizard-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.wizard-result{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.wizard-result .ok{color:var(--ok)}.wizard-result h3{margin:0}.wizard-result .badge{font-size:13px}.wizard-actions .btn{display:inline-flex;align-items:center;gap:6px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.settings-form{max-width:420px}.settings-form .field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.settings-form .field label{font-size:13px;color:var(--muted)}.settings-form .field input{padding:8px 10px;border:1px solid var(--border);border-radius:6px}.success{display:inline-flex;align-items:center;gap:6px;color:var(--ok);background:#ecfdf5;border:1px solid #a7f3d0;padding:8px 12px;border-radius:8px;font-size:14px}.btn.danger{background:var(--danger);color:#fff;display:inline-flex;align-items:center;gap:6px}.btn.danger:hover{background:#b91c1c}.btn.danger:disabled{background:#f87171}.danger-zone{border-color:#fecaca}.danger-zone h3{color:var(--danger)}.login-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}.login-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%}.verify-dev{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:4px;margin:8px 0;word-break:break-all}.verify-dev a{color:var(--primary)}.pw-wrap{position:relative;display:block}.pw-wrap input{width:100%;padding-right:38px}.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--muted);border-radius:6px;padding:0}.pw-toggle:hover{color:var(--text);background:#0000000d}.pw-hint{margin:4px 0 0;font-size:12px;color:var(--muted)}.file-chips{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.file-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:6px 10px;background:#f8fafc;font-size:13px}.file-chip .file-name,.file-result .file-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chip .file-name{flex:1}.file-chip .icon-btn{flex:none}.file-results{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.file-result{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:var(--radius);background:#f8fafc;padding:10px 12px}.file-result-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.file-result .det-title{font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:6px}.file-result .det-sub{margin-top:2px}.result-list{width:100%;max-width:460px}.result-list .file-result{justify-content:space-between;align-items:center}.result-list .file-name{max-width:60%}.file-cell{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}@media(max-width:980px){.grid-2{grid-template-columns:1fr}}@media(min-width:1400px){.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}.ai-widget{position:fixed;right:20px;bottom:20px;z-index:1000;font-family:inherit}.ai-fab{width:56px;height:56px;border-radius:50%;border:none;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px #0f172a4d;transition:transform .15s ease,background .15s ease}.ai-fab:hover{background:var(--primary-h);transform:scale(1.05)}.ai-panel{position:fixed;right:20px;bottom:20px;width:380px;max-width:calc(100vw - 32px);height:min(560px,calc(100vh - 40px));background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px #0f172a40;display:flex;flex-direction:column;overflow:hidden;animation:ai-pop .18s ease}@keyframes ai-pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.ai-panel-head{display:flex;align-items:center;gap:8px;padding:12px 14px;background:#0f172a;color:#f8fafc;font-weight:600;font-size:14px}.ai-panel-head svg{color:#a5b4fc}.ai-close{margin-left:auto;background:transparent;border:none;color:#cbd5e1;display:flex;align-items:center;padding:4px;border-radius:6px}.ai-close:hover{color:#fff;background:#ffffff1a}.ai-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#f8fafc}.ai-msg{display:flex;gap:8px;max-width:100%}.ai-msg.user{justify-content:flex-end}.ai-msg.assistant .ai-bubble{background:#fff;border:1px solid var(--border)}.ai-msg.user .ai-bubble{background:var(--primary);color:#fff;border-radius:14px 14px 4px}.ai-avatar{width:26px;height:26px;border-radius:50%;background:#e0e7ff;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.ai-bubble{padding:9px 12px;border-radius:14px 14px 14px 4px;font-size:13.5px;line-height:1.45;word-break:break-word;max-width:calc(100% - 40px)}.ai-msg.user .ai-bubble strong,.ai-msg.user .ai-bubble em{color:#fff}.ai-bubble code{background:#0f172a14;padding:1px 4px;border-radius:4px;font-size:12px}.ai-msg.user .ai-bubble code{background:#fff3}.ai-line{min-height:1.2em}.ai-typing{display:inline-flex;gap:4px;align-items:center;padding:12px 14px}.ai-typing span{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:ai-blink 1.2s infinite ease-in-out}.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}@keyframes ai-blink{0%,80%,to{opacity:.3}40%{opacity:1}}.ai-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px}.ai-chip{background:#eef2ff;color:var(--primary);border:1px solid #c7d2fe;border-radius:999px;padding:5px 11px;font-size:12px;cursor:pointer}.ai-chip:hover{background:#e0e7ff}.ai-error{padding:4px 14px 0;font-size:12px;color:var(--danger)}.ai-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:#fff}.ai-input-row input{flex:1;border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13.5px;outline:none}.ai-input-row input:focus{border-color:var(--primary)}.ai-send{width:40px;height:40px;border:none;border-radius:8px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-send:hover:not(:disabled){background:var(--primary-h)}.ai-send:disabled{opacity:.5;cursor:default}@media(max-width:640px){.ai-panel{left:12px;right:12px;bottom:12px;width:auto;height:min(74vh,560px);max-height:calc(100dvh - 90px);border-radius:16px}.ai-widget{right:14px;bottom:14px}}.ai-bubble-col{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:calc(100% - 40px)}.ai-bubble-col .ai-bubble{max-width:100%}.ai-nav-btn{display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer}.ai-nav-btn:hover{background:var(--primary-h)}.head-actions{display:flex;align-items:center;gap:8px}.table th.select-cell,.table td.select-cell{width:34px;padding:8px 6px;text-align:center;vertical-align:middle}.select-cell input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--primary);cursor:pointer}.table tr.row-selected td{background:#eef2ff}.dashboard-page{min-width:0}.dashboard-page .page-head{margin-bottom:24px}.dashboard-page .page-head h2{font-size:28px;letter-spacing:-.6px}.dashboard-eyebrow{margin:0 0 7px;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--primary)}.dashboard-subtitle{color:var(--muted);margin:7px 0 0;font-size:14px}.dashboard-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dashboard-filters{padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:#fff;margin-bottom:24px}.dashboard-filter-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.dashboard-presets{display:flex;flex-wrap:wrap;gap:5px}.dashboard-presets button{border:1px solid transparent;border-radius:7px;padding:8px 11px;font-size:13px;color:#475569;background:transparent}.dashboard-presets button:hover{background:#f1f5f9}.dashboard-presets button.active{background:#eef2ff;color:#4338ca;border-color:#c7d2fe;font-weight:600}.dashboard-account{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted)}.dashboard-account select{max-width:230px}.dashboard-account select,.dashboard-date-form input{padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:#fff;min-width:0}.dashboard-date-form{display:flex;align-items:center;flex-wrap:wrap;gap:9px;border-top:1px solid #f1f5f9;margin-top:14px;padding-top:14px;font-size:13px}.dashboard-date-form label{color:var(--muted)}.dashboard-filter-note{margin-left:auto;font-size:12px;color:var(--muted)}.dashboard-field-error{color:#b91c1c;font-size:13px;margin:12px 0 0}.dashboard-draft-note{color:#92400e;font-size:12px;margin:12px 0 0}.dashboard-loading{min-height:260px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.dashboard-error{display:flex;justify-content:space-between;align-items:center;gap:12px}.dashboard-period-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:14px}.dashboard-period-heading h3{margin:0;font-size:17px}.dashboard-period-heading>span{color:var(--muted);font-size:12px}.dashboard-kpis{gap:14px;margin-bottom:10px}.dashboard-kpis .kpi-card{align-items:flex-start;padding:19px 17px;border-radius:12px;min-width:0}.dashboard-kpis .kpi-card:first-child{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f5f5ff)}.dashboard-kpis .kpi-card>div:last-child{min-width:0}.dashboard-kpis .kpi-value{font-size:clamp(23px,2vw,29px);letter-spacing:-.6px;margin:4px 0;overflow-wrap:anywhere}.dashboard-kpis .kpi-sub{line-height:1.5}.dashboard-change{display:inline-flex;align-items:center;gap:3px;margin-top:10px;border-radius:5px;padding:3px 5px;font-size:11px;font-weight:500}.dashboard-change.higher{background:#fff7ed;color:#9a3412}.dashboard-change.lower{background:#ecfdf5;color:#047857}.dashboard-change.neutral{color:var(--muted);padding-left:0}.dashboard-comparison{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 22px}.dashboard-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.dashboard-insight{position:relative;display:flex;flex-direction:column;text-align:left;gap:5px;padding:15px 40px 15px 16px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);min-width:0}button.dashboard-insight:hover{border-color:#a5b4fc;background:#fafaff}.dashboard-insight>span{color:var(--muted);font-size:12px}.dashboard-insight strong{font-size:17px;font-weight:600;overflow-wrap:anywhere}.dashboard-insight small{color:var(--muted);font-size:11px;line-height:1.5}.dashboard-insight>svg{position:absolute;right:15px;top:18px;color:var(--primary)}.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,1fr);gap:18px;margin-bottom:18px}.dashboard-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.dashboard-page .chart-card{min-width:0;border-radius:12px;padding:20px}.dashboard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.dashboard-card-head h3{margin:0 0 5px;font-size:16px}.dashboard-card-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.dashboard-chart-key{font-size:11px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);white-space:nowrap}.dashboard-chart-key i{width:8px;height:8px;border-radius:50%;background:var(--primary)}.dashboard-trend{display:flex;flex-direction:column}.dashboard-chart-data{margin-top:auto;padding-top:18px;font-size:12px;color:var(--muted)}.dashboard-chart-data summary{cursor:pointer}.dashboard-chart-data .table-wrap{margin-top:12px;max-height:280px}.dashboard-donut{position:relative;margin:-6px 0 6px}.dashboard-donut-label{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.dashboard-donut-label strong{font-size:27px;font-weight:650}.dashboard-donut-label span{font-size:12px;color:var(--muted)}.dashboard-category-list,.dashboard-payment-list,.dashboard-vendor-list{margin:0;padding:0;list-style:none}.dashboard-category-list button{width:100%;display:flex;align-items:center;gap:8px;border:none;border-radius:6px;background:transparent;padding:9px 4px;font-size:12px;text-align:left;color:var(--text)}.dashboard-category-list button:hover{background:#f1f5f9}.dashboard-category-list i{width:8px;height:8px;border-radius:3px;flex-shrink:0}.dashboard-category-name{flex:1;min-width:0;overflow-wrap:anywhere}.dashboard-category-share{color:var(--muted);width:43px;text-align:right;flex-shrink:0}.dashboard-category-list strong{min-width:76px;text-align:right;font-variant-numeric:tabular-nums}.dashboard-text-button{display:inline-flex;align-items:center;gap:5px;color:var(--primary);background:none;border:0;padding:0;font-size:13px;text-align:left}.dashboard-text-button:hover{text-decoration:underline}.dashboard-show-more{margin:13px 4px 0;font-size:12px}.dashboard-payment-list{display:grid;gap:18px}.dashboard-payment-list li>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:13px}.dashboard-payment-list strong{font-weight:600;font-variant-numeric:tabular-nums}.dashboard-payment-list small{font-size:11px;color:var(--muted)}.dashboard-bar-track{height:7px;border-radius:8px;background:#f1f5f9;margin:9px 0 4px;overflow:hidden}.dashboard-bar-track>span{display:block;height:100%;border-radius:8px}.dashboard-vendor-list li{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #f1f5f9;font-size:13px}.dashboard-vendor-list li:last-child{border-bottom:0}.dashboard-vendor-rank{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#f1f5f9;color:var(--muted);font-size:11px;flex-shrink:0}.dashboard-vendor-name{flex:1;min-width:0;overflow-wrap:anywhere}.dashboard-vendor-list strong{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.dashboard-recent{margin-bottom:20px}.dashboard-recent .table-wrap{border:none;border-radius:8px}.dashboard-recent table{min-width:640px}.dashboard-recent .table th.num,.dashboard-recent .table td.num{text-align:right}.dashboard-recent-vendor{display:block;max-width:360px;overflow-wrap:anywhere}.dashboard-review-badge{display:inline-block;color:#92400e;background:#fffbeb;border-radius:4px;font-size:10px;padding:3px 5px;margin-top:5px}.dashboard-nowrap{white-space:nowrap}.dashboard-empty{text-align:center;padding:45px 20px;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;color:var(--muted)}.dashboard-empty h3{color:var(--text);margin-bottom:8px}.dashboard-empty p{font-size:14px;line-height:1.6}.dashboard-empty .dashboard-actions{justify-content:center;margin-top:20px}@media(max-width:1000px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-main-grid{grid-template-columns:minmax(0,1fr)}.dashboard-categories .dashboard-donut{max-width:300px;margin:0 auto}}@media(max-width:640px){.dashboard-page .page-head h2{font-size:25px}.dashboard-page .page-head{gap:18px}.dashboard-filters{padding:13px}.dashboard-filter-note{margin:5px 0 0;flex-basis:100%}.dashboard-date-form>svg{display:none}.dashboard-date-form{gap:8px}.dashboard-date-form input{font-size:12px;width:125px}.dashboard-kpis{grid-template-columns:1fr}.dashboard-insights{grid-template-columns:1fr;gap:9px}.dashboard-secondary-grid{grid-template-columns:minmax(0,1fr)}.dashboard-page .chart-card{padding:16px 12px}.dashboard-chart-key{display:none}.dashboard-account select{max-width:190px}}
