:root{--ink:#0b2430;--ink2:#123744;--tomato:#e8563f;--cream:#fffaf0;--paper:#f6f1e7;--yellow:#f5c75d;--muted:#6b7476;--line:#d9ddd7;--white:#fff;--shadow:0 18px 50px #0b243014}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app{min-height:100vh}header{height:72px;display:flex;align-items:center;max-width:1180px;margin:auto;padding:0 24px;border-bottom:1px solid #102e3615}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:1.2rem;font-weight:800;text-decoration:none}.brand span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--tomato);color:white}nav{display:flex;gap:8px;margin:auto}nav a{color:var(--muted);padding:9px 15px;text-decoration:none;border-radius:99px;font-weight:600}nav a.active{background:var(--ink);color:white}main{max-width:1180px;margin:auto;padding:42px 24px 72px}.page-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.page-title h1{font-family:Georgia,"Songti SC",serif;font-size:clamp(2rem,5vw,3.5rem);line-height:1;margin:5px 0}.eyebrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tomato);font-weight:800;margin:0}.primary,.ghost,.icon-btn{border:0;border-radius:12px;padding:12px 18px;font-weight:700}.primary{background:var(--tomato);color:white;box-shadow:0 8px 20px #e8563f33}.primary:hover{background:#d84934}.ghost,.icon-btn{background:#102e3610;color:var(--ink)}.icon-btn{padding:10px 14px}.workspace{display:grid;grid-template-columns:390px 1fr;gap:24px}.calendar-card,.day-panel,.settings-grid article{background:white;border:1px solid #0b243012;border-radius:22px;box-shadow:var(--shadow)}.calendar-card{padding:22px;height:max-content}.month-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.month-head button{border:0;background:var(--paper);width:34px;height:34px;border-radius:50%;font-size:1.5rem}.week,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week span{text-align:center;color:#8a9495;font-size:.75rem;padding:5px}.calendar button{aspect-ratio:1;border:0;border-radius:12px;background:transparent;color:var(--ink);position:relative}.calendar button:hover{background:var(--paper)}.calendar button.other{opacity:.3}.calendar button.selected{background:var(--ink);color:white}.calendar button.today{outline:2px solid var(--tomato);outline-offset:-2px}.calendar button.has::after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;background:var(--tomato);border-radius:50%;transform:translateX(-50%)}.calendar button.selected.has::after{background:var(--yellow)}.legend{color:var(--muted);font-size:.78rem;margin-top:16px}.legend i{display:inline-block;width:6px;height:6px;background:var(--tomato);border-radius:50%;margin-right:6px}.day-panel{padding:28px}.day-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.day-head span{color:var(--muted);font-size:.85rem}.day-head h2{font-family:Georgia,"Songti SC",serif;font-size:1.8rem;margin:2px 0}.timeline{padding-top:8px}.meal{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}.meal:last-child{border:0}.meal-type{font-weight:800;color:var(--tomato)}.meal-card{display:flex;justify-content:space-between;gap:16px;min-height:78px}.meal-card h3{margin:0 0 4px;font-size:1.05rem}.meal-card p{margin:0;color:var(--muted);font-size:.9rem}.meal-photo{width:100px;height:76px;object-fit:cover;border-radius:12px}.empty-meal{border:1px dashed var(--line);border-radius:14px;padding:15px;display:flex;justify-content:space-between;align-items:center;color:var(--muted)}.text-btn{border:0;background:none;color:var(--tomato);font-weight:700;padding:6px 0}.search{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);padding:0 14px;border-radius:14px;max-width:480px;margin-bottom:22px}.search input{border:0;outline:0;background:transparent;padding:13px 0;width:100%}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.recipe-card{background:white;border:1px solid #0b243012;border-radius:18px;padding:20px;min-height:150px;display:flex;flex-direction:column;box-shadow:0 8px 22px #0b243008}.recipe-card h3{margin:0 0 8px}.recipe-card p{margin:0;color:var(--muted)}.recipe-card footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:18px}.pill{font-size:.74rem;padding:4px 8px;background:var(--paper);border-radius:99px}.settings-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:20px}.settings-grid article{padding:26px}.settings-grid h2{margin-top:0}.settings-grid p{color:var(--muted)}.backup-list .backup{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.backup a{color:var(--tomato);font-weight:700}dialog{border:0;border-radius:22px;padding:0;box-shadow:0 30px 100px #00182055;max-width:min(620px,calc(100vw - 24px));width:100%}dialog::backdrop{background:#071a21aa;backdrop-filter:blur(4px)}.modal{padding:26px;max-height:88vh;overflow:auto}.modal.wide{max-width:720px}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.modal-head h2{font-family:Georgia,"Songti SC",serif;font-size:1.8rem;margin:2px 0}.close{border:0;background:var(--paper);border-radius:50%;width:38px;height:38px;font-size:1.4rem}label{display:grid;gap:6px;font-weight:700;margin-bottom:16px}input,select,textarea{border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:white;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--tomato);box-shadow:0 0 0 3px #e8563f15}small{color:var(--muted);font-weight:400}fieldset{border:1px solid var(--line);border-radius:14px;padding:14px;margin:0 0 16px}legend{font-weight:800}.mini{margin-bottom:10px}.choices{max-height:180px;overflow:auto}.choice{display:flex;grid-template-columns:auto 1fr;gap:9px;align-items:center;padding:8px;border-radius:9px;margin:0;font-weight:500}.choice:hover{background:var(--paper)}.choice input{width:18px;height:18px}.ingredient-row{display:grid;grid-template-columns:1.8fr 1fr 1fr auto;gap:8px;margin-bottom:8px}.ingredient-row input{min-width:0}.remove{border:0;background:#e8563f10;color:var(--tomato);border-radius:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.span-2{grid-column:span 2}.nutrition{grid-template-columns:repeat(4,1fr)}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.error{color:#bd3021;font-size:.9rem;min-height:1.4em}.check{display:flex;grid-template-columns:auto 1fr;align-items:center}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--cream)}.login-card{max-width:420px;width:calc(100% - 48px);margin:auto}.login-card .mark{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:var(--tomato);color:white;font-size:1.4rem;font-weight:800}.login-card h1{font-family:Georgia,"Songti SC",serif;font-size:3rem;line-height:1.1;margin:28px 0 8px}.login-card>p{color:var(--muted);margin-bottom:32px}.login-card .primary{width:100%}.food-panel{background:var(--ink);display:grid;place-items:center;align-content:center;color:white;overflow:hidden}.plate{width:min(32vw,360px);aspect-ratio:1;border-radius:50%;background:var(--cream);border:24px solid #e9e0cd;display:grid;place-items:center;box-shadow:0 40px 80px #001016}.plate span{width:46%;aspect-ratio:1;border-radius:50%;background:var(--tomato);display:grid;place-items:center;font-family:Georgia,"Songti SC",serif;font-size:5rem;color:white}.food-panel p{color:#aec1c6;letter-spacing:.1em;margin-top:32px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,120px);background:var(--ink);color:white;padding:12px 20px;border-radius:12px;transition:.25s;z-index:20}#toast.show{transform:translate(-50%,0)}
@media(max-width:800px){header{padding:0 16px}.brand{font-size:0}.brand span{font-size:1rem}nav{gap:0}nav a{padding:8px 11px}.icon-btn{padding:9px}main{padding:28px 16px 60px}.workspace{grid-template-columns:1fr}.calendar-card{padding:16px}.day-panel{padding:20px}.recipe-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.page-title{align-items:center}.page-title h1{font-size:2.35rem}.meal{grid-template-columns:58px 1fr}.meal-card{flex-direction:column}.meal-photo{width:100%;height:160px}.nutrition{grid-template-columns:1fr 1fr}.login-shell{grid-template-columns:1fr}.food-panel{display:none}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.ingredient-row{grid-template-columns:1.5fr .8fr .8fr auto}}
.food-panel{padding:48px}.food-panel img{width:min(42vw,680px);aspect-ratio:3/2;object-fit:cover;border-radius:24px;box-shadow:0 40px 80px #001016}
@media(max-width:800px){.page-title{gap:12px}.page-title h1{font-size:2rem}.page-title .primary{padding:11px 14px}.food-panel{display:none}}
.food-panel{padding:48px}.food-panel img{width:min(42vw,680px);aspect-ratio:3/2;object-fit:cover;border-radius:24px;box-shadow:0 40px 80px #001016}
