/* App styles (shared components) */

/*
Theme Name: TTOnline
Theme URI: https://tiengtrungonline.vn
Author: TTOnline
Description: Modern, fast, SEO + a11y theme for a Chinese learning site in Vietnamese.
Version: 1.0.0
Text Domain: ttonline
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
*/

/* Base typography & utility */
:root{
  --bg:#ffffff; --surface:#ffffff; --txt:#0f172a; --muted:#475569; --line:#e5e7eb; --brand:#e9730e;
  --chip-bg:#eef2ff; --chip-ink:#3730a3; --badge-bg:#ecfeff; --badge-ink:#0369a1; --ring:#38bdf8;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#0b1220; --surface:#0e1726; --txt:#e5e7eb; --muted:#cbd5e1; --line:#1f2a44; --brand:#0ea5e9; --chip-bg:#1e293b; --chip-ink:#cbd5e1; --badge-bg:#082f49; --badge-ink:#7dd3fc; --ring:#7dd3fc; }
}
[data-theme="light"]{ --bg:#ffffff; --surface:#ffffff; --txt:#0f172a; --muted:#475569; --line:#e5e7eb; --brand:#0ea5e9; --chip-bg:#eef2ff; --chip-ink:#3730a3; --badge-bg:#ecfeff; --badge-ink:#0369a1; --ring:#38bdf8; }
[data-theme="dark"]{  --bg:#0b1220; --surface:#0e1726; --txt:#e5e7eb; --muted:#cbd5e1; --line:#1f2a44; --brand:#0ea5e9; --chip-bg:#1e293b; --chip-ink:#cbd5e1; --badge-bg:#082f49; --badge-ink:#7dd3fc; --ring:#7dd3fc; }

html{scroll-behavior:smooth}
body{margin:0; color:var(--txt); background:var(--bg); font-family: system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Arial, sans-serif; line-height:1.6;}
img{max-width:100%; height:auto;}

/* Layout helpers */
.container{max-width:1200px; margin:0 auto; padding:24px 16px;}
.btn{ background:var(--brand); color:#fff; border:0; padding:10px 14px; border-radius:12px; cursor:pointer; text-decoration:none; display:inline-block; }
.btn:hover{ filter:brightness(.95); }
.btn:focus{ outline:none; box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 40%, transparent); }

/* Header */
.site-header{border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:30}
.site-brand{display:flex; align-items:center; gap:10px; font-weight:700; font-size:18px; text-decoration:none; color:inherit;}
.main-nav{display:flex; gap:12px; align-items:center; flex-wrap:wrap;}
.main-nav a{ color:inherit; text-decoration:none; padding:8px 10px; border-radius:10px; }
.main-nav a[aria-current="page"]{ background: rgba(14,165,233, .12); }

/* Footer */
.site-footer{border-top:1px solid var(--line); background:var(--surface); padding:24px 0; color:var(--muted);}

/* Cards/Grid shared */
.grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap:16px; }
.card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition: box-shadow .2s ease, transform .12s ease; content-visibility:auto; contain:content; }
.card:hover{ box-shadow:0 12px 26px rgba(2,6,23,.10); transform:translateY(-2px); }
.thumb{ aspect-ratio:16/9; background:#f1f5f9; display:block; overflow:hidden; }
.card .body{ padding:12px; display:grid; gap:8px; }
.title{ font-weight:650; font-size:16px; margin:0; line-height:1.35; }
.meta{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; color:var(--muted); font-size:12px; }
.badge{ background:var(--badge-bg); color:var(--badge-ink); padding:2px 8px; border-radius:999px; font-size:12px; }

/* Hero */
.hero{ position:relative; border:1px solid var(--line); background:linear-gradient(120deg, rgba(14,165,233,.08), transparent 30%), var(--surface); border-radius:24px; padding:26px 16px; margin:8px 0 24px; overflow:hidden; }
.hero h1{ font-size:clamp(28px,3.6vw,40px); margin:0 0 6px; letter-spacing:.2px; }
.hero p{ margin:0; color:var(--muted); font-size:clamp(14px,1.8vw,18px); }
.hero .actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }

/* Chips */
.chips{ display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 16px; list-style:none; padding:0; }
.chip{ text-decoration:none; background:var(--chip-bg); color:var(--chip-ink); border:1px solid var(--line); padding:6px 10px; border-radius:999px; font-size:13px; display:inline-flex; align-items:center; gap:6px; }
.chip[aria-current="page"]{ background:var(--brand); color:#fff; border-color:transparent; }
.chip .count{ background:var(--badge-bg); color:var(--badge-ink); padding:2px 6px; border-radius:999px; font-size:12px; }

/* Accessibility */
.skip-link{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus{ position:static; width:auto; height:auto; padding:8px 10px; background:#000; color:#fff; }

/* Load More button */
.btn.btn-load-more{ display:inline-flex; align-items:center; justify-content:center; padding:0.75rem 1.25rem; border-radius:0.5rem; border:1px solid var(--ring,#7dd3fc); background:transparent; cursor:pointer; font-weight:600; color: #7d7d7d; }
.btn.btn-load-more[disabled]{ opacity:0.6; cursor:not-allowed; }
.lm-wrap{ display:flex; align-items:center; justify-content:center; gap:1rem; margin:2rem 0; }

/* Brand button style for Load More */
.btn-brand{
  --btn-bg: var(--brand, #0C586E);
  --btn-ink: #fff;
  --btn-bg-hover: color-mix(in srgb, var(--btn-bg) 90%, #fff 10%);
  --btn-bg-active: color-mix(in srgb, var(--btn-bg) 80%, #000 20%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--btn-bg) 96%, #fff 4%), var(--btn-bg));
  color: var(--btn-ink);
  border-color: color-mix(in srgb, var(--btn-bg) 70%, #000 30%);
  box-shadow: 0 2px 0 0 color-mix(in srgb, var(--btn-bg) 65%, #000 35%);
  transition: transform .15s ease, box-shadow .15s ease, background .2s ease;
}
.btn-brand:hover{ background: var(--btn-bg-hover); transform: translateY(-1px); box-shadow: 0 4px 10px rgba(0,0,0,.12); }
.btn-brand:active{ background: var(--btn-bg-active); transform: translateY(0); box-shadow: 0 2px 0 0 color-mix(in srgb, var(--btn-bg) 65%, #000 35%); }
.btn-brand:focus-visible{ outline: 3px solid color-mix(in srgb, var(--btn-bg) 35%, #7dd3fc 65%); outline-offset: 2px; }

/* Loading spinner (CSS only) */
.btn-brand.is-loading{ position: relative; }
.btn-brand.is-loading::after{
  content: "";
  width: 1em; height: 1em; margin-left: .5em;
  border-radius: 50%;
  border: 2px solid #fff;
  border-right-color: transparent;
  display: inline-block;
  vertical-align: middle;
  animation: tto-spin .85s linear infinite;
}
@keyframes tto-spin{ to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce){
  .btn-brand{ transition:none }
  .btn-brand:hover{ transform:none; box-shadow:none }
  .btn-brand.is-loading::after{ animation: none; border-right-color:#fff; }
}
a {color: #ff8f00;}
/* ===== Chinese learning homepage refresh ===== */
:root{--bg:#fff;--surface:#fff;--txt:#142541;--muted:#536985;--line:#e7edf5;--brand:#e83d42;--ring:#f87171}
body{background:#fff;color:#142541;font-family:Inter,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;font-size:15px;line-height:1.55}
a{color:inherit}
#main{width:100%;max-width:none;margin:0;padding:0}
.site-header{height:66px;background:rgba(255,255,255,.97);border-bottom:1px solid #edf1f6;position:sticky;top:0;z-index:99;backdrop-filter:blur(12px)}
.header-inner{max-width:1320px;height:100%;margin:auto;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-brand{gap:12px;min-width:260px;text-decoration:none}.brand-mark{width:46px;height:46px;border-radius:50%;background:#e43c40;color:#fff;display:grid;place-items:center;font-family:serif;font-size:29px;box-shadow:0 5px 14px #e43c4030}.brand-copy{display:flex;flex-direction:column;line-height:1.2}.brand-copy strong{font-size:21px;letter-spacing:-.5px}.brand-copy small{font-size:11px;color:#687a91;margin-top:3px}
.main-nav{height:100%;display:flex;align-items:center;justify-content:center;gap:6px;flex:1}.main-nav a{height:100%;display:flex;align-items:center;padding:0 13px;border-radius:0;color:#1a2c47;text-decoration:none;font-size:14px;position:relative}.main-nav a:hover,.main-nav a[aria-current=page]{color:#e53d42;background:transparent}.main-nav a[aria-current=page]:after{content:"";height:2px;background:#e53d42;position:absolute;bottom:7px;left:0;right:0}
.header-tools{display:flex;align-items:center;gap:20px}.header-tools a{font-size:27px;text-decoration:none;color:#12223b;line-height:1}.menu-toggle{display:none;border:0;background:none;font-size:24px;color:#172944}
.home-hero{height:288px;position:relative;overflow:hidden;background:linear-gradient(90deg,#f5f9fd 0%,rgba(246,250,253,.98) 31%,rgba(246,250,253,.72) 45%,rgba(246,250,253,0) 63%),url('../images/hero-study.jpg') right center/auto 100% no-repeat,#f4f8fc}
.home-hero-copy{max-width:1320px;height:100%;margin:auto;padding:36px 22px 20px;position:relative;z-index:2}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#e24a4e;display:none}.home-hero h1{font-size:40px;line-height:1.18;letter-spacing:-1.2px;margin:3px 0 17px;color:#142541;font-weight:750}.home-hero p{font-size:15px;line-height:1.7;color:#304764;margin:0}.hero-benefits{display:flex;gap:25px;margin-top:22px}.hero-benefits span{font-size:11px;color:#425a78;display:flex;align-items:center;gap:10px;line-height:1.4}.hero-benefits b{font-size:25px;color:#e84448;font-weight:400}.home-cta{display:none}
.home-content{max-width:1320px;margin:0 auto;padding:25px 22px 45px}.home-section{min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:17px}.section-heading h2{font-size:21px;line-height:1.25;margin:0 0 4px;font-weight:750;letter-spacing:-.3px;color:#142541}.section-heading p{font-size:12px;color:#536985;margin:0}.section-heading>a{font-size:11px;color:#e53d42;text-decoration:none;white-space:nowrap;padding-top:5px}.section-heading>a span{font-size:16px;margin-left:3px}
.topic-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.topic-card{height:210px;position:relative;display:flex;flex-direction:column;text-decoration:none;border:1px solid #f5e4e5;border-radius:9px;overflow:hidden;padding:0 15px 13px;background:linear-gradient(180deg,#fff 35%,#fff7f7 100%);transition:transform .2s,box-shadow .2s}.topic-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #1e355012}.topic-photo{height:80px;margin:0 -15px 0;background-position:center;background-size:cover;display:block}.topic-icon{width:32px;height:32px;border-radius:50%;background:#fff0f0;color:#e34a4d;border:3px solid #fff;display:grid;place-items:center;font-size:16px;margin-top:-13px;z-index:1}.topic-name{font-size:13px;font-weight:700;color:#182a45;margin:3px 0 4px}.topic-desc{font-size:10px;color:#526984;line-height:1.65;max-width:95%}.round-arrow{position:absolute;right:11px;bottom:11px;width:25px;height:25px;border:1px solid #f8e7e7;border-radius:50%;display:grid;place-items:center;color:#e44a4d;background:#fff;font-size:14px}.topic-tone-2,.topic-tone-4,.topic-tone-5{background:linear-gradient(180deg,#fff 35%,#f4f8ff 100%);border-color:#e5edf9}.topic-tone-2 .topic-icon,.topic-tone-4 .topic-icon,.topic-tone-5 .topic-icon{background:#eaf3ff;color:#24538c}.topic-tone-3{background:linear-gradient(180deg,#fff 35%,#fff9f1 100%);border-color:#f8ecdd}.topic-tone-3 .topic-icon{background:#fff0e9;color:#e45b43}
.home-columns{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(360px,1fr);gap:18px;margin-top:27px}.home-main-column,.home-side-column{min-width:0}.vocab-section{margin-bottom:27px}.word-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.word-card{min-height:99px;border:1px solid #e7edf5;border-radius:9px;padding:10px 14px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;align-items:center;position:relative;background:#fff}.word-card strong{font-family:"Noto Serif SC",serif;font-size:20px;font-weight:600;color:#172b49;grid-column:1}.word-card span{font-size:11px;color:#526984;grid-column:1}.word-card small{font-size:11px;color:#304764;grid-column:1}.speak-word{grid-column:2;grid-row:1/4;border:0;background:#fff4f4;color:#e8494d;border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:11px}.writing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.writing-card{height:72px;border:1px solid #e7edf5;border-radius:9px;display:flex;align-items:center;gap:16px;padding:7px 12px;text-decoration:none;background:#fff}.writing-card strong{width:60px;height:60px;border:1px solid #e7edf5;border-radius:4px;display:grid;place-items:center;font-family:serif;font-size:42px;font-weight:400;color:#142541;background:repeating-linear-gradient(0deg,transparent,transparent 29px,#edf1f6 30px),repeating-linear-gradient(90deg,transparent,transparent 29px,#edf1f6 30px)}.writing-card span{font-size:10px;color:#7a8ba1;flex:1}.writing-card i{font-style:normal;color:#e54549;font-size:18px}
.home-side-column{display:flex;flex-direction:column;gap:15px;padding-top:3px}.promo-card{height:158px;border-radius:9px;overflow:hidden;text-decoration:none;display:flex;align-items:center;padding:22px 25px;background-position:center;background-size:cover}.dialogue-promo{background-image:linear-gradient(90deg,rgba(255,242,243,.96) 0%,rgba(255,242,243,.88) 46%,rgba(255,242,243,0) 72%),url('../images/dialogue-banner.jpg');background-color:#fff1f2}.promo-card>span:first-child{display:flex;flex-direction:column;align-items:flex-start;position:relative;z-index:1}.promo-card strong{font-size:15px;color:#142541;margin-bottom:5px}.promo-card small{font-size:11px;line-height:1.65;color:#4e6380}.dialogue-promo i{font-style:normal;width:29px;height:29px;background:#e74649;color:#fff;border-radius:50%;display:grid;place-items:center;margin-top:10px;font-size:17px}.device-promo{height:144px;position:relative;align-items:flex-start;gap:13px;background-image:linear-gradient(90deg,rgba(237,245,255,.97) 0%,rgba(237,245,255,.92) 55%,rgba(237,245,255,.12) 100%),url('../images/device-banner.jpg');background-color:#edf5ff;padding-top:19px}.device-badge{width:31px;height:31px;flex:0 0 31px;border-radius:50%;background:#326bb0;color:#fff;display:grid;place-items:center}.device-promo>span:nth-child(2){display:flex;flex-direction:column}.device-promo strong{font-size:13px}.device-promo small{font-size:10px}.device-list{position:absolute;left:40px;bottom:16px;font-size:10px;color:#263c59}
.site-footer{background:#f7f9fc;border-top:1px solid #e9eef5;padding:24px 22px;color:#66788f}.footer-inner{max-width:1320px;margin:auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px}.footer-inner strong{color:#182b48;font-size:15px}.footer-inner small{margin-left:auto}
@media(max-width:1100px){.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-columns{grid-template-columns:1fr}.home-side-column{display:grid;grid-template-columns:1fr 1fr}.home-hero{background-position: right center}.home-hero h1{font-size:35px}}
@media(max-width:760px){.site-header{height:auto;min-height:62px}.header-inner{min-height:62px;flex-wrap:wrap;padding:7px 16px;gap:8px}.site-brand{min-width:0}.brand-mark{width:40px;height:40px;font-size:25px}.brand-copy strong{font-size:18px}.menu-toggle{display:block;margin-left:auto}.header-tools{gap:12px}.header-tools a{font-size:23px}.main-nav{display:none;order:4;flex-basis:100%;height:auto;align-items:stretch;flex-direction:column;gap:0;padding:6px 0 12px}.main-nav.active{display:flex}.main-nav a{height:auto;padding:10px 4px;border-bottom:1px solid #f0f2f6}.main-nav a[aria-current=page]:after{display:none}.home-hero{height:auto;min-height:400px;background-size:auto 220px;background-position:right bottom;background-repeat:no-repeat;background-color:#f4f8fc}.home-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#f5f9fd 0%,rgba(245,249,253,.98) 47%,rgba(245,249,253,.12) 100%)}.home-hero-copy{padding:28px 18px;z-index:2}.home-hero h1{font-size:32px;margin-bottom:12px}.home-hero p{font-size:13px}.hero-benefits{gap:14px;margin-top:17px}.hero-benefits span{font-size:9px;gap:5px}.hero-benefits b{font-size:20px}.home-cta{display:inline-flex;margin-top:16px;padding:9px 14px;background:#e74649;color:#fff;border-radius:7px;text-decoration:none;font-size:12px}.home-cta span{margin-left:12px}.home-content{padding:22px 16px 34px}.section-heading h2{font-size:19px}.section-heading p{font-size:11px}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.topic-card{height:205px}.home-columns{margin-top:25px;gap:23px}.word-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.word-card{min-height:92px}.writing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-side-column{grid-template-columns:1fr}.promo-card{height:150px}.device-promo{height:140px}.footer-inner{gap:8px}.footer-inner small{margin-left:0;width:100%}}
@media(max-width:380px){.home-hero h1{font-size:28px}.hero-benefits{gap:8px}.hero-benefits span{font-size:8px}.topic-card{padding-left:11px;padding-right:11px}.topic-photo{margin-left:-11px;margin-right:-11px}.section-heading>a{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.topic-card{transition:none}}
.main-nav li{list-style:none;height:100%;display:flex;align-items:center}.main-nav li a{height:100%}

/* ===== All topics directory page ===== */
.topics-hero{height:212px;position:relative;overflow:hidden;background:linear-gradient(90deg,#f4f8fc 0%,rgba(245,249,253,.98) 34%,rgba(245,249,253,.70) 53%,rgba(245,249,253,.05) 78%),url('../images/hero-study.jpg') right 46%/auto 155% no-repeat,#f4f8fc;border-bottom:1px solid #edf1f6}
.topics-hero-inner{max-width:1390px;height:100%;margin:auto;padding:22px 24px;position:relative;z-index:1}.topics-breadcrumb{display:flex;align-items:center;gap:12px;font-size:12px;color:#24466e}.topics-breadcrumb a{color:#24466e;text-decoration:none}.topics-breadcrumb span:nth-child(2){color:#8293a8;font-size:19px}.topics-hero-title{display:flex;align-items:center;gap:24px;margin-top:28px}.topics-hero-icon{width:72px;height:72px;flex:0 0 72px;border-radius:22px;background:#f03d43;color:#fff;display:grid;place-items:center;font-size:38px;box-shadow:0 8px 20px #ef444433}.topics-hero-title h1{font-size:42px;line-height:1.1;letter-spacing:-1px;color:#142541;margin:0 0 8px;font-weight:800}.topics-hero-title p{font-size:15px;line-height:1.7;color:#28486f;margin:0}
.topics-layout{max-width:1390px;margin:0 auto;padding:24px 24px 45px;display:grid;grid-template-columns:248px minmax(0,1fr);column-gap:22px;row-gap:18px;align-items:start}.topics-sidebar{grid-column:1;grid-row:1 / span 2;border:1px solid #edf0f5;border-radius:15px;padding:5px;background:#fff;display:flex;flex-direction:column}.topic-filter{min-height:48px;display:flex;align-items:center;gap:14px;padding:0 12px;border-radius:11px;text-decoration:none;color:#254364;font-size:13px}.topic-filter>span{width:26px;text-align:center;font-size:21px;color:#1762b9;font-weight:700}.topic-filter>b{font-weight:500;flex:1}.topic-filter small{font-size:11px;color:#526b8a}.topic-filter.active{background:#fff1f2;color:#e33d43}.topic-filter.active>span{color:#ed3e43}.topic-filter:hover{background:#f7f9fc}.topics-main{grid-column:2;min-width:0}.topics-list-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px}.topics-list-heading h2{font-size:23px;line-height:1.2;color:#142541;margin:0 0 4px;font-weight:800}.topics-list-heading p{font-size:13px;color:#526b8a;margin:0}.topics-sort select{appearance:none;min-width:112px;border:1px solid #dce5ef;border-radius:9px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237b8da5' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;padding:9px 32px 9px 13px;color:#254364;font:inherit;font-size:12px;cursor:pointer}.all-topic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.all-topic-card{border:1px solid #e9edf4;border-radius:9px;overflow:hidden;background:linear-gradient(180deg,#fff 45%,#f9fbfe 100%);min-width:0;transition:transform .2s,box-shadow .2s}.all-topic-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #18304c12}.all-topic-image{display:block;height:94px;overflow:hidden;background:#edf3fa}.all-topic-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}.all-topic-card:hover .all-topic-image img{transform:scale(1.04)}.all-topic-body{padding:0 17px 12px;position:relative}.all-topic-icon{width:37px;height:37px;margin-top:-17px;position:relative;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:var(--topic-accent);color:#fff;font-size:19px;font-weight:700}.all-topic-body h3{font-size:15px;line-height:1.3;margin:7px 0 5px;color:#172b49}.all-topic-body h3 a{color:inherit;text-decoration:none}.all-topic-body p{height:48px;overflow:hidden;font-size:11.5px;line-height:1.65;color:#536b89;margin:0 0 8px}.all-topic-foot{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#254364}.all-topic-foot a{width:27px;height:27px;border-radius:50%;border:1px solid #e7edf5;background:#fff;color:var(--topic-accent);display:grid;place-items:center;text-decoration:none;font-size:18px}.topic-resources{margin-top:18px}.resource-heading h2{font-size:16px;color:#172b49;margin:0 0 4px}.resource-heading p{font-size:11px;color:#647995;margin:0 0 12px}.resource-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.resource-link{min-height:68px;border-radius:8px;padding:10px 12px;display:flex;align-items:center;gap:12px;text-decoration:none;border:1px solid #f6e4e6;min-width:0}.resource-link>span:first-child{width:35px;height:35px;flex:0 0 35px;border-radius:50%;display:grid;place-items:center;background:#e34b50;color:#fff;font-size:20px}.resource-link>span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}.resource-link b{font-size:11px;color:#172b49}.resource-link small{font-size:9px;color:#647995;line-height:1.4}.resource-link i{font-style:normal;margin-left:auto;color:#e34b50}.resource-dialogue{background:#f3f8ff;border-color:#e4efff}.resource-dialogue>span:first-child{background:#78a9e8}.resource-dialogue i{color:#326bb0}.resource-writing{background:#f3fbf3;border-color:#e2f3e2}.resource-writing>span:first-child{background:#fff;color:#378e58;font-size:25px}.resource-writing i{color:#378e58}.topics-quote{grid-column:2;grid-row:2;min-height:118px;border-radius:10px;overflow:hidden;padding:22px;background:linear-gradient(90deg,rgba(248,250,252,.98),rgba(248,250,252,.78) 56%,rgba(248,250,252,.05)),url('../images/device-banner.jpg') right center/cover no-repeat,#f5f8fc;display:flex;align-items:center}.topics-quote strong{font-family:serif;font-size:19px;color:#172b49}.topics-quote p{font-size:13px;color:#355477;margin:8px 0}.topics-quote small{font-size:11px;color:#71849b}.topics-empty{padding:35px;border:1px dashed #dbe4ef;border-radius:12px;text-align:center;color:#536b89}
@media(max-width:1100px){.topics-layout{grid-template-columns:210px minmax(0,1fr)}.all-topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topics-quote{min-height:110px}}
@media(max-width:760px){.topics-hero{height:auto;min-height:220px;background-size:auto 145px;background-position:right bottom;background-repeat:no-repeat}.topics-hero-inner{padding:17px 17px 24px}.topics-hero-title{gap:13px;margin-top:27px;align-items:flex-start}.topics-hero-icon{width:54px;height:54px;flex-basis:54px;border-radius:16px;font-size:29px}.topics-hero-title h1{font-size:31px}.topics-hero-title p{font-size:12px;line-height:1.6}.topics-layout{display:flex;flex-direction:column;padding:19px 16px 32px;gap:18px}.topics-sidebar{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:5px;gap:2px}.topic-filter{min-height:42px;gap:7px;padding:0 7px;font-size:11px}.topic-filter>span{width:21px;font-size:17px}.topic-filter small{font-size:10px}.topics-main{width:100%}.topics-list-heading h2{font-size:20px}.topics-list-heading p{font-size:11px}.topics-sort select{min-width:95px;font-size:11px;padding:8px 28px 8px 9px}.all-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.all-topic-image{height:83px}.all-topic-body{padding:0 11px 10px}.all-topic-body h3{font-size:13px}.all-topic-body p{font-size:10px;height:47px}.all-topic-foot{font-size:10px}.all-topic-icon{width:33px;height:33px;font-size:16px}.resource-links{grid-template-columns:1fr;gap:8px}.resource-link{min-height:60px}.topics-quote{width:100%;min-height:110px;padding:18px}.topics-quote strong{font-size:17px}}
@media(max-width:380px){.all-topic-grid{gap:8px}.all-topic-body{padding-left:9px;padding-right:9px}.all-topic-image{height:74px}.topics-list-heading{align-items:flex-start}.topics-list-heading h2{font-size:18px}}
.header-tools{gap:18px}.header-search{height:37px;width:268px;border:1px solid #dce5ef;border-radius:22px;display:flex;align-items:center;padding:0 10px 0 13px;background:#fff}.header-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:10px;color:#304764}.header-search input::placeholder{color:#8495ac}.header-search button{border:0;background:transparent;color:#355477;font-size:22px;line-height:1;cursor:pointer;padding:0 1px}.account-link{font-size:25px!important}@media(max-width:760px){.header-search{width:38px;height:36px;border:0;padding:0;justify-content:center}.header-search input{display:none}.header-search button{font-size:24px}.header-tools{gap:10px}.account-link{font-size:23px!important}}

/* ===== Topic detail page ===== */
.topic-detail-hero{height:235px;position:relative;overflow:hidden;background:linear-gradient(90deg,#f4f9ff 0%,rgba(245,250,255,.98) 36%,rgba(245,250,255,.72) 56%,rgba(245,250,255,.06) 82%),var(--topic-hero) right 48%/auto 180% no-repeat,#f2f8ff;border-bottom:1px solid #e8f0f8}.topic-detail-hero-inner{max-width:1450px;height:100%;margin:auto;padding:18px 28px;position:relative;z-index:1}.topic-detail-breadcrumb{display:flex;align-items:center;gap:12px;font-size:12px;color:#214a7c}.topic-detail-breadcrumb a{color:#214a7c;text-decoration:none}.topic-detail-breadcrumb span:last-child{font-weight:600}.topic-detail-heading{display:flex;align-items:center;gap:22px;margin-top:18px;max-width:690px}.topic-detail-symbol{width:77px;height:77px;flex:0 0 77px;border-radius:22px;background:#4a91e6;color:white;display:grid;place-items:center;font-size:42px;box-shadow:0 8px 22px #3b82f633}.topic-detail-heading h1{font-size:44px;line-height:1.08;letter-spacing:-1px;color:#142a49;margin:0 0 7px;font-weight:800}.topic-detail-description{font-size:14px;line-height:1.6;color:#244b7a}.topic-detail-description p{margin:0}.topic-detail-stats{display:flex;align-items:center;gap:24px;margin:19px 0 0 99px;color:#31577f;font-size:11px}.topic-detail-stats span{display:flex;gap:7px;align-items:center}.topic-detail-stats b{font-weight:600}.topic-detail-layout{max-width:1450px;margin:0 auto;padding:10px 28px 42px;display:grid;grid-template-columns:262px minmax(0,1fr) 284px;gap:20px;align-items:start}.topic-detail-left{border:1px solid #e6edf5;border-radius:14px;padding:8px 7px 14px;background:#fff;min-height:650px}.topic-back{height:29px;display:flex;align-items:center;gap:9px;padding:0 12px;color:#28527f;text-decoration:none;font-size:12px}.topic-parent-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:12px;background:#eef6ff;text-decoration:none;color:#15549b;margin:8px 0}.topic-round-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#3f91e5;color:#fff;font-size:21px}.topic-parent-item b{display:block;font-size:14px}.topic-parent-item small,.topic-subnav small{display:block;font-size:10px;color:#6482a6;margin-top:2px}.topic-subnav{display:flex;flex-direction:column;gap:3px}.topic-subnav>a{display:flex;align-items:center;gap:10px;min-height:46px;padding:5px 10px;border-radius:10px;color:#25476f;text-decoration:none;font-size:12px}.topic-subnav>a>i{width:27px;height:27px;border-radius:50%;background:#edf3f9;position:relative;flex:0 0 27px}.topic-subnav>a>i:after{content:"";width:8px;height:8px;border-radius:50%;background:#4b86c9;position:absolute;left:9px;top:9px}.topic-subnav>a>span{flex:1}.topic-subnav>a>b{font-size:17px;font-weight:400;opacity:0}.topic-subnav>a:hover,.topic-subnav>a.is-current{background:#fff1f2;color:#e43c42}.topic-subnav>a.is-current>i{background:#ffe0e1}.topic-subnav>a.is-current>i:after{background:#f0444b}.topic-subnav>a.is-current>b{opacity:1}.topic-travel-note{margin:28px 12px 4px;padding:12px 8px;color:#ef565c;position:relative;min-height:90px}.topic-travel-note>span{font-size:35px;color:#2563a6}.topic-travel-note p{font-family:serif;font-style:italic;font-size:14px;line-height:1.5;margin:0 0 0 48px;transform:rotate(-7deg)}.topic-travel-note small{font-size:25px;margin-left:20px}.topic-detail-main{min-width:0}.topic-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 18px}.topic-section-heading h2{font-size:24px;line-height:1.2;color:#152e50;margin:0 0 4px}.topic-section-heading h2 span{color:#397fc7}.topic-section-heading p{font-size:12px;line-height:1.55;color:#58779b;margin:0;max-width:600px}.topic-pill{white-space:nowrap;border:1px solid #dfe9f4;border-radius:20px;padding:6px 12px;color:#537398;font-size:11px;background:#fff}.topic-featured-card{border:1px solid #e2ebf5;border-radius:10px;padding:16px;display:grid;grid-template-columns:minmax(190px,37%) minmax(0,1fr) 134px;gap:20px;align-items:center;background:#fff}.topic-featured-image{height:210px;position:relative;display:block;overflow:hidden;border-radius:9px;background:#edf4fb}.topic-featured-image img{width:100%;height:100%;object-fit:cover;display:block}.topic-image-badge{position:absolute;top:10px;left:10px;background:#f04c52;color:white;border-radius:20px;padding:5px 9px;font-size:10px}.topic-image-fallback{height:100%;display:grid;place-items:center;font-size:55px;color:#4b91d7}.topic-featured-copy h3{font-size:20px;color:#16365e;margin:0 0 7px}.topic-featured-copy>p{font-size:12px;color:#58779b;line-height:1.6;margin:0 0 10px}.topic-featured-copy ul{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:5px;color:#58799f;font-size:11px}.topic-primary-btn{display:inline-flex;align-items:center;gap:13px;padding:8px 14px;background:#f04449;color:#fff;text-decoration:none;border-radius:22px;font-size:11px;font-weight:600}.topic-speak-card{min-height:105px;border-radius:12px;background:#fff5f5;border:1px solid #ffe5e5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:9px;color:#ed4148}.topic-speak-card>b{font-size:11px}.topic-speak-time{font-size:9px;color:#8395aa;text-align:center}.topic-speak-button{width:30px;height:30px;border:0;border-radius:50%;background:#f05257;color:#fff;cursor:pointer}.topic-speak-card small{font-size:9px;color:#71849c}.topic-lessons-section{margin-top:19px}.topic-lessons-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.topic-lessons-heading h2{font-size:15px;color:#17375f;margin:0}.topic-lessons-heading>span{font-size:10px;border:1px solid #e1eaf3;border-radius:20px;padding:5px 12px;color:#52749a}.topic-lesson-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.topic-lesson-card{border:1px solid #e3ebf5;border-radius:9px;overflow:hidden;background:#fff;min-width:0}.topic-lesson-thumb{height:94px;display:block;position:relative;background:#edf4fb}.topic-lesson-thumb img{width:100%;height:100%;object-fit:cover;display:block}.topic-lesson-thumb>span{height:100%;display:grid;place-items:center;font-size:34px;color:#4a8fd5}.topic-lesson-thumb>b{position:absolute;left:12px;bottom:-13px;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#4d91d9;color:#fff;border:2px solid #fff;font-size:12px}.topic-lesson-body{position:relative;padding:20px 12px 12px;min-height:130px}.topic-lesson-body h3{font-size:12px;color:#173b68;margin:0 0 6px}.topic-lesson-body h3 a{color:inherit;text-decoration:none}.topic-lesson-body p{font-size:10px;line-height:1.55;color:#58789e;margin:0 0 12px;min-height:42px}.topic-lesson-meta{display:flex;gap:9px;flex-wrap:wrap;color:#58799e;font-size:9px}.topic-lesson-arrow{position:absolute;right:9px;bottom:9px;width:25px;height:25px;border-radius:50%;border:1px solid #e4edf6;display:grid;place-items:center;text-decoration:none;color:#2875c2;background:white}.topic-detail-right{display:flex;flex-direction:column;gap:15px;padding-top:5px}.topic-info-panel,.topic-resource-panel{border:1px solid #e3edf8;border-radius:10px;padding:16px;background:#f3f8ff}.topic-info-panel h2,.topic-resource-panel h2{font-size:14px;color:#174c8b;margin:0 0 13px}.topic-info-panel p{font-size:11px;color:#315c8c;display:flex;gap:12px;align-items:center;margin:0 0 12px}.topic-info-panel p:last-child{margin-bottom:0}.topic-info-panel p b{font-weight:500}.topic-resource-panel{background:#fff7f7;border-color:#ffe6e6}.topic-resource-panel h2{color:#e43d43}.topic-resource-panel>a{display:flex;align-items:center;gap:10px;padding:9px;background:#fff;border:1px solid #ffeded;border-radius:10px;margin-top:7px;text-decoration:none;color:#294d78}.topic-resource-panel>a>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#ffe5e6;color:#ed4249;font-size:17px}.topic-resource-panel>a>b{font-size:10px;flex:1}.topic-resource-panel>a small{display:block;font-size:9px;color:#7d91aa;font-weight:400;margin-top:3px}.topic-resource-panel>a>i{font-style:normal;color:#e94a50}.topic-detail-quote{margin:0;min-height:150px;border-radius:10px;padding:17px 16px;background:linear-gradient(90deg,rgba(247,250,255,.97),rgba(247,250,255,.76)),url('../images/device-banner.jpg') right bottom/cover no-repeat;color:#234d7b}.topic-detail-quote strong{font-family:Georgia,serif;font-size:38px;line-height:.7;color:#f07883}.topic-detail-quote p{font-family:serif;font-style:italic;font-size:13px;line-height:1.5;margin:3px 0 10px}.topic-detail-quote small{font-size:9px;color:#6684a5}.topic-empty-state{border:1px dashed #dbe7f3;border-radius:12px;padding:35px;text-align:center;color:#58779b}.topic-empty-state h2{color:#17375f}
@media(max-width:1150px){.topic-detail-layout{grid-template-columns:220px minmax(0,1fr)}.topic-detail-right{grid-column:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:0}.topic-detail-quote{grid-column:1/-1}.topic-lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-featured-card{grid-template-columns:minmax(180px,38%) minmax(0,1fr)}.topic-speak-card{grid-column:2;flex-direction:row;min-height:auto;justify-content:flex-start}}
@media(max-width:760px){.topic-detail-hero{height:auto;min-height:245px;background-size:auto 155px;background-position:right bottom;background-repeat:no-repeat}.topic-detail-hero-inner{padding:14px 16px 17px}.topic-detail-heading{gap:12px;margin-top:22px;align-items:flex-start}.topic-detail-symbol{width:55px;height:55px;flex-basis:55px;border-radius:16px;font-size:29px}.topic-detail-heading h1{font-size:32px}.topic-detail-description{font-size:11px;max-width:calc(100vw - 100px)}.topic-detail-stats{margin:18px 0 0;gap:10px 15px;flex-wrap:wrap;font-size:10px;max-width:320px}.topic-detail-layout{display:flex;flex-direction:column;padding:12px 14px 30px;gap:16px}.topic-detail-left{width:100%;min-height:0}.topic-subnav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.topic-subnav>a{font-size:10px;min-height:43px;padding:4px 6px;gap:6px}.topic-subnav>a>i{width:22px;height:22px;flex-basis:22px}.topic-subnav>a>i:after{left:7px;top:7px}.topic-travel-note{display:none}.topic-detail-main,.topic-detail-right{width:100%}.topic-section-heading{align-items:flex-start;margin:0 0 12px}.topic-section-heading h2{font-size:19px}.topic-section-heading p{font-size:10px}.topic-pill{font-size:9px;padding:5px 8px}.topic-featured-card{grid-template-columns:1fr;padding:10px;gap:12px}.topic-featured-image{height:175px}.topic-featured-copy h3{font-size:17px}.topic-featured-copy>p{font-size:11px}.topic-speak-card{grid-column:auto;justify-content:center;min-height:60px}.topic-lessons-heading h2{font-size:13px}.topic-lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.topic-lesson-thumb{height:80px}.topic-lesson-body{padding:18px 9px 11px;min-height:140px}.topic-lesson-body h3{font-size:11px}.topic-lesson-body p{font-size:9px;min-height:47px}.topic-lesson-meta{gap:5px;font-size:8px}.topic-detail-right{display:flex;gap:10px}.topic-info-panel,.topic-resource-panel{padding:13px}.topic-detail-quote{min-height:115px}}
@media(max-width:380px){.topic-detail-stats{gap:8px 10px}.topic-lesson-grid{gap:7px}.topic-lesson-body{padding-left:8px;padding-right:8px}}

/* Vocabulary archive page */
.vocab-archive-hero{min-height:218px;background:linear-gradient(90deg,rgba(246,251,255,.98) 0%,rgba(246,251,255,.94) 38%,rgba(246,251,255,.25) 72%),url('../images/hero-study.jpg') center 48%/cover no-repeat;border-bottom:1px solid #e7eff8}
.vocab-archive-hero-inner{max-width:1390px;margin:auto;padding:22px 28px 24px}.vocab-breadcrumb{display:flex;align-items:center;gap:10px;color:#6280a2;font-size:12px}.vocab-breadcrumb a{color:#365b86;text-decoration:none}.vocab-breadcrumb b{color:#17375f;font-weight:600}.vocab-hero-copy{display:flex;align-items:center;gap:20px;margin-top:28px}.vocab-hero-icon{width:68px;height:68px;flex:0 0 68px;border-radius:21px;background:linear-gradient(145deg,#ff5b60,#ed303a);display:grid;place-items:center;color:#fff;font-size:36px;box-shadow:0 8px 20px #f0444930}.vocab-hero-copy h1{font-size:clamp(27px,3vw,39px);line-height:1.15;color:#152e50;margin:0 0 7px}.vocab-hero-copy p{font-size:14px;color:#3e628b;margin:0;max-width:680px}.vocab-hero-stats{display:flex;gap:25px;flex-wrap:wrap;margin-top:17px;color:#4e6e92;font-size:12px}.vocab-hero-stats b{color:#173b67}.vocab-archive-layout{max-width:1450px;margin:0 auto;padding:24px 28px 46px;display:grid;grid-template-columns:230px minmax(0,1fr) 220px;gap:20px;align-items:start}.vocab-filter-panel{border:1px solid #e6edf5;border-radius:15px;padding:15px 12px;background:#fff}.vocab-filter-panel h2{font-size:15px;color:#18395f;margin:0 0 13px;padding:0 5px}.vocab-filter-all,.vocab-topic-filter>a{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;text-decoration:none;color:#315477;font-size:12px}.vocab-filter-all{justify-content:space-between;background:#f7faff;margin-bottom:7px}.vocab-filter-all b,.vocab-topic-filter small{font-size:10px;color:#6b88a8;font-weight:500}.vocab-filter-all.is-active,.vocab-topic-filter>a.is-active{background:#fff1f2;color:#ed3f46}.vocab-topic-filter{display:flex;flex-direction:column;gap:3px}.vocab-topic-filter>a>span:nth-child(2){flex:1}.vocab-filter-dot{width:24px;height:24px;border-radius:50%;background:#edf4fb;position:relative;flex:0 0 24px}.vocab-filter-dot:after{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:#4389d0;left:8px;top:8px}.vocab-topic-filter>a.is-active .vocab-filter-dot{background:#ffe0e2}.vocab-topic-filter>a.is-active .vocab-filter-dot:after{background:#f04449}.vocab-filter-tip{margin:22px 5px 3px;padding:14px 12px;border-radius:12px;background:linear-gradient(145deg,#fff8f7,#f5f9ff);color:#e64b50}.vocab-filter-tip strong{font-family:serif;font-size:16px}.vocab-filter-tip p{font-size:11px;line-height:1.6;color:#627e9f;margin:8px 0}.vocab-filter-tip span{font-size:22px}.vocab-archive-main{min-width:0}.vocab-list-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:0 0 16px}.vocab-list-heading h2{font-size:23px;color:#152e50;margin:0 0 4px}.vocab-list-heading p{font-size:12px;color:#65809f;margin:0}.vocab-result-count{white-space:nowrap;border:1px solid #e1eaf4;border-radius:20px;padding:7px 12px;color:#64809f;font-size:11px}.vocab-toolbar{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #e6edf5;border-radius:12px;background:#fff;margin-bottom:16px}.vocab-search-field{height:38px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid #e3ebf4;border-radius:9px;flex:1;min-width:100px;color:#6484a8}.vocab-search-field input{border:0;outline:0;width:100%;min-width:0;color:#27496f;font-size:12px;background:transparent}.vocab-sort-field{display:flex;align-items:center;gap:7px;color:#6b84a2;font-size:11px;white-space:nowrap}.vocab-sort-field select{border:1px solid #e3ebf4;border-radius:8px;padding:9px 24px 9px 9px;color:#365b83;background:#fff;font-size:11px}.vocab-search-submit{border:0;border-radius:9px;background:#f04449;color:#fff;padding:10px 14px;font-size:11px;cursor:pointer}.vocab-pack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.vocab-pack-card{border:1px solid #e4edf6;border-radius:12px;overflow:hidden;background:#fff;transition:transform .18s,box-shadow .18s;min-width:0}.vocab-pack-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #234b7414}.vocab-pack-thumb{height:142px;display:block;position:relative;overflow:hidden;background:linear-gradient(135deg,#edf6ff,#fff0f0)}.vocab-pack-thumb img{width:100%;height:100%;object-fit:cover;display:block}.vocab-pack-placeholder{height:100%;display:grid;place-items:center;font-size:54px;color:#3d79b8}.vocab-pack-category{position:absolute;left:10px;bottom:10px;padding:5px 10px;border-radius:20px;background:#ffffffed;color:#315d8c;font-size:10px}.vocab-pack-content{padding:12px 13px 11px}.vocab-pack-meta{display:flex;gap:12px;color:#7a91aa;font-size:10px;margin-bottom:7px}.vocab-pack-content h3{font-size:15px;line-height:1.35;color:#18395f;margin:0 0 6px}.vocab-pack-content h3 a{color:inherit;text-decoration:none}.vocab-pack-content>p{font-size:11px;line-height:1.6;color:#65809f;margin:0;min-height:36px}.vocab-pack-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:9px;border-top:1px solid #eff3f8;color:#6380a1;font-size:10px}.vocab-pack-footer>a{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;border:1px solid #e2ebf5;color:#2876c2;text-decoration:none;font-size:16px}.vocab-pagination{margin:22px 0}.vocab-pagination ul{display:flex;justify-content:center;gap:7px;list-style:none;padding:0;margin:0}.vocab-pagination a,.vocab-pagination span{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border:1px solid #e4edf6;border-radius:9px;text-decoration:none;color:#42658d;font-size:12px}.vocab-pagination .current{background:#f04449;border-color:#f04449;color:white}.vocab-empty{padding:45px 20px;border:1px dashed #dbe7f3;border-radius:14px;text-align:center;color:#6883a1}.vocab-empty>span{font-size:42px;color:#4c8dce}.vocab-empty h3{font-size:18px;color:#1b3c64;margin:8px 0}.vocab-empty p{font-size:12px}.vocab-empty a{display:inline-block;background:#f04449;color:#fff;padding:9px 14px;border-radius:20px;text-decoration:none;font-size:11px}.vocab-archive-aside{display:flex;flex-direction:column;gap:13px;padding-top:44px}.vocab-aside-blue,.vocab-aside-red{padding:17px;border-radius:13px;border:1px solid #e4edf7;background:linear-gradient(145deg,#f1f7ff,#fff)}.vocab-aside-blue>span{font-size:24px;color:#4386ce}.vocab-aside-blue h3{font-size:15px;color:#1d4776;margin:7px 0}.vocab-aside-blue p{font-size:11px;line-height:1.6;color:#6682a2}.vocab-aside-blue a{font-size:11px;color:#e94349;text-decoration:none}.vocab-aside-red{background:linear-gradient(145deg,#fff4f4,#fff);border-color:#ffe7e7}.vocab-aside-red>b{font-size:20px;color:#e94850}.vocab-aside-red p{font-family:serif;font-size:17px;color:#234b79;margin:10px 0}.vocab-aside-red small{font-size:10px;line-height:1.5;color:#7189a5}
@media(max-width:1150px){.vocab-archive-layout{grid-template-columns:205px minmax(0,1fr)}.vocab-archive-aside{grid-column:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:0}.vocab-pack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.vocab-archive-hero{min-height:225px;background-position:65% bottom;background-size:auto 170px}.vocab-archive-hero-inner{padding:14px 16px 18px}.vocab-hero-copy{gap:12px;margin-top:22px;align-items:flex-start}.vocab-hero-icon{width:53px;height:53px;flex-basis:53px;border-radius:16px;font-size:27px}.vocab-hero-copy h1{font-size:25px}.vocab-hero-copy p{font-size:11px;max-width:270px}.vocab-hero-stats{gap:8px 14px;font-size:9px;margin-top:12px}.vocab-archive-layout{display:flex;flex-direction:column;padding:15px 14px 30px;gap:14px}.vocab-filter-panel,.vocab-archive-main,.vocab-archive-aside{width:100%}.vocab-filter-panel{padding:11px}.vocab-filter-panel h2{font-size:13px;margin-bottom:8px}.vocab-topic-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.vocab-topic-filter>a{padding:7px 5px;gap:6px;font-size:10px}.vocab-filter-tip{display:none}.vocab-list-heading{align-items:flex-start}.vocab-list-heading h2{font-size:19px}.vocab-list-heading p{font-size:10px;max-width:250px}.vocab-result-count{font-size:9px;padding:6px 8px}.vocab-toolbar{padding:8px;gap:7px;flex-wrap:wrap}.vocab-search-field{flex-basis:100%;height:36px}.vocab-sort-field{flex:1;font-size:10px}.vocab-sort-field select{font-size:10px;padding:8px}.vocab-search-submit{padding:9px 12px}.vocab-pack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vocab-pack-thumb{height:95px}.vocab-pack-content{padding:9px}.vocab-pack-content h3{font-size:12px}.vocab-pack-content>p{font-size:9px;min-height:42px}.vocab-pack-meta{font-size:8px;gap:6px;flex-wrap:wrap}.vocab-pack-footer{font-size:9px}.vocab-archive-aside{display:flex;gap:9px}.vocab-aside-blue,.vocab-aside-red{padding:13px}}


/* Individual vocabulary detail */
.word-detail-wrap,.word-pack-wrap{max-width:1320px;margin:0 auto;padding:24px 28px 58px;color:#193653}.word-breadcrumb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:#8aa0b7;margin:0 0 20px}.word-breadcrumb a{color:#55799e;text-decoration:none}.word-breadcrumb b{color:#274a6d;font-weight:600}.word-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:22px;align-items:start}.word-detail-main{min-width:0;display:grid;gap:17px}.word-hero-card{position:relative;overflow:hidden;min-height:250px;border:1px solid #e6edf5;border-radius:20px;background:linear-gradient(110deg,#fff 0%,#fff 55%,#fff4eb 100%);padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px}.word-kicker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:13px}.word-kicker span{font-size:10px;color:#a45d24;background:#fff0e3;border-radius:20px;padding:5px 10px}.word-hero-copy h1{font-size:clamp(54px,7vw,78px);line-height:1.05;margin:0;color:#173957;font-weight:650}.word-pinyin{font-size:22px;color:#e77924;letter-spacing:.04em;margin:7px 0 0}.word-meaning{font-size:17px;color:#496987;margin:1px 0 17px}.word-audio-button{border:0;border-radius:9px;background:#e97825;color:white;padding:10px 15px;font-size:12px;cursor:pointer}.word-audio-button span{margin-right:6px}.word-hero-art{width:220px;height:190px;flex:0 0 220px;position:relative;border-radius:18px;background:linear-gradient(145deg,#ffe8d4,#fff6eb);display:grid;place-items:center;overflow:hidden}.word-art-sun{position:absolute;width:115px;height:115px;border-radius:50%;background:#ffd4a8;right:24px;top:15px}.word-art-character{position:relative;z-index:1;font-size:88px;color:#c66a26;font-family:serif;text-shadow:2px 4px 0 #fff8}.word-hero-art small{position:absolute;bottom:12px;letter-spacing:.18em;font-size:9px;color:#c18456}.word-section{background:#fff;border:1px solid #e7edf4;border-radius:16px;padding:22px 24px}.word-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.word-section-heading h2{font-size:19px;color:#1c3c5b;margin:3px 0 0}.word-section-eyebrow{font-size:9px;letter-spacing:.13em;color:#e17b31;font-weight:750}.word-section-icon{font-size:21px;color:#e17b31}.pronunciation-content{display:flex;align-items:center;gap:18px;padding:15px;background:#fff8f1;border-radius:12px}.pronunciation-syllable{min-width:120px}.pronunciation-syllable strong{display:block;font-size:25px;color:#d96f24}.pronunciation-syllable span,.pronunciation-note p{font-size:11px;color:#8195a9}.pronunciation-note{flex:1;border-left:1px solid #f0d9c5;padding-left:18px}.pronunciation-note b{font-size:12px;color:#355574}.pronunciation-note p{margin:4px 0 0;line-height:1.6}.round-audio{width:40px;height:40px;border:0;border-radius:50%;background:#e97825;color:#fff;cursor:pointer}.word-explanation{font-size:13px;line-height:1.85;color:#5e7891;margin:0 0 14px}.word-meaning-highlight{display:flex;align-items:center;gap:13px;padding:12px 15px;border-radius:10px;background:#f5f9fd}.word-meaning-highlight span{font-family:serif;font-size:17px;color:#4385bd}.word-meaning-highlight strong{font-size:13px;color:#284d70}.word-example{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;border:1px solid #edf1f5;border-radius:11px;background:#fbfdff}.word-example strong{display:block;font-size:20px;color:#23496d}.word-example span{display:block;font-size:11px;color:#e17b31;margin-top:3px}.word-example p{font-size:12px;color:#607b95;margin:5px 0 0}.word-example button{border:1px solid #e6edf4;background:#fff;color:#df792c;border-radius:50%;width:35px;height:35px;cursor:pointer}.word-muted-note{font-size:11px;color:#8799aa;margin:10px 0 0}.writing-caption{font-size:10px;color:#8aa0b5}.writing-practice{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center}.writing-character{height:150px;border:1px dashed #cbd9e7;border-radius:12px;display:grid;place-items:center;font-size:95px;font-family:serif;color:#a9bfd3;background:linear-gradient(45deg,transparent 49.7%,#e7eef5 50%,transparent 50.3%),linear-gradient(-45deg,transparent 49.7%,#e7eef5 50%,transparent 50.3%),#fbfdff}.writing-guide b{font-size:12px;color:#315675}.writing-guide p{font-size:11px;line-height:1.6;color:#7b91a7}.writing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.writing-grid span{aspect-ratio:1;border:1px dashed #cfdae5;border-radius:7px;background:linear-gradient(90deg,transparent 49%,#e7edf3 50%,transparent 51%),linear-gradient(transparent 49%,#e7edf3 50%,transparent 51%),#fff}.related-word-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.related-word{display:flex;flex-direction:column;padding:12px;border:1px solid #e9eff5;border-radius:10px;text-decoration:none;background:#fcfdff}.related-word strong{font-size:21px;color:#234b70}.related-word span{font-size:10px;color:#e17b31}.related-word small{font-size:10px;color:#8296a9;margin-top:3px}.word-prev-next{display:flex;justify-content:space-between;gap:12px}.word-prev-next a{min-width:140px;padding:12px 15px;border:1px solid #e5edf5;border-radius:11px;text-decoration:none;color:#345777;display:flex;flex-direction:column}.word-prev-next a.next{text-align:right;margin-left:auto}.word-prev-next small{font-size:10px;color:#91a3b5}.word-prev-next b{font-size:15px;margin-top:3px}.word-detail-aside{display:grid;gap:13px;position:sticky;top:20px}.word-aside-card{background:#fff;border:1px solid #e7edf4;border-radius:15px;padding:17px}.word-aside-label{font-size:9px;letter-spacing:.12em;color:#8da1b4;font-weight:750}.word-progress-card h3{font-size:17px;color:#244866;margin:8px 0 13px}.word-progress-track{height:7px;border-radius:10px;background:#edf2f6;overflow:hidden}.word-progress-track span{height:100%;display:block;background:#e98032;border-radius:10px}.word-progress-card p{font-size:10px;color:#8498ab;margin:8px 0 14px}.word-progress-card>a{display:flex;justify-content:space-between;font-size:11px;color:#d9782c;text-decoration:none}.word-aside-list{display:grid;gap:5px;margin-top:12px}.word-aside-list a{display:flex;align-items:center;gap:10px;padding:9px;border-radius:8px;text-decoration:none;color:#456784}.word-aside-list a.is-current{background:#fff2e7;color:#cf6e27}.word-aside-list b{font-size:18px;min-width:34px}.word-aside-list span{font-size:10px;color:#8296a9}.word-aside-quote{padding:19px;border-radius:14px;background:linear-gradient(145deg,#f0f7ff,#fff);text-align:center}.word-aside-quote>span{font-family:serif;font-size:23px;color:#4c82b4}.word-aside-quote p{font-size:13px;color:#315779;margin:6px 0}.word-aside-quote small{font-size:10px;color:#8aa0b5}.word-pack-heading{padding:24px 28px;border-radius:17px;background:#fff7ef;border:1px solid #f5e5d6;margin-bottom:18px}.word-pack-heading h1{font-size:32px;color:#1d3d5b;margin:5px 0}.word-pack-heading p{font-size:12px;color:#7b91a6}.word-pack-description{font-size:13px;color:#66819a}.word-pack-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.word-pack-item{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid #e6edf4;border-radius:13px;background:#fff;text-decoration:none}.word-pack-item strong{font-size:25px;color:#254b6d}.word-pack-item span{font-size:11px;color:#df792c}.word-pack-item small{font-size:11px;color:#7189a1}.word-pack-item em{font-style:normal;font-size:10px;color:#d9782c;margin-top:7px}
@media(max-width:1000px){.word-detail-grid{grid-template-columns:minmax(0,1fr) 235px;gap:14px}.word-pack-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.word-detail-wrap,.word-pack-wrap{padding:16px 14px 35px}.word-detail-grid{display:flex;flex-direction:column}.word-detail-main,.word-detail-aside{width:100%}.word-detail-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.word-aside-quote{grid-column:1/-1}.word-hero-card{min-height:195px;padding:20px;gap:8px}.word-hero-copy h1{font-size:54px}.word-pinyin{font-size:18px}.word-meaning{font-size:14px}.word-hero-art{width:125px;height:135px;flex-basis:125px}.word-art-character{font-size:58px}.word-section{padding:17px}.word-section-heading h2{font-size:17px}.pronunciation-content{gap:10px;padding:11px}.pronunciation-syllable{min-width:85px}.pronunciation-syllable strong{font-size:19px}.pronunciation-note{padding-left:10px}.pronunciation-note p{font-size:10px}.writing-practice{grid-template-columns:110px 1fr;gap:12px}.writing-character{height:110px;font-size:70px}.writing-grid{gap:4px}.related-word-list{grid-template-columns:repeat(2,minmax(0,1fr))}.word-pack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.word-pack-heading{padding:18px}.word-pack-heading h1{font-size:25px}}
@media(max-width:420px){.word-hero-art{width:92px;height:110px;flex-basis:92px}.word-hero-copy h1{font-size:46px}.word-kicker span{font-size:8px;padding:4px 7px}.word-detail-aside{grid-template-columns:1fr}.word-aside-quote{grid-column:auto}.word-prev-next a{min-width:0;flex:1}.writing-practice{grid-template-columns:1fr}.writing-character{height:135px}.writing-grid{grid-template-columns:repeat(4,1fr)}}

/* TTOnline — handwriting practice page */
.writing-page{max-width:1240px;margin:0 auto;padding:26px 24px 72px;color:#18243a}.writing-breadcrumb{display:flex;gap:10px;align-items:center;color:#8b96a8;font-size:13px;margin:0 0 22px}.writing-breadcrumb a{color:#64748b;text-decoration:none}.writing-breadcrumb b{color:#27364b}.writing-page-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;min-height:205px;padding:34px 44px;border-radius:22px;background:linear-gradient(110deg,#fff7ed,#fffaf4 62%,#fff1e5);margin-bottom:26px}.writing-eyebrow,.writing-panel-title small,.writing-board-heading small,.writing-bottom-grid small,.writing-tips>small,.writing-word-footer>div>span{font-size:10px;letter-spacing:1.45px;font-weight:800;color:#e97825}.writing-page-hero h1{font-size:34px;line-height:1.2;margin:10px 0;color:#17243a}.writing-page-hero p{margin:0;color:#69778a;font-size:15px}.writing-hero-meta{display:flex;gap:22px;margin-top:23px;color:#6e7b8c;font-size:12px}.writing-hero-art{width:150px;height:140px;display:grid;place-items:center;position:relative;color:#e97825}.writing-hero-art span{font-size:104px;font-family:serif;opacity:.85}.writing-hero-art i{position:absolute;right:0;bottom:0;font-size:36px;font-style:normal;color:#f3b36f}.writing-workspace{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}.writing-side-panel,.writing-main-panel{display:grid;gap:18px}.writing-panel-card{background:#fff;border:1px solid #e9edf2;border-radius:17px;padding:22px;box-shadow:0 5px 18px rgba(30,48,75,.035)}.writing-panel-title,.writing-board-heading{display:flex;justify-content:space-between;align-items:center}.writing-panel-title h2,.writing-board-heading h2{font-size:18px;margin:5px 0 0;color:#1b2940}.writing-panel-title>span{width:42px;height:42px;border-radius:12px;background:#fff3e8;color:#e97825;display:grid;place-items:center;font-size:24px}.writing-search-label{display:block;font-size:12px;font-weight:700;margin:22px 0 8px;color:#536176}.writing-character-search{display:flex;gap:8px}.writing-character-search input{width:0;flex:1;min-width:0;border:1px solid #e3e8ef;border-radius:10px;padding:10px 12px;font-size:22px;text-align:center;color:#23334a}.writing-character-search button,.writing-primary-btn{border:0;border-radius:10px;background:#e97825;color:white;font-weight:700;padding:0 17px;cursor:pointer}.writing-input-hint{font-size:11px;color:#9aa4b2;margin:7px 0 15px}.writing-character-info{display:flex;align-items:center;gap:14px;padding:14px;background:#f8fafc;border-radius:12px}.writing-character-info>strong{font-size:48px;line-height:1;color:#25334a}.writing-character-info div{display:grid;gap:4px}.writing-character-info b{font-size:14px;color:#e97825}.writing-character-info span{font-size:12px;color:#6c7889}.writing-presets{margin-top:20px}.writing-presets>b{font-size:12px;color:#536176}.writing-preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.writing-preset{border:1px solid #edf0f4;background:#fff;border-radius:10px;padding:8px 3px;display:grid;gap:3px;cursor:pointer;color:#28364b}.writing-preset strong{font-size:22px;font-weight:500}.writing-preset small{font-size:9px;color:#8b96a8}.writing-preset.is-active{border-color:#f0a66e;background:#fff8f2;color:#df701f}.writing-tips{background:#fbfcfe}.writing-tips h3{font-size:15px;margin:7px 0 10px}.writing-tips ol{padding-left:18px;margin:0;color:#718096;font-size:12px;line-height:2}.writing-board-heading{margin-bottom:18px}.writing-board-heading h2 span{color:#e97825}.writing-board-tools{display:flex;gap:7px}.writing-board-tools button,.writing-secondary-btn{background:#fff;border:1px solid #e5eaf0;border-radius:9px;padding:9px 12px;color:#526176;font-size:12px;cursor:pointer}.writing-board-wrap{position:relative;width:min(100%,490px);aspect-ratio:1;margin:0 auto;background-color:#fffdf9;border:1px solid #f0e8dd;border-radius:13px;overflow:hidden;touch-action:none}.writing-grid-background{position:absolute;inset:0;background-image:linear-gradient(to right,transparent calc(50% - .5px),#eadfd2 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),#eadfd2 50%,transparent calc(50% + .5px));pointer-events:none}.writing-grid-background:before,.writing-grid-background:after{content:"";position:absolute;inset:0;pointer-events:none}.writing-grid-background:before{background:linear-gradient(45deg,transparent calc(50% - .5px),#f0e8df 50%,transparent calc(50% + .5px))}.writing-grid-background:after{border:1px dashed #eadfd2;inset:12px}.writing-guide-char{position:absolute;inset:0;display:grid;place-items:center;font-family:"Noto Serif CJK SC","SimSun",serif;font-size:clamp(190px,28vw,300px);line-height:1;color:#e9e1d8;opacity:.72;user-select:none}.writing-board-wrap canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.writing-board-footer{display:flex;justify-content:space-between;color:#8994a3;font-size:11px;margin-top:13px}.writing-board-footer>span:first-child{display:flex;align-items:center;gap:7px}.writing-board-footer i{width:7px;height:7px;border-radius:50%;background:#e97825}.writing-board-actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.writing-secondary-btn{padding:11px 15px}.writing-primary-btn{padding:11px 18px}.writing-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.writing-progress-card h3{font-size:15px;margin:5px 0}.writing-progress-number{display:flex;align-items:baseline;gap:6px;margin:12px 0}.writing-progress-number strong{font-size:29px;color:#e97825}.writing-progress-number span,.writing-progress-card p{font-size:11px;color:#8994a3}.writing-progress-track{height:6px;background:#f1f3f6;border-radius:10px;overflow:hidden}.writing-progress-track span{display:block;width:0;height:100%;background:#e97825;border-radius:10px;transition:width .25s}.writing-reminder-card{display:flex;align-items:center;gap:14px;background:#fff8f1}.writing-reminder-card>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#ffead8;color:#e97825;font-size:22px}.writing-reminder-card b{font-size:14px}.writing-reminder-card p{font-size:11px;color:#7e8998;line-height:1.6;margin:5px 0 0}.writing-word-footer{margin-top:25px;padding:25px 28px;border-radius:16px;background:#f8fafc;display:flex;justify-content:space-between;align-items:center;gap:20px}.writing-word-footer h2{font-size:18px;margin:6px 0}.writing-word-footer p{font-size:12px;color:#7d8998;margin:0}.writing-word-footer>a{white-space:nowrap;color:#e97825;text-decoration:none;font-size:13px;font-weight:700}.writing-word-footer>a b{margin-left:8px}
@media(max-width:850px){.writing-workspace{grid-template-columns:1fr}.writing-side-panel{grid-template-columns:1fr 1fr}.writing-hero-art{width:100px}.writing-hero-art span{font-size:78px}}
@media(max-width:600px){.writing-page{padding:18px 14px 48px}.writing-page-hero{padding:25px 22px;min-height:0}.writing-page-hero h1{font-size:27px}.writing-page-hero p{font-size:13px;max-width:270px}.writing-hero-art{width:65px}.writing-hero-art span{font-size:60px}.writing-hero-art i{font-size:24px}.writing-hero-meta{flex-wrap:wrap;gap:8px 14px;font-size:10px}.writing-side-panel{grid-template-columns:1fr}.writing-panel-card{padding:17px}.writing-board-heading{align-items:flex-start;gap:10px}.writing-board-heading h2{font-size:15px}.writing-board-tools button{padding:8px}.writing-board-wrap{width:100%}.writing-guide-char{font-size:220px}.writing-bottom-grid{grid-template-columns:1fr}.writing-word-footer{align-items:flex-start;flex-direction:column;padding:21px}}

/* TTOnline handwriting topic directory + topic detail */
.tw-page{max-width:1240px;margin:0 auto;padding:25px 24px 70px;color:#1d2d43}.tw-breadcrumb{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#94a0af;font-size:12px;margin:0 0 20px}.tw-breadcrumb a{color:#71849b;text-decoration:none}.tw-breadcrumb b{color:#30445d}.tw-topic-head{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:210px;padding:34px 42px;border-radius:20px;background:linear-gradient(110deg,#fff7ed 0%,#fffaf5 64%,#fff0e2 100%);margin-bottom:28px;overflow:hidden}.tw-eyebrow{display:block;color:#e97825;font-size:10px;font-weight:800;letter-spacing:1.5px}.tw-topic-head h1{font-size:32px;line-height:1.2;margin:9px 0;color:#172b45}.tw-topic-head p{max-width:680px;color:#6f7e90;font-size:14px;line-height:1.7;margin:0}.tw-topic-meta{display:flex;flex-wrap:wrap;gap:18px;margin-top:20px;color:#7b8796;font-size:11px}.tw-topic-symbol{width:150px;height:150px;flex:0 0 150px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.68);color:#e97825;font-family:serif;font-size:92px;box-shadow:inset 0 0 0 1px rgba(233,120,37,.08)}.tw-index-heading,.tw-word-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:28px 0 17px}.tw-index-heading h2,.tw-word-toolbar h2{font-size:20px;margin:0 0 5px;color:#20334c}.tw-index-heading p,.tw-word-toolbar p{font-size:12px;color:#8b97a6;margin:0}.tw-filter{display:flex;align-items:center;gap:9px;width:min(340px,100%);height:42px;padding:0 13px;border:1px solid #e5eaf0;border-radius:10px;background:#fff;color:#91a0b1}.tw-filter input{border:0;outline:0;min-width:0;flex:1;color:#30445d;font:inherit;font-size:12px;background:transparent}.tw-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tw-topic-card{display:flex;align-items:center;gap:14px;min-height:106px;padding:17px;border:1px solid #e8edf3;border-radius:14px;background:#fff;text-decoration:none;color:inherit;transition:transform .18s,border-color .18s,box-shadow .18s}.tw-topic-card:hover{transform:translateY(-2px);border-color:#f0c29f;box-shadow:0 8px 22px rgba(38,55,77,.06)}.tw-topic-card-icon{width:53px;height:53px;flex:0 0 53px;display:grid;place-items:center;border-radius:13px;background:#fff4e9;color:#e97825;font-family:serif;font-size:31px}.tw-topic-card>div{min-width:0;flex:1}.tw-topic-card small{font-size:10px;color:#d77a34}.tw-topic-card h3{font-size:15px;color:#243a55;margin:4px 0}.tw-topic-card p{font-size:11px;color:#8a97a6;margin:0}.tw-topic-card>b{font-size:19px;color:#e97825;font-weight:500}.tw-pagination{margin:28px 0 0}.tw-pagination ul{display:flex;justify-content:center;gap:7px;list-style:none;padding:0;margin:0}.tw-pagination a,.tw-pagination span{display:grid;place-items:center;min-width:34px;height:34px;padding:0 10px;border:1px solid #e8edf3;border-radius:8px;color:#66788d;text-decoration:none;font-size:12px}.tw-pagination .current{background:#e97825;color:white;border-color:#e97825}.tw-character-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.tw-character-card{position:relative;min-height:125px;padding:13px 10px 12px;border:1px solid #e7edf3;border-radius:12px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:#263b54;transition:border-color .18s,background .18s,transform .18s}.tw-character-card:hover{border-color:#efb17e;background:#fffaf5;transform:translateY(-2px)}.tw-character-card strong{font-family:"Noto Serif CJK SC","SimSun",serif;font-size:35px;line-height:1.2;font-weight:500;color:#1d3551}.tw-character-card span{font-size:11px;color:#df792e}.tw-character-card small{font-size:10px;color:#8390a0;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tw-character-card i{position:absolute;right:10px;top:8px;font-style:normal;font-size:12px;color:#b6c0cb}.tw-topic-footer{display:flex;justify-content:space-between;align-items:center;margin-top:25px;padding-top:18px;border-top:1px solid #edf0f4;color:#8b97a6;font-size:11px}.tw-topic-footer a,.tw-back{color:#e97825;text-decoration:none;font-weight:700}.tw-empty{padding:45px 20px;text-align:center;border:1px dashed #e3e9ef;border-radius:16px;background:#fbfcfd}.tw-empty h1,.tw-empty h2{font-size:22px;margin:0 0 9px}.tw-empty p{font-size:13px;color:#8290a0}.tw-no-results{text-align:center;padding:25px;color:#8996a5;font-size:13px}.tw-modal{display:none;position:fixed;z-index:99999;inset:0;align-items:center;justify-content:center;padding:22px}.tw-modal.is-open{display:flex}.tw-modal-backdrop{position:absolute;inset:0;background:rgba(15,27,43,.58);backdrop-filter:blur(3px)}.tw-modal-dialog{position:relative;width:min(760px,100%);max-height:calc(100vh - 44px);overflow:auto;border-radius:18px;background:#fff;box-shadow:0 22px 70px rgba(0,0,0,.2)}.tw-modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 25px 15px;border-bottom:1px solid #edf0f4}.tw-modal-head h2{font-size:20px;margin:5px 0;color:#233951}.tw-modal-head p{font-size:11px;color:#8290a0;margin:0}.tw-modal-close{width:34px;height:34px;border:0;border-radius:50%;background:#f3f5f7;color:#65758a;font-size:24px;cursor:pointer}.tw-modal-body{padding:20px 25px 24px}.tw-modal-char-info{display:flex;align-items:center;gap:14px;padding:12px 15px;background:#fff8f1;border-radius:12px}.tw-modal-char-info>strong{font-family:serif;font-size:44px;color:#253c56}.tw-modal-char-info>div{display:grid;gap:4px;flex:1}.tw-modal-char-info b{font-size:13px;color:#e97825}.tw-modal-char-info span{font-size:11px;color:#748397}.tw-sound{border:0;border-radius:8px;background:#e97825;color:#fff;padding:9px 12px;font-size:11px;cursor:pointer}.tw-writer-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:20px;margin-top:18px;align-items:center}.tw-writer-stage{min-width:0}.tw-writer-box{position:relative;width:min(100%,390px);aspect-ratio:1;margin:0 auto;border:1px solid #eee3d7;border-radius:12px;background-color:#fffdf9;background-image:linear-gradient(to right,transparent calc(50% - .5px),#eadfd2 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),#eadfd2 50%,transparent calc(50% + .5px)),linear-gradient(45deg,transparent calc(50% - .5px),#f0e8df 50%,transparent calc(50% + .5px));overflow:hidden}.tw-writer-box svg{width:100%;height:100%;display:block}.tw-writer-fallback{position:absolute;inset:0;display:grid;place-items:center;font-family:serif;font-size:clamp(100px,20vw,230px);color:#e9e1d8;pointer-events:none}.tw-writer-box.is-loaded .tw-writer-fallback{display:none}.tw-writer-stage>p{text-align:center;font-size:10px;color:#8a96a5;margin:10px 0 0}.tw-writer-tools{display:grid;gap:9px}.tw-writer-tools button{border:1px solid #e7ecf1;border-radius:9px;background:#fff;color:#53667d;padding:11px 12px;text-align:left;font-size:11px;cursor:pointer}.tw-writer-tools button:hover{border-color:#efbd98;background:#fff9f4;color:#d9772b}.tw-modal-navigation{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:15px;border-top:1px solid #edf0f4}.tw-modal-navigation button{border:0;background:transparent;color:#e97825;font-size:11px;cursor:pointer}.tw-modal-navigation span{font-size:10px;color:#8b97a6}.tw-detail-page .tw-topic-head{margin-bottom:25px}
@media(max-width:950px){.tw-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-character-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:650px){.tw-page{padding:17px 14px 48px}.tw-topic-head{min-height:0;padding:24px 21px;gap:10px}.tw-topic-head h1{font-size:25px}.tw-topic-head p{font-size:12px}.tw-topic-symbol{width:75px;height:75px;flex-basis:75px;font-size:48px}.tw-topic-meta{gap:8px 13px;font-size:9px}.tw-index-heading,.tw-word-toolbar{align-items:stretch;flex-direction:column}.tw-filter{width:100%}.tw-topic-grid{grid-template-columns:1fr;gap:10px}.tw-topic-card{min-height:86px;padding:12px}.tw-topic-card-icon{width:46px;height:46px;flex-basis:46px}.tw-character-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tw-character-card{min-height:112px}.tw-character-card strong{font-size:31px}.tw-topic-footer{font-size:10px}.tw-modal{padding:10px}.tw-modal-dialog{max-height:calc(100vh - 20px)}.tw-modal-head{padding:17px 17px 12px}.tw-modal-body{padding:15px 16px 18px}.tw-writer-layout{grid-template-columns:1fr;gap:12px}.tw-writer-box{width:min(100%,310px)}.tw-writer-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-writer-tools button{padding:10px 8px;font-size:10px}.tw-modal-char-info{gap:9px}.tw-modal-char-info>strong{font-size:36px}.tw-sound{padding:8px}.tw-topic-footer{align-items:flex-start;gap:12px;flex-direction:column}}


/* Handwriting practice: purpose-built learning flow */
.tw-practice-hero{background:linear-gradient(115deg,#fff7ed,#fffaf6 58%,#fff0e2)}
.tw-practice-overview{display:grid;grid-template-columns:150px minmax(120px,1fr);gap:7px 22px;align-items:center;padding:17px 20px;margin:0 0 27px;border:1px solid #f0e6dc;border-radius:14px;background:#fffdfa}
.tw-practice-overview>div:first-child{grid-row:span 2;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.tw-overview-label{width:100%;font-size:9px;letter-spacing:1px;font-weight:800;color:#a0a8b2}.tw-practice-overview strong{font-size:25px;color:#263b54}.tw-practice-overview small,.tw-practice-overview p{font-size:10px;color:#8491a0;margin:0}.tw-progress-track{height:8px;background:#f2ece5;border-radius:20px;overflow:hidden}.tw-progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#e97825,#f3b16d);border-radius:20px;transition:width .25s}.tw-word-card{min-height:145px}.tw-word-card.is-done{border-color:#b9ddc9;background:#fbfffc}.tw-word-state{font-style:normal;font-size:9px;color:#9aa5b1;margin-top:4px}.tw-word-card.is-done .tw-word-state{color:#278453;font-weight:700}.tw-word-card>i{font-style:normal;position:absolute;right:10px;top:8px;color:#c0c8d1;font-size:13px}.tw-practice-dialog{width:min(880px,100%)}.tw-character-stepper{margin:18px 0 12px;padding:12px 14px;border:1px solid #edf0f4;border-radius:12px;background:#fcfcfd}.tw-character-stepper>span{display:block;font-size:9px;font-weight:800;letter-spacing:1px;color:#98a2af;margin-bottom:9px}.tw-char-tabs{display:flex;flex-wrap:wrap;gap:7px}.tw-char-tabs button{min-width:38px;height:38px;border:1px solid #e4e9ef;border-radius:8px;background:#fff;color:#30445d;font:22px/1 serif;cursor:pointer}.tw-char-tabs button.is-active{border-color:#e97825;background:#fff4e9;color:#d86d1c;box-shadow:0 0 0 2px rgba(233,120,37,.08)}.tw-character-stepper small{display:block;color:#9aa4b0;font-size:10px;margin-top:8px}.tw-practice-modebar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:15px 0 0}.tw-practice-modebar>span{font-size:11px;font-weight:700;color:#52657b}.tw-practice-modebar>div{display:flex;gap:6px}.tw-practice-modebar button{padding:8px 12px;border:1px solid #e7ebf0;border-radius:8px;background:#fff;color:#6c7b8d;font-size:10px;cursor:pointer}.tw-practice-modebar button.is-active{border-color:#e97825;background:#fff5eb;color:#d96e1d;font-weight:700}.tw-writer-layout{grid-template-columns:minmax(0,1fr) 220px}.tw-writer-tools{align-content:start}.tw-tool-tip{padding:12px;border-radius:10px;background:#f7f9fb}.tw-tool-tip b{font-size:11px;color:#344a63}.tw-tool-tip p{font-size:10px;line-height:1.6;color:#8491a0;margin:5px 0 0}.tw-writer-tools .tw-mark-done{background:#eef8f1;border-color:#cfe8d7;color:#267a49;font-weight:700}.tw-writer-tools .tw-mark-done:hover{background:#e4f4e9;border-color:#9bd0ae;color:#1c693c}.tw-modal-navigation button:disabled{opacity:.35;cursor:not-allowed}.tw-modal-char-info>strong{font-size:42px}.tw-writer-box{touch-action:none}
@media(max-width:650px){.tw-practice-overview{grid-template-columns:1fr;gap:8px}.tw-practice-overview>div:first-child{grid-row:auto}.tw-practice-modebar{align-items:flex-start;flex-direction:column}.tw-practice-modebar>div{width:100%}.tw-practice-modebar button{flex:1}.tw-writer-layout{grid-template-columns:1fr}.tw-writer-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-tool-tip{grid-column:1/-1}.tw-char-tabs button{min-width:36px}}


/* ============================================================
   TAP VIET INDEX PAGE — mới theo thiết kế hình
   ============================================================ */

/* Hero banner */
.tw-hero-banner {
  position: relative; overflow: hidden; border-radius: 20px;
  background: linear-gradient(108deg, #e3f0ff 0%, #d8eafe 45%, #c4deff 100%);
  margin-bottom: 26px; display: flex; align-items: stretch; min-height: 195px;
}
.tw-hero-text {
  padding: 34px 42px; flex: 1; position: relative; z-index: 1;
  display: flex; flex-direction: column; justify-content: center;
}
.tw-hero-badge {
  width: 46px; height: 46px; border-radius: 13px;
  background: #e97825; display: grid; place-items: center; font-size: 22px;
  margin-bottom: 14px; flex-shrink: 0; align-self: flex-start;
}
.tw-hero-banner h1 { font-size: 33px; font-weight: 800; color: #1a2c42; margin: 0 0 8px; line-height: 1.2; }
.tw-hero-banner p  { font-size: 14px; color: #4e6882; line-height: 1.7; margin: 0; max-width: 500px; }
.tw-hero-art {
  width: 340px; flex-shrink: 0;
  background: linear-gradient(135deg, #b6d8f8 0%, #a3ccf5 40%, #88baf0 100%);
  display: flex; align-items: flex-end; justify-content: center; overflow: hidden;
}

/* Two-col layout */
.tw-index-layout {
  display: grid; grid-template-columns: 228px 1fr; gap: 22px; align-items: start;
}

/* Sidebar */
.tw-sidebar {
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
  padding: 18px; box-shadow: 0 4px 16px rgba(20,40,70,.06);
}
.tw-sidebar-title { font-size: 13px; font-weight: 700; color: var(--txt); margin-bottom: 11px; }
.tw-cat-list      { display: flex; flex-direction: column; gap: 3px; }
.tw-cat-item {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 9px 10px; border-radius: 9px; font-size: 13px; color: var(--muted);
  text-decoration: none; cursor: pointer; transition: background .15s;
}
.tw-cat-item:hover  { background: #f4f7fb; color: var(--txt); }
.tw-cat-item.active { background: #fff3ed; color: #e97825; font-weight: 600; }
.tw-cat-left  { display: flex; align-items: center; gap: 8px; }
.tw-cat-icon  { font-size: 14px; }
.tw-cat-count { font-size: 11px; font-weight: 500; color: var(--muted); flex-shrink: 0; }
.tw-cat-item.active .tw-cat-count { color: #e97825; }

/* Section head */
.tw-section-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 15px;
}
.tw-section-title {
  display: flex; align-items: center; gap: 9px;
  font-size: 17px; font-weight: 700; color: var(--txt); margin: 0;
}
.tw-section-title svg { color: #e97825; }
.tw-sort-select {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--muted); background: var(--surface);
  border: 1px solid var(--line); border-radius: 8px; padding: 6px 12px; cursor: pointer;
}

/* Featured pack cards (3×2 grid) */
.tw-featured-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; margin-bottom: 26px;
}
.tw-feat-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
  padding: 16px 14px; display: flex; align-items: center; gap: 12px;
  text-decoration: none; color: inherit; cursor: pointer;
  transition: transform .18s, border-color .18s, box-shadow .18s;
  position: relative;
}
.tw-feat-card:hover { transform: translateY(-2px); border-color: #f0c29f; box-shadow: 0 8px 22px rgba(38,55,77,.08); }
.tw-feat-char {
  width: 68px; height: 68px; flex-shrink: 0;
  border: 1px solid #eee; border-radius: 10px; background: #f9f6f2;
  display: grid; place-items: center;
  font-family: 'Noto Serif CJK SC', 'SimSun', serif; font-size: 42px;
  color: #223; font-weight: 400; line-height: 1; overflow: hidden;
}
.tw-feat-body { flex: 1; min-width: 0; }
.tw-feat-title { font-size: 13.5px; font-weight: 700; color: var(--txt); margin-bottom: 3px; }
.tw-feat-desc  { font-size: 11.5px; color: var(--muted); line-height: 1.5; margin-bottom: 8px; }
.tw-feat-meta  { display: flex; align-items: center; gap: 12px; font-size: 11px; color: var(--muted); }
.tw-feat-arrow {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--line); display: grid; place-items: center;
  color: #e97825; font-size: 14px; margin-left: auto;
}

/* Lộ trình */
.tw-journey-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: 16px;
  padding: 24px 28px; margin-bottom: 18px;
  display: flex; align-items: center; gap: 28px;
  position: relative; overflow: hidden;
}
.tw-journey-card::before {
  content: ''; position: absolute; right: -30px; top: -30px;
  width: 200px; height: 200px; border-radius: 50%;
  background: radial-gradient(circle, #fff3e8, transparent 70%); pointer-events: none;
}
.tw-journey-left { flex: 1; }
.tw-journey-label {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: var(--txt); margin-bottom: 3px;
}
.tw-journey-label svg { color: #e97825; }
.tw-journey-sub { font-size: 12px; color: var(--muted); margin: 0 0 18px; }
.tw-journey-steps { display: flex; align-items: center; gap: 0; }
.tw-step-item { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.tw-step-num  {
  width: 30px; height: 30px; border-radius: 50%;
  background: #e97825; color: #fff;
  font-size: 13px; font-weight: 700; display: grid; place-items: center;
}
.tw-step-label { font-size: 11px; color: var(--muted); text-align: center; max-width: 85px; line-height: 1.4; }
.tw-step-arrow {
  width: 36px; height: 1px; background: var(--line); margin: 0 4px;
  position: relative; margin-bottom: 20px;
}
.tw-step-arrow::after {
  content: '›'; position: absolute; right: -6px; top: -10px;
  color: var(--muted); font-size: 14px;
}
.tw-journey-art {
  width: 130px; flex-shrink: 0; text-align: center;
  font-family: serif; font-size: 80px; color: #e97825;
  opacity: .22; line-height: 1; z-index: 1;
}

/* Mẹo */
.tw-tips-card {
  background: #fffdf5; border: 1px solid #f0e9c8; border-radius: 16px;
  padding: 20px 24px; display: flex; align-items: center; gap: 22px;
  margin-bottom: 0;
}
.tw-tips-left { flex: 1; }
.tw-tips-label { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; color: #8a6c00; margin-bottom: 11px; }
.tw-tips-list  { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 7px; }
.tw-tips-list li { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--muted); }
.tw-tips-list li::before {
  content: '✓'; width: 18px; height: 18px; border-radius: 50%;
  background: #2e9e5e; color: #fff; font-size: 10px; font-weight: 700;
  display: grid; place-items: center; flex-shrink: 0;
}
.tw-tips-art { width: 90px; text-align: center; font-size: 56px; flex-shrink: 0; }

/* Header-inner sticky */
.site-header { position: sticky; top: 0; z-index: 200; }
.header-inner {
  max-width: 1200px; margin: 0 auto; padding: 0 24px;
  height: 58px; display: flex; align-items: center; gap: 28px;
}
.brand-mark {
  width: 34px !important; height: 34px !important;
  border-radius: 50% !important; background: #e97825;
  color: #fff; font-size: 17px; font-weight: 800;
  display: grid !important; place-items: center;
}
.brand-copy strong { font-size: 14.5px; display: block; line-height: 1.2; }
.brand-copy small  { font-size: 11px; color: var(--muted); display: block; }
.main-nav { gap: 2px !important; }
.main-nav a { font-size: 13.5px; padding: 7px 13px !important; font-weight: 500; color: var(--muted); }
.main-nav a:hover { background: #f4f7fb; color: var(--txt); }
.main-nav a[href*="tap-viet"] { color: #e97825; font-weight: 700; border-bottom: 2px solid #e97825; border-radius: 0; }
.header-search { display: flex; align-items: center; gap: 8px; background: var(--bg); border: 1px solid var(--line); border-radius: 9px; padding: 0 12px; height: 34px; width: 230px; flex-shrink: 0; }
.header-search input { border: 0; outline: 0; background: transparent; font-size: 12px; color: var(--txt); flex: 1; font-family: inherit; }
.header-search button { background: none; border: 0; color: var(--muted); cursor: pointer; font-size: 15px; padding: 0; }
.header-tools { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.account-link { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; color: var(--muted); font-size: 15px; text-decoration: none; }

/* Responsive */
@media (max-width: 980px) {
  .tw-index-layout   { grid-template-columns: 1fr; }
  .tw-sidebar        { display: none; }
  .tw-featured-grid  { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .tw-hero-art       { display: none; }
  .tw-hero-text      { padding: 28px 24px; }
  .tw-hero-banner h1 { font-size: 26px; }
  .tw-featured-grid  { grid-template-columns: 1fr; gap: 10px; }
  .tw-journey-card   { flex-direction: column; padding: 20px; }
  .tw-journey-art    { display: none; }
  .tw-journey-steps  { flex-wrap: wrap; gap: 12px; }
  .tw-step-arrow     { display: none; }
  .tw-tips-art       { display: none; }
}


/* ============================================================
   HỘI THOẠI — ARCHIVE + DETAIL  (ht-*)
   ============================================================ */

/* ── Shared tokens ── */
:root {
  --ht-brand:   #e83d42;
  --ht-brand2:  #c9343a;
  --ht-bg:      #f6f8fb;
  --ht-surface: #ffffff;
  --ht-line:    #e8edf4;
  --ht-txt:     #142541;
  --ht-muted:   #5a6f88;
  --ht-radius:  14px;
}

/* ── ARCHIVE ── */
.ht-archive { background: var(--ht-bg); min-height: 100vh; }

/* Hero */
.ht-hero {
  position: relative; overflow: hidden; min-height: 240px;
  background: linear-gradient(108deg,#f0f6ff 0%,#e6f0ff 40%,#d8e8ff 100%);
  display: flex; align-items: center;
}
.ht-hero-text { max-width: 1480px; margin: 0 auto; padding: 36px 30px; flex: 1; position: relative; z-index: 1; }
.ht-breadcrumb { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--ht-muted); margin-bottom: 18px; flex-wrap: wrap; }
.ht-breadcrumb a { color: var(--ht-muted); text-decoration: none; }
.ht-breadcrumb a:hover { color: var(--ht-brand); }
.ht-breadcrumb b { color: var(--ht-txt); font-weight: 600; }
.ht-back-btn { margin-left: auto; padding: 6px 14px; border: 1px solid var(--ht-line); border-radius: 20px; background: #fff; font-size: 11px; color: var(--ht-muted); text-decoration: none; white-space: nowrap; }
.ht-back-btn:hover { border-color: var(--ht-brand); color: var(--ht-brand); }
.ht-hero h1 { font-size: 38px; font-weight: 800; color: var(--ht-txt); margin: 0 0 10px; line-height: 1.2; }
.ht-hero p  { font-size: 15px; color: var(--ht-muted); line-height: 1.7; margin: 0 0 18px; }
.ht-hero-pills { display: flex; gap: 12px; flex-wrap: wrap; }
.ht-hero-pills span {
  display: flex; align-items: center; gap: 7px; font-size: 12px; color: #304b6a;
  background: #fff; border: 1px solid #d8e4f0; border-radius: 20px; padding: 7px 14px;
}
.ht-hero-art {
  width: min(42vw, 560px); min-height: 240px; flex-shrink: 0;
  background: linear-gradient(90deg,rgba(238,246,255,.15),rgba(238,246,255,0)), url('../images/hero-study.jpg') center 43% / cover no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%); mask-image: linear-gradient(90deg, transparent 0%, #000 18%);
}

/* Layout */
.ht-layout {
  max-width: 1480px; margin: 0 auto; padding: 26px 30px 60px;
  display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start;
}

/* Sidebar */
.ht-sidebar { background: var(--ht-surface); border: 1px solid var(--ht-line); border-radius: var(--ht-radius); padding: 16px; }
.ht-sidebar-title { font-size: 12px; font-weight: 700; color: var(--ht-txt); margin-bottom: 10px; letter-spacing: .3px; }
.ht-cat-list { display: flex; flex-direction: column; gap: 2px; }
.ht-cat-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 10px; border-radius: 9px; font-size: 13px; color: var(--ht-muted);
  text-decoration: none; transition: background .15s;
}
.ht-cat-item:hover { background: #f3f7fc; color: var(--ht-txt); }
.ht-cat-item.active { background: #fff0f0; color: var(--ht-brand); font-weight: 600; }
.ht-cat-l { display: flex; align-items: center; gap: 8px; }
.ht-cat-icon { font-size: 14px; width: 20px; text-align: center; }
.ht-cat-count { font-size: 11px; color: var(--ht-muted); }
.ht-cat-item.active .ht-cat-count { color: var(--ht-brand); }

/* Main */
.ht-main { min-width: 0; }
.ht-main-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; gap: 12px; }
.ht-main-head h2 { font-size: 18px; font-weight: 700; color: var(--ht-txt); margin: 0 0 4px; }
.ht-main-head p  { font-size: 12px; color: var(--ht-muted); margin: 0; }
.ht-sort { font-size: 12px; color: var(--ht-muted); border: 1px solid var(--ht-line); border-radius: 8px; padding: 7px 12px; background: #fff; cursor: pointer; white-space: nowrap; }

/* Grid */
.ht-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; align-items: stretch; }
.ht-card {
  background: var(--ht-surface); border: 1px solid var(--ht-line); border-radius: var(--ht-radius);
  overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column;
  transition: transform .18s, box-shadow .18s;
}
.ht-card:hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(20,37,65,.08); }
.ht-card-thumb {
  aspect-ratio: 16/9; position: relative; background: linear-gradient(135deg,#b6d0f0,#f4d0d0);
  overflow: hidden; display: block;
}
.ht-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.ht-card:hover .ht-card-thumb img { transform: scale(1.04); }
.ht-card-thumb-fallback { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(135deg,#edf4ff,#ffedf0); }
.ht-card-thumb-fallback span { font-family: serif; font-size: 44px; color: #4a7dcf; }
.ht-card-play {
  position: absolute; left: 10px; bottom: 10px;
  width: 34px; height: 34px; border-radius: 50%; background: var(--ht-brand);
  color: #fff; font-size: 13px; display: grid; place-items: center;
  box-shadow: 0 4px 12px rgba(232,61,66,.4);
}
.ht-card-badge {
  position: absolute; top: 10px; left: 10px;
  background: var(--ht-brand); color: #fff; border-radius: 20px;
  padding: 4px 10px; font-size: 10px; font-weight: 700;
}
.ht-card-body { padding: 14px 15px; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.ht-card-body h3 { font-size: 14px; font-weight: 700; color: var(--ht-txt); margin: 0; line-height: 1.35; }
.ht-card-body p  { font-size: 11.5px; color: var(--ht-muted); margin: 0; line-height: 1.55; flex: 1; }
.ht-card-meta { display: flex; align-items: center; gap: 14px; font-size: 11px; color: var(--ht-muted); margin-top: 4px; }
.ht-card-arrow { margin-left: auto; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--ht-line); display: grid; place-items: center; color: var(--ht-brand); font-size: 14px; }

/* Pagination */
.ht-pagination ul { display: flex; justify-content: center; align-items: center; gap: 7px; list-style: none; padding: 0; margin: 8px 0 24px; }
.ht-pagination a, .ht-pagination span { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 10px; border: 1px solid var(--ht-line); border-radius: 9px; text-decoration: none; color: var(--ht-muted); font-size: 13px; }
.ht-pagination .current { background: var(--ht-brand); border-color: var(--ht-brand); color: #fff; }

/* Empty */
.ht-empty { padding: 48px 20px; text-align: center; border: 1px dashed var(--ht-line); border-radius: var(--ht-radius); color: var(--ht-muted); }
.ht-empty span { font-size: 40px; display: block; margin-bottom: 10px; }
.ht-empty h2   { font-size: 20px; color: var(--ht-txt); margin: 0 0 8px; }
.ht-empty p    { font-size: 13px; }

/* Bottom banner */
.ht-bottom-banner {
  display: flex; align-items: center; gap: 18px; margin-top: 28px;
  padding: 22px 26px; border-radius: var(--ht-radius);
  background: linear-gradient(90deg,#fff8f8,#f8f9ff);
  border: 1px solid var(--ht-line);
}
.ht-bottom-icon { font-size: 40px; flex-shrink: 0; }
.ht-bottom-banner strong { font-size: 15px; color: var(--ht-txt); display: block; margin-bottom: 4px; }
.ht-bottom-banner p { font-size: 12px; color: var(--ht-muted); margin: 0; }

/* ── DETAIL ── */
.ht-detail { background: var(--ht-bg); min-height: 100vh; }

/* Detail Hero */
.ht-detail-hero {
  position: relative; overflow: hidden; min-height: 200px;
  background: linear-gradient(108deg,#f0f6ff 0%,#e6f0ff 40%,#d8e8ff 100%);
  display: flex; align-items: stretch;
}
.ht-detail-hero-inner {
  max-width: 1320px; margin: 0 auto; padding: 24px 28px 28px;
  flex: 1; position: relative; z-index: 1;
}
.ht-detail-heading { display: flex; align-items: flex-start; gap: 18px; margin-top: 16px; }
.ht-detail-icon {
  width: 54px; height: 54px; flex-shrink: 0; border-radius: 14px;
  background: var(--ht-brand); color: #fff; font-size: 26px;
  display: grid; place-items: center; box-shadow: 0 6px 16px rgba(232,61,66,.3);
}
.ht-detail-heading h1 { font-size: 28px; font-weight: 800; color: var(--ht-txt); margin: 0 0 6px; }
.ht-detail-heading p  { font-size: 13px; color: var(--ht-muted); margin: 0 0 12px; }
.ht-detail-stats { display: flex; gap: 20px; font-size: 12px; color: var(--ht-muted); }
.ht-detail-stats span { display: flex; align-items: center; gap: 5px; }
.ht-detail-hero-art {
  width: min(34vw, 440px); flex-shrink: 0;
  background: url('../images/dialogue-banner.jpg') center / cover no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 20%); mask-image: linear-gradient(90deg, transparent 0%, #000 20%);
}

/* Tabs */
.ht-tabs {
  display: flex; gap: 4px; max-width: 1320px; margin: 0 auto;
  padding: 14px 28px 0; border-bottom: 1px solid var(--ht-line);
  background: var(--ht-surface);
}
.ht-tab {
  padding: 10px 18px; border: 1px solid transparent; border-bottom: none;
  border-radius: 10px 10px 0 0; font-size: 13px; font-weight: 500;
  color: var(--ht-muted); background: transparent; cursor: pointer;
  margin-bottom: -1px; position: relative; transition: color .15s, background .15s;
}
.ht-tab:hover { background: #f4f7fb; color: var(--ht-txt); }
.ht-tab.active {
  background: var(--ht-surface); color: var(--ht-brand); font-weight: 700;
  border-color: var(--ht-line) var(--ht-line) var(--ht-surface);
}

/* Detail body */
.ht-detail-body { max-width: 1320px; margin: 0 auto; padding: 22px 28px 60px; }
.ht-detail-columns { display: grid; grid-template-columns: 1fr 310px; gap: 22px; align-items: start; }

/* Tab panes */
.ht-tab-pane { display: none; }
.ht-tab-pane.active { display: block; }

/* Turns list */
.ht-turns { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; gap: 10px; }
.ht-turn {
  display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px;
  border-radius: 12px; background: var(--ht-surface); border: 1px solid var(--ht-line);
  transition: background .15s;
}
.ht-turn[data-ab="B"] { background: #f9fafb; }
.ht-turn.ht-turn-active { border-color: var(--ht-brand); background: #fff5f5; }
.ht-turn-avatar {
  width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%;
  background: #e0eaf8; color: #2960a8; font-size: 11px; font-weight: 700;
  display: grid; place-items: center; line-height: 1.2; text-align: center;
  padding: 2px;
}
.ht-turn[data-ab="B"] .ht-turn-avatar { background: #fce8e8; color: var(--ht-brand); }
.ht-turn-body { flex: 1; min-width: 0; }
.ht-turn-speaker { font-size: 11px; font-weight: 700; color: var(--ht-muted); margin-bottom: 4px; }
.ht-turn-zh      { font-size: 17px; color: var(--ht-txt); font-weight: 500; line-height: 1.4; }
.ht-turn-pinyin  { font-size: 12px; color: #2960a8; margin: 3px 0; }
.ht-turn-vi      { font-size: 12px; color: var(--ht-muted); }
.ht-turn-play {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
  background: var(--ht-brand); color: #fff; border: none; cursor: pointer;
  font-size: 12px; display: grid; place-items: center; align-self: center;
  opacity: 0; transition: opacity .15s;
}
.ht-turn:hover .ht-turn-play { opacity: 1; }

/* Audio bar */
.ht-audio-bar {
  display: flex; align-items: center; gap: 12px; padding: 12px 16px;
  background: var(--ht-surface); border: 1px solid var(--ht-line); border-radius: 12px;
  margin-top: 4px;
}
.ht-audio-play-all {
  display: flex; align-items: center; gap: 8px; padding: 9px 18px;
  background: var(--ht-brand); color: #fff; border: none; border-radius: 22px;
  font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
  transition: background .15s;
}
.ht-audio-play-all:hover { background: var(--ht-brand2); }
.ht-audio-time { font-size: 11px; color: var(--ht-muted); white-space: nowrap; }
.ht-audio-track { flex: 1; height: 4px; background: var(--ht-line); border-radius: 4px; overflow: hidden; }
.ht-audio-progress { height: 100%; width: 0; background: var(--ht-brand); border-radius: 4px; transition: width .2s; }
.ht-audio-volume, .ht-audio-full { background: none; border: none; font-size: 16px; color: var(--ht-muted); cursor: pointer; padding: 0 2px; }

/* Empty turns */
.ht-empty-turns { padding: 32px; text-align: center; color: var(--ht-muted); font-size: 13px; }

/* Vocab full grid */
.ht-vocab-grid-full { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.ht-vocab-full-item {
  padding: 14px; border: 1px solid var(--ht-line); border-radius: 10px;
  background: var(--ht-surface); display: flex; align-items: flex-start; gap: 10px;
}
.ht-vocab-full-item > div { flex: 1; }
.ht-vocab-zh  { font-size: 20px; font-weight: 600; color: var(--ht-txt); font-family: 'Noto Serif CJK SC','SimSun',serif; }
.ht-vocab-py  { font-size: 11px; color: var(--ht-brand); margin: 2px 0; }
.ht-vocab-vi  { font-size: 11px; color: var(--ht-muted); }
.ht-vocab-snd { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--ht-line); background: #fff; color: var(--ht-brand); font-size: 12px; cursor: pointer; display: grid; place-items: center; }

/* Grammar block */
.ht-grammar-block { padding: 4px 0; }
.ht-grammar-block h3 { font-size: 16px; color: var(--ht-txt); margin: 0 0 8px; }
.ht-muted { font-size: 12px; color: var(--ht-muted); }

/* Notes */
.ht-notes-block { display: flex; flex-direction: column; gap: 12px; }
.ht-notes-block h3 { font-size: 15px; color: var(--ht-txt); margin: 0; }
.ht-notes-textarea { width: 100%; border: 1px solid var(--ht-line); border-radius: 10px; padding: 12px; font: inherit; font-size: 13px; color: var(--ht-txt); resize: vertical; outline: none; }
.ht-notes-textarea:focus { border-color: var(--ht-brand); }
.ht-notes-save { padding: 9px 18px; background: var(--ht-brand); color: #fff; border: none; border-radius: 9px; font-size: 12px; font-weight: 600; cursor: pointer; }

/* Right panel */
.ht-panel-right { display: flex; flex-direction: column; gap: 16px; }
.ht-right-card { background: var(--ht-surface); border: 1px solid var(--ht-line); border-radius: var(--ht-radius); padding: 16px; }
.ht-right-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 13px; }
.ht-right-card-icon { font-size: 16px; }
.ht-right-card-head strong { font-size: 13px; font-weight: 700; color: var(--ht-txt); flex: 1; }
.ht-right-see-all { font-size: 11px; color: var(--ht-brand); text-decoration: none; white-space: nowrap; }

/* Vocab list in right panel */
.ht-vocab-list { display: flex; flex-direction: column; gap: 8px; }
.ht-vocab-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px; border: 1px solid var(--ht-line); border-radius: 9px; }
.ht-vocab-zh-sm { font-size: 16px; font-family: 'Noto Serif CJK SC','SimSun',serif; color: var(--ht-txt); }
.ht-vocab-py-sm { font-size: 10px; color: var(--ht-brand); }
.ht-vocab-vi-sm { font-size: 10px; color: var(--ht-muted); }
.ht-vocab-play { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--ht-line); background: #fff; color: var(--ht-brand); font-size: 11px; cursor: pointer; display: grid; place-items: center; flex-shrink: 0; }

/* Grammar card */
.ht-grammar-card { background: #fffdf5; border-color: #f0e9c6; }
.ht-grammar-tip { font-size: 12px; }
.ht-grammar-tip p { margin: 0 0 6px; }
.ht-grammar-tip strong { color: var(--ht-txt); }
.ht-grammar-example { background: #f8fafb; border-radius: 8px; padding: 10px 12px; margin: 8px 0; }
.ht-grammar-zh { font-size: 14px; color: var(--ht-txt); font-weight: 500; }
.ht-grammar-py { font-size: 11px; color: #2960a8; margin: 3px 0; }
.ht-grammar-vi { font-size: 11px; color: var(--ht-muted); }
.ht-grammar-more { font-size: 11px; color: var(--ht-brand); text-decoration: none; }

/* Practice card */
.ht-practice-card { background: linear-gradient(120deg,#fff5f5,#fff8f8); border-color: #f8dede; }
.ht-practice-card-inner { display: flex; flex-direction: column; gap: 12px; }
.ht-practice-icon { font-size: 24px; margin-bottom: 4px; }
.ht-practice-card strong { font-size: 13px; color: var(--ht-txt); display: block; margin-bottom: 4px; }
.ht-practice-card p { font-size: 11px; color: var(--ht-muted); margin: 0 0 10px; }
.ht-practice-btn {
  display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px;
  background: var(--ht-brand); color: #fff; text-decoration: none;
  border-radius: 22px; font-size: 11px; font-weight: 700;
}
.ht-practice-btn:hover { background: var(--ht-brand2); }

/* Active nav link for Hội thoại */
.main-nav a[href*="hoi-thoai"] { color: var(--ht-brand) !important; font-weight: 700 !important; }

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
  .ht-grid { grid-template-columns: repeat(2,1fr); }
  .ht-detail-columns { grid-template-columns: 1fr 280px; }
}
@media (max-width: 900px) {
  .ht-layout { grid-template-columns: 1fr; }
  .ht-sidebar { display: none; }
  .ht-detail-columns { grid-template-columns: 1fr; }
  .ht-panel-right { display: grid; grid-template-columns: 1fr 1fr; }
  .ht-practice-card { grid-column: 1/-1; }
  .ht-detail-hero-art { display: none; }
}
@media (max-width: 640px) {
  .ht-hero-text { padding: 24px 18px; }
  .ht-hero h1 { font-size: 28px; }
  .ht-hero-art { display: none; }
  .ht-hero-pills { gap: 8px; }
  .ht-hero-pills span { font-size: 10px; padding: 6px 10px; }
  .ht-layout { padding: 18px 16px 40px; }
  .ht-grid { grid-template-columns: 1fr; gap: 10px; }
  .ht-tabs { padding: 12px 16px 0; gap: 2px; overflow-x: auto; }
  .ht-tab { padding: 9px 12px; font-size: 12px; white-space: nowrap; }
  .ht-detail-body { padding: 16px 16px 40px; }
  .ht-vocab-grid-full { grid-template-columns: 1fr 1fr; }
  .ht-panel-right { grid-template-columns: 1fr; }
  .ht-audio-bar { flex-wrap: wrap; gap: 8px; }
  .ht-audio-track { width: 100%; order: 3; }
  .ht-detail-hero-inner { padding: 18px 16px 22px; }
  .ht-detail-heading h1 { font-size: 22px; }
}

/* Dialogue archive hardening: preserve equal image-led cards and avoid theme/plugin collisions. */
.ht-archive .ht-grid > .ht-card { min-width: 0; width: 100%; height: 100%; box-sizing: border-box; }
.ht-archive .ht-card-thumb { width: 100%; aspect-ratio: 16 / 9; flex: 0 0 auto; }
.ht-archive .ht-card-thumb > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ht-archive .ht-card-body { min-width: 0; }
.ht-archive .ht-card-body h3 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ht-archive .ht-card-body p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ht-archive .ht-card-arrow { flex: 0 0 26px; }
.ht-archive .ht-card, .ht-archive .ht-card:hover { text-decoration: none; }
@media (min-width: 1500px) { .ht-archive .ht-grid { gap: 18px; } }
@media (max-width: 1100px) { .ht-hero-art { width: 34vw; } }

/* Vocabulary detail page — three-column learning layout */
.word-detail-page{--wd-blue:#102b72;--wd-red:#ff343b;--wd-line:#e3eaff;color:var(--wd-blue);padding-bottom:24px;background:#fff}
.word-topic-banner{min-height:242px;background-image:linear-gradient(90deg,rgba(245,249,255,.98),rgba(245,249,255,.88) 32%,rgba(245,249,255,.12) 68%),url('../images/hero-study.jpg');background-size:cover;background-position:center 47%;border-bottom:1px solid #e8efff;display:flex;align-items:center}
.word-topic-banner-inner{width:min(1360px,100%);margin:0 auto;padding:22px 28px 26px}.word-topic-banner .word-breadcrumb{margin:0 0 16px;color:#173a82;font-size:12px;gap:9px}.word-topic-banner .word-breadcrumb a,.word-topic-banner .word-breadcrumb b{color:#173a82}.word-topic-banner h1{font-size:clamp(34px,4vw,54px);line-height:1.08;letter-spacing:-.035em;color:#102765;margin:0 0 12px;font-weight:800}.word-topic-banner p{max-width:510px;font-size:16px;line-height:1.65;color:#152d68;margin:0 0 15px}.word-topic-pills{display:flex;gap:10px;flex-wrap:wrap}.word-topic-pills span{padding:9px 14px;border:1px solid #e0e8fb;border-radius:24px;background:rgba(255,255,255,.8);font-size:12px;color:#17336e}
.word-study-layout{max-width:1410px;margin:22px auto 26px;padding:0 28px;display:grid;grid-template-columns:minmax(280px,.88fr) minmax(430px,1.28fr) minmax(235px,.55fr);gap:14px;align-items:start}.word-study-list-card,.word-study-center,.word-side-panel{min-width:0;border:1px solid var(--wd-line);border-radius:16px;background:#fff;box-shadow:0 3px 14px rgba(33,72,140,.025)}.word-study-list-card{overflow:hidden}.word-study-card-title{display:flex;align-items:center;gap:12px;padding:17px 18px 14px;border-bottom:1px solid #edf1ff}.word-study-card-title h2,.word-side-heading h2{font-size:16px;line-height:1.3;margin:0;color:#112b70;font-weight:750}.word-title-play{width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;border-radius:50%;background:var(--wd-red);color:#fff;font-size:12px}.word-study-list{padding:5px 9px 10px}.word-study-row{position:relative;display:grid;grid-template-columns:24px 58px minmax(52px,.75fr) minmax(65px,1fr) 22px;align-items:center;gap:8px;min-height:40px;padding:5px 7px;text-decoration:none;border-bottom:1px solid #edf1fa;color:#102b72}.word-study-row:last-child{border-bottom:0}.word-study-row:hover,.word-study-row.is-active{background:linear-gradient(90deg,#fff0f1,#fff8f8);border-radius:8px}.word-study-row.is-active:before{content:"";position:absolute;left:-9px;top:3px;bottom:3px;width:3px;border-radius:0 4px 4px 0;background:var(--wd-red)}.word-row-number{font-size:12px;color:#183b83}.word-study-row strong{font-size:20px;line-height:1.2;color:#101f49;font-weight:650}.word-row-pinyin{font-size:11px;color:#6076a3;overflow-wrap:anywhere}.word-row-meaning{font-size:11px;color:#132b65;line-height:1.35;overflow-wrap:anywhere}.word-row-audio{width:21px;height:21px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--wd-red);color:white;font-size:9px;cursor:pointer;padding:0}
.word-study-center{padding:13px 14px 14px}.word-study-center-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}.word-study-label{display:flex;align-items:center;gap:7px;color:#7183aa;font-size:9px;letter-spacing:.12em;font-weight:800}.word-study-label-dot{width:7px;height:7px;border-radius:50%;background:var(--wd-red)}.word-inline-nav{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.word-inline-nav a{padding:8px 11px;border:1px solid #dfe7ff;border-radius:14px;color:#14367f;text-decoration:none;font-size:11px;background:#fff;white-space:nowrap}.word-focus-card{display:grid;grid-template-columns:minmax(130px,.78fr) minmax(0,1.42fr);gap:18px;align-items:center;padding:8px 2px 20px;border-bottom:1px dashed #dce5fb}.word-focus-character{min-height:184px;border-radius:14px;background:linear-gradient(145deg,#fff0f2,#ffe8eb);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:12px}.word-focus-hanzi{font-family:serif;font-size:clamp(56px,5vw,80px);line-height:1.1;color:#10214b;text-align:center;overflow-wrap:anywhere}.word-focus-replay{border:1px solid #dce7ff;border-radius:24px;background:#fff;padding:8px 13px;color:#2462d9;font-size:11px;cursor:pointer}.word-focus-content{min-width:0}.word-focus-pinyin-row{display:flex;align-items:center;gap:10px}.word-focus-pinyin-row h2{font-size:clamp(24px,2.5vw,34px);margin:0;color:#11265e;letter-spacing:-.03em;overflow-wrap:anywhere}.word-focus-sound{width:32px;height:32px;border:1px solid #ffd9de;border-radius:50%;background:#fff;color:var(--wd-red);cursor:pointer}.word-focus-meaning{display:inline-block;max-width:100%;margin:8px 0 15px;padding:7px 12px;border-radius:8px;background:#ffe8ec;color:#10285f;font-size:15px;font-weight:700}.word-audio-player{display:flex;align-items:center;gap:12px;min-width:0}.word-audio-play{width:46px;height:46px;flex:0 0 46px;border:0;border-radius:50%;background:linear-gradient(145deg,#ff5678,#f72f50);color:#fff;font-size:17px;cursor:pointer}.word-waveform{height:35px;flex:1;min-width:38px;display:flex;align-items:center;justify-content:center;gap:3px;overflow:hidden}.word-waveform i{display:block;width:3px;min-width:2px;border-radius:4px;background:#ff6680;height:14px}.word-waveform i:nth-child(3n){height:26px;background:#ff9aac}.word-waveform i:nth-child(3n + 1){height:17px}.word-waveform i:nth-child(4n){height:10px;background:#d7e0f5}.word-waveform i:nth-child(5n){height:30px;background:#d7e0f5}.word-audio-player>span{font-size:10px;color:#6279a6;white-space:nowrap}.word-focus-meta{display:flex;gap:6px;margin-top:12px}.word-focus-meta span{font-size:9px;color:#637ba8;background:#f2f5ff;border-radius:12px;padding:4px 8px}
.word-example-feature{padding:16px 4px 13px}.word-feature-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.word-feature-heading>span{background:#dce8ff;color:#1751b8;padding:5px 12px;border-radius:7px;font-size:12px;font-weight:750}.word-feature-heading button{border:1px solid #dfe8ff;border-radius:50%;width:32px;height:32px;background:#fff;color:#1b66dc;cursor:pointer}.word-example-chinese{display:block;font-size:clamp(20px,2.2vw,26px);line-height:1.5;color:#11255a;font-weight:650}.word-example-pinyin{font-size:13px;color:#5c76a7;margin:1px 0 4px;line-height:1.5}.word-example-vietnamese{font-size:13px;color:#152d66;line-height:1.6;margin:0}.word-usage-tip{display:flex;gap:12px;padding:13px 15px;border-radius:11px;background:linear-gradient(110deg,#eaf1ff,#f3f6ff);border:1px solid #e0eaff}.word-tip-icon{width:27px;height:27px;flex:0 0 27px;display:grid;place-items:center;border-radius:50%;background:#d4e4ff;color:#2671e8;font-size:17px}.word-usage-tip h3,.word-mini-practice h3{font-size:13px;margin:1px 0 5px;color:#10347e}.word-usage-tip p,.word-mini-practice p{font-size:11px;line-height:1.6;margin:0;color:#203b76}.word-mini-practice{margin-top:12px;padding:12px 14px;border:1px solid #e5ebfb;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}.word-mini-practice>div:first-child{display:flex;gap:10px;align-items:flex-start}.word-mini-icon{color:#367bff;font-size:21px}.word-mini-writing{display:grid;place-items:center;width:54px;height:54px;flex:0 0 54px;border:1px dashed #b9cbed;border-radius:8px;background:linear-gradient(90deg,transparent 49%,#dbe5f6 50%,transparent 51%),linear-gradient(transparent 49%,#dbe5f6 50%,transparent 51%);font-family:serif;font-size:32px;color:#a4b7d8}
.word-study-sidebar{display:grid;gap:13px;min-width:0}.word-side-panel{padding:17px 16px}.word-side-heading{display:flex;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid #eff2fa}.word-side-heading>span{font-size:21px;color:#2568df}.word-side-progress-line{height:9px;border-radius:12px;background:#edf0fb;overflow:hidden;margin:16px 0 11px}.word-side-progress-line span{height:100%;display:block;border-radius:12px;background:linear-gradient(90deg,#ff454c,#ff3038)}.word-side-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:#14316e}.word-side-progress-meta>span:before{content:"✓";display:inline-grid;place-items:center;width:19px;height:19px;margin-right:7px;border-radius:50%;background:#e3ebff;color:#2360cb}.word-side-progress-meta b{font-size:12px}.word-continue-button{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:17px;padding:12px;border-radius:25px;background:linear-gradient(90deg,#ff4148,#ff2d36);color:white;text-decoration:none;font-size:12px;font-weight:700}.word-related-side-list{display:grid;gap:3px;margin-top:7px}.word-related-side-list>a{display:flex;gap:10px;align-items:center;padding:10px 0;text-decoration:none;border-bottom:1px solid #f0f3fa}.word-related-side-list>a:last-child{border-bottom:0}.word-related-audio{width:31px;height:31px;flex:0 0 31px;border:1px solid #e2eaff;border-radius:50%;display:grid;place-items:center;color:#3476ed;font-size:12px}.word-related-copy{display:grid;gap:2px;min-width:0}.word-related-copy b{font-size:16px;color:#142b68}.word-related-copy small{font-size:10px;color:#6379a5}.word-related-copy em{font-style:normal;font-size:10px;color:#18336e;line-height:1.4}.word-related-all{display:block;text-align:right;font-size:10px;color:#285ed0;text-decoration:none;margin-top:7px}.word-side-quote{padding:17px;border:1px solid #e5e9ff;border-radius:14px;background:linear-gradient(145deg,#f2f0ff,#fff);text-align:center}.word-side-quote>span{font-family:serif;font-size:23px;color:#4d7ee0}.word-side-quote p{font-size:12px;color:#2c4d95;margin:6px 0}.word-side-quote small{font-size:10px;color:#7b8fba}.word-bottom-banner{max-width:1410px;min-height:100px;margin:0 auto;padding:20px 28px;border:1px solid #dfe8ff;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:18px;background-image:linear-gradient(90deg,rgba(239,246,255,.94),rgba(245,248,255,.82) 52%,rgba(245,248,255,.48)),url('../images/dialogue-banner.jpg');background-size:cover;background-position:center 57%}.word-bottom-banner-copy{padding-left:clamp(0px,12vw,170px)}.word-bottom-banner h2{font-size:clamp(17px,2vw,24px);margin:0 0 5px;color:#12337c}.word-bottom-banner p{font-size:13px;margin:0;color:#26447f}.word-bottom-banner>a{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding:13px 19px;border-radius:24px;background:linear-gradient(90deg,#ff444b,#ff2f37);color:#fff;text-decoration:none;font-size:12px;font-weight:750}
@media(min-width:1400px){.word-study-layout{grid-template-columns:minmax(350px,.9fr) minmax(560px,1.3fr) minmax(260px,.58fr)}}
@media(max-width:1100px){.word-study-layout{grid-template-columns:minmax(235px,.8fr) minmax(0,1.3fr);padding:0 18px}.word-study-sidebar{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.word-side-quote{grid-column:1/-1}.word-bottom-banner{margin-left:18px;margin-right:18px}.word-topic-banner-inner{padding-left:22px}.word-row-meaning{display:none}.word-study-row{grid-template-columns:24px 55px minmax(45px,1fr) 22px}}
@media(max-width:700px){.word-topic-banner{min-height:230px;background-position:62% center}.word-topic-banner-inner{padding:17px 16px 22px}.word-topic-banner h1{font-size:36px}.word-topic-banner p{max-width:75%;font-size:13px}.word-study-layout{display:flex;flex-direction:column;padding:0 12px;margin-top:14px;gap:12px}.word-study-list-card,.word-study-center,.word-study-sidebar{width:100%}.word-study-list-card{order:2}.word-study-center{order:1;padding:11px}.word-study-sidebar{order:3;display:grid;grid-template-columns:1fr}.word-side-quote{grid-column:auto}.word-study-row{grid-template-columns:24px 52px minmax(50px,.65fr) minmax(70px,1fr) 22px}.word-row-meaning{display:block}.word-focus-card{grid-template-columns:112px minmax(0,1fr);gap:12px}.word-focus-character{min-height:145px;padding:8px}.word-focus-hanzi{font-size:52px}.word-focus-replay{font-size:9px;padding:7px 8px}.word-focus-pinyin-row h2{font-size:23px}.word-audio-player{gap:7px}.word-audio-play{width:38px;height:38px;flex-basis:38px}.word-audio-player>span{display:none}.word-waveform{gap:2px}.word-study-center-top{align-items:flex-start;flex-direction:column}.word-inline-nav{width:100%;justify-content:space-between}.word-mini-practice{align-items:flex-start}.word-bottom-banner{margin:0 12px;padding:18px;align-items:flex-start;flex-direction:column;background-position:center}.word-bottom-banner-copy{padding-left:0}.word-bottom-banner>a{padding:11px 15px}.word-related-side-list{grid-template-columns:1fr 1fr;column-gap:14px}.word-related-side-list>a{align-items:flex-start}}
@media(max-width:420px){.word-topic-banner p{max-width:100%;text-shadow:0 1px 3px #fff}.word-topic-banner{background-image:linear-gradient(90deg,rgba(245,249,255,.97),rgba(245,249,255,.76)),url('../images/hero-study.jpg')}.word-study-row{grid-template-columns:18px 42px minmax(45px,.7fr) minmax(55px,1fr) 20px;gap:5px;padding:5px 4px}.word-study-row strong{font-size:17px}.word-row-pinyin,.word-row-meaning{font-size:9px}.word-focus-card{grid-template-columns:1fr}.word-focus-character{min-height:120px}.word-focus-hanzi{font-size:58px}.word-focus-content{padding:2px 3px}.word-related-side-list{grid-template-columns:1fr}.word-study-sidebar{grid-template-columns:1fr}}

/* Vocabulary topic redesign */
.word-pack-redesign .word-pack-content{max-width:1380px;margin:28px auto 34px;padding:0 26px}
.word-pack-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.word-pack-toolbar h2{font-size:27px;color:#102765;margin:5px 0}.word-pack-toolbar p{color:#63769b;margin:0;font-size:14px}
.word-pack-start{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:30px;background:#ff3648;color:white;text-decoration:none;font-weight:700;white-space:nowrap}
.word-pack-grid-new{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.word-pack-grid-new .word-pack-item{position:relative;min-height:184px;border:1px solid #e1e9ff;border-radius:17px;padding:22px;background:linear-gradient(160deg,#fff 70%,#fff5f6);box-shadow:0 5px 18px rgba(20,50,120,.035);transition:transform .2s,box-shadow .2s}
.word-pack-grid-new .word-pack-item:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(20,50,120,.1);border-color:#ffb4bf}
.word-pack-grid-new .word-pack-item strong{font-size:32px;color:#0d2359;margin:5px 0}.word-pack-grid-new .word-pack-item .word-pack-py{font-size:13px;color:#5272b2}.word-pack-grid-new .word-pack-item small{font-size:14px;color:#334c7c}.word-pack-grid-new .word-pack-item em{margin-top:auto;color:#f33149;font-size:12px;font-weight:700}
.word-pack-number{position:absolute;right:18px;top:15px;font-size:13px;color:#a1b1d3}
@media(max-width:1000px){.word-pack-grid-new{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.word-pack-redesign .word-pack-content{padding:0 14px}.word-pack-toolbar{align-items:flex-start;flex-direction:column}.word-pack-toolbar h2{font-size:23px}.word-pack-grid-new{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.word-pack-grid-new .word-pack-item{padding:15px;min-height:165px}.word-pack-grid-new .word-pack-item strong{font-size:25px}}
@media(max-width:390px){.word-pack-grid-new{grid-template-columns:1fr}}

/* Vocabulary detail → interactive Hanzi writing */
.word-practice-launch{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:9px 13px;border-radius:9px;background:#ff3945;color:#fff!important;text-decoration:none;font-size:12px;font-weight:750;transition:background .2s}
.word-practice-launch:hover{background:#db2634}.word-mini-writing{text-decoration:none;overflow:hidden;white-space:nowrap}.word-mini-writing:hover{border-color:#ff3945;color:#ff3945}
@media(max-width:420px){.word-mini-practice{gap:8px}.word-practice-launch{padding:9px 10px}}

/* V9: Dedicated handwriting pages, not overlays. */
.tw-inline-practice{display:block!important;position:static!important;inset:auto!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;background:transparent!important;overflow:visible!important;z-index:auto!important;margin:24px 0 32px!important;}
.tw-inline-practice .tw-modal-dialog{position:static!important;transform:none!important;opacity:1!important;visibility:visible!important;max-width:100%!important;width:100%!important;max-height:none!important;margin:0!important;overflow:visible!important;box-shadow:0 8px 28px rgba(22,49,95,.07)!important;border:1px solid #dfe8fa!important;border-radius:18px!important;}
.tw-inline-practice .tw-modal-body{max-height:none!important;overflow:visible!important;}
.tw-inline-practice .tw-modal-close{font-size:13px!important;width:auto!important;height:auto!important;padding:10px 15px!important;text-decoration:none!important;border-radius:10px!important;}
.tw-topic-list-page .tw-inline-practice{display:none!important;}
.tw-exercise-page .tw-practice-overview,.tw-exercise-page .tw-word-toolbar,.tw-exercise-page .tw-character-grid,.tw-exercise-page .tw-no-results{display:none!important;}
.tw-exercise-page .tw-topic-head{margin-bottom:18px!important;}
.tw-word-card{text-decoration:none!important;}
.tw-inline-practice .tw-writer-box{touch-action:none;}
@media(max-width:767px){.tw-inline-practice{margin:15px 0 24px!important}.tw-inline-practice .tw-modal-dialog{border-radius:12px!important}.tw-inline-practice .tw-modal-body{padding:14px!important}}
