:root{color-scheme:light dark;font-family:ui-rounded,SF Pro Rounded,PingFang SC,system-ui,sans-serif;--primary: #e7653b;--primary-deep: #b93d1d;--accent: #f4a340;--ink: #241d1a;--muted: #716761;--bg: #f8f5f1;--surface: #fff;--line: #e8dfd8;--soft: #fff0e7;--good: #147752;--warn: #a84d19;--danger: #a73525;--tab: 68px;--shadow-sheet: 0 -16px 48px rgb(52 34 26 / 20%)}*{box-sizing:border-box}html,body,#root{min-height:100dvh}body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;transition:background-color .18s ease,color .18s ease,opacity .18s ease,border-color .18s ease}button:active:not(:disabled){opacity:.78}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 40%,transparent);outline-offset:2px}h1,h2,h3,p{margin:0}input,select{width:100%;height:46px;min-width:0;min-height:46px;border:1px solid var(--line);border-radius:11px;padding:0 11px;color:var(--ink);background:var(--surface);font-size:16px;line-height:46px}select{-webkit-appearance:none;appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 19px,calc(100% - 11px) 19px;background-repeat:no-repeat;background-size:5px 5px,5px 5px}a{color:var(--primary-deep)}.skip-link{position:fixed;z-index:200;top:8px;left:8px;padding:12px 15px;border-radius:10px;color:#fff;background:var(--primary-deep);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.visually-hidden{display:none}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100dvh;padding-bottom:calc(var(--tab) + env(safe-area-inset-bottom) + 22px)}.compact-header{display:flex;width:100%;align-items:center;justify-content:space-between;max-width:820px;margin:auto;padding:calc(env(safe-area-inset-top) + 14px) 16px 13px}.compact-header h1{font-size:27px;letter-spacing:-.04em}.compact-header div span{display:block;margin-top:1px;color:var(--muted);font-size:12px}.member{display:flex;min-height:44px;align-items:center;gap:5px;padding:0 10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:13px;font-weight:700}.main-content{max-width:820px;margin:auto;padding:0 12px 20px}.inline-alert{display:flex;align-items:center;gap:7px;max-width:796px;margin:0 auto 8px;padding:8px 8px 8px 12px;border-radius:12px;color:#96391f;background:var(--soft);font-size:13px}.inline-alert span{flex:1}.inline-alert button{display:grid;width:44px;height:44px;place-items:center;border:0;color:inherit;background:transparent}.menu-shell{display:flex;height:100dvh;min-height:0;flex-direction:column;overflow:hidden}.menu-shell .compact-header,.menu-shell .inline-alert{flex:none}.menu-main{width:100%;min-height:0;flex:1;overflow:hidden}.menu-page{display:grid;height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr);padding-bottom:0}.menu-search{display:grid;min-height:50px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;margin-bottom:8px;border:1px solid var(--line);border-radius:14px;color:var(--muted);background:var(--surface);box-shadow:0 5px 18px #34221a0d}.menu-search>svg{justify-self:center}.menu-search input{min-height:48px;padding:0 4px;border:0;border-radius:0;background:transparent}.menu-search input:focus-visible{outline:0}.menu-search button{display:grid;width:44px;height:44px;place-items:center;margin-right:2px;border:0;border-radius:11px;color:var(--muted);background:transparent}.menu-layout{display:grid;min-height:0;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:stretch;overflow:hidden}.category-rail{display:grid;min-height:0;align-content:start;gap:6px;overflow-y:auto;padding:4px 0 74px;overscroll-behavior:contain;scrollbar-width:none}.category-rail::-webkit-scrollbar{display:none}.category-rail button{min-height:48px;padding:0 5px;border:0;border-radius:12px;color:var(--muted);background:transparent;font-size:13px}.category-rail button.active{color:var(--primary-deep);background:var(--soft);font-weight:800}.dish-panel{min-width:0;min-height:0;overflow-y:auto;padding-bottom:78px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.menu-panel-head{display:flex;min-height:48px;align-items:center;padding:0 2px 7px}.menu-panel-head h2{font-size:19px}.order-locked{margin-bottom:6px;padding:9px 10px;border-radius:10px;color:var(--warn);background:var(--soft);font-size:12px;font-weight:700}.dish-card{display:flex;min-height:138px;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}.dish-image{width:112px;height:112px;flex:none;overflow:hidden;border-radius:13px;background:var(--soft);object-fit:cover}.dish-info{display:flex;min-width:0;flex:1;flex-direction:column}.dish-title{display:flex;align-items:flex-start;justify-content:space-between;gap:5px}.dish-title h3{min-width:0;font-size:17px;line-height:1.35;overflow-wrap:anywhere}.dish-title>span{flex:none;padding:3px 6px;border-radius:6px;font-size:11px}.stock-ok{color:var(--good);background:#e5f5ed}.stock-low{color:var(--warn);background:#fff0e4}.dish-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.dish-meta span{padding:2px 5px;border-radius:5px;color:var(--muted);background:#f1ede9;font-size:10px}.dish-info p{display:-webkit-box;margin-top:6px;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.dish-bottom{display:flex;justify-content:flex-end;margin-top:auto}.add-button,.small-primary{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:4px;border:0;border-radius:10px;color:#fff;background:var(--primary);font-size:13px;font-weight:800}.add-button{min-width:78px}.small-primary{padding:0 12px}.quantity{display:grid;height:46px;grid-template-columns:44px 42px 44px;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.quantity button{display:grid;width:44px;height:44px;place-items:center;border:0;color:var(--primary-deep);background:transparent}.quantity span{text-align:center;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.cart-fab{position:fixed;z-index:24;right:max(18px,calc((100vw - 784px)/2));bottom:calc(var(--tab) + env(safe-area-inset-bottom) + 14px);display:grid;width:58px;height:58px;place-items:center;border:0;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--accent),var(--primary));box-shadow:0 12px 28px #993d1a52}.cart-fab span{position:absolute;top:-5px;right:-4px;display:grid;min-width:23px;height:23px;place-items:center;padding:0 5px;border:2px solid var(--surface);border-radius:999px;color:#fff;background:#3a2922;font-size:11px;font-weight:900;font-variant-numeric:tabular-nums}.pull-refresh{position:fixed;z-index:40;top:max(6px,env(safe-area-inset-top));left:50%;display:inline-flex;min-height:38px;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--line);border-radius:999px;color:var(--primary-deep);background:var(--surface);box-shadow:0 8px 20px #2d1e1824;font-size:12px;font-weight:800;pointer-events:none;transition:transform .16s ease}.tab-bar{position:fixed;z-index:30;right:0;bottom:0;left:0;display:flex;height:calc(var(--tab) + env(safe-area-inset-bottom));justify-content:center;gap:5px;padding:5px max(12px,calc((100vw - 500px)/2)) env(safe-area-inset-bottom);border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.tab-bar button{display:flex;min-width:74px;min-height:56px;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:2px;border:0;border-radius:13px;color:var(--muted);background:transparent;font-size:11px;font-weight:700}.tab-bar button.active{color:var(--primary-deep);background:var(--soft)}.tab-bar button span{position:relative;display:grid;place-items:center}.tab-bar svg{width:23px;height:23px}.tab-bar i{position:absolute;top:-6px;right:-10px;display:grid;min-width:16px;height:16px;place-items:center;border-radius:50%;color:#fff;background:var(--primary);font-size:9px;font-style:normal}.section-title{display:flex;align-items:center;justify-content:space-between;padding:7px 1px 12px}.section-title h2{font-size:22px}.filter-row{display:flex;gap:7px;margin:0 -12px 12px;padding:0 12px 2px;overflow-x:auto;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-row button{min-width:58px;min-height:44px;flex:none;padding:0 12px;border:1px solid var(--line);border-radius:22px;color:var(--muted);background:var(--surface);font-size:13px}.filter-row button.active{border-color:color-mix(in srgb,var(--primary) 50%,var(--line));color:var(--primary-deep);background:var(--soft);font-weight:800}.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inventory-card{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) 44px;gap:8px;align-items:center;min-height:82px;padding:9px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.inventory-card.low{border-color:#efb887}.inventory-card .dish-image{width:54px;height:54px;border-radius:10px}.inventory-name{display:flex;min-width:0;align-items:center;gap:4px;font-size:14px}.inventory-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-name svg{flex:none;color:var(--warn)}.inventory-category{display:block;margin-top:2px;color:var(--muted);font-size:10px}.inventory-number{display:block;margin-top:3px;color:var(--primary-deep);font-size:16px;font-weight:900}.inventory-number small{color:var(--muted);font-size:11px;font-weight:500}.edit-toggle{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:10px;color:var(--primary-deep);background:var(--soft)}.kitchen-order{padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.kitchen-order>div{display:flex;align-items:baseline;justify-content:space-between}.kitchen-order>div span{color:var(--muted);font-size:12px}.kitchen-order h3{font-size:19px}.kitchen-order ul{margin:15px 0;padding:8px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);list-style:none}.kitchen-order li{display:flex;justify-content:space-between;padding:5px 0;font-size:14px}.kitchen-order p{margin:16px 0;color:var(--muted)}.recipe-manager{margin-top:18px}.recipe-manager .section-title{padding-bottom:8px}.recipe-manager .section-title h2{font-size:19px}.recipe-list{display:grid;gap:8px}.recipe-manage-card{display:grid;min-width:0;grid-template-columns:62px minmax(0,1fr) 44px;gap:10px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.recipe-manage-card .dish-image{width:62px;height:62px;border-radius:11px}.recipe-manage-card>div{display:grid;min-width:0;gap:3px}.recipe-manage-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.recipe-manage-card span{color:var(--muted);font-size:11px}.recipe-manage-card p{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sheet-layer{position:fixed;z-index:100;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#1f191685}.bottom-sheet{width:100%;max-width:820px;max-height:92dvh;overflow:hidden;border-radius:22px 22px 0 0;background:var(--surface);box-shadow:var(--shadow-sheet);animation:sheet-in .22s ease-out}@keyframes sheet-in{0%{transform:translateY(24px);opacity:.6}}.bottom-sheet header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.bottom-sheet h2{font-size:20px}.icon-button{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:12px;color:var(--ink);background:#f3eeea}.sheet-content{max-height:calc(92dvh - 69px);overflow:auto;padding:15px 16px calc(env(safe-area-inset-bottom) + 16px)}.cart-list{display:grid;gap:8px}.cart-list>div{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.cart-list .cart-item{min-width:0;justify-content:initial}.cart-item .dish-image{width:58px;height:58px;border-radius:11px}.cart-item strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item .quantity{flex:none}.sheet-action{margin-top:17px}.primary-button{display:flex;width:100%;min-height:50px;align-items:center;justify-content:center;gap:7px;border:0;border-radius:13px;color:#fff;background:var(--primary);font-size:16px;font-weight:800}.danger-button{display:flex;width:100%;min-height:46px;align-items:center;justify-content:center;gap:6px;border:1px solid color-mix(in srgb,var(--danger) 32%,var(--line));border-radius:12px;color:var(--danger);background:transparent;font-size:14px;font-weight:800}.form-grid{display:grid;gap:13px}.form-grid label,.field-label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.select-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.inventory-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid fieldset{display:grid;gap:10px;min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:13px}.form-grid legend{padding:0 4px;font-size:13px;font-weight:800}.ingredient-editor{display:grid;min-width:0;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 55%,var(--surface))}.ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(82px,.45fr) 44px;gap:6px}.ingredient-row input,.ingredient-row select{height:44px;min-width:0;min-height:44px;padding:0 8px;font-size:16px;line-height:44px}.ingredient-row button{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:9px;color:var(--danger);background:#fff0eb}.requirement-row{grid-template-columns:minmax(104px,.52fr) minmax(0,1fr) 44px}.ingredient-subrow{display:grid;grid-template-columns:minmax(94px,.42fr) minmax(0,1fr);gap:8px;align-items:start}.ingredient-subrow>label{min-width:0}.text-action{display:inline-flex;min-height:44px;align-items:center;gap:3px;width:max-content;border:0;color:var(--primary-deep);background:transparent;font-size:13px;font-weight:800}.existing-food{display:flex;min-height:54px;align-items:center;gap:8px;color:var(--muted);font-size:12px}.existing-food .dish-image{width:52px;height:52px;border-radius:9px}.form-error{color:var(--danger);font-size:13px;line-height:1.45}.form-hint{color:var(--muted);font-size:13px;line-height:1.45}.consumption-list{display:grid;gap:8px}.consumption-add{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:7px}.consumption-add button{display:grid;width:44px;height:46px;place-items:center;border:0;border-radius:11px;color:#fff;background:var(--primary)}.consumption-row{display:grid;grid-template-columns:52px minmax(0,1fr) 44px;gap:7px 9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.consumption-row .dish-image{width:52px;height:52px;grid-row:1 / span 2;border-radius:9px}.consumption-row>div{display:grid;min-width:0;gap:3px}.consumption-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.consumption-row span{color:var(--muted);font-size:11px}.consumption-row label{position:relative}.consumption-row input{padding-right:36px;font-size:16px}.consumption-row small{position:absolute;right:9px;bottom:15px;color:var(--muted);font-size:11px;pointer-events:none}.consumption-inputs{display:grid;grid-column:2 / 4;gap:5px}.consumption-inputs input,.consumption-inputs select{min-height:46px;font-size:16px}.remove-consumption{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:10px;color:var(--danger);background:#fff0eb}.image-picker{display:grid;min-width:0;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.image-picker-head{display:flex;min-width:0;align-items:center;gap:10px}.image-preview{display:grid;width:76px;height:76px;flex:none;place-items:center;overflow:hidden;border-radius:12px;color:var(--primary);background:var(--soft)}.image-preview img{width:100%;height:100%;object-fit:cover}.image-picker-actions{display:grid;min-width:0;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.image-picker-actions button{display:flex;min-width:0;min-height:44px;align-items:center;justify-content:center;gap:3px;padding:0 6px;border:1px solid var(--line);border-radius:10px;color:var(--primary-deep);background:var(--surface);font-size:12px;font-weight:700}.image-picker-actions svg{flex:none}.search-results{display:grid;min-width:0;gap:7px;padding-top:4px;border-top:1px solid var(--line)}.image-search-toolbar{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px}.image-search-toolbar button{display:inline-flex;min-height:44px;align-items:center;gap:4px;padding:0 9px;border:1px solid var(--line);border-radius:9px;color:var(--primary-deep);background:var(--surface);font-size:12px;font-weight:800}.search-status{display:flex;min-height:44px;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:12px}.image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.image-grid button{position:relative;min-width:0;aspect-ratio:1;min-height:54px;overflow:hidden;padding:0;border:2px solid transparent;border-radius:10px;background:var(--soft)}.image-grid button.selected{border-color:var(--primary)}.image-grid button.selected:after{position:absolute;right:4px;bottom:4px;width:13px;height:13px;border:2px solid #fff;border-radius:50%;background:var(--primary);content:""}.image-grid img{width:100%;height:100%;object-fit:cover}.image-error{color:var(--danger);font-size:11px;line-height:1.4}.entry-screen{display:grid;width:min(100%,430px);min-height:100dvh;align-content:center;gap:15px;margin:auto;padding:calc(env(safe-area-inset-top) + 24px) 24px calc(env(safe-area-inset-bottom) + 24px)}.entry-mark{display:grid;width:58px;height:58px;place-items:center;border-radius:17px;color:#fff;background:linear-gradient(145deg,var(--accent),var(--primary));box-shadow:0 10px 24px #e7653b3d}.entry-screen h1{font-size:38px;letter-spacing:-.05em}.entry-screen form{display:grid;gap:13px;padding-top:8px}.entry-screen label{font-size:13px;font-weight:800}.role-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.role-switch button{display:flex;min-height:52px;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--surface);font-weight:800}.role-switch button.selected{border-color:var(--primary);color:var(--primary-deep);background:var(--soft)}.center-state,.empty-state{display:grid;min-height:220px;place-items:center;align-content:center;gap:9px;color:var(--muted);text-align:center}.center-state{min-height:100dvh}.center-state .primary-button{width:min(240px,80vw)}.empty-state{border:1px dashed var(--line);border-radius:14px}.empty-state svg{color:var(--primary)}.compact-empty{min-height:150px}.loading-pot{animation:breathe .9s ease-in-out infinite alternate;color:var(--primary)}@keyframes breathe{to{opacity:.5;transform:translateY(-3px)}}@media(min-width:700px){.main-content{padding:0 20px 25px}.menu-layout{grid-template-columns:96px minmax(0,1fr)}.category-rail button{font-size:14px}.dish-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.menu-panel-head,.order-locked,.dish-panel>.empty-state{grid-column:1 / -1}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){input,select,textarea{font-size:16px}.requirement-row{grid-template-columns:minmax(104px,.52fr) minmax(0,1fr) 44px}.ingredient-row button{grid-column:auto;justify-self:auto;margin:0}}@media(max-width:380px){.menu-layout{grid-template-columns:68px minmax(0,1fr);gap:9px}.dish-image{width:94px;height:94px}.dish-card{min-height:116px;gap:8px}.dish-title{display:grid}.dish-title>span{width:max-content}.select-row,.inventory-grid{grid-template-columns:1fr}.image-picker-head{align-items:flex-start}.image-preview{width:64px;height:64px}.image-picker-actions{grid-template-columns:1fr}.image-picker-actions button{min-height:44px}}@media(prefers-color-scheme:dark){:root{--primary: #f47e56;--primary-deep: #ffab8d;--accent: #f7b15b;--ink: #f8f2ee;--muted: #c4b7af;--bg: #191513;--surface: #26211e;--line: #453b35;--soft: #3d2821;--good: #79d9ac;--warn: #ffc081;--danger: #ff9c87}.dish-meta span,.icon-button{background:#332b27}.stock-ok{background:#193b2e}.stock-low{background:#422b1e}.cart-fab span{background:#38261f}.ingredient-row button,.remove-consumption{background:#422720}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
