:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;--blue-700:#1557a6;--blue-600:#176bce;--blue-500:#2b7de0;--ink:#172033;--muted:#657187;--line:#dce3ed;--surface:#fff;--danger:#9a2f39;--danger-bg:#fff0f1;background:#f3f6fa;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#f3f6fa;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}a{color:var(--blue-700);text-underline-offset:.2em;font-weight:600}a:hover{color:#0a4489}.auth-page{background:var(--surface);grid-template-columns:minmax(20rem,.95fr) minmax(30rem,1.05fr);min-height:100vh;display:grid}.auth-intro{color:#fff;background:radial-gradient(circle at 16% 12%,#7ebfff7a,#0000 27rem),radial-gradient(circle at 92% 88%,#012d5e8f,#0000 31rem),linear-gradient(145deg,#1976d2 0%,#1557a6 52%,#123c78 100%);flex-direction:column;justify-content:center;min-height:100vh;padding:clamp(3rem,8vw,8rem);display:flex;position:relative;overflow:hidden}.auth-intro:before,.auth-intro:after{content:"";border:1px solid #ffffff1f;border-radius:50%;position:absolute}.auth-intro:before{width:26rem;height:26rem;top:-7rem;right:-10rem}.auth-intro:after{width:18rem;height:18rem;bottom:-8rem;left:-6rem}.brand-mark{-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);background:#ffffff1f;border:1px solid #ffffff4d;border-radius:1rem;grid-template-columns:repeat(3,.38rem);justify-content:center;align-items:end;gap:.25rem;width:3.25rem;height:3.25rem;margin-bottom:2.25rem;display:grid}.brand-mark span{background:#fff;border-radius:.25rem;height:1rem;margin-bottom:1rem;display:block}.brand-mark span:nth-child(2){height:1.45rem}.brand-mark span:nth-child(3){height:.7rem}.eyebrow{color:var(--blue-600);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .75rem;font-size:.73rem;font-weight:700}.auth-intro>p:last-child{color:#ffffffc2;max-width:34rem;margin:2rem 0 0;font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.7}.auth-panel{background:linear-gradient(#ffffffe0,#fffffff5),repeating-linear-gradient(0deg,#0000 0 3.95rem,#dfe8f3 4rem);place-items:center;min-height:100vh;padding:clamp(2rem,8vw,7rem);display:grid}.auth-card{width:min(100%,29rem)}.auth-card__header{margin-bottom:2rem}.auth-card__header h2{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:clamp(1.85rem,3vw,2.35rem);font-weight:650}.auth-card__header>p:last-child{color:var(--muted);margin:.8rem 0 0;line-height:1.6}.auth-form{gap:1.15rem;display:grid}.form-field{gap:.48rem;display:grid}.form-field__label{color:#303b50;font-size:.875rem;font-weight:650}.form-field input{width:100%;min-height:3.25rem;color:var(--ink);background:#ffffffeb;border:1px solid #cbd5e2;border-radius:.7rem;outline:none;padding:.78rem .95rem;transition:border-color .15s,box-shadow .15s,background .15s}.form-field input:hover:not(:disabled){border-color:#9baabd}.form-field input:focus-visible{border-color:var(--blue-500);background:#fff;box-shadow:0 0 0 .23rem #2b7de029}.form-field input:disabled{cursor:wait;opacity:.7}.form-field__hint{color:var(--muted);font-size:.75rem;line-height:1.45}.primary-button{color:#fff;background:var(--blue-600);cursor:pointer;border:0;border-radius:.7rem;justify-content:center;align-items:center;gap:.65rem;min-height:3.25rem;margin-top:.35rem;padding:.75rem 1.3rem;font-weight:650;transition:transform .12s,background .12s,box-shadow .12s;display:inline-flex;box-shadow:0 .55rem 1.3rem #176bce36}.primary-button:hover:not(:disabled){background:var(--blue-700);transform:translateY(-1px);box-shadow:0 .7rem 1.5rem #176bce45}.primary-button:focus-visible{outline-offset:.15rem;outline:.2rem solid #2b7de04d}.primary-button:disabled{cursor:wait;opacity:.75}.button-spinner{border:2px solid #ffffff6b;border-top-color:#fff;border-radius:50%;width:1rem;height:1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form-alert{color:var(--danger);background:var(--danger-bg);border:1px solid #f0c3c7;border-radius:.65rem;align-items:flex-start;gap:.65rem;padding:.8rem .9rem;font-size:.84rem;line-height:1.45;display:flex}.form-alert--info{color:#174d89;background:#edf6ff;border-color:#bad8fa}.form-alert__icon{border:1px solid;border-radius:50%;flex:none;place-items:center;width:1.2rem;height:1.2rem;font-size:.72rem;font-weight:700;display:inline-grid}.auth-card__footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:.35rem .55rem;margin-top:1.75rem;padding-top:1.5rem;font-size:.86rem;display:flex}.account-chip{background:#f0f5fb;border-radius:.75rem;align-items:center;gap:.8rem;margin:-.4rem 0 1.35rem;padding:.8rem;display:flex}.account-chip>span{color:#fff;background:var(--blue-600);border-radius:50%;flex:none;place-items:center;width:2.45rem;height:2.45rem;font-weight:700;display:grid}.account-chip div{gap:.15rem;display:grid}.account-chip small{color:var(--muted);font-size:.68rem}.account-chip strong{font-size:.88rem}.app-shell{background:#f3f6fa;min-height:100vh}.app-header{border-bottom:1px solid var(--line);background:#ffffffeb;justify-content:space-between;align-items:center;min-height:4.5rem;padding:.75rem clamp(1rem,4vw,3rem);display:flex}.app-brand,.profile-badge{align-items:center;display:flex}.app-brand{color:#153a68;gap:.75rem}.brand-mark--small{background:var(--blue-600);border:0;border-radius:.75rem;grid-template-columns:repeat(3,.28rem);gap:.18rem;width:2.5rem;height:2.5rem;margin:0}.brand-mark--small span{height:.7rem;margin-bottom:.75rem}.brand-mark--small span:nth-child(2){height:1rem}.brand-mark--small span:nth-child(3){height:.48rem}.profile-badge{gap:.65rem}.profile-area{align-items:center;gap:.75rem;display:flex;position:relative}.header-error{z-index:20;width:min(18rem,80vw);color:var(--danger);background:#fff7f8;border:1px solid #efc2c7;border-radius:.55rem;padding:.65rem .75rem;font-size:.7rem;line-height:1.3;position:absolute;top:calc(100% + .65rem);right:0;box-shadow:0 .7rem 1.8rem #2f1f2324}.secondary-button.header-logout{min-height:2.45rem;padding:.5rem .75rem;font-size:.75rem}.profile-badge__avatar{color:#154b85;background:#dcecff;border-radius:50%;place-items:center;width:2.45rem;height:2.45rem;font-weight:700;display:grid}.profile-badge>span:last-child{gap:.1rem;display:grid}.profile-badge strong{font-size:.84rem}.profile-badge small{color:var(--muted);font-size:.68rem}.app-placeholder{text-align:center;max-width:42rem;margin:0 auto;padding:clamp(5rem,15vh,10rem) 1.5rem}.app-placeholder h1{color:#173b69;letter-spacing:-.05em;margin:0;font-size:clamp(2rem,5vw,3.4rem);line-height:1.08}.app-placeholder>p:last-child{max-width:34rem;color:var(--muted);margin:1.25rem auto 0;line-height:1.65}@media (width<=800px){.auth-page{background:var(--surface);display:block}.auth-intro{min-height:auto;padding:2.2rem 1.5rem 4rem}.auth-intro .brand-mark{margin-bottom:3rem}.auth-intro>p:last-child{display:none}.auth-panel{border-radius:1.5rem 1.5rem 0 0;min-height:auto;margin-top:-1.4rem;padding:2.5rem 1.5rem 3rem}.profile-badge>span:last-child{display:none}.profile-area{gap:.4rem}.secondary-button.header-logout{min-height:2.3rem;padding:.45rem .55rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.dialog-open{overflow:hidden}.app-brand{text-decoration:none}.app-navigation{align-items:center;gap:.25rem;display:flex}.app-navigation a{color:#536176;border-radius:.55rem;padding:.6rem .85rem;font-size:.84rem;text-decoration:none}.app-navigation a:hover,.app-navigation a.router-link-active{color:#174f91;background:#edf5ff}.secondary-button,.text-button,.icon-button{font:inherit;cursor:pointer;border:0}.secondary-button{color:#314158;background:#fff;border:1px solid #cbd6e4;border-radius:.65rem;min-height:2.75rem;padding:.65rem 1rem;font-weight:650}.secondary-button:hover:not(:disabled){background:#f7f9fc;border-color:#9cb0c8}.secondary-button--danger{color:#a12c39;background:#fff;border-color:#d7a3aa}.secondary-button--danger:hover:not(:disabled){color:#84232f;background:#fff5f6;border-color:#bd737d}.text-button{color:var(--blue-700);background:0 0;padding:.55rem .65rem;font-weight:650}.text-button--danger{color:#a12c39}.icon-button{color:#536176;background:0 0;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;font-size:1.8rem;line-height:1;display:grid}.icon-button:hover{background:#edf1f6}.compact-button{min-height:2.55rem;margin:0;padding:.55rem .9rem;font-size:.82rem}.calendar-page{grid-template-rows:auto auto minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.calendar-toolbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:1rem;min-height:4.15rem;padding:.65rem clamp(1rem,4vw,3rem);display:flex}.scope-tabs{background:#edf1f6;border-radius:.7rem;gap:.2rem;padding:.22rem;display:inline-flex}.scope-tabs button{color:#5d6878;cursor:pointer;min-width:6.7rem;font:inherit;background:0 0;border:0;border-radius:.52rem;padding:.57rem 1rem;font-size:.82rem;font-weight:650}.scope-tabs button.active{color:#154e91;background:#fff;box-shadow:0 .1rem .35rem #23395324}.calendar-toolbar__actions{justify-content:flex-end;align-items:center;gap:.55rem;min-width:0;display:flex}.toolbar-error{max-width:28rem;color:var(--danger);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.calendar-scroll{overscroll-behavior:contain;scroll-behavior:auto;background:#eef2f7;min-height:0;position:relative;overflow-y:auto}.load-sentinel{min-height:1.8rem;color:var(--muted);place-items:center;font-size:.72rem;display:grid}.calendar-day{background:#fff;border-top:1px solid #d6dfeb;border-bottom:1px solid #d6dfeb;margin:0 0 .75rem}.calendar-day__header{z-index:15;-webkit-backdrop-filter:blur(.6rem);backdrop-filter:blur(.6rem);background:#fffffff5;border-bottom:1px solid #d9e1eb;align-items:center;gap:.65rem;height:3.25rem;padding:0 1rem 0 5.4rem;display:flex;position:sticky;top:0}.calendar-day__weekday{color:#1d3554;font-size:.95rem;font-weight:700}.today-badge{color:#1762b6;background:#e5f1ff;border-radius:999px;padding:.22rem .5rem;font-size:.66rem;font-weight:700}.day-status{color:var(--muted);margin-left:auto;font-size:.7rem}.day-retry{color:var(--danger);cursor:pointer;font:inherit;background:0 0;border:0;margin-left:auto;font-size:.72rem;font-weight:650}.calendar-day__horizontal-scroll{scrollbar-color:#b8c4d2 transparent;overflow-x:auto}.day-surface{grid-template-columns:4.6rem minmax(0,1fr);display:grid}.time-axis{z-index:10;background:#f8fafc;border-right:1px solid #cfd9e5;grid-template-rows:repeat(48,56px);height:2688px;display:grid;position:sticky;left:0}.time-axis span{color:#718096;text-align:right;padding:.38rem .65rem 0 0;font-size:.68rem;display:block;transform:translateY(-.72rem)}.time-grid{background:#fff;grid-template-rows:repeat(48,56px);height:2688px;display:grid;position:relative}.time-slot{cursor:crosshair;background:0 0;border:0;border-bottom:1px solid #e2e8f0}.time-slot:nth-child(odd){border-bottom-style:dashed;border-bottom-color:#edf1f6}.time-slot:hover,.time-slot:focus-visible{z-index:1;outline-offset:-1px;background:#f3f8fe;outline:1px solid #7ab5f3}.now-line{z-index:8;pointer-events:none;background:#e5484d;height:2px;position:absolute;left:0;right:0}.now-line span{background:#e5484d;border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:-.22rem;left:-.26rem}.calendar-task{z-index:4;color:#103f70;cursor:pointer;background:#cfe9ff;border:1px solid #59aaf0;border-left:.25rem solid #1684e8;border-radius:.38rem;min-width:0;padding:.36rem 2rem .35rem .55rem;position:absolute;overflow:hidden;box-shadow:0 .12rem .28rem #16579929}.calendar-task:hover,.calendar-task:focus-visible{z-index:6;outline-offset:1px;outline:.15rem solid #166bce40}.calendar-task strong,.calendar-task small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.calendar-task strong{font-size:.74rem;line-height:1.25}.calendar-task small{color:currentColor;opacity:.78;margin-top:.15rem;font-size:.62rem}.calendar-task--future{color:#fff;background:#2f649b;border-color:#1d4c7d #1d4c7d #1d4c7d #173c65}.calendar-task--completed{color:#394452;background:#d8dde3;border-color:#aeb7c3 #aeb7c3 #aeb7c3 #7d8794}.calendar-task--virtual{background-image:linear-gradient(135deg,#ffffff0d 25%,#0000 25% 50%,#ffffff0d 50% 75%,#0000 75%);background-size:1rem 1rem}.task-complete-button{color:#174f91;cursor:pointer;background:#ffffffb3;border:1px solid #154e9170;border-radius:50%;place-items:center;width:1.35rem;height:1.35rem;font-size:.7rem;font-weight:800;display:grid;position:absolute;top:.25rem;right:.3rem}.dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(.18rem);backdrop-filter:blur(.18rem);background:#101e306b;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog-backdrop--fullscreen{padding:0}.dialog-panel{background:#fff;border-radius:1rem;width:min(100%,30rem);max-height:calc(100vh - 2rem);overflow:auto;box-shadow:0 1.5rem 5rem #0d203742}.dialog-panel--wide{width:min(100%,46rem)}.dialog-panel--fullscreen{border-radius:0;flex-direction:column;width:100%;height:100%;max-height:none;display:flex}.dialog-header,.dialog-footer{justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.3rem;display:flex}.dialog-header{z-index:2;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0}.dialog-header h2{color:#20344e;margin:0;font-size:1.25rem}.dialog-header-actions{flex-shrink:0;align-items:center;gap:.45rem;display:flex}.dialog-content{padding:1.3rem}.dialog-panel--fullscreen .dialog-content{flex:1;min-height:0;padding:0;overflow:auto}.dialog-footer{z-index:2;border-top:1px solid var(--line);background:#fff;justify-content:flex-end;position:sticky;bottom:0}.dialog-action{min-height:2.75rem;margin:0}.danger-button{background:#b2313e;box-shadow:0 .55rem 1.3rem #b2313e2e}.danger-button:hover:not(:disabled){background:#912531}.confirm-message{color:#526075;margin:0;line-height:1.65}.task-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.05rem;display:grid}.editor-field{color:#344258;gap:.42rem;min-width:0;display:grid}.editor-field--full{grid-column:1/-1}.task-date-field{align-content:start;align-self:start}.task-date-field input[type=datetime-local]{box-sizing:border-box;height:2.8rem;min-height:2.8rem}.editor-field>span,.editor-field legend,.interval-grid label span{font-size:.78rem;font-weight:700}.editor-field input,.editor-field textarea,.editor-field select,.interval-grid input{width:100%;min-height:2.8rem;color:var(--ink);background:#fff;border:1px solid #cbd6e3;border-radius:.58rem;outline:none;padding:.65rem .75rem}.editor-field textarea{resize:vertical}.editor-field input:focus,.editor-field textarea:focus,.editor-field select:focus{border-color:var(--blue-500);box-shadow:0 0 0 .2rem #2b7de024}.editor-field small{color:var(--muted);font-size:.68rem;line-height:1.4}.option-fieldset,.interval-grid{border:1px solid #d7e0eb;border-radius:.7rem;flex-wrap:wrap;gap:.55rem;margin:0;padding:.9rem;display:flex}.option-fieldset legend,.interval-grid legend{padding:0 .35rem}.choice-chip{position:relative}.choice-chip input{opacity:0;width:1px;height:1px;position:absolute}.choice-chip span{color:#526075;cursor:pointer;background:#fff;border:1px solid #cbd6e3;border-radius:.55rem;padding:.5rem .68rem;font-size:.75rem;display:block}.choice-chip input:checked+span{color:#174f91;background:#e9f4ff;border-color:#6ca9e9}.choice-chip--person span{border-radius:999px}.interval-grid{grid-template-columns:repeat(5,minmax(4.5rem,1fr));display:grid}.interval-grid label{gap:.35rem;display:grid}.series-edit-note{color:#174f91;background:#edf6ff;border:1px solid #b9d8f8;border-radius:.65rem;margin:0;padding:.8rem .95rem;font-size:.78rem}.task-fullscreen-view,.task-fullscreen-editor{width:min(100% - 2rem,64rem);margin:0 auto;padding:clamp(2rem,6vw,5rem) 0}.task-fullscreen-view h2{color:#1d3554;letter-spacing:-.045em;max-width:48rem;margin:1rem 0 0;font-size:clamp(2rem,5vw,3.6rem);line-height:1.08}.task-fullscreen-state{color:var(--muted);align-items:center;gap:.55rem;font-size:.78rem;font-weight:650;display:flex}.task-fullscreen-description{color:#536176;white-space:pre-wrap;max-width:48rem;margin:1.25rem 0 0;font-size:1rem;line-height:1.65}.task-fullscreen-facts{border-top:1px solid var(--line);gap:0;max-width:48rem;margin:2.25rem 0 0;display:grid}.task-fullscreen-facts div{border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,12rem) 1fr;gap:1.5rem;padding:1rem 0;display:grid}.task-fullscreen-facts dt{color:var(--muted);font-size:.78rem}.task-fullscreen-facts dd{color:#334258;margin:0;font-size:.88rem}.task-overflow{position:relative}.task-overflow__button{font-size:1.55rem}.task-overflow__menu{z-index:5;background:#fff;border:1px solid #d4dde8;border-radius:.65rem;width:13rem;padding:.35rem;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 .9rem 2.2rem #1628402e}.task-overflow__menu button{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;border-radius:.45rem;padding:.7rem .8rem;font-size:.8rem;font-weight:650}.task-overflow__danger{color:#a12c39}.task-overflow__danger:hover{background:#fff0f2}.task-state-dot{background:#1684e8;border-radius:50%;width:.65rem;height:.65rem}.task-state-dot--future{background:#2f649b}.task-state-dot--completed{background:#8993a0}.panel-loading{color:var(--muted);text-align:center;padding:2rem}.family-content{width:min(100% - 2rem,64rem);margin:0 auto;padding:clamp(2rem,6vw,4.5rem) 0}.page-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.75rem;display:flex}.page-heading h1{color:#1d3554;letter-spacing:-.05em;margin:0;font-size:clamp(2rem,5vw,3.2rem)}.page-heading p:last-child{color:var(--muted);margin:.65rem 0 0}.members-card{background:#fff;border:1px solid #d7e0eb;border-radius:.9rem;overflow:hidden;box-shadow:0 .5rem 2rem #1f36520f}.member-row{border-bottom:1px solid #e5eaf1;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;padding:1rem 1.15rem;display:grid}.member-row:last-child{border-bottom:0}.member-avatar{color:#17518f;background:#e2f0ff;border-radius:50%;place-items:center;width:2.6rem;height:2.6rem;font-weight:700;display:grid}.member-identity{gap:.2rem;display:grid}.member-identity strong{color:#253750;font-size:.9rem}.member-identity span,.self-label{color:var(--muted);font-size:.7rem}.member-actions{align-items:center;gap:.4rem;display:flex}.member-form{gap:1rem;display:grid}@media (width<=800px){.app-header{min-height:3.9rem;padding:.55rem .8rem}.app-navigation{order:2}.app-navigation a{padding:.5rem .6rem;font-size:.75rem}.calendar-toolbar{align-items:stretch;padding:.6rem .7rem}.scope-tabs button{min-width:5.2rem;padding-inline:.65rem}.calendar-toolbar__actions .secondary-button,.toolbar-error{display:none}.calendar-day__header{padding-left:4.9rem}.day-surface{grid-template-columns:4.2rem minmax(0,1fr)}.dialog-backdrop{place-items:end center;padding:0}.dialog-panel{border-radius:1rem 1rem 0 0;width:100%;max-height:92vh}.dialog-panel--fullscreen{border-radius:0;width:100%;height:100%;max-height:none}.dialog-panel--fullscreen .dialog-header{gap:.45rem;padding:.65rem .7rem}.dialog-panel--fullscreen .dialog-header h2{font-size:1rem}.dialog-panel--fullscreen .compact-button{min-height:2.35rem;padding:.45rem .6rem;font-size:.72rem}.dialog-panel--fullscreen .icon-button{width:2.25rem;height:2.25rem}.task-form{grid-template-columns:1fr}.editor-field--full{grid-column:auto}.interval-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.task-fullscreen-view,.task-fullscreen-editor{width:min(100% - 1.5rem,64rem);padding:2rem 0}.task-fullscreen-facts div{grid-template-columns:1fr;gap:.35rem}.page-heading{flex-direction:column;align-items:stretch;gap:1rem}.member-row{grid-template-columns:auto 1fr}.member-actions,.self-label{grid-column:2;justify-content:flex-start}}
