:root{--blue:#0878d1;--blue-dark:#075ea8;--pale:#eff8ff;--ink:#182433;--muted:#657384;--line:#e5ebf1;--bg:#f6f8fb;--white:#fff;--shadow:0 10px 30px rgba(28,64,91,.07);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:15px;line-height:1.5}.sidebar{position:fixed;z-index:3;width:248px;height:100vh;background:#fff;border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-weight:700;text-decoration:none;font-size:18px;padding:0 10px 28px}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:.6px}.brand-mark{background:var(--blue);color:#fff;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;font-family:Georgia;font-size:23px}.sidebar nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;cursor:pointer;color:#506073;text-align:left;border-radius:8px;height:48px;padding:0 14px;font:inherit;font-size:15px;display:flex;gap:12px;align-items:center}.nav-item:hover,.nav-item.active{background:var(--pale);color:var(--blue);font-weight:600}.sidebar-foot{margin-top:auto;color:#8592a0;font-size:12px;padding:12px}main{margin-left:248px;min-height:100vh}.topbar{height:104px;background:#fff;border-bottom:1px solid var(--line);padding:20px clamp(24px,5vw,74px);display:flex;align-items:center;justify-content:space-between}.topbar p,.section-intro p,.panel-heading p{margin:0;color:var(--muted);font-size:13px}.topbar h1{font-size:24px;margin:2px 0 0}.profile,.icon-button{border:0;background:var(--pale);color:var(--blue);border-radius:50%;width:40px;height:40px;font:inherit;cursor:pointer}.icon-button{display:none;font-size:21px}.page{display:none;max-width:1300px;margin:auto;padding:34px clamp(24px,5vw,74px) 60px}.page.active{display:block}.date-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;color:var(--muted)}.tag{color:var(--blue);background:var(--pale);font-size:12px;padding:5px 10px;border-radius:20px}.overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric-card,.panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.metric-card{padding:20px;min-height:142px;display:flex;flex-direction:column;justify-content:space-between}.metric-card span,.metric-card small{color:var(--muted);font-size:13px}.metric-card strong{font-size:31px;letter-spacing:-1px}.metric-card.accent{background:linear-gradient(135deg,#0b80d8,#1168b4);border-color:#0b80d8;color:#fff}.metric-card.accent span,.metric-card.accent small{color:#dcefff}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.panel{padding:22px}.panel-heading,.section-intro{display:flex;align-items:center;justify-content:space-between;gap:14px}.panel h2{font-size:18px;margin:2px 0 0}.text-button{border:0;background:none;color:var(--blue);font:inherit;cursor:pointer;padding:9px}.compact-list{margin-top:16px}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:13px 0}.compact-row:first-child{border-top:0}.compact-row strong{font-size:14px}.compact-row small{display:block;color:var(--muted);font-size:12px}.empty{color:var(--muted);padding:20px 0;text-align:center}.quick-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.primary-button,.secondary-button{border-radius:8px;border:1px solid var(--blue);min-height:44px;padding:0 17px;font:inherit;cursor:pointer}.primary-button{background:var(--blue);color:#fff}.primary-button:hover{background:var(--blue-dark)}.secondary-button{background:#fff;color:var(--blue)}.section-intro{margin-bottom:18px}.section-intro h1{margin:2px 0 0;font-size:26px}.helper{margin:-6px 0 18px;color:var(--muted);font-size:13px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.chip{border:1px solid var(--line);background:#fff;border-radius:20px;min-height:38px;padding:0 14px;color:#506073;font:inherit;cursor:pointer}.chip.active{background:var(--pale);color:var(--blue);border-color:#bfddf6}.item-list{display:grid;gap:10px}.item{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:16px;display:grid;grid-template-columns:26px 1fr auto;gap:12px;align-items:start}.check{width:22px;height:22px;border:1.5px solid #a9b9c7;border-radius:50%;background:#fff;cursor:pointer;margin-top:2px}.check.done{background:var(--blue);border-color:var(--blue);color:#fff}.item h3{margin:0;font-size:16px}.item p{margin:4px 0 0;color:var(--muted);font-size:13px}.meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.badge{font-size:12px;padding:3px 8px;background:#f3f6f8;border-radius:12px;color:#526273}.priority-high{color:#b94737;background:#fff1ef}.priority-medium{color:#a06b00;background:#fff8e6}.actions{display:flex;gap:3px}.action{border:0;background:transparent;color:#6d7c8b;cursor:pointer;font:inherit;padding:7px}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.recipe-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px;box-shadow:var(--shadow);min-height:205px;display:flex;flex-direction:column}.recipe-card h3{margin:12px 0 6px;font-size:18px}.recipe-card p{margin:0;color:var(--muted);font-size:13px}.recipe-card .recipe-foot{margin-top:auto;padding-top:15px;display:flex;justify-content:space-between;align-items:center}.shopping{margin-top:20px}.shopping-list{margin-top:13px;color:#536373;white-space:pre-line}.meal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.meal-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:var(--shadow)}.meal-card h2{font-size:18px;margin:0 0 3px}.meal-card p{font-size:13px;color:var(--muted);min-height:40px}.meal-card button{width:100%}.body-panel{margin:18px 0}.body-panel>h2{margin:0 0 15px;font-size:18px}.form-row{display:flex;gap:15px}.form-row label{flex:1}label{display:grid;gap:7px;color:#536373;font-size:13px}input,select,textarea{border:1px solid #ccd7e1;border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:16px;min-height:43px;padding:9px}textarea{min-height:78px;resize:vertical}.body-panel textarea{width:100%;margin:10px 0}.date-control{display:flex;align-items:center;gap:8px}.date-control input{padding:5px;min-height:36px}dialog{width:min(600px,calc(100% - 28px));border:0;border-radius:14px;box-shadow:0 25px 70px rgba(12,35,52,.28);padding:0}dialog::backdrop{background:rgba(15,35,51,.35)}dialog form{padding:22px}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{margin:0;font-size:20px}.dialog-head .icon-button{display:block;background:transparent;font-size:25px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-grid .full{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}#toast{position:fixed;z-index:5;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:#17364c;color:#fff;padding:10px 16px;border-radius:8px;opacity:0;transition:.25s;font-size:14px}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:900px){.overview-grid{grid-template-columns:repeat(2,1fr)}.recipe-grid{grid-template-columns:repeat(2,1fr)}.meal-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.sidebar{transform:translateX(-100%);transition:.2s;width:260px;box-shadow:5px 0 20px rgba(0,0,0,.08)}.sidebar.open{transform:translateX(0)}main{margin-left:0}.topbar{height:88px;padding:14px 20px}.topbar h1{font-size:20px}.icon-button{display:block}.page{padding:25px 16px 44px}.date-row{align-items:flex-start;gap:10px}.tag{display:none}.content-grid{grid-template-columns:1fr}.section-intro h1{font-size:22px}.section-intro{align-items:flex-end}.section-intro .primary-button{padding:0 11px;white-space:nowrap}.item{grid-template-columns:25px 1fr}.actions{grid-column:2}.form-row{display:grid;gap:10px}.recipe-grid{grid-template-columns:1fr}.meal-grid{grid-template-columns:1fr 1fr}.panel{padding:17px}}
@media(max-width:340px){body{font-size:14px}.overview-grid{gap:10px}.metric-card{padding:14px;min-height:124px}.metric-card strong{font-size:26px}.meal-grid{grid-template-columns:1fr}.section-intro{display:block}.section-intro .primary-button{margin-top:12px}.quick-actions{display:grid}.quick-actions button{width:100%}.item{padding:13px}.topbar p{font-size:12px}}
