:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#24392e;background:#f7f7f2;font-synthesis:none;font-size:16px;line-height:1.6;--green:#264e3e;--muted:#798077;--line:#e4e7de;--paper:#fffefa}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit;transition:background .18s,transform .18s}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #afbe90;outline-offset:4px}input,textarea,select{width:100%;padding:13px 15px;border:1px solid #dce1d5;border-radius:12px;background:#fffefa;color:inherit;outline:none}input:focus,textarea:focus,select:focus{border-color:#50785a;box-shadow:0 0 0 3px #edf0e3}textarea{resize:vertical}button svg,.meta svg,.pill svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:38px;line-height:1.4;letter-spacing:-1.3px;font-weight:650}h2{font-size:21px;font-weight:600}h3{font-size:19px;font-weight:650}.muted{color:var(--muted);font-size:15px;margin-top:10px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600;color:#859074;margin-bottom:13px;display:flex;align-items:center;gap:10px}.little-line{width:24px;height:1px;background:#849475}.topbar{max-width:1100px;margin:auto;height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-align:left;padding:0;font-size:17px;font-weight:600;letter-spacing:.5px}.brand small{display:block;font-size:11px;letter-spacing:2px;color:var(--muted);font-weight:400;margin-top:1px}.brand-icon{width:43px;height:43px;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;border-radius:14px}.private{color:#92988a;font-size:12px;display:flex;gap:7px;align-items:center}main{max-width:1052px;margin:auto;padding:38px 0 170px}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.question{color:#738365}.date{display:flex;gap:12px;align-items:center;color:#69725c;font-size:14px}.date small{display:block;color:#919786;font-size:12px;margin-top:4px}.random-banner{display:flex;align-items:center;gap:16px;text-align:left;background:#ecefdf;border:1px solid #e2e8d1;border-radius:18px;padding:20px 24px;width:100%;margin:26px 0 32px}.random-icon{background:#e1e8cf;display:flex;padding:13px;border-radius:14px;color:#687d49}.random-banner strong{display:block;font-size:17px;font-weight:550}.random-banner small{display:block;color:#89917b;margin-top:3px;font-size:13px}.random-end{margin-left:auto;display:flex;gap:12px;align-items:center;font-size:14px}.menu-heading{display:flex;align-items:center;justify-content:space-between}.menu-heading h2 span{font-size:12px;font-weight:400;color:#949b8b;margin-left:14px}.small-note{font-size:12px;color:#939d85;display:flex;gap:6px;align-items:center}.categories{display:flex;gap:7px;overflow:auto;margin:22px 0 25px;padding-bottom:3px;scrollbar-width:none}.categories button{white-space:nowrap;padding:8px 20px;border-radius:99px;font-size:14px;color:#7c8378}.categories button.active{background:var(--green);color:#fff}.categories button:not(.active):hover{background:#ecefe5}.dish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.dish-card{background:var(--paper);border:1px solid #eceee5;border-radius:20px;overflow:hidden;box-shadow:0 3px 12px #25332303;transition:box-shadow .2s,border-color .2s}.dish-card:hover{box-shadow:0 8px 24px #25332309}.dish-card.is-selected{border-color:#53765a;box-shadow:0 0 0 1px #53765a}.photo-wrap{position:relative;aspect-ratio:1.48;overflow:hidden;background:#e9e6db}.photo{width:100%;height:100%;object-fit:cover;background-repeat:no-repeat;background-color:#e9e6db}.no-photo{display:flex;justify-content:center;align-items:center;color:#899078}.recommend{position:absolute;top:13px;left:13px;display:flex;align-items:center;gap:4px;font-size:11px;background:#fffcf2e6;color:#68764c;padding:4px 9px;border-radius:30px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.chosen-mark{position:absolute;top:13px;right:13px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--green);color:#fff;border-radius:50%}.dish-body{padding:17px 18px 18px}.dish-body p{font-size:13px;color:#8e9387;margin-top:4px}.dish-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:5px}.tags{display:flex;gap:5px}.tags span{font-size:11px;background:#f2f3ed;color:#929980;padding:3px 7px;border-radius:5px}.choose{font-size:12px;display:flex;align-items:center;gap:3px;white-space:nowrap;border:1px solid #dfe6d7;border-radius:9px;padding:7px 9px;color:#5d7354}.choose.selected{background:var(--green);color:#fff;border-color:var(--green)}.closing{text-align:center;font-size:12px;letter-spacing:2px;color:#a0a58e;margin-top:40px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:center;gap:80px;background:#fffefaed;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:11px 20px calc(11px + env(safe-area-inset-bottom))}.bottom-nav button{display:flex;align-items:center;gap:9px;color:#989e90;font-size:13px;min-width:64px;justify-content:center;padding:8px 14px;border-radius:12px}.bottom-nav button.active{color:var(--green);background:#eef1e6}.selection-bar{position:fixed;bottom:86px;left:50%;transform:translate(-50%);width:min(620px,calc(100% - 32px));z-index:21;background:#fffefa;box-shadow:0 8px 40px #273c2520;border:1px solid #e5e8df;border-radius:18px;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.selection-bar small{display:block;font-size:11px;color:#919880}.selection-bar strong{font-size:15px;font-weight:500}.selection-bar em{font-style:normal;font-size:20px;margin:0 3px;color:var(--green)}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:12px;border-radius:12px;padding:12px 18px;font-size:14px;font-weight:500;min-height:46px}.primary{background:var(--green);color:#fff}.primary:not(:disabled):hover{background:#376550}.secondary{background:#f0f2e9;color:#4f6946;border:1px solid #dce3d2}.full{width:100%;margin-top:20px}.text-button{font-size:14px;display:inline-flex;align-items:center;gap:7px;padding:12px 0;color:#627650}.centered{display:flex;justify-content:center;margin:auto}.error{padding:12px 16px;background:#fbebe5;border:1px solid #ecd2c5;border-radius:12px;color:#9b5138;font-size:14px;margin:0 0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.error button{display:flex}.today-saved{border:1px solid #dce3cf;background:#f0f3e9;border-radius:18px;padding:22px;display:flex;justify-content:space-between;align-items:center;gap:20px}.today-saved h2{font-size:17px;line-height:1.8;margin:10px 0}.pill{background:#e6ecd9;border-radius:30px;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:11px;white-space:nowrap;color:#68794d}.meta{color:#969c8c;font-size:12px;display:flex;align-items:center;gap:6px;margin-top:14px}.inner-page,.checkout,.success{max-width:720px;margin:8px auto}.inner-page h1{font-size:32px}.segmented{display:flex;width:fit-content;background:#eaede2;border-radius:13px;padding:4px;margin:28px 0;gap:4px}.segmented button{display:flex;align-items:center;gap:7px;border-radius:9px;padding:9px 20px;color:#7b8471;font-size:14px}.segmented button.active{background:#fffefa;box-shadow:0 2px 5px #25332308;color:var(--green)}.history-card{position:relative;background:#fffefa;border:1px solid var(--line);border-radius:18px;padding:24px;margin-bottom:20px}.history-date{display:flex;justify-content:space-between;align-items:center;font-size:16px;margin-bottom:20px}.history-date span{color:#8d9582;font-size:13px}.history-dishes{display:flex;gap:15px;flex-wrap:wrap}.history-dishes>div{width:105px}.history-dishes .photo{height:78px;border-radius:10px;margin-bottom:5px}.history-dishes span{font-size:13px}.note{background:#f4f4ed;border-radius:10px;padding:13px 16px;font-size:14px;color:#7e866f;margin-top:18px;white-space:pre-wrap;overflow-wrap:anywhere}.calendar{background:#fffefa;border:1px solid var(--line);border-radius:20px;padding:20px;margin-bottom:24px}.calendar-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.calendar-title button{display:flex;padding:6px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}.calendar-grid button{height:48px;border-radius:13px;position:relative;font-size:15px}.calendar-grid button.active{background:var(--green);color:#fff}.calendar-grid button i{width:4px;height:4px;background:#7e955e;position:absolute;bottom:5px;left:calc(50% - 2px);border-radius:50%}.calendar-grid button.active i{background:#fff}.week-label{font-size:12px;color:#9a9f8e;padding-bottom:9px}.empty{padding:50px 20px;text-align:center;color:#9aa18d}.empty svg{color:#abb49a}.empty p{margin-top:14px;font-size:15px}.wish-form{display:flex;gap:12px;margin:30px 0}.wish-form .primary{white-space:nowrap}.wish-row,.admin-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.wish-row>div,.admin-row>div{flex:1;min-width:0;overflow-wrap:anywhere}.wish-row strong,.rank-row strong,.admin-row strong{font-size:16px;font-weight:550}.wish-row small,.rank-row small,.admin-row small{display:block;color:#949b87;font-size:12px;margin-top:4px}.wish-check{display:flex;width:40px;height:40px;border:1px solid #e1e6d6;background:#eef1e5;border-radius:50%;align-items:center;justify-content:center;color:#84976d}.wish-row.eaten strong{text-decoration:line-through;color:#9ca08f}.wish-row.eaten .wish-check{background:var(--green);color:#fff}.memory-stats{display:flex;justify-content:space-around;background:#ecefdf;border:1px solid #e2e7d5;border-radius:20px;padding:35px 20px;margin:30px 0 38px}.memory-stats>div{text-align:center;width:50%}.memory-stats>div+div{border-left:1px solid #d8dfcb}.memory-stats strong{font-size:44px;font-weight:400;font-family:Georgia,serif;display:block}.memory-stats span{font-size:13px;color:#899779}.rank-row{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:20px 0}.rank-row .photo{width:65px;height:65px;border-radius:13px}.rank{font-size:23px;color:#9aa984;font-family:Georgia,serif}.rank-row>div:not(.photo){flex:1}.settings-links{margin:40px 0}.settings-links button{padding:18px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;width:100%;font-size:14px;color:#889378}.settings-links button svg:last-child{margin-left:auto}.selection-list{margin:25px 0}.selected-row{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.selected-row .photo{width:65px;height:65px;border-radius:12px;flex-shrink:0}.selected-row>div:not(.photo){flex:1;min-width:0}.selected-row strong{font-size:16px}.selected-row small{display:block;font-size:12px;color:#939b86;margin-top:5px}.row-controls{display:flex;flex:0!important;gap:3px}.row-controls button{padding:5px;display:flex}.field{display:block;margin-top:18px;font-size:14px;color:#65745b}.field input,.field select,.field textarea{display:block;margin-top:7px}.success{text-align:center;padding-top:25px}.success .eyebrow{justify-content:center;margin-top:22px}.success-mark{width:76px;height:76px;border-radius:50%;background:#e6edd9;color:#6e8654;display:flex;align-items:center;justify-content:center;margin:auto}.heart{font-size:27px}.paper{text-align:left;background:#fffefa;border:1px solid var(--line);border-radius:20px;padding:24px 32px;margin:28px auto;max-width:500px}.paper .eyebrow{justify-content:flex-start;margin:0 0 18px}.receipt-line{display:flex;gap:18px;align-items:center;padding:16px 0;border-bottom:1px dashed #e1e6d6}.receipt-line>span{font-size:12px;color:#9ea98a}.receipt-line strong{font-size:17px;font-weight:500;flex:1}.receipt-line svg{color:#8da578}.success>.text-button{display:flex;margin:auto}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#17231955;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:100%;max-width:500px;background:#fffefa;border-radius:24px;padding:32px;position:relative;max-height:90dvh;overflow:auto;box-shadow:0 20px 100px #17231930}.modal h2{font-size:23px}.modal .eyebrow{font-size:10px;margin-top:20px}.close{position:absolute;right:17px;top:17px;padding:7px;display:flex}.modal-icon{width:46px;height:46px;border-radius:15px;background:#edf1e1;display:flex;align-items:center;justify-content:center;color:#7d9361}.login{display:grid;grid-template-columns:1fr 1fr;width:min(900px,calc(100% - 48px));margin:10vh auto;background:#fffefa;min-height:580px;border-radius:28px;overflow:hidden;border:1px solid #e8ebdf;box-shadow:0 15px 70px #2e402108}.login-image{position:relative;overflow:hidden}.login-image .photo{filter:brightness(.78)}.login-image>span{position:absolute;left:35px;bottom:45px;z-index:1;font-size:29px;line-height:1.6;letter-spacing:2px;color:#fff}.login-form{display:flex;flex-direction:column;justify-content:center;padding:45px}.login-form .eyebrow{margin:24px 0 12px;font-size:10px}.login-form h1{font-size:34px}.login-form>input{margin-top:30px}.login-form .meta{justify-content:center;font-size:11px}.login-form .error{margin-top:15px}.admin-login{margin:0 auto;width:100%;min-height:500px}.admin-title{display:flex;justify-content:space-between;align-items:center}.admin-page{max-width:760px;margin:auto}.admin-row>strong{flex:1}.admin-row button{font-size:14px}.admin-row .secondary{min-height:36px;padding:5px 15px}.admin-modal{max-width:550px}.upload{display:flex;gap:8px;align-items:center;font-size:13px;color:#7e8f6b;margin:15px 0;flex-wrap:wrap}.upload input{font-size:12px}.check-field{display:flex;align-items:center;gap:10px;font-size:14px;margin:15px 0}.check-field input{width:18px;height:18px;accent-color:var(--green)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:1120px){main{margin:0 30px}.topbar{margin:0 30px;padding:0}.dish-grid{gap:18px}.dish-body{padding:16px 14px}.dish-bottom{gap:3px}.tags span{padding:3px 5px}}@media(max-width:700px){.topbar{height:78px;margin:0 20px}.brand{font-size:15px;gap:10px}.brand-icon{width:36px;height:36px;border-radius:12px}.private,.brand small{font-size:10px}.topbar .brand small{letter-spacing:1px}main{margin:0 20px;padding:30px 0 calc(180px + env(safe-area-inset-bottom))}h1{font-size:31px;letter-spacing:-.8px}.intro{display:block;margin-bottom:20px}.intro .eyebrow{font-size:10px;letter-spacing:1.6px;margin-bottom:10px}.date{margin-top:21px;font-size:12px;gap:8px}.date svg{width:18px}.date small{display:inline;font-size:11px;margin-left:10px}.random-banner{margin:22px 0 27px;padding:15px 16px;gap:12px;border-radius:16px}.random-icon{padding:10px}.random-banner strong{font-size:15px}.random-banner small{font-size:11px}.random-end{font-size:12px;gap:5px}.small-note{display:none}.menu-heading h2{font-size:20px}.menu-heading h2 span{font-size:11px;margin-left:8px}.categories{margin:18px -20px;padding:0 20px 3px;gap:6px}.categories button{padding:7px 17px;font-size:13px}.dish-grid{gap:15px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-wrap{aspect-ratio:1.12}.dish-card{border-radius:16px}.dish-body{padding:12px 11px}.dish-body h3{font-size:16px}.dish-body p{font-size:11px;min-height:35px;line-height:1.6;margin-top:4px}.dish-bottom{display:block;margin-top:10px}.tags{height:23px}.tags span{font-size:10px;padding:2px 6px}.choose{width:100%;justify-content:center;margin-top:9px;font-size:12px;padding:7px 5px;border-radius:8px;min-height:34px}.recommend{font-size:9px;top:9px;left:9px;padding:3px 6px}.recommend svg{width:10px}.chosen-mark{top:8px;right:8px;width:23px;height:23px}.bottom-nav{justify-content:space-around;gap:0;padding:9px 10px calc(7px + env(safe-area-inset-bottom))}.bottom-nav button{flex-direction:column;gap:4px;font-size:10px;padding:3px 12px}.bottom-nav button.active{background:transparent}.bottom-nav button.active:after{content:"";width:12px;height:2px;border-radius:3px;background:#648253}.selection-bar{bottom:calc(78px + env(safe-area-inset-bottom));padding:12px 14px;border-radius:16px}.selection-bar .primary{padding:11px 12px;font-size:12px;gap:6px}.selection-bar strong{font-size:13px}.selection-bar small{font-size:10px}.selection-bar em{font-size:18px}.today-saved{display:block;padding:17px}.today-saved h2{font-size:15px}.today-saved .secondary{margin-top:13px;font-size:12px;padding:8px 12px;min-height:36px}.inner-page h1{font-size:29px}.wish-form{gap:8px}.wish-form input{font-size:13px;min-width:0;padding:12px}.wish-form .primary{padding:10px 12px;font-size:12px;gap:4px}.wish-form .primary svg{width:15px}.history-card{padding:19px 16px}.history-date{font-size:14px}.history-dishes{gap:10px}.history-dishes>div{width:calc((100% - 20px)/3)}.history-dishes .photo{height:auto;aspect-ratio:1.15}.history-dishes span{font-size:12px}.calendar{padding:16px 12px}.calendar-grid{gap:2px}.calendar-grid button{height:42px;font-size:13px}.selected-row{gap:10px}.selected-row .photo{width:56px;height:56px}.selected-row strong{font-size:14px}.selected-row small{font-size:11px}.row-controls{gap:0}.row-controls button{padding:5px 3px}.checkout h1{font-size:28px}.modal{padding:27px 21px;border-radius:22px}.modal h2{font-size:20px}.overlay{padding:16px}.paper{padding:22px}.success .muted{font-size:13px}.rank-row{gap:12px}.rank-row .photo{width:55px;height:55px}.rank-row strong{font-size:14px}.rank-row .pill{font-size:10px}.login{display:block;width:calc(100% - 32px);margin:24px auto;min-height:0;border-radius:23px}.login-image{height:190px}.login-image .photo{background-position-y:15%!important;object-position:center 30%}.login-image>span{font-size:23px;left:25px;bottom:25px}.login-form{padding:30px 27px 35px}.login-form>.brand-icon{display:none}.login-form .eyebrow{margin-top:0}.login-form h1{font-size:29px}.login-form>input{margin-top:22px}.admin-login{width:100%;margin:0}.admin-title h1{font-size:28px}.admin-row{gap:10px}.admin-row strong{font-size:14px}.memory-stats{padding:28px 10px}.memory-stats strong{font-size:39px}.memory-stats span{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.selected-row .row-controls{flex:0 0 auto!important}.selected-row strong,.dish-body h3,.rank-row strong{overflow-wrap:anywhere}.rank-row>div:not(.photo){min-width:0}.rank-row .photo{flex-shrink:0}
