:root{
  --green:#2e7d32; --green-dark:#1b5e20; --gold:#ffd54f;
  --bg:#f3f7f2; --card:#fff; --text:#22301f; --text2:#6b7a68;
  --radius:16px; --shadow:0 4px 18px rgba(46,125,50,.12);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:16px;line-height:1.6;padding-bottom:24px}
.hidden{display:none!important}
#app-header{position:sticky;top:0;z-index:50;background:linear-gradient(135deg,#43a047,#2e7d32);
  color:#fff;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));box-shadow:0 2px 10px rgba(27,94,32,.3)}
.header-inner{display:flex;align-items:center;gap:8px;max-width:640px;margin:0 auto}
.header-title{font-size:18px;font-weight:700;flex:1}
.logo{font-size:20px}
.icon-btn{background:rgba(255,255,255,.16);border:none;color:#fff;font-size:18px;
  width:38px;height:38px;border-radius:12px;cursor:pointer}
.view{max-width:640px;margin:0 auto;padding:16px}
.hero{text-align:center;padding:18px 0 8px}
.hero-logo{width:84px;height:84px;border-radius:22px;box-shadow:var(--shadow)}
.hero h1{font-size:26px;margin-top:8px;letter-spacing:4px;color:var(--green-dark)}
.hero .sub{color:var(--text2);font-size:13px}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin:14px 0}
.row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed #e6ede4;font-size:15px}
.row:last-child{border-bottom:none}
.row b{color:var(--green-dark)}
.primary{display:block;width:100%;border:none;border-radius:14px;background:linear-gradient(135deg,#4caf50,#2e7d32);
  color:#fff;font-size:17px;font-weight:700;padding:14px;margin-top:12px;cursor:pointer;box-shadow:0 4px 14px rgba(46,125,50,.3)}
.primary:active{transform:translateY(1px)}
.primary.big{font-size:19px;padding:17px}
.ghost{display:block;width:100%;border:1px solid #cfe0cc;background:#fff;color:var(--green-dark);
  border-radius:14px;font-size:15px;padding:12px;margin-top:10px;cursor:pointer}
.tip{text-align:center;color:var(--text2);font-size:13px;margin-top:10px}
.footer{text-align:center;color:#9aab96;font-size:12px;padding:18px}
/* 解锁页 */
.lock-wrap{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-top:8px}
.lock-banner{text-align:center;font-size:17px;font-weight:700;color:var(--green-dark);margin-bottom:10px}
.lock-meta{display:flex;justify-content:space-between;font-size:13px;color:var(--text2);margin-bottom:8px}
.content-block{background:#f7fbf6;border:1px solid #e2ecdf;border-radius:12px;padding:14px;min-height:150px}
.block-title{font-weight:700;color:var(--green-dark);font-size:16px;margin-bottom:8px}
.lines div{font-size:17px;color:#4b5a48;padding:2px 0}
.lines div.done{color:#a8b8a4;text-decoration:line-through}
.curline{margin-top:10px;font-size:22px;font-weight:700;line-height:1.55;color:#1b5e20}
.curline small{display:block;font-size:13px;color:var(--text2);font-weight:400;margin-top:4px}
.word-list{display:flex;flex-direction:column;gap:4px}
.word-list div{font-size:15px;color:#4b5a48}
.word-list div.done{color:#a8b8a4;text-decoration:line-through}
.progress-outer{height:8px;background:#e7efe5;border-radius:8px;margin:16px 0 4px;overflow:hidden}
.progress-inner{height:100%;width:0;background:linear-gradient(90deg,#81c784,#2e7d32);transition:width .3s}
.lock-tip{text-align:center;color:var(--text2);font-size:12px;margin-top:10px}
/* 完成页 */
.done-wrap{text-align:center;padding:40px 16px}
.done-emoji{font-size:64px}
.done-wrap h2{margin:10px 0;color:var(--green-dark)}
.done-wrap p{color:var(--text2);font-size:14px}
/* 设置 */
h3{font-size:16px;margin-bottom:10px;color:var(--green-dark)}
h3.mt{margin-top:22px}
input,select{width:100%;font-size:16px;padding:11px 12px;border:1px solid #d8e4d5;border-radius:12px;
  background:#fff;margin-bottom:8px;color:var(--text)}
.lbl{display:block;font-size:14px;font-weight:600;color:#4b5a48;margin:12px 0 6px}
.history{font-size:13px;color:var(--text2);white-space:pre-wrap;line-height:1.7}
