:root{--bg: #0c0f14;--bg-elevated: #131820;--bg-card: #181d27;--border: #2a3142;--border-subtle: #1e2430;--text: #e8ecf4;--text-muted: #8b95a8;--text-dim: #5c667a;--accent: #5b9cf5;--accent-dim: #3d7dd4;--accent-glow: rgba(91, 156, 245, .15);--success: #4ade80;--warning: #fbbf24;--danger: #f87171;--purple: #a78bfa;--font: "DM Sans", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--radius: 12px;--radius-sm: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none}input[type=file]{display:none}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{max-width:1200px;margin:0 auto;padding:2rem 1.5rem 4rem}.header{text-align:center;margin-bottom:2.5rem}.header-badge{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-glow);border:1px solid rgba(91,156,245,.25);padding:.35rem .75rem;border-radius:999px;margin-bottom:1rem}.header h1{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.header p{color:var(--text-muted);max-width:540px;margin:0 auto;font-size:1.05rem}.privacy-note{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font-size:.85rem;color:var(--text-dim)}.privacy-note svg{flex-shrink:0;opacity:.7}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:3rem 2rem;text-align:center;background:var(--bg-elevated);transition:border-color .2s,background .2s;cursor:pointer}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-glow)}.upload-zone.has-file{border-style:solid;border-color:var(--success);background:#4ade800f}.upload-icon{width:48px;height:48px;margin:0 auto 1rem;color:var(--text-muted)}.upload-zone h2{font-size:1.15rem;font-weight:600;margin-bottom:.35rem}.upload-zone p{color:var(--text-muted);font-size:.9rem}.upload-formats{margin-top:1rem;font-family:var(--mono);font-size:.8rem;color:var(--text-dim)}.upload-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;transition:background .15s,transform .1s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dim)}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--text-dim)}.btn-ghost{color:var(--text-muted);border:1px solid transparent}.btn-ghost:hover{color:var(--text);background:var(--bg-card)}.error-banner{margin-top:1rem;padding:.85rem 1rem;background:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-sm);color:var(--danger);font-size:.9rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin:2rem 0 1.5rem}.dashboard-header h2{font-size:1.35rem;font-weight:600}.file-info{font-family:var(--mono);font-size:.8rem;color:var(--text-dim)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.metric-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:1.15rem 1.25rem}.metric-label{font-size:.78rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.metric-value{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.metric-value.success{color:var(--success)}.metric-value.warning{color:var(--warning)}.metric-value.danger{color:var(--danger)}.metric-value.accent{color:var(--accent)}.metric-sub{font-size:.78rem;color:var(--text-dim);margin-top:.2rem}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.25rem;margin-bottom:1.5rem}.chart-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:1.25rem}.chart-card.full-width{grid-column:1 / -1}.chart-card h3{font-size:.95rem;font-weight:600;margin-bottom:1rem;color:var(--text)}.chart-wrap{position:relative;height:260px}.chart-wrap.tall{height:320px}.table-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem}.table-card h3{font-size:.95rem;font-weight:600;margin-bottom:1rem}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;padding:.6rem .75rem;font-weight:500;color:var(--text-muted);border-bottom:1px solid var(--border);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.data-table td{padding:.65rem .75rem;border-bottom:1px solid var(--border-subtle);vertical-align:top}.data-table tr:last-child td{border-bottom:none}.data-table .rank{color:var(--text-dim);font-family:var(--mono);font-size:.8rem;width:2rem}.data-table .message-cell{max-width:400px;word-break:break-word}.data-table .count-cell{font-family:var(--mono);font-weight:500;color:var(--accent);text-align:right;white-space:nowrap}.outcome-badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.2rem .5rem;border-radius:4px;text-transform:capitalize}.outcome-badge.resolved{background:#4ade8026;color:var(--success)}.outcome-badge.fallback{background:#fbbf2426;color:var(--warning)}.outcome-badge.abandoned{background:#f8717126;color:var(--danger)}.outcome-badge.handoff{background:#a78bfa26;color:var(--purple)}.format-help{margin-top:2.5rem;padding:1.5rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius)}.format-help h3{font-size:1rem;font-weight:600;margin-bottom:.75rem}.format-help p{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}.code-block{font-family:var(--mono);font-size:.78rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;overflow-x:auto;color:var(--text-muted);line-height:1.6;white-space:pre}@media(max-width:640px){.app{padding:1.25rem 1rem 3rem}.charts-grid{grid-template-columns:1fr}.metric-value{font-size:1.4rem}}
