/* KidWind 線上練習：沿用官網（starklabtw.com）的設計 token——暖白紙色、火紅主色、松綠次色、金色只做細線 */
:root{
  --paper:#FAF8F3; --paper2:#F2EFE7; --card:#FFFFFF; --ink:#171F14; --ink2:#56604B; --ink3:#7F8C6E;
  --red:#D93A2B; --redd:#A82B1C; --red-soft:#FBEAE6; --pine:#1F5A3A; --teal:#35804F; --mist:#DBE6D5; --deep:#0F2016; --gold:#D8A24A;
  --hair:rgba(23,31,20,.12); --hair2:rgba(23,31,20,.22);
  --ok:#2F7A4A; --ok-soft:#E4EFDF; --bad:#A82B1C; --bad-soft:#FBEAE6;
  /* render.js 圖表用 */
  --bg:var(--paper); --line:var(--hair); --muted:var(--ink2); --c1:#D93A2B; --c2:#1F5A3A; --c3:#7F8C6E; --c4:#D8A24A;
  --fd:"Archivo","Noto Sans TC","PingFang TC",-apple-system,sans-serif;
  --fb:"Noto Sans TC","PingFang TC",-apple-system,sans-serif;
  --fm:"JetBrains Mono",ui-monospace,"SFMono-Regular",monospace;
  --r:14px; --shadow:0 1px 3px rgba(27,36,31,.10); --shadow-lg:0 20px 60px rgba(27,36,31,.18);
  color-scheme:light;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--fb);font-size:16px;line-height:1.7}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--pine);outline-offset:2px}
a{color:var(--pine)}
.mono{font-family:var(--fm);letter-spacing:.06em}
.eyebrow{font-family:var(--fm);font-size:12px;letter-spacing:.14em;color:var(--red);text-transform:uppercase}
.label{font-family:var(--fm);font-size:12px;letter-spacing:.1em;color:var(--ink3)}
.muted{color:var(--ink2)}
p,li,.note{text-wrap:pretty}
.small{font-size:14px}
.tnum{font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--fd);font-weight:900;margin:0;text-wrap:balance;line-height:1.25}
h1 em,h2 em,h3 em{font-style:normal;color:var(--red)}
.rule{width:48px;height:3px;background:var(--pine);margin:18px 0}
.secH{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--hair);padding-bottom:8px;margin:36px 0 14px}
.secH .t{font-family:var(--fm);font-size:12px;letter-spacing:.12em;color:var(--ink3)}
.secH .t b{color:var(--red);font-weight:500;margin-right:10px}
.secH .r{font-size:13px;color:var(--ink2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:12px;font-weight:700;font-size:16px;background:var(--red);color:#fff;transition:transform .12s,opacity .2s,background .2s}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.35;cursor:default}
.btn.pine{background:var(--pine)}
.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--hair2)}
.btn.line{background:transparent;color:var(--pine);border:1px solid var(--pine)}
.btn.sm{min-height:34px;padding:0 14px;font-size:14px;border-radius:999px}
.btn.block{width:100%}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.note{background:var(--card);border-left:3px solid var(--pine);border-radius:0 12px 12px 0;padding:14px 18px;box-shadow:var(--shadow)}
.chip{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:1px 10px;white-space:nowrap}
.chip.red{color:var(--redd);background:var(--red-soft)}
.chip.pine{color:var(--pine);background:var(--mist)}
.chip.gray{color:var(--ink2);background:var(--paper2)}
.chip.gold{color:#8A6116;background:#F6EBD6}
input.text,select.text{font:inherit;font-size:16px;padding:10px 14px;border-radius:10px;border:1px solid var(--hair2);background:var(--card);color:var(--ink)}
.err{color:var(--bad);font-size:14px;min-height:22px}
.spin{width:28px;height:28px;border:3px solid var(--hair);border-top-color:var(--red);border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.logo{display:block}
/* 底部滑出面板 */
.sheet-bg{position:fixed;inset:0;background:rgba(15,32,22,.38);opacity:0;pointer-events:none;transition:opacity .25s;z-index:40}
.sheet-bg.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--card);border-radius:20px 20px 0 0;padding:12px max(20px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));transform:translateY(105%);visibility:hidden;transition:transform .32s cubic-bezier(.2,.8,.2,1), visibility 0s linear .32s;max-width:640px;margin:0 auto;max-height:88dvh;overflow:auto}
.sheet.on{transform:none;visibility:visible;transition:transform .32s cubic-bezier(.2,.8,.2,1), visibility 0s}
.sheet .grab{width:38px;height:4px;border-radius:2px;background:var(--hair2);margin:0 auto 14px}
.sheet .acts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.opt .mine{margin-left:auto;font-size:12px;font-weight:700;color:var(--red);white-space:nowrap;padding-left:8px}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--deep);color:#fff;padding:10px 18px;border-radius:12px;font-size:14px;z-index:60;opacity:0;transition:opacity .25s;pointer-events:none;max-width:90vw}
.toast.on{opacity:1}
/* 題目內文與圖表（render.js） */
.stem{font-size:18px;font-weight:600;line-height:1.7}
.stem p{margin:0 0 6px}
.chart{margin:10px 0}
.chart svg{width:100%;height:auto;display:block}
.ct{font-weight:700;font-size:14px;text-align:center}
.lg{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:13px;color:var(--ink2)}
.lg i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.tbl{overflow-x:auto}
.tbl table,.md table{border-collapse:collapse;margin:8px auto;font-size:14px}
.md th,.md td{border:1px solid var(--hair2);padding:5px 10px;text-align:center;word-break:keep-all}
.md th{background:var(--paper2)}
.md td:first-child,.md th:first-child{white-space:nowrap}
.stem table{border-collapse:collapse;margin:8px 0;font-size:14px;font-weight:500;display:block;overflow-x:auto;max-width:100%}
.stem th,.stem td{border:1px solid var(--hair2);padding:5px 8px;text-align:center;word-break:keep-all}
.stem th{background:var(--paper2)}
blockquote{margin:0}
blockquote p{margin:0 0 8px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (max-width:480px){.stem table,.md table{font-size:13px}.stem th,.stem td,.md th,.md td{padding:4px 5px}}
.stem th,.md th{word-break:normal}
[hidden]{display:none!important}
/* 歡迎導覽 */
.intro{position:fixed;inset:0;z-index:50;background:var(--paper);display:flex;flex-direction:column}
.intro .skip{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));font-size:14px;color:var(--ink2);z-index:2;padding:6px 10px}
.intro .pages{flex:1;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.intro .pages::-webkit-scrollbar{display:none}
.intro .pg{flex:0 0 100%;width:100%;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px 24px;box-sizing:border-box}
.intro .pg-inner{max-width:460px;width:100%}
.intro .pg h1{font-size:44px;margin-top:10px;line-height:1.2}
@media (max-width:420px){.intro .pg h1{font-size:38px}}
.intro .pg .body{margin-top:22px;line-height:1.75;font-size:18px}
.intro .step-row{display:flex;align-items:baseline;gap:10px;margin-top:14px}
.intro .step-n{font-family:var(--fd);font-weight:800;font-size:44px;color:var(--red);flex:none;line-height:1}
.intro .step-t{font-weight:700;font-size:21px}
.intro .bottom{padding:12px 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:12px;max-width:460px;margin:0 auto;width:100%}
.intro .pips{display:flex;gap:8px}
.intro .pip{width:8px;height:8px;border-radius:50%;background:var(--hair2);transition:background .2s}
.intro .pip.on{background:var(--red)}
.intro .bottom .btn{align-self:stretch}
/* 首頁步驟卡 */
.next-steps{display:grid;gap:0}
.next-step{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0}
.next-step+.next-step{border-top:1px solid var(--hair)}
.next-step .ns-l{display:flex;align-items:baseline;gap:8px}
.next-step .ns-n{font-family:var(--fd);font-weight:800;font-size:20px;color:var(--ink3)}
.next-step .ns-t{font-weight:600}
.next-step .ns-r{font-size:14px;font-weight:700;white-space:nowrap}
/* 單集頁步驟小標 */
.step-label{font-family:var(--fm);font-size:12px;letter-spacing:.1em;color:var(--ink3);margin-bottom:6px;margin-top:18px}
/* 帳號面板使用說明列 */
.acct .guide{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--hair);font-size:15px;color:var(--pine);font-weight:700;cursor:pointer}
.acct .guide:active{opacity:.7}
