.gfs-parent-register,
.gfs-parent-dashboard,
.gfs-parent-auth-message {
    --gfs-parent-ink: #17213c;
    --gfs-parent-muted: #6d7690;
    --gfs-parent-purple: #6759e8;
    --gfs-parent-blue: #4287f5;
    --gfs-parent-mint: #22b8a7;
    --gfs-parent-orange: #ffad4d;
    --gfs-parent-surface: #fff;
    --gfs-parent-line: #e8ebf4;
    font-family: inherit;
    color: var(--gfs-parent-ink);
    box-sizing: border-box;
}

.gfs-parent-register *,
.gfs-parent-dashboard *,
.gfs-parent-auth-message * { box-sizing: border-box; }

.gfs-parent-register-form {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gfs-parent-register .gigen-auth-card[hidden],
.gfs-parent-register .gigen-error[hidden] { display: none !important; }
.gfs-parent-register .gfs-register-form-only .gigen-form-box {
    width: min(100%, 560px);
    max-width: 560px;
    grid-column: 1 / -1;
    justify-self: center;
    margin-inline: auto;
}
.gfs-parent-register .gigen-title { margin-top: 0; text-align: center; }
.gfs-parent-register-note {
    width: 100%;
    margin: 4px 0 9px;
    color: rgba(255,255,255,.7);
    font-size: 11px;
    line-height: 1.8;
    text-align: center;
}
.gfs-parent-login-link {
    width: 100%;
    margin: 14px 0 0;
    color: rgba(255,255,255,.68);
    font-size: 12px;
    text-align: center;
}
.gfs-parent-login-link a { color: #7edcff; font-weight: 700; text-decoration: none; }
.gfs-parent-login-link a:hover,.gfs-parent-login-link a:focus-visible { color: #fff; text-decoration: underline; }
.gfs-parent-otp-message {
    width: 100%;
    margin: 6px 0 4px;
    padding: 10px 12px;
    border: 1px solid rgba(84,213,179,.45);
    border-radius: 8px;
    color: #e6fff8;
    background: rgba(70,185,70,.15);
    font-size: 12px;
    line-height: 1.8;
    text-align: center;
}
.gfs-parent-otp-mobile { margin: 4px 0 10px; color: rgba(255,255,255,.76); font-size: 12px; }
.gfs-parent-otp-mobile strong { color: #fff; direction: ltr; unicode-bidi: embed; }
.gfs-parent-otp-resend {
    margin: 15px auto 0;
    padding: 5px 8px;
    border: 0;
    background: transparent !important;
    color: #7edcff !important;
    font-family: inherit;
    font-size: 11px;
    cursor: pointer;
}
.gfs-parent-otp-resend:disabled { color: rgba(255,255,255,.48) !important; cursor: default; }

.gfs-parent-auth-message {
    width: min(560px, calc(100% - 32px));
    margin: 60px auto;
    padding: 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border: 1px solid var(--gfs-parent-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(32,42,85,.1);
}
.gfs-parent-auth-message a { color: #fff; padding: 9px 16px; border-radius: 10px; background: var(--gfs-parent-purple); text-decoration: none; white-space: nowrap; }

.gfs-parent-dashboard {
    width: min(1440px, calc(100% - 30px));
    margin: 24px auto 64px;
    padding-bottom: 20px;
    background: #f7f8fc;
    border-radius: 34px;
    box-shadow: 0 30px 90px rgba(31,39,75,.08);
    overflow: hidden;
}

.gfs-parent-hero {
    position: relative;
    min-height: 260px;
    display: flex;
    align-items: center;
    padding: 48px clamp(30px, 6vw, 84px);
    color: #fff;
    overflow: hidden;
    background: linear-gradient(125deg, #221e55 0%, #4f45bc 47%, #387fd5 100%);
}
.gfs-parent-hero::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: radial-gradient(circle at 1px 1px, #fff 1px, transparent 0); background-size: 24px 24px; mask-image: linear-gradient(90deg, transparent, #000); }
.gfs-parent-hero-glow { position: absolute; width: 440px; height: 440px; left: -120px; top: -210px; border-radius: 50%; background: rgba(94,211,255,.24); filter: blur(4px); }
.gfs-parent-hero-copy { position: relative; z-index: 2; max-width: 770px; }
.gfs-parent-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; color: #bfe9ff; font-size: 12px; font-weight: 700; }
.gfs-parent-kicker i { width: 8px; height: 8px; border-radius: 50%; background: #74ebc5; box-shadow: 0 0 0 5px rgba(116,235,197,.15); }
.gfs-parent-hero h1 { margin: 0; color: #fff; font-size: clamp(29px, 4vw, 48px); line-height: 1.35; letter-spacing: -1.2px; }
.gfs-parent-hero p { margin: 10px 0 22px; color: rgba(255,255,255,.74); font-size: 14px; }
.gfs-parent-hero-meta { display: flex; flex-wrap: wrap; gap: 9px; }
.gfs-parent-hero-meta span { padding: 7px 12px; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; color: rgba(255,255,255,.82); background: rgba(255,255,255,.08); font-size: 10px; backdrop-filter: blur(8px); }
.gfs-parent-hero-mark { position: absolute; z-index: 1; left: clamp(90px, 17vw, 250px); top: 50%; width: 170px; height: 170px; transform: translateY(-50%); opacity: .17; }
.gfs-parent-hero-mark svg { width: 100%; fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; }
.gfs-parent-logout { position: absolute; z-index: 3; left: 28px; top: 25px; padding: 8px 13px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; color: rgba(255,255,255,.82); background: rgba(255,255,255,.07); text-decoration: none; font-size: 10px; }
.gfs-parent-logout:hover { color: #fff; background: rgba(255,255,255,.14); }

.gfs-child-switcher { position: relative; z-index: 3; margin: -28px clamp(18px, 4vw, 56px) 28px; padding: 14px 18px; display: flex; align-items: center; gap: 20px; border: 1px solid rgba(225,229,241,.85); border-radius: 20px; background: rgba(255,255,255,.93); box-shadow: 0 15px 40px rgba(42,47,91,.11); backdrop-filter: blur(14px); }
.gfs-child-switcher-label { flex: 0 0 auto; color: var(--gfs-parent-muted); font-size: 11px; font-weight: 700; }
.gfs-child-switcher-items { display: flex; align-items: center; gap: 9px; overflow-x: auto; scrollbar-width: thin; }
.gfs-child-tab { appearance: none; min-width: 180px; display: flex; align-items: center; gap: 10px; padding: 8px 9px 8px 18px; border: 1px solid transparent; border-radius: 14px; color: #4b5572; background: transparent; cursor: pointer; text-align: right; transition: .2s ease; }
.gfs-child-tab:hover { background: #f5f6fc; }
.gfs-child-tab.is-active { border-color: #dcd9ff; color: #3f37a8; background: #f1f0ff; box-shadow: inset 0 0 0 1px rgba(103,89,232,.04); }
.gfs-child-avatar { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 13px; color: #fff; background: linear-gradient(145deg, #6b5be7, #4d8af1); font-size: 15px; font-weight: 900; box-shadow: 0 8px 16px rgba(81,76,197,.2); }
.gfs-child-tab b,.gfs-child-tab small { display: block; }
.gfs-child-tab b { font-size: 12px; }
.gfs-child-tab small { margin-top: 3px; color: #9299ad; font-size: 9px; direction: ltr; text-align: right; }

.gfs-child-panel { padding: 0 clamp(18px, 4vw, 56px) 30px; animation: gfsParentIn .38s ease both; }
.gfs-child-panel[hidden] { display: none !important; }
@keyframes gfsParentIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.gfs-child-summary { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin: 0 2px 20px; }
.gfs-child-summary-label { color: var(--gfs-parent-purple); font-size: 10px; font-weight: 800; }
.gfs-child-summary h2 { margin: 3px 0 4px; color: var(--gfs-parent-ink); font-size: 25px; }
.gfs-child-summary p { margin: 0; color: var(--gfs-parent-muted); font-size: 11px; }
.gfs-account-state { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.gfs-account-state i { width: 7px; height: 7px; border-radius: 50%; }
.gfs-account-state.is-enabled { color: #148474; background: #e4f8f3; }
.gfs-account-state.is-enabled i { background: #22b8a7; box-shadow: 0 0 0 4px rgba(34,184,167,.12); }
.gfs-account-state.is-disabled { color: #a76815; background: #fff2d9; }
.gfs-account-state.is-disabled i { background: #ffad4d; }

.gfs-parent-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.gfs-parent-kpi { position: relative; min-height: 126px; display: flex; align-items: center; gap: 14px; padding: 21px; overflow: hidden; border: 1px solid var(--gfs-parent-line); border-radius: 20px; background: var(--gfs-parent-surface); box-shadow: 0 8px 24px rgba(30,39,76,.045); }
.gfs-parent-kpi::after { content: ""; position: absolute; width: 90px; height: 90px; left: -38px; bottom: -45px; border-radius: 50%; opacity: .08; background: currentColor; }
.gfs-kpi-icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 15px; color: currentColor; background: currentColor; font-size: 18px; box-shadow: inset 0 0 0 30px rgba(255,255,255,.86); }
.gfs-parent-kpi div { min-width: 0; }
.gfs-parent-kpi small,.gfs-parent-kpi strong,.gfs-parent-kpi em { display: block; }
.gfs-parent-kpi small { color: var(--gfs-parent-muted); font-size: 10px; }
.gfs-parent-kpi strong { margin: 3px 0 2px; color: var(--gfs-parent-ink); font-size: 25px; font-style: normal; line-height: 1.25; }
.gfs-parent-kpi strong i { color: #9aa0b2; font-size: 11px; font-style: normal; }
.gfs-parent-kpi em { overflow: hidden; color: #8c93a7; font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.gfs-kpi-purple { color: var(--gfs-parent-purple); }
.gfs-kpi-mint { color: var(--gfs-parent-mint); }
.gfs-kpi-orange { color: var(--gfs-parent-orange); }
.gfs-kpi-blue { color: var(--gfs-parent-blue); }

.gfs-parent-overview-grid,
.gfs-parent-chart-grid,
.gfs-parent-detail-grid { display: grid; gap: 14px; margin-top: 14px; }
.gfs-parent-overview-grid { grid-template-columns: 1.08fr .92fr; }
.gfs-parent-chart-grid { grid-template-columns: minmax(0, 1.55fr) minmax(290px, .45fr); }
.gfs-parent-detail-grid { grid-template-columns: 1fr 1fr; }
.gfs-parent-card { padding: 23px; border: 1px solid var(--gfs-parent-line); border-radius: 21px; background: var(--gfs-parent-surface); box-shadow: 0 8px 24px rgba(30,39,76,.045); }
.gfs-card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.gfs-card-heading small,.gfs-card-heading h3 { display: block; }
.gfs-card-heading small { margin-bottom: 3px; color: #9299ad; font-size: 9px; }
.gfs-card-heading h3 { margin: 0; color: var(--gfs-parent-ink); font-size: 16px; }
.gfs-card-heading > span { color: #8d94a8; font-size: 9px; }

.gfs-level-content { display: flex; align-items: center; gap: 28px; margin-top: 20px; }
.gfs-level-ring { --gfs-progress: 0%; position: relative; width: 126px; height: 126px; flex: 0 0 126px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--gfs-parent-purple) var(--gfs-progress), #eeeff7 0); transform: rotate(-35deg); }
.gfs-level-ring::before { content: ""; position: absolute; width: 99px; height: 99px; border-radius: 50%; background: #fff; }
.gfs-level-ring div { position: relative; z-index: 1; text-align: center; transform: rotate(35deg); }
.gfs-level-ring strong,.gfs-level-ring span { display: block; }
.gfs-level-ring strong { font-size: 30px; line-height: 1; }
.gfs-level-ring span { margin-top: 5px; color: #8b92a8; font-size: 9px; }
.gfs-level-details { flex: 1; }
.gfs-level-details b { font-size: 13px; }
.gfs-level-details p { margin: 6px 0 12px; color: #8990a5; font-size: 10px; }
.gfs-linear-progress { height: 8px; overflow: hidden; border-radius: 999px; background: #eeeff7; }
.gfs-linear-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #6759e8, #4f91f4); }
.gfs-streak-chip { display: inline-block; margin-top: 14px; padding: 6px 9px; border-radius: 9px; color: #9a6421; background: #fff4e4; font-size: 9px; font-weight: 700; }

.gfs-trend { padding: 6px 9px; border-radius: 9px; font-weight: 800; direction: ltr; }
.gfs-trend.is-up { color: #148474 !important; background: #e8f8f4; }
.gfs-trend.is-down { color: #bf5e5e !important; background: #fff0ef; }
.gfs-engagement-meter { height: 13px; margin-top: 31px; padding: 3px; border-radius: 999px; background: linear-gradient(90deg, #ffe2d9, #fff2c7 48%, #d9f5eb); }
.gfs-engagement-meter i { display: block; height: 7px; border-radius: 999px; background: linear-gradient(90deg, #ff9476, #f3c34f 55%, #22b8a7); box-shadow: 0 3px 10px rgba(58,173,147,.2); }
.gfs-engagement-scale { display: flex; justify-content: space-between; margin-top: 7px; color: #a2a8b8; font-size: 8px; }
.gfs-engagement-card > p { margin: 24px 0 0; padding-top: 16px; border-top: 1px solid #f0f1f6; color: #7d859b; font-size: 10px; line-height: 1.8; }

.gfs-chart-legend { display: flex; flex-wrap: wrap; gap: 9px; color: #858ca0; font-size: 8px; }
.gfs-chart-legend span { display: flex; align-items: center; gap: 4px; }
.gfs-chart-legend i,.gfs-mix-card li i { width: 7px; height: 7px; border-radius: 50%; }
.is-game { background: #6759e8; }
.is-learn { background: #27b8a8; }
.is-mission { background: #ffad4d; }
.gfs-activity-chart { position: relative; height: 255px; display: grid; grid-template-columns: repeat(14, minmax(18px, 1fr)); gap: 8px; align-items: end; margin-top: 23px; padding-top: 15px; }
.gfs-chart-guides { position: absolute; inset: 14px 0 47px; display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
.gfs-chart-guides i { display: block; border-top: 1px dashed #e8eaf2; }
.gfs-chart-day { position: relative; z-index: 1; min-width: 0; text-align: center; }
.gfs-chart-value { height: 17px; color: #858ca1; font-size: 8px; }
.gfs-chart-bar { position: relative; height: 165px; display: flex; align-items: flex-end; justify-content: center; }
.gfs-chart-stack { width: min(18px, 68%); min-height: 3px; overflow: hidden; display: flex; flex-direction: column-reverse; border-radius: 7px 7px 4px 4px; box-shadow: 0 5px 12px rgba(92,89,218,.16); transition: height .45s ease; }
.gfs-chart-stack i { display: block; width: 100%; min-height: 2px; }
.gfs-chart-stack.is-empty { background: #e7e9f1; box-shadow: none; }
.gfs-chart-day span,.gfs-chart-day small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gfs-chart-day span { margin-top: 7px; color: #666f88; font-size: 8px; }
.gfs-chart-day small { margin-top: 2px; color: #a3a9b8; font-size: 7px; }

.gfs-mix-content { min-height: 250px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
.gfs-mix-donut { position: relative; width: 138px; height: 138px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(#6759e8 0 var(--gfs-game-end), #27b8a8 var(--gfs-game-end) var(--gfs-learning-end), #ffad4d var(--gfs-learning-end) 100%); transform: rotate(-28deg); }
.gfs-mix-donut.is-empty { background: #eef0f6; }
.gfs-mix-donut::before { content: ""; position: absolute; width: 96px; height: 96px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px #f2f3f8; }
.gfs-mix-donut div { position: relative; z-index: 1; text-align: center; transform: rotate(28deg); }
.gfs-mix-donut strong,.gfs-mix-donut span { display: block; }
.gfs-mix-donut strong { font-size: 25px; }
.gfs-mix-donut span { color: #979daf; font-size: 8px; }
.gfs-mix-card ul { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 0; padding: 0; list-style: none; }
.gfs-mix-card li { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px; padding: 7px; border-radius: 10px; background: #f8f9fc; color: #858ca0; font-size: 8px; }
.gfs-mix-card li b { grid-column: 1 / -1; color: var(--gfs-parent-ink); font-size: 13px; }

.gfs-game-list,.gfs-achievement-list { margin-top: 18px; }
.gfs-game-row { display: flex; gap: 11px; align-items: center; padding: 11px 0; border-bottom: 1px solid #eff1f6; }
.gfs-game-row:last-child { border-bottom: 0; }
.gfs-game-badge { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 12px; background: #f0efff; font-size: 16px; }
.gfs-game-row > div { flex: 1; min-width: 0; }
.gfs-game-row b,.gfs-game-row span,.gfs-game-row i { display: block; }
.gfs-game-row b { overflow: hidden; color: #303a58; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.gfs-game-row span { margin: 3px 0 7px; color: #979daf; font-size: 8px; }
.gfs-game-row i { height: 5px; overflow: hidden; border-radius: 999px; background: #eef0f6; }
.gfs-game-row em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #6759e8, #4e91f1); }
.gfs-achievement-list { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.gfs-achievement-list > div { display: flex; align-items: center; gap: 10px; padding: 13px; border: 1px solid #eeeafc; border-radius: 14px; background: linear-gradient(145deg, #fff, #faf9ff); }
.gfs-achievement-list > div > span { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 11px; color: #dd9a2e; background: #fff2d7; }
.gfs-achievement-list p { margin: 0; min-width: 0; }
.gfs-achievement-list b,.gfs-achievement-list small { display: block; }
.gfs-achievement-list b { overflow: hidden; color: #39435f; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.gfs-achievement-list small { margin-top: 4px; color: #9ba1b2; font-size: 8px; }
.gfs-card-empty { min-height: 150px; display: grid; place-items: center; color: #9299ad; font-size: 10px; }

.gfs-family-feedback { position: relative; margin-top: 14px; padding: 27px; overflow: hidden; border-radius: 22px; color: #fff; background: linear-gradient(115deg, #282561, #4c48aa 55%, #536bc4); box-shadow: 0 16px 35px rgba(57,52,137,.16); }
.gfs-family-feedback::after { content: ""; position: absolute; width: 260px; height: 260px; left: -90px; bottom: -170px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 40px rgba(255,255,255,.025), 0 0 0 80px rgba(255,255,255,.018); }
.gfs-feedback-heading { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; }
.gfs-feedback-heading > span { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 14px; color: #ffdf9a; background: rgba(255,255,255,.12); font-size: 19px; }
.gfs-feedback-heading small { color: #bfc8ff; font-size: 9px; }
.gfs-feedback-heading h3 { margin: 2px 0 0; color: #fff; font-size: 17px; }
.gfs-feedback-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 20px; }
.gfs-feedback-item { display: flex; gap: 9px; padding: 14px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: rgba(255,255,255,.075); backdrop-filter: blur(8px); }
.gfs-feedback-item > i { width: 8px; height: 8px; flex: 0 0 8px; margin-top: 5px; border-radius: 50%; background: #74ebc5; box-shadow: 0 0 0 4px rgba(116,235,197,.1); }
.gfs-feedback-item.is-watch > i { background: #ffbf69; box-shadow: 0 0 0 4px rgba(255,191,105,.1); }
.gfs-feedback-item.is-idea > i { background: #7ed4ff; box-shadow: 0 0 0 4px rgba(126,212,255,.1); }
.gfs-feedback-item b { display: block; color: #fff; font-size: 10px; }
.gfs-feedback-item p { margin: 5px 0 0; color: rgba(255,255,255,.66); font-size: 9px; line-height: 1.85; }
.gfs-feedback-disclaimer { position: relative; z-index: 1; margin: 14px 0 0; color: rgba(255,255,255,.4); font-size: 8px; }

.gfs-parent-empty { width: min(680px, calc(100% - 36px)); margin: 60px auto 40px; padding: 52px 34px; text-align: center; border: 1px solid var(--gfs-parent-line); border-radius: 25px; background: #fff; box-shadow: 0 16px 45px rgba(42,47,91,.07); }
.gfs-parent-empty-icon { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 17px; border-radius: 21px; color: #fff; background: linear-gradient(145deg, #6759e8, #4287f5); font-size: 24px; }
.gfs-parent-empty h2 { margin: 0 0 10px; color: var(--gfs-parent-ink); font-size: 22px; }
.gfs-parent-empty > p { margin: 0 auto; max-width: 520px; color: var(--gfs-parent-muted); font-size: 12px; line-height: 2; }
.gfs-parent-empty-note { margin-top: 24px; padding: 13px; border-radius: 12px; color: #52705e; background: #edf9f3; font-size: 10px; }

@media (max-width: 1100px) {
    .gfs-parent-kpi-grid { grid-template-columns: repeat(2, 1fr); }
    .gfs-parent-chart-grid { grid-template-columns: 1fr; }
    .gfs-mix-content { min-height: 0; flex-direction: row; padding-top: 20px; }
    .gfs-mix-card ul { max-width: 340px; }
}

@media (max-width: 760px) {
    .gfs-parent-dashboard { width: 100%; margin: 0; border-radius: 0; }
    .gfs-parent-hero { min-height: 310px; align-items: flex-start; padding: 45px 22px; }
    .gfs-parent-hero-mark { left: -25px; top: auto; bottom: -35px; transform: none; }
    .gfs-parent-logout { left: 18px; top: 16px; }
    .gfs-child-switcher { margin: -35px 14px 24px; padding: 13px; display: block; }
    .gfs-child-switcher-label { display: block; margin: 0 4px 9px; }
    .gfs-child-panel { padding: 0 14px 24px; }
    .gfs-child-summary { align-items: flex-start; flex-direction: column; }
    .gfs-parent-overview-grid,
    .gfs-parent-detail-grid { grid-template-columns: 1fr; }
    .gfs-feedback-grid { grid-template-columns: 1fr; }
    .gfs-activity-chart { gap: 3px; overflow-x: auto; }
    .gfs-chart-day { min-width: 27px; }
    .gfs-chart-legend { display: none; }
}

@media (max-width: 480px) {
    .gfs-parent-kpi-grid { grid-template-columns: 1fr; }
    .gfs-parent-kpi { min-height: 105px; }
    .gfs-level-content,.gfs-mix-content { flex-direction: column; }
    .gfs-achievement-list { grid-template-columns: 1fr; }
    .gfs-parent-card,.gfs-family-feedback { padding: 19px; }
    .gfs-parent-auth-message { align-items: stretch; flex-direction: column; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
    .gfs-child-panel,.gfs-chart-stack { animation: none; transition: none; }
}

/* Full-screen parent analytics dashboard — mobile first. */
body.gfs-parent-dashboard-page {
    background: #050d1c;
}
body.gfs-parent-dashboard-page .gfs-page-main {
    padding-bottom: 0;
    background: #050d1c;
}
body.gfs-parent-dashboard-page .gfs-generic-page,
body.gfs-parent-dashboard-page .gfs-generic-page > .gfs-shell,
body.gfs-parent-dashboard-page .gfs-entry,
body.gfs-parent-dashboard-page .gfs-entry-content {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.gfs-parent-dashboard {
    --gfs-parent-ink: #f4f8ff;
    --gfs-parent-muted: #8fa2be;
    --gfs-parent-purple: #9a72ff;
    --gfs-parent-blue: #35c7ff;
    --gfs-parent-mint: #35e1bb;
    --gfs-parent-orange: #ffb660;
    --gfs-parent-surface: rgba(12, 28, 50, .92);
    --gfs-parent-line: rgba(139, 180, 224, .16);
    width: 100%;
    min-height: calc(100svh - var(--gfs-header-h, 72px));
    margin: 0;
    padding: 0 0 28px;
    overflow: hidden;
    border-radius: 0;
    color: var(--gfs-parent-ink);
    background:
        radial-gradient(circle at 92% 8%, rgba(47, 202, 255, .15), transparent 26rem),
        radial-gradient(circle at 5% 35%, rgba(137, 82, 255, .17), transparent 30rem),
        linear-gradient(145deg, #050d1c 0%, #071527 48%, #081a2e 100%);
    box-shadow: none;
}
.gfs-parent-dashboard::before {
    content: "";
    position: fixed;
    inset: var(--gfs-header-h, 72px) 0 0;
    z-index: 0;
    pointer-events: none;
    opacity: .17;
    background-image: linear-gradient(rgba(76, 150, 215, .13) 1px, transparent 1px), linear-gradient(90deg, rgba(76, 150, 215, .13) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, #000, transparent 70%);
}
.gfs-parent-hero,
.gfs-child-switcher,
.gfs-child-panel,
.gfs-parent-empty { position: relative; z-index: 1; }

.gfs-parent-hero {
    min-height: 260px;
    align-items: flex-start;
    padding: 38px 18px 64px;
    border-bottom: 1px solid rgba(105, 202, 255, .18);
    background:
        radial-gradient(circle at 18% 0, rgba(57, 210, 255, .27), transparent 17rem),
        linear-gradient(112deg, rgba(17, 47, 83, .98), rgba(32, 26, 86, .97) 55%, rgba(9, 56, 91, .98));
}
.gfs-parent-hero::after {
    content: "";
    position: absolute;
    width: 170px;
    height: 170px;
    left: -55px;
    bottom: -100px;
    border: 1px solid rgba(63, 219, 255, .28);
    border-radius: 50%;
    box-shadow: 0 0 0 34px rgba(75, 100, 255, .05), 0 0 0 68px rgba(75, 100, 255, .025);
}
.gfs-parent-hero-copy { max-width: 800px; padding-top: 25px; }
.gfs-parent-kicker { margin-bottom: 10px; color: #7de9ff; font-size: 10px; }
.gfs-parent-hero h1 { max-width: 90%; font-size: clamp(27px, 8vw, 48px); letter-spacing: -.6px; }
.gfs-parent-hero p { max-width: 620px; margin: 9px 0 17px; color: #aebdd2; font-size: 11px; line-height: 1.9; }
.gfs-parent-hero-meta { gap: 6px; }
.gfs-parent-hero-meta span {
    padding: 6px 9px;
    border-color: rgba(106, 217, 255, .23);
    color: #c6d7ea;
    background: rgba(7, 18, 37, .35);
    font-size: 9px;
}
.gfs-parent-hero-mark { left: -18px; top: auto; bottom: -24px; width: 135px; height: 135px; transform: none; opacity: .1; }
.gfs-parent-logout {
    top: 15px;
    left: 14px;
    border-color: rgba(97, 220, 255, .27);
    color: #cfeeff;
    background: rgba(8, 26, 48, .62);
}

.gfs-child-switcher {
    margin: -30px 14px 22px;
    padding: 12px;
    display: block;
    border-color: rgba(76, 202, 255, .22);
    border-radius: 18px;
    background: rgba(8, 23, 43, .93);
    box-shadow: 0 18px 48px rgba(0, 0, 0, .32), inset 0 1px rgba(255, 255, 255, .04);
}
.gfs-child-switcher-label { display: block; margin: 0 3px 9px; color: #7890ad; font-size: 9px; }
.gfs-child-switcher-items { gap: 7px; padding-bottom: 2px; }
.gfs-child-tab {
    min-width: 155px;
    padding: 7px 8px 7px 12px;
    border-color: rgba(119, 152, 190, .1);
    color: #afc0d6;
    background: rgba(20, 42, 68, .55);
}
.gfs-child-tab:hover { background: rgba(33, 63, 94, .72); }
.gfs-child-tab.is-active {
    border-color: rgba(55, 216, 255, .52);
    color: #fff;
    background: linear-gradient(130deg, rgba(35, 109, 172, .58), rgba(103, 70, 199, .52));
    box-shadow: 0 8px 24px rgba(22, 153, 219, .13), inset 0 1px rgba(255, 255, 255, .08);
}
.gfs-child-avatar { border-radius: 50%; background: linear-gradient(145deg, #21c6ed, #7357eb); box-shadow: 0 0 0 4px rgba(43, 200, 245, .09); }
.gfs-child-tab small { color: #768ba7; }

.gfs-child-panel { padding: 0 14px 22px; }
.gfs-child-summary { align-items: flex-start; flex-direction: column; gap: 11px; margin-bottom: 16px; }
.gfs-child-summary-label { color: #4edbff; }
.gfs-child-summary h2 { color: #f5f9ff; font-size: 23px; }
.gfs-child-summary p { color: #8295af; line-height: 1.8; }
.gfs-account-state.is-enabled { color: #6ff0ce; background: rgba(32, 190, 151, .12); border: 1px solid rgba(63, 223, 184, .18); }
.gfs-account-state.is-disabled { color: #ffc980; background: rgba(255, 166, 59, .12); border: 1px solid rgba(255, 185, 87, .18); }

.gfs-parent-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.gfs-parent-kpi {
    min-height: 132px;
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
    padding: 15px;
    border-color: var(--gfs-parent-line);
    border-radius: 17px;
    background: linear-gradient(145deg, rgba(18, 40, 68, .94), rgba(8, 23, 43, .94));
    box-shadow: 0 13px 32px rgba(0, 0, 0, .2), inset 0 1px rgba(255, 255, 255, .04);
}
.gfs-parent-kpi::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: linear-gradient(90deg, transparent, currentColor, transparent);
    opacity: .8;
}
.gfs-kpi-icon { width: 34px; height: 34px; flex-basis: 34px; border-radius: 10px; box-shadow: inset 0 0 0 30px rgba(5, 16, 32, .74), 0 0 20px currentColor; }
.gfs-parent-kpi small { color: #8498b2; }
.gfs-parent-kpi strong { color: #fff; font-size: 23px; }
.gfs-parent-kpi strong i,.gfs-parent-kpi em { color: #71859f; }

.gfs-parent-overview-grid,
.gfs-parent-chart-grid,
.gfs-parent-detail-grid { grid-template-columns: 1fr; gap: 10px; margin-top: 10px; }
.gfs-parent-card {
    padding: 18px;
    border-color: var(--gfs-parent-line);
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(14, 34, 59, .96), rgba(7, 22, 41, .96));
    box-shadow: 0 14px 34px rgba(0, 0, 0, .22), inset 0 1px rgba(255, 255, 255, .035);
}
.gfs-card-heading small,.gfs-card-heading > span { color: #7186a2; }
.gfs-card-heading h3 { color: #f4f8ff; }
.gfs-level-content,.gfs-mix-content { flex-direction: column; }
.gfs-level-ring { background: conic-gradient(#8b68ff var(--gfs-progress), rgba(127, 153, 187, .13) 0); box-shadow: 0 0 38px rgba(125, 83, 255, .18); }
.gfs-level-ring::before,.gfs-mix-donut::before { background: #0b2037; border: 1px solid rgba(126, 176, 218, .12); box-shadow: none; }
.gfs-level-ring span,.gfs-level-details p,.gfs-mix-donut span { color: #7f93ad; }
.gfs-linear-progress,.gfs-chart-stack.is-empty,.gfs-game-row i { background: rgba(125, 153, 187, .13); }
.gfs-linear-progress i { background: linear-gradient(90deg, #7f62ff, #26cdf4); box-shadow: 0 0 16px rgba(42, 202, 244, .32); }
.gfs-streak-chip { color: #ffcb7c; background: rgba(255, 174, 67, .11); }
.gfs-trend.is-up { color: #58e7c1 !important; background: rgba(43, 205, 163, .12); }
.gfs-trend.is-down { color: #ff909d !important; background: rgba(255, 98, 115, .12); }
.gfs-engagement-card > p { border-color: rgba(136, 171, 207, .12); color: #7d91ab; }
.gfs-engagement-scale,.gfs-chart-legend { color: #7489a4; }
.gfs-chart-guides i { border-color: rgba(122, 158, 195, .14); }
.gfs-chart-value,.gfs-chart-day span { color: #8297b0; }
.gfs-chart-day small { color: #5f748f; }
.gfs-activity-chart { gap: 4px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: #265c7a transparent; }
.gfs-chart-day { min-width: 26px; }
.gfs-mix-card li { color: #8195ae; background: rgba(32, 58, 84, .55); }
.gfs-mix-card li b { color: #f4f8ff; }
.gfs-game-row { border-color: rgba(128, 165, 201, .12); }
.gfs-game-badge { background: rgba(108, 83, 238, .15); }
.gfs-game-row b,.gfs-achievement-list b { color: #dfeaff; }
.gfs-game-row span,.gfs-achievement-list small { color: #7186a1; }
.gfs-achievement-list { grid-template-columns: 1fr; }
.gfs-achievement-list > div { border-color: rgba(138, 107, 255, .17); background: rgba(27, 42, 71, .72); }
.gfs-achievement-list > div > span { color: #ffd477; background: rgba(255, 198, 75, .11); }
.gfs-card-empty { color: #7589a3; }

.gfs-family-feedback {
    margin-top: 10px;
    padding: 19px;
    border: 1px solid rgba(119, 98, 255, .25);
    border-radius: 18px;
    background: linear-gradient(125deg, rgba(28, 25, 77, .96), rgba(19, 48, 84, .96));
    box-shadow: 0 15px 38px rgba(0, 0, 0, .23);
}
.gfs-feedback-grid { grid-template-columns: 1fr; }
.gfs-feedback-item { border-color: rgba(126, 190, 225, .13); background: rgba(7, 24, 44, .48); }
.gfs-parent-empty {
    width: calc(100% - 28px);
    margin: 28px auto;
    padding: 35px 20px;
    border-color: var(--gfs-parent-line);
    color: #fff;
    background: rgba(10, 28, 50, .92);
    box-shadow: 0 18px 45px rgba(0, 0, 0, .22);
}
.gfs-parent-empty h2 { color: #fff; }
.gfs-parent-empty > p { color: #8fa2bc; }
.gfs-parent-empty-note { color: #83e8ca; background: rgba(49, 203, 163, .1); }

@media (min-width: 481px) {
    .gfs-parent-kpi { min-height: 112px; align-items: center; flex-direction: row; }
    .gfs-achievement-list { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 761px) {
    .gfs-parent-dashboard { padding-bottom: 42px; }
    .gfs-parent-hero { min-height: 300px; padding: 52px clamp(38px, 5vw, 82px) 82px; }
    .gfs-parent-hero-copy { padding-top: 0; }
    .gfs-parent-hero-mark { left: clamp(80px, 15vw, 230px); top: 50%; bottom: auto; width: 180px; height: 180px; transform: translateY(-50%); }
    .gfs-parent-logout { top: 26px; left: 30px; }
    .gfs-child-switcher { max-width: 1540px; margin: -35px auto 28px; padding: 13px 18px; display: flex; }
    .gfs-child-switcher-label { display: inline; margin: 0; }
    .gfs-child-panel { max-width: 1540px; margin-inline: auto; padding: 0 clamp(24px, 3vw, 48px) 30px; }
    .gfs-child-summary { align-items: flex-end; flex-direction: row; }
    .gfs-parent-kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
    .gfs-parent-kpi { padding: 18px; }
    .gfs-level-content { flex-direction: row; }
    .gfs-mix-content { flex-direction: row; }
    .gfs-feedback-grid { grid-template-columns: repeat(3, 1fr); }
    .gfs-parent-empty { max-width: 720px; margin-top: 55px; }
}

@media (min-width: 1050px) {
    .gfs-parent-overview-grid { grid-template-columns: 1.08fr .92fr; }
    .gfs-parent-chart-grid { grid-template-columns: minmax(0, 1.55fr) minmax(310px, .45fr); }
    .gfs-parent-detail-grid { grid-template-columns: 1fr 1fr; }
    .gfs-mix-content { flex-direction: column; }
}
