:root{--background:#f3f1eb;--foreground:#1d3028;--panel:rgba(251,249,244,0.82);--line:rgba(52,78,66,0.14);--sage:#5f7a5f;--sage-dark:#253b31;--sage-soft:#dde8df;--terracotta:#b96b4f;--amber:#ecd8aa;--ink-soft:rgba(29,48,40,0.7);--shadow:0 20px 60px rgba(32,45,38,0.08);--font-geist-sans:"Avenir Next","Noto Sans TC","PingFang TC",sans-serif;--font-geist-mono:"SFMono-Regular","IBM Plex Mono","Menlo",monospace}html{height:100%}body,html{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:radial-gradient(circle at top left,rgba(236,216,170,.5),transparent 26%),radial-gradient(circle at 100% 0,rgba(185,107,79,.12),transparent 24%),linear-gradient(180deg,#f8f6f1 0,var(--background) 42%,#ebe8e0 100%);font-family:var(--font-geist-sans),"Noto Sans TC","PingFang TC",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(37,59,49,.04) 1px,transparent 0),linear-gradient(90deg,rgba(37,59,49,.04) 1px,transparent 0);background-size:32px 32px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.2),transparent 30%,transparent 70%,rgba(0,0,0,.12));mask-image:linear-gradient(180deg,rgba(0,0,0,.2),transparent 30%,transparent 70%,rgba(0,0,0,.12))}*{box-sizing:border-box;padding:0;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{padding:40px 0 72px}.app-shell,.top-nav-wrap{width:min(1200px,calc(100vw - 32px));margin:0 auto}.top-nav-wrap{position:sticky;top:16px;z-index:30;padding-top:16px}.top-nav-bar{justify-content:space-between;gap:16px;padding:10px 12px 10px 16px;border:1px solid var(--line);border-radius:999px;background:rgba(251,249,244,.78);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.top-nav-bar,.top-nav-brand{display:flex;align-items:center}.top-nav-brand{gap:12px}.top-nav-brand-mark{width:12px;height:12px;border-radius:999px;background:linear-gradient(135deg,var(--terracotta),var(--amber));box-shadow:0 0 0 6px rgba(185,107,79,.12)}.top-nav-brand p{font-size:.95rem;font-weight:700}.top-nav-brand span{color:var(--ink-soft);font-size:.8rem}.menu-toggle-button{min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:rgba(255,250,244,.92);color:var(--sage-dark);cursor:pointer}.menu-panel{display:grid;gap:8px;min-width:220px;margin-top:10px;margin-left:auto;padding:12px;border:1px solid var(--line);border-radius:20px;background:rgba(255,250,244,.96);box-shadow:var(--shadow)}.menu-link{display:block;padding:10px 12px;border-radius:12px;color:rgba(33,50,41,.82)}.menu-logout-button{border:0;background:transparent;text-align:left;cursor:pointer}.menu-link.active,.menu-link:hover{background:var(--sage-soft);color:var(--sage-dark)}.hero,.panel,.stat-card{border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.95fr);gap:24px;background:linear-gradient(140deg,rgba(252,250,246,.95),rgba(233,240,233,.88));border-radius:30px;padding:36px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-80px;bottom:-120px;width:320px;height:320px;border-radius:999px;background:radial-gradient(circle,rgba(185,107,79,.18),transparent 65%);pointer-events:none}.eyebrow{margin-bottom:12px;color:var(--sage);font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.hero h1,.panel h2,.signal-columns h3{font-family:var(--font-geist-mono),"IBM Plex Mono",monospace}.hero h1{max-width:12ch;font-size:clamp(2.8rem,5vw,5.1rem);line-height:.96}.hero-copy-wrap{position:relative;z-index:1}.hero-copy{max-width:58ch;margin-top:18px;color:var(--ink-soft);font-size:1.02rem;line-height:1.7}.hero-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}.hero-highlight-card{display:grid;gap:6px;padding:16px 18px;border:1px solid rgba(52,78,66,.1);border-radius:18px;background:rgba(255,252,248,.68)}.hero-highlight-card span,.hero-note,.hero-panel-kicker,.hero-panel-metadata span,.section-intro p+div p{color:var(--ink-soft)}.hero-highlight-card span,.hero-panel-kicker{font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero-highlight-card strong{font-size:clamp(1.6rem,3vw,2.2rem);font-family:var(--font-geist-mono),"IBM Plex Mono",monospace}.hero-highlight-card p{font-size:.92rem;line-height:1.5}.hero-note{max-width:56ch;margin-top:18px;font-size:.92rem;line-height:1.6}.hero-panel{display:grid;align-content:start;gap:16px;padding:24px;border-radius:24px;background:linear-gradient(180deg,rgba(37,59,49,.96),rgba(33,50,41,.92));color:#f9f4ee;position:relative;z-index:1}.hero-panel-metadata,.hero-panel-status{display:flex;align-items:center;gap:10px}.hero-panel-metadata{justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.hero-panel-metadata div{display:grid;gap:4px}.hero-panel-metadata strong{font-size:.98rem}.status-dot{width:12px;height:12px;border-radius:999px;background:var(--amber)}.status-dot.ok{background:#87d48f}.status-dot.warn{background:#ffce7b}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.sync-panel{display:grid;gap:10px;margin-top:10px}.sync-button{width:fit-content;border:0;cursor:pointer}.sync-button:disabled{cursor:wait;opacity:.7}.sync-hint{color:rgba(249,244,238,.82);font-size:.92rem}.sync-summary-list{display:grid;gap:10px}.sync-summary-card{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.76);border:1px solid var(--line)}.sync-summary-card p{margin-top:6px;color:rgba(33,50,41,.74);font-size:.92rem;line-height:1.6}.sync-loading-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(33,50,41,.36);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sync-loading-alert{display:grid;gap:12px;width:min(480px,calc(100vw - 32px));padding:24px;border-radius:24px;border:1px solid rgba(49,73,60,.14);background:rgba(255,250,244,.96);color:var(--foreground);box-shadow:var(--shadow)}.app-alert-overlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:24px;background:rgba(33,50,41,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-alert-modal{display:grid;gap:16px;width:min(720px,calc(100vw - 32px));max-height:min(82vh,920px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(180deg,rgba(255,250,244,.98),rgba(239,246,236,.96));box-shadow:var(--shadow)}.app-alert-modal.error{background:linear-gradient(180deg,rgba(255,247,244,.98),rgba(248,231,225,.96))}.app-alert-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.app-alert-head h3{font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:clamp(1.4rem,3vw,2rem)}.app-alert-close{min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.7);color:var(--sage-dark);cursor:pointer}.app-alert-message,.app-alert-meta{color:rgba(33,50,41,.76);line-height:1.7}.sync-spinner{width:22px;height:22px;border:3px solid rgba(95,122,95,.24);border-top:3px solid var(--terracotta);border-radius:999px;animation:sync-spin .9s linear infinite}@keyframes sync-spin{to{transform:rotate(1turn)}}.button-primary,.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:999px;transition:transform .14s ease,background .14s ease}.button-primary{background:var(--terracotta);color:#fffaf3}.button-secondary{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2)}.button-primary:hover,.button-secondary:hover{transform:translateY(-1px)}.content-grid,.stats-grid{display:grid;gap:18px;margin-top:24px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{display:grid;gap:10px;padding:22px;border-radius:22px;background:rgba(255,251,246,.72)}.empty-state,.notice-box p,.plan-card p,.recommendation-item p,.signal-card p,.stat-card p,.stat-card span,table span{color:rgba(33,50,41,.72)}.stat-card strong{font-size:2rem}.content-grid{grid-template-columns:minmax(0,1.45fr) minmax(320px,.95fr)}.inventory-section{margin-top:28px}.section-intro{display:grid;grid-template-columns:minmax(120px,.32fr) minmax(0,1fr);gap:18px;align-items:start;margin-bottom:16px}.section-intro h2{max-width:18ch;font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:clamp(1.4rem,2vw,2rem);line-height:1.08}.section-intro p+div p{max-width:62ch;margin-top:10px;line-height:1.65}.section-intro-compact h2,.section-intro-wide h2{max-width:24ch}.ai-menu-panel{overflow:hidden}.ai-menu-panel-head{align-items:center}.ai-menu-panel-copy{max-width:34ch;color:rgba(33,50,41,.72);line-height:1.6}.ai-menu-layout{display:grid;grid-template-columns:minmax(320px,.95fr) auto minmax(0,1.3fr);gap:18px;align-items:start}.ai-menu-prompt-field{display:grid;gap:8px}.ai-menu-card-kicker,.ai-menu-prompt-field span,.ai-menu-result-head span{color:var(--sage);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ai-menu-prompt-field textarea{width:100%;min-height:280px;padding:16px;border:1px solid var(--line);border-radius:20px;background:rgba(255,254,251,.92);color:var(--foreground);line-height:1.7;resize:vertical}.ai-menu-action-wrap{display:grid;place-items:center;align-self:center}.ai-menu-submit{min-width:132px;border:0;cursor:pointer}.ai-menu-submit:disabled{cursor:wait;opacity:.7}.ai-menu-result-panel{display:grid;gap:14px;min-height:280px;padding:18px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(255,250,244,.96),rgba(236,241,232,.92))}.ai-menu-cards,.ai-menu-result-body{display:grid;gap:14px}.ai-menu-helper-copy{color:var(--ink-soft);font-size:.92rem;line-height:1.6}.ai-menu-card,.ai-menu-empty-state,.ai-menu-error,.ai-menu-overview-card{padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:rgba(255,254,251,.78)}.ai-menu-error{border-color:rgba(203,124,93,.3);background:rgba(255,243,239,.9);color:var(--terracotta)}.ai-menu-card,.ai-menu-card-section,.ai-menu-ingredient-list,.ai-menu-overview-card{display:grid;gap:12px}.ai-menu-card-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.ai-menu-confirm-panel,.ai-menu-day-slide,.ai-menu-day-slider,.ai-menu-inventory-audit{display:grid;gap:14px}.ai-menu-audit-item-head,.ai-menu-day-slider-actions,.ai-menu-day-slider-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-menu-day-pagination{display:flex;flex-wrap:wrap;gap:10px}.ai-menu-day-dot{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,254,251,.74);color:var(--ink-soft);cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease}.ai-menu-day-dot.active{background:var(--sage-dark);color:#f8f6f1;transform:translateY(-1px)}.ai-menu-day-viewport{overflow:hidden;border-radius:20px}.ai-menu-day-track{display:flex;transition:transform .22s ease}.ai-menu-day-slide{flex:0 0 100%}.ai-menu-inventory-audit{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-menu-audit-item{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:16px}.ai-menu-audit-item-ok{background:rgba(225,238,223,.72)}.ai-menu-audit-item-warn{background:rgba(255,234,225,.82);border-color:rgba(185,107,79,.28)}.ai-menu-audit-item-head span{color:var(--ink-soft);font-size:.88rem}.ai-menu-card h3,.ai-menu-overview-card h3{font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:1.05rem}.trait-ai-panel{display:grid;gap:16px;margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(255,250,244,.94),rgba(235,242,232,.9))}.trait-ai-panel-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.trait-ai-panel-head h2{font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:clamp(1.2rem,2vw,1.6rem)}.trait-ai-panel-copy{max-width:42ch;color:rgba(33,50,41,.72);line-height:1.6}.trait-ai-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.trait-ai-input-field{width:100%}.trait-ai-submit{min-width:132px;border:0;cursor:pointer}.trait-ai-submit:disabled{opacity:.7;cursor:wait}.trait-ai-error{margin:0}.trait-edit-cell{min-width:140px}.trait-edit-cell input{white-space:normal}.trait-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trait-preview-actions{display:flex;justify-content:flex-end;gap:12px}.trait-preview-button{border:0;cursor:pointer}.ai-menu-card-section h4{color:var(--terracotta);font-size:.95rem}.ai-menu-ingredient-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-menu-ingredient-item{display:grid;gap:6px;padding:12px 14px;border-radius:16px;background:rgba(223,232,219,.44)}.ai-menu-ingredient-item-ok{background:rgba(223,232,219,.5)}.ai-menu-ingredient-item-warn{background:rgba(255,231,222,.88);border:1px solid rgba(185,107,79,.28)}.ai-menu-ingredient-meta{color:var(--ink-soft);font-size:.84rem;line-height:1.5}.ai-menu-confirm-feedback{padding:12px 14px;border-radius:14px;border:1px solid var(--line)}.ai-menu-confirm-feedback-ok{background:rgba(225,238,223,.8)}.ai-menu-confirm-feedback-error{background:rgba(255,239,235,.88);border-color:rgba(185,107,79,.24);color:var(--terracotta)}.badge-ok{background:rgba(95,122,95,.14);color:var(--sage-dark)}.badge-warn{background:rgba(185,107,79,.14);color:var(--terracotta)}.sensitivity-row-ok{background:rgba(225,238,223,.72)}.sensitivity-note{display:block;margin-top:6px;white-space:pre-wrap}.ai-menu-loading-overlay{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:24px;background:rgba(33,50,41,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ai-menu-loading-card{display:grid;justify-items:center;gap:12px;width:min(420px,calc(100vw - 32px));padding:28px 24px;border:1px solid rgba(255,255,255,.2);border-radius:24px;background:rgba(255,250,244,.96);box-shadow:var(--shadow);text-align:center}.ai-menu-loading-card p{color:var(--ink-soft);line-height:1.6}.ai-menu-loading-spinner{width:52px;height:52px;border:4px solid rgba(95,122,95,.18);border-top:4px solid var(--sage-dark);border-radius:999px;animation:ai-menu-spin .85s linear infinite}@keyframes ai-menu-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ai-menu-note-list{padding-left:20px;display:grid;gap:8px}.detail-sections-grid{display:grid;gap:18px;margin-top:28px}.detail-panel{overflow:hidden}.detail-panel-head{align-items:center}.tables-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-panel-head{align-items:center}.inventory-pagination-actions,.inventory-pagination-summary{display:flex;flex-wrap:wrap;gap:10px}.inventory-filters{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(180px,.8fr));gap:12px;margin-bottom:18px}.inventory-filter-field{display:grid;gap:8px}.inventory-filter-field span{color:var(--sage);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.inventory-filter-field input,.inventory-filter-field select{min-height:44px;width:100%;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,254,251,.9);color:var(--foreground)}.inventory-filter-field input::placeholder{color:rgba(33,50,41,.45)}.inventory-pagination-actions{margin-top:18px}.inventory-name-button,.page-button{border:0;cursor:pointer}.inventory-name-button{padding:0;background:transparent;color:var(--sage-dark);font-weight:700;text-align:left}.inventory-name-button:hover{color:var(--terracotta);text-decoration:underline}.inventory-name-button:disabled{cursor:wait;opacity:.7}.trait-modal-overlay{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:24px;background:rgba(33,50,41,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.trait-modal{display:grid;gap:18px;width:min(760px,calc(100vw - 32px));max-height:min(82vh,920px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(180deg,rgba(255,250,244,.98),rgba(239,246,236,.96));box-shadow:var(--shadow)}.trait-modal-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.trait-modal-head h3{font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:clamp(1.4rem,3vw,2rem)}.trait-modal-close{min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.7);color:var(--sage-dark);cursor:pointer}.trait-modal-body{display:grid;gap:16px}.trait-group{display:grid;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:20px;background:rgba(255,254,251,.78)}.trait-group h4{color:var(--terracotta);font-size:.95rem;font-weight:800;letter-spacing:.06em}.trait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trait-grid,.trait-stack{display:grid;gap:12px}.trait-grid div,.trait-stack div{display:grid;gap:6px;padding:12px 14px;border-radius:16px;background:rgba(223,232,219,.44)}.trait-grid dt,.trait-stack dt{color:var(--sage);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.trait-grid dd,.trait-stack dd{color:var(--foreground);line-height:1.6}.trait-modal-error{padding:16px 18px;border:1px solid rgba(203,124,93,.22);border-radius:18px;background:rgba(203,124,93,.14);color:var(--foreground)}.page-button:disabled{cursor:not-allowed;opacity:.55}.edit-page-panel{margin-top:24px}.edit-page-title{font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:clamp(2rem,4vw,3rem)}.edit-form-filters{margin-top:18px}.edit-page-toolbar{display:flex;justify-content:flex-end;margin-bottom:16px}.inventory-edit-table input{width:100%;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,254,251,.9);color:var(--foreground)}.inventory-stepper-stack{display:grid;gap:10px;min-width:220px}.inventory-stepper-group{display:grid;gap:6px}.inventory-stepper-group>span{font-size:.8rem;color:rgba(33,50,41,.72)}.inventory-stepper-control{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:center}.inventory-stepper-button{min-height:40px;border:1px solid var(--line);border-radius:12px;background:rgba(246,239,229,.92);color:var(--foreground);font-size:1.1rem;cursor:pointer}.inventory-stepper-button:hover{background:rgba(239,228,213,.98)}.inventory-edit-cell{position:relative}.edit-cell-field{display:grid;gap:6px}.inventory-edit-table input.input-error{border-color:rgba(203,124,93,.8);background:rgba(255,244,240,.96)}.edit-page-validation-note,.field-error-text{color:var(--terracotta);font-size:.82rem;line-height:1.4}.edit-row-delete{min-width:72px;border:0;cursor:pointer}.edit-page-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}.edit-page-hint{color:rgba(33,50,41,.72);line-height:1.6}.auth-shell,.workspace-page-shell{display:grid;gap:28px}.auth-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.9fr);gap:24px;align-items:stretch}.auth-intro,.workspace-page-intro{position:relative;overflow:hidden;display:grid;gap:18px;padding:32px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(140deg,rgba(252,250,246,.95),rgba(233,240,233,.88));box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.auth-intro:after,.workspace-page-intro:after{content:"";position:absolute;right:-80px;bottom:-80px;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle,rgba(185,107,79,.16),transparent 68%);pointer-events:none}.auth-intro h1,.workspace-page-intro h1{max-width:12ch;font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:clamp(2.4rem,4.8vw,4.2rem);line-height:.98}.workspace-kicker-grid,.workspace-page-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.workspace-kicker-card,.workspace-summary-card{display:grid;gap:6px;padding:18px;border:1px solid rgba(52,78,66,.1);border-radius:18px;background:rgba(255,252,248,.68)}.login-meta-card span,.workspace-kicker-card span,.workspace-summary-card span{color:var(--ink-soft);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.login-meta-card strong,.workspace-kicker-card strong,.workspace-summary-card strong{font-family:var(--font-geist-mono),"IBM Plex Mono",monospace;font-size:clamp(1.2rem,2.4vw,1.8rem)}.login-meta-card p,.workspace-kicker-card p,.workspace-summary-card p{color:var(--ink-soft);line-height:1.55}.login-panel{width:100%;margin:0;align-self:stretch;display:grid;align-content:start;gap:12px;background:linear-gradient(180deg,rgba(251,249,244,.92),rgba(239,244,236,.88))}.login-panel .hero-copy{max-width:40ch}.login-form{display:grid;gap:16px;margin-top:24px}.login-form:before{content:"";width:52px;height:2px;background:linear-gradient(90deg,var(--terracotta),transparent)}.login-form .inventory-filter-field input{min-height:50px;border-radius:16px;background:rgba(255,255,255,.72)}.login-submit-button{width:100%;min-height:50px}.login-error{color:var(--terracotta);line-height:1.6}.workspace-page-intro{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start}.workspace-page-intro h1{max-width:14ch}.panel{background:var(--panel);border-radius:26px;padding:24px}.compact-panel{background:linear-gradient(180deg,rgba(255,248,241,.92),rgba(236,241,232,.92))}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:18px}.panel h2{font-size:1.4rem}.badge-row,.mini-tags{display:flex;flex-wrap:wrap;gap:8px}.badge,.mini-tag{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:var(--sage-soft);color:var(--sage-dark);font-size:.86rem}.plan-list,.recommendation-list{display:grid;gap:12px}.plan-card,.recommendation-item,.signal-card{display:flex;justify-content:space-between;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,254,251,.82)}.plan-card-head span,.recommendation-item span{font-weight:700;color:var(--terracotta)}.notice-box{margin-top:14px;padding:14px 16px;border-radius:18px;background:rgba(242,217,166,.32);border:1px solid rgba(203,124,93,.22)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{padding:14px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}thead th{color:var(--sage);font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.signal-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.signal-columns h3{margin-bottom:12px;font-size:1rem}.empty-cell,.empty-state{padding:16px 0}@media (max-width:980px){.ai-menu-ingredient-list,.ai-menu-inventory-audit,.ai-menu-layout,.content-grid,.hero,.inventory-filters,.signal-columns,.stats-grid,.tables-grid,.trait-grid{grid-template-columns:1fr}.top-nav-bar{border-radius:24px}.section-intro{grid-template-columns:1fr;gap:10px}.hero h1{max-width:none}.auth-grid,.workspace-kicker-grid,.workspace-page-intro,.workspace-page-summary{grid-template-columns:1fr}.auth-intro h1,.workspace-page-intro h1{max-width:none}.ai-menu-audit-item-head,.ai-menu-card-head,.ai-menu-day-slider-head,.app-alert-head,.panel-head,.plan-card,.recommendation-item,.signal-card,.trait-ai-panel-head,.trait-modal-head{flex-direction:column}}@media (max-width:640px){.app-shell{padding:16px 0 32px}.app-shell,.top-nav-wrap{width:min(100vw - 20px,1200px)}.top-nav-wrap{top:10px;padding-top:10px}.hero,.panel,.stat-card{border-radius:20px}.auth-intro,.workspace-page-intro{padding:22px;border-radius:22px}.ai-menu-day-pagination,.ai-menu-day-slider-actions{width:100%}.ai-menu-day-dot,.ai-menu-day-slider-actions .page-button{flex:1 1}.top-nav-bar{align-items:start;flex-direction:column}.menu-toggle-button{width:100%}.hero,.panel{padding:18px}.trait-ai-form{grid-template-columns:1fr}.trait-ai-submit{width:100%}.trait-preview-grid{grid-template-columns:1fr}.inventory-edit-table td.trait-edit-cell{min-width:0}.inventory-edit-table tr{align-items:start}.inventory-edit-table .empty-cell,.trait-edit-cell-action,.trait-edit-cell-constipation,.trait-edit-cell-fiber,.trait-edit-cell-gas,.trait-edit-cell-name,.trait-edit-cell-type{grid-column:1/-1}.trait-edit-cell{display:grid;gap:6px}.trait-edit-cell:before{content:attr(data-label);color:var(--sage);font-size:.78rem;font-weight:800;letter-spacing:.06em}.trait-edit-cell input{min-height:44px}.trait-edit-cell-action .edit-row-delete{width:100%}.trait-preview-actions{flex-direction:column}.inventory-edit-table thead{display:none}.inventory-edit-table tbody{display:grid;gap:14px}.inventory-edit-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,254,251,.88)}.inventory-edit-table td{display:grid;gap:6px;padding:0;border-bottom:0}.inventory-edit-table td:before{content:attr(data-label);color:var(--sage);font-size:.78rem;font-weight:800;letter-spacing:.06em}.inventory-edit-cell-action,.inventory-edit-cell-category,.inventory-edit-cell-expiry,.inventory-edit-cell-name,.inventory-edit-cell-stepper,.inventory-edit-table .empty-cell{grid-column:1/-1}.inventory-edit-cell-stepper{padding-top:4px}.inventory-edit-cell-action{justify-items:stretch}.inventory-edit-cell-action .edit-row-delete{width:100%}.inventory-edit-table .empty-cell{padding:8px 0 0}.inventory-stepper-stack{min-width:0}.inventory-stepper-control{grid-template-columns:44px minmax(0,1fr) 44px}}