/* inlined from ./index.page.css?v=20260329a */
:root {
  --bp-mobile: 700px;
}
:root{--bg:#e7e8ea;--bg-2:#d9dbde;--surface:#f6f7f8;--surface-2:#eef1f3;--text:#0f1113;--muted:#5b6168;--line:#c4c9cf;--brand:#c5ea1f;--brand-dark:#95b70b;--brand-soft:#edf8bc;--shadow:0 10px 26px rgba(10, 14, 20, 0.14);--shadow-strong:0 18px 46px rgba(10, 14, 20, 0.2);--radius-xs:8px;--radius-sm:10px;--radius-md:12px;--radius-lg:14px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--font-xs:14px;--font-sm:16px;--font-md:16px;--font-lg:20px;--font-xl:20px;--font-2xl:20px;--font-3xl:20px;--control-h:34px}body[data-theme=dark]{--bg:#101214;--bg-2:#1a1d21;--surface:#171b20;--surface-2:#1d2329;--text:#f4f7f9;--muted:#a2acb5;--line:#303841;--brand:#c5ea1f;--brand-dark:#9ec611;--brand-soft:#2a3312;--shadow:0 10px 30px rgba(0, 0, 0, 0.38);--shadow-strong:0 20px 50px rgba(0, 0, 0, 0.46)}*{box-sizing:border-box}body{margin:0;font-family:"Hiragino Sans","Avenir Next","Noto Sans JP","Yu Gothic",sans-serif;color:var(--text);line-height:1.6;background:radial-gradient(1000px 340px at 50% -140px,rgba(197,234,31,.18) 0,transparent 70%),linear-gradient(180deg,var(--bg) 0,var(--bg-2) 100%);min-height:100vh;-webkit-text-size-adjust:100%}.topbar{position:sticky;top:0;z-index:10;background:rgba(250,251,252,.8);backdrop-filter:blur(12px) saturate(1.05);border-bottom:1px solid var(--line);box-shadow:0 6px 22px rgba(9,13,18,.08)}body[data-theme=dark] .topbar{background:rgba(16,20,25,.82)}.topbar-inner{max-width:1200px;margin:0 auto;padding:12px 18px;display:grid;gap:8px}.topbar-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.topbar-row.topbar-row-1{min-height:30px}.topbar-row.topbar-row-2{margin:0 -8px -2px;padding:8px;border-top:1px solid rgba(149,183,11,.14);background:rgba(228,232,236,.74);border-radius:10px}body[data-theme=dark] .topbar-row.topbar-row-2{background:rgba(34,40,47,.72)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-session-controls{display:grid;gap:5px;width:100%}.header-session-controls select{width:auto;min-width:150px;padding:6px 10px;min-height:32px;border-radius:999px}.admin-key-row{display:grid;grid-template-columns:1fr auto auto;gap:5px;width:100%}.admin-key-row input{min-height:32px;padding:6px 10px}.admin-key-row button{min-height:32px;padding:5px 10px;white-space:nowrap}.header-session-controls .session-tools-grid{display:grid;gap:5px;width:100%}.header-session-controls .session-tools{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.header-session-controls .session-tools button{min-width:0;min-height:32px;padding:5px 8px}.header-session-controls .session-tools.session-tools-delete{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}.header-session-controls .session-tools.session-tools-delete button{grid-column:1/2}#openManualBtn{white-space:nowrap}.admin-menu{position:relative}.admin-summary{list-style:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--radius-pill);padding:7px 12px;min-height:var(--control-h);font-size:var(--font-xs);font-weight:600;background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);color:var(--text);cursor:pointer;user-select:none}.admin-summary::-webkit-details-marker{display:none}.admin-menu[open] .admin-summary{border-color:var(--brand-dark);box-shadow:0 0 0 3px rgba(197,234,31,.2)}.admin-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:340px;max-width:min(92vw,520px);padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-strong)}.brand{display:inline-flex;align-items:center;line-height:1}.brand img{display:block;width:auto;height:28px}.view-switch{display:inline-flex;gap:6px}.view-tab{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);color:var(--text);border-radius:var(--radius-pill);padding:7px 13px;font-size:var(--font-xs);font-weight:700;min-height:var(--control-h)}.view-tab.active{background:var(--brand-soft);border-color:var(--brand-dark);box-shadow:inset 0 0 0 1px rgba(149,183,11,.24)}.badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:var(--radius-pill);font-size:var(--font-xs);background:var(--brand-soft);color:var(--text);white-space:nowrap;border:1px solid rgba(149,183,11,.24)}.dot{width:8px;height:8px;border-radius:50%;background:var(--brand-dark)}.container{max-width:1200px;margin:0 auto;padding:18px}.hero{margin:8px 0 16px}.hero h1{margin:0;font-size:var(--font-sm);line-height:1.7;letter-spacing:0;font-weight:700;color:var(--text)}.hero p{margin:6px 0 0;color:var(--text);font-size:var(--font-sm);line-height:1.7}.hero-meta{margin-top:6px;display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-meta p{margin:0;flex:1 1 auto}.hero-action{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.field{margin-bottom:10px}label{display:block;font-size:var(--font-xs);color:var(--muted);margin-bottom:6px}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);color:var(--text);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--brand-dark);box-shadow:0 0 0 3px rgba(197,234,31,.2)}textarea{min-height:96px;resize:vertical}.actions{display:flex;flex-wrap:wrap;gap:8px}button{border:none;border-radius:var(--radius-sm);padding:8px 12px;font-size:var(--font-sm);font-weight:600;line-height:1.2;min-height:var(--control-h);cursor:pointer;transition:box-shadow .16s ease,background-color .16s ease,border-color .16s ease,opacity .16s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button.primary{background:linear-gradient(180deg,var(--brand) 0,#b4dd17 100%);color:#0f1113;font-weight:700;box-shadow:0 8px 20px rgba(149,183,11,.25)}button.primary:hover{background:linear-gradient(180deg,#d3f43b 0,var(--brand-dark) 100%)}button.ghost{background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);color:var(--text);border:1px solid var(--line)}button.ghost:hover{background:var(--brand-soft);border-color:rgba(149,183,11,.35)}button:focus-visible{outline:2px solid var(--brand-dark);outline-offset:2px}button[aria-disabled=true],button[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}button:hover{transform:none}button:active{transform:none}.toolbar{display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px;margin-bottom:12px;padding:10px;border-radius:var(--radius-lg);background:rgba(255,255,255,.45);border:1px solid var(--line);box-shadow:var(--shadow)}.is-hidden{display:none!important}.session-tools{width:100%}.list{display:grid;gap:12px}.q-item{padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;transition:box-shadow .18s ease,border-color .18s ease}.q-item:hover{border-color:rgba(149,183,11,.45);box-shadow:var(--shadow-strong)}.q-main{min-width:0}.q-title{margin:0;font-size:var(--font-lg);line-height:1.62;white-space:pre-wrap;word-break:break-word;font-weight:600}.q-meta{margin-top:7px;font-size:var(--font-xs);color:var(--muted)}.meta-delete-link{background:0 0;border:none;padding:2px 8px;margin:0;border-radius:8px;color:var(--muted);font-size:inherit;text-decoration:underline;text-underline-offset:2px;line-height:1.4;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.meta-delete-link:hover{color:#dc4c64;transform:none}.meta-delete-link:active{transform:none}.swipe-ready{touch-action:pan-y}.swipe-active{transform:translateX(-8px);border-color:rgba(220,76,100,.65);box-shadow:0 0 0 2px rgba(220,76,100,.18)}.q-side{display:flex;align-items:center;gap:8px;align-self:start}.replies{margin-top:10px;display:grid;gap:6px}.replies-view-grid{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:10px;align-items:stretch}.replies-view-grid .reply-item{display:flex;flex-direction:column;min-height:116px;border:none;background:#e8ebef;box-shadow:none;border-radius:var(--radius-md)}.replies-view-grid .reply-actions{margin-top:auto;justify-content:flex-end}body[data-theme=dark] .replies-view-grid .reply-item{border:none;background:#2f353d}.reply-item{border:1px solid var(--line);border-radius:var(--radius-md);padding:8px 10px;background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,255,255,.32));transition:border-color .16s ease,box-shadow .16s ease;display:grid;grid-template-columns:1fr auto;gap:0 8px}body[data-theme=dark] .reply-item{background:linear-gradient(180deg,rgba(22,28,35,.9),rgba(22,28,35,.72))}.reply-text{margin:0;font-size:var(--font-sm);line-height:1.6;white-space:pre-wrap;word-break:break-word}.reply-meta{margin-top:4px;font-size:var(--font-xs);color:var(--muted)}.reply-actions{margin-top:0;display:flex;gap:6px;align-items:flex-start;grid-column:2;grid-row:1/span 2}.reply-vote{font-size:var(--font-xs);color:var(--muted)}.reply-form{margin-top:8px;display:grid;grid-template-columns:1fr auto;gap:8px}.status-chip{display:inline-block;margin-right:6px;padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--font-xs);background:var(--brand-soft);color:var(--text);border:1px solid rgba(149,183,11,.28)}.status-chip.answered{background:#dbe3ec;color:#1a2330;border:1px solid #bcc7d2}.ops-row{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.ops-panel{padding:10px 12px;margin-bottom:10px}.ops-panel .actions{margin-top:8px}.start-guide{padding:10px 12px;margin-bottom:10px;border-radius:var(--radius-md);border:1px solid rgba(149,183,11,.36);background:linear-gradient(180deg,rgba(197,234,31,.18),rgba(197,234,31,.08))}.start-guide-title{font-size:var(--font-sm);font-weight:700;margin:0 0 2px}.start-guide-text{margin:0;color:var(--muted);font-size:var(--font-xs)}.start-guide .actions{margin-top:8px}.poll-box{padding:12px}.poll-q{font-size:var(--font-2xl);font-weight:600;margin:0 0 10px;line-height:1.35}.poll-stack{display:grid;grid-template-columns:1fr;gap:12px}.poll-result-col{min-width:0}.poll-input-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,0.8fr);gap:12px;align-items:start}.poll-input-editor,.poll-input-main{min-width:0}.poll-list{display:grid;gap:8px}.poll-create>strong{display:block;margin-bottom:12px}.poll-templates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.poll-templates .ghost{width:100%;min-width:0;text-align:center}.poll-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.poll-opt-label{font-size:var(--font-lg)}.poll-bar-wrap{position:relative;height:10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);overflow:hidden}.poll-bar{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--brand-dark),var(--brand))}.poll-meta{margin-top:10px;font-size:var(--font-md);color:var(--muted)}.poll-mine{font-size:var(--font-md);color:var(--muted);margin-bottom:8px}.poll-heart-value{font-size:var(--font-lg);font-weight:700;letter-spacing:.2px}.poll-heart-count{display:inline-block;width:3.6em;margin-left:8px;text-align:right;font-size:var(--font-xs);font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.poll-result-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--radius-pill);padding:8px 12px;background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);color:var(--text);font-size:var(--font-sm)}body[data-theme=dark] .poll-result-item{border-color:var(--line)}.poll-topic-item{border:1px solid var(--line);border-radius:var(--radius-pill);padding:8px 12px;background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);color:var(--text);font-size:var(--font-sm)}.poll-topic-right{display:inline-flex;align-items:center;gap:8px}.poll-topic-delete{min-height:26px;padding:4px 8px;font-size:var(--font-xs)}body[data-theme=dark] .poll-topic-item{border-color:var(--line)}.poll-topic-item .poll-opt-label{white-space:normal;word-break:break-word;font-weight:700}.poll-result-label{font-size:var(--font-lg);font-weight:700}.poll-result-value{display:inline-flex;align-items:center;justify-content:flex-end;text-align:right;white-space:nowrap;font-size:var(--font-lg);font-weight:700;letter-spacing:.2px}.poll-input-row{display:grid;grid-template-columns:1fr;gap:8px;border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 12px;background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%)}body[data-theme=dark] .poll-input-row{border-color:var(--line);background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%)}.poll-input-label{line-height:1.4;white-space:normal;word-break:break-word;font-weight:700}.poll-input-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.poll-input-controls .poll-heart-btn{margin-left:auto}.poll-input-row .poll-meta{margin-top:0}.poll-input-controls .poll-meta{font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface)}.poll-input-row-editor{margin-bottom:6px}.poll-editor-actions{margin-top:6px}.poll-topic-meta{margin-top:12px}.poll-topic-list{margin-top:8px}.poll-topic-actions{margin-top:8px;justify-content:flex-end}.poll-box button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.poll-create textarea{min-height:90px}.poll-option-list{display:grid;gap:8px}.poll-option-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.poll-option-row .ghost{padding:6px 8px}.vote-board{display:grid;gap:10px;margin-top:10px}.vote-row{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);will-change:transform}.vote-row-rank-shift{animation:voteRankShift 1.55s cubic-bezier(.18,.89,.32,1.28) both}.vote-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.vote-label{font-size:var(--font-md);font-weight:700}.vote-bar-wrap{height:10px;border-radius:999px;border:1px solid var(--line);overflow:hidden;background:var(--surface-2)}.vote-bar{height:100%;width:var(--vote-to,0%);transform-origin:left center;will-change:width,transform,filter;background:linear-gradient(90deg,var(--brand-dark) 0,var(--brand) 100%)}.vote-bar-anim{animation:voteBarGrow 1.2s cubic-bezier(.22,.61,.36,1) both,voteBarNuiin .9s ease-out both}.vote-row-meta{margin-top:6px;font-size:var(--font-xs);color:var(--muted)}.vote-meta-line{display:grid;gap:6px}.vote-meta-top{display:flex;justify-content:flex-end;align-items:center}.vote-timer-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid rgba(149,183,11,.45);background:linear-gradient(180deg,#d8f24d 0,var(--brand) 100%);color:#0f1113;font-weight:800;font-size:clamp(20px, 2.3vw, 28px);line-height:1;box-shadow:0 6px 16px rgba(149,183,11,.26)}.vote-timer-pill.is-off{background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);border-color:var(--line);color:var(--muted);box-shadow:none;font-size:var(--font-sm);font-weight:600}.vote-countdown{font-variant-numeric:tabular-nums;letter-spacing:.02em}.vote-meta-sub{font-size:var(--font-sm);color:var(--muted)}.vote-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.vote-title-inline{margin:0}.vote-title-timer{margin-left:auto}@keyframes voteBarGrow{from{width:var(--vote-from,0%)}to{width:var(--vote-to,0%)}}@keyframes voteBarNuiin{0%{transform:scaleX(.985);filter:brightness(1)}55%{transform:scaleX(1.01);filter:brightness(1.08)}100%{transform:scaleX(1);filter:brightness(1)}}@keyframes voteRankShift{0%{transform:translateY(var(--rank-shift,0)) scale(.998);opacity:1}55%{transform:translateY(calc(var(--rank-shift,0) * -.12)) scale(1.018);opacity:1}76%{transform:translateY(calc(var(--rank-shift,0) * .04)) scale(.997);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}.vote{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:7px 9px;border-radius:var(--radius-pill);background:linear-gradient(180deg,var(--brand-soft) 0,#e4f1a6 100%);color:#516608;font-weight:700;font-size:var(--font-sm);border:1px solid rgba(149,183,11,.34)}.like-count-btn{font-weight:700}.like-count-btn[disabled]{cursor:default;opacity:1}.muted-note{padding:12px;color:var(--muted);font-size:var(--font-sm);line-height:1.5}.theme-toggle{width:40px;height:var(--control-h);border-radius:var(--radius-sm);padding:0;display:inline-flex;align-items:center;justify-content:center}.fab{position:fixed;right:18px;bottom:18px;z-index:30;width:58px;height:58px;border-radius:999px;padding:0;font-size:var(--font-3xl);line-height:1;box-shadow:0 10px 24px rgba(16,42,31,.24);border:1px solid rgba(149,183,11,.45)}.modal{position:fixed;inset:0;z-index:35;display:none;align-items:center;justify-content:center;background:rgba(8,16,12,.55);padding:16px}.modal.open{display:flex}.modal-card{width:min(640px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-strong);padding:16px;animation:modalIn .2s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-head h3{margin:0;font-size:var(--font-xl)}.modal-close{width:36px;height:36px;border-radius:var(--radius-pill);padding:0;font-size:var(--font-xl)}.qr-modal-card{width:min(420px,100%)}.qr-preview{display:grid;gap:10px;justify-items:center}.qr-image-wrap{width:min(300px,78vw);aspect-ratio:1/1;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;padding:10px;display:grid;place-items:center}.qr-image-wrap img{width:100%;height:100%;object-fit:contain}.qr-url-text{width:100%;font-size:var(--font-xs);color:var(--muted);word-break:break-all;text-align:left}.qr-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.presenter .hero h1{font-size:var(--font-sm)}.presenter .q-title{font-size:var(--font-2xl);line-height:1.35}.presenter .q-item{padding:20px}.presenter .q-meta{font-size:var(--font-md)}.presenter .vote{min-width:58px;font-size:var(--font-xl);padding:9px 12px}.presenter .q-item{align-items:start;grid-template-columns:1fr;box-shadow:none}.presenter .q-item:hover{box-shadow:none}.presenter .q-side{justify-content:flex-end;align-items:center;padding-top:0}.presenter .q-side .like-count-btn{min-width:86px}.footer{max-width:1200px;margin:10px auto 20px;padding:0 18px;color:var(--muted);font-size:var(--font-xs);text-align:center}.footer a{color:inherit;text-underline-offset:2px}@keyframes modalIn{from{transform:translateY(8px) scale(.985);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media (min-width:701px){.vote-board{gap:12px}.vote-row{padding:12px 14px;border-radius:12px}.vote-head{margin-bottom:8px}.vote-bar-wrap{height:16px}.vote-row-meta{margin-top:8px}.vote-timer-pill{font-size:clamp(22px, 2.5vw, 30px);padding:8px 14px}.vote-bar-anim{animation-duration:1.35s,1s}}@media (max-width:840px){.toolbar{grid-template-columns:1fr}.topbar-row{align-items:flex-start;flex-direction:column}.topbar-left,.topbar-right{width:100%}.topbar-row.topbar-row-2{padding-top:8px}.header-session-controls{width:100%}.header-session-controls select{flex:1;min-width:0}.replies-view-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}@media (min-width:1024px){.topbar-inner{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.topbar-row.topbar-row-1,.topbar-row.topbar-row-2{min-height:0;margin:0;padding:0;border-top:0;border-radius:0;background:0 0}.topbar-left,.topbar-right,.topbar-row{display:contents}.brand{order:1}.badge{order:2;width:min(40vw,500px);max-width:min(40vw,500px);min-width:260px;display:inline-flex;align-items:center;gap:8px}#sessionCode{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}#modeLabel{margin-left:auto;white-space:nowrap;flex:0 0 auto}.view-switch{order:3;flex:0 0 auto}.admin-menu{order:4;flex:0 0 auto}.theme-toggle{order:5;flex:0 0 auto}#apiUrl{display:none!important}.view-tab{min-height:32px;padding:6px 11px}.admin-summary{min-height:32px;padding:6px 11px}}@media (max-width:700px){:root{--font-xs:11px;--font-sm:12px;--font-md:13px;--font-lg:15px;--font-xl:17px;--font-2xl:20px;--font-3xl:24px;--control-h:36px}.topbar-inner{padding:8px 12px;gap:6px}.topbar-row{gap:6px}.topbar-row.topbar-row-1{display:grid;grid-template-columns:auto 1fr;align-items:center;min-height:0}.topbar-row.topbar-row-1 .topbar-left,.topbar-row.topbar-row-1 .topbar-right{width:100%}.topbar-row.topbar-row-1 .topbar-right{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px}.topbar-row.topbar-row-2{display:flex;margin:0;padding:6px;border-radius:0;border:0;background:0 0}.brand img{height:22px}.badge{width:100%;min-width:0;max-width:100%;font-size:var(--font-xs);padding:5px 9px;overflow:hidden;text-overflow:ellipsis}#modeLabel{display:none}.theme-toggle{width:34px;height:30px}.view-switch{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:stretch}#tabScreen{display:none}.view-tab{min-width:0;font-size:var(--font-md);font-weight:700;height:40px;min-height:40px;padding:0 10px;border-radius:var(--radius-pill);border:1px solid var(--line);background:linear-gradient(180deg,var(--surface) 0,var(--surface-2) 100%);color:var(--text);display:inline-flex;align-items:center;justify-content:center;line-height:1}.view-tab.active{background:var(--brand-soft);border-color:rgba(149,183,11,.45);box-shadow:none}input,select,textarea{font-size:var(--font-lg)}.header-session-controls{display:grid;grid-template-columns:1fr;width:100%;gap:6px}.header-session-controls select{width:100%;min-height:34px}.admin-key-row{grid-template-columns:1fr auto auto;gap:6px}.admin-key-row input{min-height:34px}.admin-key-row button{min-height:30px;font-size:var(--font-xs);padding:5px 8px}.header-session-controls .session-tools{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.header-session-controls .session-tools button{min-width:0;min-height:30px;font-size:var(--font-xs);padding:5px 8px}.admin-menu{width:100%}.topbar-row.topbar-row-2 .topbar-right .admin-menu{display:none!important}.admin-summary{width:100%;justify-content:center}.admin-menu-panel{position:static;margin-top:8px;min-width:0;max-width:100%}.container{padding:14px}.hero{margin:10px 0 18px}.hero h1{font-size:var(--font-xl)}.hero-meta{display:block}.hero-meta p{margin-top:8px}.hero-action{display:none}.list{gap:14px}.q-item{padding:16px;gap:12px}.q-title{font-size:var(--font-xl);line-height:1.5}.q-meta{font-size:var(--font-sm)}.reply-text{font-size:var(--font-md)}.reply-meta{font-size:var(--font-sm)}.q-side{justify-content:flex-start}.replies-view-grid{grid-template-columns:1fr;gap:8px}.poll-templates{grid-template-columns:1fr}.poll-input-split{grid-template-columns:1fr}.poll-stack>.poll-result-col{order:2}.poll-stack>.poll-input-split{order:1}.poll-q{font-size:var(--font-2xl)}.poll-opt-label{font-size:var(--font-sm)}.poll-result-label{font-size:var(--font-md)}.poll-result-value{font-size:var(--font-md)}.poll-heart-count{font-size:var(--font-xs)}.poll-meta{font-size:var(--font-xs)}.poll-input-label{font-size:var(--font-sm)}.poll-input-controls{width:100%;justify-content:space-between;flex-wrap:nowrap}.poll-input-controls .poll-meta{order:1}.poll-input-controls .poll-heart-btn{order:2;margin-left:auto}.poll-input-controls .poll-heart-btn{font-size:var(--font-xs);min-height:30px}.presenter .q-title{font-size:var(--font-xl)}.presenter .hero h1{font-size:var(--font-sm)}.fab{right:14px;bottom:14px}.badge{max-width:100%}}

      /* ===== PC: ヘッダー1行化（タブ独立後） ===== */
      @media (min-width: 701px) {
        /* row-2のモバイルタブが消えるので、row-2自体の背景・枠線を消す */
        .topbar-row.topbar-row-2 {
          margin: 0;
          padding: 0;
          border-top: 0;
          border-radius: 0;
          background: none;
        }
        /* ライブ投票・アンケートの見出し（質問文）余白 */
        .poll-q {
          margin-bottom: 20px;
        }
        /* タイポグラフィスケール: PCは4サイズに統一 */
        :root {
          --font-xs: 14px;
          --font-sm: 16px;
          --font-md: 16px;
          --font-lg: 20px;
          --font-xl: 20px;
          --font-2xl: 28px;
          --font-3xl: 28px;
          --pc-font-meta: 14px;
          --pc-font-body: 16px;
          --pc-font-title: 20px;
          --pc-font-headline: 28px;
          --pc-card-gap: 16px;
        }
        /* リアルタイム表示: リクエスト投稿タイトルをpoll-qと同サイズに */
        .presenter .q-title {
          line-height: 1.5;
        }
        /* PC全ページ: カード間の縦余白を統一 */
        .list,
        .audience-flat-list,
        .poll-list,
        .vote-board,
        .poll-stack {
          gap: var(--pc-card-gap);
        }
        /* リアルタイム表示: カード間の余白・行間 */
        .presenter .list {
          gap: var(--pc-card-gap);
        }
        .presenter .q-item {
          padding: 22px 24px;
        }
        .presenter .q-meta {
          margin-top: 10px;
        }

        /* ===== ライブアンケート PC強化 ===== */
        /* カード内余白を広げる */
        .poll-box {
          padding: 22px 24px;
        }
        /* リスト項目の間隔 */
        .poll-list {
          gap: var(--pc-card-gap);
        }
        /* 結果アイテム: pill → rounded-rect でスキャンしやすく */
        .poll-result-item {
          padding: 12px 18px;
          border-radius: var(--radius-md);
        }
        /* 入力行のパディング */
        .poll-input-row {
          padding: 14px 16px;
        }
        /* topic アイテムも rounded-rect に揃える */
        .poll-topic-item {
          border-radius: var(--radius-md);
          padding: 10px 16px;
        }
        /* バーを太く */
        .poll-bar-wrap {
          height: 14px;
        }
        /* 投稿(PC): 1カラムのフラットリスト */
        .q-item-audience-desktop {
          grid-template-columns: 1fr;
        }
        .audience-flat-list {
          display: grid;
          gap: var(--pc-card-gap);
          width: 100%;
        }
        .audience-flat-list .feed-row {
          display: grid;
          grid-template-columns: minmax(0, 1fr) auto;
          align-items: center;
          gap: 12px;
          width: 100%;
          padding: 12px 14px;
          box-shadow: none;
        }
        .audience-flat-list .feed-main {
          min-width: 0;
          display: flex;
          align-items: center;
          gap: 10px;
          white-space: nowrap;
        }
        .audience-flat-list .feed-kind {
          flex: 0 0 auto;
          font-size: var(--pc-font-body);
          font-weight: 700;
          color: var(--muted);
        }
        .audience-flat-list .feed-text {
          flex: 1 1 auto;
          min-width: 0;
          font-size: var(--pc-font-body);
          line-height: 1.35;
          white-space: nowrap;
          overflow: hidden;
          text-overflow: ellipsis;
        }
        .audience-flat-list .feed-meta-inline,
        .audience-flat-list .feed-parent-inline {
          flex: 0 1 auto;
          min-width: 0;
          font-size: var(--pc-font-meta);
          line-height: 1.35;
          color: var(--muted);
          white-space: nowrap;
          overflow: hidden;
          text-overflow: ellipsis;
        }
        .audience-flat-list .feed-parent-inline {
          max-width: 24ch;
        }
        .audience-flat-list .feed-meta-inline .status-chip {
          margin-right: 4px;
        }
        .audience-flat-list .feed-actions {
          display: inline-flex;
          align-items: center;
          justify-content: flex-end;
          flex-wrap: nowrap;
          gap: 6px;
        }
        .audience-flat-list .feed-action-btn {
          min-height: 30px;
          padding: 5px 10px;
          font-size: var(--pc-font-body);
        }
        .audience-flat-list .feed-row-question .feed-kind {
          color: #4f6410;
        }
        .audience-flat-list .feed-row-reply .feed-kind {
          color: #3f5d7a;
        }
        /* ===== PC typography normalization ===== */
        .hero p,
        .q-meta,
        .reply-meta,
        .audience-flat-list .feed-meta-inline,
        .audience-flat-list .feed-parent-inline,
        .poll-meta,
        .poll-mine,
        .vote-row-meta,
        .vote-meta-sub,
        .muted-note {
          font-size: var(--pc-font-meta);
          font-weight: 500;
          line-height: 1.55;
        }
        .reply-text,
        .audience-flat-list .feed-text,
        .view-tab,
        .admin-summary,
        .badge,
        .audience-flat-list .feed-kind,
        .audience-flat-list .feed-action-btn,
        .poll-result-item,
        .poll-topic-item,
        .poll-input-controls .poll-meta,
        .vote,
        .like-count-btn {
          font-size: var(--pc-font-body);
          font-weight: 600;
        }
        .hero h1,
        .q-title,
        .poll-opt-label,
        .poll-input-label,
        .poll-result-label,
        .poll-result-value,
        .vote-label {
          font-size: var(--pc-font-title);
          font-weight: 700;
          line-height: 1.5;
        }
        .poll-q,
        .presenter .q-title {
          font-size: var(--pc-font-headline) !important;
          font-weight: 700;
          line-height: 1.45;
        }
        .poll-heart-count {
          font-size: var(--pc-font-meta);
          font-weight: 600;
        }
      }
      @media (min-width: 1024px) {
        /* 1024px以上: topbar-innerをflex1行にしてる既存CSS(display:contents)を活かしつつ、
           運営メニュー+テーマトグルを右端に押す */
        .topbar-inner {
          justify-content: space-between;
        }
        /* brand=order1, badge=order2 は既存のまま左寄せ */
        /* view-switchはPC非表示なのでorder3は不要 */
        /* admin-menu + ftbToggle + theme-toggle を右端にまとめる */
        .admin-menu { order: 4; margin-left: auto; }
        #ftbToggle { order: 5; flex: 0 0 auto; }
        .theme-toggle { order: 6; }
      }

      /* ===== Floating Tab Bar (PC) ===== */
      .floating-tab-bar {
        position: fixed;
        bottom: 24px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 50;
        display: inline-flex;
        gap: 4px;
        padding: 5px;
        border-radius: var(--radius-pill);
        background: rgba(250, 251, 252, 0.82);
        backdrop-filter: blur(14px) saturate(1.1);
        border: 1px solid var(--line);
        box-shadow: 0 12px 36px rgba(10, 14, 20, 0.18), 0 0 0 1px rgba(149, 183, 11, 0.08);
        transition: opacity 0.2s ease, transform 0.2s ease;
      }
      body[data-theme="dark"] .floating-tab-bar {
        background: rgba(16, 20, 25, 0.82);
        box-shadow: 0 12px 36px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(149, 183, 11, 0.12);
      }
      .ftb-tab {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 16px;
        border: 1px solid transparent;
        border-radius: var(--radius-pill);
        background: transparent;
        color: var(--muted);
        font-size: var(--font-xs);
        font-weight: 600;
        cursor: pointer;
        transition: all 0.16s ease;
        white-space: nowrap;
      }
      .ftb-tab:hover {
        background: var(--brand-soft);
        color: var(--text);
      }
      .ftb-tab.active {
        background: var(--brand-soft);
        border-color: var(--brand-dark);
        color: var(--text);
        box-shadow: inset 0 0 0 1px rgba(149, 183, 11, 0.24);
      }
      .ftb-icon {
        font-size: 14px;
        line-height: 1;
      }
      .ftb-label {
        line-height: 1;
      }
      /* presenterでもフローティングタブは表示（全画面ナビのため） */

      /* 運営メニューパネル内をヘッダーと同じフォントサイズに統一 */
      /* QRモーダル拡大 */
      .qr-modal-card.is-zoomed {
        width: min(92vw, 92vh);
        max-width: 800px;
        transition: width 0.2s ease;
      }
      .qr-modal-card.is-zoomed .qr-image-wrap {
        width: 100%;
        max-width: none;
        padding: 16px;
      }
      /* QRモーダルが開いている間、フローティングタブバーを退避 */
      body:has(#sessionQrModal.open) #floatingTabBar {
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.15s ease;
      }

      .admin-menu-panel {
        font-size: var(--font-xs);
      }
      .admin-menu-panel button,
      .admin-menu-panel input,
      .admin-menu-panel select {
        font-size: var(--font-xs);
      }
      /* フローティングタブバー トグルボタン */
      .ftb-toggle {
        position: fixed;
        bottom: 24px;
        right: 18px;
        z-index: 51;
        width: 40px;
        height: 40px;
        border-radius: var(--radius-pill);
        border: 1px solid var(--line);
        background: rgba(250, 251, 252, 0.82);
        backdrop-filter: blur(14px);
        color: var(--muted);
        font-size: 16px;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        transition: all 0.16s ease;
        box-shadow: 0 8px 20px rgba(10, 14, 20, 0.12);
      }
      body[data-theme="dark"] .ftb-toggle {
        background: rgba(16, 20, 25, 0.82);
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
      }
      .ftb-toggle:hover {
        color: var(--text);
        border-color: var(--brand-dark);
      }
      /* 閉じた状態 */
      .floating-tab-bar.is-collapsed {
        opacity: 0;
        transform: translateX(-50%) translateY(12px);
        pointer-events: none;
      }

      /* モバイルではヘッダー内タブを使うのでフローティング+トグル非表示 */
      @media (max-width: 700px) {
        .floating-tab-bar,
        .ftb-toggle,
        #ftbToggle {
          display: none;
        }
      }
      /* PCではヘッダー内モバイル用タブを非表示 */
      @media (min-width: 701px) {
        .topbar-left-mobile-only {
          display: none;
        }
      }

      /* Poll result emphasis */
      .poll-result-col .poll-q,
      .poll-result-col .poll-result-label,
      .poll-result-col .poll-result-value,
      .poll-result-col .poll-heart-count,
      .poll-result-col .poll-result-summary,
      .poll-result-col .poll-topic-item .poll-opt-label,
      .poll-result-col .poll-topic-votes {
        font-weight: 700;
        color: var(--text);
      }
      .poll-topic-right .poll-topic-votes {
        margin-top: 0;
        min-height: 26px;
        display: inline-flex;
        align-items: center;
        line-height: 1;
      }

      /* Modal actions: right aligned, submit button stays at right end */
      #questionModal .actions {
        justify-content: flex-end;
      }
      #questionModal .actions .ghost {
        order: 1;
      }
      #questionModal .actions .primary {
        order: 2;
      }
      .reply-modal-target {
        margin: 0 0 10px;
        font-size: var(--font-xs);
        color: var(--muted);
        line-height: 1.45;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }

      .q-side-audience {
        justify-content: flex-end;
      }
      .reply-actions-audience {
        justify-content: flex-end;
      }
      .reply-form-actions {
        display: inline-flex;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
      }
      .reply-form-actions > button {
        white-space: nowrap;
      }
      .q-like-mobile {
        display: none;
      }
      .heart-mark {
        color: var(--brand) !important;
        -webkit-text-fill-color: var(--brand) !important;
        display: inline-block;
        transform: scaleX(1.12);
        transform-origin: center;
      }
      .vote-action-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        border-radius: var(--radius-pill);
        font-weight: 700;
      }
      .poll-input-controls .like-count-btn.vote-action-btn {
        margin-left: auto;
      }
      .poll-notice-card {
        margin-bottom: 10px;
      }
      .poll-notice-card .note {
        margin-top: 8px;
      }
      .poll-settings-title {
        margin-bottom: 10px;
      }

      /* Mobile: align submit-like actions to the right edge */
      @media (max-width: 700px) {
        :root {
          --mobile-card-radius: var(--radius-md);
          --mobile-card-pad-y: 10px;
          --mobile-card-pad-x: 12px;
          --mobile-post-btn-bg: linear-gradient(180deg, var(--surface) 0, var(--surface-2) 100%);
          --mobile-post-btn-border: var(--line);
          --mobile-post-btn-bg-dark: rgba(116, 116, 119, 0.36);
          --mobile-post-btn-bg-dark-strong: rgba(116, 116, 119, 0.5);
          --mobile-post-btn-border-dark: rgba(247, 249, 252, 0.36);
          --mobile-post-btn-divider-dark: rgba(247, 249, 252, 0.32);
          --mobile-post-btn-text-dark: #f4f7f9;
        }
        body[data-theme="dark"] .topbar {
          background: transparent;
        }
        .mobile-post-btn {
          min-height: var(--control-h);
          border: 1px solid var(--mobile-post-btn-border);
          border-radius: var(--radius-pill);
          padding: 7px 12px;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          gap: 4px;
          font-size: var(--font-sm);
          font-weight: 700;
          line-height: 1;
          background: var(--mobile-post-btn-bg);
          color: var(--text);
        }
        .mobile-post-btn.like-count-btn.vote-action-btn {
          min-width: 44px;
          padding: 7px 10px;
          font-variant-numeric: tabular-nums;
        }
        body[data-theme="dark"] .mobile-post-btn {
          border-color: var(--mobile-post-btn-border-dark);
          background: var(--mobile-post-btn-bg-dark-strong);
          color: var(--mobile-post-btn-text-dark);
        }
        /* ハートボタン全体（デスクトップ含む） */
        body[data-theme="dark"] .like-count-btn.vote-action-btn {
          background: var(--mobile-post-btn-bg-dark-strong);
          border-color: var(--mobile-post-btn-border-dark);
          color: var(--mobile-post-btn-text-dark);
        }
        /* 返信ボタン（デスクトップ） */
        body[data-theme="dark"] .reply-form-audience .reply-form-actions > button.ghost:not(.like-count-btn) {
          background: var(--mobile-post-btn-bg-dark-strong);
          border-color: var(--mobile-post-btn-border-dark);
          color: var(--mobile-post-btn-text-dark);
        }
        body[data-theme="dark"] .mobile-post-btn.like-count-btn.vote-action-btn {
          background: transparent;
        }
        .mobile-post-btn-group {
          display: inline-flex;
          align-items: center;
          justify-content: flex-end;
          gap: 0;
          border: 1px solid var(--mobile-post-btn-border);
          border-radius: var(--radius-pill);
          overflow: hidden;
          background: var(--mobile-post-btn-bg);
        }
        .mobile-post-btn-group > .mobile-post-btn {
          border: 0;
          border-radius: 0;
          background: transparent;
        }
        .mobile-post-btn-group > .mobile-post-btn + .mobile-post-btn {
          border-left: 1px solid var(--mobile-post-btn-border);
        }
        body[data-theme="dark"] .mobile-post-btn-group {
          border-color: var(--mobile-post-btn-border-dark);
          background: var(--mobile-post-btn-bg-dark);
        }
        body[data-theme="dark"] .mobile-post-btn-group > .mobile-post-btn {
          color: var(--mobile-post-btn-text-dark);
          background: transparent;
        }
        body[data-theme="dark"] .mobile-post-btn-group > .mobile-post-btn + .mobile-post-btn {
          border-left-color: var(--mobile-post-btn-divider-dark);
        }
        .topbar-row.topbar-row-2 {
          background: transparent !important;
          border-top-color: transparent;
        }
        .vote-action-btn {
          min-height: var(--control-h);
          padding: 7px 12px;
          font-size: var(--font-sm);
        }
        .like-count-btn.vote-action-btn {
          min-width: 44px;
          min-height: var(--control-h);
          border-radius: 999px;
          padding: 7px 10px;
          font-variant-numeric: tabular-nums;
        }
        .poll-input-controls .like-count-btn.vote-action-btn {
          margin-left: auto;
        }
        .q-item-audience .q-side-audience {
          display: none;
        }
        .q-item-audience {
          grid-template-columns: 1fr;
          gap: 10px;
          padding: var(--mobile-card-pad-y) var(--mobile-card-pad-x);
          border-radius: var(--mobile-card-radius);
          border: 1px solid var(--line);
          box-shadow: none;
          background: linear-gradient(180deg, var(--surface) 0, var(--surface-2) 100%);
        }
        .q-item-audience .q-title {
          font-size: var(--font-xl);
          line-height: 1.45;
        }
        .q-item-audience .q-meta {
          margin-top: 7px;
          font-size: var(--font-xs);
          line-height: 1.5;
        }
        .q-item-audience .replies {
          margin-top: 8px;
          gap: 10px;
        }
        body[data-theme="dark"] .q-item-audience {
          background: linear-gradient(180deg, var(--surface) 0, var(--surface-2) 100%);
          border-color: var(--line);
        }
        body[data-theme="dark"] .q-item-audience .q-title,
        body[data-theme="dark"] .q-item-audience .q-meta,
        body[data-theme="dark"] .q-item-audience .reply-text,
        body[data-theme="dark"] .q-item-audience .reply-meta {
          color: #f4f7f9;
        }
        .q-item-audience .reply-item {
          position: static;
          display: grid;
          grid-template-columns: 1fr auto;
          gap: 0 8px;
          padding: var(--mobile-card-pad-y) var(--mobile-card-pad-x);
          border-radius: var(--mobile-card-radius);
          border: 1px solid var(--line);
          background: linear-gradient(180deg, var(--surface) 0, var(--surface-2) 100%);
          box-shadow: none;
        }
        body[data-theme="dark"] .q-item-audience .reply-item {
          background: linear-gradient(180deg, var(--surface) 0, var(--surface-2) 100%);
          border-color: var(--line);
        }
        .q-item-audience .reply-item .reply-text,
        .q-item-audience .reply-item .reply-meta {
          padding-right: 0;
        }
        .q-item-audience .reply-item .reply-text {
          font-size: var(--font-sm);
          line-height: 1.5;
        }
        .q-item-audience .reply-item .reply-meta {
          margin-top: 4px;
          font-size: var(--font-xs);
        }
        .q-item-audience .reply-item .reply-actions.reply-actions-audience {
          position: static;
          width: auto;
          margin-top: 0;
          align-items: flex-start;
          justify-content: flex-end;
        }
        .q-item-audience .reply-item .reply-actions.reply-actions-audience .like-count-btn {
          min-width: 44px;
        }
        body[data-theme="dark"] .q-item-audience .reply-item .reply-actions.reply-actions-audience .like-count-btn {
          border-color: var(--mobile-post-btn-border-dark);
          background: var(--mobile-post-btn-bg-dark-strong);
          color: var(--mobile-post-btn-text-dark);
        }
        .reply-form-audience {
          display: flex;
          justify-content: flex-end;
          margin-top: 10px;
        }
        .reply-form-audience .reply-form-actions,
        .mobile-post-btn-group {
          justify-content: flex-end;
        }
        .reply-form-audience .q-like-mobile {
          display: inline-flex;
          order: 1;
        }
        .reply-form-audience .reply-form-actions > button,
        .mobile-post-btn-group > .mobile-post-btn {
          min-height: var(--control-h);
          padding-left: 12px;
          padding-right: 12px;
        }
        .reply-form-audience .reply-form-actions > button:not(.q-like-mobile),
        .mobile-post-btn-group > .mobile-post-btn:not(.q-like-mobile) {
          order: 2;
        }
        .reply-actions-audience .like-count-btn {
          margin-left: 0;
        }
        .q-item,
        .reply-item,
        .poll-input-row,
        .vote-row {
          border-radius: var(--mobile-card-radius);
        }
        .q-item,
        .reply-item,
        .poll-input-row,
        .vote-row {
          padding: var(--mobile-card-pad-y) var(--mobile-card-pad-x);
        }
        .poll-q {
          font-size: var(--font-xl);
        }
        .poll-input-label,
        .poll-opt-label,
        .poll-result-label,
        .poll-result-value,
        .poll-meta,
        .poll-mine,
        .poll-result-item,
        .poll-topic-item,
        .poll-input-controls .poll-meta {
          font-size: var(--font-sm);
        }
        .poll-heart-count {
          font-size: var(--font-xs);
        }
        .poll-topic-actions {
          justify-content: flex-end;
        }
        .poll-topic-actions > button {
          margin-left: auto;
        }
      }

      /* ===== Audience readability redesign (DESIGN_chat aligned) ===== */
      .q-meta-audience,
      .reply-meta-audience {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 6px;
      }
      .q-meta-main,
      .reply-meta-main {
        min-width: 0;
      }
      .meta-actions {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin-left: auto;
      }
      .meta-edit-link {
        background: transparent;
        border: 1px solid var(--line);
        border-radius: var(--radius-pill);
        padding: 2px 8px;
        color: var(--muted);
        font-size: var(--font-xs);
        line-height: 1.35;
      }
      .meta-edit-link:hover {
        border-color: rgba(149, 183, 11, 0.45);
        color: var(--text);
      }

      @media (min-width: 701px) {
        .q-item-audience.q-item-audience-desktop {
          grid-template-columns: minmax(0, 1fr) auto;
          align-items: start;
          gap: 12px;
          padding: 18px 20px;
        }
        .q-item-audience .q-main {
          display: grid;
          gap: 8px;
        }
        .q-item-audience .q-title {
          line-height: 1.58;
        }
        .q-item-audience .q-meta-audience {
          margin-top: 0;
        }
        .q-item-audience .replies {
          margin-top: 2px;
          gap: 8px;
        }
        .q-item-audience .reply-item {
          padding: 10px 12px;
          border-radius: var(--radius-sm);
        }
        .q-item-audience .reply-item .reply-actions.reply-actions-audience {
          align-items: center;
        }
        .q-item-audience .reply-form-audience {
          margin-top: 10px;
          justify-content: flex-end;
        }
        .q-item-audience .q-side-audience .like-count-btn {
          min-width: 64px;
        }
      }

      @media (max-width: 700px) {
        .q-meta-audience,
        .reply-meta-audience {
          gap: 4px;
        }
        .q-meta-audience .meta-actions,
        .reply-meta-audience .meta-actions {
          width: 100%;
          margin-left: 0;
          justify-content: flex-end;
        }
      }

      /* ===== Cross-view component harmonization ===== */
      @media (min-width: 701px) {
        :root {
          --view-card-radius-pc: var(--radius-md);
          --view-card-pad-y-pc: 12px;
          --view-card-pad-x-pc: 14px;
          --view-card-gap-pc: 12px;
          --view-meta-font-pc: var(--font-xs);
          --view-heart-minw-pc: 64px;
          --view-heart-font-pc: var(--font-sm);
          --view-btn-height-pc: var(--control-h);
          --view-btn-radius-pc: var(--radius-pill);
          --view-fab-size-pc: 58px;
          --view-fab-offset-pc: 18px;
          --view-nav-offset-pc: 24px;
          --view-nav-pad-pc: 5px;
        }
        .list,
        .audience-flat-list,
        .poll-list,
        .vote-board,
        .poll-stack,
        .replies,
        .replies-view-grid {
          gap: var(--view-card-gap-pc);
        }
        .q-item,
        .reply-item,
        .poll-box,
        .poll-input-row,
        .vote-row {
          border-radius: var(--view-card-radius-pc);
        }
        .q-item,
        .reply-item,
        .poll-input-row,
        .vote-row,
        .poll-box {
          padding: var(--view-card-pad-y-pc) var(--view-card-pad-x-pc);
        }
        .poll-result-item,
        .poll-topic-item {
          border-radius: var(--view-card-radius-pc);
          padding: 10px 14px;
        }
        .q-meta,
        .reply-meta,
        .feed-meta-inline,
        .feed-parent-inline,
        .poll-meta,
        .poll-mine,
        .vote-row-meta,
        .vote-meta-sub {
          font-size: var(--view-meta-font-pc);
          color: var(--muted);
          line-height: 1.5;
        }
        .q-side,
        .q-side-audience,
        .reply-actions,
        .reply-actions-audience,
        .feed-actions {
          justify-content: flex-end;
          align-items: center;
        }
        .like-count-btn.vote-action-btn {
          min-width: var(--view-heart-minw-pc);
          min-height: var(--view-btn-height-pc);
          padding: 7px 12px;
          border-radius: var(--radius-pill);
          font-size: var(--view-heart-font-pc);
          line-height: 1;
        }
        button.ghost,
        button.primary {
          min-height: var(--view-btn-height-pc);
          padding: 7px 12px;
          border-radius: var(--view-btn-radius-pc);
        }
        .floating-tab-bar {
          bottom: var(--view-nav-offset-pc);
          padding: var(--view-nav-pad-pc);
        }
        .ftb-tab {
          min-height: var(--view-btn-height-pc);
          padding: 7px 14px;
          border-radius: var(--view-btn-radius-pc);
        }
        .fab {
          right: var(--view-fab-offset-pc);
          bottom: var(--view-fab-offset-pc);
          width: var(--view-fab-size-pc);
          height: var(--view-fab-size-pc);
        }
      }

      @media (max-width: 700px) {
        :root {
          --view-card-radius-m: var(--radius-md);
          --view-card-pad-y-m: 10px;
          --view-card-pad-x-m: 12px;
          --view-card-gap-m: 10px;
          --view-meta-font-m: var(--font-xs);
          --view-heart-minw-m: 44px;
          --view-btn-height-m: var(--control-h);
          --view-btn-radius-m: var(--radius-pill);
          --view-fab-size-m: 54px;
          --view-fab-offset-m: 14px;
          --view-nav-tab-h-m: 40px;
        }
        .list,
        .audience-flat-list,
        .poll-list,
        .vote-board,
        .poll-stack,
        .replies {
          gap: var(--view-card-gap-m);
        }
        .q-item,
        .reply-item,
        .poll-box,
        .poll-input-row,
        .vote-row {
          border-radius: var(--view-card-radius-m);
        }
        .q-item,
        .reply-item,
        .poll-input-row,
        .vote-row,
        .poll-box {
          padding: var(--view-card-pad-y-m) var(--view-card-pad-x-m);
        }
        .poll-result-item,
        .poll-topic-item {
          border-radius: var(--view-card-radius-m);
          padding: 8px 12px;
        }
        .q-meta,
        .reply-meta,
        .feed-meta-inline,
        .feed-parent-inline,
        .poll-meta,
        .poll-mine,
        .vote-row-meta,
        .vote-meta-sub {
          font-size: var(--view-meta-font-m);
          color: var(--muted);
          line-height: 1.45;
        }
        .q-side,
        .q-side-audience,
        .reply-actions,
        .reply-actions-audience,
        .feed-actions {
          justify-content: flex-end;
          align-items: center;
        }
        .like-count-btn.vote-action-btn {
          min-width: var(--view-heart-minw-m);
          min-height: var(--view-btn-height-m);
          padding: 7px 10px;
          border-radius: var(--radius-pill);
          line-height: 1;
        }
        button.ghost,
        button.primary,
        .vote-action-btn {
          min-height: var(--view-btn-height-m);
          padding: 7px 10px;
          border-radius: var(--view-btn-radius-m);
        }
        .view-switch .view-tab {
          height: var(--view-nav-tab-h-m);
          min-height: var(--view-nav-tab-h-m);
          border-radius: var(--view-btn-radius-m);
        }
        .fab {
          right: var(--view-fab-offset-m);
          bottom: var(--view-fab-offset-m);
          width: var(--view-fab-size-m);
          height: var(--view-fab-size-m);
        }
      }

      .debug-css-panel {
        position: fixed;
        top: 86px;
        right: 18px;
        z-index: 34;
        width: min(360px, calc(100vw - 24px));
        max-height: calc(100vh - 100px);
        overflow: auto;
        display: grid;
        gap: var(--space-3);
        padding: var(--space-3);
        border-radius: var(--radius-lg);
        background: var(--surface);
        border: 1px solid var(--line);
        box-shadow: var(--shadow-strong);
      }

      .debug-css-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-2);
        cursor: move;
        user-select: none;
      }

      .debug-css-head-right {
        display: inline-flex;
        align-items: center;
        gap: var(--space-1);
      }

      .debug-css-title {
        margin: 0;
        font-size: var(--font-sm);
        font-weight: 700;
        line-height: 1.35;
      }

      .debug-css-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 22px;
        padding: 3px 8px;
        border-radius: var(--radius-pill);
        border: 1px solid var(--line);
        background: var(--surface-2);
        color: var(--muted);
        font-size: var(--font-xs);
        line-height: 1;
      }

      .debug-css-close {
        min-height: 24px;
        width: 24px;
        padding: 0;
        border-radius: var(--radius-pill);
        line-height: 1;
        font-size: var(--font-sm);
      }

      .debug-css-body {
        display: grid;
        gap: var(--space-3);
      }

      .debug-css-group {
        display: grid;
        gap: var(--space-2);
        padding: var(--space-2);
        border: 1px solid var(--line);
        border-radius: var(--radius-md);
        background: linear-gradient(180deg, var(--surface) 0, var(--surface-2) 100%);
      }

      .debug-css-group h4 {
        margin: 0;
        font-size: var(--font-xs);
        color: var(--muted);
        font-weight: 700;
      }

      .debug-css-row {
        display: grid;
        gap: var(--space-1);
      }

      .debug-css-row label {
        margin: 0;
        font-size: var(--font-xs);
        color: var(--text);
        font-weight: 700;
      }

      .debug-css-control {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: var(--space-2);
      }

      .debug-css-control input[type="range"] {
        width: 100%;
      }

      .debug-css-value {
        min-width: 60px;
        text-align: right;
        font-size: var(--font-xs);
        color: var(--muted);
        font-variant-numeric: tabular-nums;
      }

      .debug-css-actions {
        display: flex;
        gap: var(--space-2);
        flex-wrap: wrap;
      }

      .debug-css-actions button {
        min-height: var(--control-h);
      }

      .debug-css-panel.is-dragging {
        opacity: 0.96;
      }

      @media (max-width: 700px) {
        .debug-css-panel {
          top: 72px;
          right: 12px;
          width: calc(100vw - 24px);
          max-height: calc(100vh - 84px);
        }
      }
