.tool{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5)}.tool .field{display:flex;flex-direction:column;gap:var(--sp-2)}.tool label{font-size:var(--step--1);color:var(--ink-soft);font-weight:500}.tool b{color:var(--ink)}.tool .note,.tool .grindline,.tool .ratioline{font-size:var(--step--1);color:var(--ink-soft);margin:0}.tool .seg{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tool .seg.wrap-seg button{flex:1 1 auto}.tool .seg button{background:var(--bg);border:1px solid var(--line);color:var(--ink-soft);padding:.5em .9em;border-radius:var(--r);cursor:pointer;font-family:var(--font-body);font-size:var(--step--1);transition:all .14s var(--ease);min-height:40px}.tool .seg button:hover{border-color:var(--accent);color:var(--ink)}.tool .seg button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.tool input[type=range]{width:100%;accent-color:var(--accent);height:28px}.tool input[type=text],.tool input[type=date],.tool select{width:100%;padding:.6em .7em;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);min-height:44px}.tool .result{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4) var(--sp-5)}.tool .result .big{display:flex;align-items:baseline;gap:var(--sp-4);justify-content:center;flex-wrap:wrap}.tool .result .big .num{font-family:var(--font-mono);font-size:var(--step-4);font-weight:600;color:var(--accent-deep)}.tool .result .big .unit{font-size:var(--step--1);color:var(--ink-soft);margin-left:4px}.tool .result .big .x{font-size:var(--step-2);color:var(--ink-faint)}.tool .result .note{margin-top:var(--sp-2)}.tool .result dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-2) var(--sp-4);margin:0}.tool .result dt{font-weight:600;color:var(--ink-faint);font-size:var(--step--1)}.tool .result dd{margin:0;font-size:var(--step--1);line-height:1.5}.brew .timer{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);text-align:center}.brew .clock{font-family:var(--font-mono);font-size:clamp(3rem,2rem + 8vw,4.5rem);font-weight:600;color:var(--ink);line-height:1}.brew .now{min-height:4.2em;margin:var(--sp-3) 0}.brew .now .lab{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-deep);font-weight:700}.brew .now p{font-size:var(--step-1);margin:var(--sp-1) 0}.brew .now .upnext{display:block;font-size:var(--step--1)}.brew .controls{display:flex;gap:var(--sp-3);justify-content:center}.brew .controls button{padding:.7em 1.4em;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-family:var(--font-body);font-size:var(--step-0);min-height:48px}.brew .controls .primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;min-width:9rem}.brew .schedule{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1px}.brew .schedule li{display:flex;gap:var(--sp-4);padding:var(--sp-3);border-radius:var(--r);align-items:baseline}.brew .schedule li .t{font-family:var(--font-mono);color:var(--ink-faint);min-width:3em}.brew .schedule li.cur{background:var(--accent-wash)}.brew .schedule li.cur .t{color:var(--accent-deep);font-weight:700}.brew .schedule li.past{opacity:.5}.decoder .grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.decoder .span2{grid-column:1 / -1}@media(max-width:520px){.decoder .grid2{grid-template-columns:1fr}}.picker .qblock{display:flex;flex-direction:column;gap:var(--sp-2)}.picker .q{font-weight:560;font-family:var(--font-display);font-size:var(--step-1);margin:0}.picker .opts{display:flex;flex-direction:column;gap:var(--sp-2)}.picker .opts button{text-align:left;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:.7em .9em;border-radius:var(--r);cursor:pointer;font-family:var(--font-body);font-size:var(--step-0);min-height:44px;transition:all .14s var(--ease)}.picker .opts button:hover{border-color:var(--accent)}.picker .opts button.on{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-deep);font-weight:500}.picker .result{text-align:left}.picker .result .lab{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-deep);font-weight:700}.picker .result h3{margin:var(--sp-1) 0}.picker .result .cta{display:inline-block;margin-top:var(--sp-2);font-weight:600}.picker .result .alt{margin-top:var(--sp-3)}.picker .restart{margin-top:var(--sp-3);background:none;border:1px solid var(--line);color:var(--ink-soft);padding:.5em 1em;border-radius:var(--r);cursor:pointer;font-family:var(--font-body)}.picker .progress{text-align:center}.wheel{align-items:center}.wheel .wheel-wrap{width:100%;max-width:340px;margin:0 auto}.wheel svg{width:100%;height:auto;display:block}.wheel .seg text{pointer-events:none}.wheel .detail{text-align:center;max-width:42ch}.wheel .detail .swatch{display:inline-block;width:1.1em;height:1.1em;border-radius:4px;vertical-align:middle;margin-right:.4em}.wheel .detail h3{display:inline-block;vertical-align:middle;margin:0}.wheel .detail .notes{margin:var(--sp-3) 0 var(--sp-2)}.wheel .detail .cause{color:var(--ink-soft);font-size:var(--step--1);margin:0}
