/* 背单词 · 「宣纸珂罗版」皮肤（风格 A，2026-10-02 定稿）
   规则：只改外观。类名与结构沿用 app.js 现有渲染，禁改 kit.css / guofeng.css。
   色板：纸 #f5efe1 · 墨 #2e2a24 · 淡墨 #8a7a5e · 线 rgba(120,95,55,.35) · 朱砂 #9e3b32 · 卡 #fbf7ec */

*{box-sizing:border-box}
body{margin:0;padding:0}
:root{
  --paper:#f5efe1; --ink:#2e2a24; --dim:#8a7a5e; --line:rgba(120,95,55,.35);
  --red:#9e3b32; --red-dark:rgba(90,40,30,.45); --card:#fbf7ec; --card2:#f7f0e0;
}
html,body{height:100%}
body{
  background:var(--paper); color:var(--ink); overflow:hidden;
  font-family:"STKaiti","KaiTi","楷体",serif;
  background-image:radial-gradient(ellipse 130% 60% at 50% -5%, rgba(255,252,240,.9), transparent);
}
#app{height:100%;padding:0;overflow:hidden}
button,input,select,textarea,.bank-card{font-family:inherit;min-height:44px;min-width:44px;font-size:16px;color:inherit}
button{cursor:pointer;border-radius:3px;padding:0 16px;border:1px solid var(--line);background:transparent}
button.sub{background:transparent;color:var(--ink);box-shadow:none;border:1px solid var(--line);letter-spacing:2px}
button.sub:active, .btn:active, .btn.lead:active{transform:translateY(2px)}

/* ===== APP 式外壳：页面不滚，头尾固定，只有 .scroll 内部滚 ===== */
.view-container{max-width:600px;margin:0 auto;height:100dvh;min-height:0;display:flex;flex-direction:column;
  gap:10px;padding:18px 20px calc(14px + env(safe-area-inset-bottom,0px));overflow:hidden}
.scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none}
.scroll::-webkit-scrollbar{width:0;height:0}
.scroll.center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.bottom{flex:0 0 auto;display:flex;flex-direction:column;gap:9px}
.top-row{flex:0 0 auto;display:flex;align-items:flex-start;gap:13px}
.top-row h1{margin:0;font-size:28px;letter-spacing:6px;font-weight:400;display:flex;align-items:center;gap:12px}
/* 朱砂印章（纯 CSS，伪元素挂在 h1 上） */
.top-row h1::before{content:"背";width:46px;height:46px;flex:0 0 auto;background:var(--red);color:#f8f3e6;
  font-size:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 0 var(--red-dark)}
.top-row h2{margin:0;font-size:24px;letter-spacing:4px;font-weight:400}
.top-row .sub{margin:0;font-size:12.5px;color:var(--dim);letter-spacing:1.5px}
.top-row > .sub, .top-row > button{margin-left:auto}
.top-row > .acct-inline{margin-left:auto}
.acct-inline .acct-chip{padding:10px 12px;font-size:13px;letter-spacing:1px}
.foot{margin-top:auto;padding-top:12px;text-align:center}
.foot-note{margin-top:8px;font-size:11.5px;color:var(--dim);line-height:1.7}
.foot-mini{display:flex;align-items:center;justify-content:center;gap:8px;min-height:30px}
.link{border:none;background:transparent;color:var(--dim);font-size:13px;text-decoration:underline;
  text-underline-offset:4px;padding:0 10px;min-height:44px;box-shadow:none}
.link:active{transform:none}
#audioTestResult{font-size:12px;color:var(--dim)}

/* ===== 首页 ===== */
.sec-title{display:flex;align-items:center;gap:10px;margin:2px 2px 0;font-size:13px;letter-spacing:3px;color:var(--dim)}
.sec-title::after{content:"";flex:1;height:0;border-top:1px solid var(--line);opacity:.8}
/* 珂罗版分隔线：上下双细线 */
.rule-double{height:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px 0;margin:2px 0}
.bank-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0}
.bank-grid.cols3{grid-template-columns:repeat(3,1fr)}
.bank-card{border:1px solid var(--line);border-radius:3px;padding:9px 6px;text-align:center;cursor:pointer;
  background:transparent;color:var(--ink);display:flex;flex-direction:column;justify-content:center;word-break:break-all;gap:1px}
.bank-card .bk-name{font-size:17px;line-height:1.2;letter-spacing:1px}
.bank-card .bk-count{font-size:11.5px;color:var(--dim);font-variant-numeric:tabular-nums}
.bank-card.selected{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.bank-card.selected .bk-count{color:rgba(245,239,225,.65)}
.bank-card.custom{border-style:dashed}
.bank-card.custom.selected{border-style:solid}
.switch-row{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;row-gap:9px}
.switch-lab{font-size:13.5px;color:var(--ink);letter-spacing:1px}
.switch{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:3px;background:transparent;padding:0}
.switch button{min-height:44px;min-width:54px;padding:0 13px;border:none;background:transparent;color:var(--dim);font-size:14.5px;border-radius:0;letter-spacing:2px}
.switch button + button{border-left:1px solid var(--line)}
.switch button.on{background:var(--ink);color:var(--paper)}
/* 主按钮：朱砂通栏 */
.btn{min-height:52px;letter-spacing:2px;background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:3px}
.btn.alt{background:var(--card2);border-color:var(--line);color:var(--ink)}
.btn.lead{min-height:60px;font-size:18px;letter-spacing:4px;background:var(--red);border:1px solid var(--red);
  color:#f9f4e7;box-shadow:0 3px 0 var(--red-dark)}
.btn.lead:active{box-shadow:0 1px 0 var(--red-dark)}
.btn.lead[disabled]{background:#c9bfa8;border-color:#c9bfa8;color:#f5efe1;box-shadow:0 3px 0 rgba(120,95,55,.25)}
.btn-row{display:flex;gap:10px}
.btn-row > *{flex:1 1 0;min-width:0;white-space:nowrap}
.sub{min-height:46px;font-size:14.5px}

/* ===== 翻卡页 ===== */
.hud{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px;margin-top:2px;
  font-size:13.5px;color:var(--dim);letter-spacing:1px;font-variant-numeric:tabular-nums}
.hud b{color:var(--red);font-weight:400}
.bar-wrap{height:2px;margin:8px 2px 0;border-radius:0;background:rgba(120,95,55,.25);overflow:hidden;box-shadow:none}
.bar-wrap i{display:block;height:100%;border-radius:0;background:var(--red);transition:width .25s}
.flip-card{position:relative;flex:0 1 auto;min-height:170px;max-height:100%;width:100%;
  background:var(--card);border:1px solid var(--line);border-radius:4px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  padding:30px 22px 30px;margin:0;text-align:center;box-shadow:0 3px 0 rgba(120,95,55,.16)}
/* 内框双线 */
.flip-card::before{content:"";position:absolute;inset:6px;border:1px solid var(--line);opacity:.35;border-radius:2px;pointer-events:none}
/* 对角朱砂角标（渐变一条伪元素画 tl+br 两个角） */
.flip-card::after{content:"";position:absolute;inset:-1px;border:2px solid transparent;border-radius:4px;pointer-events:none;
  border-image:linear-gradient(135deg,var(--red) 0 16px,transparent 16px calc(100% - 16px),var(--red) calc(100% - 16px)) 1}
.flip-card .en{font-size:clamp(38px,12.5vw,54px);font-weight:400;line-height:1.08;letter-spacing:1px;word-break:break-all;
  color:var(--ink);font-family:Georgia,"Times New Roman","STKaiti",serif}
.flip-card .ph{font-size:16.5px;color:var(--dim);font-family:Georgia,serif;margin-top:2px}
.flip-card .zh{font-size:30px;margin-top:14px;line-height:1.4;letter-spacing:8px;text-indent:8px;color:var(--red)}
.flip-card .bk-tag{position:absolute;top:13px;right:15px;font-size:11.5px;color:var(--dim);letter-spacing:2px}
.flip-card .flip-hint{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:12px;color:var(--dim);letter-spacing:3px}

/* ===== 拼写页 ===== */
.spell-ask{flex:0 0 auto;text-align:center;min-height:42px;display:flex;align-items:center;justify-content:center}
.spell-ask h3{margin:0;font-size:27px;letter-spacing:6px;color:var(--red);font-weight:400}
.letter-boxes{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin-top:4px}
.letter-box{width:34px;height:49px;background:var(--card);border:1px solid var(--line);border-bottom-width:3px;
  border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:24px;text-transform:lowercase;
  font-family:Georgia,"Times New Roman",serif;color:var(--ink);box-shadow:none}
.letter-box.revealed{color:var(--red);border-color:var(--red)}
.letter-box.error{background:#f6e3df;border-color:var(--red)}
.letter-gap{width:14px}
#spellInput{text-align:center;font-size:26px;letter-spacing:6px;height:56px;font-family:Georgia,serif;
  margin:14px 2px 0;background:transparent;border:1.5px dashed var(--line);border-radius:3px;color:var(--ink);box-shadow:none}
#spellInput:focus{border-style:solid;border-color:var(--red)}

/* ===== 结算 ===== */
.grade{color:var(--red);font-size:26px;letter-spacing:5px}
.stat-row{display:flex;gap:9px;margin-bottom:6px}
.stat-row .g-stat{flex:1 1 0;margin:0}
.grid-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}
/* 家长面板只有 3 格：最后一格横跨两列，别孤零零占半格 */
.g-stat:last-child:nth-child(odd){grid-column:1/3}
.g-stat{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:13px 12px;text-align:center;margin-bottom:0}
.g-stat .k{font-size:12px;color:var(--dim);letter-spacing:2px;margin-bottom:3px}
.g-stat .v{font-size:30px;color:var(--ink);font-weight:400;font-variant-numeric:tabular-nums}
.due-tag{display:inline-block;margin-left:7px;font-size:11.5px;color:var(--red);background:transparent;
  border:1px solid rgba(158,59,50,.45);border-radius:2px;padding:1px 7px;vertical-align:1px;letter-spacing:1px}

/* ===== 列表 / 表格 ===== */
.worditem,.table-row{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:10px 13px;
  margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:15px}
.pv-en{color:var(--ink);font-size:17px;font-family:Georgia,"Times New Roman",serif;letter-spacing:.5px}
.pv-ph{font-size:12.5px;color:var(--dim);margin-left:4px}
.pv-zh{font-size:14.5px;color:var(--dim);margin-top:3px;letter-spacing:2px}
.custom-fill-zh{width:100%;margin-top:6px;height:44px}
.need-fill{border:1px solid var(--red) !important;background:#fdf7f2 !important}
.new-tag{font-size:11.5px;color:var(--red);border:1px solid rgba(158,59,50,.45);border-radius:2px;padding:1px 6px;letter-spacing:1px}
.empty-note{text-align:center;padding:20px;color:var(--dim);font-size:14px;letter-spacing:2px}
.p-table{width:100%;border-collapse:collapse;font-size:14.5px;font-variant-numeric:tabular-nums}
.p-table th{font-weight:400;color:var(--dim);font-size:12.5px;letter-spacing:2px;text-align:left;padding:7px 6px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.p-table td{padding:9px 6px;border-bottom:1px solid rgba(120,95,55,.18);color:var(--ink);background:transparent}
.p-table tr:last-child td{border-bottom:1px solid var(--line)}
.plan-note{margin:10px 2px 0;font-size:12.5px;color:var(--dim);line-height:1.6}
.tip{background:var(--card);border:1px solid var(--line);border-radius:4px;color:var(--dim);line-height:1.8}
input[type=text],input:not([type]),textarea,select{border:1px solid var(--line);background:transparent;
  border-radius:3px;color:var(--ink);font-size:16px;padding:0 12px;box-shadow:none}
textarea{padding:10px 12px;line-height:1.7;font-family:inherit}
input:focus,textarea:focus{outline:none;border-color:var(--red)}
.stack{display:flex;flex-direction:column;gap:10px}

/* ===== toast：墨底横幅，JS 动态贴到操作栏上方 ===== */
.toast{position:fixed;top:12px;left:50%;transform:translateX(-50%);background:rgba(46,42,36,.94);
  max-width:88vw;text-align:center;color:#f5efe1;font-size:14px;letter-spacing:2px;padding:11px 20px;
  border-radius:3px;z-index:9999}

/* ===== 小屏紧凑档（320×568 一屏判据不变） ===== */
@media (max-width:345px){
  .view-container{gap:7px;padding:12px 14px calc(8px + env(safe-area-inset-bottom,0px))}
  .top-row h1{font-size:23px;letter-spacing:3px;gap:9px}
  .top-row h1::before{width:38px;height:38px;font-size:20px}
  .top-row .sub{display:none}
  .bank-grid + .sec-title,.sec-title.bank-sec{display:none}
  .sec-title{font-size:12px;letter-spacing:2px}
  .bank-grid{gap:7px}
  .bank-card{min-height:44px;padding:6px 4px}
  .bank-card .bk-name{font-size:15.5px}
  .bank-card .bk-count{font-size:11px}
  .switch button{min-height:44px;min-width:46px;padding:0 9px;font-size:14px}
  .switch-lab{font-size:12.5px}
  .btn{min-height:48px}
  .btn.lead{min-height:52px;font-size:16.5px;letter-spacing:2px}
  .sub{min-height:44px}
  .foot{padding-top:6px}
  .foot-note{display:none}
  .flip-card{padding:24px 14px}
  .letter-box{width:30px;height:44px;font-size:23px}
}
