/* Shared design system. Page modules share this single responsive layout. */
:root { --ink:#173d42; --teal:#0e655f; --teal-dark:#104e4b; --paper:#faf9f4; --white:#fffefa; --mist:#e8f0e9; --line:#d4e1d8; --muted:#526e70; --gold:#bf9551; --page-pad:clamp(20px,4.5vw,80px); --radius:14px; --shadow:0 16px 45px #173d420c; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; color:var(--ink); background:var(--paper); font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }
[hidden] { display:none!important; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.5; }
img { max-width:100%; height:auto; }
h1,h2,h3,h4,p { overflow-wrap:break-word; }
h1,h2,h3,h4 { line-height:1.28; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
input,select,textarea { min-width:0; max-width:100%; border:1px solid #a7bfb6; border-radius:7px; background:white; color:var(--ink); padding:10px 12px; }
textarea { resize:vertical; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:40; background:var(--teal); color:white; padding:10px 18px; }
.skip-link:focus { top:12px; }
.site-header { position:sticky; top:0; z-index:20; background:#faf9f4f5; border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.header-inner { position:relative; display:flex; align-items:center; gap:24px; min-height:78px; width:100%; padding:12px var(--page-pad); }
.brand { flex:none; display:flex; align-items:center; gap:11px; font-size:18px; font-weight:750; line-height:1.2; white-space:nowrap; }
.brand img { width:42px; height:42px; }
.brand small { display:block; margin-top:6px; font-size:8px; letter-spacing:2px; font-weight:500; }
.header-inner nav { display:flex; justify-content:center; flex:1; align-items:center; gap:clamp(13px,1.6vw,26px); }
.header-inner nav a { white-space:nowrap; font-size:13px; padding:10px 0; border-bottom:2px solid transparent; }
.header-inner nav a.active { color:var(--teal); font-weight:750; border-color:var(--gold); }
.language-toggle { flex:none; min-width:46px; min-height:40px; padding:7px 11px; border:1px solid #b8cfc2; border-radius:30px; color:var(--teal); background:#fffdf7; font-size:12px; font-weight:700; }
.menu-toggle { display:none; }
.header-cta { flex:none; border:1px solid var(--teal); border-radius:7px; padding:10px 15px; color:var(--teal); font-size:12px; white-space:nowrap; }
main { min-height:calc(100svh - 78px); }
.primary-button,.outline-button,.light-button,.text-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 18px; gap:8px; border-radius:7px; font-size:13px; font-weight:650; line-height:1.4; text-align:center; }
.primary-button { border:1px solid var(--teal); background:var(--teal); color:white; }
.outline-button { border:1px solid #9db9ad; background:transparent; color:var(--teal); }
.light-button { border:1px solid #f5e2b9; background:#f6e6bd; color:#254c45; }
.text-button { border:0; background:transparent; color:var(--teal); padding-inline:4px; }
.primary-button:hover { background:var(--teal-dark); }
.outline-button:hover,.header-cta:hover,.language-toggle:hover { background:#e6eee5; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:4vw; padding:clamp(36px,7vh,78px) var(--page-pad); min-height:calc(100svh - 132px); background:linear-gradient(112deg,#faf9f4 40%,#eaf2e9); }
.hero-copy { max-width:760px; }
.kicker,.section-id,.small-label,.tool-index,.community-overline { color:var(--teal); font-size:10px; font-weight:750; letter-spacing:2px; }
.hero-pretitle { margin:25px 0 16px; color:var(--muted); font-size:16px; }
h1 { margin:0; font-size:clamp(44px,4.8vw,80px); font-weight:750; letter-spacing:.01em; line-height:1.22; }
h1 span { display:block; color:var(--teal); }
.hero-english { margin:22px 0; font:18px/1.5 Georgia,serif; color:var(--muted); }
.hero-intro { margin:24px 0; font-size:13px; color:var(--muted); }
.hero-intro span { margin:0 7px; color:var(--gold); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.hero-feature { display:block; position:relative; max-width:560px; margin-top:25px; padding:16px 40px 16px 18px; border-left:3px solid var(--gold); background:#e6eee3; border-radius:0 8px 8px 0; }
.hero-feature>span { font-size:10px; font-weight:750; color:var(--teal); letter-spacing:1px; }
.hero-feature strong { display:block; margin:4px 0; font-size:18px; }
.hero-feature small { display:block; font-size:12px; color:var(--muted); }
.hero-feature em { position:absolute; right:17px; top:42%; font-style:normal; color:var(--teal); }
.hero-foot { color:var(--muted); font-size:12px; margin:19px 0 0; }
.hero-visual { max-width:740px; width:100%; justify-self:center; }
.hero-visual img { width:100%; max-height:65svh; object-fit:contain; }
.visual-stamp { text-align:center; color:var(--muted); font-size:10px; letter-spacing:1px; }
.visual-stamp span { margin-left:10px; }
.ribbon { display:flex; align-items:center; gap:30px; padding:16px var(--page-pad); background:#e7eee4; border-top:1px solid #d4dfcf; }
.ribbon>span { color:var(--teal); font:12px Georgia,serif; }
.ribbon>span:last-child { margin-left:auto; font-size:25px; }
.ribbon p { margin:0; font-size:14px; }
.ribbon small { display:block; font-size:12px; color:var(--muted); }
.section { width:100%; min-height:calc(100svh - 78px); padding:38px var(--page-pad) 54px; }
.section-top { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:16px; margin-bottom:27px; border-bottom:1px solid var(--line); }
.section-id { margin:0; }
.section-id span { margin-left:16px; }
.state-pill { max-width:50%; padding:5px 12px; border:1px solid #bed4c6; border-radius:30px; font-size:11px; color:var(--teal); background:#ffffff70; }
.section h2 { margin:0; font-size:clamp(29px,3.2vw,48px); letter-spacing:-.02em; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:26px; }
.section-heading>div { flex:1; min-width:0; }
.section-heading>p { flex:1; max-width:480px; color:var(--muted); font-size:14px; margin:0; }
.english-subtitle { color:var(--muted); font:18px/1.5 Georgia,serif; margin:10px 0 0; }
.back-link { display:inline-block; color:var(--teal); font-size:12px; margin-bottom:20px; }
.schedule-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.schedule-card { border:1px solid #c4d8c8; border-radius:var(--radius); padding:30px; background:#f0f5ec; box-shadow:var(--shadow); }
.schedule-card-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--teal); }
.schedule-card h3 { font-size:28px; margin:22px 0 8px; }
.schedule-card:only-child { grid-column:1/-1; min-height:340px; background:linear-gradient(90deg,#eaf2e8 40%,#eaf2e8cc 70%,#eaf2e855),url('assets/bridge.svg') right center/auto 110% no-repeat; }
.schedule-card:only-child>* { max-width:65%; }
.schedule-en { font:17px/1.5 Georgia,serif; color:var(--muted); }
.schedule-place,.schedule-summary,.schedule-note { color:var(--muted); font-size:13px; }
.schedule-link { display:inline-block; margin-top:12px; color:var(--teal); border-bottom:1px solid var(--teal); font-size:14px; }
.event-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(230px,.65fr); align-items:start; gap:40px; }
.event-intro { margin:22px 0; line-height:1.85; font-size:15px; color:var(--muted); }
.event-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.event-facts>div { display:flex; gap:10px; border-radius:9px; padding:15px; background:#eaf1e8; }
.event-facts>div>span { color:var(--teal); font-size:21px; }
.event-facts strong { font-size:12px; }
.event-facts p { font-size:13px; color:var(--muted); margin:4px 0 0; }
.event-note { border-left:3px solid var(--gold); padding:15px 18px; margin:20px 0; background:#f5efe2; border-radius:0 8px 8px 0; }
.event-note p { margin:5px 0 0; font-size:14px; }
.event-poster { margin:0; justify-self:center; max-width:340px; }
.event-poster img { display:block; border-radius:10px; box-shadow:0 18px 40px #163c4220; }
.event-poster figcaption { display:flex; justify-content:space-between; margin-top:12px; color:var(--muted); font-size:11px; }
.session-flow { padding:17px; border-radius:10px; border:1px solid var(--line); background:#edf3ea; margin:22px 0; }
.flow-heading { margin:0 0 12px; font-size:13px; font-weight:700; }
.flow-heading span { display:inline-block; font-size:11px; font-weight:400; color:var(--muted); margin-left:10px; }
.session-flow>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.session-flow article { padding:12px; border-radius:7px; background:var(--white); }
.session-flow b { color:var(--teal); font-size:13px; }
.session-flow article p { margin:6px 0 0; font-size:12px; color:var(--muted); }
.event-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.community-section { background:#174b4c; color:#fffdf4; }
.community-section .section-top { border-color:#ffffff35; }
.community-section .section-id,.community-overline { color:#b7d9ca; }
.community-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:8vw; align-items:center; min-height:55vh; }
.community-layout h2 { font-size:clamp(37px,4vw,64px); }
.community-layout p { color:#d6e6df; max-width:620px; }
.community-actions { display:flex; flex-wrap:wrap; gap:20px; }
.community-actions .text-button { color:#f5d99c; }
.community-values article { display:flex; gap:22px; padding:23px 0; border-bottom:1px solid #ffffff38; }
.community-values article>span { color:#d9b96d; font:28px Georgia,serif; }
.community-values h3 { margin:0; font-size:22px; }
.community-values p { margin:9px 0 0; font-size:14px; }
.welcome-section { background:#edf3e9; }
.steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; margin:30px 0; }
.steps article { background:#fffdf7; padding:25px; border:1px solid #d2dfcc; border-radius:var(--radius); }
.steps span { color:var(--gold); font:28px Georgia,serif; }
.steps h3 { font-size:20px; margin:13px 0; }
.steps p { color:var(--muted); font-size:14px; margin:0; }
.participate { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:30px; border-top:4px solid var(--gold); border-radius:var(--radius); background:#174f4d; color:#fffdf4; }
.participate .small-label { color:#d6c68e; }
.participate h3 { font-size:24px; margin:8px 0; }
.participate p { color:#d7e5dc; font-size:13px; }
.participate .light-button { flex:none; }
.contact-options { display:flex; align-items:center; gap:15px; }
.contact-options img { max-width:120px; background:white; padding:5px; border-radius:5px; }
.wechat-contact { display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:14px; }
.wechat-contact button { min-height:36px; background:transparent; color:white; border:1px solid #b5cfc2; border-radius:6px; font-size:12px; padding:6px 12px; }
.wechat-contact>div { flex-basis:100%; }
.contact-status { font-size:12px; }
.tab-list { display:flex; gap:6px; overflow-x:auto; border-bottom:1px solid var(--line); margin:26px 0; }
.tab { flex:none; border:0; border-bottom:3px solid transparent; padding:13px 19px; background:transparent; color:var(--muted); font-size:15px; }
.tab.active { border-color:var(--gold); color:var(--teal); font-weight:700; }
.tool-intro { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.tool-intro h3 { margin:0; font-size:22px; }
.tool-intro p { margin:8px 0 0; color:var(--muted); font-size:13px; }
.tool-intro>.outline-button { flex:none; }
.topic-controls { display:flex; flex-wrap:wrap; align-items:end; gap:15px; }
.filter-list { display:flex; flex-wrap:wrap; gap:7px; margin-right:auto; }
.filter-list button { min-height:40px; padding:7px 15px; border:1px solid var(--line); background:transparent; border-radius:22px; color:var(--muted); font-size:13px; }
.filter-list button.active { color:white; background:var(--teal); border-color:var(--teal); }
.topic-search,.search-field { font-size:12px; color:var(--muted); }
.topic-search input,.search-field input { display:block; margin-top:5px; width:220px; font-size:13px; }
.result-count { font-size:12px; color:var(--muted); margin:18px 0; }
.topic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.topic-card { display:flex; flex-direction:column; align-items:start; background:#fffef9; border:1px solid var(--line); border-radius:12px; padding:24px; }
.card-label { color:var(--teal); margin:0 0 16px; font-size:11px; font-weight:700; }
.topic-card h4 { font-size:19px; margin:0 0 10px; line-height:1.6; }
.card-en { font:15px/1.6 Georgia,serif; color:var(--muted); margin:0 0 20px; }
.topic-card button { margin-top:auto; min-height:36px; padding:5px 0; border:0; background:none; color:var(--teal); font-size:12px; font-weight:700; }
.expression-grid,.host-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.expression-card { display:flex; align-items:center; flex-wrap:wrap; gap:15px; background:white; border:1px solid var(--line); border-radius:10px; padding:20px; }
.expression-card>div:first-child { flex:1; min-width:0; }
.expression-card h4 { font-size:16px; margin:0; }
.expression-card p { font-size:14px; color:var(--muted); margin:8px 0 0; }
.expression-card button { border:1px solid var(--line); border-radius:6px; color:var(--teal); background:#eef5ec; padding:8px 12px; font-size:12px; }
.expression-fallback,.copy-feedback { flex-basis:100%; }
.expression-fallback textarea { width:100%; }
.copy-feedback { font-size:12px; color:var(--teal); }
.host-card { border:1px solid var(--line); border-radius:12px; padding:26px; background:#fffefa; }
.host-card h4 { font-size:23px; margin:14px 0 7px; }
.host-card>p { font-size:13px; color:var(--muted); }
.host-card label { display:block; font-size:12px; margin:14px 0 6px; }
.host-card textarea { width:100%; }
.host-card select { min-width:120px; }
#timer-display { display:block; color:var(--teal); font:clamp(58px,6vw,86px)/1.3 Georgia,serif; margin:23px 0; }
.control-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:17px; }
.status,.privacy-note,.empty-message { color:var(--muted); font-size:13px; }
.status { min-height:20px; }
.group-card { padding:12px 16px; background:#edf3ea; border-radius:7px; margin-top:10px; }
.group-card strong { font-size:13px; color:var(--teal); }
.group-card p { font-size:14px; margin:4px 0 0; overflow-wrap:anywhere; }
.group-result>p { font-size:12px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gallery-item { margin:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.gallery-item img { width:100%; height:230px; object-fit:cover; display:block; }
.gallery-item figcaption { padding:12px; color:var(--muted); font-size:13px; }
.gallery-placeholder { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:40px; padding:35px; min-height:320px; border:1px solid var(--line); border-radius:var(--radius); background:#eaf1e7; }
.gallery-placeholder img { width:130px; max-height:190px; object-fit:contain; }
.gallery-placeholder div { font-size:26px; color:var(--teal); }
.faq-layout { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:6vw; }
.faq-layout>div>p { color:var(--muted); }
.faq-list { display:grid; gap:10px; align-content:start; }
.faq-list details { border:1px solid var(--line); border-radius:9px; padding:17px 20px; background:#fffefa; }
.faq-list details[open] { background:#eef5eb; border-color:#adcbb5; }
.faq-list summary { cursor:pointer; font-size:15px; font-weight:650; }
.faq-list details p { margin:13px 0 2px; color:var(--muted); font-size:14px; }
.site-footer { background:#184b4c; color:#fff9ed; }
.footer-main { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:23px var(--page-pad); }
.footer-main img { float:left; margin-right:14px; }
.footer-main h2 { font-size:16px; margin:0; }
.footer-main p { margin:4px 0; font-size:11px; color:#c7ded3; }
.footer-main>p { font-size:18px; }
.footer-bottom { display:flex; justify-content:space-between; gap:14px; padding:14px var(--page-pad); border-top:1px solid #ffffff28; font-size:11px; color:#c7ded3; }
dialog { width:min(700px,calc(100% - 32px)); max-height:90svh; padding:30px 35px; border:0; border-radius:16px; color:var(--ink); background:var(--paper); box-shadow:0 25px 80px #0004; }
dialog::backdrop { background:#102e39b8; backdrop-filter:blur(3px); }
.dialog-top { display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--teal); font-size:12px; }
.dialog-top button { border:0; width:40px; height:40px; border-radius:50%; background:#e8efe5; color:var(--teal); font-size:27px; }
.dialog-overline { margin:32px 0 15px; color:var(--muted); font:11px Georgia,serif; letter-spacing:2px; }
dialog h2 { font-size:clamp(25px,3vw,37px); }
#dialog-english { color:var(--muted); font:20px/1.7 Georgia,serif; margin-bottom:30px; }
.dialog-actions { display:flex; flex-wrap:wrap; gap:12px; padding-top:21px; border-top:1px solid var(--line); }
#manual-copy textarea,#share-fallback textarea { display:block; width:100%; margin-top:8px; }
#manual-copy,#share-fallback { font-size:12px; }
dialog.fallback-open { position:fixed; z-index:40; left:50%; top:50%; transform:translate(-50%,-50%); margin:0; }
html[lang="en"] .hero-english { display:none; }
html[lang="en"] h1 { font-family:Georgia,serif; font-size:clamp(41px,4.3vw,72px); letter-spacing:-.035em; }
html[lang="en"] .brand { font-size:16px; }
@media(max-width:1200px) { .header-cta { display:none; } .header-inner { gap:20px; } .topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:1100px) {
  .header-inner { min-height:68px; }
  .language-toggle { margin-left:auto; }
  .menu-toggle { order:3; display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:7px 12px; border:1px solid #aec6b8; color:var(--teal); border-radius:7px; background:transparent; font-size:12px; }
  .header-inner nav { display:none; position:absolute; top:100%; left:var(--page-pad); right:var(--page-pad); max-height:calc(100svh - 100px); overflow:auto; padding:12px 18px; border:1px solid var(--line); border-radius:0 0 12px 12px; background:var(--paper); box-shadow:0 14px 28px #173d4220; }
  .header-inner nav.open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .header-inner nav a { font-size:14px; padding:12px 8px; }
  .event-layout { grid-template-columns:minmax(0,1.5fr) minmax(200px,.65fr); gap:25px; }
  .event-facts { grid-template-columns:1fr; }
  .community-layout { gap:35px; }
}
@media(max-width:760px) {
  :root { --page-pad:20px; }
  html { scroll-padding-top:80px; }
  .brand { font-size:16px; gap:8px; }
  .brand img { width:36px; height:36px; }
  .header-inner { gap:10px; padding-block:10px; }
  .hero { grid-template-columns:1fr; min-height:0; gap:22px; padding-block:30px; }
  h1 { font-size:clamp(39px,9vw,58px); }
  .hero-pretitle { margin-top:17px; font-size:14px; }
  .hero-english { font-size:16px; margin:15px 0; }
  .hero-intro { font-size:12px; margin:19px 0; }
  .hero-visual { max-width:350px; }
  .hero-visual img { max-height:260px; }
  .hero-feature { max-width:none; }
  .ribbon { gap:13px; padding-block:15px; }
  .ribbon>span:first-child { display:none; }
  .ribbon p { font-size:13px; }
  .ribbon small { font-size:11px; }
  .section { padding-block:26px 38px; min-height:calc(100svh - 68px); }
  .section-top { gap:10px; margin-bottom:22px; }
  .section-id { font-size:9px; letter-spacing:1px; }
  .section-id span { margin-left:6px; }
  .state-pill { font-size:10px; padding:4px 9px; }
  .section-heading { display:block; }
  .section-heading>p { margin-top:16px; }
  .english-subtitle { font-size:16px; }
  .event-layout,.community-layout,.faq-layout { grid-template-columns:1fr; gap:25px; }
  .event-poster { max-width:260px; }
  .session-flow>div,.steps { grid-template-columns:1fr; }
  .steps { gap:10px; margin:24px 0; }
  .steps article { padding:19px; }
  .steps span { float:right; }
  .steps h3 { margin-top:0; }
  .participate { display:block; padding:23px; }
  .participate .light-button { margin-top:15px; }
  .schedule-list,.host-grid,.expression-grid { grid-template-columns:1fr; }
  .schedule-card { padding:23px; }
  .schedule-card:only-child { min-height:320px; background-size:auto 65%; background-position:right bottom; }
  .schedule-card:only-child>* { max-width:100%; }
  .schedule-card h3 { font-size:25px; }
  .community-layout { min-height:0; }
  .community-layout h2 { font-size:36px; }
  .community-values article { padding:17px 0; }
  .tool-intro { flex-wrap:wrap; gap:14px; }
  .tool-intro h3 { font-size:21px; }
  .tool-intro>.outline-button { padding:8px 12px; font-size:12px; }
  .topic-controls { gap:13px; }
  .filter-list { width:100%; }
  .topic-search { flex:1; min-width:160px; }
  .topic-search input,.search-field input { width:100%; }
  .search-field { width:100%; }
  .tab { font-size:13px; padding:12px; }
  .topic-card { padding:20px; }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-placeholder { padding:22px; gap:18px; min-height:230px; }
  .gallery-placeholder img { width:85px; }
  .gallery-placeholder div { font-size:21px; }
  .faq-layout img { display:none; }
  .footer-main>p { display:none; }
  .footer-bottom { flex-wrap:wrap; }
  .footer-bottom>span:nth-child(2) { display:none; }
  dialog { padding:22px; }
}
@media(max-width:480px) { .topic-grid { grid-template-columns:1fr; } .hero-actions { gap:9px; } .primary-button,.outline-button { font-size:12px; padding:11px 14px; } .brand small { font-size:7px; letter-spacing:1.3px; } html[lang="en"] .brand { font-size:13px; } .topic-controls>.primary-button { width:100%; } .state-pill { max-width:44%; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print {
  body { background:white; }
  .site-header,.site-footer,dialog,.skip-link { display:none!important; }
  main { min-height:0; }
  body[data-print="topics"] main>[data-view]:not(.toolbox-section) { display:none!important; }
  body[data-print="topics"] .toolbox-section { display:block!important; padding:0; min-height:0; }
  body[data-print="topics"] .toolbox-section>:not(#panel-topics),body[data-print="topics"] #panel-topics>:not(.topic-grid),body[data-print="topics"] .topic-card button { display:none!important; }
  body[data-print="topics"] #panel-topics { display:block!important; }
  body[data-print="topics"] .topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .topic-card { break-inside:avoid; box-shadow:none; }
}
