:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f6f7fb;background:#0f1418;color-scheme:dark;font-synthesis:none;--ink:#f6f7fb;--muted:#afbecb;--orange:#ff514b;--line:#303940;--surface:#1b2228;--radius:16px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ff9a90;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,3.3vw,48px);letter-spacing:-1.5px;line-height:1.13;margin-bottom:10px;font-weight:780}h2{font-size:28px;letter-spacing:-.8px;line-height:1.2;margin-bottom:0;font-weight:750}h3{font-size:16px;line-height:1.4}p{line-height:1.6}.muted{color:var(--muted);font-size:16px;margin-bottom:0}.fineprint{font-size:12px;color:var(--muted);line-height:1.65}.icon{width:22px;height:22px;flex:none;vertical-align:middle}.reverse{transform:rotate(180deg)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.boot{display:grid;place-content:center;height:100dvh;font-size:32px;font-weight:750}.boot span{font-size:14px;font-weight:400;margin-top:12px;color:var(--muted)}
.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100dvh;max-width:1920px;margin:auto;gap:6px}.sidebar{position:sticky;top:16px;height:calc(100dvh - 32px);margin:16px 0 16px 16px;background:linear-gradient(145deg,#1e252b,#171f24);border:1px solid #252e35;border-radius:22px;padding:24px 16px 20px;display:flex;flex-direction:column}.brand{display:inline-flex;gap:10px;align-items:center;text-decoration:none;font-weight:800;letter-spacing:-1px;color:var(--ink)}.brand-mark{width:56px;height:56px;object-fit:contain}.wordmark{white-space:nowrap;font-size:27px}.wordmark>span{color:var(--orange)}.sidebar-brand{display:flex;justify-content:center;text-decoration:none;margin-bottom:36px}.sidebar-brand .brand{flex-direction:column;gap:12px}.sidebar-brand .brand-mark{width:124px;height:124px}.sidebar-brand .wordmark{font-size:34px;letter-spacing:-1.6px}.nav{display:grid;gap:10px}.nav button,.settings-link,.user-profile{border:0;background:none;color:var(--muted);border-radius:12px;text-align:left;padding:14px 13px;display:flex;gap:13px;align-items:center;font-size:14px;min-height:50px}.nav button.active,.settings-link.active{background:linear-gradient(100deg,#663331,#4a2728);color:white;box-shadow:inset 0 1px 0 #a64d4433}.nav button.active .icon{color:#ff7770}.nav button:hover,.settings-link:hover,.user-profile:hover{background-color:#2b343c;color:white}.sidebar-bottom{margin-top:auto;padding-top:28px;display:grid;gap:8px}.sidebar-bottom>.fineprint{margin:2px 12px 0}.user-profile{color:var(--ink);padding:8px 10px}.user-profile>.icon,.settings-link>.icon:last-child{margin-left:auto;width:15px;height:15px}.avatar{border-radius:50%;width:36px;height:36px;background:#433431;color:#ffbcb4;display:grid;place-items:center;font-weight:750;flex:none}.settings-link{font-size:14px;padding:9px 12px}.main{padding:26px 26px 44px;min-width:0}.mobile-header,.bottom-nav{display:none}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:8px 0 24px}.pagehead h1+p{margin:0}.week-range{color:var(--muted);font-size:16px;margin-bottom:5px}.week-facts{display:flex;gap:10px;align-items:center}.fact-card{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);padding:13px 16px;border-radius:12px;white-space:nowrap;min-height:70px}.fact-card .icon{width:27px;height:27px}.fact-card small{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}.fact-card strong{font-size:19px}.week-control{display:flex;gap:2px;align-items:center}.week-control>span{font-size:13px;color:var(--muted)}.week-control .iconbtn{width:34px;min-width:34px;padding:5px}.week-control .icon{width:18px;height:18px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px}.sectionhead p{margin:6px 0 0}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:1.8px;font-size:10px;font-weight:650;margin-bottom:10px}
.btn{border:1px solid var(--line);padding:11px 16px;border-radius:10px;background:#20282e;color:var(--ink);font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;min-height:43px}.btn:hover:not(:disabled){background:#303a43}.btn.primary{background:linear-gradient(115deg,#ff4948,#ff5950);color:white;border-color:#ff635b;box-shadow:0 4px 16px #ff514b12}.btn.primary:hover:not(:disabled){background:#ff6962}.btn.dark{background:#354339;color:white;border-color:#4a5f50}.btn.ghost{background:transparent}.btn.danger,.danger-text{color:#ff9e96!important}.btn.danger{border-color:#71413d}.btn .icon{width:20px;height:20px}.iconbtn{border:1px solid transparent;background:transparent;color:var(--ink);padding:8px;font-size:18px;border-radius:9px;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.iconbtn:hover:not(:disabled){background:#303a42}.actions{display:flex;gap:9px;flex-wrap:wrap}.linklike{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;color:#ff9d92;padding:0;font-size:inherit}.notice{background:#3b3324;border:1px solid #5a4a30;color:#f0dba8;padding:14px 17px;border-radius:12px;font-size:13px;line-height:1.6;margin:18px 0}
.roulette-panel,.week-panel{background:linear-gradient(130deg,#1a2228,#181f24);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px}.no-repeat{display:flex;align-items:center;gap:7px;color:#aff0b4;background:#213d2b;border:1px solid #3a6142;border-radius:30px;font-size:12px;font-weight:600;padding:7px 12px;white-space:nowrap}.no-repeat .icon{width:17px;height:17px}.roulette-window{position:relative;padding-top:20px}.roulette-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:center}.roulette-card{min-width:0;border:1px solid var(--line);border-radius:12px;background:#1f272d;position:relative;overflow:visible}.roulette-card>.mealart{border-radius:11px 11px 0 0;aspect-ratio:1.42}.roulette-caption{padding:10px 6px 11px;text-align:center}.roulette-caption h3{font-size:14px;line-height:1.3;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roulette-caption>span{font-size:14px;color:var(--muted)}.roulette-card.selected{border:3px solid var(--orange);transform:scale(1.025);box-shadow:0 0 0 2px #ff514b24,0 8px 30px #0003;z-index:1}.roulette-card.selected:before{content:'';position:absolute;top:-26px;left:calc(50% - 12px);border-left:12px solid transparent;border-right:12px solid transparent;border-top:20px solid var(--orange);border-radius:3px}.roulette-card.selected .roulette-caption>span{font-weight:750;color:#ff877d}.carousel-arrow{position:absolute;top:45%;border:1px solid #58616b;border-radius:50%;width:41px;height:41px;background:#242c33ee;color:white;display:grid;place-items:center;z-index:3;box-shadow:0 3px 10px #0006}.carousel-arrow:hover{background:#39434c}.carousel-arrow.previous{left:-8px}.carousel-arrow.next{right:-8px}.spin-actions{display:flex;align-items:center;flex-direction:column;margin-top:22px}.spin-button{width:min(400px,100%);font-size:20px;min-height:50px}.spin-button .icon{width:25px;height:25px}.spin-actions .fineprint{margin:10px 0 0}.roulette-empty{min-height:215px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.roulette-empty>.icon{width:45px;height:45px;color:#ff847a;margin:10px}.roulette-empty h3{font-size:21px;margin:10px}.roulette-empty .btn{margin-top:16px}
.mealart{aspect-ratio:1.5;position:relative;display:grid;place-items:center;background:linear-gradient(145deg,#373127,#252c25);overflow:hidden}.mealart[data-category=Fish]{background:linear-gradient(145deg,#284446,#1d2b31)}.mealart[data-category=Vegetarian]{background:linear-gradient(145deg,#374830,#243028)}.mealart[data-category=Beef]{background:linear-gradient(145deg,#483332,#30272a)}.mealart .food{font-size:54px;filter:drop-shadow(0 8px 7px #0003)}.mealart img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.mealart.image-failed:after{content:'Photo unavailable';position:absolute;bottom:8px;color:var(--muted);font-size:10px}.weekgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.daycard{background:#1f272d;border:1px solid var(--line);border-radius:10px;overflow:hidden;padding:9px;min-width:0;display:flex;flex-direction:column;text-align:center}.day-date{display:flex;flex-direction:column;gap:2px;margin-bottom:9px}.day-date strong{font-size:13px}.day-date small{font-size:11px;color:var(--muted)}.day-photo{border:0;padding:0;background:none;display:block;width:100%;border-radius:7px;overflow:hidden}.day-photo .mealart{aspect-ratio:1.25}.day-photo .food{font-size:40px}.day-copy{display:flex;flex-direction:column;gap:2px;padding-top:8px;flex:1}.day-name{color:var(--ink);background:none;border:0;padding:0;font-size:12px;font-weight:650;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.day-copy>span{font-size:12px;color:var(--muted);margin-top:2px}.day-copy>strong{font-size:12px}.day-actions{display:flex;justify-content:center;gap:7px;margin-top:10px}.day-actions .iconbtn{background:#2b333a;border-color:#343d45;min-width:0;min-height:33px;flex:1;padding:6px;border-radius:7px}.day-actions .icon{width:17px;height:17px}.day-actions .locked{background:var(--orange);border-color:#ff7970;box-shadow:0 0 12px #ff514b30}.day-placeholder{display:grid;place-items:center;min-height:85px;color:#71808b;background:#171e24;border-radius:8px}.day-placeholder>.icon{width:30px;height:30px}.empty-day .day-copy>span{font-size:10px}.week-summary{display:flex;align-items:center;gap:12px;margin-top:16px}.budget-summary{display:flex;align-items:center;gap:14px;background:#20282e;border:1px solid var(--line);border-radius:11px;padding:12px 14px;flex:1;min-width:0}.budget-copy{display:flex;gap:15px;align-items:center;white-space:nowrap}.budget-copy>strong{font-size:21px;letter-spacing:-.6px}.budget-copy small{font-size:13px;letter-spacing:0;font-weight:600}.budget-copy>span{font-size:14px;font-weight:700;color:#77dc87}.budget-track{flex:1;width:100%;min-width:45px;height:12px;border:0;border-radius:20px;overflow:hidden;appearance:none;background:#394148}.budget-track::-webkit-progress-bar{background:#394148;border-radius:20px}.budget-track::-webkit-progress-value{background:#58c76b;border-radius:20px}.budget-track::-moz-progress-bar{background:#58c76b;border-radius:20px}.budget-limit{color:var(--muted);white-space:nowrap;font-size:12px}.shopping-shortcut{min-height:49px}
:root{--app-theme:nekofood}
.add-meal-button{display:grid;place-items:center;width:55px;height:55px;border-radius:50%;border:1px solid #ff6c61;background:linear-gradient(140deg,#ff6455,#ff4349);color:white;box-shadow:0 6px 18px #ff514b18;flex:none}.add-meal-button .icon{width:30px;height:30px}.meal-search{position:relative;display:flex;align-items:center;gap:12px;background:#1c242b;border:1px solid var(--line);border-radius:11px;padding:0 15px;max-width:750px;height:49px}.meal-search .icon{color:var(--muted)}.meal-search input{border:0;background:none;padding:0;box-shadow:none;width:100%;height:100%;color:white;font-size:14px}.meal-search input:focus{outline:0}.meal-search:focus-within{outline:2px solid #ff8176;outline-offset:2px}.category-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:16px 0 4px}.category-tabs::-webkit-scrollbar{display:none}.category-tabs button{flex:none;border:1px solid #34404a;border-radius:30px;padding:8px 19px;background:#1d262d;color:var(--ink);font-size:13px;min-height:36px}.category-tabs button.active{background:var(--orange);border-color:#ff786e;color:white}.collection-count{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin:15px 0}.librarygrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.librarycard{border:1px solid var(--line);border-radius:12px;background:#1c252c;overflow:visible;min-width:0}.library-photo{position:relative}.library-photo>.mealart{border-radius:11px 11px 0 0;aspect-ratio:1.5}.librarycard .mealbody{padding:12px}.mealbody h3{font-size:15px;font-weight:700;margin:0 0 4px}.library-price{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;color:var(--muted)}.library-price small{font-size:10px;display:flex;align-items:center;gap:4px}.library-price .icon{width:12px;height:12px}.favorite-button{position:absolute;right:9px;top:9px;width:30px;height:30px;border:0;border-radius:50%;display:grid;place-items:center;background:#172027b3;color:white}.favorite-button .icon{width:18px;height:18px}.favorite-button.is-favorite{color:var(--orange);background:white}.favorite-button.is-favorite .icon{fill:var(--orange)}.favorite-button:hover{background:#ffffffe6;color:#ff514b}.cardfooter{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:8px}.category-tag{font-size:11px;border-radius:30px;padding:4px 12px;background:#684138;color:#ffe2d9}.category-tag[data-category=Fish]{background:#244c66;color:#daedff}.category-tag[data-category=Vegetarian]{background:#26543b;color:#ddffe6}.category-tag[data-category=Beef]{background:#763e39;color:#ffe5df}.category-tag[data-category=Pork]{background:#574235;color:#fff0d4}.category-tag[data-category=Other]{background:#50435c;color:#f4e5ff}.meal-menu{position:relative}.meal-menu summary{list-style:none;cursor:pointer;display:grid;place-items:center;min-width:30px;min-height:30px;border-radius:6px}.meal-menu summary::-webkit-details-marker{display:none}.meal-menu summary:hover{background:#333d45}.meal-menu-items{position:absolute;right:0;top:34px;z-index:5;min-width:160px;background:#242e37;border:1px solid #45515c;border-radius:10px;padding:5px;box-shadow:0 10px 30px #0006}.meal-menu-items button{border:0;display:block;text-align:left;color:white;width:100%;background:none;padding:10px;font-size:12px;border-radius:6px}.meal-menu-items button:hover{background:#35424b}.paused{opacity:.6}.empty{border:1px dashed #45515a;border-radius:16px;padding:45px 24px;text-align:center;background:#171f25}.empty>.icon{width:45px;height:45px;color:#ff8e81;margin-bottom:18px}.empty h2{margin-bottom:12px}.empty p{max-width:440px;margin:0 auto 22px}.empty .actions{justify-content:center}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:24px}.panel h2{font-size:22px;margin-bottom:17px}.panels{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panels .muted{font-size:14px}.formstack{display:grid;gap:19px}.formstack label{display:grid;gap:7px;font-size:13px;font-weight:600;min-width:0}.formstack label small{font-size:12px;font-weight:400;color:var(--muted);line-height:1.55}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:15px}input,textarea,select{width:100%;border:1px solid #36424c;color:var(--ink);border-radius:10px;padding:12px 13px;background:#1c252c;min-height:43px;font-size:14px}input::placeholder,textarea::placeholder{color:#a4b6c3;opacity:1}textarea{resize:vertical;line-height:1.5}input[type=checkbox]{width:17px;height:17px;min-height:0;accent-color:var(--orange);flex:none}input[readonly]{color:var(--muted);background:#171f25}.formstack .checklabel,.checklabel{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:400}.photo-section{display:grid;gap:12px}.formstack .photo-upload{position:relative;display:grid;place-items:center;min-height:185px;border:1px solid var(--line);background:linear-gradient(140deg,#202930,#172027);border-radius:13px;overflow:hidden;cursor:pointer;padding:10px}.photo-placeholder{border:1px dashed #42505c;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:11px;width:100%;height:164px;color:var(--muted);font-size:16px;font-weight:400}.photo-placeholder>.icon{width:43px;height:43px;color:#7f8e9a}.photo-upload>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-change{position:absolute;bottom:10px;right:10px;display:flex;align-items:center;gap:7px;background:#10161dcc;padding:7px 10px;border-radius:8px;font-size:11px;color:white;opacity:0}.photo-upload:hover .photo-change{opacity:1}.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.formstack .photo-actions .btn{display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px}.formstack .image-url-field{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;background:#1c252c;padding:0 12px;color:var(--muted)}.image-url-field input{padding:12px 0;border:0;background:none;border-radius:0}.image-url-field:focus-within{outline:2px solid #ff8277;outline-offset:2px}.image-url-field input:focus{outline:none}.portion-note{margin:-11px 0 -5px;font-size:11px}.roulette-toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:3px 0}.roulette-toggle strong{font-size:13px;display:block}.roulette-toggle small{display:block;font-size:11px;line-height:1.55;color:var(--muted);margin-top:4px}.formstack .switch{position:relative;display:block;flex:none;width:51px;height:30px}.switch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.switch>span{position:absolute;inset:0;background:#46515b;border-radius:20px;pointer-events:none;transition:background .2s}.switch>span:before{content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;background:white;border-radius:50%;transition:transform .2s}.switch input:checked+span{background:#53c96d}.switch input:checked+span:before{transform:translateX(21px)}.switch input:focus-visible+span{outline:3px solid #ff9a90;outline-offset:3px}.extra-meal-fields{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0}.extra-meal-fields>summary{list-style:none;cursor:pointer;font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between}.extra-meal-fields>summary::-webkit-details-marker{display:none}.extra-meal-fields>summary>.icon{width:16px;height:16px}.extra-meal-fields[open]>summary{margin-bottom:18px}.extra-meal-fields[open]>summary>.icon{transform:rotate(90deg)}.save-meal{font-size:18px;min-height:50px}.error{color:#ffc6be;background:#4a2a2a;border:1px solid #75403c;padding:12px;border-radius:9px;font-size:13px;line-height:1.55}.formstack #form-error:empty{display:none}
.mealart>.favorite{display:none}.divider{height:1px;background:var(--line);margin:22px 0}.preline{white-space:pre-line;font-size:14px;line-height:1.7}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.pill{border:1px solid var(--line);border-radius:30px;padding:5px 10px;font-size:11px;background:#222e34;color:var(--muted)}.profile{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.profile small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.shoppinggroup{margin-bottom:24px}.shoppinggroup h3{font-size:17px;margin-bottom:10px}.shoppingrow{padding:12px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px;font-size:14px;line-height:1.5}.shoppingrow.checked{color:var(--muted);text-decoration:line-through}.historyrow{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);gap:12px}.historyrow h3{margin:0 0 5px}.historyrow small{color:var(--muted)}#content[data-view=shopping]>.sectionhead{margin-top:25px}.hidden,[hidden]{display:none!important}
dialog{border:1px solid #3a4650;border-radius:18px;padding:0;width:min(610px,calc(100vw - 32px));max-height:90dvh;color:var(--ink);background:#161e25;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#070c12bb;backdrop-filter:blur(5px)}.modalhead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 23px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#161e25;z-index:2}.modalhead h2{font-size:24px;margin:0}.modalhead .iconbtn{flex:none}.modalbody{padding:23px}.modalfoot{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.modalbody>.mealart{border-radius:10px;aspect-ratio:2;margin-bottom:20px}.modalbody>.mealart .food{font-size:75px}.meal-dialog .modalhead{flex-direction:row-reverse;justify-content:flex-end}.meal-dialog .modalhead .iconbtn{margin-left:-7px;margin-right:2px}.meal-dialog .modalhead .iconbtn>.icon{transform:rotate(180deg)}.meal-dialog .modalhead h2{flex:1}.menu-options{display:grid;gap:10px}.menu-options .btn{justify-content:flex-start}
.login{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{background:radial-gradient(ellipse at 15% 85%,#432c272e,transparent 70%),#182128;padding:45px 55px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.login-story>a{text-decoration:none}.login-story .brand-mark{width:66px;height:66px}.login-story .wordmark{font-size:32px}.login-story h1{font-size:clamp(45px,5.2vw,72px);letter-spacing:-3px;margin-top:35px}.login-story p{font-size:17px;color:var(--muted);line-height:1.65}.login-food-grid{display:flex;gap:14px;margin-top:32px}.login-food-grid img{width:clamp(80px,9vw,140px);height:clamp(100px,11vw,170px);object-fit:cover;border:1px solid var(--line);border-radius:16px;transform:rotate(-6deg);box-shadow:0 15px 35px #0003}.login-food-grid img:nth-child(2){transform:translateY(-12px) rotate(3deg)}.login-food-grid img:nth-child(3){transform:rotate(8deg)}.login-form{display:grid;place-items:center;padding:45px}.login-form>div{width:100%;max-width:375px}.login-form h2{font-size:32px;margin-bottom:10px}.login-form .muted{font-size:14px}.security-label{display:flex;align-items:center;gap:7px;letter-spacing:1px;font-size:10px;color:var(--muted);margin-bottom:26px}.security-label .icon{width:15px;height:15px}.login-form footer{font-size:11px;color:var(--muted);line-height:1.65;margin-top:25px}.login-form .btn{width:100%}.signin-methods{margin:22px 0 10px}.signin-methods .fineprint{margin:8px 0 16px;font-size:11px}.signin-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;margin:22px 0}.signin-divider:before,.signin-divider:after{content:'';height:1px;background:var(--line);flex:1}.btn.discord{background:#5865f2;border-color:#5865f2;color:white}.btn.discord:hover{background:#6b76f7}.security-section+.security-section{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.security-section .muted{font-size:13px}.passkey-list{margin:16px 0}.passkey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.passkey-row strong{font-size:13px}.passkey-row small{display:block;color:var(--muted);font-size:11px;margin-top:5px}
#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#334049;color:white;border:1px solid #53616d;border-radius:12px;padding:13px 18px;font-size:13px;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;text-align:center;box-shadow:0 5px 24px #0004}#toast.show{opacity:1}.offline{background:#433923;padding:10px;text-align:center;font-size:12px}.offline-page{min-height:100dvh;display:grid;place-content:center;padding:32px}.offline-page main{max-width:480px}.reelwindow{overflow:hidden;position:relative;border-radius:12px;background:#0f161d;height:195px;margin:25px 0;border:1px solid var(--line)}.reelwindow:after{content:'';position:absolute;left:50%;top:0;bottom:0;width:3px;background:var(--orange);box-shadow:0 0 0 3px #ff514b22}.reelwindow:before{content:'';position:absolute;left:calc(50% - 9px);top:0;border-left:9px solid transparent;border-right:9px solid transparent;border-top:14px solid var(--orange);z-index:1}.reel{display:flex;gap:12px;position:absolute;left:0;top:20px;will-change:transform}.reelitem{width:150px;height:155px;flex:none;border-radius:9px;overflow:hidden;border:1px solid var(--line);background:#222b34}.reelitem .mealart{height:111px;aspect-ratio:auto}.reelitem .food{font-size:40px}.reelitem strong{display:block;font-size:11px;text-align:center;margin-top:9px;padding:0 4px}.revealdots{display:flex;gap:7px;justify-content:center}.revealdots span{height:6px;width:25px;border-radius:5px;background:#3c4750}.revealdots span.done{background:var(--orange)}.rolltext{text-align:center}.rolltext h3{font-size:24px;margin:12px 0 4px}.rolltext p{font-size:13px;color:var(--muted)}
@media(min-width:1600px){.main{padding:32px 34px}.roulette-panel,.week-panel{padding:24px}.roulette-caption h3{font-size:16px}.roulette-caption>span{font-size:16px}.day-name{font-size:14px}.day-copy>span{font-size:13px}}
@media(max-width:1350px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:23px 12px}.sidebar-brand .wordmark{font-size:29px}.sidebar-brand .brand-mark{width:108px;height:108px}.main{padding:24px 20px 40px}.roulette-heading{align-items:flex-start;flex-wrap:wrap;gap:18px}.week-facts{margin-left:auto}.librarygrid{grid-template-columns:repeat(3,minmax(0,1fr))}.budget-summary{flex-wrap:wrap}.budget-copy{width:100%;justify-content:space-between}.budget-track{flex:1}.shopping-shortcut{font-size:12px;padding:12px}.shopping-shortcut .icon:last-child{display:none}.roulette-panel,.week-panel{padding:17px}.roulette-caption h3{font-size:12px}.daycard{padding:7px}.day-actions{gap:4px}.day-name{font-size:11px}.sectionhead h2{font-size:25px}.fact-card{padding:10px 13px;min-height:62px}.login-story{padding:35px}}
@media(min-width:901px) and (max-width:1120px){.weekgrid{grid-template-columns:repeat(4,minmax(0,1fr))}.week-summary{flex-wrap:wrap}.shopping-shortcut{width:100%}.panels{grid-template-columns:1fr}.librarygrid{grid-template-columns:repeat(2,minmax(0,1fr))}.roulette-track{gap:8px}.roulette-caption h3{font-size:10px}.no-repeat{font-size:11px}}
@media(max-width:900px){.shell{display:block}.sidebar{display:none}.main{padding:16px 20px calc(100px + env(safe-area-inset-bottom));min-height:100dvh}.mobile-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 13px}.mobile-header>a{text-decoration:none}.compact-brand .brand-mark{width:44px;height:44px}.compact-brand .wordmark{font-size:26px;letter-spacing:-1px}.mobile-header .iconbtn{color:#dbe4ec}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);padding:9px 9px calc(10px + env(safe-area-inset-bottom));background:#10191fef;border-top:1px solid #34414a;backdrop-filter:blur(18px)}.bottom-nav button{border:0;background:none;color:#b5cadc;display:flex;flex-direction:column;align-items:center;gap:5px;min-height:47px;font-size:10px;position:relative;padding:2px 0 8px}.bottom-nav button .icon{width:22px;height:22px}.bottom-nav button.active{color:#ff7165}.bottom-nav button.active:after{content:'';position:absolute;bottom:0;width:60px;height:3px;border-radius:4px;background:var(--orange)}.pagehead{margin:10px 0 18px;gap:12px}.pagehead h1{font-size:34px;letter-spacing:-1.2px;margin-bottom:6px}.muted{font-size:14px;line-height:1.5}.week-range{font-size:13px;margin-bottom:3px}.roulette-heading{display:block;margin:4px 0 4px}.week-facts{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:16px}.fact-card{min-height:55px;padding:9px 12px;gap:9px;border-radius:10px}.fact-card .icon{width:23px;height:23px}.fact-card small{font-size:10px;margin-bottom:2px}.fact-card strong{font-size:16px}.fact-card:first-child strong{color:#71df8b}.week-control{gap:0}.week-control .iconbtn{min-width:26px;width:26px;padding:2px}.roulette-panel{padding:0;background:none;border:0;margin-bottom:17px}.roulette-panel>.sectionhead{display:none}.roulette-window{margin:17px -20px 0;padding:25px 8px 0;overflow:hidden}.roulette-track{grid-template-columns:.8fr 1.18fr .8fr;gap:9px}.roulette-card:nth-child(1),.roulette-card:nth-child(5){display:none}.roulette-card .mealart{aspect-ratio:auto;height:145px}.roulette-card.selected{transform:none}.roulette-card.selected .mealart{height:159px}.roulette-caption{padding:8px 5px 9px}.roulette-caption h3{font-size:12px}.roulette-caption>span{font-size:12px}.roulette-card.selected .roulette-caption>span{font-size:14px}.carousel-arrow{width:34px;height:34px;top:42%;border-color:#77848b}.carousel-arrow .icon{width:21px;height:21px}.carousel-arrow.previous{left:14px}.carousel-arrow.next{right:14px}.spin-actions{margin-top:14px}.spin-button{width:100%;font-size:19px;min-height:48px}.spin-actions .fineprint{font-size:10px;margin-top:6px}.week-panel{border:0;padding:0;background:none;display:flex;flex-direction:column}.week-panel>.sectionhead{margin:0 0 14px}.sectionhead h2{font-size:28px}.shuffle-unlocked{font-size:10px;padding:8px;min-height:34px}.shuffle-unlocked .icon{width:15px;height:15px}.weekgrid{grid-template-columns:1fr;gap:8px}.daycard{display:grid;grid-template-columns:65px 35px minmax(0,1fr) 64px;gap:7px;align-items:center;text-align:left;padding:8px;border-radius:10px;min-height:77px}.day-photo{order:1}.day-date{order:2;margin:0;gap:2px}.day-date strong{font-size:10px}.day-date small{font-size:9px}.day-photo .mealart{height:58px;aspect-ratio:auto}.day-photo .food{font-size:32px}.day-copy{order:3;padding:0;gap:2px}.day-name{font-size:12px;text-align:left;line-height:1.35}.day-copy>span{font-size:12px;margin:0}.day-actions{order:4;margin:0;gap:4px}.day-actions .iconbtn{width:30px;min-height:32px;padding:6px;flex:none}.day-actions .icon{width:15px;height:15px}.day-placeholder{order:1;min-height:55px}.empty-day .day-copy>strong{font-size:11px}.week-summary{order:-1;margin:0 0 24px;display:block}.shopping-shortcut{display:none}.budget-summary{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px}.budget-copy{grid-column:1/-1;width:100%;gap:8px}.budget-copy>strong{font-size:23px}.budget-copy>span{font-size:14px}.budget-copy small{font-size:13px}.budget-track{width:100%;height:12px}.budget-limit{font-size:11px}.notice{font-size:12px;margin:14px 0}.librarygrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.add-meal-button{width:49px;height:49px}.meal-search{max-width:none;height:45px}.category-tabs{padding-top:12px;gap:7px;margin-bottom:0}.category-tabs button{font-size:12px;padding:7px 17px}.collection-count{font-size:11px;margin:11px 0}.librarycard .mealbody{padding:10px}.mealbody h3{font-size:13px}.library-price{font-size:12px}.library-price small{font-size:9px}.cardfooter{margin-top:5px}.category-tag{padding:4px 10px;font-size:10px}.panels{grid-template-columns:1fr;gap:16px}.panel{padding:21px}.panel h2{font-size:21px}.modalbody{padding:21px}.modalhead{padding:17px 21px}.modalhead h2{font-size:21px}.meal-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.meal-dialog .modalhead{padding:16px 20px}.meal-dialog .modalbody{padding:16px 20px 35px}.meal-dialog .modalhead h2{font-size:25px}.meal-dialog .modalhead .iconbtn{min-width:30px;margin-left:-8px}.meal-editor{gap:18px}.photo-upload{min-height:178px}.photo-placeholder{height:162px}.formrow{gap:14px}#toast{bottom:calc(85px + env(safe-area-inset-bottom));font-size:12px;min-width:220px}.historyrow{padding:15px 0}.historyrow h3{font-size:14px}.historyrow small{font-size:11px}.historyrow .btn{font-size:11px;padding:9px}.login{display:block}.login-story{padding:22px 25px 29px;min-height:0}.login-story>.fineprint,.login-food-grid{display:none}.login-story h1{font-size:43px;letter-spacing:-1.8px;margin:25px 0 12px}.login-story .brand-mark{width:43px;height:43px}.login-story .wordmark{font-size:27px}.login-story .eyebrow{display:none}.login-story p{font-size:13px;margin-bottom:0}.login-form{padding:31px 25px 40px}.login-form h2{font-size:29px}.login-form .security-label{font-size:9px;margin-bottom:18px}.signin-methods .fineprint{font-size:10px}}
@media(max-width:540px){.main{padding-left:18px;padding-right:18px}.roulette-window{margin-left:-18px;margin-right:-18px}.librarygrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.library-price small{display:none}.library-photo>.mealart{aspect-ratio:1.35}.shuffle-unlocked{display:none}.photo-upload{min-height:180px}.save-meal{min-height:50px}.no-repeat{font-size:10px}.fact-card{padding:9px}.week-facts{gap:7px}.fact-card .icon{width:21px;height:21px}.daycard{grid-template-columns:58px 32px minmax(0,1fr) 64px;gap:6px}.day-photo .mealart{height:56px}.photo-actions .btn{padding:10px 6px}.formstack .photo-actions .btn{font-size:12px}.security-label{letter-spacing:.6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.editor-brand .brand{gap:5px}.editor-brand .brand-mark{width:30px;height:30px}.editor-brand .wordmark{font-size:16px;letter-spacing:-.5px}.meal-dialog .modalhead .editor-brand{flex:none}.photo-upload:focus-within{outline:3px solid #ff9a90;outline-offset:3px}
.photo-section:has(#meal-photo:focus-visible) .photo-upload{outline:3px solid #ff9a90;outline-offset:3px}
#photo-preview[hidden]+.photo-change{display:none}
.admin-spin-controls{margin-bottom:22px}.admin-spin-controls h2{margin-bottom:10px}.admin-spin-controls .fineprint{margin-top:12px}.test-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;margin-bottom:22px;border:1px solid #ba8550;border-radius:12px;background:#392b20}.test-mode-banner strong,.test-mode-banner small{display:block}.test-mode-banner strong{font-size:13px;color:#ffdcaa}.test-mode-banner small{margin-top:5px;font-size:12px;color:#edd2b2}.test-mode-banner .btn{flex:none}@media(max-width:540px){.test-mode-banner{align-items:stretch;flex-direction:column}}
.golden-label{display:block;color:#ffda89;font-size:11px;line-height:1.5;margin:5px 0;overflow-wrap:anywhere}.librarycard.golden,.daycard.golden{border-color:#a78644;background:linear-gradient(135deg,#30291c,#1c252c 75%)}.mealart[data-rarity=golden] .favorite{background:#ffd580;color:#34230c}.reelitem.golden{border-color:#b99042;background:linear-gradient(140deg,#493b21,#292822)}.reelitem.winner{border-color:#ff7869;box-shadow:0 0 20px #ff514b66}.reelitem.golden.winner{border-color:#ffdd8b;box-shadow:0 0 28px #edb94788}.rarity-badge{display:inline-block;border:1px solid #485560;border-radius:30px;padding:6px 12px;font-size:10px;letter-spacing:1.4px;font-weight:800;color:#bacbd9}.reveal-owner{min-height:21px;margin:8px 0 0;overflow-wrap:anywhere}.rolltext{position:relative}.legendary .rarity-badge{color:#ffe09d;border-color:#bf9442;background:#4b381d}.legendary .rolltext h3,.legendary .reveal-owner{color:#ffdd95}.legendary .reelwindow{border-color:#d8a94b;animation:gold-drop 1s ease-out}.legendary .reelwindow:after{background:#ffd77b;box-shadow:0 0 18px #ffd77b}.legendary .reelwindow:before{border-top-color:#ffd77b}.legendary .rolltext:before,.legendary .rolltext:after{position:absolute;content:'✦';color:#ffd77b;pointer-events:none;animation:gold-spark 1s ease-out both}.legendary .rolltext:before{left:3%;top:30%;font-size:28px}.legendary .rolltext:after{right:3%;top:55%;font-size:22px}.revealdots span.golden{background:#ffcf70;box-shadow:0 0 10px #efbd5966}.reveal-dialog .modalfoot{justify-content:space-between;flex-wrap:wrap}.spin-actions .sound-toggle{margin-bottom:12px;font-size:12px}.sound-settings .sound-toggle{margin:18px 0}.volume-label{display:grid;gap:10px;font-size:14px}.volume-label input{padding:0;accent-color:#ffca73}.admin-spin-controls{margin-top:24px}.admin-spin-controls summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;list-style:none}.admin-spin-controls summary::-webkit-details-marker{display:none}.admin-spin-controls summary strong{font-size:14px}.admin-spin-controls summary span{font-size:11px;color:var(--muted)}.admin-spin-controls[open] summary{margin-bottom:16px}.admin-spin-controls summary span:after{content:' +';color:#ff9187}.admin-spin-controls[open] summary span:after{content:' −'}.day-name,.mealbody h3{overflow-wrap:anywhere}
@keyframes gold-drop{0%{box-shadow:0 0 0 #f9c66300}35%{box-shadow:0 0 38px #f9c66377}100%{box-shadow:0 0 12px #f9c66322}}@keyframes gold-spark{0%{opacity:0;transform:translateY(10px) scale(.5)}35%{opacity:1}100%{opacity:0;transform:translateY(-22px) scale(1.2)}}
@media(max-width:900px){
 .main{padding-top:calc(12px + env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:calc(110px + env(safe-area-inset-bottom))}.mobile-header{padding-bottom:20px}.mobile-header .iconbtn,.bottom-nav button{min-height:48px;min-width:44px}.bottom-nav{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.bottom-nav button{font-size:12px;gap:6px}.pagehead{margin-bottom:24px}.pagehead h1{font-size:32px}.week-facts{grid-template-columns:minmax(0,1fr) auto;margin-top:20px;gap:12px}.fact-card:nth-child(2){display:none}.fact-card{min-height:64px}.fact-card small{font-size:12px}.fact-card strong{font-size:18px}.week-control .iconbtn{width:44px;min-width:44px;min-height:44px}.week-range{font-size:14px}.roulette-window{margin:16px -16px 0;padding-top:16px}.spin-actions .fineprint{font-size:12px}.spin-button{min-height:54px}.week-panel>.sectionhead{margin-top:10px;margin-bottom:18px}.week-summary{margin-bottom:22px}.weekgrid{gap:12px}.daycard{grid-template-columns:76px minmax(0,1fr) 44px;grid-template-areas:'photo date actions' 'photo copy actions';gap:4px 12px;padding:12px;min-height:118px;border-radius:14px}.day-date{grid-area:date;flex-direction:row;justify-content:flex-start;gap:7px;align-self:end}.day-date strong{font-size:12px}.day-date small{font-size:11px}.day-photo,.day-placeholder{grid-area:photo;width:76px}.day-photo .mealart{height:88px;border-radius:9px}.day-copy{grid-area:copy;align-self:start;min-width:0;gap:4px}.day-name{font-size:15px;line-height:1.35;text-align:left;min-height:30px}.day-copy>span{font-size:13px}.day-actions{grid-area:actions;flex-direction:column;gap:4px}.day-actions .iconbtn{width:44px;min-height:44px;padding:11px}.day-actions .icon{width:20px;height:20px}.daycard .golden-label{font-size:10px;margin:2px 0}.empty-day .day-copy>strong{font-size:14px}.empty-day .day-placeholder{min-height:76px}.shuffle-unlocked{min-height:44px;font-size:12px}.category-tabs button{min-height:44px}.favorite-button{width:44px;height:44px}.meal-menu summary{min-width:44px;min-height:44px}.meal-menu-items button{min-height:44px;font-size:14px}input,textarea,select,.meal-search input{font-size:16px}.formstack{gap:22px}.panel{padding:20px}.panels{gap:20px}.passkey-row{flex-wrap:wrap}.passkey-row>span{min-width:0;overflow-wrap:anywhere}.admin-spin-controls{padding:12px 16px}.admin-spin-controls .actions .btn{min-height:48px}.test-mode-banner{padding:14px}.test-mode-banner strong{font-size:12px}.test-mode-banner .btn{min-height:44px}dialog{width:calc(100vw - 24px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);border-radius:18px;overscroll-behavior:contain}.modalhead{padding:16px}.modalhead h2{font-size:21px}.modalhead .iconbtn{width:44px;min-height:44px}.modalbody{padding:18px}.modalfoot .btn{min-height:48px}.rolltext h3{font-size:23px}.reelwindow{margin:22px 0;height:195px}#toast{bottom:calc(90px + env(safe-area-inset-bottom));font-size:14px}.login-story{padding-top:calc(24px + env(safe-area-inset-top))}.login-form{padding:26px 22px calc(26px + env(safe-area-inset-bottom))}.login-form:only-child{grid-column:1/-1}
}
@media(max-width:600px){.librarygrid{grid-template-columns:1fr;gap:14px}.librarycard{display:grid;grid-template-columns:104px minmax(0,1fr)}.library-photo{min-height:142px}.library-photo>.mealart{height:100%;aspect-ratio:auto;border-radius:11px 0 0 11px}.library-photo .food{font-size:42px}.librarycard .mealbody{padding:13px 14px}.mealbody h3{font-size:16px;line-height:1.4}.library-price{font-size:14px;margin-top:8px}.library-price small{display:flex;font-size:11px}.librarycard .golden-label{font-size:11px}.cardfooter{margin-top:6px}.category-tag{font-size:12px;padding:5px 10px}.favorite-button{right:6px;top:6px}.roulette-caption h3{font-size:12px;line-height:1.4}.roulette-card.selected .mealart{height:175px}.formrow{gap:12px}.reveal-dialog .modalfoot .btn{font-size:12px;padding:10px}.reveal-owner{font-size:12px}.sectionhead h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.legendary .reelwindow,.legendary .rolltext:before,.legendary .rolltext:after{animation:none}.legendary .rolltext:before,.legendary .rolltext:after{display:none}}
