/* The hosted 鱼缸小镇 renderers' own CSS, taken out of their STYLE blocks by tools/sync_town_art.py from fishbowl 20207d555a
   (the gate's CSP allows no injected <style>). Do not edit here: change the source and run the tool again. */
:root { --fb-font: var(--g-font); --fb-line-strong: rgba(67, 104, 251, .28); --fb-shadow: 0 8px 24px rgba(22, 40, 90, .10); }
.fb-status { margin: 6px 0 0; color: var(--g-ink-2); font-size: 13.5px; line-height: 1.6; }
.fb-status:empty { display: none; }
.fb-status.fb-error { color: #c0392b; }

/* ---- admin/lib/iso.js ---- */
.fbr{max-width:980px;margin:0 auto}
    .fbr.fbr-calibrating{max-width:1320px}
    .fbr-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
    .fbr-calibrating .fbr-layout{grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto 1fr}
    .fbr-calibrating .fbr-layout>.fbr-card:first-child{grid-column:1;grid-row:1}
    .fbr-calibrating .fbr-info{grid-column:1;grid-row:2}
    .fbr-calibrating .fbr-side{grid-column:2;grid-row:1 / span 2}
    .fbr-card{padding:10px;border:1px solid var(--fb-line);border-radius:18px;background:var(--fb-panel);box-shadow:var(--fb-shadow);min-width:0}
    .fbr-art{position:relative;aspect-ratio:3/2;isolation:isolate;overflow:hidden;border-radius:12px;background:#dfeafb;
      user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
    .fbr-art>svg{display:block;width:100%;height:100%}
    .fbr-art.fbr-calib>svg{touch-action:none}
    .fbr-base{filter:brightness(var(--fbr-bright,1)) saturate(var(--fbr-sat,1))}
    .fbr-cast{fill:var(--fbr-ambient,#fff);opacity:var(--fbr-cast,0);mix-blend-mode:soft-light}
    .fbr-glow{opacity:var(--fbr-lamp,0);mix-blend-mode:screen}
    .fbr-wxtint{fill:var(--fbr-wx,transparent);opacity:var(--fbr-wxop,0);mix-blend-mode:var(--fbr-wxmode,normal)}
    .fbr-stars{opacity:var(--fbr-stars,0)}
    .fbr-clouds{opacity:var(--fbr-cloud,0)}
    .fbr-veil{fill:#0b1640;opacity:var(--fbr-veil,0);mix-blend-mode:multiply}
    .fbr-roomwx{opacity:var(--fbr-roomwx,0)}
    .fbr-live .fbr-veil,.fbr-live .fbr-roomwx{transition:opacity 5s}
    .fbr-live .fbr-base{transition:filter 5s}
    .fbr-live .fbr-cast,.fbr-live .fbr-stars,.fbr-live .fbr-clouds{transition:opacity 5s}
    .fbr-live .fbr-glow{transition:opacity .6s}
    .fbr-live .fbr-wxtint{transition:opacity 2s}
    .fbr-cloud{animation:fbr-drift 46s ease-in-out infinite alternate}
    .fbr-star{animation:fbr-twinkle 3.4s ease-in-out infinite alternate}
    .fbr-drop{stroke:var(--fbr-drop,#f3f8ff);stroke-width:2.4;stroke-linecap:round;animation:fbr-fall .9s linear infinite}
    .fbr-rline{stroke:var(--fbr-drop,#f3f8ff);stroke-width:1.4;stroke-linecap:round;animation:fbr-rfall 1.1s linear infinite}
    .fbr-flake{fill:#fff;stroke:rgba(90,112,150,.45);stroke-width:.7;animation:fbr-snow 7s linear infinite}
    @keyframes fbr-fall{from{transform:translate(0,0)}to{transform:translate(-91px,400px)}}
    @keyframes fbr-rfall{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate(-110px,430px)}}
    @keyframes fbr-snow{0%{transform:translate(0,0)}50%{transform:translate(-12px,200px)}100%{transform:translate(5px,400px)}}
    @keyframes fbr-drift{from{transform:translateX(-34px)}to{transform:translateX(34px)}}
    @keyframes fbr-twinkle{from{opacity:.35}to{opacity:1}}
    @media (prefers-reduced-motion:reduce){
      .fbr-cloud,.fbr-star,.fbr-drop,.fbr-rline,.fbr-flake{animation-play-state:paused}
      .fbr-live .fbr-base,.fbr-live .fbr-cast,.fbr-live .fbr-glow,.fbr-live .fbr-wxtint,.fbr-live .fbr-stars,.fbr-live .fbr-clouds{transition:none}
    }
    .fbr-z{fill:transparent;stroke:transparent;stroke-width:2.5;vector-effect:non-scaling-stroke;pointer-events:all;cursor:pointer;outline:none}
    .fbr-z:focus-visible,.fbr-art.fbr-show .fbr-z{fill:rgba(255,255,255,.18);stroke:rgba(42,91,215,.75)}
    @media (hover:hover){.fbr-z:hover{fill:rgba(255,255,255,.18);stroke:rgba(42,91,215,.75)}}
    .fbr-hint{position:absolute;z-index:3;pointer-events:none;padding:4px 10px;border-radius:999px;background:rgba(22,29,43,.86);
      color:#fff;font-size:12.5px;font-weight:600;line-height:1.5;white-space:nowrap;opacity:0;transform:translate(10px,-130%);transition:opacity .12s}
    .fbr-hint.on{opacity:1}
    .fbr-say{position:absolute;z-index:2;left:0;top:0;max-width:58%;pointer-events:none;opacity:0;transition:opacity .3s}
    .fbr-say.on{opacity:1}
    .fbr-say-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;position:relative;padding:5px 10px;
      border-radius:12px;background:rgba(255,255,255,.95);border:1px solid rgba(42,91,215,.28);box-shadow:0 4px 12px -4px rgba(16,24,40,.3);
      color:var(--fb-text);font-size:12.5px;line-height:1.45;overflow-wrap:anywhere}
    .fbr-say-tail{position:absolute;left:0;bottom:-5px;width:9px;height:9px;margin-left:-5px;background:rgba(255,255,255,.95);
      border-right:1px solid rgba(42,91,215,.28);border-bottom:1px solid rgba(42,91,215,.28);transform:rotate(45deg)}
    .fbr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 4px 4px}
    .fbr-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px 0 10px;border-radius:999px;border:1px solid var(--fb-line);
      background:var(--fb-accent-soft);color:var(--fb-accent-deep);font:inherit;font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap}
    .fbr-chip svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
    button.fbr-chip{cursor:pointer;background:var(--fb-panel);border-color:var(--fb-line-strong);color:var(--fb-text-2);box-shadow:var(--fb-shadow-sm)}
    button.fbr-chip:hover{background:var(--fb-panel-2)}
    button.fbr-chip[aria-pressed="true"]{background:var(--fb-accent-soft);border-color:var(--fb-accent);color:var(--fb-accent-deep)}
    button.fbr-chip:focus-visible{outline:2px solid var(--fb-accent);outline-offset:2px}
    .fbr-spacer{flex:1 1 auto}
    .fbr-tip{margin:0;padding:6px 4px 2px;font-size:12.5px;color:var(--fb-muted);line-height:1.6}
    .fbr-tip+.fbr-tip{padding-top:0}
    .fbr-link{color:var(--fb-accent);font-weight:600;text-decoration:none;white-space:nowrap}
    .fbr-link:hover{text-decoration:underline}
    .fbr-demo{display:grid;gap:8px;padding:12px 14px;border:1px dashed var(--fb-line-strong);border-radius:14px;background:var(--fb-panel-2)}
    .fbr-demo-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
    .fbr-demo-row>b{flex:none;min-width:3em;font-size:12px;color:var(--fb-muted);font-weight:600}
    .fbr-side{display:grid;gap:12px;padding:16px;border:1px solid var(--fb-line);border-radius:18px;background:var(--fb-panel);box-shadow:var(--fb-shadow);min-width:0}
    .fbr-side h2{margin:0;font-size:15.5px;font-weight:700}
    .fbr-side p{margin:0}
    .fbr-list{display:flex;flex-direction:column;max-height:300px;overflow-y:auto;border:1px solid var(--fb-line);border-radius:12px;background:var(--fb-panel-2)}
    .fbr-li{display:flex;align-items:center;gap:8px;width:100%;min-height:38px;padding:6px 12px;border:0;border-top:1px solid var(--fb-line);background:none;
      color:var(--fb-text);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
    .fbr-li:first-child{border-top:0}
    .fbr-li:hover{background:var(--fb-panel)}
    .fbr-li[aria-current="true"]{background:var(--fb-accent-soft);color:var(--fb-accent-deep);font-weight:650}
    .fbr-li small{margin-left:auto;color:var(--fb-muted);font-size:11.5px;font-weight:500}
    .fbr-li:focus-visible{outline:2px solid var(--fb-accent);outline-offset:-2px}
    .fbr-btns{display:flex;flex-wrap:wrap;gap:8px}
    .fbr-btns .fb-button{flex:1 1 auto}
    .fbr-pad .fb-button{min-width:44px;min-height:40px}
    .fbr-calib-banner{padding:10px 12px;border-radius:10px;background:var(--fb-accent-soft);color:var(--fb-accent-deep);font-size:13px;line-height:1.6}
    .fbr-c{fill:rgba(255,90,90,.10);stroke:#ff6a6a;stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke;cursor:move}
    .fbr-c.sel{fill:rgba(42,91,215,.18);stroke:#2a5bd7;stroke-dasharray:none;stroke-width:2.5}
    .fbr-ctext{font:600 22px var(--fb-font);fill:#fff;stroke:rgba(22,29,43,.8);stroke-width:5px;paint-order:stroke;pointer-events:none}
    .fbr-h{fill:#fff;stroke:#2a5bd7;stroke-width:2;vector-effect:non-scaling-stroke}
    .fbr-h[data-h]{cursor:nwse-resize}
    .fbr-h[data-v]{cursor:move;fill:#2a5bd7;stroke:#fff}
    .fbr-draw{fill:rgba(42,91,215,.14);stroke:#2a5bd7;stroke-width:2.5;vector-effect:non-scaling-stroke}
    .fbr-draw-pt{fill:#fff;stroke:#2a5bd7;stroke-width:2;vector-effect:non-scaling-stroke}
    .fbr-draw-first{fill:#ffcf5a}
    .fb-drawer.fbr-sheet{width:min(380px,calc(100vw - 20px))}
    .fb-drawer.fbr-sheet.fbr-left{right:auto;left:10px;transform:translateX(calc(-100% - 20px))}
    .fb-drawer.fbr-sheet.fbr-left.fb-open{transform:none}
    .fb-drawer-backdrop.fbr-sheet{background:rgba(18,26,42,.12);-webkit-backdrop-filter:none;backdrop-filter:none}
    .fbr-go{margin-top:12px;width:100%}
    .fbr-lines{display:flex;flex-direction:column;border:1px solid var(--fb-line);border-radius:14px;overflow:hidden;background:var(--fb-panel)}
    .fbr-line{margin:0;padding:12px 16px;border-top:1px solid var(--fb-line);font-size:14.5px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
    .fbr-line:first-child{border-top:0}
    .fbr-line.fbr-quiet{color:var(--fb-muted)}
    @media (max-width:1080px){.fbr-calibrating .fbr-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:none}
      .fbr-calibrating .fbr-layout>.fbr-card:first-child,.fbr-calibrating .fbr-info,.fbr-calibrating .fbr-side{grid-column:auto;grid-row:auto}}
    @media (max-width:820px){
      /* on a phone the picture stays under the top bar while the panel below scrolls (names, nudges, save) */
      .fbr-calibrating .fbr-layout>.fbr-card:first-child{position:sticky;top:calc(58px + env(safe-area-inset-top));z-index:6}
      .fbr-card{padding:8px;border-radius:16px}
      .fbr-art{border-radius:10px}
      .fbr-meta{padding:10px 2px 2px}
      .fbr-say{max-width:60%}
      .fbr-say-text{font-size:11px;padding:3px 8px;border-radius:10px;-webkit-line-clamp:1}
      .fbr-chip{min-height:34px}
      .fb-drawer.fbr-sheet,.fb-drawer.fbr-sheet.fbr-left{top:auto;bottom:0;left:0;right:0;width:100%;max-height:min(46vh,420px);border-radius:22px 22px 0 0;
        border-bottom:0;transform:translateY(105%)}
      .fb-drawer.fbr-sheet.fb-open,.fb-drawer.fbr-sheet.fbr-left.fb-open{transform:none}
      .fb-drawer.fbr-sheet .fb-drawer-head{padding:20px 18px 12px;position:relative}
      .fb-drawer.fbr-sheet .fb-drawer-head::before{content:"";position:absolute;top:8px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:#d8dbe2}
      .fb-drawer.fbr-sheet .fb-drawer-body{padding:14px 16px calc(18px + env(safe-area-inset-bottom))}
      .fb-drawer-backdrop.fbr-sheet{background:rgba(18,26,42,.18)}
    }

/* ---- admin/sections/town.js ---- */
.fbt-wrap{max-width:1180px;margin:0 auto}
    .fbt-wrap.fbr-calibrating{max-width:1320px}
    .fbt-pad>*+*{margin-top:12px}
    .fbt-stage{display:grid;gap:14px;grid-template-columns:minmax(0,1fr);align-items:start}
    @media (min-width:1000px){.fbt-stage.fbt-two{grid-template-columns:minmax(0,1fr) 300px}}
    .fbt-art{touch-action:pan-y}
    .fbt-viewport{position:relative;border-radius:12px;overflow:hidden}
    .fbt-viewport.fbt-map{aspect-ratio:2172/724;width:100%;min-width:0;max-height:780px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;background:var(--fbt-bg,#b8fcfd)}
    .fbt-viewport.fbt-map.fbt-grabbing{cursor:grabbing}
    @media (max-width:820px){.fbt-viewport.fbt-map{min-height:clamp(300px,44vh,380px)}}   /* a phone: as tall as it is useful, the picture is swiped along */
    .fbt-viewport.fbt-map .fbt-pan{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
    .fbt-viewport.fbt-map .fbt-art{touch-action:none;border-radius:0;aspect-ratio:auto}
    .fbt-viewport.fbt-map .fbt-badge{transform:translate(-50%,-50%) scale(var(--fbt-inv,1))}
    .fbt-zoom{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px;z-index:4}
    .fbt-zoom button{min-width:40px;height:40px;padding:0 10px;border:1px solid var(--fb-line-strong);border-radius:12px;background:rgba(255,255,255,.94);
      color:var(--fb-accent-deep);font:600 18px/1 var(--fb-font);box-shadow:0 2px 8px rgba(22,40,90,.2);cursor:pointer}
    .fbt-zoom button.fbt-fit{font-size:13px}
    .fbt-zoom button:hover{background:#fff}
    .fbt-viewport:not(.fbt-map) .fbt-zoom{display:none}
    .fbt-badges{position:absolute;inset:0;pointer-events:none}
    .fbt-badge{position:absolute;transform:translate(-50%,-50%);min-width:24px;height:24px;padding:0 7px;border-radius:999px;border:2px solid #fff;
      background:#2a5bd7;color:#fff;font:700 13px/20px var(--fb-font);text-align:center;box-shadow:0 2px 6px rgba(22,40,90,.35);pointer-events:auto;cursor:pointer}
    .fbt-badge.mine{background:#1c3f9a;box-shadow:0 0 0 4px rgba(42,91,215,.28),0 2px 6px rgba(22,40,90,.35)}
    .fbt-badge:focus-visible{outline:2px solid #fff;outline-offset:2px}
    .fbt-badge.fbt-wide{padding:0 9px;font-size:12px;font-weight:650;white-space:nowrap}
    .fbt-badge.fbt-soft{background:#fff;color:#1c3f9a;border-color:#2a5bd7}
    .fbt-badge.fbt-live{background:#1c3f9a;animation:fbt-pulse 1.8s ease-out infinite}
    .fbt-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
    .fbt-label{position:absolute;transform:translate(-50%,0);max-width:46%;padding:1px 6px;border-radius:999px;background:rgba(255,255,255,.9);color:#1c2a4a;
      font:600 11px/16px var(--fb-font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px rgba(22,40,90,.25);pointer-events:auto;cursor:pointer}
    .fbt-label.fbt-above{transform:translate(-50%,-100%)}
    .fbt-label i{font-style:normal;font-size:9.5px;color:#2a5bd7;margin-left:3px}
    .fbt-label.fbt-mine{background:#2a5bd7;color:#fff;font-size:12px;line-height:18px;padding:1px 8px;box-shadow:0 0 0 2px #fff,0 2px 6px rgba(22,40,90,.4)}
    .fbt-label.fbt-mine i{color:#fff}
    .fbt-more{position:absolute;right:10px;top:10px;z-index:3;height:30px;padding:0 12px;border-radius:999px;border:2px solid #2a5bd7;
      background:rgba(255,255,255,.95);color:#1c3f9a;font:650 13px/26px var(--fb-font);box-shadow:0 2px 6px rgba(22,40,90,.3);cursor:pointer}
    @keyframes fbt-pulse{0%{box-shadow:0 0 0 0 rgba(42,91,215,.6),0 2px 6px rgba(22,40,90,.35)}100%{box-shadow:0 0 0 13px rgba(42,91,215,0),0 2px 6px rgba(22,40,90,.35)}}
    @media (prefers-reduced-motion:reduce){.fbt-badge.fbt-live{animation:none}}
    .fbt-now{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;padding:2px 2px 4px;overflow-x:auto;scrollbar-width:none;font-size:12.5px;color:var(--fb-muted)}
    .fbt-now::-webkit-scrollbar{display:none}
    .fbt-now>span{flex:none}
    .fbt-now .fbr-chip{flex:none;min-height:32px;font-size:12.5px;white-space:nowrap}
    .fbt-now .fbr-chip b{font-weight:650;color:var(--fb-accent-deep)}
    .fbt-now .fbr-chip.fbt-on{background:var(--fb-accent-soft);border-color:#2a5bd7;color:var(--fb-accent-deep)}
    .fbt-tables{display:grid;gap:6px}
    .fbt-tables h4{margin:4px 0 0;font-size:12.5px;font-weight:650;color:var(--fb-muted)}
    .fbt-tables a.fbt-row{text-decoration:none;color:inherit}
    .fbt-tables a.fbt-row small{color:var(--fb-accent-deep);font-weight:600}
    .fbt-tables div.fbt-row{cursor:default}
    .fbt-tables div.fbt-row:hover{background:none}
    .fbt-games .fbt-row b{flex:none;overflow:visible;text-overflow:clip}
    @media (max-width:820px){.fbt-badge{min-width:20px;height:20px;font-size:11.5px;line-height:16px;padding:0 5px}}
    .fbt-fish{cursor:pointer;outline:none}
    .fbt-body{animation:fbt-bob var(--fbt-dur,4s) ease-in-out infinite alternate;animation-delay:var(--fbt-d,0s)}
    @keyframes fbt-bob{from{transform:translateY(0)}to{transform:translateY(calc(var(--fbt-amp,1.5) * -1px))}}
    @media (prefers-reduced-motion:reduce){.fbt-body{animation:none}}
    .fbt-ring{fill:none;stroke:#2a5bd7;stroke-opacity:.45;stroke-width:1.2;vector-effect:non-scaling-stroke}     /* hers only: a thin, faint ring */
    .fbt-shadow{fill:url(#fbt-sh)}
    .fbt-contact{fill:rgba(16,22,40,.3)}
    .fbt-mark{fill:#2a5bd7;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;animation:fbt-mark 1.4s ease-in-out infinite alternate}
    @keyframes fbt-mark{from{transform:translateY(0)}to{transform:translateY(-6px)}}
    .fbt-say .fbr-say-text{white-space:pre-line}
    .fbt-say b{font-weight:700}
    .fbt-note{margin:0;padding:8px 12px;border-radius:12px;background:var(--fb-accent-soft);color:var(--fb-accent-deep);font-size:13px;line-height:1.55}
    .fbt-side{display:grid;gap:10px;padding:14px;border:1px solid var(--fb-line);border-radius:18px;background:var(--fb-panel);box-shadow:var(--fb-shadow);min-width:0}
    .fbt-side h3{margin:0;font-size:14.5px;font-weight:700}
    .fbt-fishes{display:flex;flex-direction:column;border:1px solid var(--fb-line);border-radius:12px;overflow:hidden;background:var(--fb-panel-2)}
    .fbt-row{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:7px 12px;border:0;border-top:1px solid var(--fb-line);background:none;
      color:var(--fb-text);font:inherit;text-align:left;cursor:pointer}
    .fbt-row:first-child{border-top:0}
    .fbt-row:hover{background:var(--fb-panel)}
    .fbt-row[aria-current="true"]{background:var(--fb-accent-soft)}
    .fbt-row b{font-size:14px;font-weight:650;white-space:nowrap}
    .fbt-row span.fbt-act{flex:1 1 auto;min-width:0;color:var(--fb-muted);font-size:12.5px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .fbt-row small{flex:none;color:var(--fb-muted);font-size:11.5px}
    .fbt-pill{flex:none;padding:1px 8px;border-radius:999px;background:#2a5bd7;color:#fff;font-size:11.5px;font-weight:600}
    .fbt-pill.fbt-res{background:#edf2fe;color:#2a5bd7;box-shadow:inset 0 0 0 1px rgba(42,91,215,.16)}
    .fbt-pill.fbt-couple{background:#fff;color:#2a5bd7;box-shadow:inset 0 0 0 1px rgba(42,91,215,.28);font-weight:700}
    .fbt-label i.fbt-heart{font-style:normal;margin-left:3px;color:#2a5bd7;font-weight:700}
    .fbt-route{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 4px 2px;font-size:12.5px;color:var(--fb-muted)}
    .fbt-route .fbr-chip{min-height:28px;font-size:12.5px}
    .fbt-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
    .fbt-pick{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:5px;border:1px solid var(--fb-line);border-radius:12px;background:var(--fb-panel);color:var(--fb-text);font:inherit;font-size:13px;cursor:pointer;text-align:center}
    .fbt-pick img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:8px;display:block;background:var(--fb-panel-2)}
    .fbt-pick[aria-pressed=true]{border-color:#2a5bd7;box-shadow:0 0 0 2px rgba(42,91,215,.25);font-weight:600}
    .fbt-shadow{filter:blur(1.6px)}
    .fbt-empty{margin:0;padding:18px 12px;text-align:center;color:var(--fb-muted);font-size:13.5px;line-height:1.6}
    .fbt-visit-row{display:flex;align-items:center;gap:10px}
    .fbt-title{margin:0;font-size:15px;font-weight:700;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .fbt-letter{margin:0;padding:12px 16px;border-top:1px solid var(--fb-line);font-size:14px;line-height:1.65;overflow-wrap:anywhere}
    .fbt-letter:first-child{border-top:0}
    .fbt-letter small{display:block;color:var(--fb-muted);font-size:12px}
    .fbt-news-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
    .fbt-news-head h3{flex:1 1 auto;min-width:0}
    .fbt-news-head .fbr-chip{min-height:32px;font-size:12.5px}
    .fbt-news-head .fbr-chip[aria-pressed=true]{background:var(--fb-accent-soft);border-color:#2a5bd7;color:var(--fb-accent-deep);font-weight:600}
    .fbt-news .fbt-row b{overflow:hidden;text-overflow:ellipsis;min-width:0}
    .fbt-news .fbt-row.fbt-head b{flex:1 1 auto}
    .fbt-news div.fbt-row{cursor:default}
    .fbt-news a.fbt-row{text-decoration:none;color:inherit}
    .fbt-news a.fbt-row small{color:var(--fb-accent-deep);font-weight:600}
    .fbt-watch{margin-top:6px}
    .fbt-news div.fbt-row:hover{background:none}
    .fbt-news-foot{display:flex;align-items:center;gap:10px;color:var(--fb-muted);font-size:12.5px;min-height:24px}
    .fbt-news-foot span{flex:1 1 auto;min-width:0}
    .fbt-paper b{display:block;margin-bottom:4px;font-size:14.5px}
    .fbt-letter em{display:block;margin-top:4px;padding:6px 10px;border-radius:10px;background:var(--fb-accent-soft);color:var(--fb-accent-deep);font-style:normal;font-size:13px}
    .fbt-visit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;width:100%;padding:10px 12px;border:0;border-top:1px solid var(--fb-line);
      background:none;color:var(--fb-text);font:inherit;text-align:left;cursor:pointer}
    .fbt-visit:first-child{border-top:0}
    .fbt-visit:hover{background:var(--fb-panel)}
    .fbt-visit .fbt-vwho{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:650;min-width:0}
    .fbt-visit .fbt-vwho .fbt-pill{font-weight:600}
    .fbt-visit .fbt-vwho i{font-style:normal;color:var(--fb-muted);font-weight:500}
    .fbt-visit small{color:var(--fb-muted);font-size:11.5px;white-space:nowrap;align-self:start;padding-top:3px}
    .fbt-visit .fbt-vsum{grid-column:1 / -1;font-size:12.5px;line-height:1.5;color:var(--fb-text-2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
    .fbt-visit.fbt-vnone .fbt-vsum{color:var(--fb-muted)}
    .fbt-vhead{display:grid;gap:6px;padding:0 0 10px}
    .fbt-vhead p{margin:0;font-size:13.5px;line-height:1.6;color:var(--fb-text-2)}
    .fbt-vhead .fbt-vtopics{display:flex;flex-wrap:wrap;gap:6px}
    .fbt-vhead .fbt-vtopics span{padding:3px 10px;border-radius:999px;background:var(--fb-accent-soft);color:var(--fb-accent-deep);font-size:12px}
    .fbt-chat{position:relative;border-radius:16px;overflow:hidden;background:#dfe8fd center/cover no-repeat;padding:14px 12px 12px;display:grid;gap:8px;min-height:200px}
    .fbt-chat::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(246,248,253,.62),rgba(246,248,253,.82));pointer-events:none}
    .fbt-chat>*{position:relative}
    .fbt-line{display:flex;flex-direction:column;align-items:flex-start;max-width:86%}
    .fbt-line.fbt-her{align-self:flex-end;align-items:flex-end}
    .fbt-line .fbt-name{font-size:11.5px;color:var(--fb-muted);margin:0 6px 2px;display:flex;gap:5px;align-items:center}
    .fbt-line .fbt-name .fbt-pill{min-height:0;padding:0 6px;font-size:10.5px;line-height:16px}
    .fbt-line .fbt-bubble{padding:8px 12px;border-radius:16px 16px 16px 5px;background:#fff;color:var(--fb-text);font-size:14px;line-height:1.55;box-shadow:0 1px 3px rgba(22,40,90,.14);overflow-wrap:anywhere}
    .fbt-line.fbt-her .fbt-bubble{border-radius:16px 16px 5px 16px;background:#2a5bd7;color:#fff}
    .fbt-line time{font-size:10.5px;color:var(--fb-muted);margin:2px 6px 0}
    .fbt-sys{justify-self:center;max-width:92%;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.85);color:var(--fb-muted);font-size:11.5px;text-align:center;line-height:1.5}
    .fbt-sys.fbt-topic{color:var(--fb-accent-deep);background:rgba(234,241,255,.95)}
    .fbt-sys.fbt-did{color:var(--fb-text-2);font-weight:600}
    .fbt-vmore{margin:10px auto 0;display:block}
    .fbt-area{margin:12px 2px 6px;font-size:12.5px;font-weight:650;color:var(--fb-muted)}
    .fbt-area:first-of-type{margin-top:4px}
