:root,[data-theme=light]{--bg: #fafaf9;--panel: #ffffff;--panel-elev: #ffffff;--text: #0a0a0a;--muted: #6b6b6b;--border: #e7e5e4;--border-strong: #d4d4d4;--accent: #0a0a0a;--accent-fg: #ffffff;--hover: #f5f5f4;--good: #15803d;--bad: #b91c1c;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .04);--ring: rgba(10, 10, 10, .18);color-scheme:light}[data-theme=dark]{--bg: #0d0d0d;--panel: #161616;--panel-elev: #1c1c1c;--text: #f5f5f4;--muted: #a1a1a1;--border: #2a2a2a;--border-strong: #3a3a3a;--accent: #f5f5f4;--accent-fg: #0a0a0a;--hover: #1f1f1f;--good: #4ade80;--bad: #f87171;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);--ring: rgba(245, 245, 244, .22);color-scheme:dark}*{box-sizing:border-box}html,body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-feature-settings:"cv11","ss01";font-optical-sizing:auto}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .18s ease,color .18s ease;line-height:1.55;font-size:15px}h1,h2,h3,h4{font-family:Fraunces,Georgia,Times New Roman,serif;font-weight:500;letter-spacing:-.01em;line-height:1.2}p{margin:0 0 .75rem}strong{font-weight:600}a{color:var(--text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:.5rem .625rem;transition:border-color .12s ease,box-shadow .12s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.app{max-width:760px;margin:0 auto;padding:2rem 1.25rem 5rem}@media (max-width: 520px){.app{padding:1rem .75rem 4rem}.app h1{font-size:1.5rem}.panel{padding:1rem .9rem;border-radius:6px}.widget{padding:.85rem .9rem;border-radius:10px}}.app-header{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 1.5rem}.app h1{font-size:1.85rem;margin:0}.muted{color:var(--muted)}.tabs{display:flex;flex-wrap:wrap;gap:.125rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem}.tabs button{background:none;border:0;padding:.625rem .875rem;border-bottom:2px solid transparent;color:var(--muted);font-size:.92rem;font-weight:500;letter-spacing:.005em;border-radius:4px 4px 0 0;transition:color .12s ease,background-color .12s ease,border-color .12s ease;margin-bottom:-1px}.tabs button:hover{color:var(--text);background:var(--hover)}.tabs button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow)}.panel>strong:first-child{display:block;font-size:.95rem;letter-spacing:.01em;margin-bottom:.25rem}.row{display:flex;align-items:center;gap:.75rem;padding:.625rem 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.row .name{flex:1}.row .meta{color:var(--muted);font-size:.82rem;letter-spacing:.01em}.row.done .name{text-decoration:line-through;color:var(--muted)}button{font-weight:500;letter-spacing:.005em;transition:background-color .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.panel button:not(.icon-btn):not([data-variant=ghost]){background:var(--accent);color:var(--accent-fg);border:1px solid var(--accent);border-radius:6px;padding:.5rem .95rem}.panel button:not(.icon-btn):not([data-variant=ghost]):hover:not(:disabled){filter:brightness(.92)}.panel button:disabled{opacity:.55;cursor:not-allowed}.energy-buttons{display:flex;gap:.5rem}.energy-buttons button{flex:1;padding:.65rem;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;font-weight:500}.energy-buttons button:hover{background:var(--hover)}.energy-buttons button.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.icon-btn{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:.25rem .55rem;font-size:.8rem;color:var(--muted)}.icon-btn:hover{color:var(--text);background:var(--hover);border-color:var(--border-strong)}.chat{display:flex;flex-direction:column;height:520px}.chat .messages{flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:.875rem;background:var(--bg);margin-bottom:.5rem}.chat .msg{margin-bottom:.6rem;line-height:1.5}.chat .msg.user{color:var(--text);font-weight:500}.chat .msg.assistant{color:var(--muted)}.chat .input{display:flex;gap:.5rem}.chat input[type=text]{flex:1}.chat button{padding:.55rem 1rem;border:1px solid var(--accent);background:var(--accent);color:var(--accent-fg);border-radius:6px;font-weight:500}.chat button:hover:not(:disabled){filter:brightness(.92)}.suggestion-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.suggestion-modal .box{background:var(--panel-elev);padding:1.5rem;border-radius:10px;max-width:480px;width:calc(100% - 2rem);border:1px solid var(--border);box-shadow:0 12px 32px #0000002e}.theme-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--panel);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.35rem .75rem;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.theme-toggle:hover{color:var(--text);border-color:var(--border-strong);background:var(--hover)}table{border-collapse:collapse}th{font-weight:600;letter-spacing:.01em}.widget-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 640px){.widget-grid{grid-template-columns:1fr 1fr}.widget.full-width{grid-column:1 / -1}}.widget{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.55rem}.widget-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.widget-head strong{font-size:.95rem;letter-spacing:.01em}.widget-head .widget-link{color:var(--muted);font-size:.78rem;text-decoration:none;letter-spacing:.02em;background:none;border:0;padding:0;cursor:pointer}.widget-head .widget-link:hover{color:var(--text)}.widget-head .widget-refresh{background:none;border:0;color:var(--muted);font-size:.85rem;padding:0 .15rem;cursor:pointer;line-height:1}.widget-head .widget-refresh:hover{color:var(--text)}.widget-empty{color:var(--muted);font-size:.88rem;padding:.45rem .55rem;border:1px dashed var(--border);border-radius:8px;display:flex;flex-direction:column;gap:.45rem;align-items:flex-start}.widget-empty .empty-cta{background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.3rem .7rem;font-size:.78rem;color:var(--text);text-decoration:none}.widget-empty .empty-cta:hover{background:var(--hover);border-color:var(--border-strong)}@keyframes skeleton-pulse{0%{opacity:.6}50%{opacity:.95}to{opacity:.6}}.skeleton{display:block;background:var(--hover);border-radius:4px;height:.85rem;animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton+.skeleton{margin-top:.5rem}.skeleton.short{width:40%}.skeleton.med{width:65%}.skeleton.long{width:90%}.header-icon{background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.32rem .6rem;font-size:.95rem;line-height:1;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:.3rem}.header-icon:hover,.header-icon.active{color:var(--text);border-color:var(--border-strong);background:var(--hover)}.header-icon.active{font-weight:600}.header-icon-label{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.pill-toggle{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.15rem;gap:.1rem}.pill-toggle button{background:none;border:0;padding:.3rem .85rem;border-radius:999px;color:var(--muted);font-size:.85rem}.pill-toggle button.active{background:var(--accent);color:var(--accent-fg)}.pill-toggle button:hover:not(.active){color:var(--text)}.meal-cal{--mc-cream: #faf6f0;--mc-warm-white: #fffcf7;--mc-terracotta: #c4693a;--mc-terracotta-light: #e8896a;--mc-terracotta-pale: #f5e6de;--mc-sage: #7a9e7e;--mc-sage-light: #d4e6d5;--mc-charcoal: #2e2e2e;--mc-warm-gray: #7a7168;--mc-gold: #d4a853;--mc-gold-pale: #f7edd8;--mc-border: #e8ddd2;--mc-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .04)}[data-theme=dark] .meal-cal{--mc-cream: #1c1a17;--mc-warm-white: #25211c;--mc-charcoal: #f3ece1;--mc-warm-gray: #b8aea1;--mc-border: #3a3329;--mc-terracotta-pale: #3f2a1f;--mc-sage-light: #2a3d2c;--mc-gold-pale: #3d3220;--mc-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3)}.meal-cal{background:var(--mc-cream);border:1.5px solid var(--mc-border);border-radius:16px;padding:1.4rem 1.2rem 1rem;color:var(--mc-charcoal);margin-bottom:1rem;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.meal-cal-head{text-align:center;margin-bottom:1.25rem}.meal-cal-eyebrow{font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--mc-terracotta);margin-bottom:.4rem}.meal-cal-title{font-family:Fraunces,Georgia,Times New Roman,serif;font-size:1.6rem;font-weight:700;line-height:1.1;margin:0 0 .35rem;color:var(--mc-charcoal)}.meal-cal-title em{color:var(--mc-terracotta);font-style:italic}.meal-cal-divider{width:50px;height:2px;background:var(--mc-terracotta);margin:.6rem auto;border-radius:2px}.meal-cal-subtitle{color:var(--mc-warm-gray);font-size:.85rem;font-weight:300}.meal-cal-weeknav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.5rem 0 1rem}.meal-cal-weeknav button{background:var(--mc-warm-white);border:1.5px solid var(--mc-border);border-radius:8px;padding:.4rem .85rem;font-size:.82rem;color:var(--mc-warm-gray);cursor:pointer;transition:all .18s ease}.meal-cal-weeknav button:hover:not(:disabled){border-color:var(--mc-terracotta);color:var(--mc-terracotta)}.meal-cal-weeknav button:disabled{opacity:.4;cursor:not-allowed}.meal-cal-weeknav .meal-cal-weekrange{font-family:Fraunces,Georgia,serif;font-size:1rem;font-weight:500;color:var(--mc-charcoal)}.meal-cal-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem;margin-bottom:1.4rem}.meal-cal-pill{background:var(--mc-warm-white);border:1.5px solid var(--mc-border);border-radius:12px;padding:.7rem .3rem;text-align:center;cursor:pointer;transition:all .18s ease;font-family:inherit;color:inherit}.meal-cal-pill:hover{border-color:var(--mc-terracotta-light);transform:translateY(-2px);box-shadow:0 4px 14px #c4693a1f}.meal-cal-pill.active{background:var(--mc-terracotta);border-color:var(--mc-terracotta);transform:translateY(-3px);box-shadow:0 6px 18px #c4693a47}.meal-cal-pill .pill-day{font-size:.6rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mc-warm-gray)}.meal-cal-pill .pill-num{font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600;color:var(--mc-charcoal);margin:.15rem 0 .35rem}.meal-cal-pill .pill-dot{width:5px;height:5px;border-radius:50%;background:var(--mc-terracotta);margin:0 auto .35rem}.meal-cal-pill .pill-badge{font-size:.58rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.12rem .35rem;border-radius:4px;display:inline-block}.meal-cal-pill .pill-badge.badge-cook{background:var(--mc-terracotta-pale);color:var(--mc-terracotta)}.meal-cal-pill .pill-badge.badge-easy{background:var(--mc-sage-light);color:var(--mc-sage)}.meal-cal-pill .pill-badge.badge-grab{background:var(--mc-gold-pale);color:var(--mc-gold)}.meal-cal-pill.empty{opacity:.5;cursor:default}.meal-cal-pill.empty:hover{transform:none;box-shadow:none}.meal-cal-pill.active .pill-day,.meal-cal-pill.active .pill-num{color:var(--mc-warm-white)}.meal-cal-pill.active .pill-dot{background:#fff9}.meal-cal-pill.active .pill-badge{background:#fff3;color:var(--mc-warm-white)}.meal-cal-recipe{background:var(--mc-warm-white);border:1.5px solid var(--mc-border);border-radius:16px;overflow:hidden}.meal-cal-recipe-head{background:var(--mc-terracotta);padding:1.1rem 1.3rem;position:relative;overflow:hidden}.meal-cal-recipe-head:before{content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:#ffffff12;pointer-events:none}.meal-cal-recipe-head:after{content:"";position:absolute;bottom:-60px;left:30%;width:180px;height:180px;border-radius:50%;background:#ffffff0d;pointer-events:none}.meal-cal-recipe-day{font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:#ffffffbf;margin-bottom:.4rem}.meal-cal-recipe-title{font-family:Fraunces,Georgia,serif;font-size:1.4rem;color:#fff;margin:0 0 .55rem;line-height:1.18}.meal-cal-recipe-meta{display:flex;gap:.5rem;flex-wrap:wrap}.meal-cal-recipe-meta .meta-chip{background:#ffffff2e;border-radius:20px;padding:.2rem .7rem;font-size:.74rem;color:#fff;font-weight:400}.meal-cal-recipe-body{padding:1.2rem 1.3rem;display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}@media (max-width: 600px){.meal-cal-recipe-body{grid-template-columns:1fr;gap:1.1rem}.meal-cal-strip{gap:.3rem}.meal-cal-pill{padding:.55rem .25rem}}.meal-cal-section-label{font-size:.65rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--mc-terracotta);margin-bottom:.55rem}.meal-cal-ing,.meal-cal-steps{list-style:none;padding:0;margin:0}.meal-cal-ing li{font-size:.86rem;color:var(--mc-charcoal);padding:.32rem 0;border-bottom:1px solid var(--mc-border);display:flex;gap:.55rem;align-items:flex-start;line-height:1.4}.meal-cal-ing li:last-child,.meal-cal-steps li:last-child{border-bottom:0}.meal-cal-ing-dot{width:5px;height:5px;border-radius:50%;background:var(--mc-terracotta-light);margin-top:.5rem;flex-shrink:0}.meal-cal-steps li{font-size:.86rem;color:var(--mc-charcoal);padding:.4rem 0;border-bottom:1px solid var(--mc-border);display:flex;gap:.6rem;align-items:flex-start;line-height:1.5}.meal-cal-step-num{font-family:Fraunces,Georgia,serif;font-size:1rem;font-weight:700;color:var(--mc-terracotta);flex-shrink:0;line-height:1.4;width:1.1rem}.meal-cal-note{grid-column:1 / -1;background:var(--mc-gold-pale);border-left:3px solid var(--mc-gold);border-radius:6px;padding:.65rem .85rem;font-size:.82rem;color:var(--mc-charcoal);line-height:1.5}.meal-cal-note strong{color:var(--mc-gold)}.meal-cal-daynav{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.3rem;border-top:1px solid var(--mc-border)}.meal-cal-daynav button{background:none;border:1.5px solid var(--mc-border);border-radius:8px;padding:.35rem .8rem;font-family:inherit;font-size:.8rem;color:var(--mc-warm-gray);cursor:pointer;transition:all .18s ease}.meal-cal-daynav button:hover:not(:disabled){border-color:var(--mc-terracotta);color:var(--mc-terracotta)}.meal-cal-daynav button:disabled{opacity:.35;cursor:default}.meal-cal-daynav .center{font-size:.78rem;color:var(--mc-warm-gray)}.meal-cal-empty{text-align:center;padding:2rem 1rem;color:var(--mc-warm-gray);font-size:.9rem}.meal-cal-admin{background:var(--mc-warm-white);border:1px dashed var(--mc-border);border-radius:10px;padding:.9rem 1rem;margin-top:1rem}.meal-cal-admin summary{cursor:pointer;font-size:.82rem;color:var(--mc-warm-gray);letter-spacing:.04em}.meal-cal-admin summary:hover{color:var(--mc-terracotta)}.meal-cal-admin textarea{width:100%;margin-top:.7rem;background:var(--mc-cream);border:1px solid var(--mc-border);border-radius:6px;padding:.6rem;font-family:ui-monospace,Menlo,monospace;font-size:.78rem;color:var(--mc-charcoal);resize:vertical}.meal-cal-admin .admin-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.meal-cal-admin .admin-row button{background:var(--mc-terracotta);color:#fff;border:1px solid var(--mc-terracotta);border-radius:6px;padding:.4rem .85rem;font-size:.82rem;cursor:pointer}.meal-cal-admin .admin-row button.ghost{background:var(--mc-warm-white);color:var(--mc-warm-gray);border-color:var(--mc-border)}.meal-cal-admin .admin-row button:hover{filter:brightness(.95)}.meal-cal-admin .admin-msg{margin-top:.55rem;font-size:.8rem}.meal-cal-admin .admin-msg.ok{color:var(--mc-sage)}.meal-cal-admin .admin-msg.bad{color:#b91c1c}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--muted)}
