/* block 1 */
@font-face{font-family:'Cabin';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/cabin-latin-400-normal.woff2') format('woff2')}@font-face{font-family:'Cabin';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/cabin-latin-500-normal.woff2') format('woff2')}@font-face{font-family:'Cabin';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/cabin-latin-600-normal.woff2') format('woff2')}@font-face{font-family:'Cabin';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/cabin-latin-700-normal.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/cormorant-garamond-latin-700-normal.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('/fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2')}:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#F7F5F3;color:#1D1D1F}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}
/* block 2 */

/* Claude Design (Joy, Family, More, Settings, Payments, Food, Files): the big names hero is for Today only.
   Every other screen gets one quiet line, so the screen's own content starts near the top. */
html[data-sec]:not([data-sec="today"]) .top-names{display:flex;align-items:baseline;justify-content:space-between;gap:10px;text-align:left;padding:4px 0 2px;width:100%}
html[data-sec]:not([data-sec="today"]) .top-row{justify-content:flex-start}
html[data-sec]:not([data-sec="today"]) .wname{font-size:18px!important;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 0 auto;max-width:64%}
html[data-sec]:not([data-sec="today"]) .wmeta{font-size:12.5px!important;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 0;text-align:right}
html[data-sec]:not([data-sec="today"]) .top-rule{display:none}
/* sample bar: one line, the button as a light pill on the right (Landing design, in-app view) */
.samplebar{flex-wrap:nowrap!important;padding:8px 8px 8px 14px!important;font-size:13.5px!important;line-height:1.3;border-radius:14px}
.samplebar>span{min-width:0;flex:1 1 auto}
.samplebar .btn{flex:none;border-radius:999px;background:var(--accent-ink,#fff)!important;color:var(--accent,#3F1D38)!important;border-color:transparent!important;font-size:13.5px;padding:8px 14px;min-height:0;white-space:nowrap}
html.acc-wait nav.tabs button[data-tab="money"],html.acc-wait nav.tabs button[data-tab="joy"]{display:none!important}

/* block 3 */

/* 3 Oct · iPhone review fixes */
/* last item never hides under the floating "+ Add" button */
main{padding-bottom:calc(164px + env(safe-area-inset-bottom,0px))!important}
/* Safari's floating toolbar: no page showing through under the tab bar */
nav.tabs::after{content:"";position:absolute;left:0;right:0;top:100%;height:120px;background:var(--surface);pointer-events:none}
/* date boxes stay inside their column on iPhone */
input[type=date]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;display:block;box-sizing:border-box;text-align:left}
input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}
.grid2>*{min-width:0}
/* compact header: date and countdown wrap to a second line instead of being cut */
html[data-sec]:not([data-sec="today"]) .top-names{flex-wrap:wrap!important;row-gap:2px}
html[data-sec]:not([data-sec="today"]) .wname{max-width:100%!important}
html[data-sec]:not([data-sec="today"]) .wmeta{flex:1 1 100%!important;text-align:left!important}
/* events editor: full width on a phone */
@media (max-width:560px){
  .sortable li:has(.evedit){flex-wrap:wrap;align-items:flex-start}
  .sortable li:has(.evedit) .lbl{flex:1 1 calc(100% - 56px)}
  .sortable li:has(.evedit) .mvs{flex-direction:row;flex:1 1 100%;justify-content:flex-end}
  .evedit .grid2{grid-template-columns:1fr}
}

/* block 4 */

/* 4 Oct · Money sub-sections all visible as pills (no hidden sideways scroll) */
.app #pane-budget .subtabs{flex-wrap:wrap;overflow:visible;border-bottom:0;gap:8px;margin-bottom:14px}
.app #pane-budget .subtabs button{border:1.5px solid var(--line);border-radius:999px;padding:0 14px;min-height:44px;font-size:15px;background:var(--surface);color:var(--ink2);margin:0}
.app #pane-budget .subtabs button.on{background:var(--accent)!important;color:var(--accent-ink)!important;border-color:var(--accent)!important;font-weight:700}
/* selected choices are unmistakable: filled, with a tick */
.needs label.on,.evsel label.on,.sheet .dz-chips .dz-chip.on{background:var(--accent)!important;color:var(--accent-ink)!important;border-color:var(--accent)!important;font-weight:700;box-shadow:none!important}
.needs label.on::before,.evsel label.on::before,.sheet .dz-chips .dz-chip.on::before{content:"✓";font-weight:800;margin-right:2px}

/* block 5 */

/* 4 Oct 2026 — trust build */
#landing .lp2-support{font-size:20px;line-height:1.4;margin:14px 0 4px;color:var(--ink)}
#landing .lp2-fine{font-size:16px}
#landing .lp2-tt{padding:6px 20px 4px;display:flex;flex-direction:column;gap:8px}
#landing .lp2-tt .line{margin:0;font-size:16px;line-height:1.45;color:var(--ink)}
#landing .lp2-tt .line b{font-weight:700}
.acctfoot{font-size:16px;line-height:1.55;color:var(--muted);margin:18px 0 8px}
.acctfoot a{color:inherit;text-decoration:underline}
#landing .acctfoot{text-align:center}
ul.tt{list-style:none;margin:10px 0 6px;padding:0;display:flex;flex-direction:column;gap:8px}
ul.tt li{display:flex;flex-direction:column;gap:2px;font-size:16px;line-height:1.45}
ul.tt li b{font-size:16px;font-weight:700;color:var(--accent)}
.nextsteps{margin:14px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:14px}
.nextsteps h4{margin:0 0 6px;font-size:18px}
.nextsteps ol{margin:0 0 8px 20px;padding:0;font-size:16px;line-height:1.5}
.nextsteps p{margin:0;font-size:16px;line-height:1.5;color:var(--muted)}
#sheet-root .acctfoot{font-size:16px}
/* the header status line may now be a full sentence: let it wrap */
.app .top-bar{display:grid!important;grid-template-columns:auto 1fr auto;column-gap:8px;row-gap:2px;align-items:center}
.app .top-bar .brandrow{grid-column:1 / 3;grid-row:1;justify-self:start}
.app .top-bar .status{display:contents}
.app .top-bar .theme-btn{grid-column:3;grid-row:1}
.app .top-bar #netstat{grid-column:1;grid-row:2;font-size:16px}
.app .top-bar #syncstat{grid-column:2 / 4;grid-row:2;max-width:none!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;font-size:16px;line-height:1.3;text-align:left}
#landing{font-variant-numeric:lining-nums}
/* Today: small text up to a readable size */
.dz-lock,.dz-goodk{font-size:16px!important}
#pane-today small{font-size:14px!important}
/* readable for parents: 16px is the smallest body text, the Day/Night button is a full-size target */
.theme-btn{min-width:44px!important;min-height:44px!important}
.app .top-names .wmeta,.app .wmeta,.app .nd,.app .sub,.app .minor,.app small,.app .muted,.app .promise,.app .legal,.app .meta,.app .hint,.app .dz-hint,.app .stat .l,.app label,.app .tabs button span{font-size:max(16px,1em)}
.app nav.tabs button{min-height:56px}
/* calm at the till: no mascot on the payment sheet or the Money tab */
#sheet-root:has(.dz-paycard) [class*="orbi"],#sheet-root:has(.dz-paycard) .ob-think,#pane-budget [class*="orbi"],#pane-budget .ob-think{display:none!important}

/* 4 Oct (pre-launch test): header status — two short lines beside the Day/Night button, never three */
.app .status{display:grid!important;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;row-gap:0;align-items:center;justify-content:end}
.app .status #netstat{grid-column:1;grid-row:1;justify-self:end;white-space:nowrap}
.app .status #syncstat{grid-column:1;grid-row:2;justify-self:end;text-align:right;flex:none!important;max-width:42vw!important;white-space:normal!important;line-height:1.25;font-size:14px}
.app .status .theme-btn{grid-column:2;grid-row:1 / span 2}
/* Synapsium by Ginger Films lockup (5 Oct 2026): small endorsement line under the wordmark */
.bygf{display:block;font-style:normal;font-family:var(--ui,inherit);font-size:.5em;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.15;margin-top:3px;opacity:.78;white-space:nowrap}

/* block 6 */
.icon-btn{min-width:44px;min-height:44px}.dz-back{width:44px;height:44px}button[data-out]{min-height:44px}.msg time{color:#56656e}.dz-tintcard .dz-eyebrow{color:var(--ink)}#btn-copy-headcount{display:none!important}html.role-view #g-import,html.role-view #rsvp-share,html.role-view [data-hc],html.role-view #fab,html.role-view .icon-btn.gedit,html.role-noadmin #sh-inv,html.role-noadmin #sh-reset,html.role-noadmin #sh-inv2{display:none!important}
/* block 7 */
.hdr-ic{width:44px;height:44px;min-width:44px;border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer;color:var(--accent);padding:0;border-radius:22px}.hdr-ic svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.hdr-ic:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hdr-ic .joydot{position:absolute;top:9px;right:8px;width:9px;height:9px;border-radius:5px;background:#C0447A;border:2px solid var(--surface)}.hdr-ic[hidden],.hdr-ic .joydot[hidden]{display:none}.d33-icons{display:inline-flex;align-items:center;gap:0;grid-column:2;grid-row:1 / span 2}.status{grid-template-columns:auto auto auto!important}.status .theme-btn{grid-column:3!important;grid-row:1 / span 2!important}@media(max-width:560px){.status{grid-template-columns:auto auto!important;grid-template-rows:auto auto auto!important;column-gap:0!important}.status .d33-icons{grid-column:1;grid-row:1;justify-self:end}.status .theme-btn{grid-column:2!important;grid-row:1!important}.status #netstat{grid-column:1 / span 2!important;grid-row:2!important;justify-self:end}.status #syncstat{grid-column:1 / span 2!important;grid-row:3!important;justify-self:end;text-align:right;max-width:170px}}.d33-search{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:6px 0 4px}.d33-search:focus-within{border-color:var(--accent)}.d33-search svg{width:20px;height:20px;fill:none;stroke:var(--ink2);stroke-width:1.8;stroke-linecap:round;flex-shrink:0}.d33-search input{border:0!important;outline:0;background:transparent!important;font:inherit;font-size:17px;color:var(--ink);flex:1;min-width:0;padding:10px 0!important;box-shadow:none!important;min-height:0!important}.d33-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:24px 0 12px}.d33-h h2{margin:0;font-family:inherit;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}.d33-h.now h2{color:var(--accent)}.d33-h span{font-size:14px;color:var(--ink2)}.d33-now{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.d33-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:14px 10px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);min-width:0}.d33-card .d33-ic{width:46px;height:46px;border-radius:14px}.d33-card .d33-ic svg{width:25px;height:25px}.d33-card b{display:block;font-size:16px;font-weight:600;line-height:1.2}.d33-card small{display:block;font-size:13px;color:var(--ink2);margin-top:2px;line-height:1.25}.d33-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 8px}@media(min-width:620px){.d33-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.d33-tile{border:0;background:transparent;padding:0;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;font:inherit;color:var(--ink);min-width:0}.d33-ic{position:relative;width:64px;height:64px;border-radius:19px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.d33-ic svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.d33-tile:focus-visible .d33-ic,.d33-card:focus-visible,.d33-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.d33-tile:active .d33-ic{transform:scale(.94)}.d33-tl{font-size:14px;font-weight:500;text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis}.d33-badge{position:absolute;top:-6px;right:-6px;min-width:23px;height:23px;padding:0 6px;box-sizing:border-box;border-radius:12px;background:#B3261E;color:#fff;font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}.g-people{background:#F6E6E3;color:#3E1F3A}.g-money{background:#F3E7CC;color:#5E4210}.g-days{background:#E1ECE1;color:#2C4F31}.g-keep{background:#E2E8F1;color:#2C4166}html[data-theme="dark"] .g-people{background:#3A2530;color:#F2C6D3}html[data-theme="dark"] .g-money{background:#382C14;color:#E8C47E}html[data-theme="dark"] .g-days{background:#20332A;color:#A9D6B2}html[data-theme="dark"] .g-keep{background:#1F2A3C;color:#B2C6E6}@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .g-people{background:#3A2530;color:#F2C6D3}html:not([data-theme="light"]) .g-money{background:#382C14;color:#E8C47E}html:not([data-theme="light"]) .g-days{background:#20332A;color:#A9D6B2}html:not([data-theme="light"]) .g-keep{background:#1F2A3C;color:#B2C6E6}}.d33-rows{display:flex;flex-direction:column;gap:8px}.d33-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:10px 12px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);min-height:60px}.d33-row .d33-ic{width:42px;height:42px;border-radius:13px}.d33-row .d33-ic svg{width:23px;height:23px}.d33-row b{display:block;font-size:16px;font-weight:600}.d33-row small{display:block;font-size:13px;color:var(--ink2)}.d33-empty{font-size:16px;color:var(--ink2);line-height:1.5;margin:18px 0}.d33-start{padding:18px 18px 10px}.d33-sh{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.d33-sn{font-size:14px;color:var(--ink2)}.d33-sp{margin:4px 0 6px;font-size:15px;color:var(--ink2)}.d33-step{width:100%;display:flex;align-items:center;gap:12px;min-height:58px;border:0;border-top:1px solid var(--line);background:transparent;padding:6px 0;text-align:left;font:inherit;color:var(--ink);cursor:pointer}.d33-tick{width:24px;height:24px;border-radius:12px;border:2px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.d33-step.done .d33-tick{background:#2C4F31;border-color:#2C4F31}.d33-tick svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.d33-sb{flex:1;min-width:0}.d33-sb b{display:block;font-size:16px;font-weight:600}.d33-sb small{display:block;font-size:13.5px;color:var(--ink2)}.d33-step.done .d33-sb b{text-decoration:line-through;color:var(--ink2)}.d33-chev{width:18px;height:18px;fill:none;stroke:var(--ink2);stroke-width:1.8;stroke-linecap:round;flex-shrink:0}.d33-every{width:100%;display:flex;align-items:center;gap:12px;border:0;border-radius:16px;background:var(--plum-tint);padding:12px;margin:10px 0 4px;text-align:left;font:inherit;font-size:15px;color:var(--ink);cursor:pointer}.d33-every .d33-ic{width:42px;height:42px;border-radius:13px;background:var(--surface)}.d33-every .d33-ic svg{width:23px;height:23px}.d33-hide{display:flex;justify-content:flex-end}#vault-tabs{display:none!important}#vault-menu .dz-lock{margin-top:28px}