/* Wang Fuk Court Fire Inquiry — revamped site */
:root{--ink:#0f172a;--mut:#64748b;--bg:#f8fafc;--card:#fff;--line:#e2e8f0;--acc:#0f172a;--acc2:#e11d48}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6}
h1,h2,h3,.brand-text strong{font-family:'Space Grotesk','Inter',sans-serif}
a{color:var(--acc)}
.layout{display:flex;min-height:100vh}
/* sidebar */
.sidebar{width:264px;flex-shrink:0;background:var(--ink);color:#e2e8f0;display:flex;flex-direction:column;padding:1.5rem 1rem;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:.75rem;align-items:center;text-decoration:none;color:#fff;padding:.25rem .5rem 1.25rem;border-bottom:1px solid #334155}
.brand-mark{width:40px;height:40px;background:#fff;color:var(--ink);border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:1.05rem}
.brand-text{display:flex;flex-direction:column;line-height:1.2}
.brand-text small{color:#94a3b8;font-size:.66rem}
.nav{display:flex;flex-direction:column;gap:.25rem;margin-top:1.25rem}
.nav-item{color:#cbd5e1;text-decoration:none;padding:.6rem .75rem;border-radius:10px;font-size:.9rem;font-weight:500}
.nav-item:hover{background:#1e293b;color:#fff}
.nav-item.active{background:#fff;color:var(--ink);font-weight:600}
.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:.4rem;font-size:.72rem;color:#94a3b8;padding:.75rem .5rem 0;border-top:1px solid #334155}
.sidebar-foot a{color:#e2e8f0}
.lang-switch{display:inline-block;margin-top:.1rem;font-weight:600;color:#fbbf24!important}
/* main */
.main{flex:1;min-width:0;padding:2.5rem clamp(1.25rem,4vw,3.5rem) 1rem;max-width:1200px}
.page-foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.75rem;color:var(--mut)}
/* hero */
.hero{padding:1rem 0 2rem}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;font-size:.68rem;font-weight:600;letter-spacing:.08em;color:var(--mut);margin-bottom:1.25rem}
.hero-badge::before{content:'';width:8px;height:8px;border-radius:50%;background:#10b981;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.hero h1{font-size:clamp(2.6rem,6vw,4.2rem);line-height:1.02;letter-spacing:-.03em;font-weight:700}
.hero-sub{max-width:560px;margin-top:1rem;font-size:1.08rem;color:#475569}
.hero-actions{display:flex;gap:.75rem;margin-top:1.75rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.4rem;border-radius:14px;font-weight:600;font-size:.92rem;text-decoration:none;border:1px solid transparent;cursor:pointer}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#1e293b}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:#94a3b8}
.btn-block{width:100%;margin-top:.75rem}
/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1.5rem 0 2.5rem}
.stat-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.25rem}
.stat-value{font-family:'Space Grotesk',sans-serif;font-size:1.9rem;font-weight:700;letter-spacing:-.02em}
.stat-label{color:var(--mut);font-size:.82rem;font-weight:500;margin-top:.15rem}
.stat-sub{color:#94a3b8;font-size:.72rem}
/* blocks */
.block{margin:2.5rem 0}
.block.narrow{max-width:820px}
.block-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.block h2{font-size:1.5rem;letter-spacing:-.02em}
.block-sub{color:var(--mut);font-size:.9rem;margin:.35rem 0 1.1rem}
.link{color:var(--acc);font-size:.88rem;font-weight:600;text-decoration:none}
.link:hover{text-decoration:underline}
/* ToR cards */
.tor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.tor-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.1rem;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.tor-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px -12px rgb(15 23 42/.18)}
.tor-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.tor-chip{font-size:.62rem;font-weight:700;letter-spacing:.05em;background:var(--ink);color:#fff;padding:.15rem .6rem;border-radius:999px}
.tor-count{font-size:.72rem;color:var(--mut);font-weight:600}
.tor-old{font-size:.66rem;color:#94a3b8;font-weight:500;margin-left:.3rem}
.tor-method-note{margin-top:1rem;max-width:62rem}
.img-examples{margin-top:1rem}
.img-examples h4{font-size:.9rem;margin:.9rem 0 .5rem}
.img-ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.8rem}
.img-ex{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.img-ex img{width:100%;height:110px;object-fit:cover;display:block;background:#f8fafc}
.img-ex figcaption{font-size:.72rem;padding:.45rem .6rem;color:#475569;line-height:1.4}
.ex-tag{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.04em;padding:.12rem .45rem;border-radius:999px;margin-right:.3rem;vertical-align:middle}
.ex-kept{background:#dcfce7;color:#166534}
.ex-filtered{background:#fee2e2;color:#991b1b}
.lk-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
.lk-toolbar input[type=search]{flex:1 1 240px}
.lk-toolbar select{padding:.45rem .6rem;border:1px solid var(--line);border-radius:8px;font-size:.85rem;background:#fff}
.lk-count{font-size:.85rem;color:var(--mut);margin:.25rem 0 .75rem}
.lk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.7rem}
.lk-item{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.lk-item img{width:100%;height:120px;object-fit:cover;display:block;background:#f1f5f9}
.lk-item figcaption{font-size:.68rem;padding:.45rem .55rem;color:#475569;line-height:1.45}
.lk-tag{display:inline-block;font-size:.58rem;font-weight:700;letter-spacing:.03em;padding:.1rem .4rem;border-radius:999px;margin-right:.25rem}
.lk-kept{background:#dcfce7;color:#166534}.lk-filtered{background:#fee2e2;color:#991b1b}.lk-unknown{background:#e2e8f0;color:#334155}
.lk-imp{color:#d97706;font-weight:700;margin-right:.3rem}
.lk-lbl{color:#64748b}
.lk-doc{display:block;margin-top:.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lk-doc a{color:var(--acc);text-decoration:none}
.lk-meta{color:#94a3b8;display:block}
.lk-sub{display:block;color:#64748b;margin-top:.15rem}
.lk-pager{display:flex;gap:1rem;align-items:center;justify-content:center;margin-top:1.25rem}
.lk-pager span{font-size:.85rem;color:var(--mut)}
.search-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:.5rem 0 1rem}
.chip{background:#f1f5f9;border:1px solid var(--line);color:#334155;border-radius:999px;padding:.4rem .85rem;font-size:.8rem;cursor:pointer;transition:all .15s}
.chip:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.search-expand-note{margin-top:.6rem;font-size:.78rem;color:#64748b}
.search-group-head{margin:1.1rem 0 .45rem;font-size:1rem}
.search-group-head.search-semantic{color:var(--acc)}
.search-group-note{margin:0 0 .6rem;font-size:.78rem;color:#64748b}
.row-link{background:none;border:none;cursor:pointer;font-size:.9rem;padding:.1rem .25rem;opacity:.55;transition:opacity .15s}
.row-link:hover{opacity:1}
.search-share-row{margin-top:1rem;text-align:right}
.search-mode{display:flex;flex-wrap:wrap;gap:.45rem;margin:.5rem 0 .75rem}
.mode-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .85rem;font-size:.78rem;font-weight:500;cursor:pointer;color:#475569}
.mode-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.mode-count{font-size:.72rem;opacity:.8;margin-left:.2rem}
.doc-row.search-hit{padding:.55rem .85rem}
.search-hit .row-top{display:flex;align-items:center;gap:.6rem}
.search-hit .row-title{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}
.search-hit .row-meta-inline{display:flex;align-items:center;gap:.4rem;font-size:.7rem;color:var(--mut);white-space:nowrap}
.search-hit .row-sub{font-size:.75rem;margin-top:.15rem}
.scan-pages{display:flex;flex-direction:column;gap:.9rem;margin-top:.4rem}
.scan-page{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.scan-page img{width:100%;height:auto;display:block}
.scan-page figcaption{font-size:.72rem;color:#64748b;padding:.4rem .6rem;border-top:1px solid var(--line)}
.tor-card-title{font-weight:600;font-size:.98rem}
.tor-card-blurb{color:var(--mut);font-size:.8rem;margin-top:.35rem}
/* insights */
.insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}
.insight-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.25rem}
.insight-kicker{font-size:.66rem;font-weight:700;letter-spacing:.1em;color:var(--acc2);margin-bottom:.5rem}
.themes{display:flex;flex-wrap:wrap;gap:.45rem}
.theme-chip{background:#f1f5f9;border:1px solid var(--line);border-radius:999px;padding:.22rem .7rem;font-size:.74rem;color:#334155}
.theme-chip b{color:var(--ink)}
/* pages */
.page-head{padding:0 0 1.5rem}
.page-head h1{font-size:2.2rem;letter-spacing:-.02em;line-height:1.1}
.page-head p{color:var(--mut);max-width:640px;margin-top:.4rem;font-size:.95rem}
.crumbs{font-size:.78rem;color:var(--mut);margin-bottom:.5rem}
/* documents index */
.toolbar{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:1.25rem}
#search{flex:1;min-width:220px;padding:.7rem 1rem;border:1px solid var(--line);border-radius:12px;font-size:.9rem;background:#fff}
.filters{display:flex;flex-wrap:wrap;gap:.45rem}
.filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .85rem;font-size:.76rem;font-weight:500;cursor:pointer;color:#475569}
.filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
/* document list rows (documents.html) */
.doc-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.doc-row{display:flex;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.7rem 1rem}
.row-main{flex:1;min-width:0}
.row-title{font-weight:600;font-size:.88rem;text-decoration:none;color:inherit;display:block;line-height:1.35}
.row-title:hover{text-decoration:underline}
.row-sub{color:var(--mut);font-size:.76rem;margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-meta{display:flex;align-items:center;gap:.6rem;font-size:.74rem;color:var(--mut);white-space:nowrap}
.row-pdf{font-weight:600;color:var(--acc2);text-decoration:none}
.doc-count{margin-left:auto;font-size:.74rem;color:var(--mut);align-self:center}
/* map docs grouping */
.map-group-head{font-size:.95rem;margin:1.1rem 0 .5rem;padding-bottom:.25rem;border-bottom:1px solid var(--line);letter-spacing:-.01em}
.map-doc-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.6rem}
.chip-sum{font-size:.72rem;color:#64748b;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.map-tor circle{transition:filter .12s}
.map-tor:hover circle{filter:brightness(1.15)}
.doc-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.1rem;display:flex;flex-direction:column;gap:.6rem}
.doc-card-head h3{font-size:.95rem;line-height:1.35}
.doc-card-head h3 a{text-decoration:none;color:inherit}
.doc-card-head h3 a:hover{text-decoration:underline}
.tor-badge{font-size:.62rem;font-weight:600;background:#f1f5f9;border:1px solid var(--line);color:#475569;border-radius:999px;padding:.12rem .55rem;white-space:nowrap}
.type-badge{font-size:.62rem;font-weight:600;background:#eef2ff;border:1px solid #c7d2fe;color:#4338ca;border-radius:999px;padding:.12rem .55rem;white-space:nowrap}
.lang-badge{font-size:.62rem;font-weight:600;background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;border-radius:999px;padding:.12rem .55rem;white-space:nowrap}
.lang-badge.lang-中文{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.lang-badge.lang-bilingual{background:#fffbeb;border-color:#fde68a;color:#b45309}
.filter-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;color:var(--mut);text-transform:uppercase;align-self:center}
.meta-filters{row-gap:.5rem}
/* work ledger page */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.work-table{width:100%;border-collapse:collapse;font-size:.85rem}
.work-table th,.work-table td{padding:.55rem .9rem;text-align:left;border-bottom:1px solid var(--line)}
.work-table th{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);background:#f8fafc}
.work-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.work-table tbody tr:last-child td{border-bottom:none}
.work-tor-row{display:grid;grid-template-columns:minmax(0,1fr) 180px 70px;gap:.8rem;align-items:center;padding:.5rem 0;border-bottom:1px dashed var(--line)}
.work-tor-row:last-child{border-bottom:none}
.work-tor-label{font-size:.85rem;font-weight:600}
.work-tor-label .muted{font-weight:400;margin-left:.4rem}
.work-bar{background:#f1f5f9;border-radius:999px;height:10px;overflow:hidden}
.work-bar-fill{background:linear-gradient(90deg,var(--acc2),var(--acc));height:100%;border-radius:999px}
.work-tor-hours{font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.doc-points{margin:.35rem 0 .15rem;padding-left:1.1rem;color:#475569;font-size:.82rem}
.doc-points li{margin-bottom:.25rem}
.doc-meta{display:flex;gap:1rem;align-items:center;font-size:.74rem;color:var(--mut);margin-top:auto}
.doc-meta a{margin-left:auto;font-weight:600;text-decoration:none}
/* tor perspectives */
.tor-perspectives{display:flex;flex-direction:column;gap:1rem}
.tor-perspective{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.4rem}
.tor-perspective h3{margin:.5rem 0 .5rem;font-size:1.1rem}
.tor-perspective h3 a{text-decoration:none}
.tor-narr{color:#475569;font-size:.9rem}
.cite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.cite-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.5rem}
.cite-card h4{font-size:.88rem;line-height:1.35}
.cite-card h4 a{text-decoration:none;color:inherit}
.cite-card h4 a:hover{text-decoration:underline}
.cite-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;font-size:.72rem}
.cite-foot a{font-weight:600;text-decoration:none}
.tor-pills{display:flex;flex-wrap:wrap;gap:.5rem}
.tor-pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;font-size:.8rem;font-weight:500;text-decoration:none;color:#334155}
.tor-pill:hover{border-color:var(--ink);color:var(--ink)}
/* themed report pages */
.methodology{background:#f8fafc;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:12px;padding:1rem 1.25rem;font-size:.82rem;color:#475569;line-height:1.7}
.report-section{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.4rem;margin-bottom:1.25rem}
.report-section h2{font-size:1.2rem;margin-bottom:.6rem}
.report-section p{color:#334155;font-size:.92rem;line-height:1.75;margin-bottom:.6rem}
.cite-ref{color:var(--acc2);text-decoration:none;font-size:.72em;font-weight:700}
.cite-ref:hover{text-decoration:underline}
sources{margin-top:.5rem;font-size:.82rem}
sources summary{cursor:pointer;color:var(--acc);font-weight:600}
sources ul{margin:.6rem 0 0 1.1rem;color:#475569}
sources li{margin-bottom:.35rem}
sources .pdf{color:var(--acc2)}
.doc-acc{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:.6rem;overflow:hidden}
.doc-acc summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;cursor:pointer;font-size:.86rem;list-style:none}
.doc-acc summary::-webkit-details-marker{display:none}
.doc-acc summary::before{content:'▸';margin-right:.5rem;color:var(--mut);transition:transform .15s}
.doc-acc[open] summary::before{transform:rotate(90deg)}
.acc-title{font-weight:600;flex:1}
.acc-meta{font-size:.72rem;color:var(--mut);white-space:nowrap}
.acc-body{padding:0 1rem 1rem 2.1rem;border-top:1px dashed var(--line)}
.acc-body .themes{margin:.8rem 0}
.acc-links{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}
.acc-links .btn{padding:.5rem 1rem;font-size:.8rem}
/* doc pages: full text + images */
.doc-sub{color:var(--mut);font-size:.85rem;margin-top:.4rem}
.doc-num{font-weight:700;color:var(--acc2);font-size:.82em}
.full-doc{margin-top:1rem;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem 1.25rem}
.full-doc summary{cursor:pointer;font-weight:600;font-size:.95rem}
.doc-page{margin-top:1rem;padding-top:.75rem;border-top:1px dashed var(--line)}
/* highlighted target when a link arrives at #page-N */
.doc-page:target,.scan-page:target{background:#fffbeb;border-left:4px solid #f59e0b;border-radius:10px;padding:.75rem 1rem .75rem .85rem;animation:target-flash 1.6s ease-out}
.doc-page:target .page-marker,.scan-page:target figcaption{color:#b45309;font-weight:700}
@keyframes target-flash{0%{background:#fde68a}100%{background:#fffbeb}}
.page-marker{font-size:.72rem;letter-spacing:.08em;color:var(--acc2);margin-bottom:.5rem}
.md-block{font-size:.88rem;color:#334155;line-height:1.75}
.md-block p{margin:.35rem 0}
.md-h{margin:.9rem 0 .4rem;font-size:1rem}
.md-li{margin-left:1.2rem}
.img-gallery{margin-top:1rem;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem 1.25rem}
.img-gallery summary{cursor:pointer;font-weight:600;font-size:.95rem;margin-bottom:.6rem}
.img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.img-item{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.img-item img{width:100%;height:130px;object-fit:cover;display:block;background:#f1f5f9}
.img-item figcaption{font-size:.68rem;color:var(--mut);padding:.3rem .5rem;text-align:center}
.img-imp{color:#d97706;font-weight:700}
.img-sub{display:block;font-size:.62rem;color:#64748b;margin-top:.15rem;line-height:1.35}
.img-note{font-size:.72rem;color:var(--mut);margin-top:.6rem;line-height:1.5}
.img-more{display:contents}
#img-more-btn{margin-top:.75rem}
/* doc page */
.doc-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.25rem;align-items:start}
.doc-tags{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.75rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.25rem;margin-bottom:1.25rem}
.card h2{font-size:1.05rem;margin-bottom:.6rem}
.summary{white-space:pre-wrap;font-size:.86rem;color:#475569}
.cross-sum{border-left:4px solid var(--acc2)}
.cross-sum h2{font-size:.95rem}
.toc-list{list-style:none;font-size:.84rem;color:#475569;columns:2;column-gap:2rem}
.toc-list li{padding:.22rem 0;border-bottom:1px dashed var(--line)}
.facts{list-style:none;font-size:.85rem}
.facts li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dashed var(--line)}
.rel-list{list-style:none;font-size:.88rem}
.rel-list li{padding:.35rem 0;border-bottom:1px dashed var(--line)}
.rel-tag{font-size:.66rem;color:var(--mut);margin-left:.5rem;background:#f1f5f9;border-radius:999px;padding:.1rem .5rem}
.tor-theme{padding:.55rem 0;border-bottom:1px dashed var(--line)}
.tor-theme:last-child{border-bottom:none}
.tor-theme-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}
.tor-theme-head strong{font-size:.88rem}
.tor-theme p{font-size:.83rem;color:#475569;line-height:1.6}
/* notes */
.map-shell{{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-start;margin-bottom:1rem}}
.map-canvas{{flex:1;min-width:280px;background:linear-gradient(180deg,#fff,#f1f5f9);border:1px solid var(--line);border-radius:18px;padding:.5rem}}
#map-svg{{width:100%;height:auto}}
.map-legend{{display:flex;flex-direction:column;gap:.4rem;min-width:230px}}
.legend-item{{display:flex;align-items:center;gap:.5rem;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:.45rem .7rem;font-size:.78rem;cursor:pointer;color:#334155}}
.legend-item.active{{border-color:var(--ink);background:var(--ink);color:#fff}}
.legend-dot{{width:10px;height:10px;border-radius:50%;flex-shrink:0}}
.map-narrative{{margin-bottom:1rem}}
.map-narr-card{{background:#fff;border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:14px;padding:1.1rem 1.25rem}}
.map-narr-head{{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}}
.map-narr-card p{{font-size:.88rem;color:#475569}}
.map-docs{{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem}}
.map-doc-chip{{display:flex;flex-direction:column;gap:.25rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;text-decoration:none;color:inherit;transition:border-color .12s,transform .12s}}
.map-doc-chip:hover{{border-color:var(--ink);transform:translateY(-1px)}}
.chip-title{{font-size:.8rem;font-weight:600;line-height:1.35}}
.chip-meta{{font-size:.68rem;color:var(--mut)}}
/* notes */
.note-block{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:12px;padding:1.1rem 1.25rem;margin-bottom:1rem}
.note-block h3{font-size:1rem;margin-bottom:.4rem}
.note-block p{font-size:.9rem;color:#475569}
.note-block.warn{border-left-color:#f59e0b;background:#fffbeb}
.muted{color:var(--mut);font-size:.8rem}
code{background:#f1f5f9;padding:.1rem .35rem;border-radius:6px;font-size:.8em}
.zh-notice{background:#fffbeb;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:10px;padding:.6rem .9rem;font-size:.78rem;color:#92400e;line-height:1.55;margin-bottom:1.25rem}
.zh-notice a{color:#b45309;font-weight:600}
/* news page */
.news-para{font-size:.9rem;color:#475569;line-height:1.7}
.news-list{list-style:none;font-size:.85rem;color:#475569;margin:.4rem 0 .9rem}
.news-list li{padding:.3rem 0 .3rem 1rem;position:relative}
.news-list li::before{content:'—';position:absolute;left:0;color:var(--acc2)}
.news-list.gaps li::before{content:'▸'}
.news-sub{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc2);margin:1rem 0 .35rem}
.timeline{position:relative;padding-left:1.6rem;border-left:2px solid var(--line)}
.tl-item{margin-bottom:1.1rem;position:relative}
.tl-item::before{content:'';position:absolute;left:-1.68rem;top:.32rem;width:10px;height:10px;border-radius:50%;background:var(--acc2);border:2px solid #fff;box-shadow:0 0 0 2px var(--acc2)}
.tl-date{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.8rem;color:var(--ink);letter-spacing:.02em}
.tl-body p{font-size:.85rem;color:#475569;line-height:1.65;margin:.15rem 0 .35rem}
.tl-body .themes{margin-top:.1rem}
.news-theme h3{font-size:1.05rem;margin-bottom:.5rem}
.news-art{display:flex;align-items:flex-start;gap:.9rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;margin-bottom:.55rem}
.art-num{font-family:'Space Grotesk',sans-serif;font-weight:700;color:var(--acc2);font-size:.78rem;padding-top:.15rem;flex-shrink:0}
.art-main{flex:1;min-width:0}
.art-title{font-size:.9rem;font-weight:600;color:var(--ink);text-decoration:none;line-height:1.45}
.art-title:hover{text-decoration:underline}
.art-meta{font-size:.72rem;color:var(--mut);margin:.15rem 0 .3rem}
.art-lang{flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.06em;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--mut)}
.art-lang.lang-en{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.art-lang.lang-tc{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
/* responsive */
@media(max-width:900px){
  .layout{flex-direction:column}
  .sidebar{width:100%;height:auto;position:static;padding:1rem}
  .nav{flex-direction:row;flex-wrap:wrap;margin-top:.75rem}
  .nav-item{padding:.45rem .7rem}
  .sidebar-foot{display:none}
  .doc-layout{grid-template-columns:1fr}
}
@media(max-width:560px){
  .main{padding:1.25rem 1rem}
  .stats{grid-template-columns:1fr 1fr}
}
/* letter page */
.letter-doc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:2rem 2.2rem;box-shadow:0 1px 2px rgb(0 0 0 / .04)}
.letter-doc h2{font-size:1.25rem;line-height:1.4;margin-bottom:1.1rem;letter-spacing:-.01em}
.letter-doc .letter-salutation{font-size:.95rem;margin-bottom:1rem}
.letter-doc p{font-size:.95rem;color:#334155;line-height:1.85;margin-bottom:1.1rem}
.letter-doc .letter-signature{color:var(--ink);font-weight:600;margin-top:1.4rem}
.letter-as-submitted{font-size:.78rem;color:var(--mut);margin-top:.6rem}
.dev-item{display:flex;gap:.6rem;align-items:baseline;padding:.45rem 0;border-bottom:1px dashed var(--line)}
.dev-item:last-child{border-bottom:none}
.dev-item .dev-date{flex-shrink:0;font-family:'Space Grotesk',monospace;font-size:.78rem;font-weight:600;color:var(--acc2)}
.dev-item p{font-size:.88rem;color:#334155;line-height:1.6}
.dev-item .dev-src{font-size:.72rem;color:var(--mut)}
/* engagement (LegCo draft) page */
.lg-hero h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}
.lg-hero p{font-size:1.05rem;max-width:680px}
.lg-card-link{display:block;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.lg-card-link:hover{transform:translateY(-3px);box-shadow:0 14px 28px -12px rgb(15 23 42/.18)}
.lg-card-link p{font-size:.9rem;color:#475569;line-height:1.65}
.lg-compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.1rem 0}
.lg-compare .col{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.25rem}
.lg-compare h4{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:.6rem}
.lg-compare ul{list-style:none;font-size:.88rem;color:#334155}
.lg-compare li{padding:.3rem 0 .3rem 1rem;position:relative;border-bottom:1px dashed var(--line)}
.lg-compare li:last-child{border-bottom:none}
.lg-compare .col h4+ul li::before{content:'—';position:absolute;left:0;color:var(--acc2)}
.lg-quote{border-left:4px solid var(--acc2);background:#fff;border-radius:0 14px 14px 0;padding:1rem 1.4rem;font-size:1.05rem;line-height:1.65;color:var(--ink);margin:1.25rem 0}
.lg-quote small{display:block;margin-top:.5rem;color:var(--mut);font-size:.78rem}
.lg-asks{display:flex;flex-direction:column;gap:.7rem;margin-top:1rem}
.lg-ask{display:flex;gap:.9rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.95rem 1.1rem;align-items:flex-start}
.lg-ask-num{flex-shrink:0;width:30px;height:30px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.85rem;text-transform:uppercase}
.lg-ask p{font-size:.9rem;color:#334155;line-height:1.6}
.lg-ask b{color:var(--ink)}
.lg-steps{margin-top:1rem}
.lg-duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.25rem}
.lg-duo .col{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.25rem}
.lg-duo h4{font-size:.95rem;margin-bottom:.5rem}
.lg-duo ul{list-style:none;font-size:.85rem;color:#475569}
.lg-duo li{padding:.3rem 0 .3rem 1rem;position:relative}
.lg-duo li::before{content:'—';position:absolute;left:0;color:var(--acc2)}
.lg-cta{background:var(--ink);color:#e2e8f0;border-radius:18px;padding:1.6rem 1.8rem;margin-top:2.5rem}
.lg-cta h2{color:#fff;font-size:1.4rem;letter-spacing:-.02em}
.lg-cta p{color:#cbd5e1;font-size:.92rem;max-width:640px;margin:.5rem 0 1.1rem}
.lg-cta .btn-ghost{background:transparent;color:#fff;border-color:#334155}
.lg-cta .btn-ghost:hover{border-color:#94a3b8}
.lg-btn-light{background:#fff;color:var(--ink)!important}
.lg-btn-light:hover{background:#e2e8f0}
@media(max-width:760px){.lg-compare,.lg-duo{grid-template-columns:1fr}}

/* --- Chinese corpus page (zh-docs.html) --- */
.lede{color:var(--mut);max-width:680px;font-size:.98rem}
.section-block{margin:2rem 0}
.section-block h2{font-size:1.3rem;letter-spacing:-.01em;margin-bottom:.9rem}
.zh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}
.zh-meta{display:flex;flex-wrap:wrap;gap:.35rem}
.zh-links{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.85rem;margin-top:auto}
.zh-links a{color:var(--accent,#2563eb);text-decoration:none}
.zh-links a:hover{text-decoration:underline}
.zh-en-link{font-weight:600}
.note-box{background:var(--card);border:1px solid var(--line);border-left:4px solid #f59e0b;border-radius:12px;padding:.9rem 1.1rem;font-size:.9rem;margin:1.25rem 0}
.tag{display:inline-block;font-size:.68rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;background:rgba(37,99,235,.1);color:#1e40af}
@media(max-width:760px){.zh-grid{grid-template-columns:1fr}}
