:root{--bg: #1a1410;--card: #26201a;--card2: #322a22;--text: #f0e9df;--muted: #a99a88;--accent: #d4915a;--accent2: #6f4e37;--good: #7cb87c;--bad: #c96f5e;--radius: 14px}*{box-sizing:border-box;margin:0}html,body{background:var(--bg);color:var(--text)}body{font-family:-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.shell{min-height:100dvh;display:flex;flex-direction:column}main{flex:1;padding:16px 16px 90px;max-width:560px;width:100%;margin:0 auto}h1{font-size:1.5rem;margin-bottom:14px}h2{font-size:1.1rem;margin:18px 0 8px;color:var(--muted)}a{color:var(--accent);text-decoration:none}.bottomnav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);border-top:1px solid #000;padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{flex:1;text-align:center;padding:14px 0 10px;color:var(--muted);font-size:.85rem}.bottomnav a.active{color:var(--accent)}.card{background:var(--card);border-radius:var(--radius);padding:14px;margin-bottom:10px}.row{display:flex;align-items:center;gap:12px}.row .grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:.9rem}button,.btn{font:inherit;border:0;border-radius:var(--radius);padding:14px 18px;background:var(--card2);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent}button.primary,.btn.primary{background:var(--accent);color:#241505;font-weight:700;width:100%;display:block;text-align:center}button.small{padding:8px 12px;font-size:.85rem}input,select,textarea{font:inherit;width:100%;padding:12px;border-radius:10px;border:1px solid #3d332a;background:var(--card2);color:var(--text)}label{display:block;margin:10px 0 4px;color:var(--muted);font-size:.9rem}.error{color:var(--bad);margin-top:10px}.login{margin-top:30dvh;display:flex;flex-direction:column;gap:12px}.pickgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pickgrid button{padding:18px 10px;font-size:1.05rem}.pickgrid button.selected{outline:2px solid var(--accent)}.beanthumb{width:52px;height:52px;border-radius:12px;object-fit:cover;background:var(--card2)}.beanthumb.placeholder{display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stars button{background:none;padding:2px;font-size:1.3rem;color:#4a4038}.stars button.on{color:var(--accent)}.stars button:disabled{cursor:default}.params{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:10px 0}.params div b{display:block;font-size:1.15rem}.params div span{color:var(--muted);font-size:.8rem}.steplist{display:flex;flex-direction:column;gap:6px}.steprow{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:6px;align-items:center}.brewscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;transition:background .15s}.brewscreen.flash{background:var(--accent2)}.brewscreen .clock{font-size:3.2rem;font-variant-numeric:tabular-nums;font-weight:700}.brewscreen .weight{font-size:4.5rem;font-variant-numeric:tabular-nums;font-weight:800;color:var(--accent)}.brewscreen .stepname{font-size:1.4rem}.brewscreen .next{color:var(--muted)}.progress{width:100%;height:10px;border-radius:5px;background:var(--card2);overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);transition:width .2s linear}
