:root{color-scheme:light;--bg: #f4f4f7;--bg-secondary: #eef1f5;--card: #ffffff;--card-soft: #fbfcfe;--text: #18222d;--muted: #77879b;--line: rgba(24, 34, 45, .08);--primary: #3390ec;--primary-strong: #2481df;--danger: #e85d58;--protein: #43b8f5;--fat: #f2bb3d;--carbs: #b78af5;--success: #57c05d;--shadow-sm: 0 10px 28px rgba(24, 34, 45, .06);--shadow-md: 0 20px 48px rgba(24, 34, 45, .08);--radius-xl: 28px;--radius-lg: 22px;--radius-md: 18px;--radius-sm: 14px;font-family:SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}input,select{width:100%;border:none;outline:none;background:transparent;color:var(--text)}.screen{min-height:100vh;padding:max(16px,env(safe-area-inset-top,16px)) 16px calc(108px + env(safe-area-inset-bottom,16px));background:linear-gradient(180deg,#f8f9fc 0%,var(--bg) 28%,var(--bg) 100%)}.screen--detail{padding-bottom:calc(132px + env(safe-area-inset-bottom,16px))}.screen-state{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.screen-state__card{width:min(100%,420px);padding:22px 24px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);text-align:center}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:18px}.topbar__center{text-align:center;min-width:0}.topbar__center h1{margin:0;font-size:17px;font-weight:700;letter-spacing:-.01em}.topbar__center p{margin:2px 0 0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__right{display:flex;justify-content:flex-end}.ghost-button,.icon-button,.profile-pill,.round-chip,.blue-chip,.pill-button,.text-button,.footer-link,.danger-link{border:none}.ghost-button,.icon-button,.profile-pill,.round-chip,.blue-chip{min-height:38px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid rgba(24,34,45,.06);color:var(--text);box-shadow:0 4px 18px rgba(24,34,45,.03)}.icon-button,.round-chip{width:38px;padding:0}.profile-pill{font-weight:600;color:#68778a}.blue-chip{background:rgba(51,144,236,.12);color:var(--primary);border-color:rgba(51,144,236,.18);font-weight:600}.pill-button{min-height:38px;padding:0 14px;border-radius:12px;background:#eff3f7;color:#536579;font-weight:600}.text-button,.footer-link{background:transparent;color:var(--primary);padding:0}.danger-link{background:transparent;color:var(--danger);font-weight:700}.hero-section,.content-section,.profile-card,.detail-sheet,.result-card{background:var(--card);border:1px solid rgba(24,34,45,.05);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.hero-section,.content-section,.profile-card,.detail-sheet{padding:18px;margin-bottom:16px}.hero-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.hero-section__eyebrow{font-size:12px;color:var(--muted);margin-bottom:6px}.hero-section__title{margin:0;font-size:30px;line-height:1.06;letter-spacing:-.03em}.calendar-heading{display:flex;align-items:center;justify-content:center;margin-bottom:10px}.calendar-heading__title{font-size:15px;font-weight:600;color:#495b70}.calendar-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:18px}.calendar-day{display:grid;justify-items:center;gap:4px;padding:10px 6px 8px;border:1px solid transparent;border-radius:18px;background:transparent;color:#8b98aa}.calendar-day span{font-size:12px;font-weight:600}.calendar-day strong{font-size:22px;line-height:1;font-weight:700}.calendar-day__dot{width:6px;height:6px;border-radius:999px;background:transparent}.calendar-day__dot.is-visible{background:rgba(51,144,236,.35)}.calendar-day--active{background:rgba(51,144,236,.12);border-color:rgba(51,144,236,.16);color:var(--primary)}.calendar-day--active .calendar-day__dot{background:var(--primary)}.stats-card{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid rgba(24,34,45,.05);border-radius:24px;padding:18px}.stats-card--hero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.stats-card__caption{margin-bottom:6px;color:var(--muted);font-size:14px}.stats-card__subcaption{margin-top:6px;color:var(--muted);font-size:13px}.stats-card__kcal{font-size:clamp(38px,11vw,54px);font-weight:800;line-height:.94;letter-spacing:-.04em}.hero-ring{--ring-progress: 0%;position:relative;width:108px;height:108px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--primary) 0 var(--ring-progress),rgba(24,34,45,.08) var(--ring-progress) 100%)}.hero-ring:after{content:"";position:absolute;width:78px;height:78px;border-radius:50%;background:#fff}.hero-ring__inner{position:relative;z-index:1;display:grid;justify-items:center;font-size:12px}.hero-ring__inner span{font-weight:800}.hero-ring__inner strong{color:#68778a}.usefulness-card__header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-weight:600}.usefulness-card__header b{padding:4px 10px;border-radius:999px;background:rgba(87,192,93,.14);color:#3d9a42}.usefulness-bar{height:8px;border-radius:999px;overflow:hidden;background:#edf2f7}.usefulness-bar__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#f7a64a,#cddd63 60%,#57c05d)}.macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}.macro-card{position:relative;padding:18px 12px 16px;border-radius:24px;text-align:center;background:var(--card);border:1px solid rgba(24,34,45,.05);box-shadow:0 8px 24px rgba(24,34,45,.04)}.macro-card__ring{width:76px;height:76px;display:block;margin:0 auto 10px}.macro-card__track,.macro-card__fill{fill:none;stroke-width:8;transform:rotate(-90deg);transform-origin:50% 50%}.macro-card__track{stroke:rgba(24,34,45,.08)}.macro-card__fill{stroke-linecap:round}.macro-card__badge{position:absolute;top:44px;left:50%;transform:translate(-50%);font-weight:800}.macro-card__value{font-weight:700}.macro-card__label{color:var(--muted)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.section-header h2{margin:0;font-size:19px;font-weight:700}.screen-copy{margin:0 0 16px;color:#65768a;line-height:1.45}.screen-copy--compact{margin-bottom:12px}.counter-badge{min-width:22px;height:22px;padding:0 8px;display:inline-grid;place-items:center;border-radius:999px;background:rgba(51,144,236,.14);color:var(--primary);font-size:12px;font-weight:700}.meal-list,.saved-list,.ingredient-list,.hub-grid,.profile-footer-links{display:grid;gap:12px}.meal-card,.section-card,.saved-item,.hub-button,.ingredient-card{width:100%;border:none;background:var(--card-soft);border:1px solid rgba(24,34,45,.05);border-radius:22px}.meal-card{display:grid;grid-template-columns:96px 1fr auto;gap:14px;padding:10px;text-align:left;align-items:stretch}.meal-card__media img,.meal-card__placeholder{width:96px;height:96px;object-fit:cover;border-radius:16px;background:linear-gradient(180deg,#eff3f7,#dbe4ed)}.meal-card__body{display:grid;gap:6px}.meal-card__meta{display:flex;justify-content:space-between;color:#97a3b4;font-size:12px}.meal-card__title{font-size:18px;font-weight:700;line-height:1.18}.meal-card__subtitle{color:var(--muted);font-size:13px}.meal-card__calories{font-size:19px;font-weight:700}.meal-card__chevron{display:grid;place-items:center;color:#acb7c5;font-size:28px}.macro-chip{display:inline-flex;align-items:center;gap:6px;margin-right:10px;padding:2px 0;font-size:13px;font-weight:700}.macro-chip--protein{color:var(--protein)}.macro-chip--fat{color:var(--fat)}.macro-chip--carbs{color:var(--carbs)}.empty-card{min-height:180px;display:grid;place-items:center;text-align:center;padding:24px;border-radius:24px;background:linear-gradient(180deg,#fbfcfe,#f5f8fb);border:1px dashed rgba(24,34,45,.12)}.empty-card__title{font-size:22px;font-weight:700;margin-bottom:6px}.empty-card__subtitle{color:var(--muted);max-width:280px}.fab{position:fixed;right:20px;bottom:calc(18px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 22px;border:none;border-radius:999px;background:var(--primary);color:#fff;font-weight:700;box-shadow:0 18px 36px rgba(51,144,236,.28)}.fab span{font-size:22px}.detail-photo{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:28px;margin-bottom:-22px;background:#dbe4ed}.detail-sheet{position:relative;z-index:1}.detail-time-pill{width:fit-content;margin:0 auto 12px;padding:8px 14px;border-radius:999px;background:#f1f5f9;color:#8190a3;font-weight:600}.detail-title{margin:0;font-size:clamp(30px,8vw,38px);line-height:1.06;letter-spacing:-.03em}.detail-subtitle{margin-top:8px;color:var(--muted)}.portion-row{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin:18px 0}.portion-stepper,.weight-box{padding:12px;background:#f9fbfd;border:1px solid rgba(24,34,45,.05);border-radius:18px}.portion-stepper{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:10px}.portion-stepper button{width:38px;height:38px;border:none;border-radius:12px;background:#eaf1f8;color:var(--text)}.portion-stepper strong,.weight-box strong{font-size:20px}.weight-box{display:grid;gap:8px}.weight-box span,.detail-macro-grid span,.profile-macro span,.goal-box span,.profile-banner span{color:var(--muted)}.weight-box--editable input{font-size:20px;font-weight:700}.detail-card__header,.profile-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-macro-grid,.profile-macros,.goal-grid,.profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.detail-macro-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-macro-grid>div,.profile-macro,.goal-box,.profile-banner{padding:12px;background:#f7fafc;border:1px solid rgba(24,34,45,.05);border-radius:16px}.profile-card__plan-title{color:var(--muted);margin-bottom:8px}.profile-kcal{font-size:52px;font-weight:800;line-height:.95;letter-spacing:-.04em}.profile-kcal__caption{margin-top:6px;color:var(--muted)}.profile-macro--protein{background:rgba(67,184,245,.12)}.profile-macro--fat{background:rgba(242,187,61,.12)}.profile-macro--carbs{background:rgba(183,138,245,.12)}.profile-macro strong{display:block;margin-top:4px;font-size:28px}.profile-banner{display:flex;align-items:center;justify-content:space-between}.settings-list{display:grid;gap:2px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border-bottom:none}.accordion-chip{width:fit-content;margin-top:16px;padding:8px 12px;border-radius:999px;background:rgba(51,144,236,.12);color:var(--primary);font-weight:700}.recommendation-list{display:grid;gap:8px;margin-top:12px;color:#445467}.recommendation-list p{margin:0}.ingredient-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;background:#fbfcfe}.icon-dismiss{width:28px;height:28px;display:grid;place-items:center;border:none;border-radius:999px;background:#edf2f7;color:#6c7a8d}.icon-dismiss--static{cursor:default}.ingredient-card__name{font-weight:600}.ingredient-card__kcal{padding:8px 12px;border-radius:999px;background:#edf2f7;color:#627386;font-weight:600}.sticky-actions{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:1fr 1.15fr;gap:12px}.sticky-actions--inline{position:static;grid-template-columns:1fr 1fr;margin-top:16px}.primary-action,.secondary-action,.primary-action--wide{min-height:54px;border:none;border-radius:18px;font-weight:700}.primary-action,.primary-action--wide{background:var(--primary);color:#fff;box-shadow:0 16px 32px rgba(51,144,236,.18)}.secondary-action{background:#edf2f7;color:var(--text)}.primary-action--wide{width:100%}.section-card,.saved-item,.hub-button{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;text-align:left}.section-card__title,.saved-item__title{font-weight:700;font-size:17px}.section-card__description,.saved-item__subtitle{color:var(--muted)}.section-card__side{display:flex;align-items:center;gap:10px}.section-card__count{min-width:30px;height:30px;padding:0 10px;display:grid;place-items:center;background:rgba(51,144,236,.12);color:var(--primary);border-radius:999px;font-weight:700}.section-card__arrow{color:#9ba8b8;font-size:28px}.saved-item__meta{color:#6f7f91;font-weight:700}.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-button{flex-direction:column;align-items:flex-start;min-height:132px;background:linear-gradient(180deg,#fbfcfe,#f4f8fb)}.hub-button span{font-size:30px}.hub-button strong{font-size:18px;line-height:1.2}.flow-form,.inline-form{display:grid;gap:12px}.field-card{display:grid;gap:10px;padding:14px 16px;background:#fbfcfe;border:1px solid rgba(24,34,45,.05);border-radius:18px}.field-card span{color:var(--muted);font-size:14px}.field-card input::file-selector-button{border:none;border-radius:999px;background:var(--primary);color:#fff;padding:10px 14px;margin-right:12px}.camera-field{display:grid;gap:12px;padding:14px 16px;background:#fbfcfe;border:1px solid rgba(24,34,45,.05);border-radius:18px}.camera-field__label{color:var(--muted);font-size:14px}.camera-field__preview-card,.camera-field__placeholder{overflow:hidden;border-radius:18px;border:1px solid rgba(24,34,45,.06);background:#eef3f8}.camera-field__preview-card{aspect-ratio:4 / 3}.camera-field__preview,.camera-field__video{width:100%;height:100%;display:block;object-fit:cover;background:#dbe4ed}.camera-field__placeholder{display:grid;gap:6px;padding:20px 18px}.camera-field__placeholder strong{font-size:17px;line-height:1.25}.camera-field__placeholder span,.camera-field__filename{color:var(--muted);line-height:1.4}.camera-field__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.camera-field__input{display:none}.segmented-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;background:#fbfcfe;border:1px solid rgba(24,34,45,.05);border-radius:18px}.segmented-toggle button{min-height:42px;border:none;border-radius:14px;background:transparent;color:#708094;font-weight:600}.segmented-toggle .is-active{background:rgba(51,144,236,.12);color:var(--primary)}.result-card{margin-top:18px;padding:16px;background:var(--card)}.result-card__title{margin-bottom:14px;font-size:28px;font-weight:800;line-height:1.08;letter-spacing:-.03em}.detail-card--compact{margin:0}.content-section--embedded{margin-top:16px;margin-bottom:0;padding:0;background:transparent;border:none;box-shadow:none}.profile-links{text-align:center;display:grid;gap:18px}.profile-footer-links{grid-template-columns:repeat(3,minmax(0,1fr));font-size:13px}.info-banner{padding:14px 16px;border-radius:16px;background:rgba(51,144,236,.08);color:#4b6179;line-height:1.4}@media (max-width: 560px){.macro-grid,.hub-grid,.profile-form-grid,.profile-footer-links,.goal-grid,.profile-macros,.detail-macro-grid{grid-template-columns:1fr}.meal-card{grid-template-columns:84px 1fr auto}.meal-card__media img,.meal-card__placeholder{width:84px;height:84px}.portion-row,.sticky-actions,.sticky-actions--inline,.stats-card--hero,.camera-field__actions{grid-template-columns:1fr}.hero-section__header,.detail-card__header,.profile-section-head{flex-direction:column;align-items:stretch}.hero-ring{margin:0 auto}}
