:root{--ink:#0e1922;--ink-2:#4a5560;--ground:#fff;--ground-2:#f6f4f0;--rule:#e2ded6;--accent:#b08d57;--danger:#b4232c;--ok:#2f7d4f;--note:#fbf5e6;--r1:3px;--fs-body:15px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ink:#eeeef0;--ink-2:#a9b1ba;--ground:#0e1922;--ground-2:#15222d;--rule:#26343f;--accent:#cfae7a;--danger:#f07178;--ok:#5cc28a;--note:#2a2618;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font:var(--fs-body) / 1.55 "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;margin:0}a{color:inherit}.bar{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.mark{letter-spacing:.08em;text-transform:uppercase;border-left:3px solid var(--accent);padding-left:10px;font-weight:700}.who{color:var(--ink-2);gap:16px;display:flex}.brand{align-items:center;gap:16px;min-width:0;display:flex}.company,.switcher select{font:inherit;color:var(--ink);font-weight:600}.switcher select{background:var(--ground);border:1px solid var(--rule);border-radius:var(--r1);max-width:40vw;padding:4px 8px}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.page{gap:24px;max-width:860px;margin:0 auto;padding:40px 24px;display:grid}.panel{background:var(--ground-2);border:1px solid var(--rule);border-radius:var(--r1);padding:28px 32px}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.panel h1{margin:0;font-size:1.45rem;font-weight:600}.panel h2{margin:0;font-size:1.1rem;font-weight:600}.panel p{margin:0}.intro p{color:var(--ink-2);max-width:62ch}.badge{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:var(--r1);padding:1px 7px;font-size:.78rem;font-weight:600;display:inline-block}.table{border-collapse:collapse;width:100%;margin:4px 0 20px}.table th{text-align:left;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--rule);padding:8px 12px 8px 0;font-size:.8rem;font-weight:600}.table td{border-bottom:1px solid var(--rule);vertical-align:top;padding:10px 12px 10px 0}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .actions{text-align:right}.sub{color:var(--ink-2);font-size:.85rem}.mono{font-family:ui-monospace,JetBrains Mono,Consolas,monospace;font-size:.9rem}.inline-form{flex-wrap:wrap;gap:8px;display:flex}.inline-form input,.inline-form select{font:inherit;color:var(--ink);background:var(--ground);border:1px solid var(--rule);border-radius:var(--r1);padding:7px 10px}.inline-form input{flex:220px;min-width:0}button{font:inherit;color:var(--ground);background:var(--ink);border:1px solid var(--ink);border-radius:var(--r1);cursor:pointer;padding:7px 16px;font-weight:600}button:disabled{opacity:.55;cursor:default}button.link{color:var(--ink-2);background:0 0;border:none;padding:0;font-weight:500}button.link.danger:hover{color:var(--danger)}.lead{max-width:62ch;margin:0 0 16px}.cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.card{background:var(--ground);border:1px solid var(--rule);border-radius:var(--r1);align-content:start;gap:12px;padding:20px;display:grid}.card h3{margin:0;font-size:1rem;font-weight:600}.card .sub{margin:0}.card label{gap:4px;display:grid}.card label>span:first-child{color:var(--ink-2);font-size:.8rem;font-weight:600}.card input,.card textarea{font:inherit;color:var(--ink);background:var(--ground);border:1px solid var(--rule);border-radius:var(--r1);width:100%;min-width:0;padding:7px 10px}.affix{align-items:center;gap:6px;display:flex}.suffix{color:var(--ink-2);white-space:nowrap}.card-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.status{align-items:center;gap:8px;margin:0;font-size:.9rem;display:flex}.status:before{content:"";border-radius:50%;flex:none;width:8px;height:8px}.status.on:before{background:var(--ok)}.status.off{color:var(--ink-2)}.status.off:before{background:var(--rule)}.muted{color:var(--ink-2)}.error{color:var(--danger);margin:0}@media (width<=520px){.bar{padding:12px 16px}.page{gap:16px;padding:24px 16px}.panel{padding:20px}.who a{display:none}.tabs{padding:0 16px}.table.tickets th:nth-child(2),.table.tickets td:nth-child(2),.table th:nth-child(3),.table td:nth-child(3){display:none}}.tabs{border-bottom:1px solid var(--rule);gap:4px;padding:0 24px;display:flex}.tabs a{color:var(--ink-2);border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-weight:600;text-decoration:none}.tabs a.on{color:var(--ink);border-bottom-color:var(--accent)}.back{color:var(--ink-2);font-weight:600;text-decoration:none;display:inline-block}.back:hover{color:var(--ink)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.segmented{border:1px solid var(--rule);border-radius:var(--r1);display:inline-flex;overflow:hidden}.segmented button{background:var(--ground);color:var(--ink-2);border:none;border-right:1px solid var(--rule);border-radius:0;padding:6px 14px}.segmented button:last-child{border-right:none}.segmented button.on{background:var(--ink);color:var(--ground)}.check{color:var(--ink-2);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.tickets.stale{opacity:.55;transition:opacity .15s}.ticket-link{font-weight:600;text-decoration:none}.ticket-link:hover{text-decoration:underline}.status-pill{border:1px solid var(--rule);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-block}.status-pill.s-new{border-color:var(--accent);color:var(--accent)}.status-pill.s-open{border-color:var(--danger);color:var(--danger)}.status-pill.s-pending{border-color:var(--ink-2)}.status-pill.s-solved,.status-pill.s-closed{border-color:var(--ok);color:var(--ok)}.list-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.pager{align-items:center;gap:10px;display:inline-flex}button.ghost{background:var(--ground);color:var(--ink);border-color:var(--rule);padding:5px 12px;font-weight:500}.facts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 24px;margin:4px 0 20px;display:grid}.facts dt{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);font-size:.78rem;font-weight:600}.facts dd{margin:2px 0 0}.button-link{color:var(--ground);background:var(--ink);border-radius:var(--r1);padding:7px 16px;font-weight:600;text-decoration:none;display:inline-block}.thread{gap:12px;display:grid}.message{background:var(--ground);border:1px solid var(--rule);border-left:3px solid var(--rule);border-radius:var(--r1);padding:14px 18px}.message.customer{border-left-color:var(--ink-2)}.message.agent{border-left-color:var(--accent);background:var(--ground-2)}.message.internal{border-left-color:var(--accent);background:var(--note)}.message header{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.message header time{color:var(--ink-2);margin-left:auto;font-size:.85rem}.message .body{white-space:pre-wrap;overflow-wrap:anywhere}.attachments{margin:10px 0 0;padding:0;font-size:.9rem;list-style:none}:root{--viz-s1:#2a78d6;--viz-s2:#eb6834;--viz-neg:#e34948;--viz-neu:#d9d6cf;--viz-pos:#2a78d6;--viz-bar:#2a78d6;--viz-grid:#e7e3db}@media (prefers-color-scheme:dark){:root{--viz-s1:#3987e5;--viz-s2:#d95926;--viz-neg:#e66767;--viz-neu:#3a4853;--viz-pos:#3987e5;--viz-bar:#3987e5;--viz-grid:#26343f}}.overview{gap:24px;display:grid}.page:has(.overview){max-width:1120px}.small{font-size:.85rem}.small-head{margin:0 0 10px;font-size:.95rem;font-weight:600}.tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.tile{background:var(--ground-2);border:1px solid var(--rule);border-radius:var(--r1);gap:2px;padding:16px 18px;display:grid}.tile-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);font-size:.78rem;font-weight:600}.tile-value{font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:700;line-height:1.15}.tile-sub{color:var(--ink-2);font-size:.85rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));align-items:start;gap:24px;display:grid}.legend{color:var(--ink-2);flex-wrap:wrap;gap:6px 18px;margin:4px 0 10px;font-size:.9rem;display:flex}.legend>span{align-items:center;gap:6px;transition:opacity .15s;display:inline-flex}.legend strong{color:var(--ink);font-variant-numeric:tabular-nums}.swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.swatch.s1{background:var(--viz-s1)}.swatch.s2{background:var(--viz-s2)}.swatch.neg{background:var(--viz-neg)}.swatch.neu{background:var(--viz-neu)}.swatch.pos{background:var(--viz-pos)}.dim{opacity:.35}.chart{width:100%;position:relative}.chart svg{display:block;overflow:visible}.chart .grid{stroke:var(--viz-grid);stroke-width:1px}.chart .axis{fill:var(--ink-2);font-variant-numeric:tabular-nums;font-size:11px}.chart .direct{fill:var(--ink);font-size:12px;font-weight:600}.chart .line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .line.s1{stroke:var(--viz-s1)}.chart .line.s2{stroke:var(--viz-s2)}.chart .dot.s1{fill:var(--viz-s1)}.chart .dot.s2{fill:var(--viz-s2)}.chart .dot.ring{stroke:var(--ground-2);stroke-width:2px}.chart .crosshair{stroke:var(--ink-2);stroke-width:1px;stroke-dasharray:3 3}.chart .hit{fill:#0000;cursor:crosshair}.tooltip{pointer-events:none;background:var(--ground);border:1px solid var(--rule);border-radius:var(--r1);min-width:150px;padding:8px 10px;font-size:.85rem;position:absolute;box-shadow:0 4px 16px #0000001f}.tt-row{align-items:center;gap:6px;margin-top:4px;display:flex}.tt-value{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.table-view{margin-top:8px;font-size:.9rem}.table-view summary{cursor:pointer;color:var(--ink-2)}.stack{gap:2px;height:22px;margin:6px 0 4px;display:flex}.seg{min-width:4px;transition:opacity .15s}.seg:first-child{border-radius:4px 0 0 4px}.seg:last-child{border-radius:0 4px 4px 0}.seg.neg{background:var(--viz-neg)}.seg.neu{background:var(--viz-neu)}.seg.pos{background:var(--viz-pos)}.mood-counts{grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0 0;display:grid}.mood-counts dt{color:var(--ink-2);font-size:.75rem}.mood-counts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.bars{gap:8px;margin:0;padding:0;list-style:none;display:grid}.bars li{grid-template-columns:minmax(110px,38%) 1fr auto;align-items:center;gap:10px;font-size:.9rem;display:grid}.bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bar-track{height:10px}.hbar{background:var(--viz-bar);border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.hbar.other{background:var(--viz-neu)}.bar-value{font-variant-numeric:tabular-nums;white-space:nowrap}.bars li:hover .hbar{filter:brightness(1.1)}.footnote{color:var(--ink-2);margin:12px 0 0;font-size:.8rem}.upset{gap:10px;margin:0;padding:0;list-style:none;display:grid}.upset li{grid-template-columns:auto 1fr;align-items:baseline;gap:2px 10px;display:grid}.upset li .sub{grid-column:2}.upset a{text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-decoration:none;overflow:hidden}.upset a:hover{text-decoration:underline}.mood-pill{border:1px solid var(--viz-neg);color:var(--ink);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:600}.mood-pill.very_negative{background:color-mix(in srgb, var(--viz-neg) 18%, transparent)}.tp{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;display:grid}.tp-summary{align-items:baseline;gap:10px;margin:0 0 12px;display:flex}.stars{color:#00b67a;letter-spacing:1px;font-size:.85rem}.stars-off{color:var(--rule)}.reviews{gap:14px;margin:0;padding:0;list-style:none;display:grid}.reviews li{border-bottom:1px solid var(--rule);gap:2px;padding-bottom:12px;display:grid}.review-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.review-text{color:var(--ink-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}@media (width<=520px){.grid-2,.tp{grid-template-columns:1fr}.mood-counts{grid-template-columns:repeat(3,1fr)}.tile-value{font-size:1.5rem}}
