:root{
  --ink:#211b29;--ink-2:#5d5668;--ink-3:#8a8494;--paper:#faf9fb;--surface:#fff;--line:#e7e3ec;--line-strong:#d3cdda;
  --plum:#7a2e5c;--plum-ink:#fff;--plum-soft:#f4e9f0;--ok:#2f7d4f;--ok-soft:#e6f3eb;--warn:#9a5a12;--warn-soft:#fbf0df;
  --bad:#ad2f3b;--bad-soft:#fbe8ea;--off:#cfc9d6;--focus:#3b6fd8;--info:#2f5d9a;--info-soft:#e8eef8;
  --c-subs:#7a2e5c;--c-pack:#c07a3a;--c-tip:#4f7f9a;--c-reg:#8a8494;
  --r-s:6px;--r-m:10px;--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ink:#eeeaf3;--ink-2:#b5aec0;--ink-3:#8a8396;--paper:#17131c;--surface:#201b27;--line:#322b3b;--line-strong:#453c50;
  --plum:#c56a9f;--plum-ink:#1a0f17;--plum-soft:#3a2133;--ok:#6cc28f;--ok-soft:#1d3326;--warn:#e2a65a;--warn-soft:#3a2b17;
  --bad:#ec7b86;--bad-soft:#3d1e23;--off:#463e51;--focus:#8fb0ff;--info:#8fb0e8;--info-soft:#1f2a3d;
  --c-subs:#c56a9f;--c-pack:#e0a060;--c-tip:#7fb3d1;--c-reg:#8a8396;color-scheme:dark}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--font);font-variant-numeric:tabular-nums}
h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.55rem;font-weight:700;letter-spacing:-.01em}h2{font-size:1.12rem;font-weight:650}h3{font-size:.95rem;font-weight:650}
p{margin:0}a{color:var(--plum)}button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.muted{color:var(--ink-2)}.small{font-size:.85rem}.xs{font-size:.78rem}.boot{padding:40px;color:var(--ink-2)}
ins{text-decoration:none;color:var(--ok);font-weight:600}del{color:var(--ink-2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* acceso */
.auth{min-height:100vh;display:grid;place-items:center;padding:16px}
.auth-card{width:100%;max-width:400px;display:grid;gap:18px}
.auth-card .brand{display:flex;align-items:center;gap:10px}.auth-card .brand img{width:30px;height:30px}
.auth-card form{display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:22px}
.auth-card form>.btn.primary{justify-content:center}
.secret{font:600 1.05rem/1.4 ui-monospace,"SF Mono",Menlo,Consolas,monospace;letter-spacing:.04em;background:var(--plum-soft);padding:10px 12px;border-radius:var(--r-s);word-break:break-all;user-select:all}
.code-input{font-size:1.5rem;letter-spacing:.3em;text-align:center}
.form-error{color:var(--bad);font-size:.9rem}

/* estructura */
.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.shell>div{min-width:0}
.side{border-right:1px solid var(--line);background:var(--surface);padding:14px 10px 30px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}
.side .brand{display:flex;align-items:center;gap:8px;font-weight:700;padding:4px 8px 14px;text-decoration:none;color:var(--ink)}
.side .brand img{width:24px;height:24px}
.side .grp{font-size:.78rem;color:var(--ink-3);padding:12px 8px 4px;font-weight:600}
.side nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:var(--r-s);color:var(--ink-2);font-weight:550;text-decoration:none}
.side nav a:hover{background:var(--paper)}
.side nav a[aria-current="page"]{background:var(--plum-soft);color:var(--ink)}
.side .badge{font-size:.72rem;font-weight:700;min-width:20px;text-align:center;padding:0 6px;border-radius:999px;background:var(--warn-soft);color:var(--warn)}
.side .who{margin-top:auto;padding:12px 8px 0;border-top:1px solid var(--line);font-size:.82rem;color:var(--ink-2);display:grid;gap:6px}
.side .who b{color:var(--ink);font-weight:600;overflow-wrap:anywhere}
.role-tag{border:1px solid var(--line-strong);border-radius:999px;padding:1px 8px;font-size:.76rem;justify-self:start}
.main{padding:24px 28px 80px;max-width:1260px}
.mobile-nav{display:none}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.page-head .lead{color:var(--ink-2);max-width:74ch;margin-top:6px}

/* botones e inputs */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);padding:7px 13px;border-radius:var(--r-s);cursor:pointer;font-weight:550;white-space:nowrap;text-decoration:none;color:var(--ink)}
.btn:hover{border-color:var(--ink-3)}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.primary{background:var(--plum);border-color:var(--plum);color:var(--plum-ink)}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.btn.danger.solid{background:var(--bad);color:#fff;border-color:var(--bad)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}
.btn.sm{padding:4px 9px;font-size:.84rem}
.input,select.input,textarea.input{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-s);padding:7px 10px;width:100%}
textarea.input{min-height:70px;resize:vertical}
label.field{display:grid;gap:4px;font-size:.85rem;color:var(--ink-2)}label.field>span:first-child{font-weight:600;color:var(--ink)}
.check{display:flex;gap:8px;align-items:flex-start;font-size:.9rem}.check input{margin-top:4px}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.switch{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:.86rem;color:var(--ink-2);background:none;border:0;padding:0}
.switch .t{width:30px;height:18px;border-radius:9px;background:var(--off);position:relative;transition:background .15s;flex:none}
.switch .t::after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;top:2px;left:2px;transition:left .15s}
.switch[aria-checked="true"] .t{background:var(--ok)}.switch[aria-checked="true"] .t::after{left:14px}
.switch:disabled{opacity:.5;cursor:not-allowed}

/* filtros */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0 4px}
.filters .input{max-width:320px}.filters select.input{width:auto}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line-strong);background:transparent;border-radius:999px;padding:3px 10px;font-size:.83rem;cursor:pointer;color:var(--ink-2)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip .c{opacity:.7;margin-left:4px}
.daterange{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:12px 14px;margin:16px 0}
.daterange label.field{min-width:150px}.daterange .chips{flex-basis:100%}
.daterange .cmp{font-size:.8rem;color:var(--ink-3);flex-basis:100%}

/* KPIs y paneles */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:16px 0}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:12px 14px;display:grid;gap:2px;align-content:start}
.kpi .l{font-size:.82rem;color:var(--ink-2)}.kpi .v{font-size:1.35rem;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere}
.kpi .d{font-size:.78rem;color:var(--ink-2)}.kpi .d.up{color:var(--ok)}.kpi .d.down{color:var(--bad)}
.kpi.warn{border-color:color-mix(in srgb,var(--warn) 50%,var(--line));background:var(--warn-soft)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:16px 18px;margin-top:16px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.note{font-size:.85rem;color:var(--ink-2);background:var(--surface);border:1px dashed var(--line-strong);padding:9px 12px;border-radius:var(--r-s);margin-top:12px}
.note.warn{background:var(--warn-soft);border:0;border-left:3px solid var(--warn);border-radius:0 var(--r-s) var(--r-s) 0;color:var(--ink)}
.empty{padding:26px 4px;color:var(--ink-2)}

/* tablas */
.tw{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:.87rem;min-width:620px}
table.t th{text-align:left;font-weight:600;color:var(--ink-2);padding:7px 8px;border-bottom:1px solid var(--line-strong);white-space:nowrap}
table.t td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}
table.t .n{text-align:right;white-space:nowrap}
table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:var(--paper)}
.neg{color:var(--bad);font-weight:600}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;font-size:.85rem;color:var(--ink-2);flex-wrap:wrap}

/* estados */
.state{display:inline-flex;align-items:center;gap:6px;font-size:.77rem;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.state::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.s-ok,.state.visible{color:var(--ok);background:var(--ok-soft)}
.s-soft,.state.search_only{color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 40%,transparent)}
.s-warn,.state.hidden{color:var(--warn);background:var(--warn-soft)}
.s-off,.state.no_score{color:var(--ink-2);background:var(--line)}
.s-pend,.state.pending{color:var(--ink-2);border:1px dashed var(--line-strong)}
.s-bad,.state.rejected{color:var(--bad);background:var(--bad-soft)}

/* gráficos */
.chart{width:100%;height:230px;display:block}
.chart text{font-size:11px;fill:var(--ink-3)}.chart .grid{stroke:var(--line)}
.lgd{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-2);margin-top:4px}
.lgd i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.lgd .subs{background:var(--c-subs)}.lgd .pack{background:var(--c-pack)}.lgd .tip{background:var(--c-tip)}
.hbar{display:grid;grid-template-columns:130px 1fr 100px;gap:10px;align-items:center;font-size:.86rem;margin:6px 0}
.hbar .b{height:10px;border-radius:5px;background:var(--line);overflow:hidden}.hbar .b span{display:block;height:100%;background:var(--plum)}
.hbar a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.funnel{display:grid;gap:8px;margin-top:12px}
.funnel .row{display:grid;grid-template-columns:200px 1fr 120px;gap:10px;align-items:center;font-size:.88rem}
.funnel .bar{height:22px;background:var(--plum-soft);border-radius:4px;position:relative;overflow:hidden}
.funnel .bar span{position:absolute;inset:0 auto 0 0;background:var(--plum);border-radius:4px}
.w0{width:0}

/* ficha */
.d-head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-top:12px}
.d-head .ident p{overflow-wrap:anywhere}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--line);display:grid;place-items:center;font-weight:700;color:var(--ink-2);flex:none;object-fit:cover;overflow:hidden}
.avatar.lg{width:64px;height:64px;font-size:1.4rem}
.who-cell{display:flex;align-items:center;gap:10px;min-width:0}.who-cell b{font-weight:600}
.ladder{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;background:var(--surface);margin-top:16px}
.rung{padding:12px 14px;border-right:1px solid var(--line)}.rung:last-child{border-right:0}
.rung .bar{height:6px;border-radius:3px;background:var(--off);margin-bottom:10px}.rung.on .bar{background:var(--ok)}.rung.on.warn .bar{background:var(--warn)}
.rung .tt{font-weight:650;font-size:.9rem}.rung .dd{font-size:.78rem;color:var(--ink-2)}.rung:not(.on) .tt{color:var(--ink-3)}
.ladder-note{font-size:.85rem;color:var(--ink-2);margin-top:8px}
.hold-note{margin-top:12px;background:var(--warn-soft);border-left:3px solid var(--warn);padding:10px 12px;border-radius:0 var(--r-s) var(--r-s) 0;font-size:.9rem}
.tabs{display:flex;gap:2px;margin:22px 0 16px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs a{padding:8px 12px;text-decoration:none;color:var(--ink-2);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a[aria-current="page"]{color:var(--ink);border-color:var(--plum)}
.section{display:grid;gap:16px}
.facts{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:.88rem;color:var(--ink-2)}.facts b{color:var(--ink);font-weight:650}
.price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pcell{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:12px;display:grid;gap:6px;align-content:start}
.pcell .lbl{font-weight:650;font-size:.9rem}.pcell .local{font-size:.82rem;color:var(--ink-2)}.pcell .permonth{font-size:.78rem;color:var(--ink-3)}
.changed .money{border-color:var(--plum)}
.money{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--paper)}
.money span{padding:0 8px;color:var(--ink-3);font-size:.85rem}
.money input{border:0;background:transparent;padding:7px 8px 7px 0;width:100%;font-size:1.05rem;font-weight:650;min-width:0}
.money input:focus{outline:none}.money:focus-within{outline:2px solid var(--focus);outline-offset:1px}
.price-inline{display:flex;gap:6px;align-items:center}.price-inline .money{width:110px}.price-inline .money input{font-size:.95rem;padding:5px 6px 5px 0}
.recs{display:grid;gap:8px}.recs div{padding:9px 12px;border-left:3px solid var(--plum);background:var(--plum-soft);border-radius:0 var(--r-s) var(--r-s) 0;font-size:.88rem}

/* listas con miniatura (publicaciones) y colas (retiros) */
.item-list,.queue{display:grid;gap:10px}
.item{display:grid;grid-template-columns:84px 1fr auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:10px}
.item.off{background:transparent;border-style:dashed}.item.off .item-body{opacity:.75}
.thumb{width:84px;height:84px;border-radius:var(--r-s);background:var(--line);overflow:hidden;position:relative;border:0;padding:0;cursor:pointer}
.thumb img{width:100%;height:100%;object-fit:cover;filter:blur(14px);transform:scale(1.15)}
.thumb.revealed img{filter:none;transform:none}
.thumb .ph{position:absolute;inset:0;display:grid;place-items:center;font-size:.75rem;color:var(--ink-3)}
.item-body{min-width:0;display:grid;gap:3px}.item-body .title{font-weight:650;overflow-wrap:anywhere}
.item-body .meta{font-size:.82rem;color:var(--ink-2)}.item-body .why{font-size:.82rem;color:var(--warn)}
.item-side{display:grid;gap:6px;justify-items:end}
.qitem{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:14px;display:grid;grid-template-columns:110px 1fr auto;gap:16px;align-items:start}
.qitem.late{border-color:var(--bad);box-shadow:inset 3px 0 0 var(--bad)}

/* actividad */
.log-row{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.88rem}
.log-row .when{color:var(--ink-2)}.log-row .what b{font-weight:650}
.diff{margin-top:4px;color:var(--ink-2);font-size:.83rem}.diff del{color:var(--bad)}.diff ins{color:var(--ok)}

/* diálogo y toast */
dialog{border:1px solid var(--line-strong);border-radius:var(--r-m);padding:0;width:min(500px,calc(100vw - 32px));background:var(--surface);color:var(--ink)}
dialog::backdrop{background:rgb(20 14 26 / .45)}dialog form{padding:20px;display:grid;gap:14px}
dialog .changes{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;font-size:.9rem;display:grid;gap:4px}
dialog .warnbox{background:var(--warn-soft);border-left:3px solid var(--warn);padding:10px 12px;font-size:.88rem}
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:var(--r-s);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-weight:550;max-width:calc(100vw - 32px);z-index:30}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#toast.err{background:var(--bad);color:#fff}

@media (max-width:1000px){.grid2{grid-template-columns:1fr}}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}.side{display:none}
  .mobile-nav{display:flex;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}
  .mobile-nav img{width:24px;height:24px}
  .main{padding:16px 16px 70px}
  .price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ladder{grid-template-columns:repeat(2,1fr)}.rung:nth-child(2){border-right:0}.rung:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .d-head{grid-template-columns:auto 1fr}.d-head .ha{grid-column:1/-1}
  .item{grid-template-columns:64px 1fr}.thumb{width:64px;height:64px}
  .item-side{grid-column:1/-1;justify-items:start;grid-auto-flow:column;justify-content:start}
  .qitem{grid-template-columns:1fr}.funnel .row{grid-template-columns:1fr;gap:3px}.hbar{grid-template-columns:95px 1fr 80px}
  .log-row{grid-template-columns:1fr;gap:2px}.daterange label.field{min-width:0;flex:1}
}
@media (prefers-reduced-motion:reduce){#toast,.switch .t,.switch .t::after{transition:none}}
.chart .k-subs{fill:var(--c-subs)}.chart .k-pack{fill:var(--c-pack)}.chart .k-tip{fill:var(--c-tip)}.chart .k-reg{fill:var(--c-reg)}
.grid2>*,.panel,.section,.kpis>*{min-width:0}
/* Chats */
.chart .k-fan{fill:var(--c-reg)}.chart .k-creator{fill:var(--c-subs)}.chart .k-admin{fill:var(--c-pack)}
.lgd .fan{background:var(--c-reg)}.lgd .creator{background:var(--c-subs)}.lgd .admin{background:var(--c-pack)}
.hbar .b span.creator{background:var(--c-subs)}.hbar .b span.admin{background:var(--c-pack)}.hbar .b span.both{background:var(--c-tip)}.hbar .b span.none{background:var(--warn)}
.kv{margin:8px 0 0}.kv div{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-bottom:1px solid var(--line);font-size:.87rem}.kv div b,.kv div span:last-child{white-space:nowrap}
.msgs{display:flex;flex-direction:column;gap:8px;margin:10px 0;max-height:60vh;overflow:auto}
.msgs .m{padding:8px 10px;border-radius:var(--r-s);background:var(--paper);border:1px solid var(--line);max-width:85%}
.msgs .m.fan{align-self:flex-start}.msgs .m.creator,.msgs .m.admin{align-self:flex-end;background:var(--surface)}
.msgs .m.hit{border:1px solid var(--warn);box-shadow:inset 3px 0 0 var(--warn)}
.msgs .m .meta{font-size:.75rem;color:var(--ink-2);margin-bottom:3px;display:flex;gap:8px;flex-wrap:wrap}
.msgs .m .tx{white-space:pre-wrap;word-break:break-word;font-size:.9rem}
.tagw{display:inline-block;font-size:.72rem;padding:1px 6px;border-radius:9px;background:var(--warn-soft);color:var(--ink)}
dialog.wide{width:min(720px,94vw)}
h3.sub{font-size:.95rem;margin:18px 0 6px}
/* identidad, formularios de perfil y ventas */
.doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
figure.doc{margin:0;display:grid;gap:6px}
figure.doc a{display:block;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;background:var(--paper)}
figure.doc img{display:block;width:100%;height:220px;object-fit:contain;background:var(--paper)}
figure.doc .ph{height:220px;display:grid;place-items:center;border:1px dashed var(--line-strong);border-radius:var(--r-s);color:var(--ink-3);font-size:.85rem}
figure.doc figcaption{font-size:.8rem;color:var(--ink-2)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 16px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
dialog textarea.input{resize:vertical}
.wide-table table.t{min-width:1180px}.wide-table td{white-space:nowrap}.wide-table td .state{margin-top:2px}
.reveal-all .thumb img{filter:none;transform:none}
.thumb-sm .thumb{width:52px;height:52px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;max-height:60vh;overflow:auto}
.mg-item{display:grid;gap:4px;justify-items:center}.mg-item .thumb{width:96px;height:96px}.mg-item.off{opacity:.55}
dialog.lightbox{width:min(1000px,96vw)}.lb{display:grid;gap:10px;padding:14px}
.lb img{max-width:100%;max-height:78vh;object-fit:contain;margin:0 auto;display:block;background:var(--paper)}
.lb-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
/* responder chats */
.ib{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:16px;margin-top:12px;min-height:560px}
.ib-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.ib-filters{display:grid;gap:8px}
.ib-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);overflow:auto;max-height:70vh}
.ib-item{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.ib-item:hover{background:var(--paper)}.ib-item.on{background:var(--plum-soft,#f3e8f1)}
.ib-item.waiting .ib-top b{color:var(--plum)}
.ib-body{min-width:0;display:grid;gap:2px}
.ib-top{display:flex;align-items:baseline;gap:4px;min-width:0}.ib-top b{white-space:nowrap}
.ib-time{margin-left:auto;white-space:nowrap;color:var(--ink-3)}.ib-time.late{color:var(--bad,#b3261e);font-weight:600}
.ib-prev{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ib-tags{display:flex;gap:6px;align-items:center}
.ib-thread{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);display:flex;flex-direction:column;min-height:560px;max-height:78vh}
.ib-head{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.ib-back{display:none}
.ib-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--paper)}
.ib-more{align-self:center}
.ib-msg{display:grid;gap:2px;max-width:78%}
.ib-msg.fan{align-self:flex-start}.ib-msg.creator,.ib-msg.admin{align-self:flex-end;justify-items:end}
.ib-bub{padding:8px 12px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;display:grid;gap:4px}
.ib-msg.fan .ib-bub{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}
.ib-msg.creator .ib-bub{background:var(--line);border-bottom-right-radius:4px}
.ib-msg.admin .ib-bub{background:var(--plum);color:var(--plum-ink);border-bottom-right-radius:4px}
.ib-compose{display:grid;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.ib-compose textarea{resize:vertical;min-height:70px}
.ib-empty{flex:1;display:grid;place-items:center}
@media (max-width:860px){
  .ib{grid-template-columns:1fr}
  .ib.has-sel .ib-side{display:none}.ib:not(.has-sel) .ib-thread{display:none}
  .ib-back{display:inline-flex}.ib-thread{max-height:none}.ib-msg{max-width:90%}
}
.ib-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.state.s-info{color:var(--info);background:var(--info-soft)}
.cover-row{display:flex;gap:12px;align-items:center}
