:root{color:#16312f;background:#f7fbfa;color-scheme:light;--app-background: #f7fbfa;--app-surface: #ffffff;--app-surface-soft: #fbfefd;--app-panel: #f1fdfa;--app-border: #e1eeeb;--app-border-strong: #dcebe7;--app-text: #16312f;--app-muted: #6f8d86;--app-muted-strong: #53716b;--app-brand: #0f766e;--app-brand-light: #0f766e;--app-brand-dark: #123936;--app-on-brand: #ffffff;--app-shadow: rgba(22, 70, 63, .1);font-synthesis:none;text-rendering:optimizeLegibility}[data-theme=dark]{color-scheme:dark;--app-background: #1d1e22;--app-surface: #202125;--app-surface-soft: #292a2f;--app-panel: #292a2f;--app-border: #414249;--app-border-strong: #505159;--app-text: #f1f1f3;--app-muted: #a5a6ad;--app-muted-strong: #dedee1;--app-brand: #59b9ef;--app-brand-light: #59b9ef;--app-brand-dark: #f1f1f3;--app-on-brand: #1d1e22;--app-shadow: rgba(0, 0, 0, .42)}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--app-text);background:radial-gradient(circle at 8% 0%,rgba(204,251,241,.52),transparent 28rem),var(--app-background);transition:background-color .18s ease,color .18s ease}[data-theme=dark] body{background:var(--app-background)}button,input,textarea{font:inherit}button,[role=button]{user-select:none;-webkit-user-select:none}.app-layout{min-height:100vh}.desktop-sider{border-right:1px solid var(--app-border);background:var(--app-surface)!important;box-shadow:4px 0 24px #0f766e0a}.brand-mark{display:flex;align-items:center;gap:11px;min-height:80px;padding:18px 18px 14px;color:var(--app-brand-dark);white-space:nowrap}.brand-mark strong{display:block;font-size:14px}.brand-icon,.login-logo{display:grid;place-items:center;flex:0 0 auto;color:var(--app-on-brand);background:var(--app-brand);box-shadow:0 8px 18px #0f766e38}.brand-icon{width:38px;height:38px;border-radius:12px;font-size:19px}.ant-menu{border-inline-end:0!important}.ant-layout-sider-trigger{color:var(--app-on-brand)!important;background:var(--app-brand)!important}.ant-menu-item-selected{font-weight:650}[data-theme=dark] .ant-menu.ant-menu-dark{background:var(--app-surface);color:var(--app-text)}[data-theme=dark] .ant-menu-dark .ant-menu-item-selected{color:var(--app-brand-light);background:#569cd633}[data-theme=dark] .ant-menu-dark .ant-menu-item:hover{color:var(--app-brand-light)}.nav-badge{margin-left:8px}.sider-footer{position:absolute;bottom:12px;left:16px;right:16px;display:grid;gap:10px}.connection-pill{padding:9px 11px;border:1px solid var(--app-border-strong);border-radius:12px;color:var(--app-muted-strong);font-size:12px;background:var(--app-background)}.app-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;height:80px;padding:0 32px;border-bottom:1px solid var(--app-border);background:var(--app-surface);box-shadow:0 4px 20px #1a433e09}.theme-toggle{display:flex;align-items:center;gap:7px}.theme-toggle-label{color:var(--app-muted-strong);font-size:12px}.eyebrow{display:block;color:var(--app-brand-light)!important;font-size:11px;font-weight:750;letter-spacing:.13em}.header-status{display:flex;align-items:center;min-width:84px}.header-actions{margin-left:auto}.app-content{padding:32px;max-width:1500px;width:100%;margin:0 auto}.page-stack{display:grid;gap:22px}.section-heading h1{margin:5px 0 8px!important;letter-spacing:-.045em}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.section-heading h2{margin:0 0 3px!important;letter-spacing:-.035em}.section-heading>div>.ant-typography:not(.eyebrow){display:block}.stat-card{height:100%;border-color:var(--app-border)}.stat-card .ant-statistic-title{color:var(--app-muted)}.accent-card{background:linear-gradient(135deg,var(--app-panel),var(--app-surface))}.empty-card{padding:30px 0}.filter-card,.add-item-card{border-color:var(--app-border)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.recipe-card{overflow:hidden;border-color:var(--app-border);transition:transform .16s ease,box-shadow .16s ease}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px var(--app-shadow)}.recipe-image-wrap{position:relative;height:190px;overflow:hidden;background:var(--app-panel)}.recipe-image-wrap .ant-image,.recipe-image-wrap .ant-image-img{display:block;width:100%;height:100%;object-fit:cover}.recipe-image-wrap .ant-image{cursor:zoom-in}.image-preview-mask{display:inline-flex;align-items:center;gap:6px}.recipe-image-add-button,.recipe-image-edit-button{position:absolute;z-index:1;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;box-shadow:0 4px 12px #13373347}.recipe-image-add-button{top:12px;right:12px}.recipe-image-edit-button{right:12px;bottom:12px}.planned-recipe-title,.history-card-heading,.inline-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.recipe-card-title{margin:0!important;letter-spacing:-.02em;width:100%}.week-day-card{border-color:var(--app-border)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:13px}.planned-recipe{display:flex;gap:13px;min-width:0;padding:10px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-surface-soft)}.planned-recipe>img{flex:0 0 auto;width:78px;height:78px;border-radius:11px;object-fit:cover}.planned-recipe-content{min-width:0;flex:1}.planned-recipe-title{align-items:center}.planned-recipe-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planned-controls{display:grid;grid-template-columns:66px 1fr 1fr;gap:5px;margin-top:10px}.shopping-list-card,.pantry-card{border-color:var(--app-border)}.shopping-page .shopping-list-card{overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.shopping-page .shopping-list-card>.ant-card-head{display:none}.shopping-list-card>.ant-card-body{padding:0!important}.shopping-list,.shopping-location-groups,.shopping-location-group{display:grid;gap:0}.shopping-location-heading{display:flex;align-items:center;gap:9px;min-height:40px;margin:0!important;padding:4px 16px;border-top:1px solid var(--app-border-strong);border-bottom:1px solid var(--app-border-strong);color:var(--app-brand)!important;background:var(--app-panel);font-size:16px!important;font-weight:700;letter-spacing:0;cursor:default}.shopping-location-icon{display:grid;flex:0 0 auto;place-items:center;font-size:20px}.swipe-item-shell{position:relative;overflow:hidden;border-radius:0;background:#ecfdf5}.swipe-hint{position:absolute;top:0;bottom:0;display:flex;align-items:center;gap:6px;padding:0 18px;color:#fff;font-size:12px;font-weight:700}.swipe-hint-purchase{left:0;background:#2f855a}.swipe-hint-delete{right:0;background:#c2410c}.shopping-row{position:relative;z-index:1;display:flex;align-items:center;min-height:40px;padding:0 0 0 16px;border:0;border-bottom:1px solid var(--app-border);border-radius:0;background:var(--app-surface);touch-action:pan-y;transition:transform .12s ease}.shopping-row-purchased{background:var(--app-panel);border-color:#b9ddd3}.shopping-row-purchased .shopping-row-main strong{color:var(--app-muted-strong);text-decoration:line-through}.shopping-row-main{display:flex;flex:1;align-items:baseline;gap:10px;padding:6px 12px 6px 8px;min-width:0}.shopping-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:500}.shopping-row-actions{display:flex;flex:0 0 56px;align-self:stretch;align-items:center;justify-content:center;border-left:1px solid var(--app-border-strong);background:color-mix(in srgb,var(--app-panel) 82%,var(--app-surface))}.shopping-location-select-wrap{position:relative;flex:0 0 32px;width:32px;height:32px;color:var(--app-brand);border-radius:4px;transition:color .12s ease,background-color .12s ease}.shopping-location-select{position:absolute;inset:0;z-index:1;width:100%;height:100%;opacity:0;cursor:pointer}.shopping-location-select-wrap:hover{color:var(--app-brand);background:var(--app-panel)}.shopping-location-select:focus-visible+.shopping-location-select-icon{color:var(--app-brand);background:var(--app-panel);outline:2px solid var(--app-brand);outline-offset:1px}.shopping-location-select-icon{position:absolute;inset:0;display:grid;place-items:center;border-radius:6px;font-size:20px;pointer-events:none;transition:color .12s ease,background-color .12s ease}.shopping-quantity{color:var(--app-muted);font-size:13px;white-space:nowrap}.pantry-list{display:grid;gap:8px;margin-top:12px}.pantry-item-shell{position:relative;overflow:hidden;border-radius:13px;background:#fff7ed}.pantry-swipe-hint{position:absolute;top:0;bottom:0;display:flex;align-items:center;gap:6px;padding:0 18px;color:#fff;font-size:12px;font-weight:700;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.pantry-swipe-hint-add{left:0;background:#2f855a}.pantry-swipe-hint-uncheck{right:0;background:#c2410c}.pantry-row{position:relative;z-index:1;display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 10px 8px 12px;border:1px solid var(--app-border);border-radius:13px;background:var(--app-surface);touch-action:pan-y;transition:transform .12s ease}.pantry-row-main{display:flex;flex:1;align-items:center;gap:9px;min-width:0}.pantry-row-main>div{display:grid;min-width:0;gap:2px}.pantry-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pantry-row-main span{color:var(--app-muted);font-size:12px}.pantry-row-status{flex:0 0 auto;color:var(--app-muted);font-size:12px;white-space:nowrap}.shopping-unit-input{flex:0 0 76px!important;width:76px!important}.location-config-list{display:grid;gap:8px}.location-config-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 10px;border:1px solid var(--app-border);border-radius:12px;background:var(--app-surface);cursor:grab;transition:border-color .12s ease,opacity .12s ease,background-color .12s ease}.location-config-row.is-dragged{opacity:.55;border-color:var(--app-brand);background:var(--app-panel)}.location-config-drag{display:grid;flex:0 0 24px;place-items:center;color:var(--app-muted)}.location-config-main{display:grid;flex:1;min-width:0;gap:2px}.location-config-main span{color:var(--app-muted);font-size:12px}.undo-alert{border-color:#bce7de}.suggestions{display:flex;flex-wrap:wrap;gap:3px;padding-top:7px}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.history-card{border-color:var(--app-border)}.history-card h3{margin:3px 0 0!important}.history-recipes{display:grid;gap:5px;margin-top:13px}.history-ingredient-grid{display:grid;gap:0;margin-top:14px;overflow:hidden;border:1px solid var(--app-border);border-radius:10px}.history-ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:34px;padding:5px 9px;border-top:1px solid var(--app-border);font-size:12px}.history-ingredient-row:first-child{border-top:0}.history-ingredient-header{color:var(--app-muted);background:var(--app-panel);font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.history-ingredient-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-ingredient-quantity{color:var(--app-muted);white-space:nowrap}.history-ingredient-deleted{opacity:.62}.roulette-card{border-color:var(--app-border)}.roulette-card .ant-card-body{display:grid;gap:28px}.roulette-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}.roulette-tag-filter{flex:1 1 360px;min-width:0;max-width:520px}.roulette-count{flex:0 0 auto}.roulette-stage{min-height:330px;display:grid;place-items:center;padding:24px;border:1px solid var(--app-border);border-radius:20px;background:radial-gradient(circle at 50% 0%,rgba(153,246,228,.2),transparent 18rem),var(--app-panel)}.roulette-stage.is-spinning{animation:roulette-shake .18s linear infinite}.roulette-empty{display:grid;justify-items:center;gap:8px;color:var(--app-brand);text-align:center}.roulette-empty .anticon{font-size:42px}.roulette-empty h2{margin:4px 0 0!important}.roulette-result{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);align-items:center;gap:28px;width:min(720px,100%)}.roulette-result-image,.roulette-result-image .ant-image,.roulette-result-image .ant-image-img{display:block;width:100%;height:230px;border-radius:16px}.roulette-result-image{overflow:hidden;cursor:zoom-in}.roulette-result-image .ant-image-img{object-fit:cover}.roulette-result-content{display:grid;align-items:start;justify-items:start;gap:12px}.roulette-result-content h2{margin:0!important}.roulette-result.is-rolling{animation:roulette-result-pulse .17s ease-in-out infinite alternate}.roulette-spin-button{justify-self:center;align-self:center;margin-inline:auto;min-width:190px}@keyframes roulette-shake{0%,to{transform:rotate(0) scale(1)}25%{transform:rotate(-1deg) scale(1.01)}75%{transform:rotate(1deg) scale(1.01)}}@keyframes roulette-result-pulse{0%{opacity:.72;transform:scale(.98)}to{opacity:1;transform:scale(1.01)}}.modal-footer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.editor-stack{display:grid;gap:15px}.editor-field{display:grid;gap:8px}.full-width{width:100%}.ingredient-editor-row{display:grid!important;grid-template-columns:72px 90px minmax(0,1fr) minmax(110px,.65fr) 34px;width:100%}.ingredient-editor-row .ant-space-item{min-width:0}.upload-dropzone{position:relative;display:grid;place-items:center;gap:4px;padding:20px;border:1px dashed var(--app-brand);border-radius:14px;color:var(--app-brand);background:var(--app-panel);cursor:pointer;text-align:center}.upload-dropzone-disabled{cursor:wait;opacity:.65}.upload-dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-dropzone small{color:var(--app-muted)}.ocr-progress{display:grid;gap:5px}.ocr-source{display:grid;gap:8px;padding:12px 14px;border:1px solid #e1eeeb;border-radius:12px;background:#f8fcfb}.ocr-source summary{color:#285f58;cursor:pointer;font-weight:650}.login-page{display:grid;place-items:center;min-height:100vh;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(153,246,228,.6),transparent 24rem),radial-gradient(circle at 90% 90%,rgba(254,215,170,.55),transparent 25rem),#f7fbfa}.login-card{width:min(440px,100%);padding:16px;text-align:center;box-shadow:0 24px 60px #1239361a}.login-logo{width:68px;height:68px;margin:5px auto 20px;border-radius:20px;font-size:31px}.login-card h1{margin:7px 0 12px!important;letter-spacing:-.05em}.google-login-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:26px 0 10px;padding:12px 16px;border:1px solid var(--app-border-strong);border-radius:10px;color:var(--app-brand-dark);background:var(--app-surface);font-weight:650;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease}.google-login-button:hover{border-color:var(--app-brand);box-shadow:0 6px 14px #0f766e1a}.google-g{color:#4285f4;font-size:18px;font-weight:800}.login-note{display:block;margin-top:19px;font-size:12px}.mobile-tabbar{display:none}@media(max-width:900px){.desktop-sider{display:none}.app-header{height:70px;padding:0 18px}.app-content{padding:22px 16px 94px}.mobile-tabbar{position:fixed;right:0;bottom:0;left:0;z-index:10;display:flex;justify-content:space-around;padding:9px 5px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--app-border-strong);background:color-mix(in srgb,var(--app-surface) 96%,transparent);box-shadow:0 -5px 20px #12393612;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-tab{display:grid;justify-items:center;gap:4px;min-width:54px;color:var(--app-muted);font-size:10px;text-decoration:none}.mobile-tab .anticon{font-size:18px}.mobile-tab.active{color:var(--app-brand);font-weight:700}.section-heading{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.header-status .ant-badge-status-text{display:none}.app-content{padding-right:12px;padding-left:12px}.recipe-grid,.history-grid,.plan-grid{grid-template-columns:1fr}.planned-recipe{align-items:flex-start}.planned-recipe>img{width:66px;height:66px}.planned-controls{grid-template-columns:62px 1fr}.planned-controls .ant-select:last-child{grid-column:2}.ingredient-editor-row{grid-template-columns:62px 76px minmax(0,1fr) minmax(88px,.65fr) 28px}.add-item-card .ant-space-compact{display:grid;grid-template-columns:minmax(0,1fr) 68px auto;width:100%}.add-item-card .ant-space-compact>*:first-child{grid-column:1 / -1;width:100%;min-width:0}.add-item-card .ant-space-compact>.ant-input-number{width:100%;min-width:0}.add-item-card .ant-space-compact>.shopping-unit-input{width:68px;min-width:0}.add-item-card .ant-space-compact>.ant-btn{width:100%;min-width:0;padding-inline:10px}.pantry-row{flex-wrap:wrap}.pantry-swipe-hint{gap:4px;padding-right:10px;padding-left:10px;font-size:11px}}@media(max-width:360px){.add-item-card .ant-space-compact{grid-template-columns:minmax(0,1fr) 68px}.add-item-card .ant-space-compact>.ant-btn{grid-column:1 / -1}}[data-theme=dark] .desktop-sider{box-shadow:4px 0 24px #00000047}[data-theme=dark] .app-header{box-shadow:0 4px 20px #00000038}[data-theme=dark] .brand-icon,[data-theme=dark] .login-logo{box-shadow:0 8px 18px #569cd647}[data-theme=dark] .login-page{background:radial-gradient(circle at 20% 10%,rgba(38,79,120,.3),transparent 24rem),radial-gradient(circle at 90% 90%,rgba(90,90,96,.2),transparent 25rem),var(--app-background)}[data-theme=dark] .swipe-item-shell{background:#264f78}[data-theme=dark] .pantry-item-shell{background:#5b3b20}[data-theme=dark] .ant-tabs-tab-btn{color:var(--app-muted)}[data-theme=dark] .ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--app-brand-light)!important}[data-theme=dark] .ant-tabs-ink-bar{background:var(--app-brand)!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:560px){.roulette-controls{align-items:flex-start;flex-direction:column}.roulette-stage{min-height:300px;padding:16px}.roulette-result{grid-template-columns:1fr;gap:18px}.roulette-result-image,.roulette-result-image .ant-image,.roulette-result-image .ant-image-img{height:190px}.roulette-result-content,.roulette-result-content .ant-btn{width:100%}.modal-footer-actions{align-items:stretch;flex-direction:column-reverse}.modal-footer-actions>.ant-space{justify-content:flex-end}}
