/* Parent center: values come only from authenticated APIs. */
body:not(.parent-login-view) {
    color: #17324c;
    background: radial-gradient(circle at 92% 2%, #e1f0ff 0, transparent 340px), #f4f7fb;
}
body:not(.parent-login-view) .stars,
body:not(.parent-login-view) .cloud { display: none; }
body:not(.parent-login-view) .topbar {
    position: sticky;
    top: 0;
    z-index: 12;
    gap: 24px;
    min-height: 76px;
    padding: 12px max(24px, calc((100vw - 1280px) / 2));
    border-bottom: 1px solid #e1eaf3;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(12px);
}
body:not(.parent-login-view) .brand__zh { color: #1764a9; }
body:not(.parent-login-view) .brand__en { color: #7895b1; }
body:not(.parent-login-view) .account-name { color: #536d86; }
body:not(.parent-login-view) .back,
body:not(.parent-login-view) .logout {
    box-shadow: none;
    border: 1px solid #d7e5f1;
    background: #f7fbff;
    color: #2a638f;
}
.parent-center-nav { display: flex; gap: 5px; align-items: center; margin: auto; }
.parent-center-nav a {
    padding: 9px 13px;
    border-radius: 10px;
    color: #56718d;
    text-decoration: none;
    font-size: .84rem;
    font-weight: 700;
    white-space: nowrap;
}
.parent-center-nav a:hover, .parent-center-nav a:focus-visible { color: #146ac0; background: #edf6ff; }
body:not(.parent-login-view) .page { max-width: 1280px; padding: 34px 24px 56px; }
body:not(.parent-login-view) .page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
    text-align: left;
    color: #17324c;
}
body:not(.parent-login-view) .page-head .eyebrow { color: #3986c9; font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
body:not(.parent-login-view) .page-head h1 { color: #13385d; font-size: clamp(1.7rem, 3vw, 2.5rem); text-shadow: none; }
body:not(.parent-login-view) .page-head .subtitle { margin-top: 7px; color: #6b8195; font-size: .9rem; }
.parent-date-chip { flex: none; padding: 11px 15px; border: 1px solid #d9e7f3; border-radius: 999px; background: #fff; color: #5b7690; font-size: .82rem; }
body:not(.parent-login-view) .dashboard { gap: 20px; }
body:not(.parent-login-view) .panel {
    min-width: 0;
    border: 1px solid #e2eaf3;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(30,79,125,.055);
}
.parent-center-intro {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 22px 28px;
    border: 1px solid #b7d9f7;
    border-radius: 19px;
    color: #fff;
    background: linear-gradient(115deg, #247bc5, #3b94dc 62%, #69b7e8);
    box-shadow: 0 16px 32px rgba(36,123,197,.15);
}
.parent-center-intro span { display: block; margin-bottom: 6px; color: #d9efff; font-size: .72rem; letter-spacing: .16em; }
.parent-center-intro strong { display: block; font: 900 clamp(1.2rem, 2.3vw, 1.7rem) var(--serif); }
.parent-center-intro p { max-width: 420px; color: #f4fbff; font-size: .82rem; line-height: 1.7; }
.parent-overview-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 20px; }
.parent-overview-grid > .panel { padding: 24px; }
.parent-card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; }
.parent-card-head h2 { margin-top: 5px; color: #173653; font: 900 1.18rem var(--serif); }
.parent-card-head a { color: #287dc4; font-size: .8rem; text-decoration: none; white-space: nowrap; }
.parent-kicker { color: #8aa0b5; font: 600 .64rem var(--mono); letter-spacing: .12em; }
.parent-status-pill, .parent-attendance-state { padding: 6px 10px; border-radius: 999px; color: #257b60; background: #e7f6ef; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.parent-attendance-state[data-status="pending"] { color: #957123; background: #fff3d9; }
.parent-attendance-state[data-status="negative"] { color: #b55353; background: #fff0ef; }
.parent-profile-card .student-picker { max-width: 240px; margin: -5px 0 18px; }
.parent-profile-card .student-picker select { min-height: 38px; border-radius: 9px; }
.parent-profile-main { display: flex; align-items: center; gap: 16px; padding: 18px; border-radius: 14px; background: linear-gradient(110deg, #eaf5ff, #f8fbff); }
.parent-profile-avatar { display: grid; flex: none; width: 58px; height: 58px; place-items: center; border-radius: 16px; color: #2479bf; background: #d6ebfc; font: 900 1.4rem var(--serif); }
.parent-profile-main strong { display: block; font: 900 1.35rem var(--serif); }
.parent-profile-main p { margin-top: 4px; color: #6d849a; font-size: .81rem; }
.parent-profile-details { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; margin-top: 11px; }
.parent-profile-details div { min-width: 0; padding: 12px 0; border-bottom: 1px solid #edf2f7; }
.parent-profile-details dt { color: #8a9cad; font-size: .72rem; }
.parent-profile-details dd { margin: 5px 0 0; color: #24425c; font-size: .84rem; font-weight: 600; overflow-wrap: anywhere; }
.parent-attendance-detail { min-height: 42px; color: #4a6883; font-size: .88rem; line-height: 1.7; }
.parent-attendance-week { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; margin: 15px 0; }
.parent-attendance-day { display: grid; gap: 4px; place-items: center; min-height: 66px; padding: 6px 2px; border: 1px solid #e3edf5; border-radius: 10px; background: #f8fbfe; text-align: center; }
.parent-attendance-day[data-today="true"] { border-color: #65a7df; background: #eff8ff; }
.parent-attendance-day[data-status="present"] { color: #217a5e; background: #eaf7f1; }
.parent-attendance-day[data-status="leave"] { color: #a36e28; background: #fff4e3; }
.parent-attendance-day[data-status="absent"] { color: #b85656; background: #fff0f0; }
.parent-attendance-day span { color: #7c92a6; font-size: .68rem; }
.parent-attendance-day strong { font-size: .86rem; }
.parent-attendance-day small { font-size: .61rem; white-space: nowrap; }
.parent-card-note { color: #8296a8; font-size: .73rem; line-height: 1.65; }
.parent-finance-amount { margin-top: 7px; color: #246fb3; font: 900 clamp(1.6rem, 3vw, 2.1rem) var(--serif); }
.parent-finance-card > p:not(.parent-card-note) { margin-top: 4px; color: #6c8296; font-size: .8rem; line-height: 1.65; }
.parent-finance-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 19px 0 14px; }
.parent-finance-metrics div { padding: 12px; border-radius: 10px; background: #f4f8fc; }
.parent-finance-metrics span { display: block; color: #7f92a6; font-size: .72rem; }
.parent-finance-metrics strong { display: block; margin-top: 5px; font-size: 1rem; }
.parent-leave-list { display: grid; gap: 9px; }
.parent-leave-item { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid #e9eff5; border-radius: 10px; background: #f9fbfd; }
.parent-leave-item strong { display: block; font-size: .82rem; }
.parent-leave-item small { display: block; margin-top: 4px; color: #8294a6; font-size: .72rem; }
.parent-leave-item > span { align-self: center; color: #4b779c; font-size: .75rem; white-space: nowrap; }
.parent-inline-action { padding: 8px 11px; border: 1px solid #bddaf1; border-radius: 9px; color: #2478b8; background: #edf7ff; font: 700 .76rem var(--sans); cursor: pointer; white-space: nowrap; }
.parent-inline-action:disabled { opacity: .5; cursor: not-allowed; }
.parent-leave-dialog { width: min(460px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 25px; border: 1px solid #d7e6f2; border-radius: 18px; box-shadow: 0 24px 70px rgba(14,58,96,.24); color: #24415c; }
.parent-leave-dialog::backdrop { background: rgba(16,42,67,.47); }
.parent-leave-dialog form { display: grid; gap: 13px; }
.parent-leave-dialog h2 { font: 900 1.25rem var(--serif); }
.parent-leave-dialog p { color: #71889c; font-size: .8rem; line-height: 1.6; }
.parent-leave-dialog label { display: grid; gap: 6px; font-size: .79rem; font-weight: 700; }
.parent-leave-dialog input, .parent-leave-dialog select, .parent-leave-dialog textarea { width: 100%; padding: 10px 12px; border: 1px solid #ccdeec; border-radius: 9px; background: #fff; color: #183653; font: inherit; }
.parent-leave-dialog textarea { min-height: 80px; resize: vertical; }
.parent-leave-dialog #parentLeaveMessage { color: #b45555; }
.parent-leave-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; }
.parent-leave-dialog-actions button { padding: 9px 15px; border: 1px solid #cadde9; border-radius: 9px; color: #496d8b; background: #f5f9fc; font: 700 .82rem var(--sans); cursor: pointer; }
.parent-leave-dialog-actions button[type="submit"] { border-color: #227bc0; color: #fff; background: #2b84cb; }
.parent-leave-dialog-actions button:disabled { opacity: .6; cursor: wait; }
body:not(.parent-login-view) .summary, body:not(.parent-login-view) .service-metric { border-color: #e6eef6; border-radius: 11px; background: #f7fafd; }
body:not(.parent-login-view) .chart-grid { gap: 20px; }
body:not(.parent-login-view) .pill-nav { display: none; }
html { scroll-behavior: smooth; }
section[id], header[id] { scroll-margin-top: 96px; }
@media (max-width: 900px) {
    body:not(.parent-login-view) .topbar { flex-wrap: wrap; gap: 10px; }
    .parent-center-nav { order: 3; width: 100%; justify-content: space-between; overflow-x: auto; }
    .parent-overview-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    body:not(.parent-login-view) .topbar { padding: 11px 16px; }
    body:not(.parent-login-view) .page { padding: 22px 14px 38px; }
    body:not(.parent-login-view) .page-head { align-items: flex-start; }
    .parent-date-chip { display: none; }
    .parent-center-intro { display: block; padding: 19px; }
    .parent-center-intro p { margin-top: 9px; }
    .parent-overview-grid { gap: 12px; }
    .parent-overview-grid > .panel { padding: 18px; }
    .parent-attendance-week { gap: 4px; }
    .parent-attendance-day { min-height: 61px; }
    .parent-attendance-day small { font-size: .56rem; }
}

body:not(.parent-login-view) { padding-bottom: 0; }
.parent-center-intro strong b { color: inherit; font: inherit; }
.parent-dashboard-notice { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; border: 1px solid #efd7a4; border-radius: 12px; color: #805f25; background: #fff8e8; font-size: .8rem; line-height: 1.6; }
.parent-dashboard-notice button { flex: none; min-height: 38px; padding: 8px 13px; border: 1px solid #e1c786; border-radius: 9px; color: #7f5a16; background: #fff; font: 700 .76rem var(--sans); cursor: pointer; }
.parent-glance-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.parent-glance-grid a { position: relative; display: grid; gap: 7px; min-width: 0; min-height: 112px; padding: 17px 18px; overflow: hidden; border: 1px solid #dde9f4; border-radius: 15px; color: #234b6d; background: linear-gradient(145deg,#fff,#f4f9fd); text-decoration: none; box-shadow: 0 8px 22px rgba(38,88,132,.045); }
.parent-glance-grid a::after { content: "→"; position: absolute; top: 14px; right: 15px; color: #8db3d2; font-weight: 800; }
.parent-glance-grid a[data-tone="green"] { border-color: #d6e9df; background: linear-gradient(145deg,#fff,#f1faf6); }
.parent-glance-grid a[data-tone="amber"] { border-color: #eee1c2; background: linear-gradient(145deg,#fff,#fff9ec); }
.parent-glance-grid a[data-tone="violet"] { border-color: #e5def0; background: linear-gradient(145deg,#fff,#f8f4fc); }
.parent-glance-grid span { padding-right: 22px; color: #7c91a5; font-size: .72rem; }
.parent-glance-grid strong { color: #1d527e; font: 900 1.16rem var(--serif); overflow-wrap: anywhere; }
.parent-glance-grid [data-tone="green"] strong { color: #28795f; }
.parent-glance-grid [data-tone="amber"] strong { color: #976c20; }
.parent-glance-grid [data-tone="violet"] strong { color: #72578d; }
.parent-glance-grid small { display: -webkit-box; overflow: hidden; color: #8295a7; font-size: .69rem; line-height: 1.55; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.parent-empty-state { display: flex; align-items: center; gap: 20px; padding: 28px!important; }
.parent-empty-icon { display: grid; place-items: center; flex: none; width: 68px; height: 68px; border-radius: 20px; color: #2a78b8; background: #e5f2fd; font: 900 1.5rem var(--serif); }
.parent-empty-state h2 { color: #24435e; font: 900 1.22rem var(--serif); }
.parent-empty-state p { margin: 8px 0; color: #73889b; font-size: .82rem; line-height: 1.75; }
.parent-empty-state a { color: #2779bc; font-size: .8rem; font-weight: 700; text-decoration: none; }
.parent-profile-avatar { overflow: hidden; }
.parent-profile-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.parent-profile-avatar b { font: inherit; }
.parent-load-error { padding: 13px 14px; border-radius: 9px; color: #8a6322!important; background: #fff7e6; }
.chart-box canvas { display: block; width: 100%!important; max-width: 100%!important; }
.dashboard[aria-busy="true"] .parent-glance-grid { opacity: .72; }
.dashboard.has-no-student [data-student-content] { display: none!important; }

@media (max-width: 900px) {
    .parent-glance-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    body:not(.parent-login-view) .account-actions { margin-left: auto; }
}
@media (max-width: 600px) {
    body:not(.parent-login-view) .topbar { gap: 8px; }
    body:not(.parent-login-view) .account-actions { gap: 6px; }
    body:not(.parent-login-view) #manageSiteAccount, body:not(.parent-login-view) .account-name { display: none!important; }
    body:not(.parent-login-view) .back, body:not(.parent-login-view) .logout { min-height: 38px; padding: 8px 10px; font-size: .73rem; }
    .parent-center-nav { gap: 3px; padding-bottom: 2px; }
    .parent-center-nav a { flex: 0 0 auto; padding: 8px 11px; font-size: .75rem; }
    .parent-glance-grid { gap: 9px; }
    .parent-glance-grid a { min-height: 104px; padding: 15px; }
    .parent-glance-grid strong { font-size: 1.02rem; }
    .parent-dashboard-notice { align-items: stretch; flex-direction: column; }
    .parent-dashboard-notice button { align-self: flex-start; }
    .parent-empty-state { align-items: flex-start; padding: 20px!important; }
    .parent-empty-icon { width: 52px; height: 52px; border-radius: 15px; font-size: 1.15rem; }
    .parent-profile-details { grid-template-columns: 1fr; }
}
