:root{--accent:#ee347d;--navy:#101829;--ink:#182339;--muted:#738096;--line:#e7ecf3;--bg:#f4f6fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:4px}button{cursor:pointer;border:0;border-radius:10px;padding:11px 16px;background:#eaf0f7;color:var(--ink);font-weight:600}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){filter:brightness(.96)}.primary{background:var(--accent);color:white}.dark{background:var(--navy);color:white}.ghost{background:transparent;border:1px solid var(--line)}.danger{color:#b6254c}.muted,small{color:var(--muted)}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:20px}h3{font-size:15px}p{line-height:1.6}input,textarea,select{width:100%;padding:11px 12px;border:1px solid #dce3ee;background:white;border-radius:9px;color:var(--ink)}textarea{resize:vertical;min-height:90px}label{display:block;font-size:13px;font-weight:600;margin:13px 0 6px}label input[type=checkbox]{width:auto;margin-right:8px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:16px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card{background:white;border:1px solid var(--line);padding:24px;border-radius:16px;box-shadow:0 4px 20px #10204004}.badge{font-size:11px;font-weight:650;background:#eff2f8;border-radius:20px;padding:5px 9px}.badge.active{color:#087e66;background:#e1f6ee}.badge.queued{color:#936515;background:#fff1cc}.badge.closed{color:#6b7584}.brand{font-size:25px;letter-spacing:-1px;font-weight:900;color:white}.brand b{color:var(--accent)}.eyebrow{letter-spacing:2px;text-transform:uppercase;font-size:11px;font-weight:700;color:var(--accent)}.login{max-width:420px;margin:10vh auto;padding:35px}.login .brand{color:var(--ink);margin-bottom:28px}.login button{width:100%;margin-top:24px}.shell{display:grid;grid-template-columns:228px 1fr;min-height:100dvh}.sidebar{background:var(--navy);color:#aab5c9;padding:28px 18px;display:flex;flex-direction:column;gap:7px}.sidebar .brand{padding:0 14px 28px}.sidebar button{background:none;text-align:left;color:#b8c4d9;margin:2px 0}.sidebar button.selected{background:#ffffff12;color:white;box-shadow:inset 3px 0 var(--accent)}.sidebar footer{margin-top:auto;padding:25px 12px 0}.sidebar footer small{color:#aab5c9}.main{min-width:0}.topbar{height:78px;border-bottom:1px solid var(--line);background:white;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.online-dot{width:8px;height:8px;background:#28b591;border-radius:50%;display:inline-block;margin-right:6px}.content{padding:30px;max-width:1500px;margin:auto}.subtitle{margin-bottom:26px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stat{padding:20px}.stat strong{display:block;font-size:32px;margin-top:9px;letter-spacing:-1px}.inbox{display:grid;grid-template-columns:300px minmax(0,1fr);height:calc(100dvh - 200px);min-height:450px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white}.threads{border-right:1px solid var(--line);overflow:auto;background:#fafbfd}.threads .filters{padding:14px;position:sticky;top:0;background:#fafbfd}.thread{display:block;width:100%;border-radius:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:18px}.thread.selected{background:#fff0f5;border-left:3px solid var(--accent)}.thread p{font-size:12px;font-weight:400;margin:8px 0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation{display:flex;flex-direction:column;min-height:0}.conversation-header{padding:16px 20px;border-bottom:1px solid var(--line)}.conversation-header h3{margin:0}.messages{flex:1;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:12px;background:#f5f7fb}.bubble{align-self:flex-start;max-width:83%;background:white;border:1px solid #e8edf5;border-radius:3px 15px 15px;padding:12px 15px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5;box-shadow:0 2px 2px #00000002}.bubble.mine{align-self:flex-end;background:#e6ecfc;border-color:#d9e3fc;border-radius:15px 3px 15px 15px}.bubble.internal{background:#fff4ce;border-color:#f1df9a}.bubble small{display:block;font-size:10px;margin-top:6px}.bubble img{display:block;max-width:100%;max-height:240px;border-radius:8px}.composer{padding:12px 16px;background:white;border-top:1px solid var(--line)}.composer .row input{flex:1;min-width:0}.composer .quick{display:flex;gap:6px;overflow:auto;padding-bottom:9px}.quick button{white-space:nowrap;font-size:11px;padding:5px 8px}.empty{display:grid;place-content:center;text-align:center;flex:1;padding:30px;color:var(--muted)}.empty .symbol{font-size:45px;color:#c2cada;margin-bottom:14px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:13px 10px;text-align:left;border-bottom:1px solid var(--line)}.table th{color:var(--muted);font-weight:500}.table-wrap{overflow:auto}.config-button{padding:18px;background:#f7f9fc;border:1px solid var(--line);border-radius:12px;margin:12px 0}.config-button summary{font-weight:650;cursor:pointer}.code{font-family:ui-monospace,monospace;font-size:12px;min-height:120px}.notification{background:#eef5ff;border:1px solid #dce8fc;border-radius:10px;padding:12px;font-size:13px;line-height:1.5}.status-error{background:#fff0f2;color:#9c244a}.avatar{width:35px;height:35px;border-radius:50%;background:#e9edf6;display:grid;place-items:center;color:#586682;font-weight:700}.landing{min-height:100dvh;background:radial-gradient(ellipse at 80% 10%,#243958 0,transparent 50%),#0c1320;color:white}.landing nav{padding:25px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff12}.hero{padding:12vh 8%;max-width:850px}.hero h1{font-size:clamp(38px,6vw,76px);letter-spacing:-3px;line-height:1.05}.hero p{color:#a1aec3;max-width:520px;font-size:18px}.hero .eyebrow{margin-bottom:22px}.hero span{color:var(--accent)}.launcher{position:fixed;right:24px;bottom:24px;color:white;background:var(--accent);border-radius:35px;box-shadow:0 12px 40px #0005;padding:17px 23px;z-index:20}.widget{position:fixed;bottom:95px;right:24px;width:390px;height:min(640px,calc(100dvh - 125px));display:flex;flex-direction:column;background:white;border-radius:18px;box-shadow:0 22px 100px #0004;overflow:hidden;z-index:21}.widget-header{background:var(--navy);color:white;padding:17px;display:flex;justify-content:space-between;align-items:center}.widget-header small{color:#cbd4e1;display:block;font-size:11px;margin-top:3px}.widget-header button{background:#ffffff10;color:white;padding:7px 12px}.widget .messages{background:#eef0f4;padding:15px}.widget-menu{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0 2px}.widget-menu button:first-child{grid-column:1/-1;background:var(--accent);color:white}.widget-menu button{font-size:12px;padding:11px}.widget .bubble{max-width:94%}.widget .composer{padding:12px}.widget-form{padding:22px;overflow:auto;flex:1}.widget-form h2{margin-top:22px}.widget-footer{text-align:center;font-size:10px;padding:6px;background:white;color:#9aa2b0}.widget-form button.primary{width:100%;margin-top:18px}.widget .connection{font-size:10px;background:#fff5d7;padding:5px;text-align:center}.widget .connection.good{background:#e7f6ef;color:#328467}.widget-history{border:0;border-radius:0;padding:8px;background:#fafafa;color:var(--muted);font-size:11px}.rating{display:flex;justify-content:center;gap:6px;padding:15px}.rating button{color:#b27a19;background:#fff3d9}.hidden{display:none!important}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;max-width:90vw;background:#182339;color:white;border-radius:12px;box-shadow:0 10px 50px #0003;z-index:100;display:none;font-size:13px}#toast.show{display:block}[data-page=widget] .widget{position:relative;inset:auto;width:100%;height:100dvh;border-radius:0;box-shadow:none}[data-page=widget]{background:transparent}
@media(max-width:850px){.shell{grid-template-columns:76px 1fr}.sidebar{padding:20px 6px}.sidebar .brand{font-size:17px;padding:0 5px 20px}.sidebar button{font-size:10px;padding:12px 5px;text-align:center}.sidebar footer{padding:20px 3px;font-size:10px}.topbar{padding:0 16px}.content{padding:18px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.inbox{grid-template-columns:210px 1fr}.table td,.table th{padding:10px 5px}.widget{right:10px;bottom:80px;width:calc(100% - 20px);height:min(680px,calc(100dvh - 100px))}.launcher{right:14px;bottom:14px}.hero{padding:14vh 7%}.hero h1{letter-spacing:-2px}}
@media(max-width:600px){.inbox{grid-template-columns:1fr;height:calc(100dvh - 240px)}.threads{max-height:150px;border-bottom:1px solid var(--line)}.thread{padding:10px 14px}.thread p{margin:3px 0}.inbox.has-chat .threads{display:none}.content{padding:12px}.conversation-header .row{flex-wrap:wrap}.conversation-header button{padding:7px;font-size:11px}.stats{gap:9px}.stat{padding:12px}.stat strong{font-size:25px}.main h1{font-size:24px}.card{padding:16px}.widget{width:100%;right:0;bottom:0;height:100dvh;border-radius:0}.widget-open .launcher{display:none}.topbar small{display:none}}

.modal-overlay{position:fixed;inset:0;background:#10182999;backdrop-filter:blur(4px);z-index:1000;display:grid;place-items:center;padding:20px}.modal-overlay .card{width:min(460px,100%)}.modal-overlay h2{font-size:18px;line-height:1.5;white-space:pre-wrap}

/* CRM inbox: WhatsApp-like conversation, prioritized chat list and live money panel. */
.crm-bar{display:flex;gap:10px;overflow:auto;padding-bottom:12px}
.crm-chip{flex:0 0 auto;min-width:150px;background:white;border:1px solid var(--line);border-radius:14px;padding:10px 14px;text-align:left;display:flex;flex-direction:column;gap:2px;font-weight:400;color:var(--ink)}
.crm-chip small{color:var(--muted);font-size:11px}.crm-chip strong{font-size:20px;letter-spacing:-.5px}.crm-chip span{font-size:11px;color:var(--muted)}
.crm-chip.bank{background:var(--navy);color:white;min-width:240px}.crm-chip.bank small,.crm-chip.bank span{color:#aab5c9}
.crm-chip.alert{border-color:#f3b4c4;background:#fff0f5}.crm-chip.alert strong{color:#c81e5b}
.inbox.crm-inbox{grid-template-columns:330px minmax(0,1fr) 340px;height:calc(100dvh - 215px);min-height:480px}
.crm-threads{display:flex;flex-direction:column;border-right:1px solid var(--line);background:white;min-height:0}
.crm-search{padding:12px}.crm-search input{border-radius:20px;background:#f0f2f5;border:0;padding:9px 14px}
.crm-tabs{display:flex;gap:6px;overflow:auto;padding:0 12px 10px;border-bottom:1px solid var(--line)}
.crm-tabs button{flex:0 0 auto;font-size:12px;padding:6px 10px;border-radius:16px;background:#f0f2f5;font-weight:500}
.crm-tabs button span{margin-left:6px;opacity:.7}.crm-tabs button.selected{background:#d9fdd3;color:#0b5e46}
.crm-threads #threads{overflow:auto;flex:1}
.thread.crm-thread{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-left:3px solid transparent}
.thread.crm-thread.needs{border-left-color:#e11d48}
.thread.crm-thread.selected{background:#f0f2f5;border-left-color:var(--accent)}
.crm-avatar{flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#dfe5ec;color:#51607a;display:grid;place-items:center;font-weight:700;font-size:16px}
.crm-thread-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.crm-thread-top{display:flex;justify-content:space-between;gap:8px}.crm-thread-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.crm-thread-top time{font-size:11px;color:var(--muted);font-weight:400;flex:0 0 auto}
.crm-thread-preview{font-size:12.5px;color:var(--muted);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-tags{display:flex;gap:4px;flex-wrap:wrap}
.crm-tag{font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;background:#eef1f6;color:#51607a}
.crm-tag.red{background:#ffe4e8;color:#be123c}.crm-tag.amber{background:#fff1cc;color:#936515}.crm-tag.purple{background:#ede9fe;color:#6d28d9}.crm-tag.blue{background:#dbeafe;color:#1d4ed8}.crm-tag.green{background:#e1f6ee;color:#087e66}
.crm-unread{background:#25d366;color:white;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px;align-self:center}
.crm-chat-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#f0f2f5}
.crm-chat-title{flex:1;min-width:0}.crm-chat-title h3{margin:0;font-size:15px}.crm-chat-title small{color:var(--muted);font-size:12px}
.crm-chat-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.crm-chat-actions button{padding:7px 11px;font-size:12px}
.crm-back,#toggle-side,.crm-side-close{display:none}
.messages.crm-messages{background:#efeae2;gap:2px;padding:18px 6%}
.crm-day{align-self:center;margin:10px 0}.crm-day span{background:white;border-radius:8px;padding:5px 12px;font-size:11.5px;color:#54656f;box-shadow:0 1px 1px #0000001a;text-transform:capitalize}
.crm-msg{max-width:68%;padding:6px 9px 5px;border-radius:8px;font-size:14px;line-height:1.4;box-shadow:0 1px 1px #0000001f;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:5px}
.crm-msg.in{align-self:flex-start;background:white;border-top-left-radius:0}
.crm-msg.out{align-self:flex-end;background:#d9fdd3;border-top-right-radius:0}
.crm-msg.auto{background:#e7f1ff}
.crm-who{display:block;font-size:11px;font-weight:700;color:#0b5e46;margin-bottom:2px}.crm-msg.auto .crm-who{color:#1d4ed8}
.crm-meta{display:block;text-align:right;font-size:10.5px;color:#667781;margin-top:2px}.crm-meta i{font-style:normal}.crm-meta i.read{color:#34b7f1}
.crm-msg img{display:block;max-width:260px;max-height:300px;border-radius:6px}
.crm-form{display:grid;gap:4px;min-width:230px;margin-top:4px;white-space:normal}.crm-form b{font-size:13px}.crm-form div{display:flex;justify-content:space-between;gap:14px;background:#0000000a;border-radius:6px;padding:5px 8px;font-size:13px}.crm-form span{color:#54656f}
.crm-note{align-self:center;max-width:80%;background:#fff4ce;border:1px solid #f1df9a;border-radius:8px;padding:8px 12px;font-size:13px;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.crm-note b{display:block;font-size:11px;color:#936515}.crm-note time{display:block;text-align:right;font-size:10.5px;color:#936515}
.composer.crm-composer{background:#f0f2f5;padding:8px 12px;border-top:0}
.crm-compose-row{display:flex;align-items:center;gap:8px}
.crm-compose-row #draft{flex:1;min-width:0;border:0;border-radius:22px;padding:11px 16px;background:white}
.crm-icon,.crm-send{width:42px;height:42px;border-radius:50%;padding:0;display:grid;place-items:center;flex:0 0 42px}.crm-icon{background:transparent;color:#54656f}.crm-send{background:#00a884;color:white}.crm-send:disabled{background:#b6c2c9}.crm-icon svg,.crm-send svg{width:20px;height:20px}
.crm-internal{display:flex;align-items:center;gap:5px;font-size:11px;color:#54656f;white-space:nowrap;margin:0}.crm-internal input{width:auto}
.crm-typing{font-size:11px;min-height:14px;color:#54656f;padding-left:54px}
.crm-side{border-left:1px solid var(--line);background:#fafbfd;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:16px;min-height:0}
.crm-side h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
.crm-live{font-size:10px;color:#087e66;background:#e1f6ee;border-radius:10px;padding:2px 7px;text-transform:none;letter-spacing:0}.crm-live:before{content:"●";margin-right:4px}
.crm-item{background:white;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;margin-bottom:8px;font-size:13px}
.crm-item>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px}
.crm-item strong{font-size:15px}.crm-item small{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.crm-item time{font-size:11px;color:var(--muted)}
.crm-item .row{margin-top:6px;gap:6px;flex-wrap:wrap}.crm-item .row:empty{display:none}.crm-item button{padding:7px 10px;font-size:12px}
.crm-item.used{opacity:.6}.crm-item.match{border-color:#25d366;box-shadow:0 0 0 2px #25d36633}
.crm-pill{font-size:10px;font-weight:700;border-radius:10px;padding:2px 8px;background:#eef1f6;color:#51607a;white-space:nowrap}
.crm-pill.review,.crm-pill.unknown,.crm-pill.approval{background:#ffe4e8;color:#be123c}.crm-pill.waiting,.crm-pill.sent,.crm-pill.debiting,.crm-pill.sending,.crm-pill.refunding{background:#fff1cc;color:#936515}.crm-pill.match{background:#e1f6ee;color:#087e66}
.crm-item small.crm-used{color:#936515}.crm-item small.crm-free{color:#087e66}
.crm-player{display:flex;flex-direction:column;gap:6px;background:white;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px}.crm-player button{font-size:12px;padding:7px 10px;align-self:flex-start}
@media(max-width:1250px){.inbox.crm-inbox{grid-template-columns:300px minmax(0,1fr)}.crm-side{display:none}.inbox.crm-inbox.show-side .crm-side{display:flex;position:fixed;right:0;top:0;bottom:0;width:min(360px,100%);z-index:50;box-shadow:-8px 0 30px #0003}#toggle-side,.crm-side-close{display:inline-block}}
@media(max-width:850px){.inbox.crm-inbox{grid-template-columns:1fr;height:calc(100dvh - 235px)}.inbox.crm-inbox.has-chat .crm-threads{display:none}.inbox.crm-inbox:not(.has-chat) .conversation{display:none}.crm-back{display:inline-block}.crm-msg{max-width:86%}.messages.crm-messages{padding:14px 10px}.crm-internal{display:none}}
.crm-inbox .conversation,.crm-inbox #staff-compose,.crm-composer{min-width:0}
.crm-chat-title small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-chat-actions{flex-wrap:nowrap;flex:0 0 auto}
@media(max-width:850px){.inbox.crm-inbox{grid-template-columns:minmax(0,1fr)}.crm-chat-header{flex-wrap:wrap}.crm-chat-actions{width:100%;justify-content:flex-start;overflow:auto}.crm-compose-row{gap:4px}}

/* Compact CRM: the conversation gets most of the screen. */
.crm-mode .topbar{height:46px;padding:0 14px}.crm-mode .topbar small{display:none}.crm-mode .topbar strong{font-size:13px}.crm-mode #presence{padding:6px 12px;font-size:12px}
.crm-mode .content{padding:8px 12px;max-width:none}
.crm-bar{gap:6px;padding-bottom:8px}
.crm-chip{flex-direction:row;align-items:center;gap:8px;min-width:0;padding:5px 10px;border-radius:10px}
.crm-chip small{font-size:11px}.crm-chip strong{font-size:13px;letter-spacing:0}
.crm-chip.bank{min-width:0}
.inbox.crm-inbox{grid-template-columns:290px minmax(0,1fr) 300px;height:calc(100dvh - 110px);min-height:420px;border-radius:12px}
.crm-search{padding:8px 10px}.crm-search input{padding:7px 12px;font-size:13px}
.crm-tabs{padding:0 10px 8px;gap:4px}.crm-tabs button{font-size:11px;padding:4px 8px}
.thread.crm-thread{padding:9px 10px;gap:9px}
.crm-avatar{flex:0 0 34px;width:34px;height:34px;font-size:13px}
.crm-thread-top strong{font-size:13px}.crm-thread-preview{font-size:12px}
.crm-chat-header{padding:6px 12px;gap:10px}
.crm-chat-title h3{font-size:14px}.crm-chat-title small{font-size:11px}
.crm-chat-actions{gap:4px}.crm-chat-actions button{padding:5px 9px;font-size:11.5px;border-radius:8px}
.messages.crm-messages{padding:12px 5%}
.composer.crm-composer{padding:6px 10px}
.composer.crm-composer .quick{padding-bottom:6px}.composer.crm-composer .quick.hidden{display:none}
.crm-typing{min-height:0}.crm-typing:empty{display:none}
.crm-compose-row #draft{padding:9px 14px;font-size:14px}
.crm-icon,.crm-send{width:36px;height:36px;flex:0 0 36px}.crm-icon svg,.crm-send svg{width:18px;height:18px}
.crm-side{padding:10px;gap:12px}
.crm-side h4{font-size:11px;margin-bottom:6px}
.crm-item{padding:8px 10px;margin-bottom:6px;font-size:12.5px;border-radius:10px}
.crm-item strong{font-size:14px}.crm-item button{padding:5px 9px;font-size:11.5px;border-radius:8px}
.crm-player{padding:8px 10px}.crm-player button{padding:5px 9px;font-size:11.5px;border-radius:8px}
.crm-manual{width:min(420px,100%)}.crm-manual h2{white-space:normal}
@media(max-width:1250px){.inbox.crm-inbox{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:850px){.inbox.crm-inbox{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 118px)}}
.shell:has(.crm-mode){grid-template-columns:176px 1fr}.shell:has(.crm-mode) .sidebar{padding:18px 10px}.shell:has(.crm-mode) .sidebar button{font-size:13px;padding:9px 10px}.shell:has(.crm-mode) .sidebar .brand{padding:0 10px 16px}
@media(max-width:850px){.shell:has(.crm-mode){grid-template-columns:76px 1fr}.shell:has(.crm-mode) .sidebar button{font-size:10px;padding:12px 5px}}

/* Reports */
.report-filter{margin:14px 0 6px;gap:10px;align-items:flex-end}.report-filter label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px}.report-filter input{width:auto}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.kpi{padding:14px 16px;display:flex;flex-direction:column;gap:4px}.kpi small{color:var(--muted);font-size:12px}.kpi strong{font-size:24px;letter-spacing:-.5px}.kpi span{color:var(--muted);font-size:11.5px}
.main h2{margin:22px 0 10px;font-size:17px}.card h2{margin-top:0}
.viz-legend{display:flex;gap:16px;font-size:12px;color:var(--ink);margin:6px 0 4px}.viz-legend span{display:flex;align-items:center;gap:6px}.viz-legend i,.viz-tip i{width:10px;height:10px;border-radius:3px;display:inline-block}
.viz-wrap{position:relative;overflow-x:auto;margin-bottom:10px}.viz-wrap svg{display:block}
.viz-tip{position:absolute;pointer-events:none;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px #1020401f;padding:8px 10px;font-size:12px;min-width:170px;z-index:5}.viz-tip.hidden{display:none}
.viz-tip div{display:flex;align-items:center;gap:6px;margin-top:4px}.viz-tip strong{margin-left:auto}.viz-tip small{color:var(--muted)}
