[hidden]{display:none!important}
:root{--acc:#5e6b16;--acc2:#4b5611;--soft:#eef0d6;--saf:#e0a526;--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 #d3d9a8;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 #d9dcc0;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 #d3d9a8}.btn.danger{color:#b3261e;border-color:#f3c1bd}.btn[disabled]{opacity:.6}
.btn.mic{background:#fff;color:var(--ink);border:2px solid #d9dcc0;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:#e4e6cf;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:#4b5611;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:#4b5611;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 #d3d9a8;border-radius:14px;padding:14px;text-align:center}.badge{display:inline-block;background:var(--soft);color:#4b5611;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}
.bookcard .bk{border-radius:12px;padding:22px 14px;margin:0 0 10px;background:var(--acc);color:#fff;display:flex;flex-direction:column;gap:4px;box-shadow:inset 0 0 0 4px #ffffff22}.bookcard .bk b{font-family:Georgia,serif;font-size:23px;line-height:1.2}.bookcard .bk small{font-style:italic;opacity:.9;font-size:15px}
.st-azafran .bk{background:#a8670a}.st-tomate .bk{background:#a8382a}.st-mar .bk{background:#2c5e7a}.bookcard p{margin:6px 0}.dr{color:#8a5a00;font-weight:700}
.sw{display:inline-block;width:16px;height:16px;border-radius:50%;margin-right:6px;vertical-align:-2px;border:2px solid #fff;box-shadow:0 0 0 1px #0002}.sw-oliva{background:#5e6b16}.sw-azafran{background:#a8670a}.sw-tomate{background:#a8382a}.sw-mar{background:#2c5e7a}
.welcome{margin:18px 0 6px;text-align:center}.welcome h2{font-family:Georgia,serif;margin:0 0 6px}
section.cat h2{display:flex;align-items:center;gap:8px;font-family:Georgia,serif;border-bottom:2px solid var(--saf);padding-bottom:4px}section.cat h2 small{font:600 14px system-ui,sans-serif;color:var(--mute)}
.rlist{list-style:none;padding:0;margin:0;display:grid;gap:8px}.rlist a{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:8px 12px 8px 8px;text-decoration:none;color:var(--ink);min-height:60px;box-shadow:0 1px 4px #0000000a}
.rt{flex:none;width:48px;height:48px;border-radius:10px;background:var(--soft);display:grid;place-items:center;font-size:22px;overflow:hidden}.rt img{width:100%;height:100%;object-fit:cover}.rn{flex:1;display:flex;flex-direction:column;min-width:0}.rn b{font-weight:650;overflow:hidden;text-overflow:ellipsis}.rn small{color:var(--mute);font-size:14px}
.badge{flex:none}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pair .fld{margin:6px 0}.rform .seg button{flex:1 1 40%;min-height:46px;font-size:16px;padding:8px 10px}.fld .hint{display:block;margin:-2px 0 6px}
.fam{list-style:none;padding:0;margin:0;display:grid;gap:14px}.fam li{background:#fff;border-radius:14px;padding:10px;box-shadow:0 1px 6px #0001}.fam .thumb{box-shadow:none;padding:0}.fam .fld{margin:8px 0 0}
.cats{list-style:none;padding:0;margin:0;display:grid;gap:8px}.cats li{display:flex;align-items:center;gap:6px}.cats .catn{flex:1;min-width:0;min-height:48px}.cats .cc{min-width:22px;text-align:center;color:var(--mute);font-size:14px;font-weight:700}
.mini{flex:none;width:44px;height:44px;border-radius:10px;border:1.5px solid #d9dcc0;background:#fff;color:var(--ink);font:inherit;font-size:18px;cursor:pointer}.mini[disabled]{opacity:.35}.mini.danger{color:#b3261e;border-color:#f3c1bd}.mini.ghost{visibility:hidden}
.wa .seg button{flex:1 1 auto;font-size:15px;min-height:44px}.wa .seg small{display:block;font-weight:400;font-size:12px;opacity:.85}input[type=search]{margin:4px 0 12px}
.msgs{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}.msg{display:flex;gap:10px;align-items:flex-start;background:#fff;border-radius:12px;padding:10px 12px;border:2px solid transparent;cursor:pointer;box-shadow:0 1px 4px #0000000a}.msg.on{border-color:var(--acc);background:#fafbef}
.msg input{width:22px;height:22px;min-height:0;flex:none;margin:3px 0 0;accent-color:var(--acc)}.msg small{display:block;color:var(--mute);font-size:13px}.mt{display:block;white-space:pre-wrap;font-size:15px;line-height:1.4;word-break:break-word}.waimg img{display:block;max-width:160px;max-height:160px;border-radius:8px;margin:4px 0}
.stick{position:sticky;bottom:0;background:var(--bg);padding:8px 0 calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.stick .seg button{font-size:14px;min-height:44px}.stick p{margin:4px 0}
.seg button.on small{color:#fff;opacity:.9}
