*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font:400 var(--font-body)/1.55 var(--font-family);font-synthesis:none}::selection{background:var(--color-brand);color:var(--color-bg)}:root{scrollbar-color:var(--color-stroke) var(--color-bg);caret-color:var(--color-brand)}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-definitions{display:none}a{color:var(--color-text);text-decoration:none;text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button,a,input,select,summary{outline-offset:4px}:focus-visible{outline:2px solid var(--color-brand)}button:disabled{cursor:not-allowed;opacity:.5}button[aria-busy=true]{cursor:wait}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.12;letter-spacing:-.03em;font-weight:750}h2{font-size:22px;line-height:1.3;letter-spacing:-.02em;font-weight:650}h3{font-size:18px;line-height:1.35;font-weight:600}p{max-width:70ch}button,a{transition:background-color var(--motion-press),color var(--motion-press),border-color var(--motion-press)}.app-shell{max-width:1280px;margin:auto;display:grid;grid-template-columns:204px minmax(0,1fr)}.app-header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 32px;border-bottom:1px solid var(--color-stroke)}.brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:750;letter-spacing:-.03em;min-height:44px}.brand-mark{display:grid;place-items:center;width:36px;height:40px;color:var(--color-brand)}.brand-mark svg{height:32px;width:32px}.badge,.chip{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:1.5;color:var(--color-muted);padding:6px 12px;border:1px solid var(--color-stroke);border-radius:var(--radius-small)}.app-nav{display:flex;flex-direction:column;gap:8px;padding:24px 16px;align-self:start;position:sticky;top:0}.app-nav a{display:flex;align-items:center;gap:12px;min-height:52px;padding:12px;border-radius:var(--radius-small);color:var(--color-muted);font-size:14px}.app-nav a:hover{background:var(--color-surface)}.app-nav a[aria-current=page]{color:var(--color-brand);background:var(--color-surface)}main{min-width:0;padding:32px;min-height:calc(100vh - 180px)}.app-shell:has(.app-nav[hidden]) main{grid-column:1/-1}.screen{animation:screen-enter var(--motion-page) var(--ease-enter)}@keyframes screen-enter{from{opacity:.7;transform:translateY(6px)}to{opacity:1;transform:none}}.app-footer{grid-column:1/-1;color:var(--color-muted);font-size:12px;padding:24px 32px;border-top:1px solid var(--color-stroke)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-heading .muted{margin-bottom:8px}.muted,.caption{color:var(--color-muted)}.caption{font-size:12px;line-height:1.5;display:block}.step{color:var(--color-muted);font-size:14px;margin-bottom:12px}.panel{background:var(--color-surface);border:1px solid var(--color-stroke);padding:24px;border-radius:var(--radius-card)}.panel>p{color:var(--color-muted);margin-top:12px}.panel>button,.panel>a.secondary{margin-top:16px}.primary,.secondary,.destructive,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:var(--tap-min);padding:12px 20px;border:1px solid transparent;border-radius:var(--radius-small);font-weight:650;font-size:14px;line-height:1.5;text-align:center}.primary{background:var(--color-brand);color:var(--color-bg)}.primary:hover{filter:brightness(1.06)}.secondary,.icon-button{background:var(--color-surfaceRaised);color:var(--color-text);border-color:var(--color-stroke)}.secondary:hover,.icon-button:hover{background:var(--color-stroke)}.destructive{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.destructive:hover{background:var(--color-surfaceRaised)}.icon-button{padding:10px;min-width:48px}.primary svg,.secondary svg{width:20px;height:20px}.form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}label{display:block;font-size:14px;font-weight:600;margin:24px 0 8px}input:not([type=checkbox]),select{display:block;width:100%;min-height:52px;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-stroke);border-radius:var(--radius-small);padding:12px 16px}input::placeholder{color:var(--color-muted);opacity:1}form>.primary{margin-top:24px}.check-label{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:400}.check-label input{width:20px;height:20px;accent-color:var(--color-brand);flex-shrink:0}.welcome{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;max-width:1000px;margin:24px auto 64px}.welcome .intro{max-width:480px}.welcome-sign{display:grid;place-items:center;width:64px;height:64px;color:var(--color-brand);margin-bottom:32px}.welcome-sign svg{height:64px;width:64px}.intro h1{font-size:clamp(36px,4.6vw,64px);font-weight:780;letter-spacing:-.04em;margin-bottom:24px}.intro h1 span{color:var(--color-brand)}.intro p{color:var(--color-muted);max-width:420px;font-size:18px}.demo-note{display:flex;align-items:center;gap:8px;color:var(--color-muted);font-size:12px;margin-bottom:16px}.status-dot{background:var(--color-warning);height:6px;width:6px;border-radius:50%;flex-shrink:0}.welcome-body>.caption{margin-top:16px}.welcome-body .primary{width:100%}.welcome .panel{padding:32px}.day-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:24px}.next-action{display:flex;flex-direction:column;align-items:start;padding:32px;min-height:348px;gap:24px}.hero-meta{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.hero-meta>.muted{font-size:12px}.next-action .chip{border-color:var(--color-brand);color:var(--color-brand)}.next-action h2,.training-overview h2{font-size:36px;line-height:1.1;letter-spacing:-.03em}.next-action>p{margin:0;font-size:14px}.next-action .primary{margin-top:auto;width:100%}.day-side{display:flex;flex-direction:column;gap:16px}.day-score>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:16px}.day-score .muted{font-size:14px;max-width:140px}.day-score strong{font-size:var(--font-metrics);font-variant-numeric:tabular-nums}.day-score small{font-size:18px;color:var(--color-muted);font-weight:400}.completion-track{height:6px;background:var(--color-stroke);border-radius:12px;margin:24px 0 16px;overflow:hidden}.completion-track>span{display:block;height:100%;width:0;background:var(--color-success);transition:width var(--motion-graph)}.safety{border:1px solid var(--color-stroke);border-radius:var(--radius-card);padding:20px;color:var(--color-muted);font-size:14px}.safety summary{color:var(--color-warning);cursor:pointer;min-height:28px}.safety p{margin-top:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 16px}.section-heading>a{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--color-muted)}.section-heading>a svg{width:16px;height:16px}.task-list{border-top:1px solid var(--color-stroke)}.task{display:flex;gap:16px;align-items:start;padding:24px 0;border-bottom:1px solid var(--color-stroke)}.task-icon{width:48px;height:48px;border-radius:var(--radius-small);background:var(--color-surfaceRaised);color:var(--color-muted);display:grid;place-items:center;flex-shrink:0}.task-content{flex:1;min-width:0}.task-content>p{color:var(--color-muted);font-size:14px;margin-top:4px}.item-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}.item-actions .secondary{font-size:12px;min-height:44px;padding:8px 12px}.state{font-size:12px;color:var(--color-muted);margin-right:auto;display:inline-flex;align-items:center;gap:6px}.state.is-done,[data-item-status].is-done{color:var(--color-success)}.state.is-done:before{content:"";width:6px;height:6px;background:currentColor;border-radius:50%}.feedback{padding:16px 20px;border:1px solid var(--color-stroke);border-radius:var(--radius-small);background:var(--color-surfaceRaised);font-size:14px;margin-bottom:24px;line-height:1.55}.feedback h2{font-size:20px;margin-bottom:8px}.feedback p{margin-top:8px}.feedback.error{color:var(--color-danger)}.feedback.warning{color:var(--color-warning)}.feedback.info{color:var(--color-info)}#message{scroll-margin-top:24px}#startup-warning{font-size:14px;color:var(--color-warning);margin-bottom:24px}.segmented{display:inline-flex;gap:4px;padding:4px;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:var(--radius-small);margin-bottom:24px;max-width:100%;flex-wrap:wrap}.segmented button{border:0;background:transparent;color:var(--color-muted);padding:12px 16px;border-radius:8px;min-height:44px;font-size:14px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--color-surfaceRaised);color:var(--color-brand)}.recipe-summary{display:flex;align-items:start;gap:24px}.recipe-summary p{color:var(--color-muted);margin-top:12px}.recipe-summary .secondary{margin-top:24px}.recipe-summary h2{margin-top:4px}.empty-state{padding:32px 24px;text-align:center;color:var(--color-muted);border:1px solid var(--color-stroke);border-radius:var(--radius-card)}.empty-state h2{color:var(--color-text);margin:16px 0 8px}.empty-state svg{color:var(--color-muted);width:40px;height:40px}.empty-state+.caption{margin-top:12px}.back-link{display:inline-flex;align-items:center;min-height:44px;color:var(--color-muted);font-size:14px;margin-bottom:16px}.back-link:before{content:"←";margin-right:8px}.detail-grid,.session-grid,.progress-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.detail-grid>.panel{min-width:0}.portion-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}.portion-controls button{min-width:48px;padding:8px}.ingredient-list{margin:24px 0}.ingredient-list>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--color-stroke);font-size:14px}.ingredient-list dt{color:var(--color-muted)}.ingredient-list dd{margin:0;text-align:right}.cook-mode .section-heading{margin-top:0}.cook-instruction{min-height:120px;font-size:24px;line-height:1.4;color:var(--color-text)!important}.cook-mode>.caption{margin-top:24px}.training-overview{padding:32px;display:flex;flex-direction:column;align-items:start;gap:24px}.training-overview>p{margin:0;max-width:600px}.training-overview .primary{margin:0}.session-grid{grid-template-columns:1.4fr 1fr}.player-empty{border:1px solid var(--color-stroke);background:var(--color-surface);border-radius:var(--radius-card);padding:24px;min-height:360px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}.player-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:12px}.player-center{text-align:center;max-width:320px;align-self:center}.player-center>svg{width:56px;height:56px;color:var(--color-brand);margin-bottom:16px}.player-center p{color:var(--color-muted);font-size:14px;margin-top:12px}.player-bottom{font-size:12px;color:var(--color-muted);text-align:center}.player-tools{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.player-tools button{font-size:12px;padding:8px 12px;min-height:44px}.session-controls>button{display:flex;width:100%;margin-top:12px}.session-steps{padding-left:24px;margin:24px 0;color:var(--color-muted)}.session-steps li{padding:8px 0}.session-controls>.text-link{display:block;margin-top:16px}.text-link{color:var(--color-brand);text-decoration:underline;min-height:44px;padding:10px 0}.session-grid~.feedback{margin-top:24px}.calendar-date{display:flex;gap:16px;align-items:start;margin-bottom:24px}.calendar-date svg{color:var(--color-brand)}.calendar-date p{font-size:14px;color:var(--color-muted);margin-top:4px}.calendar-task{display:flex;gap:16px;justify-content:space-between;padding:16px 0;border-top:1px solid var(--color-stroke);font-size:14px}.calendar-task>span{color:var(--color-muted)}.status-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.status-legend>span{padding:8px 12px;background:var(--color-surface);border-radius:var(--radius-small);font-size:12px;color:var(--color-muted)}.status-legend .done{color:var(--color-success)}.metric>span{font-size:14px;color:var(--color-muted)}.metric strong{font-size:var(--font-metrics);line-height:1.2;display:block;margin:16px 0;color:var(--color-success);font-variant-numeric:tabular-nums}.metric>p{font-size:14px}.progress-grid+.panel,.progress-grid~.panel{margin-top:24px}.section-icon{color:var(--color-muted);margin-bottom:16px}.profile-card{display:flex;gap:16px;align-items:center;margin-bottom:24px}.profile-card p{color:var(--color-muted);font-size:14px}.avatar{width:56px;height:56px;border-radius:var(--radius-small);background:var(--color-surfaceRaised);display:grid;place-items:center;color:var(--color-brand);font-size:24px}.scanner-stage{padding:16px 0;text-align:center}.scanner-stage svg{width:56px;height:56px;color:var(--color-muted);margin-bottom:16px}.scanner-stage p{margin:12px auto 0;color:var(--color-muted);font-size:14px;max-width:440px}#portion-form{margin-top:24px}#portion-form h2{margin-top:16px}.warning-chip{color:var(--color-warning)}#scan-result{margin-top:16px;color:var(--color-warning)}#photo-suggestion{margin-top:24px}#photo-suggestion p{margin:16px 0;color:var(--color-muted)}.log-entry{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;text-align:left;border-bottom:1px solid var(--color-stroke);padding:16px 0}.log-entry small{display:block;color:var(--color-muted);font-size:12px}.log-entry strong{font-size:16px}.app-footer:empty{display:none}dialog{background:var(--color-surfaceRaised);color:var(--color-text);border:1px solid var(--color-stroke);border-radius:var(--radius-sheet);padding:32px;width:min(480px,calc(100% - 32px))}dialog::backdrop{background:rgba(0,0,0,.65)}dialog p{margin-top:16px}dialog button{width:100%;margin-top:24px}[hidden]{display:none!important}
@media(min-width:961px){.app-shell:has(.app-nav[hidden]) .welcome{grid-column:1/-1}}
@media(max-width:960px){.app-shell{display:block}.app-header{padding:16px 24px}.app-nav{position:fixed;z-index:10;inset:auto 0 0;flex-direction:row;justify-content:space-around;padding:8px 8px max(8px,env(safe-area-inset-bottom,0px));background:var(--color-bg);border-top:1px solid var(--color-stroke)}.app-nav a{flex:1;min-width:0;flex-direction:column;gap:4px;padding:8px 0;font-size:12px;line-height:1.3;min-height:60px}.app-nav a svg{width:22px;height:22px}.app-nav a[aria-current=page]{background:transparent}main{padding:24px;min-height:75vh}.app-footer{padding:24px 24px 108px}.welcome{gap:32px;margin:16px auto 32px}.welcome .panel{padding:24px}.day-layout{grid-template-columns:1fr 1fr}.next-action{padding:24px}.next-action h2{font-size:32px}.session-grid{grid-template-columns:1fr}.session-controls{max-width:none}.session-steps{display:flex;gap:24px;flex-wrap:wrap}.session-steps li{padding:0}}
@media(max-width:620px){.app-header{padding:12px 16px}.brand{font-size:20px;gap:8px}.brand-mark{width:28px}.badge{font-size:12px;padding:4px 8px;max-width:150px;text-align:right}main{padding:24px 16px}.page-heading{margin-bottom:24px}h1{font-size:28px}.welcome{display:block;margin:8px 0 24px}.welcome .intro{max-width:none}.welcome-sign{width:40px;height:40px;margin-bottom:24px}.welcome-sign svg{width:40px;height:40px}.intro h1{font-size:40px;margin-bottom:16px}.intro p{font-size:16px;margin-bottom:32px}.welcome .panel{padding:24px}.welcome-body .caption{font-size:12px}.demo-note{align-items:flex-start}.status-dot{margin-top:7px}.day-layout,.detail-grid,.progress-grid{grid-template-columns:1fr;gap:16px}.day-side{gap:12px}.next-action{min-height:316px;gap:20px}.next-action h2{font-size:32px}.day-score{padding:20px}.completion-track{margin:16px 0 12px}.safety{padding:16px}.section-heading{margin-top:32px}.section-heading h2{font-size:20px}.task{gap:12px}.task-icon{width:40px;height:44px}.item-actions{gap:8px}.item-actions .state{width:100%;margin-bottom:4px}.panel{padding:20px}.recipe-summary{gap:16px}.recipe-summary>.task-icon{display:none}.segmented{display:flex}.segmented button{flex:1;padding:10px 12px}.detail-grid .panel{padding:20px}.cook-instruction{font-size:22px}.player-empty{padding:20px;min-height:340px}.session-steps{display:block}.session-steps li{padding:8px 0}.session-controls .primary{font-size:16px}.status-legend{gap:8px}.progress-grid{grid-template-columns:1fr 1fr}.metric{padding:20px 16px}.metric>p{font-size:12px}.ingredient-list>div{gap:12px}.ingredient-list dd{overflow-wrap:anywhere}.form-actions{gap:8px}.form-actions>*{flex:1}.privacy .form-actions>*{flex-basis:100%}.app-footer{padding:24px 16px 112px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:0ms!important;scroll-behavior:auto!important}}
.nav-short{display:none}.brand{white-space:nowrap;flex-shrink:0}.safety summary{min-height:44px;display:list-item;padding:8px 0}@media(max-width:620px){.app-header{gap:12px;padding-top:calc(12px + max(env(safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px)))}.brand{font-size:18px}.brand-mark{width:24px}.brand-mark svg{width:26px;height:26px}.badge{max-width:125px}.app-nav{padding-bottom:calc(8px + max(env(safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px)))}.app-footer{padding-bottom:calc(112px + max(env(safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px)))}}@media(max-width:380px){.app-nav .nav-full{display:none}.app-nav .nav-short{display:block}}
fieldset{border:0;padding:0;margin:0;min-width:0}
#auth-switch{margin-bottom:var(--space-16,16px)}
#favorites{gap:12px}
#delete-dialog input{width:100%}
.has-video{min-height:0;gap:16px}.has-video video{width:100%;max-height:65vh;aspect-ratio:16/9;background:#000;border-radius:12px}.has-video h2{font-size:22px}.has-video>p{font-size:14px;color:var(--color-muted)}.media-attribution{white-space:pre-line;overflow-wrap:anywhere;text-decoration:underline}.telegram-panel{margin-top:24px}.telegram-panel .form-actions{margin-top:20px}.reduce-motion *,.reduce-motion *::before,.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
