[hidden]{display:none!important}
:root{--acc:#b5562b;--acc2:#9a4622;--soft:#fbe2d4;--ink:#2a2420;--mute:#6b625a;--bg:#f7f4ec;--card:#fff;--line:#e8dccf}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font:18px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--acc)}h1,h2{line-height:1.2}h2{font-size:21px;margin:26px 0 10px}
.bar{display:block}header.bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top));background:var(--acc);color:#fff}
header.bar .bt{flex:1;margin:0;font-size:19px;font-weight:800;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:#fff;text-decoration:none;font-size:26px;line-height:1}.iconbtn.ghost{visibility:hidden}.logo img{display:block;border-radius:8px;background:#fff;margin-left:6px}
main.pad{max-width:640px;margin:0 auto;padding:16px 16px 40px}
.hero{text-align:center;margin:10px 0 18px}.hero img{border-radius:16px}.hero h1{font-size:27px;margin:12px 0 6px}.lead{font-size:19px;color:var(--mute);margin:0 0 14px}.big{font-size:46px;margin:6px 0}
.muted{color:var(--mute)}.center{text-align:center}.small{font-size:15px}.hint{color:var(--mute);font-size:15px;margin:8px 0}
.fld{display:block;margin:16px 0}.fld>span{display:block;font-weight:700;font-size:16px;margin-bottom:7px}.fld small{font-weight:400;color:var(--mute)}
input,textarea{display:block;width:100%;font:inherit;padding:12px 13px;border-radius:12px;border:1.5px solid #cfc5ba;background:#fff;color:inherit;min-height:50px}
textarea{resize:vertical;line-height:1.5}textarea.big{font-size:20px;min-height:200px}input:focus,textarea:focus{outline:3px solid #f0c9b4;border-color:var(--acc)}
.seg{display:flex;flex-wrap:wrap;gap:8px}.seg button{flex:1 1 auto;min-height:50px;padding:10px 14px;border-radius:12px;border:1.5px solid #e0cfc2;background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.seg button.on{background:var(--acc);border-color:var(--acc);color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:14px;background:var(--acc);color:#fff;font:inherit;font-weight:700;padding:13px 18px;text-decoration:none;cursor:pointer;min-height:52px;text-align:center}
.btn:active{background:var(--acc2)}.btn.big{font-size:20px;min-height:60px}.btn.wide{display:flex;width:100%;margin:10px 0}.btn.ghost{background:#fff;color:var(--acc);border:2px solid #f0c9b4}.btn.danger{color:#b3261e;border-color:#f3c1bd}.btn[disabled]{opacity:.6}
.btn.mic{background:#fff;color:var(--ink);border:2px solid #e0cfc2;min-height:54px;padding:10px 22px;font-size:19px}.btn.mic.on{background:#b3261e;border-color:#b3261e;color:#fff;animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.75}}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.two .btn{min-height:56px;font-size:16px;padding:10px}
.filebtn{position:relative;overflow:hidden}.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0}
.linkbtn{background:none;border:0;color:var(--acc);font:inherit;font-size:15px;font-weight:600;padding:8px 0;cursor:pointer}
.msgline{min-height:1.3em;margin:8px 0;font-weight:600;text-align:center}.err{color:#b3261e}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);max-width:92vw;background:#2a2420;color:#fff;padding:12px 18px;border-radius:14px;font-size:16px;z-index:50;box-shadow:0 6px 20px #0004;text-align:center}
.hello{font-size:17px;color:var(--mute);margin:0 0 8px}
.prog .pl{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--mute);margin-bottom:6px}.prog .pl span:first-child{font-weight:700;color:var(--acc)}
.bar>i,.bookcard .bar>i{display:block;height:100%;background:var(--acc);border-radius:99px}.prog .bar,.bookcard .bar{height:8px;background:#ecdfd3;border-radius:99px;overflow:hidden}
.qt{font-family:Georgia,"Times New Roman",serif;font-size:26px;line-height:1.3;font-weight:600;margin:18px 0 14px;outline:none}
.tag{display:inline-block;margin:16px 0 0;background:var(--soft);color:#8f3f1c;border-radius:99px;padding:3px 12px;font-size:14px;font-weight:700}
.note{border-radius:12px;padding:10px 14px;font-size:16px;margin:12px 0}.gentle{background:#eef4ee;color:#2f5a3a}.nudge{background:#fff3d6;color:#6b4e00}
.voice{display:flex;flex-direction:column;align-items:flex-start;margin:12px 0}.listening{color:#b3261e;font-weight:600;margin:8px 0 0;font-size:16px}
.ph{margin:12px 0}.thumb{margin:0;background:#fff;border-radius:14px;padding:8px;box-shadow:0 1px 6px #0001;text-align:center}.thumb img{max-width:100%;max-height:260px;border-radius:8px;display:block;margin:0 auto}
.tips{padding-left:22px;font-size:18px}.tips li{margin:10px 0}
.bookcard{background:#fff;border-radius:18px;padding:16px;box-shadow:0 2px 12px #0000000d;text-align:center}.bookcard h2{font-family:Georgia,serif;margin:4px 0 6px;font-size:23px}
.chs,.qlist{list-style:none;padding:0;margin:0;display:grid;gap:8px}.chs a,.qlist a{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:12px 14px;text-decoration:none;color:var(--ink);min-height:56px;box-shadow:0 1px 4px #0000000a}
.cn{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--soft);color:#8f3f1c;font-weight:800;font-size:14px;flex:none}.ct{flex:1;font-weight:600}.ct small{font-weight:400;color:var(--mute)}.cc{font-size:14px;color:var(--mute);font-weight:700}.cc.full{color:#1f7a4c}
.qi{flex:none;width:26px;text-align:center;font-size:18px;color:var(--mute)}.qlist .ok .qi{color:#1f7a4c}.qlist .sk .qi{color:#b07a00}.qlist a span:last-child{font-size:16px}
.card{background:#fff;border-radius:18px;padding:14px 16px;margin:18px 0;box-shadow:0 2px 12px #0000000d}.card .btn.wide{margin:6px 0}
.warn{background:#fff3d6;color:#5a4300;border-radius:14px;padding:14px;font-size:16px}
.status{display:flex;flex-direction:column;align-items:center;gap:4px;background:#e6f4ec;color:#1f5f3e;border-radius:14px;padding:14px;margin:10px 0;text-align:center}.status b{font-size:26px}.status.confirming{background:#fff3d6;color:#5a4300}
.soon{background:#fff;border:2px dashed #f0c9b4;border-radius:14px;padding:14px;text-align:center}.badge{display:inline-block;background:var(--soft);color:#8f3f1c;font-weight:700;font-size:14px;border-radius:99px;padding:3px 12px}
form.inline{display:flex;gap:8px}form.inline input{flex:1}code{word-break:break-all}.links a{margin:0 2px}.done .btn{margin-top:10px}
