@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(./dm-sans-latin-ext-wght-normal-D1bw2c55.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(./dm-sans-latin-wght-normal-DeBecvsH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #fafaf7;--surface: #f2eee6;--surface-2: #e8dfd0;--ink: #2b2b28;--ink-2: #77746c;--ink-3: #a8a59d;--line: #e7e2d8;--sage: #6f7f68;--sage-ink: #46523f;--sage-soft: #e3e8df;--on-sage: #ffffff;--clay: #a5643f;--clay-soft: #f3e6dc;--ochre: #a88a2c;--ochre-soft: #f2ebd3;--brown: #7a5a44;--brown-soft: #ece2d9;--radius-s: 10px;--radius: 16px;--radius-l: 24px;--tap: 52px;--nav-h: 68px;--font: "DM Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #161614;--surface: #21211e;--surface-2: #2c2b27;--ink: #eceae4;--ink-2: #a19e96;--ink-3: #6f6c65;--line: #2e2d29;--sage: #9cad93;--sage-ink: #c9d6c2;--sage-soft: #283026;--on-sage: #141712;--clay: #d9946c;--clay-soft: #362720;--ochre: #d3b75a;--ochre-soft: #332e1c;--brown: #c49a7c;--brown-soft: #312821;color-scheme:dark}}:root[data-theme=dark]{--bg: #161614;--surface: #21211e;--surface-2: #2c2b27;--ink: #eceae4;--ink-2: #a19e96;--ink-3: #6f6c65;--line: #2e2d29;--sage: #9cad93;--sage-ink: #c9d6c2;--sage-soft: #283026;--on-sage: #141712;--clay: #d9946c;--clay-soft: #362720;--ochre: #d3b75a;--ochre-soft: #332e1c;--brown: #c49a7c;--brown-soft: #312821;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--font);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}h1,h2,p{margin:0}:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.app{max-width:520px;margin:0 auto;min-height:100dvh}.page{padding:0 20px 32px}main.with-nav{padding-bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom))}.muted{color:var(--ink-2)}.small{font-size:13px}.center{text-align:center;margin-top:32px}.label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px}.masthead,.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(14px + env(safe-area-inset-top)) 0 14px;background:var(--bg)}.masthead{justify-content:flex-start;min-height:72px}.masthead-brand{display:grid;place-items:center;flex:none}.logo-mark{display:block;flex:none}.page-title{flex:1;min-width:0;font-size:26px;font-weight:500;letter-spacing:-.02em;line-height:1}.masthead-right{flex:none;display:flex;align-items:center}.masthead-right .icon-btn{margin-right:-10px}.topbar-title{font-size:17px;font-weight:500;flex:1;text-align:center}.topbar>span:first-child+.topbar-title{text-align:left;font-size:26px;letter-spacing:-.02em}.icon-btn,.icon-btn-spacer{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:transparent;border:0}.icon-btn:active{background:var(--surface)}.filter{appearance:none;max-width:60%;padding:8px 14px;border-radius:999px;border:0;background:var(--surface);font-size:14px;color:var(--ink-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px;border:0;background:var(--surface);font-weight:500;transition:transform .08s ease,opacity .15s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4}.btn-primary{background:var(--sage);color:var(--on-sage)}.btn-soft{background:var(--surface)}.btn-quiet{background:transparent;color:var(--ink-2)}.btn-quiet.danger{color:var(--clay)}.btn-block{width:100%}.btn-xl{width:100%;min-height:64px;font-size:18px;border-radius:var(--radius-l)}.btn-link{display:block;margin:4px auto 0;padding:12px;background:none;border:0;color:var(--ink-2);font-size:15px}.section{margin-top:28px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section h2{font-size:13px;font-weight:500;color:var(--ink-2)}.field{display:block;margin-bottom:14px}.field input,.field textarea,.bean-new input{width:100%;min-height:var(--tap);padding:14px 16px;border:0;border-radius:var(--radius);background:var(--surface)}.field textarea{resize:vertical;min-height:80px}.field input::placeholder,.field textarea::placeholder,.bean-new input::placeholder{color:var(--ink-3)}.recipe{display:grid;gap:8px}.stepper{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border-radius:var(--radius);padding:6px 6px 6px 18px;flex-wrap:wrap}.stepper>.label{margin:0;font-size:15px;color:var(--ink)}.stepper-row{display:flex;align-items:center;gap:4px}.step{width:var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--bg);font-size:24px;line-height:1;color:var(--ink)}.step:active{background:var(--surface-2)}.stepper-value{display:flex;align-items:baseline;justify-content:center;width:84px}.stepper-value input{width:100%;min-width:0;border:0;background:transparent;outline:none;text-align:right;font-size:24px;font-weight:500;padding:0}.stepper-value .unit{font-size:14px;color:var(--ink-2);margin-left:3px;min-width:18px}.stepper .hint{flex-basis:100%;font-size:13px;color:var(--ink-2);padding:0 0 6px}.stepper-big{padding:14px 10px 10px 18px}.stepper-big .stepper-value{width:110px}.stepper-big .stepper-value input{font-size:34px}.stepper-big .step{width:60px;height:60px;font-size:28px}.pills{display:flex;flex-wrap:wrap;gap:8px}.pill{min-height:44px;padding:0 16px;border-radius:999px;border:0;background:var(--surface);font-size:15px}.pill.on{background:var(--sage);color:var(--on-sage)}.pill-add{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2)}.taste{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.taste .pill{min-height:56px;border-radius:var(--radius);font-size:16px}.taste .pill-super.on{background:var(--sage);color:var(--on-sage)}.taste .pill-prima.on{background:var(--ink);color:var(--bg)}.taste .pill-zuur.on{background:var(--ochre);color:#fff}.taste .pill-bitter.on{background:var(--brown);color:#fff}.rating{display:inline-flex;gap:6px}.dot{position:relative;width:18px;height:18px;border-radius:50%;background:var(--surface-2);overflow:hidden;flex:none}.dot-fill{position:absolute;inset:0 auto 0 0;background:var(--sage)}.rating-sm{gap:3px}.rating-sm .dot{width:9px;height:9px}.rating-lg{gap:10px;display:flex;justify-content:space-between;max-width:320px}.rating-lg .dot{width:48px;height:48px}.dot-hit{position:absolute;top:0;bottom:0;width:50%;border:0;background:transparent;padding:0}.dot-hit.left{left:0}.dot-hit.right{right:0}.rating:not(.rating-lg) .dot:has(.dot-hit){width:30px;height:30px}.log{padding-bottom:0;min-height:100dvh;display:flex;flex-direction:column}.log .dock{margin-top:auto;padding-top:12px;box-shadow:0 -1px 0 var(--line)}.log .dock .btn-link{padding:8px}.dock{position:sticky;bottom:0;z-index:4;margin:32px -20px 0;padding:16px 20px calc(16px + env(safe-area-inset-bottom));background:var(--bg)}.bean-current{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:16px 18px;border:0;border-radius:var(--radius);background:var(--surface)}.bean-current-name{display:block;font-size:20px;font-weight:500;line-height:1.25}.bean-current-meta{display:block;font-size:14px;color:var(--ink-2)}.bean-options{display:grid;gap:6px;margin-top:8px}.bean-option{min-height:var(--tap);text-align:left;padding:0 18px;border:0;border-radius:var(--radius);background:transparent;box-shadow:inset 0 0 0 1px var(--line);font-size:16px}.bean-new{display:flex;gap:8px;margin-top:4px}.bean-new input{flex:1}.last-time{margin-top:10px;padding:0 4px;font-size:14px;color:var(--sage-ink)}.last-time b{font-weight:500}.dock>.btn-xl+.btn-link{margin-top:4px}.recipe-summary{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;text-align:left;padding:14px 18px;border:0;border-radius:var(--radius);background:var(--surface)}.recipe-summary-bean{font-weight:500}.recipe-summary-meta{grid-row:2;font-size:14px;color:var(--ink-2)}.recipe-summary-edit{grid-row:1 / 3;grid-column:2;font-size:14px;color:var(--sage-ink)}.result{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 8px}.result>*{display:flex;flex-direction:column;padding:16px 18px;border-radius:var(--radius);background:var(--sage-soft);border:0;text-align:left}.result-num{font-size:34px;font-weight:500;line-height:1.1;letter-spacing:-.02em}.result-num small{font-size:16px;margin-left:2px;color:var(--ink-2);font-weight:400}.result-sub{font-size:13px;color:var(--sage-ink)}.drink{display:flex;align-items:center;gap:12px;padding:8px 0 14px}.drink-name{flex:1;font-size:16px}.drink-remove{width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--ink-3);font-size:22px}.more{margin-top:28px}.more summary{list-style:none;color:var(--ink-2);font-size:15px;padding:10px 0}.more summary:before{content:"+ "}.more[open] summary:before{content:"− "}.more summary::-webkit-details-marker{display:none}.shot{min-height:100dvh;display:flex;flex-direction:column;padding:calc(8px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));background:var(--bg);transition:background .4s}.shot.zone-in{background:var(--sage-soft)}.shot.zone-over{background:var(--clay-soft)}.shot-head{display:flex}.shot-head .btn{padding:0 8px}.shot-clock{flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px}.shot-time{text-align:center;font-size:clamp(96px,30vw,160px);line-height:1;letter-spacing:-.04em}.shot-time small{font-size:.22em;color:var(--ink-2);margin-left:4px;letter-spacing:0}.shot-track{position:relative;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.shot-target{position:absolute;top:0;bottom:0;background:var(--sage);opacity:.35}.shot-progress{position:absolute;left:0;top:0;bottom:0;background:var(--ink)}.shot-meta{display:flex;justify-content:space-between;font-size:14px;color:var(--ink-2)}.shot-buttons{display:grid;gap:10px}.shot-btn{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:64px;padding:0 24px;border:0;border-radius:var(--radius-l);font-size:18px;font-weight:500;text-align:left;transition:background .2s,color .2s,min-height .2s}.shot-btn.next{min-height:104px;font-size:24px;background:var(--sage);color:var(--on-sage)}.shot-btn.later{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink-2)}.shot-btn.done{background:transparent;color:var(--ink-2);min-height:52px;font-size:16px}.shot-btn-value{font-weight:500;color:var(--ink)}.day{font-size:13px;font-weight:500;color:var(--ink-2);margin:24px 0 10px}.card{display:block;background:var(--surface);border-radius:var(--radius);padding:16px 18px;margin-bottom:8px}.card:active{background:var(--surface-2)}.brew-card-top{display:flex;justify-content:space-between;align-items:center;min-height:22px}.brew-when{font-size:13px;color:var(--ink-2)}.brew-card-main{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:2px 0 6px}.brew-bean{font-size:18px;font-weight:500;line-height:1.3}.brew-params{font-size:14px;color:var(--ink-2)}.brew-drinks{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.brew-drinks span{font-size:13px;padding:3px 10px;border-radius:999px;background:var(--bg);color:var(--ink-2)}.brew-drinks b{font-weight:500;color:var(--ink)}.tag{display:inline-block;font-size:12px;padding:2px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.tag-super{background:var(--sage-soft);color:var(--sage-ink)}.tag-zuur{background:var(--ochre-soft);color:var(--ochre)}.tag-bitter{background:var(--brown-soft);color:var(--brown)}.empty{text-align:center;padding:72px 12px;color:var(--ink-2);display:grid;gap:8px;justify-items:center}.empty-title{font-size:22px;font-weight:500;color:var(--ink)}.empty .btn{margin-top:16px}.hero{display:flex;flex-direction:column;gap:6px;padding:8px 0 4px}.hero-title{font-size:30px;font-weight:500;line-height:1.15;letter-spacing:-.02em}.hero-score{display:flex;align-items:center;gap:12px;margin-top:6px}.hero-drinks{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}.hero-drinks li{display:flex;justify-content:space-between;align-items:center}.advice-list{display:grid;gap:8px}.advice{padding:14px 16px;border-radius:var(--radius);background:var(--surface)}.advice strong{display:block;font-weight:500;margin-bottom:2px}.advice p{font-size:14px;color:var(--ink-2)}.advice-good{background:var(--sage-soft)}.advice-good strong{color:var(--sage-ink)}.advice-warn{background:var(--clay-soft)}.advice-warn strong{color:var(--clay)}.params{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 8px;margin:0}.params dt{font-size:12px;color:var(--ink-2)}.params dd{margin:0;font-size:18px;font-weight:500}.note{margin-top:16px;white-space:pre-wrap}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.bean-card{display:flex;justify-content:space-between;align-items:center;gap:12px}.bean-card-text{display:grid;gap:2px;min-width:0}.bean-name{font-size:17px;font-weight:500}.bean-card-score{display:grid;justify-items:end;flex:none}.avg-num{font-size:22px;font-weight:500}.score-pair{display:grid;grid-template-columns:1fr auto;gap:16px;margin-top:20px;padding:16px 18px;border-radius:var(--radius);background:var(--surface)}.avg-big{font-size:30px;font-weight:500;line-height:1.1;display:block}.avg-big small{font-size:14px;color:var(--ink-2);font-weight:400}.best{display:grid;gap:10px}.best-cta{display:inline-flex;align-items:center;gap:6px;color:var(--sage-ink);font-weight:500}.info{margin:0}.info div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.info div:last-child{border-bottom:0}.info dt{color:var(--ink-2)}.info dd{margin:0;text-align:right}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tile{display:grid;padding:16px 18px;border-radius:var(--radius);background:var(--surface)}.tile .label{margin:0}.tile-value{font-size:30px;font-weight:500;letter-spacing:-.02em}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line)}.chart .axis{fill:var(--ink-3);font-size:10px}.chart-line{fill:none;stroke:var(--sage);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--sage);opacity:.4;stroke:var(--bg);stroke-width:2}.chart-dot.on{opacity:1}.chart-tip{font-size:13px;color:var(--ink-2);margin-top:6px;min-height:20px}.chart-tip b{color:var(--ink);font-weight:500}.bars{display:grid;gap:12px}.bar{display:grid;grid-template-columns:96px 1fr 32px;align-items:center;gap:12px;font-size:14px}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:8px;border-radius:4px;background:var(--surface);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:4px;background:var(--sage)}.fill-prima{background:var(--ink-3)}.fill-zuur{background:var(--ochre)}.fill-bitter{background:var(--brown)}.bar-value{text-align:right;font-weight:500}.bean-list{display:grid;gap:6px}.bean-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:10px 16px 10px 18px;border:0;border-radius:var(--radius);background:var(--surface);text-align:left}.bean-row.on{background:var(--sage-soft);box-shadow:inset 0 0 0 1.5px var(--sage)}.bean-row-text{display:grid;gap:1px;min-width:0}.bean-row-name{font-size:17px;font-weight:500}.bean-row-meta{font-size:13px;color:var(--ink-2)}.bean-row-check{width:22px;color:var(--sage-ink);flex:none}.btn-link.left{margin:0;padding:10px 2px;text-align:left}.bean-more{display:flex;justify-content:space-between;gap:12px}.last{padding:16px 18px;border-radius:var(--radius);background:var(--surface)}.last-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.last-head .label{margin:0}.last-score{display:inline-flex;align-items:center;gap:8px}.last-params{margin-top:6px;font-size:15px}.last-tip{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);color:var(--ink-2);font-size:15px}.last-tip b{color:var(--sage-ink);font-weight:500;font-size:17px}.last-best{margin-top:4px;font-size:14px;color:var(--ink-2)}.last-empty{font-size:15px;color:var(--ink-2);padding:0 4px}.last-more{margin-top:10px}.last-more summary{list-style:none;font-size:14px;color:var(--ink-2);padding:6px 0}.last-more summary::-webkit-details-marker{display:none}.last-more summary:after{content:" ›"}.last-more[open] summary:after{content:" ⌄"}.last-more .advice{background:var(--bg)}.last-more .advice-list{margin:8px 0 12px}.history{list-style:none;margin:0;padding:0}.history li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--line)}.history-top{display:flex;justify-content:space-between;align-items:center;font-size:14px}.taste-label{margin-top:18px}.taste{grid-template-columns:repeat(3,1fr);margin-top:0}.taste .pill-anders.on{background:var(--ink);color:var(--bg)}.taste-note,.drink-note,.country-search{width:100%;min-height:var(--tap);margin-top:8px;padding:14px 16px;border:0;border-radius:var(--radius);background:var(--surface)}.drink{display:grid;gap:10px;padding:14px 0 18px;border-bottom:1px solid var(--line);margin-bottom:14px}.drink-top{display:flex;justify-content:space-between;align-items:center}.drink-name{font-size:17px;font-weight:500}.drink-note{margin-top:0}.hero-drinks li{display:grid;gap:2px}.hero-drink-top{display:flex;justify-content:space-between;align-items:center}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.affix{display:flex;align-items:center;min-height:var(--tap);border-radius:var(--radius);background:var(--surface);padding:0 16px;gap:6px}.affix input{flex:1;min-width:0;min-height:var(--tap);padding:0;border:0;background:transparent;outline:none;font-size:17px}.affix-text{color:var(--ink-2)}.roast{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:14px}.roast .pill{min-height:52px;border-radius:var(--radius)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}.segmented .pill{border-radius:var(--radius)}.score-box{display:grid;gap:10px;margin-top:16px;padding:16px 18px;border-radius:var(--radius);background:var(--surface)}.score-box .label{margin:0}.avg-line{font-size:14px;color:var(--ink-2)}.avg-line b{color:var(--ink);font-weight:500}.hero-origin{font-size:14px;color:var(--ink-2)}.country-picker{display:grid;gap:8px}.country-search{margin-top:0}.country-list{max-height:264px;overflow-y:auto;border-radius:var(--radius);background:var(--surface);-webkit-overflow-scrolling:touch}.country{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 16px;border:0;background:transparent;text-align:left;border-bottom:1px solid var(--line)}.country:last-child{border-bottom:0}.country.on{color:var(--sage-ink);font-weight:500}.country-flag{font-size:20px}.country-name{flex:1}.country-check{width:16px;color:var(--sage-ink)}.country-empty{padding:14px 16px}.flags{font-size:.9em;letter-spacing:1px;margin-right:2px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:10;max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line)}.nav-item{display:grid;justify-items:center;gap:2px;padding:8px 0;font-size:11px;color:var(--ink-3)}.nav-item.on{color:var(--ink)}.nav-add{justify-self:center;display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:var(--sage);color:var(--on-sage)}.nav-add:active{transform:scale(.96)}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.fill-anders{background:var(--ink-2)}.log-prep{height:100dvh;display:flex;flex-direction:column;padding:0 20px;overflow:hidden}.log-prep .topbar{position:static;flex:none}.log-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:0 -20px;padding:0 20px 20px}.log-scroll>.section:first-child{margin-top:4px}.log-fixed{flex:none;display:grid;gap:8px;margin:0 -20px;padding:12px 20px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg)}.log-fixed .btn-xl{min-height:60px;margin-top:4px}.log-fixed .btn-link{margin:0 auto;padding:6px 12px;font-size:14px}.recipe.compact{gap:6px}.recipe.compact .stepper{padding:3px 3px 3px 16px}.recipe.compact .step{width:46px;height:46px;font-size:22px}.recipe.compact .stepper-value input{font-size:22px}.last-tip.first{margin-top:6px;padding-top:0;border-top:0}@media (max-height: 640px){.recipe.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe.compact .stepper{flex-direction:column;align-items:stretch;gap:2px;padding:8px 4px 4px}.recipe.compact .stepper>.label{font-size:12px;text-align:center;color:var(--ink-2)}.recipe.compact .stepper-row{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"val val" "min plus";gap:2px}.recipe.compact .stepper-row>.step:first-child{grid-area:min}.recipe.compact .stepper-row>.step:last-child{grid-area:plus}.recipe.compact .stepper-value{grid-area:val;width:auto;min-width:0}.recipe.compact .step{width:auto;height:36px;border-radius:10px;font-size:20px;background:var(--bg)}.recipe.compact .stepper-value input{font-size:20px;text-align:right}.recipe.compact .stepper-value .unit{font-size:12px}.log-fixed .btn-xl{min-height:54px}}.verdicts{display:inline-flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.verdict{font-size:12px;font-weight:500;padding:2px 8px;border-radius:999px;white-space:nowrap}.verdict-ok{background:var(--sage-soft);color:var(--sage-ink)}.verdict-low,.verdict-high{background:var(--clay-soft);color:var(--clay)}.result>*{gap:0}.result-head{font-size:12px;color:var(--ink-2)}.result-verdict{font-size:14px;font-weight:500;margin-top:2px}.result-sub{color:var(--ink-2);margin-top:2px}.result>:not(.is-ok):not(.is-low):not(.is-high){background:var(--surface)}.result>.is-ok{background:var(--sage-soft)}.result>.is-ok .result-verdict{color:var(--sage-ink)}.result>.is-low,.result>.is-high{background:var(--clay-soft)}.result>.is-low .result-verdict,.result>.is-high .result-verdict{color:var(--clay)}.scores{display:grid;gap:4px;margin:8px 0 6px}.score-row{display:flex;align-items:center;gap:8px;min-width:0}.score-row.main .score-name{font-weight:500}.score-row.sub{color:var(--ink-2);font-size:13px}.brew-params svg{flex:none;color:var(--sage-ink)}.score-row.sub{padding-left:28px}.scores-md .score-row.sub{padding-left:34px}.score-name{min-width:0}.score-num{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.score-note{flex-basis:100%;padding-left:28px;font-size:13px;color:var(--ink-2)}.score-row{flex-wrap:wrap}.scores-md{gap:10px;margin-top:14px}.scores-md .score-row.main .score-name{font-size:18px}.scores-md .score-row.sub{font-size:14px}.scores-md .score-note{padding-left:34px}.drink-icon{flex:none;color:var(--sage-ink)}.brew-card .brew-bean{display:block;margin:2px 0 0}.brew-params{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.toggle{min-height:34px;padding:0 12px;border:0;border-radius:999px;background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font-size:13px}.toggle.on{background:var(--ink);color:var(--bg);box-shadow:none}.drink-name{display:inline-flex;align-items:center;gap:8px}.drink-pills .pill{display:inline-flex;align-items:center;gap:6px}.drink-pills .drink-icon{color:inherit}.nudge{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 8px;padding:14px 16px;border-radius:var(--radius);background:var(--clay-soft)}.nudge>span{display:grid;gap:2px}.nudge strong{font-weight:500;color:var(--clay)}.nudge .btn{flex:none;background:var(--bg)}.nudge-calm{background:var(--sage-soft, var(--oak));color:inherit;text-decoration:none}.nudge-calm strong{color:var(--sage-ink)}.warn-text{color:var(--clay)}.sign-in{display:grid;gap:12px}.sign-in p{margin:0}.btn-link.inline{display:inline;margin:0;padding:0;color:var(--sage-ink);font-size:inherit}.tipbar{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:0;border-radius:var(--radius);background:var(--sage-soft);text-align:left;font-size:15px}.tipbar-text{display:grid;gap:1px;flex:1;min-width:0}.tipbar-label{font-size:12px;color:var(--sage-ink)}.tipbar b{font-weight:500}.tipbar-more{color:var(--sage-ink);font-size:20px}.drink-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.drink-tile{display:grid;justify-items:center;gap:6px;min-height:76px;padding:12px 6px 10px;border:0;border-radius:var(--radius);background:var(--surface);font-size:14px}.drink-tile .drink-icon{color:var(--ink-2)}.drink-tile.on{background:var(--sage);color:var(--on-sage)}.drink-tile.on .drink-icon{color:var(--on-sage)}.drink-rate,.shot-rate{display:grid;gap:10px;margin-top:16px}.topbar-actions{display:flex;gap:4px}.toast{position:fixed;left:50%;transform:translate(-50%);z-index:20;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:16px;padding:12px 18px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:15px;white-space:nowrap}.toast .btn-link.inline{color:var(--sage-soft);font-weight:500}.origin{font-size:13px;color:var(--ink-2)}.origin .flags,.bean-row-meta .flags{font-size:12px}.bean-card-text{gap:3px}.note-plain{color:var(--ink-2);font-size:15px;margin-top:4px}.bags{display:grid;gap:8px}.bag{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 0;border-bottom:1px solid var(--line)}.bag:last-child{border-bottom:0}.bag.finished{opacity:.6}.bag-main{flex:1;min-width:0;display:grid;gap:2px;padding:10px 0;border:0;background:transparent;text-align:left}.bag-title{font-weight:500}.bag .tag{border:0}.small-btn{min-height:36px;padding:0 12px;font-size:14px;box-shadow:inset 0 0 0 1px var(--line)}.bag-form{display:grid;gap:4px;padding:16px;border-radius:var(--radius);background:var(--surface)}.bag-form .field input,.bag-form .affix{background:var(--bg)}.bag-fields{display:grid;gap:4px}.check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;cursor:pointer}.check input{width:22px;height:22px;accent-color:var(--sage)}.actions.tight{margin-top:8px}
