:root{--bg: #070914;--surface: #101228;--surface2:#15183a;--border: rgba(255,255,255,.16);--text: #f3f4ff;--muted: rgba(243,244,255,.78);--muted2: rgba(243,244,255,.62);--primary: #c084fc;--primary2:#60a5fa;--danger:#ff6b6b;--shadow: 0 16px 44px rgba(0,0,0,.42);--radius: 16px;--radius2: 12px;--focus: 0 0 0 3px rgba(192,132,252,.32);color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.35}:root[data-theme=pink]{--bg: #fff7e0;--surface: #ffffff;--surface2:#fff0c2;--border: rgba(20,20,26,.16);--text: #14161c;--muted: rgba(20,22,28,.78);--muted2: rgba(20,22,28,.62);--primary: #c2185b;--primary2:#ad1457;--danger:#b42318;--shadow: 0 12px 32px rgba(20,22,28,.14);--focus: 0 0 0 3px rgba(194,24,91,.18);color-scheme:light}:root[data-theme=green]{--bg: #fff7b8;--surface: #ffffff;--surface2:#fff2a3;--border: rgba(20,20,26,.16);--text: #14161c;--muted: rgba(20,22,28,.78);--muted2: rgba(20,22,28,.62);--primary: #1b5e20;--primary2:#2e7d32;--danger:#b42318;--shadow: 0 12px 32px rgba(20,22,28,.14);--focus: 0 0 0 3px rgba(27,94,32,.18);color-scheme:light}:root[data-theme=red]{--bg: #ffffff;--surface: #ffffff;--surface2:#f6f7fb;--border: rgba(20,20,26,.16);--text: #111217;--muted: rgba(17,18,23,.78);--muted2: rgba(17,18,23,.62);--primary: #c1121f;--primary2:#9b111e;--danger:#b42318;--shadow: 0 10px 26px rgba(17,18,23,.1);--focus: 0 0 0 3px rgba(193,18,31,.18);color-scheme:light}:root[data-theme=patriotic]{--bg: #f7f9ff;--surface: #ffffff;--surface2:#eef2ff;--border: rgba(20,20,26,.16);--text: #0f172a;--muted: rgba(15,23,42,.78);--muted2: rgba(15,23,42,.62);--primary: #1d4ed8;--primary2:#c1121f;--danger:#b42318;--shadow: 0 12px 28px rgba(15,23,42,.1);--focus: 0 0 0 3px rgba(29,78,216,.18);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%}a{color:inherit;text-decoration:none}body{background:radial-gradient(1200px 700px at 15% -10%,rgba(192,132,252,.18),transparent 60%),radial-gradient(900px 600px at 85% -20%,rgba(96,165,250,.14),transparent 60%),var(--bg);color:var(--text);min-height:calc(var(--vh, 1vh) * 100)}:root[data-theme=pink] body{background:radial-gradient(1000px 600px at 10% -10%,rgba(194,24,91,.12),transparent 60%),radial-gradient(900px 600px at 90% 0%,rgba(255,240,194,.75),transparent 60%),var(--bg)}:root[data-theme=green] body{background:radial-gradient(1000px 600px at 10% -10%,rgba(27,94,32,.1),transparent 60%),radial-gradient(900px 600px at 90% 0%,rgba(255,242,163,.75),transparent 60%),var(--bg)}:root[data-theme=red] body{background:radial-gradient(1000px 600px at 15% -10%,rgba(193,18,31,.1),transparent 60%),radial-gradient(900px 600px at 90% 0%,rgba(246,247,251,.95),transparent 60%),var(--bg)}:root[data-theme=patriotic] body{background:radial-gradient(1000px 600px at 15% -10%,rgba(29,78,216,.1),transparent 60%),radial-gradient(900px 600px at 90% 0%,rgba(193,18,31,.08),transparent 60%),var(--bg)}.app{min-height:calc(var(--vh, 1vh) * 100);display:flex;flex-direction:column}.container{max-width:1200px;margin:0 auto;padding:14px}.header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}:root[data-theme=pink] .header,:root[data-theme=red] .header,:root[data-theme=green] .header,:root[data-theme=patriotic] .header{background:color-mix(in srgb,var(--bg) 84%,transparent)}.headerInner{display:flex;gap:10px;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:8px}.main{width:100%;flex:1}.mainInner{padding-top:14px;padding-bottom:18px}.desktopNav{display:block}.mobileNav,.mobileSafeArea{display:none}.skipLink{position:absolute;left:-999px;top:10px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--border);z-index:1000}.skipLink:focus{left:10px;outline:none;box-shadow:var(--focus)}.brandLeft{display:flex;gap:10px;align-items:center;min-width:0}.brandMark{display:flex;align-items:center;gap:10px;min-width:0}.brandAppIcon{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);box-shadow:0 10px 24px #00000040;flex:0 0 auto}.brandWordBlock{min-width:0}.brandWordRow{display:flex;align-items:center}.brandWordImg{height:31px;width:auto;max-width:100%;display:block}.brandSubtitle{font-size:12px;color:var(--muted);margin-top:3px}.logoDot{width:12px;height:12px;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:0 0 20px color-mix(in srgb,var(--primary) 40%,transparent);flex:0 0 auto}.brandTitle{font-size:18px;font-weight:900;letter-spacing:.3px;white-space:nowrap}.brandSub{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.headerBadges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.headerActions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.mobileOnly{display:none}.authWrap{position:relative}.menuCard{position:absolute;right:0;top:calc(100% + 8px);width:280px;padding:12px;z-index:100;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.menuSection{display:flex;flex-direction:column;gap:8px}.menuSectionTitle{font-size:12px;font-weight:950;letter-spacing:.2px;color:var(--muted)}.menuItem{width:100%;text-align:left;padding:10px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-weight:850;cursor:pointer}.menuItem:hover{background:color-mix(in srgb,var(--surface2) 88%,var(--bg))}.menuItem:active{transform:translateY(1px)}.themeSelect{display:flex;gap:8px;align-items:center}.themeSelect label{font-size:12px;font-weight:900;color:var(--muted)}.themeSelect select{width:180px}.navRow{display:flex;gap:8px;overflow-x:auto;padding:8px 14px 12px;scrollbar-width:none}.navRow::-webkit-scrollbar{display:none}@media (min-width: 560px){.navRow{overflow-x:visible;flex-wrap:wrap}}.navLink{flex:0 0 auto;white-space:nowrap;padding:10px 12px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--text);font-weight:850;font-size:14px;display:flex;align-items:center;gap:8px}.navIcon,.navLabel{display:inline-flex}.navLinkActive{border-color:color-mix(in srgb,var(--primary) 70%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 26%,transparent),color-mix(in srgb,var(--primary2) 16%,transparent))}@media (max-width: 640px){body{overflow:hidden}.app{height:calc(var(--vh, 1vh) * 100)}.main{overflow:auto;-webkit-overflow-scrolling:touch}.desktopOnly{display:none!important}.mobileOnly{display:inherit!important}.brandSub,.headerBadges{display:none}.headerInner{padding-top:10px;padding-bottom:6px}.container{padding:12px}.mainInner{padding-top:12px;padding-bottom:10px}.button{padding:12px 14px;font-size:15px}.input,.select,.textarea{padding:12px;font-size:16px}.desktopNav{display:none}.mobileNav{display:block;position:sticky;bottom:0;z-index:60;border-top:1px solid var(--border);background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding-bottom:env(safe-area-inset-bottom)}.navRow{justify-content:space-between;gap:10px;padding:10px 10px 12px}.navLink{flex:1;text-align:center;padding:12px 8px;font-size:12px;border-radius:14px;flex-direction:column;gap:4px}.navIcon svg{width:24px;height:24px}.mobileSafeArea{display:none;height:0}.themeSelect select{width:170px}.mealLibraryPanel.isSticky{top:122px}.menuCard{position:fixed;top:64px;left:12px;right:12px;width:auto;max-width:520px;margin:0 auto;max-height:calc((var(--vh, 1vh) * 100) - 92px);overflow:auto}}.pageTitle{font-size:20px;font-weight:950;margin:0 0 6px}.sectionTitle,.cardTitle{font-size:18px;font-weight:900;margin:0 0 6px}.muted{color:var(--muted)}.small{font-size:13px}label.small{display:block;color:var(--text);font-weight:850;letter-spacing:.1px}.card{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--surface);box-shadow:var(--shadow)}.cardLite{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:color-mix(in srgb,var(--surface) 96%,transparent)}.cardSubtle{margin-top:10px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.notice{background:var(--surface2);border:1px solid var(--border);border-left:6px solid var(--primary);border-radius:var(--radius);padding:10px 12px;font-weight:700}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.hr{border:0;border-top:1px solid var(--border);margin:14px 0}.button{border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--text);padding:10px 12px;border-radius:999px;cursor:pointer;font-weight:900;font-size:14px}.button:hover{border-color:color-mix(in srgb,var(--text) 22%,var(--border));background:color-mix(in srgb,var(--surface) 96%,transparent)}.button:focus-visible{outline:none;box-shadow:var(--focus)}.buttonPrimary{border-color:color-mix(in srgb,var(--primary) 78%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 28%,transparent),color-mix(in srgb,var(--primary2) 18%,transparent))}.buttonPrimary:hover{border-color:color-mix(in srgb,var(--primary) 92%,var(--border))}.buttonDanger{border-color:color-mix(in srgb,var(--danger) 70%,var(--border));background:color-mix(in srgb,var(--danger) 14%,transparent);color:color-mix(in srgb,var(--danger) 92%,var(--text))}.buttonDanger:hover{border-color:color-mix(in srgb,var(--danger) 90%,var(--border));background:color-mix(in srgb,var(--danger) 18%,transparent)}.button:disabled{opacity:.55;cursor:not-allowed}.iconBtn{border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);border-radius:999px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:900}.iconBtn:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--border))}.iconBtn:focus-visible{outline:none;box-shadow:var(--focus)}.input,.select,.textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:10px 12px;font-size:14px;background:var(--surface2);color:var(--text)}:root[data-theme=pink] .input,:root[data-theme=pink] .select,:root[data-theme=pink] .textarea,:root[data-theme=green] .input,:root[data-theme=green] .select,:root[data-theme=green] .textarea,:root[data-theme=red] .input,:root[data-theme=red] .select,:root[data-theme=red] .textarea,:root[data-theme=patriotic] .input,:root[data-theme=patriotic] .select,:root[data-theme=patriotic] .textarea{background:#fff}.input::placeholder,.textarea::placeholder{color:var(--muted2)}.input:focus,.select:focus,.textarea:focus{outline:none;box-shadow:var(--focus);border-color:color-mix(in srgb,var(--primary) 60%,var(--border))}.textarea{resize:vertical}.grid2{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 760px){.grid2{grid-template-columns:1fr 1fr}}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}.table th{color:var(--muted);font-size:12px;font-weight:950;letter-spacing:.25px}.badge{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--muted);background:color-mix(in srgb,var(--surface) 92%,transparent)}.dayCard{position:relative;overflow:hidden}.dayShade0{background:color-mix(in srgb,var(--surface) 92%,var(--primary) 8%)}.dayShade1{background:color-mix(in srgb,var(--surface) 92%,var(--primary2) 8%)}.dayShade2{background:color-mix(in srgb,var(--surface) 88%,var(--primary) 12%)}.dayShade3{background:color-mix(in srgb,var(--surface) 88%,var(--primary2) 12%)}.dayShade4{background:color-mix(in srgb,var(--surface2) 90%,var(--primary) 10%)}.dayShade5{background:color-mix(in srgb,var(--surface2) 90%,var(--primary2) 10%)}.dayShade6{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,var(--primary) 8%),color-mix(in srgb,var(--surface2) 92%,var(--primary2) 8%))}.dayGrid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 980px){.dayGrid{grid-template-columns:1fr 1fr}}.slot{border:1px solid var(--border);border-radius:var(--radius2);padding:10px;background:color-mix(in srgb,var(--surface) 92%,transparent)}.slotTitle{font-weight:950;display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.pillRow{display:flex;flex-wrap:wrap;gap:8px}.pill{display:inline-flex;gap:10px;align-items:center;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 96%,transparent);border-radius:999px;padding:8px 10px}.pillX{border:0;background:transparent;cursor:pointer;font-weight:950;color:var(--danger)}.pillX:focus-visible{outline:none;box-shadow:var(--focus);border-radius:8px}.pillName{font-size:14px}.pillMissing{color:var(--muted2);font-style:italic}.topControls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;justify-content:space-between}.addRow{display:flex;gap:8px;align-items:center;margin-top:8px}.addRow select{flex:1;min-width:180px}.plannerLayout{display:grid;grid-template-columns:1fr;gap:12px}.plannerLayoutSingle{grid-template-columns:1fr}@media (min-width: 980px){.plannerLayout{grid-template-columns:320px 1fr;align-items:start}.plannerLayoutSingle{grid-template-columns:1fr}}.mealLibraryPanel{position:static}.mealLibraryPanel.isSticky{position:sticky;top:128px}.mealLibraryListWrap{max-height:230px;overflow:auto;padding-right:4px}.mealList{display:grid;gap:8px}.dragItem{border:1px solid var(--border);border-radius:var(--radius2);background:color-mix(in srgb,var(--surface) 96%,transparent);padding:10px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.dragItem:hover{border-color:color-mix(in srgb,var(--primary) 46%,var(--border));background:color-mix(in srgb,var(--surface) 100%,transparent)}.dragItem:active{cursor:grabbing}.dragItemSub{margin-top:4px;color:var(--muted)}.dropActive{outline:2px solid color-mix(in srgb,var(--primary) 78%,transparent);outline-offset:2px}.dragOverlay{border:2px solid color-mix(in srgb,var(--primary) 78%,transparent);border-radius:var(--radius2);background:color-mix(in srgb,var(--surface2) 96%,transparent);padding:10px;box-shadow:var(--shadow)}.libraryPill{width:100%;justify-content:space-between;padding:6px 10px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.libraryPill:active{cursor:grabbing}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;padding:18px}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;border:none}:root[data-theme=pink] .modalBackdrop,:root[data-theme=green] .modalBackdrop,:root[data-theme=red] .modalBackdrop,:root[data-theme=patriotic] .modalBackdrop{background:#0f172a33}.modalCard{position:relative;width:min(760px,100%);max-height:min(84vh,900px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.segmented{display:flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:#ffffff0f}:root[data-theme=pink] .segmented,:root[data-theme=green] .segmented,:root[data-theme=red] .segmented,:root[data-theme=patriotic] .segmented{background:#0000000a}.segBtn{border:none;padding:8px 12px;background:transparent;color:var(--text);font-weight:800;cursor:pointer}.segBtnActive{background:var(--surface2)}.segBtn:hover{background:#ffffff14}:root[data-theme=pink] .segBtn:hover,:root[data-theme=green] .segBtn:hover,:root[data-theme=red] .segBtn:hover,:root[data-theme=patriotic] .segBtn:hover{background:#0000000f}.input:-webkit-autofill,.textarea:-webkit-autofill,.select:-webkit-autofill,input:-webkit-autofill,textarea:-webkit-autofill,select:-webkit-autofill{-webkit-text-fill-color:var(--text)!important;box-shadow:0 0 0 1000px var(--surface2) inset!important;border:1px solid var(--border);transition:background-color 9999s ease-out 0s}:root[data-theme=pink] input:-webkit-autofill,:root[data-theme=pink] textarea:-webkit-autofill,:root[data-theme=pink] select:-webkit-autofill,:root[data-theme=green] input:-webkit-autofill,:root[data-theme=green] textarea:-webkit-autofill,:root[data-theme=green] select:-webkit-autofill,:root[data-theme=red] input:-webkit-autofill,:root[data-theme=red] textarea:-webkit-autofill,:root[data-theme=red] select:-webkit-autofill,:root[data-theme=patriotic] input:-webkit-autofill,:root[data-theme=patriotic] textarea:-webkit-autofill,:root[data-theme=patriotic] select:-webkit-autofill{-webkit-text-fill-color:var(--text)!important;box-shadow:0 0 0 1000px #fff inset!important}
