:root{--ink:#1f2a27;--muted:#68746e;--paper:#f6f3ed;--card:#fffdf9;--green:#176b5b;--green-soft:#e4f0ec;--orange:#d88951;--line:#e6e1d7;--red:#aa4a45}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}.app-shell{min-height:100dvh;max-width:650px;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 18px calc(92px + env(safe-area-inset-bottom))}button,select{font:inherit}button{border:0;cursor:pointer}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.brand{font-size:19px;font-weight:800;letter-spacing:.3px}.brand b{color:var(--green)}.nav{display:flex;gap:7px}.nav button{background:transparent;color:var(--muted);padding:7px 9px;border-radius:10px;font-size:13px}.nav button.active{color:var(--green);background:var(--green-soft);font-weight:700}.hero{background:var(--green);color:#fff;border-radius:24px;padding:24px;box-shadow:0 10px 24px #176b5b25}.eyebrow{font-size:13px;opacity:.75;margin:0 0 7px}.eyebrow.dark{color:var(--green);opacity:1;font-weight:800}.hero h1{font-size:27px;margin:0 0 9px;line-height:1.25}.hero p{margin:0;opacity:.86;font-size:14px;line-height:1.6}.card{background:var(--card);border:1px solid var(--line);border-radius:19px;padding:18px;margin-top:14px}.card h2{font-size:17px;margin:0 0 10px}.card p{font-size:14px;color:var(--muted);line-height:1.65;margin:0}.primary,.secondary,.ghost{padding:13px 16px;border-radius:13px;font-weight:750}.primary{background:var(--orange);color:#fff;box-shadow:0 5px 12px #d8895140}.secondary{background:var(--green-soft);color:var(--green)}.ghost{background:#f1eee7;color:var(--ink)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.quick{background:var(--card);border:1px solid var(--line);text-align:left;border-radius:15px;padding:15px;color:var(--ink)}.quick strong{display:block;font-size:14px}.quick small{color:var(--muted);display:block;margin-top:5px}.notice{font-size:12px;color:var(--muted);padding:0 4px;line-height:1.55}.view-title{font-size:25px;margin:4px 0 5px}.view-subtitle{color:var(--muted);font-size:14px;margin:0 0 18px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.filters select{width:100%;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px;color:var(--ink)}.question-list{display:grid;gap:10px;margin-top:15px}.question-row{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:14px;text-align:left;color:var(--ink)}.question-row strong{display:block;margin:7px 0;font-size:15px;line-height:1.5}.question-row span{font-size:12px;color:var(--muted)}.tag{display:inline-block;background:var(--green-soft);color:var(--green);font-size:12px;padding:4px 8px;border-radius:99px}.progress{font-size:13px;color:var(--muted);margin-bottom:14px}.question-card{background:var(--card);border:1px solid var(--line);border-radius:21px;padding:22px}.question-card h1{font-size:21px;line-height:1.65;margin:17px 0 25px}.meta{display:flex;gap:7px;flex-wrap:wrap}.math{font-family:Georgia,serif;letter-spacing:.2px}.answer{margin-top:18px;border-top:1px dashed var(--line);padding-top:17px}.answer h2{font-size:16px;margin:0 0 7px}.answer .final{font-size:20px;color:var(--green);font-weight:800;margin:6px 0 13px;line-height:1.65}.analysis-text{font-size:15px;line-height:1.75;color:#3d4944}.rating{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.rating h3{font-size:15px;margin:0 0 9px}.rating-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.rating-buttons button{border-radius:11px;padding:12px 4px;background:#f0ede7;color:var(--ink);font-weight:800}.rating-buttons button:nth-child(1),.rating-buttons button:nth-child(2){background:#f7e1df;color:var(--red)}.rating-buttons button:nth-child(4),.rating-buttons button:nth-child(5){background:var(--green-soft);color:var(--green)}.practice-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.empty{text-align:center;padding:34px 15px;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat{background:var(--card);border:1px solid var(--line);padding:16px;border-radius:16px}.stat b{font-size:28px;display:block;color:var(--green)}.stat span{font-size:13px;color:var(--muted)}.bar-row{display:grid;grid-template-columns:72px 1fr 32px;gap:8px;align-items:center;margin:11px 0;font-size:13px}.bar{height:9px;background:#ece8df;border-radius:8px;overflow:hidden}.bar i{display:block;height:100%;background:var(--orange);border-radius:8px}.recent{margin:0;padding-left:18px;color:var(--muted);font-size:14px;line-height:1.85}.back{background:transparent;padding:0;color:var(--green);font-weight:700}.hidden{display:none}.setup-card h2:not(:first-child){margin-top:20px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:9px}.segmented button,.kind-grid button{background:#f1eee7;color:var(--ink);border:2px solid transparent;border-radius:14px;padding:13px;text-align:left}.segmented button.selected,.kind-grid button.selected{background:var(--green-soft);border-color:var(--green);color:var(--green)}.segmented b,.kind-grid b{display:block;font-size:14px}.segmented small,.kind-grid small{display:block;margin-top:5px;color:var(--muted);line-height:1.35}.kind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.start-session,.finish-wide,.resume-wide{width:100%;margin-top:18px}.resume-wide{display:block}.paper-crop{display:block;width:100%;height:auto;margin:12px 0;border-radius:10px;border:1px solid var(--line);background:#fff}.review-list{display:grid;gap:18px}.review-card{margin-top:0}.review-number{font-size:13px!important;color:var(--orange)!important;font-weight:800}.review-card .answer{margin-top:24px}.finish-wide{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));z-index:2}@media(max-width:480px){.kind-grid{grid-template-columns:1fr}.kind-grid button{display:flex;align-items:center;justify-content:space-between}.kind-grid small{margin:0}.segmented{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}}@media(max-width:370px){.app-shell{padding-left:13px;padding-right:13px}.hero h1{font-size:24px}.question-card{padding:17px}}
