:root{--bg:#f5f2ea;--paper:#fffdf8;--ink:#222b26;--muted:#74776c;--line:#e2e1d6;--green:#2f6f63;--soft:#e3eee7;--warm:#a66530;--red:#a33d35}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;padding-bottom:100px}.wrap{max-width:790px;margin:auto;padding:0 20px}header{position:sticky;top:0;background:#f5f2eaf5;border-bottom:1px solid var(--line);z-index:20;padding-top:env(safe-area-inset-top)}.top{height:62px;display:flex;align-items:center;gap:18px}.top strong{flex:1;font-size:20px}.top small{font-size:13px;font-weight:400;color:var(--muted);margin-left:8px}a{color:var(--green);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:9px 14px;min-height:42px}button:hover,a.card:hover{border-color:#7c9c8a}button:focus-visible,a:focus-visible{outline:3px solid #c2934a;outline-offset:3px}.btn{background:var(--green);color:white;border-color:var(--green);font-weight:600}.soft{background:var(--soft);color:var(--green)}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;margin:16px 0;box-shadow:0 4px 18px #28321e05}.hero{padding:30px 26px;background:linear-gradient(125deg,#fdfcf4,#edf1e5);position:relative}.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--warm);font-weight:700}.hero h1{font:600 33px/1.35 'Songti SC',serif;margin:12px 0}.muted,small{color:var(--muted)}.muted{font-size:14px}h1{font-size:25px;margin:22px 0 8px}h2{font-size:19px;margin:0 0 10px}h3{font-size:16px;margin:10px 0}p{margin:9px 0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 15px}.stats b{display:block;font-size:27px;line-height:1.25}.stats span{font-size:12px;color:var(--muted)}.banks{display:grid;grid-template-columns:1fr 1fr;gap:16px}.banks .card{margin:0}.bankno{font:italic 34px Georgia;color:#a9b9a4}.full{width:100%}.chip{display:inline-block;border-radius:6px;padding:2px 8px;background:var(--soft);color:var(--green);font-size:12px}.warn{background:#fbefdf;border-left:3px solid #be8441;border-radius:8px;padding:14px 16px;margin:14px 0;font-size:14px}.warn strong{color:#8c542b}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.filters>*{min-width:0;max-width:100%;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:10px}.filters input{flex:1;min-width:160px}.qlist{padding:0;overflow:hidden}.qrow{display:flex;gap:13px;padding:17px 20px;border-bottom:1px solid var(--line);color:var(--ink)}.qrow:last-child{border:0}.num{min-width:28px;color:var(--green);font-size:13px;font-weight:700;padding-top:3px}.qbody{flex:1;min-width:0}.qbody small{display:block;margin-top:5px;font-size:12px}.qrow:hover{background:#f3f5eb}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.stem{font:20px/1.85 'Songti SC',serif;white-space:pre-wrap}.qbar{margin-top:22px}.qbar button{margin-left:auto}.paper{padding:26px}textarea{display:block;width:100%;min-height:100px;border:1px solid var(--line);border-radius:10px;background:#fcfbf5;padding:12px;resize:vertical;margin:10px 0;line-height:1.6}textarea:focus{outline:2px solid #92b4a1}details{border-top:1px solid var(--line);padding:14px 0}summary{cursor:pointer;color:var(--green);font-weight:600;list-style-position:inside}details p{white-space:pre-wrap;font:17px/1.9 'Songti SC',serif}.outline li{padding:5px 0;font-size:15px}.outline{padding-left:22px}.clock{font:600 27px/1.3 ui-monospace,monospace;letter-spacing:.05em}.assess{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.assess .on{background:var(--green);color:white}.review{color:var(--red)}.good{color:var(--green)}.history{font-size:13px;border-top:1px solid var(--line);padding:9px 0}.footlinks{margin:20px 0}.footlinks a{border:1px solid var(--line);border-radius:10px;padding:9px 14px;background:var(--paper)}nav{position:fixed;bottom:0;left:0;right:0;max-width:790px;margin:auto;display:flex;background:#fffdf8f5;border:1px solid var(--line);border-radius:15px 15px 0 0;z-index:30;padding-bottom:env(safe-area-inset-bottom)}nav a{flex:1;text-align:center;color:var(--muted);padding:8px;font-size:21px}nav span{display:block;font-size:12px}nav a.on{color:var(--green);font-weight:700}#dialog:empty{display:none}.mask{position:fixed;inset:0;background:#1d302a66;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--paper);width:min(790px,100%);max-height:85vh;overflow:auto;border-radius:20px 20px 0 0;padding:24px}.grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin:14px 0}.grid a{border:1px solid var(--line);border-radius:8px;text-align:center;padding:8px 2px;font-size:13px}.grid a.s1{background:#f8e4dc;color:#943b2b}.grid a.s2{background:#f4eace;color:#8b6528}.grid a.s3{background:#dcecdf;color:#286043}.grid a.current{outline:2px solid var(--green)}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:#273a30;color:#fff;padding:10px 18px;border-radius:10px;z-index:80;display:none;font-size:14px}.note-lines p{white-space:pre-wrap}.metric{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0}.pillrow button.on{background:var(--green);color:white}.checklist label{display:block;margin:7px 0}.small{font-size:13px}.progress{height:5px;border-radius:5px;background:var(--line);overflow:hidden;margin:12px 0}.progress i{display:block;height:100%;background:var(--green)}@media(max-width:560px){.wrap{padding:0 14px}.banks{grid-template-columns:1fr}.hero h1{font-size:29px}.card{padding:18px}.paper{padding:20px}.assess button{font-size:14px;padding:9px 4px}.grid{grid-template-columns:repeat(6,1fr)}.top small{display:none}.stem{font-size:19px}.filters select{max-width:48%}}[hidden]{display:none!important}

details p{font-size:calc(var(--reading-size,16px) + 1px)}.stem{font-size:calc(var(--reading-size,16px) + 4px)}
