:root{color:#eaf2f8;font-synthesis:none;text-rendering:optimizelegibility;--bg:#081119;--panel:#101c26;--panel2:#152430;--line:#263a48;--text:#edf5fa;--muted:#94a9b7;--accent:#78d8c7;--accent2:#d4ff78;--danger:#ff8b8b;--shadow:0 18px 50px #00000040;background:#081119;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-width:320px;height:100%;min-height:100%;margin:0}body{overflow-x:hidden}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:var(--panel2);color:var(--text);cursor:pointer;border-radius:12px;padding:10px 14px;font-weight:750}button:hover{border-color:#4e6e80}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#0c1720;border-radius:12px;outline:none;padding:12px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #78d8c71f}textarea{resize:vertical;min-height:100px}a{color:var(--accent);font-weight:700}h1,h2,h3,p{margin-top:0}.primary{background:var(--accent);color:#09221e;border-color:#0000}.ghost{background:0 0}.dangerText{color:var(--danger);background:0 0}.textButton{color:var(--muted);background:0 0;border:0;padding:2px 6px}.eyebrow{letter-spacing:.18em;color:var(--accent);margin:0 0 6px;font-size:11px;font-weight:900}.muted{color:var(--muted)}.version{color:var(--muted);font-size:12px}.field{gap:6px;display:grid}.field>span{color:#c4d3dd;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:850}.field small{color:var(--muted);font-size:11px}.stack{gap:14px;display:grid}.formGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.formGrid>.recurrenceBox,.formGrid>.notice,.formGrid>.formActions,.formGrid>button{grid-column:1/-1}.formGrid>.field:has(textarea){grid-column:1/-1}.formActions{justify-content:flex-end;gap:10px;display:flex}.inlineFields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.check{align-items:center;gap:9px;font-weight:750;display:flex}.check input{width:auto}.notice{border:1px solid var(--line);border-radius:12px;max-width:1100px;margin:10px auto;padding:12px 14px}.notice.error{color:#ffd6d6;background:#2c171a;border-color:#743840}.notice.success{color:#cffff0;background:#102a23;border-color:#2d6959}.loading,.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:16px;padding:24px}.logo{width:52px;height:52px;box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow);background:linear-gradient(145deg,#152732,#0c171f);border-radius:16px;flex:none;place-items:center;padding:0;display:grid}.logo span{border:2px solid var(--accent);letter-spacing:.08em;width:34px;height:34px;color:var(--accent2);border-radius:50%;place-items:center;font-size:11px;display:grid}.loginPage{background:radial-gradient(circle at top left,#17313a 0,transparent 38%),radial-gradient(circle at bottom right,#1b2a18 0,transparent 35%),var(--bg);place-items:center;min-height:100%;padding:24px;display:grid}.loginCard{border:1px solid var(--line);width:min(430px,100%);box-shadow:var(--shadow);background:#0f1c26f0;border-radius:26px;gap:20px;padding:28px;display:grid}.loginCard h1{margin-bottom:6px;font-size:38px}.loginCard p{color:var(--muted)}.loginCard form{gap:14px;display:grid}.app{background:var(--bg);height:100%;min-height:100%;color:var(--text);grid-template-rows:auto 1fr;display:grid}.app.light{--bg:#f4f7f8;--panel:#fff;--panel2:#f7fafb;--line:#d5dfe5;--text:#12212a;--muted:#61717c;--shadow:0 14px 34px #2337431f;background:var(--bg)}.appHeader{height:74px;padding:10px max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:30;background:#081119f0;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.light .appHeader{background:#fffffff0}.calendarTitle{text-align:center;min-width:0}.calendarTitle h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:clamp(20px,3vw,30px);overflow:hidden}.calendarTitle span{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px;display:block}.headerActions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.signinButton{background:0 0;min-height:46px;padding:10px 16px}.hamburger{align-content:center;gap:5px;width:52px;height:52px;padding:12px;display:grid}.hamburger i{background:currentColor;border-radius:3px;height:2px;display:block}.menuPanel{z-index:50;background:var(--panel);border:1px solid var(--line);width:min(360px,100vw - 24px);box-shadow:var(--shadow);border-radius:20px;position:fixed;top:82px;right:12px;overflow:hidden}.menuPanel nav{grid-template-columns:1fr 1fr;gap:8px;padding:12px;display:grid}.menuPanel nav button{text-align:left}.menuPanel nav button.active{background:var(--accent);color:#08211d;border-color:#0000}.menuPanel footer{border-top:1px solid var(--line);gap:8px;padding:12px;display:grid}.menuPanel footer span,.menuPanel footer small{color:var(--muted);font-size:12px}.calendarShell{grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;padding:12px 14px 14px;display:grid}.calendarToolbar{grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;padding:2px 0 10px;display:grid}.calendarToolbar>div{text-align:center}.calendarToolbar h2{margin:0;font-size:clamp(20px,3vw,28px)}.weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding-bottom:6px;display:grid}.weekdays span{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:850}.monthGrid{grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-height:0;display:grid}.dayCell{text-align:left;background:var(--panel);border-radius:14px;flex-direction:column;align-items:stretch;min-width:0;min-height:0;padding:7px;display:flex;overflow:hidden}.dayCell.outside{opacity:.42}.dayCell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.dayNo{font-size:13px;font-weight:900}.dayEvents{gap:3px;min-width:0;margin-top:5px;display:grid}.dayChip{white-space:nowrap;text-overflow:ellipsis;background:#263642;border-left:3px solid #7991a1;border-radius:7px;padding:4px 5px;font-size:10px;line-height:1.2;display:block;overflow:hidden}.dayChip.blue,.agendaCard.blue{border-left-color:#6bb7ff}.dayChip.green,.agendaCard.green{border-left-color:#69dcab}.dayChip.amber,.agendaCard.amber{border-left-color:#f4c45f}.dayChip.rose,.agendaCard.rose{border-left-color:#f18c9b}.dayChip.violet,.agendaCard.violet{border-left-color:#b99bff}.dayEvents small{color:var(--muted);font-size:9px}.compact .dayChip{padding:2px 4px;font-size:9px}.modalShade{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#02070bbd;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(620px,100%);max-height:min(88vh,900px);box-shadow:var(--shadow);border-radius:24px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.modal.wide{width:min(940px,100%)}.modal>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal>header h2{margin:0;font-size:22px}.iconButton{border-radius:50%;width:42px;height:42px;padding:0;font-size:24px}.modalBody{padding:20px;overflow:auto}.authTabs{border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px;padding:4px;display:grid}.authTabs button{border:0}.authTabs button.active{background:var(--accent);color:#08211d}.subscriptionFoundation{border:1px solid var(--line);background:var(--panel2);border-radius:14px;gap:4px;padding:12px 14px;display:grid}.subscriptionFoundation span{color:var(--muted);font-size:12px}.dayAgenda{gap:22px;display:grid}.dayActions{flex-wrap:wrap;gap:10px;display:flex}.dayAgenda section h3{margin-bottom:10px}.agendaCard,.mealCard,.listCards article{border:1px solid var(--line);background:var(--panel2);border-left:5px solid #718695;border-radius:15px;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:8px;padding:13px;display:flex}.agendaCard>div:first-child,.mealCard>div:first-child,.listCards article>div:first-child{gap:3px;min-width:0;display:grid}.agendaCard span,.mealCard span,.listCards span{color:var(--muted);font-size:12px}.agendaCard p{color:#c8d6df;margin:5px 0}.agendaCard.done{opacity:.58}.agendaCard.done b{text-decoration:line-through}.cardActions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.cardActions button{padding:7px 9px;font-size:12px}.compactList{gap:7px;display:grid}.compactList span{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13px;display:block}.compactList span.checked{opacity:.55;text-decoration:line-through}.recurrenceBox{border:1px solid var(--line);border-radius:14px;padding:13px}.weekdayChecks{grid-column:1/-1;gap:6px;display:flex}.weekdayChecks label{border:1px solid var(--line);border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.weekdayChecks input{width:auto}.modePage{padding:24px max(18px,4vw) max(40px,env(safe-area-inset-bottom));background:var(--bg);overflow:auto}.modeIntro{max-width:900px;margin:0 auto 20px}.modeIntro h1{margin-bottom:6px;font-size:clamp(30px,5vw,52px)}.modeIntro>p:last-child{color:var(--muted);max-width:720px}.panel{border:1px solid var(--line);background:var(--panel);border-radius:20px;max-width:1100px;margin:0 auto 18px;padding:18px;box-shadow:0 8px 24px #00000017}.panel.compact{padding:14px}.panel h2,.panel h3{margin-bottom:12px}.twoCol{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:18px;max-width:1180px;margin:0 auto;display:grid}.twoCol>.panel{width:100%;margin:0}.listCards{gap:8px;display:grid}.listCards article{margin:0}.toolbar{flex-wrap:wrap;align-items:end;gap:12px;max-width:1100px;margin:0 auto 16px;display:flex}.toolbar .field{min-width:190px}.segmented{border:1px solid var(--line);border-radius:14px;gap:4px;padding:4px;display:flex}.segmented button{border:0}.segmented button.active{background:var(--accent);color:#08211d}.shoppingSummary{max-width:1100px;color:var(--muted);justify-content:space-between;gap:10px;margin:0 auto 12px;font-size:13px;display:flex}.shoppingItems{gap:7px;max-width:1100px;margin:0 auto;display:grid}.shoppingItems article{border:1px solid var(--line);background:var(--panel);border-radius:14px;grid-template-columns:42px minmax(0,1fr) 90px 50px;align-items:center;gap:10px;padding:10px;display:grid}.shoppingItems article>div{display:grid}.shoppingItems small{color:var(--muted)}.shoppingItems article.checked b{opacity:.6;text-decoration:line-through}.checkButton{width:38px;height:38px;padding:0}.checkButton.on{background:var(--accent);color:#09221e}.inlineAdd{grid-template-columns:minmax(0,1fr) 100px auto;gap:8px;max-width:1100px;margin:14px auto 0;display:grid}.futureTag{color:#ffe99d;background:#2d2a16;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:850;display:inline-block}.adminOverlay{z-index:200;color:var(--text);background:#070d12;position:fixed;inset:0;overflow:auto}.adminTop{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#070d12f2;justify-content:space-between;align-items:center;gap:12px;padding:16px max(18px,4vw);display:flex;position:sticky;top:0}.adminTop h1{margin:0}.adminTop>div:last-child{align-items:center;gap:10px;display:flex}.adminPage{padding:22px max(18px,4vw) 50px}.statGrid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;max-width:1180px;margin:0 auto 18px;display:grid}.statGrid article{border:1px solid var(--line);background:var(--panel);border-radius:16px;gap:5px;padding:14px;display:grid}.statGrid span{color:var(--muted);text-transform:uppercase;font-size:11px}.statGrid b{font-size:22px}.tableWrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px}th{text-transform:uppercase;color:var(--muted);font-size:11px}.reportRows{gap:8px;display:grid}.reportRows span{border:1px solid var(--line);border-radius:10px;justify-content:space-between;gap:12px;padding:10px;display:flex}@media (width<=900px){.twoCol{grid-template-columns:1fr}.statGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.formGrid{grid-template-columns:1fr}.inlineFields{grid-template-columns:1fr 1fr}.dayChip{font-size:9px}.calendarShell{padding-left:8px;padding-right:8px}.monthGrid,.weekdays{gap:4px}}@media (width<=620px){.appHeader{grid-template-columns:48px minmax(0,1fr) auto;height:68px}.signinButton{min-height:42px;padding:8px 10px;font-size:12px}.logo,.hamburger{border-radius:14px;width:46px;height:46px}.calendarTitle span{display:none}.calendarShell{padding:8px 5px 7px}.calendarToolbar{grid-template-columns:40px minmax(0,1fr) 40px;padding-bottom:5px}.calendarToolbar button{padding:8px}.weekdays,.monthGrid{gap:2px}.dayCell{border-radius:9px;padding:4px}.dayNo{font-size:11px}.dayChip{border-left-width:2px;padding:2px 3px;font-size:8px}.dayEvents{gap:2px;margin-top:2px}.dayEvents small{font-size:8px}.modalShade{align-items:end;padding:8px}.modal{border-radius:22px 22px 8px 8px;max-height:92vh}.modal>header,.modalBody{padding:14px}.formGrid{gap:11px}.inlineFields{grid-template-columns:1fr}.formActions{background:linear-gradient(180deg,transparent,var(--panel) 20%);padding-top:20px;position:sticky;bottom:-14px}.agendaCard,.mealCard,.listCards article{flex-direction:column}.cardActions{justify-content:stretch;width:100%}.cardActions button{flex:1}.modePage{padding:18px 12px 36px}.modeIntro h1{font-size:34px}.panel{border-radius:16px;padding:14px}.statGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.shoppingItems article{grid-template-columns:38px minmax(0,1fr) 70px}.shoppingItems article>span:last-child{display:none}.inlineAdd{grid-template-columns:minmax(0,1fr) 78px}.inlineAdd button{grid-column:1/-1}.menuPanel nav{grid-template-columns:1fr 1fr}.adminTop{align-items:flex-start}.adminTop>div:last-child{flex-direction:column;align-items:flex-end}}@media (width<=390px){.calendarTitle h1{font-size:18px}.dayChip{display:none}.dayCell:has(.dayChip):after{content:"•";color:var(--accent);font-size:16px;line-height:12px}.dayEvents small{display:none}.menuPanel nav{grid-template-columns:1fr}.statGrid{grid-template-columns:1fr 1fr}}
