/* PATHWAY SCHOLARS ACADEMY // KID WORLD V6
   Messenger rail, real theme customization, bigger identities, streak celebrations. */

/* Make kid customization visually obvious across the WHOLE shell. */
.role-student{color:var(--kid-font)!important;background-color:#050606}
.role-student .app-shell{border-color:var(--kid-accent)!important;box-shadow:0 0 34px color-mix(in srgb,var(--kid-accent) 10%,transparent)}
.role-student .panel,
.role-student .kid-class-tile,
.role-student .mission-line,
.role-student .trophy-card,
.role-student input,
.role-student textarea,
.role-student select{background:var(--kid-panel)!important}
.role-student .sidebar,.role-student .topbar{background:color-mix(in srgb,var(--kid-panel) 92%,#050606)!important}
.role-student .app-body{background:color-mix(in srgb,var(--kid-panel) 60%,transparent)!important;backdrop-filter:blur(2px)}
.role-student .panel,
.role-student .kid-class-tile,
.role-student .mission-line,
.role-student input,
.role-student textarea,
.role-student select{border-color:color-mix(in srgb,var(--kid-accent) 46%,#313532)!important}
.role-student h1,.role-student h2,.role-student h3,.role-student h4,.role-student p,.role-student label,.role-student .side-link,.role-student .top-identity,.role-student .kid-class-copy h3,.role-student .kid-mini-note{color:var(--kid-font)!important}
.role-student small,.role-student .muted,.role-student .kid-class-copy p,.role-student .kid-space-preview p{color:color-mix(in srgb,var(--kid-font) 62%,transparent)!important}
.role-student .eyebrow,.role-student .rebel-kicker,.role-student .green-dot,.role-student a:not(.btn):hover,.role-student .kid-class-copy>b{color:var(--kid-accent)!important}
.role-student .btn.primary,.role-student .rebel-primary{background:var(--kid-accent)!important;border-color:var(--kid-accent)!important;color:#fff!important}
.role-student .side-link:hover,.role-student .side-link.active{border-color:var(--kid-accent)!important}
.role-student .bar i,.role-student .mission-mini-bar u,.role-student .vault-progress i,.role-student .kid-class-copy i u{background:var(--kid-accent)!important}
.role-student textarea:focus,.role-student input:focus,.role-student select:focus{outline:2px solid var(--kid-accent)!important;outline-offset:1px}
.role-student .outer-footer{color:color-mix(in srgb,var(--kid-font) 62%,transparent)}

/* Identity is no longer a tiny status icon. */
.role-student .topbar{min-height:78px}
.role-student .top-identity{gap:11px}
.role-student .top-identity .kid-avatar{width:54px!important;height:54px!important;border-radius:16px!important;border-width:2px!important;box-shadow:0 0 24px color-mix(in srgb,var(--kid-accent) 22%,transparent)}
.role-student .top-identity>span{font-size:14px}
.role-student .kid-hero-avatar{width:118px;height:118px;border-radius:30px}
.role-student .kid-space-avatar{width:112px;height:112px;border-radius:28px}

/* Family hallway permanently lives under the desktop nav. */
.kid-family-rail{margin:18px 9px 0;padding:14px 6px 12px;border-top:1px solid color-mix(in srgb,var(--kid-accent) 30%,#28302d);border-bottom:1px solid color-mix(in srgb,var(--kid-accent) 22%,#202724)}
.kid-family-label{display:block;margin:0 6px 10px;color:var(--kid-accent);font:900 7px var(--mono);letter-spacing:1.6px}
.kid-family-empty{display:block;padding:8px 6px;color:color-mix(in srgb,var(--kid-font) 45%,transparent);font:800 7px var(--mono);letter-spacing:1px;line-height:1.5}
.kid-peer-button{position:relative;width:100%;display:flex;align-items:center;gap:9px;padding:8px 6px;margin:2px 0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--kid-font);cursor:pointer;text-align:left;transition:.16s}
.kid-peer-button:hover{background:color-mix(in srgb,var(--kid-accent) 9%,var(--kid-panel));border-color:color-mix(in srgb,var(--kid-accent) 30%,transparent);transform:translateX(2px)}
.kid-peer-avatar{width:50px;height:50px;border-radius:15px!important;flex:none;border:2px solid color-mix(in srgb,var(--kid-accent) 48%,#333)!important}
.kid-peer-button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:900 9px var(--mono);letter-spacing:.4px}
.kid-peer-button>i,.kid-chat-contact>i{position:absolute;right:5px;top:5px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--kid-accent);color:#fff;font:900 8px var(--mono);font-style:normal;box-shadow:0 0 18px color-mix(in srgb,var(--kid-accent) 58%,transparent)}
.kid-peer-button>i:empty,.kid-chat-contact>i:empty{display:none}
.kid-peer-button.has-unread,.kid-chat-contact.has-unread,.kid-chat-launch.has-unread,.kid-chat-fab.has-unread{animation:kidUnreadPulse 1.15s ease-in-out infinite}
@keyframes kidUnreadPulse{0%,100%{filter:none}50%{filter:drop-shadow(0 0 10px var(--kid-accent));transform:scale(1.035)}}

/* Messenger window: desktop dock, mobile bottom-sheet. */
.kid-chat-dock{position:fixed;z-index:1400;right:22px;bottom:22px;width:min(410px,calc(100vw - 32px));height:min(620px,calc(100vh - 120px));display:grid;grid-template-rows:auto auto 1fr auto;border:1px solid var(--kid-accent);border-radius:18px;overflow:hidden;background:color-mix(in srgb,var(--kid-panel) 97%,#050505);box-shadow:0 28px 90px #000d,0 0 35px color-mix(in srgb,var(--kid-accent) 16%,transparent);color:var(--kid-font)}
.kid-chat-dock[hidden]{display:none!important}
.kid-chat-contact-row{display:flex;gap:7px;overflow-x:auto;padding:10px;border-bottom:1px solid color-mix(in srgb,var(--kid-accent) 25%,#252b28);background:color-mix(in srgb,var(--kid-panel) 92%,#111)}
.kid-chat-contact{position:relative;display:flex;align-items:center;gap:6px;flex:0 0 auto;padding:5px 10px 5px 5px;border:1px solid color-mix(in srgb,var(--kid-accent) 18%,#343a37);border-radius:999px;background:transparent;color:var(--kid-font);cursor:pointer}
.kid-chat-contact.active{border-color:var(--kid-accent);background:color-mix(in srgb,var(--kid-accent) 11%,var(--kid-panel))}
.kid-chat-contact-avatar{width:34px;height:34px;border-radius:50%!important}
.kid-chat-contact>span{font:900 8px var(--mono);letter-spacing:.3px}
.kid-chat-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid color-mix(in srgb,var(--kid-accent) 28%,#252b28)}
.kid-chat-peer-head{display:flex;align-items:center;gap:10px}.kid-chat-peer-head>img{width:52px;height:52px;border-radius:15px;object-fit:cover;border:2px solid var(--kid-accent);background:#080808}.kid-chat-peer-head small,.kid-chat-peer-head b{display:block}.kid-chat-peer-head small{color:var(--kid-accent);font:900 7px var(--mono);letter-spacing:1.2px}.kid-chat-peer-head b{margin-top:3px;font-size:16px}
.kid-chat-close{width:40px;height:40px;border:1px solid color-mix(in srgb,var(--kid-accent) 30%,#333);border-radius:12px;background:transparent;color:var(--kid-font);font-size:24px;cursor:pointer}
.kid-chat-messages{overflow:auto;padding:14px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}
.kid-chat-empty{margin:auto;text-align:center;color:color-mix(in srgb,var(--kid-font) 48%,transparent);font:800 9px var(--mono);letter-spacing:.8px}
.kid-chat-bubble{max-width:82%;padding:10px 12px;border:1px solid #303835;border-radius:15px;background:#121614;color:var(--kid-font)}
.kid-chat-bubble.mine{align-self:flex-end;border-color:color-mix(in srgb,var(--kid-accent) 56%,#333);background:color-mix(in srgb,var(--kid-accent) 18%,var(--kid-panel))}
.kid-chat-bubble.theirs{align-self:flex-start}.kid-chat-bubble p{margin:0!important;line-height:1.4}.kid-chat-bubble small{display:block;margin-top:5px;font:800 7px var(--mono);opacity:.55}
.kid-chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px;border-top:1px solid color-mix(in srgb,var(--kid-accent) 28%,#252b28)}
.kid-chat-form textarea{min-height:58px;resize:none;border-radius:12px;padding:10px}.kid-chat-form button{min-width:78px;border:0;border-radius:12px;background:var(--kid-accent);color:#fff;font:900 9px var(--mono);letter-spacing:.5px;cursor:pointer}.kid-chat-form>small{grid-column:1/-1;min-height:12px;color:color-mix(in srgb,var(--kid-font) 55%,transparent)}
.kid-chat-fab{display:none;position:fixed;z-index:1300;right:14px;bottom:82px;width:56px;height:56px;border:1px solid var(--kid-accent);border-radius:50%;background:var(--kid-panel);color:var(--kid-font);font-size:22px;box-shadow:0 12px 40px #000b;cursor:pointer}.kid-chat-fab i,.kid-chat-launch i{position:absolute;right:-5px;top:-5px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--kid-accent);color:#fff;font:900 8px var(--mono);font-style:normal}.kid-chat-fab i:empty,.kid-chat-launch i:empty{display:none}
.kid-chat-launch{position:relative;cursor:pointer;border:0!important;background:transparent!important;color:var(--kid-font)!important}
.kid-open-hallway{margin-top:10px;padding:0;border:0;background:transparent;color:var(--kid-accent);font:900 9px var(--mono);letter-spacing:1px;cursor:pointer}
.kid-mini-note{width:100%;padding:10px 0;border:0;border-bottom:1px solid color-mix(in srgb,var(--kid-accent) 15%,#252c29);background:transparent;text-align:left;cursor:pointer}

/* Huge streak celebration. */
.kid-streak-overlay{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at center,rgba(107,21,18,.48),rgba(0,0,0,.92) 60%);backdrop-filter:blur(8px)}
.kid-streak-card{position:relative;width:min(720px,94vw);padding:46px 34px 34px;text-align:center;border:2px solid #e9bd4a;border-radius:24px;background:radial-gradient(circle at 50% 5%,rgba(241,174,43,.2),transparent 34%),linear-gradient(145deg,#191105,#070707 72%);box-shadow:0 0 0 8px rgba(231,181,54,.05),0 0 80px rgba(225,70,30,.26),0 40px 120px #000;overflow:hidden;animation:streakDrop .34s cubic-bezier(.18,.82,.24,1.18)}
.kid-streak-card:before,.kid-streak-card:after{content:"🔥";position:absolute;font-size:84px;filter:saturate(1.2);opacity:.76}.kid-streak-card:before{left:-12px;bottom:20px;transform:rotate(-18deg)}.kid-streak-card:after{right:-12px;bottom:20px;transform:rotate(18deg)}
.kid-streak-trophy{font-size:112px;line-height:1;filter:drop-shadow(0 0 26px rgba(255,195,55,.45));animation:trophyBounce 1s ease-in-out infinite alternate}
.kid-streak-kicker{margin-top:12px;color:#e5b742;font:900 11px var(--mono);letter-spacing:2px}.kid-streak-card h2{margin:10px auto 12px;max-width:620px;color:#fff!important;font-size:clamp(38px,7vw,76px);line-height:.88}.kid-streak-card p{margin:0 auto 22px;max-width:560px;color:#c9bda0!important;font-size:16px;font-weight:800}.kid-streak-card button{padding:14px 24px;border:1px solid #f0c550;border-radius:999px;background:#e1ad2f;color:#100b02;font:1000 11px var(--mono);letter-spacing:1.2px;cursor:pointer}
@keyframes streakDrop{from{transform:scale(.68) rotate(-2deg);opacity:0}to{transform:scale(1);opacity:1}}@keyframes trophyBounce{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-8px) rotate(3deg)}}

/* Four trophy stats now include winning streak. */
.role-student .trophy-score-strip{grid-template-columns:repeat(4,1fr)}

@media(max-width:900px){.role-student .sidebar .kid-family-rail{display:none}.role-student .mobile-nav{grid-template-columns:repeat(5,minmax(64px,1fr))!important}.kid-chat-fab{display:grid;place-items:center}.role-student .top-identity .kid-avatar{width:48px!important;height:48px!important}.role-student .trophy-score-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){
 .role-student .kid-hero-avatar{width:96px;height:96px}.role-student .kid-space-avatar{width:98px;height:98px}
 .kid-chat-dock{right:0;left:0;bottom:68px;width:100%;height:min(72vh,680px);max-height:calc(100vh - 82px);border-radius:20px 20px 0 0;border-left:0;border-right:0;border-bottom:0}
 .kid-chat-contact-row{padding:8px}.kid-chat-contact>span{display:none}.kid-chat-contact{padding:4px}.kid-chat-contact-avatar{width:42px;height:42px}
 .kid-chat-peer-head>img{width:48px;height:48px}.kid-chat-form{grid-template-columns:1fr auto}.kid-chat-form button{min-width:68px}
 .kid-streak-card{padding:34px 18px 26px}.kid-streak-trophy{font-size:90px}.kid-streak-card:before,.kid-streak-card:after{font-size:55px}
}

.role-student .sidebar-bottom{min-height:220px}
