:root{--bg:#f4f2ec;--card:#fffefa;--ink:#272a25;--muted:#77796f;--line:#e7e2d8;--green:#365d50;--soft:#e8f0ea;--red:#a9473d;--gold:#96713c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Noto Sans CJK SC",sans-serif}.app{max-width:620px;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 17px calc(28px + env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin:0 0 4px}h1{font-size:25px;margin:0}.sub{font-size:12px;color:var(--muted);margin:4px 0 0}.install{background:var(--green);color:white;border:0;border-radius:18px;padding:9px 14px}.tabs{display:flex;gap:3px;padding:4px;background:#e9e6de;border-radius:13px;margin-bottom:15px}.tab{flex:1;border:0;background:none;padding:10px 3px;border-radius:10px;color:var(--muted);font-size:12px}.tab.active{background:var(--card);color:var(--ink);font-weight:700}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.segmented{display:flex;background:#e9e6de;border-radius:10px;padding:3px}.script{border:0;background:none;padding:8px 10px;border-radius:8px;color:var(--muted);font-size:12px}.script.active{background:white;color:var(--ink);font-weight:650}.toolbar select{max-width:58%;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:12px;color:var(--ink)}.panel,.review-card{background:var(--card);border:1px solid var(--line);border-radius:21px;padding:18px 16px;text-align:center;box-shadow:0 8px 28px #302b1b08}.topline{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.prompt{font-size:13px;color:var(--muted);margin:13px 0 0}.question{font-family:"Noto Serif CJK JP","Yu Mincho",serif;font-size:clamp(76px,25vw,132px);line-height:1.25;min-height:1.25em;margin:0;color:#294238}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.choice{border:1px solid var(--line);background:white;border-radius:11px;padding:13px 5px;font-size:20px;color:var(--ink)}.choice:active{background:var(--soft)}form{display:flex;gap:8px;margin-top:10px}input[type=text]{min-width:0;flex:1;border:1px solid var(--line);border-radius:11px;padding:13px;text-align:center;font-size:17px;outline:none;background:white}input:focus{border-color:var(--green)}.primary{border:0;background:var(--green);color:white;border-radius:11px;padding:0 20px;font-weight:650}.primary.wide{padding:13px 24px}.feedback{min-height:22px;font-size:13px;color:var(--muted);margin:12px 0 3px}.feedback.good{color:var(--green);font-weight:700}.feedback.bad{color:var(--red);font-weight:700}.actions{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.secondary,.next{border:0;background:none;padding:9px;color:var(--muted);font-size:12px}.secondary{color:var(--gold)}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin:22px 0 10px}.section-title h2{font-size:16px;margin:0}.section-title span{font-size:11px;color:var(--muted)}.groups{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.group{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 3px;font-size:12px;color:var(--muted)}.group.selected{background:var(--soft);border-color:#b9c9bf;color:var(--green);font-weight:650}.stats,.progress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#eceae3;border-radius:14px;margin-top:18px;padding:13px 3px}.stats div,.progress-grid div{display:flex;flex-direction:column;align-items:center;gap:3px}.stats b,.progress-grid b{font-size:20px}.stats small,.progress-grid small{font-size:10px;color:var(--muted)}.review-card{padding:25px 18px;margin-top:12px}.review-number{font-size:55px;color:var(--green);font-weight:750}.review-card p{font-size:13px;color:var(--muted);margin:0 0 17px}.weak-list{display:flex;flex-wrap:wrap;gap:7px}.weak{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:13px}.weak small{color:var(--muted);margin-left:5px}.note{font-size:11px;line-height:1.7;color:var(--muted);margin-top:18px}.progress-grid{grid-template-columns:repeat(3,1fr)}.subhead{font-size:14px;margin:22px 0 10px}.barrow{display:grid;grid-template-columns:55px 1fr 35px;gap:8px;align-items:center;margin:10px 0;font-size:12px}.bar{height:8px;background:#e8e5dd;border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green);border-radius:9px}.reset{margin-top:28px;border:1px solid #e5c9c5;color:var(--red);background:transparent;border-radius:10px;padding:11px 14px;font-size:12px}.kana-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.cell{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:9px 2px;text-align:center}.cell b{display:block;font-size:24px;font-weight:500}.cell small{font-size:10px;color:var(--muted)}.table-group h3{font-size:13px;color:var(--muted);margin:15px 0 7px}footer{text-align:center;color:#99998f;font-size:10px;margin-top:25px}@media(min-width:520px){.app{padding-top:30px}.panel{padding:22px}}