.today-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:14px;margin-bottom:14px}
.today-main,.quick-log-card{border-radius:20px;padding:24px;background:var(--surface);border:1px solid var(--line-soft)}
.today-main{background:linear-gradient(145deg,rgba(180,90,50,.11),transparent 52%),var(--surface)}
.today-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.today-heading h2,.brew-card-head h2,.section-head-card h2{font:600 clamp(24px,3vw,34px)/1.08 var(--display);letter-spacing:-.025em;color:var(--ink)}
.today-heading p:last-child{color:var(--mut);font-size:13px;margin-top:8px;max-width:54ch}
.sync-pill{white-space:nowrap;border-radius:999px;background:var(--good-soft);color:var(--good);font:700 10px var(--sans);letter-spacing:.04em;padding:7px 10px}
.sync-pill[data-state="offline"],.sync-pill[data-state="pending"]{background:var(--clay-soft);color:var(--clay)}
.today-signals{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:24px}
.today-signal{min-height:104px;padding:15px;border-radius:14px;background:rgba(255,255,255,.6);border:1px solid var(--line-soft);display:flex;flex-direction:column}
.today-signal span{font:700 9px var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--faint)}
.today-signal b{font:600 17px/1.2 var(--display);color:var(--ink);margin:8px 0 4px}
.today-signal small{color:var(--mut);font-size:11px;line-height:1.35;margin-top:auto}
.today-improvement{display:grid;grid-template-columns:1fr auto;align-items:center;gap:22px;margin-top:12px;padding:18px 20px;border:1px solid rgba(74,124,89,.25);border-radius:16px;background:linear-gradient(135deg,rgba(74,124,89,.11),rgba(255,255,255,.6))}.today-improvement[hidden]{display:none}.today-improvement span{color:var(--good);font:750 8px var(--sans);letter-spacing:.12em;text-transform:uppercase}.today-improvement h3{margin-top:5px;color:var(--ink);font:600 19px/1.15 var(--display)}.today-improvement p{margin-top:6px;color:var(--mut);font-size:11.5px}.today-improvement .btn{white-space:nowrap}
.today-mission{margin-top:12px;padding:20px;border:1px solid rgba(180,90,50,.25);border-radius:18px;background:linear-gradient(135deg,#fff8ee,#f3e4d3)}.today-mission[hidden]{display:none}.today-mission-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px}.today-mission-head span,.mission-comparison-grid span{color:var(--clay);font:750 8px var(--sans);letter-spacing:.12em;text-transform:uppercase}.today-mission-head h3{margin-top:6px;color:var(--ink);font:600 22px/1.12 var(--display)}.today-mission-head p{max-width:66ch;margin-top:7px;color:var(--mut);font-size:11.5px;line-height:1.55}.today-mission-head p b{color:var(--body)}.today-mission-head .btn{min-height:46px;white-space:nowrap}.today-mission-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:17px}.today-mission-rail i{padding:9px;border-radius:9px;background:rgba(255,255,255,.58);color:var(--faint);font:700 9px var(--sans);font-style:normal;text-align:center}.today-mission-rail i.done{background:var(--good-soft);color:var(--good)}.today-mission-rail i.on{background:var(--espresso);color:var(--crema)}.today-mission-score{display:grid;grid-template-columns:auto auto auto auto auto;align-items:end;gap:8px;padding:14px 16px;border-radius:14px;background:var(--espresso);color:#fff}.today-mission-score span{color:rgba(255,255,255,.58);font-size:9px}.today-mission-score b{color:var(--crema);font:700 20px var(--mono)}.today-mission-score i{align-self:center;color:rgba(255,255,255,.45);font-style:normal}.mission-comparison-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.mission-comparison-grid>div{padding:14px;border:1px solid rgba(180,90,50,.14);border-radius:12px;background:rgba(255,255,255,.6)}.mission-comparison-grid b{display:block;margin-top:7px;color:var(--ink);font:650 13px/1.3 var(--sans)}.mission-comparison-grid p{margin-top:5px;color:var(--mut);font-size:10.5px;line-height:1.45}
.mission-recipe-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:10px;padding:14px;border:1px solid rgba(74,124,89,.22);border-radius:12px;background:rgba(255,255,255,.72)}.mission-recipe-choice>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.mission-recipe-choice span{color:var(--good);font:750 8px var(--sans);letter-spacing:.12em}.mission-recipe-choice b{display:block;margin-top:5px;color:var(--ink);font:650 13px var(--sans)}.mission-recipe-choice p{margin-top:4px;color:var(--mut);font-size:10.5px}.mission-recipe-choice button:disabled{opacity:.68}
.quick-log-card{display:grid;gap:11px;background:var(--espresso);color:var(--crema)}
.quick-log-card .eyebrow{color:var(--crema);margin-bottom:6px}
.quick-log-card h3{font:600 20px/1.1 var(--display);color:#fff}
.quick-log-card label{display:grid;gap:5px;font:650 10px var(--sans);letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.quick-log-card select{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.quick-log-card select option{color:var(--ink);background:#fff}
.quick-log-card .text-action{color:var(--crema);justify-self:start}
.brew-card-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:4px}
.brew-card-head .card-sub{margin:8px 0 0;max-width:62ch}
.recipe-launcher{min-width:230px;display:grid;gap:5px}
.recipe-launcher label,.history-tools label>span{font:700 9px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.brew-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:22px 0 18px;padding:6px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line-soft)}
.brew-mode-switch button{display:grid;gap:3px;text-align:left;border:1px solid transparent;border-radius:11px;padding:12px 14px;background:transparent;color:var(--mut);cursor:pointer}
.brew-mode-switch button span{font:750 12px var(--sans);color:inherit}
.brew-mode-switch button small{font:500 10.5px var(--sans);color:var(--faint)}
.brew-mode-switch button.on{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:0 5px 18px rgba(41,29,22,.06)}
.brew-assist{display:none;border:1px solid var(--line-soft);border-radius:20px;padding:clamp(18px,3vw,28px);background:linear-gradient(145deg,rgba(180,90,50,.08),transparent 52%),var(--surface)}
#brewCard.assist-mode .brew-assist{display:block}
#brewCard.assist-mode .manual-brew-fields{display:none}
#brewCard.assist-mode .recipe-launcher{display:none}
.assist-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:28px}
.assist-progress span{position:relative;display:flex;align-items:center;gap:7px;color:var(--faint);font:700 10px var(--sans)}
.assist-progress span:after{content:'';position:absolute;left:29px;right:-6px;bottom:-8px;height:2px;background:var(--line-soft)}
.assist-progress span:last-child:after{display:none}
.assist-progress b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);font:700 9px var(--mono)}
.assist-progress span.on{color:var(--clay)}
.assist-progress span.on b{background:var(--clay);border-color:var(--clay);color:#fff}
.assist-progress span.done b{background:var(--good);border-color:var(--good);color:#fff}
.assist-progress span.done:after{background:var(--good)}
.assist-stage{min-height:250px}
.assist-stage h3{font:600 clamp(25px,3.4vw,35px)/1.08 var(--display);color:var(--ink);letter-spacing:-.025em}
.assist-stage>p:not(.eyebrow){margin-top:8px;color:var(--mut);font-size:13px;max-width:66ch}
.assist-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-top:22px}
.assist-method{min-height:82px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface);color:var(--body);cursor:pointer;transition:border-color .15s,transform .15s,background .15s}
.assist-method:hover{transform:translateY(-1px);border-color:var(--clay)}
.assist-method b{display:block;font:650 16px var(--display);color:var(--ink)}
.assist-method small{display:block;margin-top:5px;color:var(--faint);font-size:10.5px}
.assist-method.on{border-color:var(--clay);background:var(--clay-soft);box-shadow:inset 0 0 0 1px var(--clay)}
.assist-field{display:grid;gap:7px;margin-top:22px;font:700 10px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.assist-field select,.assist-field input{letter-spacing:normal;text-transform:none;color:var(--body)}
.assist-setup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:4px}
.assist-setup-grid .assist-field{margin-top:14px}.assist-setup-grid .wide{grid-column:span 2}
.assist-review{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0 16px}
.assist-review div{padding:14px;border-radius:13px;background:var(--surface-2);border:1px solid var(--line-soft)}
.assist-review span{display:block;color:var(--faint);font:700 9px var(--sans);letter-spacing:.09em;text-transform:uppercase}
.assist-review b{display:block;margin-top:6px;color:var(--ink);font:650 14px/1.25 var(--sans)}
.assist-brew-button{min-height:50px;padding-inline:24px}.assist-stage .text-action{display:block;margin-top:10px}
.assist-nav{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}
.assist-nav #assistNext{margin-left:auto}
.method-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin-top:12px;padding:14px;border:1px solid var(--line-soft);background:var(--surface-2);border-radius:14px}
.method-fields:empty{display:none}
.method-fields .method-note{grid-column:1/-1;color:var(--mut);font-size:11.5px}
.brew-timer{margin-top:15px;border-radius:20px;padding:20px;background:linear-gradient(135deg,#281d17 0%,var(--espresso) 56%,#3b2920 100%);color:#fff;box-shadow:inset 0 1px rgba(255,255,255,.06)}
.timer-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.timer-copy{display:grid;gap:4px;min-width:0}
.timer-kicker,.timer-focus-kicker{color:var(--crema);font:700 9px var(--sans);letter-spacing:.14em;text-transform:uppercase}
.timer-copy strong{font:600 20px/1.2 var(--display);color:#fff}
.timer-copy small{color:rgba(255,255,255,.72);font-size:12px;line-height:1.45}
.timer-expand{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 12px;background:rgba(255,255,255,.08);color:#fff;font:700 11px var(--sans);cursor:pointer}
.timer-expand:hover{background:rgba(255,255,255,.14)}
.timer-clock-row{display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:18px;margin:18px 0 15px}
.timer-clock{font:700 clamp(42px,5vw,58px)/.95 var(--mono);letter-spacing:-.055em;color:var(--crema);font-variant-numeric:tabular-nums}
.timer-progress,.timer-focus-progress{height:6px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.12)}
.timer-progress i,.timer-focus-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--clay),var(--crema));transition:width .25s linear}
.timer-step-list{display:flex;gap:7px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
.timer-step-list::-webkit-scrollbar{display:none}
.timer-step{display:grid;grid-template-columns:24px auto;grid-template-areas:"number name" "number time" "number target";column-gap:8px;align-items:center;flex:0 0 auto;min-width:150px;padding:10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.58)}
.timer-step span{grid-area:number;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);font:700 9px var(--mono)}
.timer-step b{grid-area:name;color:inherit;font:700 11px/1.2 var(--sans);white-space:nowrap}
.timer-step small{grid-area:time;color:inherit;font:600 9px var(--mono)}
.timer-step em{grid-area:target;margin-top:2px;color:inherit;font:650 9px/1.2 var(--sans);font-style:normal;white-space:nowrap}
.timer-step.done{color:rgba(255,255,255,.72)}
.timer-step.done span{background:var(--good);color:#fff}
.timer-step.current{border-color:rgba(232,196,151,.58);background:rgba(232,196,151,.13);color:#fff}
.timer-step.current span{background:var(--crema);color:var(--espresso)}
.timer-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}
.timer-actions .btn{min-height:42px;padding:11px 17px}
.timer-actions .timer-primary,.timer-focus-actions .timer-primary{background:var(--crema);color:var(--espresso)}
.timer-actions .timer-done,.timer-focus-actions .timer-done{background:var(--good);border-color:var(--good);color:#fff}
.timer-actions .timer-done:disabled,.timer-focus-actions .timer-done:disabled{opacity:.42;cursor:not-allowed}
.timer-actions .ghost,.timer-focus-actions .ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.2)}
.timer-actions .ghost:hover,.timer-focus-actions .ghost:hover{background:rgba(255,255,255,.14)}
.timer-modal{position:fixed;inset:0;z-index:220;display:none;place-items:center;padding:clamp(14px,4vw,40px);background:rgba(18,13,10,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.timer-modal.show{display:grid}
.timer-focus{position:relative;width:min(720px,100%);max-height:calc(100dvh - 28px);overflow:auto;border:1px solid rgba(255,255,255,.11);border-radius:28px;padding:clamp(26px,5vw,48px);background:radial-gradient(circle at 85% 0,rgba(180,90,50,.24),transparent 38%),linear-gradient(145deg,#2c2019,#1c1714);color:#fff;box-shadow:0 28px 90px rgba(0,0,0,.4)}
.timer-close{position:absolute;right:18px;top:18px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;font:300 27px/1 var(--sans);cursor:pointer}
.timer-focus h2{margin-top:9px;padding-right:48px;color:#fff;font:600 clamp(28px,5vw,44px)/1.05 var(--display);letter-spacing:-.025em}
.timer-focus>p{margin-top:8px;color:rgba(255,255,255,.68);font-size:13px}
.timer-focus-clock{margin:clamp(28px,5vh,48px) 0 20px;text-align:center;color:var(--crema);font:700 clamp(72px,14vw,118px)/.88 var(--mono);letter-spacing:-.075em;font-variant-numeric:tabular-nums}
.timer-focus-progress{height:9px;margin-bottom:24px}
.timer-focus-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.timer-focus-steps .timer-step{min-width:0}
.timer-focus-actions{display:grid;grid-template-columns:1.35fr 1fr 1.25fr .8fr;gap:10px;margin-top:26px}
.timer-focus-actions .btn{min-height:54px;font-size:14px;border-radius:14px}
body.timer-open{overflow:hidden}
.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.text-action{border:0;background:none;padding:5px 0;color:var(--clay);font:700 12px var(--sans);cursor:pointer}
.history-tools{display:grid;grid-template-columns:minmax(210px,1.4fr) minmax(140px,.7fr) minmax(120px,.55fr) auto;gap:9px;align-items:end;margin:18px 0 8px}
.history-tools label{display:grid;gap:5px}
.filter-summary{min-height:18px;color:var(--faint);font-size:11.5px;margin-bottom:8px}
.section-head-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px}
.section-head-card .card-sub{margin:8px 0 0;max-width:65ch}
.recipe-library,.lot-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.recipe-card,.lot-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:18px;padding:19px;display:flex;flex-direction:column;gap:13px;min-height:190px}
.recipe-card-top,.lot-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.recipe-card h3,.lot-card h3{font:600 20px/1.15 var(--display);color:var(--ink)}
.recipe-card p,.lot-card p{color:var(--mut);font-size:12px}
.recipe-metrics,.lot-metrics{display:flex;gap:7px;flex-wrap:wrap}
.recipe-metrics span,.lot-metrics span{border-radius:999px;background:var(--surface-2);padding:6px 9px;color:var(--body);font:650 10px var(--sans)}
.recipe-actions,.lot-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}
.empty-library{grid-column:1/-1;padding:34px;text-align:center;border:1px dashed var(--line);border-radius:18px;color:var(--mut);background:var(--surface)}
.lot-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.freshness-ring{--fresh:0;width:48px;height:48px;border-radius:50%;background:conic-gradient(var(--good) calc(var(--fresh)*1%),var(--line-soft) 0);display:grid;place-items:center;flex:0 0 auto}
.freshness-ring:after{content:attr(data-label);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--surface);font:700 8px var(--sans);color:var(--body);text-align:center}
.pending-brew{border-style:dashed!important}.pending-brew:before{content:'Waiting to sync';display:inline-flex;background:var(--clay-soft);color:var(--clay);font:700 9px var(--sans);padding:4px 7px;border-radius:999px;margin:0 0 8px}
.improve-brew{background:var(--good)!important}.brew-lineage{margin:8px 0 6px;padding:9px 11px;border-left:3px solid var(--good);background:var(--good-soft);color:var(--good);font:650 11px/1.45 var(--sans)}
@media(max-width:850px){.today-grid{grid-template-columns:1fr}.lot-form{grid-template-columns:repeat(2,1fr)}.history-tools{grid-template-columns:1fr 1fr}.history-tools .search-field{grid-column:1/-1}.assist-setup-grid{grid-template-columns:repeat(2,1fr)}.assist-review{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.today-main,.quick-log-card{padding:18px}.today-heading{display:block}.sync-pill{display:inline-flex;margin-top:12px}.today-signals{grid-template-columns:1fr}.today-signal{min-height:86px}.brew-card-head{display:block}.recipe-launcher{min-width:0;margin-top:16px}.brew-mode-switch button small{display:none}.assist-progress span{font-size:0}.assist-progress{margin-bottom:24px}.assist-stage{min-height:300px}.assist-methods{grid-template-columns:1fr 1fr}.assist-setup-grid,.assist-review{grid-template-columns:1fr}.assist-setup-grid .wide{grid-column:auto}.brew-timer{padding:17px;border-radius:18px}.timer-head{gap:10px}.timer-expand span{display:none}.timer-expand{padding:9px}.timer-clock-row{grid-template-columns:1fr;gap:12px}.timer-clock{font-size:48px}.timer-actions{display:grid;grid-template-columns:1fr 1fr}.timer-actions .btn{padding:10px 8px}.timer-focus{border-radius:22px}.timer-focus-actions{grid-template-columns:1fr 1fr}.timer-focus-actions .btn{min-height:50px}.history-tools,.lot-form{grid-template-columns:1fr}.history-tools .search-field{grid-column:auto}.section-head-card{display:block;padding:20px}.section-head-card .btn{margin-top:14px}.recipe-library,.lot-library{grid-template-columns:1fr}}

.today-heading-actions #todayQuickLog{display:inline-flex;min-width:132px;align-items:center;justify-content:center;padding:11px 18px;border:1px solid var(--line);border-radius:999px;background:#fffaf2;color:var(--ink);box-shadow:0 8px 22px rgba(48,31,20,.07)}.today-heading-actions #todayQuickLog:hover{border-color:var(--clay);background:#fff}

/* Brew Assist is a focused app flow, separate from the long-form journal. */
.brew-mode-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;background:transparent;border:0;margin:26px 0 6px}
.brew-mode-switch button{position:relative;min-height:132px;padding:22px 24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 10px 30px rgba(42,29,20,.045)}
.brew-mode-switch button:hover{border-color:var(--clay);transform:translateY(-2px);box-shadow:0 16px 36px rgba(42,29,20,.08)}
.brew-mode-switch button>b{display:inline-flex;justify-self:start;margin-bottom:15px;border-radius:999px;padding:5px 8px;background:var(--clay-soft);color:var(--clay);font:750 8px var(--sans);letter-spacing:.11em;text-transform:uppercase}
.brew-mode-switch button:nth-child(2)>b{background:var(--surface-2);color:var(--faint)}
.brew-mode-switch button span{font:600 25px/1.05 var(--display);letter-spacing:-.02em;color:var(--ink)}
.brew-mode-switch button small{display:block;margin-top:9px;color:var(--mut);font:500 12px/1.45 var(--sans)}
#brewCard:not(.manual-mode) .manual-brew-fields{display:none}
#brewCard:not(.manual-mode) .recipe-launcher{display:none}
#brewCard.manual-mode .brew-mode-switch{grid-template-columns:1fr 1fr;margin-bottom:22px}
#brewCard.manual-mode .brew-mode-switch button{min-height:76px;padding:14px 16px}
#brewCard.manual-mode .brew-mode-switch button>b{display:none}
#brewCard.manual-mode .brew-mode-switch button span{font:650 16px var(--sans)}
#brewCard.manual-mode .brew-mode-switch button small{margin-top:4px}
.brew-assist{position:fixed;inset:0;z-index:260;display:none!important;overflow-y:auto;padding:0 0 112px;border:0;border-radius:0;background:radial-gradient(circle at 15% 15%,rgba(180,90,50,.1),transparent 28%),linear-gradient(145deg,#fbf7f0,#f5eee3);color:var(--body)}
#brewCard.assist-mode .brew-assist{display:block!important}
.timer-modal{z-index:320}
body.assist-open{overflow:hidden}
.assist-shell-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;min-height:78px;padding:14px clamp(20px,4vw,64px);background:rgba(251,247,240,.88);border-bottom:1px solid rgba(98,73,54,.12);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.assist-mission-context{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(380px,1.2fr);align-items:center;gap:24px;width:min(820px,calc(100% - 40px));margin:22px auto 0;padding:16px 18px;border:1px solid rgba(74,124,89,.22);border-radius:16px;background:linear-gradient(120deg,rgba(74,124,89,.12),rgba(255,255,255,.62))}.assist-mission-context[hidden]{display:none}.assist-mission-context>div{display:grid;gap:4px}.assist-mission-context span{color:var(--good);font:750 8px var(--sans);letter-spacing:.12em}.assist-mission-context b{color:var(--ink);font:600 16px/1.2 var(--display)}.assist-mission-context ol{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:0;margin:0;list-style:none}.assist-mission-context li{display:flex;align-items:center;gap:6px;padding:8px;border-radius:9px;background:rgba(255,255,255,.55);color:var(--faint);font:700 9px var(--sans)}.assist-mission-context li i{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);font:700 8px var(--mono);font-style:normal}.assist-mission-context li.done{color:var(--good)}.assist-mission-context li.done i{background:var(--good);color:#fff}.assist-mission-context li.on{background:var(--espresso);color:#fff}.assist-mission-context li.on i{background:var(--crema);color:var(--espresso)}
.assist-recovery{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;width:min(880px,calc(100% - 40px));margin:18px auto 0;padding:18px 20px;border:1px solid rgba(180,90,50,.28);border-radius:18px;background:linear-gradient(125deg,#fff9ef,#f6eadb);box-shadow:0 16px 38px rgba(55,37,26,.08);text-align:left}.assist-recovery[hidden]{display:none}.assist-recovery span{color:var(--clay);font:750 8px var(--sans);letter-spacing:.12em}.assist-recovery h3{margin-top:5px;color:var(--ink);font:600 22px/1.1 var(--display);letter-spacing:-.02em}.assist-recovery p{margin-top:6px;color:var(--mut);font-size:11.5px;line-height:1.5}.assist-recovery-actions{display:flex;gap:8px}.assist-recovery .btn{min-height:44px;padding:10px 18px;border-radius:999px;white-space:nowrap}.assist-recovery .ghost{color:var(--body);background:rgba(255,255,255,.65)}
.assist-brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.assist-brand img{width:42px;height:42px}.assist-brand span{display:grid}.assist-brand b{font:600 18px var(--display)}.assist-brand small{color:var(--clay);font:750 8px var(--sans);letter-spacing:.13em;text-transform:uppercase}
.assist-close{border:1px solid var(--line);border-radius:999px;padding:9px 15px;background:rgba(255,255,255,.65);color:var(--body);font:700 11px var(--sans);cursor:pointer}
.assist-progress{width:min(820px,calc(100% - 40px));margin:clamp(26px,5vh,48px) auto 0;grid-template-columns:repeat(5,1fr);gap:0}
.assist-progress span{justify-content:center;gap:8px;padding:0 5px;color:var(--faint);font-size:10px}
.assist-progress span:after{left:calc(50% + 18px);right:calc(-50% + 18px);bottom:auto;top:12px;height:1px}
.assist-progress b{position:relative;z-index:1;background:#f9f4eb}
.assist-stage{width:min(920px,calc(100% - 40px));min-height:0;margin:clamp(44px,8vh,84px) auto 0;text-align:center}
.assist-stage[hidden],#assistBack[hidden],#assistNext[hidden],#assistOpenTimer[hidden]{display:none!important}
.assist-stage .eyebrow{margin-bottom:13px;color:var(--clay)}
.assist-stage h3{font:600 clamp(36px,5.4vw,64px)/.98 var(--display);letter-spacing:-.045em}
.assist-stage>p:not(.eyebrow){margin:17px auto 0;font-size:14px;line-height:1.6;max-width:62ch}
.assist-methods{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:34px;text-align:left}
.assist-method{min-height:116px;padding:18px;border-radius:18px;box-shadow:0 8px 24px rgba(42,29,20,.04)}
.assist-method b{font-size:18px}.assist-method small{margin-top:9px;font-size:11px;line-height:1.35}
.assist-method.on{background:#fff4e7;border-color:var(--clay);box-shadow:inset 0 0 0 1px var(--clay),0 14px 30px rgba(180,90,50,.1)}
.assist-field{width:min(640px,100%);margin:34px auto 0;text-align:left;color:var(--clay)}
.assist-field select,.assist-field input{min-height:58px;border-radius:14px;background:rgba(255,255,255,.78);font-size:15px}
.assist-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(760px,100%);margin:20px auto 0;text-align:left}
.assist-setup-grid .assist-field{width:100%;margin-top:0}.assist-setup-grid .wide{grid-column:auto}
.assist-recommendation{width:min(760px,100%);margin:14px auto 0;padding:13px 15px;border:1px solid rgba(180,90,50,.2);border-radius:13px;background:rgba(180,90,50,.07);color:var(--body);font:600 11.5px/1.45 var(--sans);text-align:left}
.assist-recommendation b{color:var(--clay)}
.assist-technique{display:grid;grid-template-columns:180px 1fr;gap:22px;width:min(760px,100%);margin:16px auto 0;padding:18px;border:1px solid var(--line-soft);border-radius:16px;background:rgba(255,255,255,.58);text-align:left}
.assist-technique .eyebrow{margin:0 0 5px}.assist-technique h4{font:600 17px/1.2 var(--display);color:var(--ink)}
.assist-technique-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.assist-technique-fields .assist-field{width:100%;margin:0}.assist-technique-fields .assist-field input,.assist-technique-fields .assist-field select{min-height:48px}
.assist-review{grid-template-columns:repeat(3,1fr);gap:12px;width:min(760px,100%);margin:34px auto 24px;text-align:left}
.assist-review div{min-height:90px;padding:17px;border-radius:16px;background:rgba(255,255,255,.7);box-shadow:0 8px 24px rgba(42,29,20,.035)}
.assist-review b{font-size:15px;margin-top:9px}
.assist-improvement-plan{width:min(760px,100%);margin:26px auto 0;padding:20px;border:1px solid rgba(74,124,89,.25);border-radius:17px;background:linear-gradient(135deg,rgba(74,124,89,.11),rgba(255,255,255,.65));text-align:left}.assist-improvement-plan[hidden]{display:none}.assist-improvement-plan>span{color:var(--good);font:750 8px var(--sans);letter-spacing:.12em;text-transform:uppercase}.assist-improvement-plan h4{margin-top:6px;color:var(--ink);font:600 21px/1.15 var(--display)}.assist-improvement-plan>div{display:flex;align-items:center;gap:10px;margin-top:14px}.assist-improvement-plan>div div{min-width:150px;padding:11px 13px;border:1px solid var(--line-soft);border-radius:12px;background:rgba(255,255,255,.75)}.assist-improvement-plan>div span{display:block;color:var(--faint);font:700 8px var(--sans);letter-spacing:.09em;text-transform:uppercase}.assist-improvement-plan>div b{display:block;margin-top:4px;color:var(--body);font:700 12px var(--sans)}.assist-improvement-plan>div>i{color:var(--good);font-style:normal}.assist-improvement-plan>p{margin-top:11px;color:var(--mut);font-size:11px}
.assist-brew-button{min-width:230px;min-height:56px;border-radius:15px;font-size:14px}
.assist-stage .text-action{margin:13px auto 0}
.assist-result-stage{padding-bottom:28px}.assist-result-stage>p:not(.eyebrow){max-width:68ch}
.assist-result-summary{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:24px auto 0}.assist-result-summary span{padding:8px 11px;border:1px solid var(--line-soft);border-radius:999px;background:rgba(255,255,255,.65);color:var(--body);font:650 10.5px var(--sans)}
.assist-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:min(620px,100%);margin:18px auto 0}.assist-result-grid .assist-field{width:100%;margin:0}
.assist-choice-group{width:min(760px,100%);margin:20px auto 0;padding:0;border:0;text-align:left}.assist-choice-group legend{margin-bottom:9px;color:var(--faint);font:750 9px var(--sans);letter-spacing:.1em;text-transform:uppercase}.assist-choice-group legend span{margin-left:5px;color:var(--clay);font-size:8px}
.assist-rating{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.assist-rating button{min-height:54px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.68);color:var(--body);font:700 13px var(--sans);cursor:pointer}.assist-rating button span{margin-left:4px;color:#be851f}.assist-rating button.on{border-color:var(--clay);background:var(--clay-soft);box-shadow:inset 0 0 0 1px var(--clay)}
.assist-result-choices{display:grid;grid-template-columns:1fr 1fr;gap:18px;width:min(760px,100%);margin:0 auto}.assist-result-choices .assist-choice-group{width:100%}
.assist-pills{display:flex;gap:7px;flex-wrap:wrap}.assist-pills button{flex:1;min-width:78px;min-height:44px;padding:9px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.68);color:var(--body);font:650 11px var(--sans);cursor:pointer}.assist-pills button.on{border-color:var(--clay);background:var(--clay);color:#fff}
.assist-outcome-comparison{display:flex;align-items:center;justify-content:center;gap:13px;width:min(760px,100%);margin:18px auto 0;padding:14px 18px;border-radius:14px;background:var(--surface);border:1px solid var(--line-soft);text-align:left}.assist-outcome-comparison[hidden]{display:none}.assist-outcome-comparison span{color:var(--good);font:750 9px var(--sans);letter-spacing:.08em;text-transform:uppercase}.assist-outcome-comparison b{color:var(--ink);font:700 15px var(--sans)}.assist-outcome-comparison b i{padding:0 5px;color:var(--faint);font-style:normal}.assist-outcome-comparison p{color:var(--mut);font-size:11px}.assist-outcome-comparison p strong{color:var(--body)}.assist-outcome-comparison small{max-width:26ch;color:var(--faint);font-size:9px;line-height:1.4}
.assist-next-suggestion{display:grid;grid-template-columns:1fr auto;align-items:center;gap:22px;width:min(760px,100%);margin:20px auto 0;padding:18px 20px;border:1px solid rgba(74,124,89,.24);border-radius:16px;background:linear-gradient(135deg,rgba(74,124,89,.11),rgba(255,255,255,.62));text-align:left}.assist-next-suggestion[hidden]{display:none}.assist-next-suggestion span{color:var(--good);font:750 8px var(--sans);letter-spacing:.12em;text-transform:uppercase}.assist-next-suggestion h4{margin-top:5px;color:var(--ink);font:600 19px/1.15 var(--display)}.assist-next-suggestion p{margin-top:6px;color:var(--mut);font-size:11.5px;line-height:1.55}.assist-next-suggestion p b{color:var(--body)}.assist-next-suggestion .btn{min-width:150px;color:var(--good);border-color:rgba(74,124,89,.3);background:rgba(255,255,255,.7)}.assist-next-suggestion .btn:disabled{opacity:.65;cursor:default}
.assist-result-notes{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:min(760px,100%);margin:0 auto}.assist-result-notes .assist-field{width:100%;margin-top:18px}.assist-result-notes .assist-field>span{font-weight:500;letter-spacing:0;text-transform:none}.assist-result-notes textarea{resize:vertical}
.assist-save-result{min-width:260px;min-height:56px;margin-top:24px;border-radius:15px;font-size:14px}
.assist-save-status{width:min(760px,100%);margin:18px auto 0;padding:12px 14px;border:1px solid rgba(74,124,89,.22);border-radius:13px;background:rgba(74,124,89,.09);color:var(--good);font:700 11.5px/1.45 var(--sans);text-align:left}.assist-save-status[hidden]{display:none}.assist-save-status[data-state="error"]{border-color:rgba(163,62,43,.28);background:rgba(163,62,43,.08);color:var(--bad)}.assist-save-status[data-state="account"]{border-color:rgba(180,90,50,.28);background:rgba(180,90,50,.08);color:var(--clay)}.assist-invalid{padding:10px;border-radius:15px;background:rgba(163,62,43,.07);box-shadow:0 0 0 2px rgba(163,62,43,.28)}.assist-field.assist-invalid{display:block}.assist-result-actions[aria-busy="true"]{opacity:.78}
.assist-nav{position:fixed;left:0;right:0;bottom:0;z-index:4;display:grid;grid-template-columns:minmax(130px,1fr) auto minmax(130px,1fr);align-items:center;min-height:88px;margin:0;padding:14px clamp(20px,4vw,64px);border-top:1px solid rgba(98,73,54,.12);background:rgba(251,247,240,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.assist-nav .btn{min-width:130px;min-height:48px;border-radius:999px}.assist-nav #assistBack{grid-column:1;justify-self:start}.assist-nav>span{grid-column:2}.assist-nav #assistNext,.assist-nav #assistOpenTimer{grid-column:3;justify-self:end;margin:0}.assist-nav #assistBack[hidden]{display:flex!important;visibility:hidden;pointer-events:none}.assist-nav>span{color:var(--faint);font:700 10px var(--sans);letter-spacing:.1em;text-transform:uppercase}
@media(max-width:820px){.assist-methods{grid-template-columns:repeat(2,minmax(0,1fr))}.assist-stage{margin-top:42px}.assist-review{grid-template-columns:repeat(2,1fr)}.assist-technique{grid-template-columns:1fr}.assist-technique-fields{grid-template-columns:repeat(2,1fr)}.assist-result-choices,.assist-result-notes{grid-template-columns:1fr;gap:0}.assist-next-suggestion{grid-template-columns:1fr}.assist-next-suggestion .btn{justify-self:start}}
@media(max-width:620px){.today-mission-head{grid-template-columns:1fr}.today-mission-head .btn{width:100%}.today-mission-rail{grid-template-columns:repeat(2,1fr)}.today-mission-score{justify-content:start}.mission-comparison-grid{grid-template-columns:1fr}.brew-mode-switch{grid-template-columns:1fr}.brew-mode-switch button{min-height:104px;padding:18px}.brew-mode-switch button small{display:block}.assist-shell-head{min-height:66px;padding:10px 16px}.assist-brand img{width:36px;height:36px}.assist-mission-context{grid-template-columns:1fr;width:calc(100% - 28px);margin-top:14px}.assist-mission-context ol{grid-template-columns:repeat(2,1fr)}.assist-recovery{grid-template-columns:1fr;width:calc(100% - 28px);gap:14px;margin-top:14px;padding:16px}.assist-recovery-actions{display:grid;grid-template-columns:1fr 1fr}.assist-recovery .btn{width:100%;padding-inline:12px}.assist-progress{width:calc(100% - 28px);margin-top:24px}.assist-progress span{font-size:0}.assist-stage{width:calc(100% - 28px);margin-top:34px}.assist-stage h3{font-size:40px}.assist-stage>p:not(.eyebrow){font-size:13px}.assist-methods{gap:8px;margin-top:25px}.assist-method{min-height:100px;padding:14px}.assist-method b{font-size:15px}.assist-setup-grid,.assist-review,.assist-technique-fields,.assist-result-grid{grid-template-columns:1fr}.assist-field{margin-top:26px}.assist-technique-fields .assist-field,.assist-result-grid .assist-field{margin-top:0}.assist-rating{gap:5px}.assist-rating button{min-height:48px;padding:6px;font-size:11px}.assist-rating button span{display:block;margin:1px 0 0}.assist-save-result{width:100%;min-width:0}.assist-nav{min-height:76px;padding:10px 14px}.assist-nav .btn{min-width:96px}.assist-nav>span{font-size:9px}}
@media(max-width:620px){.today-improvement{grid-template-columns:1fr}.today-improvement .btn{width:100%}.mission-recipe-choice{grid-template-columns:1fr}.mission-recipe-choice>div:last-child{display:grid;grid-template-columns:1fr;justify-content:stretch}.mission-recipe-choice .btn{width:100%}.assist-improvement-plan>div{align-items:stretch}.assist-improvement-plan>div div{min-width:0;flex:1}.assist-outcome-comparison{align-items:flex-start;flex-direction:column;gap:5px}}

/* Phase 5 mobile workspace and the refined Brew Assist canvas. */
.journal-mobile-nav{display:none}
.brew-assist{padding-bottom:92px;background:radial-gradient(circle at 12% 8%,rgba(180,90,50,.1),transparent 25%),linear-gradient(145deg,#fbf8f2,#f1e8dc)}
.assist-shell-head{min-height:68px;padding-block:10px}
.assist-progress{margin-top:22px}
.assist-stage{width:min(880px,calc(100% - 40px));margin-top:28px;padding:clamp(26px,4vw,40px);border:1px solid rgba(98,73,54,.12);border-radius:26px;background:rgba(255,255,255,.58);box-shadow:0 20px 55px rgba(55,37,26,.07)}
.assist-stage h3{font-size:clamp(34px,4.5vw,52px)}
.assist-stage>p:not(.eyebrow){margin-top:12px}
.assist-methods{margin-top:26px}.assist-method{min-height:104px;background:rgba(255,255,255,.78)}
.assist-nav{min-height:76px}
.assist-coffee-picker{width:min(660px,100%);margin:26px auto 0}.assist-coffee-picker>.assist-field{width:100%;margin:0}.assist-add-coffee-toggle{margin-top:12px;border:0;background:transparent;color:var(--clay);font:700 12px var(--sans);cursor:pointer}
.assist-new-coffee{margin-top:18px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;text-align:left;box-shadow:0 14px 36px rgba(48,32,22,.07)}.assist-new-coffee[hidden]{display:none}.assist-new-coffee-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.assist-new-coffee-head span{color:var(--clay);font:750 8px var(--sans);letter-spacing:.12em;text-transform:uppercase}.assist-new-coffee-head h4{margin-top:5px;color:var(--ink);font:600 22px/1.1 var(--display)}.assist-new-coffee-head button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);color:var(--mut);font:24px/1 var(--sans);cursor:pointer}.assist-new-coffee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:20px 0 16px}.assist-new-coffee-grid label{display:grid;gap:6px;color:var(--faint);font:700 9px var(--sans);letter-spacing:.08em;text-transform:uppercase}.assist-new-coffee-grid input,.assist-new-coffee-grid select{min-height:46px;letter-spacing:normal;text-transform:none}.assist-new-coffee>.btn{width:100%;min-height:48px}

@media(max-width:700px){
  #tab-log>.journal-banner{display:none}
  .journal-mobile-nav{position:sticky;top:72px;z-index:45;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0 -2px 12px;padding:5px;border:1px solid var(--line-soft);border-radius:15px;background:rgba(251,247,240,.92);box-shadow:0 10px 28px rgba(50,34,23,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .journal-mobile-nav button{display:grid;gap:2px;min-height:48px;place-content:center;border:0;border-radius:11px;background:transparent;color:var(--mut);font-family:var(--sans);cursor:pointer}.journal-mobile-nav button span{font-size:12px;font-weight:750}.journal-mobile-nav button small{font-size:8.5px;color:var(--faint)}.journal-mobile-nav button.on{background:var(--espresso);color:#fff}.journal-mobile-nav button.on small{color:rgba(255,255,255,.6)}
  #tab-log[data-mobile-section="today"]>#brewCard,#tab-log[data-mobile-section="today"]>.seg,#tab-log[data-mobile-section="today"]>.log-view{display:none!important}
  #tab-log[data-mobile-section="brew"]>.today-grid,#tab-log[data-mobile-section="brew"]>.engagement-card,#tab-log[data-mobile-section="brew"]>.seg,#tab-log[data-mobile-section="brew"]>.log-view{display:none!important}
  #tab-log[data-mobile-section="library"]>.today-grid,#tab-log[data-mobile-section="library"]>.engagement-card,#tab-log[data-mobile-section="library"]>#brewCard{display:none!important}
  #tab-log>.today-grid{margin-bottom:0}.today-grid{gap:10px}.today-main,.quick-log-card{border-radius:17px}.today-main{padding:20px}.today-heading h2{font-size:27px}.today-heading p:last-child{font-size:12px}.today-signals{gap:7px;margin-top:18px}.today-signal{padding:13px}.quick-log-card{padding:20px}
  #tab-log>.seg{display:flex;width:100%;overflow-x:auto;margin:0 0 10px;padding:5px;border-radius:14px;scrollbar-width:none}#tab-log>.seg::-webkit-scrollbar{display:none}#tab-log>.seg button{flex:0 0 auto;padding:9px 13px;font-size:11px}
  #tab-log .log-view>.card,#tab-log .section-head-card{border-radius:17px;padding:18px}.history-tools{margin-top:14px}.lib-item{gap:8px}.lib-item .info{order:1}.lib-item .nums{order:2;margin-left:auto}.lib-item>button{order:3}.lib-item>div[style*="flex-basis"]{order:4}
  #brewCard{margin-bottom:0;padding:18px;border-radius:18px}.brew-card-head h2{font-size:28px}.brew-card-head .card-sub{font-size:12px}.brew-mode-switch{gap:8px;margin-top:18px}.brew-mode-switch button{min-height:92px;padding:16px}.brew-mode-switch button>b{margin-bottom:8px}.brew-mode-switch button span{font-size:21px}.brew-mode-switch button small{font-size:10px}
  .assist-progress{position:sticky;top:66px;z-index:3;width:100%;margin:0;padding:12px 14px;background:rgba(248,242,233,.94);border-bottom:1px solid var(--line-soft);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}.assist-progress span{font-size:0}.assist-progress b{width:26px;height:26px}
  .assist-stage{width:calc(100% - 16px);margin:12px auto 0;padding:22px 16px;border-radius:20px;box-shadow:none}.assist-stage h3{font-size:32px;line-height:1.02}.assist-stage>p:not(.eyebrow){margin-top:10px;font-size:12px}.assist-stage .eyebrow{margin-bottom:9px}
  .assist-methods{gap:7px;margin-top:20px}.assist-method{min-height:88px;padding:13px;border-radius:14px}.assist-method b{font-size:15px}.assist-method small{margin-top:5px;font-size:9.5px}
  .assist-coffee-picker{margin-top:20px}.assist-field select,.assist-field input{min-height:52px}.assist-add-coffee-toggle{width:100%;padding:11px}
  .assist-new-coffee{padding:17px;border-radius:15px}.assist-new-coffee-head h4{font-size:19px}.assist-new-coffee-grid{grid-template-columns:1fr;gap:9px;margin-top:16px}.assist-new-coffee-grid input,.assist-new-coffee-grid select{min-height:44px}
  .assist-setup-grid{margin-top:16px}.assist-recommendation,.assist-technique{margin-top:12px}.assist-technique{padding:15px}.assist-review{margin-top:20px}.assist-review div{min-height:72px;padding:13px}.assist-result-summary{margin-top:16px}.assist-choice-group{margin-top:16px}.assist-result-notes .assist-field{margin-top:14px}
  .assist-nav{min-height:70px;padding:9px 12px}.assist-nav .btn{min-height:46px}.assist-shell-head{min-height:66px}
}

/* Private challenge progress, calculated from the member's journal on the server. */
.engagement-card{margin:18px 0;padding:clamp(22px,3vw,34px);overflow:hidden;border:1px solid rgba(178,140,91,.28);border-radius:25px;background:radial-gradient(circle at 88% 0,rgba(216,173,94,.16),transparent 29%),linear-gradient(145deg,#fffdf9,#f6efe4);box-shadow:0 18px 48px rgba(55,37,26,.07)}
.engagement-card[hidden]{display:none}.engagement-head{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.engagement-head h2{margin-top:5px;color:var(--ink);font:600 clamp(29px,3.4vw,43px)/1 var(--display);letter-spacing:-.035em}.engagement-head>div>p:last-child{max-width:610px;margin-top:10px;color:var(--mut);font-size:12px;line-height:1.6}.engagement-streak{flex:0 0 auto;padding:10px 14px;border:1px solid rgba(77,126,91,.2);border-radius:999px;background:rgba(77,126,91,.09);color:var(--good);font:750 10px var(--sans);letter-spacing:.02em}
.engagement-layout{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.55fr);gap:14px;margin-top:24px}.monthly-challenge,.badge-collection{border:1px solid rgba(98,73,54,.12);border-radius:19px;background:rgba(255,255,255,.72)}.monthly-challenge{min-height:265px;padding:22px;display:flex;flex-direction:column}.monthly-challenge-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.monthly-challenge-top span{display:block;margin-top:5px;color:var(--faint);font:650 8.5px var(--sans);letter-spacing:.04em}.monthly-challenge-top>b{padding:7px 9px;border-radius:999px;background:rgba(180,90,50,.1);color:var(--clay);font:750 9px var(--sans)}.monthly-challenge-top>b.complete{background:rgba(77,126,91,.12);color:var(--good)}.monthly-challenge h3{max-width:15ch;margin-top:32px;color:var(--ink);font:600 26px/1.05 var(--display);letter-spacing:-.025em}.monthly-challenge>p:not(.eyebrow){margin-top:10px;color:var(--mut);font-size:11px;line-height:1.55}.challenge-progress{height:7px;margin-top:auto;overflow:hidden;border-radius:999px;background:rgba(98,73,54,.1)}.challenge-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--clay),#d3a354);transition:width .4s ease}.monthly-challenge>small{margin-top:8px;color:var(--faint);font:650 9px var(--sans)}
.badge-collection{padding:20px}.badge-collection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.badge-collection-head h3{margin-top:5px;color:var(--ink);font:600 21px/1.1 var(--display)}.badge-collection-head>span{flex:0 0 auto;color:var(--clay);font:750 9px var(--sans);letter-spacing:.04em}.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:17px}.badge-item{display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:70px;padding:10px;border:1px solid var(--line-soft);border-radius:13px;background:#fff}.badge-item>span{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);color:var(--mut);font:700 12px var(--mono)}.badge-item>div{min-width:0}.badge-item b{display:block;color:var(--body);font:750 10.5px var(--sans)}.badge-item small{display:block;margin-top:3px;color:var(--faint);font:500 8.5px/1.35 var(--sans)}.badge-item em{color:var(--faint);font:700 8px var(--sans);font-style:normal;white-space:nowrap}.badge-item.earned{border-color:rgba(77,126,91,.2);background:rgba(77,126,91,.055)}.badge-item.earned>span{background:var(--good);color:#fff}.badge-item.earned em{color:var(--good)}.badge-item.locked{filter:saturate(.75)}.badge-item.loading{grid-template-columns:39px 1fr;opacity:.65}.engagement-status{margin:14px 2px 0;color:var(--faint);font:600 8.5px/1.5 var(--sans);letter-spacing:.025em}

@media(max-width:920px){.engagement-layout{grid-template-columns:1fr}.monthly-challenge{min-height:225px}.monthly-challenge h3{margin-top:24px;max-width:none}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.engagement-card{margin:10px 0 0;padding:18px;border-radius:18px}.engagement-head{display:grid;gap:13px}.engagement-head h2{font-size:29px}.engagement-head>div>p:last-child{font-size:11px}.engagement-streak{justify-self:start}.engagement-layout{margin-top:17px;gap:10px}.monthly-challenge{min-height:215px;padding:17px;border-radius:15px}.monthly-challenge h3{font-size:24px}.badge-collection{padding:15px;border-radius:15px}.badge-collection-head{display:grid;gap:7px}.badge-grid{grid-template-columns:1fr;gap:7px}.badge-item{min-height:66px}.engagement-status{margin-top:11px}}

/* First-run guide, resumable onboarding and mobile profile repairs. */
.profile-guide-btn{margin-left:auto;white-space:nowrap}
.onboarding-checklist{margin-top:12px;padding:18px;border:1px solid rgba(180,90,50,.23);border-radius:16px;background:linear-gradient(135deg,rgba(180,90,50,.1),rgba(255,255,255,.62))}.onboarding-checklist[hidden]{display:none}.onboarding-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.onboarding-head span{color:var(--clay);font:750 8px var(--sans);letter-spacing:.11em;text-transform:uppercase}.onboarding-head h3{margin-top:5px;color:var(--ink);font:600 20px/1.1 var(--display)}.onboarding-head button{min-height:44px;border:0;border-radius:10px;padding:8px 10px;background:transparent;color:var(--clay);font:700 10px var(--sans);cursor:pointer}.onboarding-progress{height:5px;margin-top:14px;border-radius:999px;overflow:hidden;background:rgba(180,90,50,.12)}.onboarding-progress i{display:block;height:100%;border-radius:inherit;background:var(--clay)}.onboarding-tasks{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:13px 0}.onboarding-tasks div{display:flex;align-items:center;gap:8px;color:var(--body);font:600 10.5px var(--sans)}.onboarding-tasks i{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:#fff;font-style:normal}.onboarding-tasks .done{color:var(--mut)}.onboarding-tasks .done i{border-color:var(--good);background:var(--good)}.onboarding-checklist>.btn{min-height:44px;padding:10px 15px;font-size:11px}
.guide-modal{position:fixed;inset:0;z-index:520;display:none;place-items:center;padding:18px;background:rgba(24,17,13,.66);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.guide-modal.show{display:grid}body.guide-open{overflow:hidden}.guide-sheet{width:min(780px,100%);max-height:calc(100dvh - 36px);overflow:auto;border:1px solid rgba(255,255,255,.2);border-radius:28px;background:linear-gradient(145deg,#fbf8f2,#f2e8dc);box-shadow:0 35px 100px rgba(20,13,9,.42)}.guide-sheet>header{position:static;display:flex;align-items:center;justify-content:space-between;min-height:72px;margin:0;padding:14px 22px;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;background:rgba(255,255,255,.55);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.guide-close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--mut);font:27px/1 var(--sans);cursor:pointer}.guide-progress{height:4px;background:rgba(180,90,50,.1)}.guide-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--clay),var(--good));transition:width .25s ease}.guide-content{padding:clamp(28px,5vw,52px)}.guide-kicker{color:var(--clay);font:750 9px var(--sans);letter-spacing:.14em;text-transform:uppercase}.guide-content h2{max-width:15ch;margin-top:10px;color:var(--ink);font:600 clamp(34px,5vw,54px)/.98 var(--display);letter-spacing:-.04em}.guide-content>p{max-width:62ch;margin-top:16px;color:var(--mut);font-size:14px;line-height:1.65}.guide-points{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:26px}.guide-points div{min-height:118px;padding:15px;border:1px solid var(--line-soft);border-radius:14px;background:rgba(255,255,255,.65)}.guide-points span{color:var(--clay);font:750 9px var(--mono)}.guide-points p{margin-top:15px;color:var(--body);font:600 11px/1.5 var(--sans)}.guide-action{margin-top:18px;border:0;background:transparent;color:var(--good);font:750 11px var(--sans);cursor:pointer}.guide-action:after{content:' →'}.guide-sheet>footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px 22px;border-top:1px solid var(--line-soft);background:rgba(255,255,255,.6)}.guide-sheet>footer span{color:var(--faint);font:700 9px var(--sans);letter-spacing:.1em;text-transform:uppercase}.guide-sheet>footer .btn:first-child{justify-self:start}.guide-sheet>footer .btn:last-child{justify-self:end}.guide-sheet>footer .btn:disabled{opacity:.35}

@media(max-width:620px){
  #tab-profile .card{overflow:hidden;padding:18px;border-radius:18px}#tab-profile .field,#tab-profile input,#tab-profile select,#tab-profile textarea{min-width:0;max-width:100%}
  #tab-profile .card>.row,#tab-profile #pwArea>.row,.profile-coffee-primary,.profile-coffee-details,.profile-grinder-add{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}#tab-profile .card>.row>.field,#tab-profile #pwArea>.row>.field,.profile-coffee-primary>.field,.profile-coffee-details>.field{width:100%;max-width:none!important}#tab-profile .profile-coffee-details>.btn,#tab-profile .profile-grinder-add>.btn{width:100%;min-height:46px}
  #tab-profile .prof-head{display:grid;grid-template-columns:auto 1fr;gap:12px}.prof-head .ph-stats{grid-column:1/-1;width:100%}.profile-guide-btn{grid-column:1/-1;width:100%;margin:0}
  .onboarding-head{align-items:center}.onboarding-tasks{grid-template-columns:1fr}.onboarding-checklist>.btn{width:100%}
  .guide-modal{align-items:end;padding:0}.guide-sheet{width:100%;max-height:calc(100dvh - 10px);border-radius:24px 24px 0 0}.guide-sheet>header{min-height:64px;padding:11px 16px}.guide-content{padding:24px 18px}.guide-content h2{font-size:36px}.guide-content>p{font-size:12.5px}.guide-points{grid-template-columns:1fr;gap:7px;margin-top:20px}.guide-points div{display:grid;grid-template-columns:26px 1fr;align-items:start;min-height:0;padding:12px}.guide-points p{margin-top:0}.guide-sheet>footer{position:sticky;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.guide-sheet>footer .btn{min-width:96px;padding:11px 13px}
}

/* Marcus phase 2: Today answers “what should I do next?” before presenting
   history and progress. */
.today-heading-side{display:grid;justify-items:end;gap:10px}.today-heading-actions{display:flex;align-items:center;gap:10px}.today-heading-actions .btn{min-height:44px;padding:10px 14px}.today-heading-actions .text-action{min-height:44px;margin:0;padding:0 4px;color:var(--clay)}
@media(max-width:700px){
  .today-heading{display:grid;gap:12px}.today-heading-side{justify-items:stretch}.today-heading-side .sync-pill{justify-self:start;margin:0;grid-row:2}.today-heading-actions{grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.today-heading-actions .btn{width:100%}.today-heading-actions .text-action{padding:0 10px}
  #tab-log>.today-grid .today-signals{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px}
  #tab-log>.today-grid .today-signal{min-height:96px;padding:11px 9px}
  #tab-log>.today-grid .today-signal span{font-size:7px;letter-spacing:.08em}
  #tab-log>.today-grid .today-signal b{margin:6px 0 3px;font-size:13px;overflow-wrap:anywhere}
  #tab-log>.today-grid .today-signal small{font-size:8px;line-height:1.25}
}
