/* Family presentation shared by the owner, child and invited adult pages.
   StudyBuddy's clear slate surfaces, blue actions and green school focus are
   visual references; Zapp still owns planning, knowledge and practical work. */
body:is(.app-shell,.coparent,.login-page,.account-page){
  --bg:#f8fafc;
  --panel:#fff;
  --ink:#0f172a;
  --muted:#475569;
  --line:#dce5f0;
  --accent-soft:#eff6ff;
  --work:#1d4ed8;
  --shadow:0 1px 3px rgba(15,23,42,.06);
  background:var(--bg);
}
body:is(.coparent,.login-page,.account-page),
body.app-shell:not(.theme-cas):not(.theme-isa){--accent:#1d4ed8}
body:is(.app-shell,.coparent,.login-page,.account-page) :is(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid #2563eb;
  outline-offset:3px;
}

/* The app shell keeps its existing scroll owner and phone navigation. */
.app-shell header{min-height:58px;padding-inline:clamp(14px,2vw,28px)}
.app-shell header h1{font-size:19px;color:#1d4ed8}
.app-shell .topbar{box-shadow:0 1px 0 var(--line)}
.app-shell .tabs{gap:4px;padding-block:6px;border-color:var(--line)}
.app-shell .tabs button{border-radius:9px;font-size:14px;min-height:40px;padding:8px 12px}
.app-shell .tabs button[aria-pressed="true"]{
  background:#eff6ff;
  color:#1d4ed8;
  box-shadow:none;
}
.app-shell .card{border-color:var(--line);border-radius:16px;box-shadow:var(--shadow)}
.app-shell.home-family[data-tab="today"] main{max-width:1380px}
.app-shell .home-intro{gap:14px}
.app-shell .home-rail>h2,.app-shell .home-agenda>h2{
  color:var(--ink);
  font-size:17px;
  font-weight:750;
  padding:15px 17px;
}
.app-shell .home-school{border-color:#a7f3d0}
.app-shell .home-school>h2{background:#ecfdf5;color:#065f46}
.app-shell .home-rail{box-shadow:var(--shadow)}
.app-shell .home-readiness{background:var(--panel)}
.app-shell .quickask{border-color:#bfdbfe;box-shadow:var(--shadow)}
.app-shell .quickask button{background:#1d4ed8;color:#fff}
.app-shell .today-shortcuts :is(button,a){
  border-radius:12px;
  box-shadow:var(--shadow);
  min-height:72px;
}
.app-shell .today-shortcuts #studyBuddyLink{
  border-color:#1d4ed8;
  background:#1d4ed8;
  color:#fff;
}
.app-shell .today-shortcuts #studyBuddyLink :is(b,span){color:#fff}
.app-shell .hero{background:linear-gradient(125deg,#eff6ff,#fff 78%);border-color:#bfdbfe}
.app-shell .fab{background:#1d4ed8}

/* Invited adults use the same visual hierarchy, with their existing grants. */
.coparent{--shared-ink:#0f172a;--shared-sky:#eff6ff;--shared-teal:#1d4ed8}
.coparent header{
  position:sticky;
  top:0;
  z-index:20;
  min-height:58px;
  padding-inline:clamp(14px,2vw,28px);
  box-shadow:0 1px 0 var(--line);
}
.coparent header h1{color:#1d4ed8}
.coparent main{max-width:1220px;padding:22px clamp(14px,2vw,28px) 48px}
.coparent .shared-heading{
  border:1px solid #bfdbfe;
  border-radius:18px;
  background:linear-gradient(110deg,#eff6ff,#fff 72%);
  box-shadow:none;
}
.coparent .shared-heading h2{color:var(--ink)}
.coparent .shared-eyebrow{color:#1d4ed8}
.coparent .shared-studybuddy-link{
  background:#1d4ed8;
  border-color:#1d4ed8;
  color:#fff;
  box-shadow:none;
}
.coparent .shared-studybuddy-link:hover{background:#1e40af;border-color:#1e40af}
.coparent .shared-tabs{margin:16px 0 10px;gap:6px}
.coparent .shared-tabs button{
  border-color:transparent;
  background:transparent;
  color:var(--muted);
  font-size:14px;
  font-weight:650;
  min-height:42px;
  padding:8px 12px;
  border-radius:9px;
}
.coparent .shared-tabs button:hover{background:#eff6ff;color:#1d4ed8}
.coparent .shared-tabs button[aria-selected="true"]{
  background:#eff6ff;
  border-color:transparent;
  color:#1d4ed8;
}
.coparent .shared-mobile-nav{display:none}
.coparent .shared-filter-panel{margin:0 0 16px;border:0}
.coparent .shared-filter-panel>summary{color:#1d4ed8;font-weight:600}
.coparent .home-school{border-color:#a7f3d0}
.coparent .home-school>h2{background:#ecfdf5;color:#065f46}
.coparent .home-rail,.coparent .home-readiness,.coparent .home-planning{box-shadow:var(--shadow)}
.coparent .shared-agenda-preview-head h2{margin:0;color:var(--ink);font-size:17px;font-weight:750}
.coparent .shared-agenda-preview-head p{margin:4px 0 0}
.coparent .shared-day-more{margin:8px 0 0;color:var(--muted);font-size:13px}
.coparent .shared-agenda-preview-footer{margin:18px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.coparent .shared-agenda-preview-footer p{margin:0}
.coparent .shared-agenda-preview-footer button{min-height:44px;padding:9px 14px;border:0;border-radius:10px;background:#1d4ed8;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.coparent .shared-agenda-preview-footer button:hover{background:#1e40af}
.readiness-more>summary,.coparent .planning-more>summary{
  min-height:44px;
  padding:11px 16px;
  border-top:1px solid var(--line);
  color:#1d4ed8;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}
.readiness-more[open]>summary,.coparent .planning-more[open]>summary{border-bottom:1px solid var(--line)}
.readiness-more .readiness-items{padding-bottom:8px}
.coparent .planning-more>button{margin:10px 16px 14px}
.shared-home-open #status{display:none}
.coparent .shared-readiness-coverage:not(:empty){
  margin:0 0 14px;
  padding:10px 12px;
  border-left:3px solid var(--warn);
  border-radius:8px;
  background:var(--panel);
}
.coparent .shared-readiness-coverage .readiness-coverage{margin:0}
.coparent .shared-quickask{
  margin:18px 0 16px;
  background:#eff6ff;
  border-color:#bfdbfe;
}
.coparent .shared-quickask label{color:var(--ink)}
.coparent .shared-quickask input{border-color:#bfdbfe}
.coparent .shared-quickask button,.coparent .shared-ask-form button{
  background:#1d4ed8;
  color:#fff;
}
.coparent .shared-ask{border-color:#bfdbfe;box-shadow:var(--shadow)}
.coparent .shared-ask-mark{background:#eff6ff;color:#1d4ed8}
.coparent .shared-ask-head h3{color:var(--ink)}
.coparent .shared-ask-bubble.mine{background:#1d4ed8;color:#fff}
.coparent .shared-ask-suggestions button{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}

/* Keep the shared Home focused on the next two days. Full lists stay one tap away. */
.coparent #sharedSchoolSource[hidden]{display:none}
.coparent #sharedHomeSchool[hidden],.coparent #sharedHomeHobbies[hidden],.coparent #agenda[hidden]{display:none}
.coparent .shared-home-layout{min-width:0}
.coparent .shared-home-layout .home-rail{max-height:none;position:static;overflow:visible}
.coparent .shared-home-layout .home-rail-body{overflow:visible}
.coparent .shared-task-disclosure{min-width:0}
.coparent .shared-task-disclosure>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:72px;
  padding:13px 16px;
  cursor:pointer;
  list-style:none;
}
.coparent .shared-task-disclosure>summary::-webkit-details-marker{display:none}
.coparent .shared-task-disclosure>summary>span:first-child{min-width:0}
.coparent .shared-task-disclosure h2{display:block;margin:0;padding:0;border:0;color:var(--ink);font-size:16px;line-height:1.3}
.coparent .shared-task-disclosure small{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35}
.coparent .shared-task-action{flex:none;color:#1d4ed8;font-size:13px;font-weight:700}
.coparent .shared-task-action::after{content:' ▾'}
.coparent .shared-task-disclosure[open] .shared-task-action::after{content:' ▴'}
.coparent .shared-task-disclosure[open]>summary{border-bottom:1px solid var(--line)}
.coparent .shared-stay{display:inline-block;margin:0 0 8px;padding:4px 10px;border-radius:8px;background:#eff6ff;color:#1e40af;font-size:13px;font-weight:650}
.coparent .shared-event .person-badge+.person-badge{margin-left:5px}
.coparent .shared-agenda-preview-head{margin:0 0 12px}
.coparent.shared-home-open #agenda .shared-day{margin:0 0 20px}
.coparent.shared-home-open #agenda .shared-day h3{margin:0 0 7px}
.coparent.shared-home-open #agenda .shared-event{padding:11px 14px}
.coparent.shared-home-open .shared-agenda-preview-footer{margin-top:8px}
.coparent:not(.shared-home-open) #sharedHomeSchool:not([hidden]){margin:0 0 18px}
@media(min-width:901px){
  .coparent.shared-home-open .shared-home-layout{grid-template-columns:minmax(0,1.75fr) minmax(290px,.85fr);grid-template-rows:min-content 1fr;gap:16px 22px}
  .coparent.shared-home-open #agenda{grid-column:1;grid-row:1 / span 2}
  .coparent.shared-home-open #sharedHomeSchool{grid-column:2;grid-row:1}
  .coparent.shared-home-open #sharedHomeHobbies{grid-column:2;grid-row:2}
}
@media(max-width:900px){
  .coparent.shared-home-open #sharedHomeSchool{grid-row:1}
  .coparent.shared-home-open #agenda{grid-row:2}
  .coparent.shared-home-open #sharedHomeHobbies{grid-row:3}
}

/* First sign-in and account management use the same family identity. */
body.login-page{min-height:100dvh;background:linear-gradient(135deg,#eff6ff,#fff 54%,#f5f3ff)}
.login-page .login-brand{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:center;
  gap:12px;
  max-width:480px;
  margin:clamp(24px,7vh,72px) auto 0;
  padding:0 16px;
  border:0;
  background:transparent;
  box-shadow:none;
}
.login-page .login-brand>div{min-width:0}
.login-brand-mark{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  flex:none;
  border-radius:13px;
  background:linear-gradient(135deg,#3b82f6,#7c3aed);
  color:#fff;
  font-size:23px;
}
.login-page .login-brand h1{margin:0;color:#1d4ed8;font-size:30px;line-height:1.12}
.login-page .login-brand p{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.45}
.login-page .wrap.single{max-width:480px;padding:22px 14px 42px}
.login-page .panel{border-color:var(--line);border-radius:18px;box-shadow:0 14px 38px rgba(15,23,42,.11)}
.login-page .panel h2{color:var(--ink);font-size:24px}
.login-page .loginform input{background:#fff;border-color:#cbd5e1}
.login-page .loginform .primary{background:#1d4ed8;color:#fff}
.account-page header{min-height:58px;padding-inline:clamp(14px,2vw,28px)}
.account-page header h1{color:#1d4ed8}
.account-page .panel{border-color:var(--line);border-radius:16px}
.account-page .panel h2{
  color:var(--ink);
  font-size:18px;
  font-weight:750;
  letter-spacing:0;
  text-transform:none;
}
.account-page .account-notice{background:#eff6ff;color:#1e40af}
.account-page button.primary{background:#1d4ed8;color:#fff}

@media(max-width:899px){
  .app-shell .tabs button{min-height:48px;padding:5px 4px;font-size:11px}
  .app-shell .today-shortcuts :is(button,a){min-height:62px}
}
@media(max-width:600px){
  .coparent main{padding:12px 14px calc(104px + env(safe-area-inset-bottom))}
  .coparent .shared-heading{padding:14px 16px}
  .coparent .shared-agenda-preview-footer button{width:100%}
  .coparent .shared-tabs{display:none}
  .coparent .shared-mobile-nav{
    display:block;
    position:fixed;
    inset:auto 0 0;
    z-index:30;
  }
  .coparent .shared-mobile-nav-bar{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:4px;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom));
    border-top:1px solid var(--line);
    background:var(--panel);
    box-shadow:0 -4px 18px rgba(15,23,42,.08);
  }
  .coparent .shared-mobile-nav-bar button{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-width:0;
    min-height:55px;
    padding:4px 2px;
    border:0;
    border-radius:11px;
    background:transparent;
    color:var(--muted);
    font-family:inherit;
    font-size:12px;
    font-weight:600;
    line-height:1.2;
    cursor:pointer;
  }
  .coparent .shared-mobile-nav-bar button>span:first-child{font-size:20px;line-height:1.15}
  .coparent .shared-mobile-nav-bar button[aria-pressed="true"]{
    background:var(--accent-soft);
    color:var(--accent);
  }
  .coparent .shared-mobile-more{
    position:absolute;
    left:14px;
    right:14px;
    bottom:calc(100% + 8px);
    display:grid;
    gap:4px;
    max-height:min(300px,55dvh);
    overflow-y:auto;
    padding:10px;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--panel);
    box-shadow:0 14px 36px rgba(15,23,42,.18);
  }
  .coparent .shared-mobile-more[hidden]{display:none}
  .coparent .shared-mobile-more p{margin:2px 8px 5px;color:var(--muted);font-size:12px;font-weight:700}
  .coparent .shared-mobile-more button{
    min-height:46px;
    padding:10px 12px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:var(--ink);
    font-family:inherit;
    font-size:14px;
    font-weight:600;
    line-height:1.3;
    text-align:left;
    cursor:pointer;
  }
  .coparent .shared-mobile-more button[aria-pressed="true"],
  .coparent .shared-mobile-more button:hover{background:var(--accent-soft);color:var(--accent)}
  .coparent .shared-filter-panel{margin:0 0 10px}
  .app-shell .home-rail .prep-tabs,.coparent .home-rail .prep-tabs{
    display:flex;
    gap:2px;
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .app-shell .home-rail .prep-tabs button,.coparent .home-rail .prep-tabs button{
    flex:1 0 auto;
    min-height:42px;
    padding:7px 8px;
    font-size:12px;
  }
  .coparent .shared-quickask{padding:12px;margin:14px 0}
  .coparent .shared-quickask label{
    position:static;
    width:auto;
    height:auto;
    margin:0;
    overflow:visible;
    clip:auto;
    white-space:normal;
  }
  .login-page .login-brand{justify-content:flex-start;margin-top:32px}
  .login-page .wrap.single{padding-top:18px}
}
@media(max-width:600px) and (max-height:600px){
  .coparent .shared-ask{
    height:calc(100dvh - 280px);
    min-height:220px;
    max-height:calc(100dvh - 280px);
  }
  .coparent .shared-ask-suggestions{display:none}
}
@media(prefers-color-scheme:dark){
  body:is(.app-shell,.coparent,.login-page,.account-page){
    --bg:#0f172a;
    --panel:#1e293b;
    --ink:#f8fafc;
    --muted:#cbd5e1;
    --line:#334155;
    --accent-soft:#172554;
    --work:#93c5fd;
    background:var(--bg);
  }
  body:is(.coparent,.login-page,.account-page),
  body.app-shell:not(.theme-cas):not(.theme-isa){--accent:#93c5fd}
  .app-shell .tabs button[aria-pressed="true"],
  .coparent .shared-tabs button[aria-selected="true"]{background:#172554;color:#bfdbfe}
  .app-shell .home-school,.coparent .home-school{border-color:#065f46}
  .app-shell .home-school>h2,.coparent .home-school>h2{background:#064e3b;color:#d1fae5}
  .app-shell .hero{background:linear-gradient(125deg,#172554,var(--panel) 78%);border-color:#1e40af}
  .app-shell .quickask{border-color:#1e40af}
  .coparent{--shared-ink:#f8fafc;--shared-sky:#172554;--shared-teal:#93c5fd}
  .coparent header h1,.app-shell header h1,.account-page header h1{color:#bfdbfe}
  .coparent .shared-heading{background:linear-gradient(110deg,#172554,#1e293b 72%);border-color:#1e40af}
  .coparent .shared-tabs button:hover{background:#172554;color:#bfdbfe}
  .coparent .shared-filter-panel>summary,.coparent .shared-eyebrow{color:#bfdbfe}
  .coparent .shared-quickask{background:#172554;border-color:#1e40af}
  .coparent .shared-quickask input{border-color:#1e40af}
  .coparent .shared-ask{border-color:#1e40af}
  .coparent .shared-ask-mark,.coparent .shared-ask-suggestions button{background:#172554;color:#bfdbfe;border-color:#1e40af}
  .coparent .shared-task-action{color:#bfdbfe}
  .coparent .shared-stay{background:#172554;color:#bfdbfe}
  .readiness-more>summary,.coparent .planning-more>summary{color:#bfdbfe}
  body.login-page{background:linear-gradient(135deg,#172554,#0f172a 54%,#1e1b4b)}
  .login-page .login-brand h1,.login-page .panel h2{color:#f8fafc}
  .login-page .loginform input{background:#1e293b;border-color:#475569;color:#f8fafc}
  .account-page .account-notice{background:#172554;color:#bfdbfe}
}
