.baby{display:flex;flex-direction:column;gap:12px;padding-bottom:calc(112px + env(safe-area-inset-bottom))}.baby-head{display:flex;flex-direction:column;gap:10px;position:sticky;top:0;z-index:4;background:var(--bg);padding:4px 0 2px;margin-top:-4px}.baby-day{font-weight:700;font-size:.95rem;min-width:88px;text-align:center}.baby-tabs{width:100%}.baby-tabs button{flex:1;min-height:44px}.baby-quick{display:flex;flex-direction:column;gap:8px}.baby-sleep-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.baby-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.baby-btn{min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 6px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--ev, var(--accent)) 35%,var(--border));background:color-mix(in srgb,var(--ev, var(--accent)) 12%,var(--surface));color:color-mix(in srgb,var(--ev, var(--accent)) 62%,var(--text));font-weight:700;line-height:1.15;text-align:center;transition:transform .12s var(--ease),background .15s var(--ease)}.baby-btn:active{transform:scale(.97)}.baby-btn:disabled{opacity:.5}.baby-btn small{font-weight:500;font-size:.7rem;opacity:.75}.baby-btn-main{font-size:.9rem}.baby-grid .baby-btn-main{font-size:.85rem}.baby-btn.wide{flex-direction:row;gap:10px;min-height:72px;background:color-mix(in srgb,var(--ev) 20%,var(--surface));border-color:var(--ev)}.baby-btn.wide .baby-btn-main{font-size:1.1rem}.baby-asleep{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.baby-asleep small{font-weight:500;font-size:.7rem;opacity:.75}.baby-sheet{gap:14px}.baby-type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.baby-type{min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:.72rem;font-weight:600;text-align:center}.baby-type.on{border-color:var(--ev);background:color-mix(in srgb,var(--ev) 16%,var(--surface));color:color-mix(in srgb,var(--ev) 60%,var(--text))}.baby-amount{display:flex;flex-direction:column;gap:10px;align-items:center}.baby-amount-label{font-size:.82rem;font-weight:600;color:var(--text-2);align-self:flex-start}.baby-stepper{display:flex;align-items:center;gap:14px}.baby-step{width:56px;height:56px;border-radius:50%;border:1px solid var(--border-strong);background:var(--surface-2);display:grid;place-items:center;color:var(--text)}.baby-step:active{transform:scale(.94)}.baby-amount-value{font-size:2.6rem;font-weight:800;font-variant-numeric:tabular-nums;min-width:120px;text-align:center;color:var(--ev, var(--accent))}.baby-amount-value small{font-size:.9rem;font-weight:600;margin-left:4px;color:var(--muted)}.baby-oz-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;width:100%}.baby-oz{min-height:52px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);font-weight:700;color:var(--text-2)}.baby-oz.on{border-color:var(--ev, var(--accent));background:color-mix(in srgb,var(--ev, var(--accent)) 16%,var(--surface));color:var(--text)}.baby-huge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.baby-huge{min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--ev) 40%,var(--border));background:color-mix(in srgb,var(--ev) 14%,var(--surface));color:color-mix(in srgb,var(--ev) 62%,var(--text));font-size:1.05rem;font-weight:700}.baby-huge:active{transform:scale(.97)}.baby-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.baby-stat{display:flex;flex-direction:column;gap:1px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--ev);min-width:0}.baby-stat strong{font-size:1.25rem;font-variant-numeric:tabular-nums;line-height:1.1}.baby-stat span{font-size:.74rem;color:var(--muted);font-weight:600}.baby-appts{display:flex;align-items:center;gap:8px;font-size:.85rem;padding:8px 12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--c-child) 10%,var(--surface));color:var(--text-2)}.baby-appts svg{flex:none;color:var(--c-child)}.baby-tl{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px 10px 14px;overflow:hidden}.baby-tl-heads{display:flex;gap:6px;padding-bottom:6px}.baby-tl-head{flex:1;min-width:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}.baby-tl-body{display:flex;gap:6px;position:relative}.baby-tl-gutter{width:54px;flex:none;position:relative}.baby-tl-heads .baby-tl-gutter{width:54px}.baby-tl-hour{position:absolute;right:6px;transform:translateY(-50%);font-size:.66rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.baby-tl-lane{flex:1;min-width:0;position:relative}.baby-tl-line{position:absolute;left:0;right:0;height:1px;background:var(--border)}.baby-tl-now{position:absolute;left:54px;right:0;height:2px;background:var(--accent);z-index:3}.baby-tl-now:before{content:"";position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.baby-block{position:absolute;display:flex;align-items:center;gap:4px;padding:2px 5px;border-radius:6px;font-size:.7rem;font-weight:700;overflow:hidden;text-align:left;min-width:0}.baby-block.ghost{border:1px dashed color-mix(in srgb,var(--ev) 55%,var(--border));background:color-mix(in srgb,var(--ev) 6%,transparent);color:color-mix(in srgb,var(--ev) 70%,var(--muted))}.baby-block.solid{border:1px solid color-mix(in srgb,var(--ev) 45%,transparent);background:color-mix(in srgb,var(--ev) 22%,var(--surface));color:color-mix(in srgb,var(--ev) 62%,var(--text))}.baby-block.solid.running{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ev) 26%,var(--surface)) 0 6px,color-mix(in srgb,var(--ev) 14%,var(--surface)) 6px 12px)}.baby-block svg{flex:none}.baby-block-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.baby-block-time{margin-left:auto;font-weight:500;opacity:.8;flex:none;font-variant-numeric:tabular-nums}.baby-card{display:flex;flex-direction:column;gap:10px}.baby-plan,.baby-logs,.baby-week{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.baby-plan-row,.baby-log-row,.baby-week-row{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;padding:6px 0;background:none;border:none;text-align:left;min-width:0;flex-wrap:wrap}.baby-plan>li+li,.baby-logs>li+li,.baby-week>li+li{border-top:1px solid var(--border)}.baby-log-row:hover,.baby-week-row:hover{background:var(--surface-2)}.baby-plan-icon{width:28px;height:28px;flex:none;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--ev) 16%,var(--surface));color:var(--ev)}.baby-plan-name{font-weight:700;font-size:.9rem;flex:none}.baby-plan-planned{font-size:.8rem;font-variant-numeric:tabular-nums}.baby-log-desc{font-size:.8rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.baby-log-time{font-size:.82rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-2)}.baby-drift{font-size:.8rem;font-weight:700;margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}.baby-drift em{font-style:normal;font-weight:600}.baby-drift.ok{color:#4f9a5c}.baby-drift.warn{color:#c98a2f}.baby-drift.late{color:var(--danger)}.baby-drift.none{color:var(--muted);font-weight:600}@media(prefers-color-scheme:dark){.baby-drift.ok{color:#79c389}.baby-drift.warn{color:#e3ad55}}.baby-week-day{font-weight:700;font-size:.9rem;flex:none;min-width:108px}.baby-week-stats{display:flex;gap:6px;align-items:baseline;font-size:.8rem;color:var(--muted);flex-wrap:wrap}.baby-week-stats b{font-variant-numeric:tabular-nums;font-size:.9rem}.baby-toast{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(var(--bottom-nav) + 12px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);font-size:.88rem;font-weight:600;animation:pop-in .18s var(--ease)}.baby-toast>span{min-width:0;flex:1}.baby-undo{display:flex;align-items:center;gap:5px;flex:none;min-height:44px;padding:0 12px;border-radius:var(--radius-sm);border:none;background:color-mix(in srgb,var(--bg) 22%,transparent);color:inherit;font-weight:700}@media(min-width:640px){.baby-grid{grid-template-columns:repeat(4,1fr)}.baby-toast{left:auto;right:28px;max-width:460px;bottom:28px}}@media(min-width:768px){.baby{padding-bottom:96px}.baby-tabs{width:auto;align-self:flex-start}.baby-toast{bottom:28px}}@media(prefers-reduced-motion:reduce){.baby-btn,.baby-huge,.baby-step,.baby-toast{transition:none;animation:none}}.scheduler.phone .sched-head{gap:8px;padding-bottom:10px}.scheduler.phone .sched-title-row{gap:8px}.scheduler.phone .sched-title{font-size:1.1rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scheduler.phone .segmented{flex:none;padding:2px}.scheduler.phone .segmented button{min-width:0;padding:0 11px;font-size:.82rem}.scheduler.phone .sched-controls{flex-wrap:nowrap;gap:8px}.scheduler.phone .sched-nav{flex:none}.scheduler.phone .sched-controls .chips{flex:1;min-width:0}.scheduler.phone .chip{padding:0 13px;font-size:.86rem}.scheduler.phone .btn.small{padding:0 11px}.agenda{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.agenda-day{display:flex;gap:12px;padding:9px 12px 10px 10px;border-bottom:1px solid var(--border)}.agenda-day.today{background:color-mix(in srgb,var(--accent) 6%,transparent)}.agenda-date{width:42px;flex:none;display:flex;flex-direction:column;align-items:center;padding-top:3px;line-height:1.15}.agenda-date .dow{font-size:.64rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.agenda-date .dom{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}.agenda-day.today .agenda-date .dom{color:var(--accent)}.agenda-items{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.agenda-empty{display:flex;align-items:center;min-height:44px;font-size:.88rem}.agenda-row{display:flex;flex-direction:column;justify-content:center;gap:3px;width:100%;min-height:56px;padding:9px 12px;text-align:left;border:1px solid var(--border);border-left:4px solid var(--ev);border-radius:10px;background:var(--surface-2);color:var(--text)}.agenda-row:active{background:var(--surface-3)}.agenda-row.readonly{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ev) 14%,var(--surface-2)) 0 6px,color-mix(in srgb,var(--ev) 7%,var(--surface-2)) 6px 12px)}.agenda-row-title{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-row-title em{font-style:normal;font-weight:500;color:var(--muted)}.agenda-row-meta{font-size:.82rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduler:not(.phone) .agenda-items{max-width:760px}.scheduler:not(.phone) .agenda-day{padding:10px 16px 11px 14px}.wstrip{display:flex;flex:none;background:var(--surface-2);border-bottom:1px solid var(--border)}.wstrip-day{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:58px;padding:7px 0 6px;border:none;background:transparent;color:var(--text-2)}.wstrip-day .dow{font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.wstrip-day .dom{font-size:.95rem;font-weight:700;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-variant-numeric:tabular-nums}.wstrip-day.today .dom{color:var(--accent)}.wstrip-day.sel .dom{background:var(--accent);color:var(--accent-ink)}.wstrip-dots{display:flex;align-items:center;gap:3px;height:6px}.wstrip-dots i{display:block;width:4px;height:4px;border-radius:50%}.scheduler .tg-now{z-index:30}.scheduler.phone .timegrid{--gutter: 46px}.scheduler.phone .tg-event{padding:4px 7px;border-radius:8px;font-size:.78rem}.scheduler.phone .tg-allday{min-height:40px}.scheduler.phone .tg-scroll{overflow-x:hidden}.scheduler.phone .month-cell{padding:4px 2px;gap:2px;min-height:44px}.scheduler.phone .month-num{width:24px;height:24px;font-size:.8rem;align-self:center}.scheduler.phone .month-dots{justify-content:center;padding:0}.scheduler.phone .month-dow{padding:6px 0}@media(prefers-reduced-motion:reduce){.agenda{scroll-behavior:auto}}:root{color-scheme:light dark;--font: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg: #f6f1ea;--surface: #fffdfa;--surface-2: #f1eae1;--surface-3: #e8dfd4;--border: #e4dbcf;--border-strong: #d2c7b9;--text: #2a2420;--text-2: #5c534b;--muted: #8b8076;--accent: #e8694f;--accent-ink: #fff;--danger: #c9483a;--c-couple: #2ba89a;--c-child: #8b6be8;--shadow: 0 1px 2px rgba(42, 36, 32, .06), 0 8px 24px -12px rgba(42, 36, 32, .18);--shadow-lg: 0 24px 64px -24px rgba(42, 36, 32, .45);--radius: 16px;--radius-sm: 10px;--nav-w: 224px;--bottom-nav: 64px;--ease: cubic-bezier(.2, .8, .2, 1)}@media(prefers-color-scheme:dark){:root{--bg: #171412;--surface: #211d1a;--surface-2: #2a2521;--surface-3: #35302b;--border: #35302b;--border-strong: #4a423b;--text: #f2ebe3;--text-2: #c8bfb5;--muted: #978c82;--accent: #f07a60;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -12px rgba(0, 0, 0, .5);--shadow-lg: 0 24px 64px -24px rgba(0, 0, 0, .8)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100%;overflow-x:clip;overscroll-behavior-y:none}#root{min-height:100dvh}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button,a,label,input,select,textarea,[role=button]{touch-action:manipulation}button,a,[role=button]{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.spacer{flex:1}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}.logo-mark{width:40px;height:40px;border-radius:12px;position:relative;flex:none;background:#2c2622;box-shadow:inset 0 0 0 1px #ffffff0f}.logo-mark:before,.logo-mark:after{content:"";position:absolute;border-radius:50%;width:46%;height:46%;top:22%}.logo-mark:before{left:14%;background:var(--accent)}.logo-mark:after{right:14%;background:var(--c-couple);opacity:.92}.logo-mark.small{width:30px;height:30px;border-radius:9px}.splash{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:10px;font-weight:800;letter-spacing:.18em;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:600;transition:background .15s var(--ease),transform .15s var(--ease),border-color .15s}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn.primary:hover{background:color-mix(in srgb,var(--accent) 88%,black)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{background:var(--danger);color:#fff;border-color:transparent}.btn.danger-text{color:var(--danger)}.btn.small{min-height:44px;padding:0 12px;font-size:.9rem}.btn.block{width:100%}.icon-btn{width:44px;height:44px;display:inline-grid;place-items:center;border-radius:12px;border:none;background:transparent;color:var(--text-2);transition:background .15s var(--ease)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.82rem;font-weight:600;color:var(--text-2)}.field.grow{flex:1}.field input,.field select,.field textarea,.title-input{min-height:44px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);width:100%;transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical;min-height:72px}.field input:focus,.field select:focus,.field textarea:focus,.title-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.color-input{width:64px;min-width:64px;flex:none;padding:4px!important;cursor:pointer}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.form-error{color:var(--danger);font-size:.9rem;font-weight:600}.form-ok{color:var(--c-couple);font-size:.9rem;font-weight:600}.form-error.banner{padding:10px 14px;background:color-mix(in srgb,var(--danger) 10%,var(--surface));border-radius:var(--radius-sm);margin-bottom:10px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);font-weight:600;font-size:.9rem;color:var(--text-2);white-space:nowrap;transition:background .15s var(--ease),color .15s,border-color .15s}.chip.small{min-height:44px;padding:0 14px}.chip:hover{background:var(--surface-2)}.chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}.chip .swatch{width:10px;height:10px;border-radius:50%;background:var(--ev, var(--muted));flex:none}.chip.on .swatch{box-shadow:0 0 0 2px var(--bg)}.segmented{display:inline-flex;padding:3px;border-radius:12px;background:var(--surface-2);gap:2px}.segmented button{min-height:44px;min-width:68px;padding:0 14px;border-radius:9px;border:none;background:transparent;color:var(--text-2);font-weight:600;transition:background .18s var(--ease),color .18s,box-shadow .18s}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:6px 0;cursor:pointer}.switch-row>span{display:flex;flex-direction:column;font-weight:600}.switch-row small{font-weight:500;font-size:.82rem}.switch{appearance:none;width:48px;height:28px;border-radius:999px;background:var(--surface-3);position:relative;flex:none;cursor:pointer;transition:background .2s var(--ease);margin:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s var(--ease)}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(20px)}.avatar{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:800;font-size:.85rem;flex:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.card h3{margin-bottom:2px}.note{font-size:.9rem}.login{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(400px,100%);display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:28px;box-shadow:var(--shadow-lg)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:6px;text-align:center}.login-brand h1{letter-spacing:.16em;font-weight:800}.login-card.wide{width:min(460px,100%)}.field>small{font-size:.78rem;line-height:1.35}.note.center{text-align:center}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch-btn{width:34px;height:34px;border-radius:50%;flex:none;cursor:pointer;background:var(--ev, var(--muted));border:2px solid transparent;box-shadow:0 0 0 1px var(--border-strong);transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.swatch-btn:hover{transform:scale(1.08)}.swatch-btn.on{border-color:var(--surface);box-shadow:0 0 0 3px var(--ev, var(--accent))}.pair-options{display:flex;flex-direction:column;gap:12px}.pair-option{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;padding:18px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);transition:background .15s var(--ease),border-color .15s var(--ease),transform .15s var(--ease)}.pair-option:hover{background:var(--surface-3);border-color:var(--accent);transform:translateY(-1px)}.pair-option strong{font-size:1.05rem;font-weight:700}.pair-option span{font-size:.88rem}.pair-join{display:flex;flex-direction:column;gap:12px}.pair-nudge{padding:8px 12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.shell{display:grid;min-height:100dvh;grid-template-rows:1fr auto}.main{min-width:0}.nav{order:2;position:sticky;bottom:0;z-index:20;display:flex;align-items:stretch;height:calc(var(--bottom-nav) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border)}.nav-brand,.nav-user{display:none}.nav-items{display:flex;flex:1}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.7rem;font-weight:700;color:var(--muted);min-height:44px;transition:color .15s}.nav-item{position:relative;-webkit-user-select:none;user-select:none}.nav-item:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%) scaleX(0);width:30px;height:3px;border-radius:0 0 3px 3px;background:var(--accent);transition:transform .18s var(--ease)}.nav-item.active{color:var(--accent)}.nav-item.active:before{transform:translate(-50%) scaleX(1)}.nav-item:active{background:var(--surface-2)}.page{padding:calc(16px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 96px max(16px,env(safe-area-inset-left));max-width:1100px;margin:0 auto}.page.narrow{max-width:640px;display:flex;flex-direction:column;gap:14px}.page-head{padding:6px 0 4px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:36px 20px;color:var(--text-2);border:1px dashed var(--border-strong);border-radius:var(--radius)}.empty-state.tall{padding:48px 20px}.module-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.module-list li{display:flex;gap:12px;align-items:center}.module-list li div{display:flex;flex-direction:column}.partner-row{display:flex;align-items:center;gap:12px}.partner-row div{display:flex;flex-direction:column}.invite{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.invite-code{font-size:1.2rem;letter-spacing:.2em;font-weight:700;padding:6px 10px;background:var(--surface-2);border-radius:8px}@media(min-width:768px){.shell{grid-template-columns:var(--nav-w) 1fr;grid-template-rows:none}.nav{order:0;position:sticky;top:0;bottom:auto;height:100dvh;padding:18px 12px;flex-direction:column;gap:6px;border-top:none;border-right:1px solid var(--border);background:var(--surface)}.nav-brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.14em;padding:4px 8px 18px}.nav-items{flex-direction:column;gap:2px}.nav-item{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;padding:0 12px;font-size:.95rem;border-radius:12px;color:var(--text-2)}.nav-item:hover{background:var(--surface-2)}.nav-item:before{display:none}.nav-item.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.nav-user{display:flex;align-items:center;gap:10px;margin-top:auto;padding:8px 10px;font-weight:600;font-size:.9rem}.page{padding:24px 28px 48px}}.scheduler{display:flex;flex-direction:column;height:calc(100dvh - var(--bottom-nav) - env(safe-area-inset-bottom));padding-bottom:0}.wishlist{padding-bottom:calc(96px + env(safe-area-inset-bottom))}@media(min-width:768px){.scheduler{height:100dvh;padding-bottom:20px}}.sched-head{display:flex;flex-direction:column;gap:10px;padding-bottom:12px;flex:none}.sched-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.sched-title{font-size:1.35rem;font-variant-numeric:tabular-nums}.sched-nav{display:flex;align-items:center;gap:2px}.sched-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.sched-controls .chips{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;padding:2px;margin:-2px}.sched-controls .chips::-webkit-scrollbar{display:none}@media(min-width:768px){.sched-title{font-size:1.6rem}}.sched-body{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;position:relative}.sched-body.slide-left{animation:slide-in-left .22s var(--ease)}.sched-body.slide-right{animation:slide-in-right .22s var(--ease)}@keyframes slide-in-left{0%{opacity:.4;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes slide-in-right{0%{opacity:.4;transform:translate(-14px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.sched-body.slide-left,.sched-body.slide-right{animation:none}}.empty-line{padding:10px 14px;font-size:.9rem;border-bottom:1px solid var(--border);background:var(--surface-2);text-align:center}.timegrid{display:flex;flex-direction:column;flex:1;min-height:0;--gutter: 56px}.timegrid.compact{--gutter: 44px}.tg-gutter{width:var(--gutter);flex:none;font-size:.68rem;color:var(--muted);text-align:right;padding-right:8px}.tg-head{display:flex;border-bottom:1px solid var(--border);flex:none}.tg-dayhead{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px 2px 6px;gap:1px;border:none;background:none;min-width:0}.tg-dayhead .dow{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.tg-dayhead .dom{font-size:1.05rem;font-weight:700;width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.tg-dayhead.today .dom{background:var(--accent);color:var(--accent-ink)}.tg-allday{display:flex;border-bottom:1px solid var(--border);flex:none;min-height:34px;background:var(--surface-2)}.tg-allday .tg-gutter{padding-top:8px}.tg-allday-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding:4px 3px;cursor:pointer}.tg-allday-col+.tg-allday-col{border-left:1px solid var(--border)}.tg-allday-empty{font-size:.8rem;padding:4px 6px}.tg-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;position:relative}.tg-body{display:flex;height:calc(var(--hour) * 24);position:relative}.tg-hours{position:relative}.tg-hour-label{height:var(--hour);position:relative;top:-7px}.tg-col{flex:1;position:relative;min-width:0;cursor:pointer}.tg-col+.tg-col{border-left:1px solid var(--border)}.tg-col.today{background:color-mix(in srgb,var(--accent) 4%,transparent)}.tg-hline{position:absolute;left:0;right:0;height:1px;background:var(--border);pointer-events:none}.tg-now{position:absolute;left:0;right:0;height:2px;background:var(--accent);z-index:3;pointer-events:none}.tg-now:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.tg-event{position:absolute;z-index:2;overflow:hidden;text-align:left;padding:3px 6px;border:none;border-left:3px solid var(--ev);border-radius:7px;background:color-mix(in srgb,var(--ev) 20%,var(--surface));color:color-mix(in srgb,var(--ev) 55%,var(--text));font-size:.8rem;line-height:1.25;display:flex;flex-direction:column;gap:1px;transition:filter .15s,transform .15s var(--ease);box-shadow:0 1px #0000000a}.tg-event:hover{filter:brightness(.97);z-index:4}.tg-event.readonly{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ev) 18%,var(--surface)) 0 6px,color-mix(in srgb,var(--ev) 9%,var(--surface)) 6px 12px)}.tg-event-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-event-title em,.pill-owner{font-style:normal;font-weight:500;opacity:.8}.tg-event-time{font-size:.72rem;opacity:.85;white-space:nowrap}.timegrid.compact .tg-event{padding:2px 4px;font-size:.72rem;border-radius:5px}.pill{display:flex;align-items:center;gap:5px;min-width:0;width:100%;text-align:left;padding:3px 7px;border:none;border-radius:6px;font-size:.76rem;font-weight:600;line-height:1.3;background:color-mix(in srgb,var(--ev) 20%,var(--surface));color:color-mix(in srgb,var(--ev) 55%,var(--text));border-left:3px solid var(--ev);cursor:pointer}.pill.readonly{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ev) 18%,var(--surface)) 0 6px,color-mix(in srgb,var(--ev) 9%,var(--surface)) 6px 12px)}.pill-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pill-time{opacity:.75;font-weight:500;flex:none}.pill-owner{flex:none;font-size:.7rem}.month{display:flex;flex-direction:column;flex:1;min-height:0}.month-head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border)}.month-dow{text-align:center;padding:8px 0;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;flex:1;min-height:0}.month-cell{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-height:64px;padding:6px 4px 4px;border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:transparent;text-align:left;min-width:0;overflow:hidden;transition:background .15s}.month-cell:nth-child(7n){border-right:none}.month-cell:hover{background:var(--surface-2)}.month-cell.other{color:var(--muted);background:color-mix(in srgb,var(--surface-2) 45%,transparent)}.month-num{font-size:.85rem;font-weight:700;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;align-self:flex-start}.month-cell.today .month-num{background:var(--accent);color:var(--accent-ink)}.month-pills{display:none;flex-direction:column;gap:2px;min-width:0}.month-more{font-size:.7rem;padding-left:4px}.month-dots{display:flex;gap:3px;flex-wrap:wrap;padding:0 3px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot.couple{background:var(--c-couple)}.dot.child{background:var(--c-child)}@media(min-width:640px){.month-pills{display:flex}.month-dots{display:none}.month-cell{min-height:96px}}.fab{position:fixed;right:18px;bottom:calc(var(--bottom-nav) + env(safe-area-inset-bottom) + 18px);z-index:15;width:58px;height:58px;border-radius:18px;border:none;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 28px -8px color-mix(in srgb,var(--accent) 70%,black);transition:transform .18s var(--ease),box-shadow .18s}.fab:hover{transform:translateY(-2px) scale(1.03)}.fab:active{transform:scale(.96)}@media(min-width:768px){.fab{bottom:28px;right:28px}}.sheet-backdrop{position:fixed;left:0;right:0;top:var(--vvtop, 0px);height:var(--vvh, 100dvh);z-index:50;background:#14100e73;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .18s var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet{width:100%;max-height:calc(100% - 24px);display:flex;flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0;padding:4px 18px 0;box-shadow:var(--shadow-lg);animation:sheet-up .26s var(--ease);margin:0;min-height:0;transition:transform .22s var(--ease)}.sheet-drag{flex:none;touch-action:none;cursor:grab;padding-bottom:6px}.sheet-grip{width:44px;height:5px;border-radius:3px;background:var(--border-strong);margin:6px auto 4px}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.sheet-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:12px;padding:2px 0 12px;scroll-padding-bottom:24px}.sheet-body{border:none;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:12px}.sheet-foot{flex:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0 calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface)}.sheet-foot .btn.big{flex:1 1 auto;min-height:52px;font-size:1rem;order:9}.sheet-foot .confirm{flex:1 1 100%}.confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:600}.title-input{font-size:1.15rem;font-weight:700;min-height:50px}.schedule-toggle{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.schedule-btn{min-height:48px;border-radius:12px;border:1.5px solid var(--border-strong);background:var(--surface);display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;transition:background .15s var(--ease),border-color .15s,color .15s}.schedule-btn .swatch{width:12px;height:12px;border-radius:50%;background:var(--ev)}.schedule-btn.on{border-color:var(--ev);background:color-mix(in srgb,var(--ev) 16%,var(--surface));color:color-mix(in srgb,var(--ev) 60%,var(--text))}.dt-row{display:grid;grid-template-columns:1fr;gap:10px}.dt-row .field{min-width:0}.dt-inputs{display:flex;gap:8px;min-width:0}.dt-inputs input{width:auto;min-width:0}.dt-inputs input[type=date]{flex:1.4 1 0}.dt-inputs input[type=time]{flex:1 1 0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}@keyframes pop-in{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:none;opacity:1}}@media(min-width:640px){.sheet-backdrop{align-items:center;padding:24px}.sheet{width:min(560px,100%);border-radius:22px;padding:10px 24px 0;animation:pop-in .22s var(--ease);max-height:calc(100% - 48px)}.sheet-grip{display:none}.sheet-drag{cursor:default;touch-action:auto;padding-top:6px}.sheet-foot{padding-bottom:18px}.sheet-foot .btn.big{flex:0 0 auto;min-height:44px}.dt-row{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.sheet,.sheet-backdrop,.fab{animation:none;transition:none}}.wishlist{display:flex;flex-direction:column;gap:12px}.wl-head{display:flex;flex-direction:column;gap:10px;padding-bottom:2px;position:sticky;top:0;z-index:4;background:var(--bg);padding-top:4px;margin-top:-4px}.wl-summary{font-size:.9rem;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.wl-search{display:flex;align-items:center;gap:8px;padding:0 12px;min-height:44px;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--muted)}.wl-search:focus-within{border-color:var(--accent);color:var(--text)}.wl-search input{flex:1;min-width:0;min-height:44px;border:none;background:transparent;outline:none;padding:8px 0;color:var(--text)}.wl-search input::-webkit-search-cancel-button{cursor:pointer}.wl-groups{display:flex;flex-direction:column;gap:10px}.wl-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.wl-group.got{opacity:.85}.wl-group-head{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;min-height:52px;background:var(--surface);border:none;text-align:left;font-weight:700;color:var(--text);position:sticky;top:0;z-index:3;border-radius:var(--radius) var(--radius) 0 0}.wl-group.open .wl-group-head{box-shadow:0 1px 0 var(--border)}.wl-group-head:hover{background:var(--surface-2)}.wl-chevron{transition:transform .18s var(--ease);transform:rotate(-90deg);color:var(--muted);flex:none}.wl-group.open .wl-chevron{transform:none}.wl-group-count{font-size:.78rem;font-weight:700;color:var(--text-2);background:var(--surface-2);border-radius:999px;padding:1px 8px}.wl-group-total{font-size:.9rem;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums}.wl-items{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.wl-items>:last-child{border-radius:0 0 var(--radius) var(--radius)}.wl-item{position:relative;overflow:hidden;background:var(--c-couple)}.wl-item.done{background:var(--muted)}.wl-item+.wl-item{border-top:1px solid var(--border)}.wl-swipe-action{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-right:22px;color:#fff;font-weight:700;font-size:.92rem;pointer-events:none}.wl-item-row{position:relative;display:flex;align-items:center;gap:6px;padding:8px 8px 8px 6px;min-height:76px;background:var(--surface);touch-action:pan-y;transition:transform .22s var(--ease)}.wl-item.swiping .wl-item-row{transition:none}.wl-item.done .wl-name{text-decoration:line-through;color:var(--muted)}.wl-item.done .wl-thumb{filter:grayscale(1);opacity:.6}.wl-check{width:44px;height:44px;flex:none;border:none;background:transparent;padding:0;display:grid;place-items:center;color:transparent;position:relative;transition:color .15s var(--ease)}.wl-check:before{content:"";position:absolute;width:30px;height:30px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface);transition:background .15s var(--ease),border-color .15s}.wl-check svg{position:relative;z-index:1}.wl-check:hover{color:var(--c-couple)}.wl-check:hover:before{border-color:var(--c-couple)}.wl-check.on{color:#fff}.wl-check.on:before{background:var(--c-couple);border-color:var(--c-couple)}.wl-item-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;cursor:pointer;padding:4px 2px;min-height:60px;border-radius:10px}.wl-item-main:active{background:var(--surface-2)}.wl-item-main:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wl-thumb{width:56px;height:56px;flex:none;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--muted);overflow:hidden}.wl-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.wl-item-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.wl-item-title{display:flex;align-items:center;gap:8px;min-width:0}.wl-name{font-weight:600;font-size:.97rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.wl-badge{flex:none;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;color:var(--ev);background:color-mix(in srgb,var(--ev) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--ev) 35%,transparent)}.wl-badge.big{font-size:.78rem;padding:6px 10px;align-self:flex-end;min-height:44px;display:inline-flex;align-items:center}.wl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.82rem}.wl-price{color:var(--text);font-variant-numeric:tabular-nums}.wl-by{display:inline-flex;align-items:center;gap:5px}.wl-notes{flex-basis:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wl-link{flex:none}.wl-notice{padding:8px 12px;background:color-mix(in srgb,var(--c-couple) 10%,var(--surface));border-radius:var(--radius-sm)}.wl-form-top{display:flex;gap:12px;align-items:flex-start}.wl-preview{width:96px;height:96px;flex:none;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--muted);overflow:hidden}.wl-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.wl-form-top-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.wl-photo-row{display:flex;gap:8px;flex-wrap:wrap}.wl-cam{width:44px;min-width:44px;padding:0}.wl-link-row{display:flex;gap:8px}.wl-link-row input{flex:1;min-width:0}.wl-link-row .btn{display:inline-flex;align-items:center;gap:6px;flex:none}@media(min-width:768px){.wl-item-row{padding:10px 14px 10px 12px}.wl-thumb{width:64px;height:64px}}@media(hover:none){.btn:hover,.btn.ghost:hover,.icon-btn:hover,.chip:hover,.month-cell:hover,.wl-group-head:hover,.wl-check:hover,.swatch-btn:hover,.pair-option:hover,.nav-item:hover,.tg-event:hover{background:inherit;transform:none;filter:none}.btn.primary:hover{background:var(--accent)}.chip:hover{background:var(--surface)}.chip.on:hover{background:var(--text)}.wl-check:hover{color:transparent}.wl-check:hover:before{border-color:var(--border-strong)}.wl-check.on:hover{color:#fff}.wl-check.on:hover:before{background:var(--c-couple);border-color:var(--c-couple)}.icon-btn:hover{color:var(--text-2)}.fab:hover{transform:none}.pair-option:hover{background:var(--surface-2);border-color:var(--border)}}
