:root{--g:#0b5d3b;--g2:#157a50;--gl:#e3f3ea;--amb:#f2b134;--bg:#f4f8f5;--card:#fff;--tx:#14231b;--mu:#5d7065;--ln:#d9e5dd;--ok:#e1f5e9;--wn:#fff3d6;--er:#fde8e6}
@media(prefers-color-scheme:dark){:root{--bg:#0e1612;--card:#17231c;--tx:#e8f1ea;--mu:#9bb0a3;--ln:#27382d;--gl:#1d3a2b;--ok:#17402b;--wn:#3d3314;--er:#44201c}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.55 system-ui,-apple-system,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}
.hero{background:linear-gradient(135deg,#0b5d3b,#157a50);color:#fff;padding:calc(12px + env(safe-area-inset-top)) 16px 14px;border-radius:0 0 22px 22px}
.top{display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:9px;align-items:center;font-weight:850;font-size:1.25rem;letter-spacing:.5px}.brand b{color:var(--amb)}
.net{font-size:.74rem;background:#ffffff26;padding:4px 9px;border-radius:99px}
.wrap{max-width:760px;margin:auto;padding:14px 14px calc(92px + env(safe-area-inset-bottom))}
h2{font-size:1.15rem;margin:18px 2px 8px}h3{margin:0 0 8px;font-size:1.05rem}.mu{color:var(--mu);font-size:.88rem}
.welcome{background:var(--card);border:1px solid var(--ln);border-radius:18px;padding:16px;margin-bottom:6px}.welcome p{margin:4px 0}
.slogan{color:var(--g2);font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.card{background:var(--card);border:1px solid var(--ln);border-radius:16px;padding:14px;text-align:left;color:var(--tx);font:inherit;width:100%;display:block}
button.card{cursor:pointer}.card.off{opacity:.62}.ic{width:40px;height:40px;border-radius:12px;background:var(--gl);display:grid;place-items:center;font-size:1.25rem;margin-bottom:6px}
.pill{display:inline-block;font-size:.72rem;background:var(--gl);color:var(--g2);padding:3px 8px;border-radius:99px;margin:0 4px 4px 0;font-weight:650}.pill.soon{background:var(--wn);color:#7a5a00}
.bar{height:8px;background:var(--ln);border-radius:9px;overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--g2),var(--amb))}
.btn{border:0;border-radius:12px;background:var(--g);color:#fff;font:inherit;font-weight:700;padding:11px 15px;cursor:pointer;margin:3px 4px 3px 0}.btn.sec{background:var(--gl);color:var(--g)}.btn.amb{background:var(--amb);color:#33260a}.btn:disabled{opacity:.45}
.back{background:var(--gl);color:var(--g);border:0;border-radius:10px;padding:8px 12px;font-weight:700;margin-bottom:8px}
.search{width:100%;padding:13px 14px;border:1px solid var(--ln);border-radius:14px;font:inherit;background:var(--card);color:var(--tx);margin:10px 0 4px}
.chips{display:flex;gap:7px;overflow:auto;padding:6px 0}.chip{white-space:nowrap;border:1px solid var(--ln);background:var(--card);color:var(--tx);border-radius:99px;padding:7px 12px;font-weight:650;font:inherit}.chip.on{background:var(--g);color:#fff;border-color:var(--g)}
.sec-box{background:var(--card);border:1px solid var(--ln);border-radius:16px;padding:15px;margin:11px 0}
.formula{background:var(--gl);border-left:4px solid var(--g2);padding:10px 12px;border-radius:8px;margin:8px 0;overflow-wrap:anywhere;font-size:.97rem}
.step{border-left:3px solid var(--g2);padding:2px 0 2px 12px;margin:9px 0 9px 4px}.ans{background:var(--ok);border-radius:10px;padding:11px;margin-top:8px}.warn{background:var(--wn);border-radius:10px;padding:11px}.err{background:var(--er);border-radius:10px;padding:11px;margin-top:8px}
.q input{width:100%;padding:12px;border:1px solid var(--ln);border-radius:12px;font:inherit;background:var(--card);color:var(--tx);margin:8px 0}
.nav{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--ln);display:flex;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:5}
.nav button{flex:1;background:none;border:0;color:var(--mu);font:inherit;font-size:.74rem;font-weight:700;padding:5px 2px;border-radius:12px;display:flex;flex-direction:column;align-items:center}.nav button span{font-size:1.25rem}.nav button.on{background:var(--gl);color:var(--g)}
.fav{float:right;background:none;border:0;font-size:1.4rem;color:var(--amb);cursor:pointer}
.empty{text-align:center;color:var(--mu);padding:22px}
