:root{--accent-light:#1f5fbf;--accent-dark:#7aa7ff}:root[data-accent=green]{--accent-light:#1b7a3d;--accent-dark:#5fcf86}:root[data-accent=purple]{--accent-light:#6b3fb5;--accent-dark:#b79cff}:root[data-accent=orange]{--accent-light:#b35300;--accent-dark:#ffa257}:root[data-accent=red]{--accent-light:#b3261e;--accent-dark:#ff8a80}:root{--radius-s:12px;--radius-m:20px;--radius-l:28px;--shadow-card:0 2px 4px #141e3c0f, 0 10px 28px #141e3c1f;--shadow-float:0 4px 16px #141e3c38;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#eef1f8;--color-surface:#fff;--color-text:#1a1a1a;--color-muted:#5c5c5c;--color-border:#dde1ea;--color-backdrop:#0006;--color-accent:var(--accent-light);--color-on-accent:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0c0e14;--color-surface:#1a1f2e;--color-text:#f0f0f0;--color-muted:#b0b0b0;--color-border:#2b3247;--color-backdrop:#0009;--color-accent:var(--accent-dark);--color-on-accent:#121212}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0c0e14;--color-surface:#1a1f2e;--color-text:#f0f0f0;--color-muted:#b0b0b0;--color-border:#2b3247;--color-backdrop:#0009;--color-accent:var(--accent-dark);--color-on-accent:#121212}:root{color:var(--color-text);background:var(--color-bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:100%;line-height:1.5}*{box-sizing:border-box}body{background:var(--color-bg);margin:0}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon{flex-shrink:0}.hint{color:var(--color-muted)}.family-mark{color:var(--color-on-accent);background:var(--color-accent);border-radius:var(--radius-s);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}:root{--pc-blue:#1d4ed8;--pc-green:#157347;--pc-purple:#7e22ce;--pc-orange:#9a4a06;--pc-teal:#0d6b64;--pc-family:var(--color-muted);--chip-mix:14%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--pc-blue:#93b4ff;--pc-green:#6fd39b;--pc-purple:#d2a8ff;--pc-orange:#f5b65c;--pc-teal:#5fd6c8;--chip-mix:20%}}:root[data-theme=dark]{--pc-blue:#93b4ff;--pc-green:#6fd39b;--pc-purple:#d2a8ff;--pc-orange:#f5b65c;--pc-teal:#5fd6c8;--chip-mix:20%}[data-person=blue]{--p:var(--pc-blue)}[data-person=green]{--p:var(--pc-green)}[data-person=purple]{--p:var(--pc-purple)}[data-person=orange]{--p:var(--pc-orange)}[data-person=teal]{--p:var(--pc-teal)}[data-person=family]{--p:var(--pc-family)}.avatar{width:2.25rem;height:2.25rem;color:var(--p);background:color-mix(in srgb, var(--p) var(--chip-mix), var(--color-surface));border:2px solid var(--p);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}:root{--bottom-nav-height:4rem;--safe-bottom:env(safe-area-inset-bottom,0px)}.only-desktop,.sidebar{display:none}.app-content{min-width:0}.app-header{z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;min-height:56px;padding:.25rem .5rem .25rem 1rem;display:flex;position:sticky;top:0}.page-title{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:1.25rem;line-height:1.2}.app-main{max-width:90rem;padding:1.25rem;padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + 88px);margin-inline:auto}.icon-button{min-width:44px;min-height:44px;color:var(--color-text);border-radius:var(--radius-s);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.fab{right:16px;bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + 16px);z-index:20;width:56px;height:56px;color:var(--color-on-accent);background:var(--color-accent);box-shadow:var(--shadow-float);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:fixed}.bottom-nav{z-index:20;padding-bottom:var(--safe-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{min-height:var(--bottom-nav-height);min-width:0;font:inherit;text-align:center;overflow-wrap:anywhere;color:var(--color-muted);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0 2px;font-size:min(.875rem,3.9vw);text-decoration:none;display:flex;position:relative}.bottom-nav-item.active{color:var(--color-accent);font-weight:600}.bottom-nav-item.active:before{content:"";background:var(--color-accent);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:25%;right:25%}.sheet-layer{z-index:50;position:fixed;inset:0}.sheet-backdrop{background:var(--color-backdrop);position:absolute;inset:0}.sheet{max-height:80dvh;padding:.5rem 1rem calc(1rem + var(--safe-bottom));color:var(--color-text);background:var(--color-bg);border-radius:var(--radius-l) var(--radius-l) 0 0;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -2px 12px #00000040}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{overflow-wrap:anywhere;min-width:0;margin:0;font-size:1.125rem}.sheet-list{margin:0;padding:0;list-style:none}.sheet-item{overflow-wrap:anywhere;min-height:56px;color:var(--color-text);border-radius:var(--radius-s);align-items:center;gap:.75rem;padding:0 .5rem;font-size:1.125rem;text-decoration:none;display:flex}.sheet-item:hover{background:var(--color-surface)}button.sheet-item{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;font-size:1.125rem}button.sheet-item[aria-pressed=true]{font-weight:700}.sheet-item-detail{color:var(--color-muted);font-weight:400}.sheet-note{color:var(--color-muted);margin:.5rem .5rem 0}.settings h2{margin-top:0}.choice-group{border:0;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;padding:0;display:flex}.choice-group legend{margin-bottom:.5rem;font-weight:600}.choice{border:1px solid var(--color-border);border-radius:var(--radius-s);cursor:pointer;align-items:center;gap:.5rem;min-height:44px;padding:0 .75rem;display:inline-flex}.choice:has(input:checked){border:2px solid var(--color-accent);font-weight:600}.choice input{width:20px;height:20px;accent-color:var(--color-accent);margin:0}.swatch{border:1px solid var(--color-border);border-radius:50%;width:20px;height:20px}.swatch[data-swatch=blue]{background:#1f5fbf}.swatch[data-swatch=green]{background:#1b7a3d}.swatch[data-swatch=purple]{background:#6b3fb5}.swatch[data-swatch=orange]{background:#b35300}.swatch[data-swatch=red]{background:#b3261e}.prototype-section{border:2px dashed var(--color-border);border-radius:var(--radius-m);margin-top:2rem;padding:1rem}.settings .prototype-section h2{margin-top:0}.fact-list{margin:0 0 .75rem;padding-left:1.25rem}.account-section{margin-bottom:2rem}.account-section h3{margin:1.5rem 0 .5rem;font-size:1.125rem}.account-section .form{max-width:28rem}.auth-screen{box-sizing:border-box;max-width:28rem;margin:0 auto;padding:2rem 1rem}.auth-screen h1{margin-top:0}.auth-screen .form{margin:1rem 0}.apps h2{margin:1.5rem 0 .5rem;font-size:1.125rem}.apps h2:first-of-type{margin-top:0}.app-list{border:1px solid var(--color-border);border-radius:var(--radius-m);margin:0;padding:0;list-style:none}.app-row{align-items:center;gap:.75rem;min-height:64px;padding:.5rem .75rem;display:flex}.app-row+.app-row{border-top:1px solid var(--color-border)}.app-row--planned{color:var(--color-muted)}.app-text{flex-direction:column;flex:1;min-width:0;display:flex}.app-name{color:var(--color-text);font-weight:600}.app-description{color:var(--color-muted);font-size:.875rem}.app-status{flex-shrink:0;font-size:.875rem;font-style:italic}.switch{min-width:44px;min-height:44px;font:inherit;color:var(--color-text);border-radius:var(--radius-s);cursor:pointer;background:0 0;border:0;flex-shrink:0;align-items:center;gap:.5rem;padding:0 .25rem;display:inline-flex}.switch-track{background:var(--color-surface);border:2px solid var(--color-muted);border-radius:999px;width:44px;height:26px;position:relative}.switch-track:after{content:"";background:var(--color-muted);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch[aria-checked=true] .switch-track{background:var(--color-accent);border-color:var(--color-accent)}.switch[aria-checked=true] .switch-track:after{background:var(--color-on-accent);transform:translate(18px)}.switch-label{min-width:2.25rem;font-size:1rem;font-weight:600}.button-row{flex-wrap:wrap;gap:.5rem;display:flex}.button{min-height:44px;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-muted);border-radius:var(--radius-s);cursor:pointer;padding:0 1rem}.button--wrap{padding-block:.5rem;line-height:1.3}.button--primary{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent);font-weight:600}.alert{border:2px solid var(--color-accent);border-radius:var(--radius-s);padding:.75rem 1rem;font-weight:600}.empty-state a,.sheet-note a,.text-link{color:var(--color-accent)}.text-link{align-items:center;min-height:44px;display:inline-flex}.button--link{align-items:center;text-decoration:none;display:inline-flex}.error-page{max-width:40rem}.error-page--standalone{padding:1rem}@media (width>=768px){.only-mobile,.bottom-nav{display:none}.only-desktop{display:inline-flex}.app{grid-template-columns:14rem 1fr;min-height:100vh;display:grid}.app-main{padding:1.5rem}.app-header{padding:.5rem 1.5rem}.add-button{min-height:44px;font:inherit;color:var(--color-on-accent);background:var(--color-accent);border-radius:var(--radius-s);cursor:pointer;border:0;align-items:center;gap:.25rem;padding:0 1rem 0 .75rem;font-weight:600}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100vh;padding:1rem .75rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:.625rem;margin:0 0 1rem .5rem;font-size:1.25rem;font-weight:700;display:flex}.sidebar-section{color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;margin:1rem 0 .25rem .5rem;font-size:.875rem;font-weight:600}.sidebar-list{margin:0;padding:0;list-style:none}.sidebar-bottom{margin-top:auto}.sidebar-item{min-height:44px;color:var(--color-text);border-radius:var(--radius-s);align-items:center;gap:.75rem;padding:0 .75rem;text-decoration:none;display:flex}.sidebar-item:hover{background:var(--color-bg)}.sidebar-item.active{color:var(--color-on-accent);background:var(--color-accent);font-weight:600}.sheet{border-radius:var(--radius-m);width:340px;box-shadow:var(--shadow-float);padding-bottom:1rem;inset:64px 1.5rem auto auto}}.form{flex-direction:column;gap:.75rem;display:flex}.form>.field{flex:none}.field{flex-direction:column;flex:9rem;gap:.25rem;min-width:0;display:flex}.field-label{font-size:1rem;font-weight:600}.field-row{flex-wrap:wrap;gap:.5rem;display:flex}.field-hint{color:var(--color-muted);font-size:1rem}.form input,.form select,.form textarea{box-sizing:border-box;width:100%;min-height:44px;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-muted);border-radius:var(--radius-s);padding:.5rem .75rem}.form .alert{margin:0 0 .75rem}.form-more{flex-direction:column;display:flex}.form-more>summary{cursor:pointer;align-items:center;gap:.5rem;min-height:44px;font-weight:600;list-style:none;display:flex}.form-more>summary::-webkit-details-marker{display:none}.form-more>summary:before{content:"▸" / ""}.form-more[open]>summary:before{content:"▾" / ""}.form-more>.field{flex:none}.form-more[open]>:not(summary){margin-top:.75rem}.form [aria-invalid=true]{border-width:2px;border-color:var(--color-text)}.button[aria-disabled=true]{opacity:.6;cursor:not-allowed}.button[aria-disabled=true]:focus-visible{opacity:1}.form input:disabled,.form select:disabled,.form textarea:disabled{color:var(--color-muted);background:var(--color-surface)}.button--danger{border:2px solid var(--color-text);font-weight:600}.connection-banner{background:var(--color-bg);border-bottom:3px solid var(--color-text);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.5rem 1rem;display:flex}.connection-banner-text{flex:14rem;margin:0}
