@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+Armenian:wght@400;500;600;700;800&family=Noto+Serif+Armenian:wght@400;500;600;700;800&display=swap";:root{color-scheme:light;--bg: #eef2f7;--surface: #ffffff;--surface-soft: #f6f9fc;--surface-tint: #eef6fa;--ink: #0d1526;--ink-soft: #2f3b50;--muted: #677289;--line: #e6ecf3;--line-strong: #d2dbe7;--primary: #0e7793;--primary-dark: #0a5870;--primary-50: #e7f3f8;--primary-100: #cfe8f1;--telegram: #229ed9;--telegram-dark: #1688bf;--chat-bg: #dfeaf2;--chat-out: #dff7c8;--chat-in: #ffffff;--accent: #ef5a3c;--accent-soft: #fdeee9;--ink-panel: #0c1d33;--success: #0f766e;--warning: #b7791f;--danger: #c0392b;--shadow-sm: 0 1px 2px rgba(13, 26, 45, .05);--shadow: 0 2px 6px rgba(13, 26, 45, .05), 0 12px 28px -14px rgba(13, 26, 45, .18);--shadow-md: 0 4px 10px rgba(13, 26, 45, .06), 0 20px 40px -18px rgba(13, 26, 45, .22);--shadow-lg: 0 30px 60px -24px rgba(10, 56, 78, .34);--radius-sm: 10px;--radius: 14px;--radius-lg: 22px;--radius-pill: 999px;--gradient-primary: linear-gradient(135deg, #0e7793 0%, #0a5870 100%);--gradient-tint: linear-gradient(135deg, #f0f8fb 0%, #e6f1f7 100%);--gradient-panel: linear-gradient(160deg, #102744 0%, #0a1729 100%);--font-body: "Noto Sans Armenian", "Inter", "Segoe UI", sans-serif;--ease: cubic-bezier(.16, 1, .3, 1);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;min-height:100vh;font-family:var(--font-body);color:var(--ink);background-color:#e8eef4;background-image:radial-gradient(60rem 40rem at 110% -10%,rgba(14,119,147,.12),transparent 60%),radial-gradient(50rem 36rem at -10% 0%,rgba(239,90,60,.08),transparent 55%);background-attachment:fixed;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{display:block;object-fit:cover;max-width:100%}h1,h2,h3,p,strong,span,a,button{overflow-wrap:anywhere}#root{min-height:100vh}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-dots{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.loading-dots:after{content:"...";display:inline-block;width:1.25em;overflow:hidden;vertical-align:bottom;animation:loading-dots 1.1s steps(4,end) infinite}@media(prefers-reduced-motion:reduce){.loading-dots:after{clip-path:none;animation:none}}.app-shell{width:min(1240px,100%);margin:0 auto;padding:18px 22px 36px;display:flex;flex-direction:column;gap:22px;min-width:0}.app-shell.chat-mode{width:min(1320px,100%);min-height:100dvh;padding-bottom:18px}.topbar{position:sticky;top:14px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px 12px 16px;border:1px solid rgba(196,212,224,.72);border-radius:18px;background:#fffffff0;box-shadow:0 18px 50px -32px #08273f73;-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%)}.brand{display:flex;gap:12px;align-items:center;min-width:0}.brand>div:last-child{min-width:0}.brand-mark{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;overflow:hidden;background:var(--gradient-tint);border:1px solid var(--primary-100);box-shadow:var(--shadow-sm);flex:0 0 auto}.brand-mark img{width:28px;height:28px}.brand-title{font-size:16px;font-weight:800;letter-spacing:-.01em;line-height:1.2}.brand-title span{display:block}.brand-subtitle{font-size:12px;color:var(--muted);margin-top:2px}@keyframes accountMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.account-menu-head{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line, #e2e8f0);margin-bottom:6px}.account-menu-name{font-weight:800;color:var(--ink, #0f172a);font-size:14px}.account-menu-sub{font-size:12px;color:var(--muted, #64748b)}.account-menu-items{display:grid;gap:2px}.account-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:var(--ink, #0f172a);font:inherit;font-size:14px;text-align:left;text-decoration:none;cursor:pointer}.account-menu-item:hover{background:#eef6fb}.account-menu-item .bottom-tab-svg{width:20px;height:20px;stroke:#0c97c8;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.account-menu-logout{color:#b42318}.account-menu-logout .bottom-tab-svg{stroke:#d92d20}.account-menu-logout:hover{background:#fef3f2}.nav-links{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end;padding:4px;border-radius:var(--radius-pill);background:#eef6fb;border:1px solid #d8e8f1}.nav-link{min-height:38px;padding:9px 15px;border-radius:var(--radius-pill);border:1px solid transparent;color:var(--ink-soft);font-size:14px;font-weight:700;text-align:center;transition:background .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease)}.nav-link:hover{background:var(--surface);color:var(--ink)}.nav-link.active{background:var(--telegram);color:#fff;box-shadow:0 8px 18px -10px #229ed9e6}.nav-links .button{min-height:38px}.page{display:flex;flex-direction:column;gap:24px;animation:rise .45s var(--ease) both;min-width:0}.chat-mode .page{flex:1 1 auto}.page-grid,.home-dashboard{display:grid;gap:22px;min-width:0}.manager-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);padding:36px;display:grid;grid-template-columns:104px minmax(0,1fr);gap:26px;align-items:center}.manager-card:before{content:"";position:absolute;inset:0;background:radial-gradient(34rem 24rem at 100% 0%,rgba(14,119,147,.1),transparent 60%),radial-gradient(26rem 20rem at 0% 110%,rgba(239,90,60,.07),transparent 55%);pointer-events:none}.manager-card>*{position:relative}.manager-avatar{width:104px;height:104px;border-radius:20px;display:grid;place-items:center;background:var(--gradient-primary);border:1px solid var(--primary-dark);color:#fff;font-size:38px;font-weight:800;box-shadow:var(--shadow-md)}.manager-copy h1{max-width:720px;margin:10px 0 12px;font-size:clamp(2rem,4vw,3.1rem);line-height:1.08;font-weight:800;letter-spacing:-.02em}.section{padding:28px;display:grid;gap:20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.student-card,.info-card,.communication-item{box-shadow:0 12px 34px -28px #08273f73}.communication-section{box-shadow:var(--shadow)}.section-header h1,.section-header h2{margin:0 0 8px;font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.14;font-weight:800;letter-spacing:-.02em}.section-header p{margin:0;color:var(--muted);line-height:1.6;max-width:64ch}.communication-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.communication-item{position:relative;min-height:160px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);display:grid;gap:8px;align-content:start;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.communication-item:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:var(--shadow)}.communication-item.ready{background:linear-gradient(135deg,#ecfdf6,#e3f7ef);border-color:#b6ebd5}.communication-item span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--surface);border:1px solid var(--line-strong);color:var(--primary);font-size:13px;font-weight:800}.communication-item.ready span{color:var(--success);border-color:#a7e3cb}.communication-item strong{font-size:1.02rem;margin-top:2px}.communication-item p{margin:0;color:var(--muted);line-height:1.6}.hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:20px;align-items:stretch}.hero-copy,.hero-panel,.detail-card,.admin-list,.admin-form,.login-card,.footer{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.hero-copy{padding:36px;display:flex;flex-direction:column;justify-content:center;min-height:390px;box-shadow:var(--shadow-md)}.hero-copy h1{max-width:680px;margin:10px 0 14px;font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.06;font-weight:800;letter-spacing:-.02em}.eyebrow{display:inline-flex;align-items:center;width:fit-content;padding:5px 11px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lede{max-width:660px;margin:0;color:var(--muted);font-size:1.08rem;line-height:1.7}.status-banner{width:fit-content;max-width:100%;margin-top:18px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid #f1c27d;background:#fff8e8;color:#7a4b0b;font-size:14px;font-weight:600}.hero-actions{display:flex;gap:12px;margin:26px 0 4px;flex-wrap:wrap}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);padding:16px}.stat-title{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stat-value{margin-top:6px;font-weight:800;font-size:1.4rem}.hero-panel{display:grid;gap:0;overflow:hidden;box-shadow:var(--shadow-md)}.panel-card{padding:26px;border-bottom:1px solid var(--line)}.panel-card:last-child{border-bottom:0}.panel-card.accent{background:var(--gradient-panel);color:#fff}.panel-card.accent p{color:#ffffffc7}.panel-title{margin-bottom:14px;font-size:1rem;font-weight:800}.activity-list{display:grid;gap:10px}.activity-item{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft)}.activity-item span{color:var(--muted);font-size:12px;font-weight:700}.activity-item strong{font-size:14px}.workspace-strip{background:var(--gradient-panel);color:#fff}.workspace-strip .section-header p{color:#ffffffbd}.summary-grid,.card-grid,.resource-grid,.student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px}.summary-item,.resource-card,.info-card,.student-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.summary-item{display:grid;gap:8px;padding:18px;border-color:#ffffff2e;background:#ffffff14}.summary-item span{color:#8dd3f0;font-size:12px;font-weight:800}.summary-item strong{font-size:1rem}.summary-item p{margin:0;color:#ffffffb8;line-height:1.5}.resource-card,.info-card{min-height:132px;padding:18px;display:grid;align-content:space-between;gap:10px;transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}.info-card{background:var(--surface-soft)}.resource-card:hover,.info-card:hover,.student-card:hover{border-color:var(--primary-100);transform:translateY(-3px);box-shadow:var(--shadow)}.resource-title,.info-title,.social-label{font-weight:800;font-size:1.02rem}.resource-note,.social-meta,.info-card p{margin:0;color:var(--muted);line-height:1.6}.link-arrow{display:inline-flex;align-items:center;gap:6px;width:fit-content;color:var(--primary);font-size:14px;font-weight:800;transition:gap .2s var(--ease),color .2s var(--ease)}.link-arrow:after{content:"→";transition:transform .2s var(--ease)}.student-card{padding:18px;display:grid;gap:18px;transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}.student-card:hover .link-arrow{color:var(--primary-dark)}.student-card:hover .link-arrow:after{transform:translate(3px)}.student-card-header{display:flex;gap:14px;align-items:center;min-width:0}.student-card-header img,.student-avatar{width:60px;height:60px;border-radius:14px;flex:0 0 auto}.student-avatar,.detail-avatar,.admin-avatar{display:grid;place-items:center;background:var(--gradient-tint);color:var(--primary-dark);border:1px solid var(--primary-100);font-weight:800}img.student-avatar,img.detail-avatar,img.admin-avatar,img.chat-avatar,img.story-avatar{display:block;object-fit:cover}.student-name{font-weight:800;font-size:1.05rem}.student-name-row,.detail-title-row{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.student-score-badge{min-width:82px;min-height:38px;padding:5px 8px;border:1px solid #b9e3ef;border-radius:10px;display:inline-grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label rank" "value rank";align-items:center;column-gap:7px;background:#eef8fb;color:var(--primary-dark);line-height:1;box-shadow:0 10px 22px -18px #0c1d3373}.student-score-label{grid-area:label;color:var(--muted);font-size:9px;font-weight:800}.student-score-value{grid-area:value;color:var(--ink);font-size:14px;font-weight:900}.student-score-rank{grid-area:rank;min-width:26px;height:26px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;background:#fff;color:var(--primary-dark);border:1px solid rgba(14,119,147,.18);font-size:11px;font-weight:900}.student-score-badge.rank-1{background:#fff7db;border-color:#f6d365;box-shadow:0 10px 24px #f59e0b38}.student-score-badge.rank-1 .student-score-rank{background:#facc15;border-color:#eab308;color:#422006}.student-score-badge.rank-2{background:#f4f7fb;border-color:#cbd5e1;box-shadow:0 10px 24px #64748b33}.student-score-badge.rank-2 .student-score-rank{background:#e2e8f0;border-color:#cbd5e1;color:#1f2937}.student-score-badge.rank-3{background:#fff0df;border-color:#f2b36d;box-shadow:0 10px 24px #b4530933}.student-score-badge.rank-3 .student-score-rank{background:#d97706;border-color:#b45309;color:#fff}.student-score-badge.large{min-width:98px;min-height:44px;padding:6px 10px}.student-score-badge.large .student-score-label{font-size:10px}.student-score-badge.large .student-score-value{font-size:16px}.student-score-badge.large .student-score-rank{min-width:30px;height:30px;font-size:12px}.score-tag{border-color:#0f766e3d;background:#ecfdf5;color:#0f766e}.student-tags{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.4}.student-workshop{margin-top:4px;font-size:12px;font-weight:600;color:var(--brand, #2f6df0);line-height:1.35}.detail-workshop{font-size:14px;font-weight:600;color:var(--brand, #2f6df0);margin-bottom:2px}.student-card-footer{display:flex;justify-content:flex-end;padding-top:4px;border-top:1px solid var(--line)}.detail-card{position:relative;overflow:hidden;padding:32px;display:grid;gap:24px;box-shadow:var(--shadow-md)}.detail-card:before{content:"";position:absolute;inset:0 0 auto;height:160px;background:radial-gradient(40rem 16rem at 0% 0%,rgba(14,119,147,.08),transparent 70%);pointer-events:none}.detail-card>*{position:relative}.detail-header{display:flex;gap:20px;align-items:center}.detail-header img,.detail-avatar{width:116px;height:116px;border-radius:22px;flex:0 0 auto;font-size:30px;box-shadow:var(--shadow)}.detail-header h1{margin:0 0 14px;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05;font-weight:800;letter-spacing:-.02em}.detail-tags,.detail-links{display:flex;gap:8px;flex-wrap:wrap}.tag{padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--primary-100);background:var(--primary-50);color:var(--primary-dark);font-size:12px;font-weight:800}.detail-body h3{margin:0 0 10px;font-size:1.05rem}.detail-body p{margin:0;color:var(--ink-soft);line-height:1.75;max-width:72ch}.admin-page{display:grid;gap:26px;width:100%;max-width:1360px;margin:0 auto}.admin-workspace-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;min-width:0;padding:26px 30px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(135deg,#fff,#f5fafc);box-shadow:var(--shadow)}.admin-workspace-heading.compact{padding:0 2px;border:0;border-radius:0;background:transparent;box-shadow:none}.admin-workspace-heading h1,.admin-workspace-heading h2{margin:3px 0 6px;font-size:clamp(1.75rem,2.8vw,2.5rem);line-height:1.15;font-weight:850;color:var(--ink)}.admin-workspace-heading.compact h2{font-size:clamp(1.45rem,2.2vw,2rem)}.admin-workspace-heading p{margin:0;max-width:68ch;color:var(--muted);line-height:1.5}.admin-direct-workspace{display:grid;gap:14px;padding-top:20px;border-top:1px solid var(--line)}.manager-chat-page{width:min(1180px,100%);margin:0 auto;display:grid;gap:16px;min-width:0}.manager-chat-hero{padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(135deg,#fff,#f4f9fc);box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:16px}.manager-chat-hero h1{margin:3px 0 6px;font-size:clamp(1.55rem,2.6vw,2.25rem);line-height:1.12}.manager-chat-hero p{margin:0;color:var(--muted);line-height:1.5}.manager-chat-hero-actions{flex:0 0 auto;display:flex;align-items:center;gap:10px}.admin-grid{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:20px;align-items:start}.admin-grid.admin-grid-single{grid-template-columns:minmax(0,1fr)}.admin-form-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.admin-form-head h2{margin:0}.admin-form-head .button.ghost{min-height:34px;padding:4px 12px;line-height:1}.admin-list,.admin-form,.manager-chat-admin{padding:24px;display:grid;gap:18px;align-content:start;box-shadow:var(--shadow);min-width:0}.admin-header,.admin-actions,.admin-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-header h1,.admin-form h2,.manager-chat-admin h2{margin:0 0 6px;font-size:1.5rem;font-weight:800;letter-spacing:-.01em}.admin-header p,.manager-chat-admin p{margin:0;color:var(--muted)}.admin-actions{padding-bottom:16px;border-bottom:1px solid var(--line)}.admin-scroll{display:grid;gap:10px;max-height:560px;overflow-y:auto;padding-right:4px}.admin-row{padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);display:grid;grid-template-columns:minmax(0,1fr);align-items:start;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.admin-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.admin-row-main{display:flex;gap:12px;align-items:center;min-width:0}.admin-row-main>div{min-width:0}.admin-avatar{width:40px;height:40px;border-radius:11px;flex:0 0 auto;font-size:13px}.admin-name{font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-subtitle{color:var(--muted);font-size:12px}.admin-row.inactive{opacity:.62;background:repeating-linear-gradient(-45deg,var(--surface-soft),var(--surface-soft) 10px,#eef2f7 10px,#eef2f7 20px)}.status-pill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:800;letter-spacing:.02em}.status-pill.off{background:#fdecea;color:var(--danger);border:1px solid #f3c4bd}.admin-row-actions,.button-row{display:flex;gap:8px;flex-wrap:wrap}.admin-row-actions{justify-content:flex-start}.admin-row-actions .button{min-height:36px;padding-inline:12px;white-space:nowrap}.admin-list .admin-header .button{white-space:nowrap}.admin-nav-actions{justify-content:flex-end;align-items:stretch}.admin-primary-actions{justify-content:flex-start;flex-wrap:wrap}.admin-nav-actions .button,.admin-primary-actions .button{min-width:max-content;padding-inline:14px}.admin-primary-actions .muted{align-self:center;flex:1 1 150px}.manager-chat-admin{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:0;overflow:hidden;box-shadow:var(--shadow)}.manager-chat-grid{display:grid;grid-template-columns:minmax(260px,.36fr) minmax(0,1fr);gap:0;min-height:min(680px,calc(100dvh - 210px))}.manager-chat-topbar{min-height:78px;padding:18px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);background:#fffffff5}.manager-chat-topbar h2{margin:2px 0 4px;font-size:1.45rem;line-height:1.15}.manager-chat-topbar p{margin:0;color:var(--muted);line-height:1.45}.notification-badge,.conversation-badge{min-width:22px;height:22px;padding:0 7px;border-radius:999px;display:inline-grid;place-items:center;background:#ef4444;color:#fff;font-size:12px;font-weight:800;line-height:1}.manager-inbox-panel{min-width:0;padding:14px;border-right:1px solid var(--line);background:#fff;display:flex;flex-direction:column;gap:12px}.manager-inbox-title{min-height:32px;padding:0 2px;display:flex;align-items:center;justify-content:space-between;gap:10px}.manager-inbox-title strong{font-size:14px}.manager-inbox-title span{min-width:24px;height:24px;border-radius:999px;display:inline-grid;place-items:center;background:var(--surface-soft);color:var(--muted);font-size:12px;font-weight:800}.manager-conversation-list{display:grid;align-content:start;gap:4px;min-width:0;max-height:480px;overflow-y:auto;padding-right:2px}.manager-conversation{width:100%;border:1px solid transparent;border-radius:12px;background:transparent;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;color:var(--ink);cursor:pointer;transition:background .16s var(--ease),border-color .16s var(--ease),transform .16s var(--ease)}.manager-conversation:hover{background:var(--surface-soft)}.manager-conversation.active{border-color:#cbe7f4;background:#eef8fd;box-shadow:none}.manager-conversation.unread .conversation-copy strong{color:var(--ink)}.conversation-avatar-wrap{position:relative;display:inline-flex}.conversation-dot{position:absolute;right:-1px;top:-1px;width:11px;height:11px;border:2px solid #ffffff;border-radius:50%;background:#ef4444}.manager-conversation strong,.manager-conversation small{display:block}.manager-conversation strong{font-size:13px;line-height:1.2}.manager-conversation small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-meta{min-width:34px;display:grid;justify-items:end;gap:5px}.conversation-meta time{color:var(--muted);font-size:11px;font-weight:700}.manager-chat-room{min-width:0;border:0;border-radius:0;background:#f8fafc;display:flex;flex-direction:column;overflow:hidden}.chat-header.compact{min-height:70px;padding:14px 18px;border-bottom:1px solid var(--line);background:#fff}.chat-header.compact h3{margin:0 0 4px;font-size:1.15rem}.manager-chat-peer{min-width:0;display:flex;align-items:center;gap:11px}.manager-chat-peer>div{min-width:0}.manager-chat-status{flex:0 0 auto}.chat-clear{appearance:none;min-height:30px;margin-left:8px;padding:6px 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#ffffff29;color:#fff;font-size:12px;font-weight:800;cursor:pointer}.chat-clear:hover{background:#ffffff3d}.chat-clear:disabled{opacity:.65;cursor:wait}.manager-chat-room>.form-message{margin:12px 12px 0}.manager-chat-messages{flex:1 1 auto;min-height:260px;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:7px;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.52),transparent 34%),linear-gradient(180deg,#f8fafc,#edf4f8)}.form-grid{display:grid;gap:12px}.input,.textarea{width:100%;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:14px;outline:none;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease)}.input::placeholder,.textarea::placeholder{color:#9aa5b6}.textarea{resize:vertical;line-height:1.55}.input:hover,.textarea:hover{border-color:var(--primary-100)}.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px #0e779324}.fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;gap:10px;background:var(--surface-soft);margin:0}.fieldset legend{padding:0 8px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.field-hint{color:var(--muted);font-size:12px;line-height:1.5}.checkbox{display:flex;gap:10px;align-items:center;font-weight:700;cursor:pointer}.checkbox input{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.button{min-height:40px;border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;font-size:14px;font-weight:800;cursor:pointer;text-align:center;white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.2;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .12s var(--ease),box-shadow .18s var(--ease)}.button:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.button:active{transform:translateY(0)}.button.primary{background:linear-gradient(135deg,var(--telegram) 0%,var(--telegram-dark) 100%);color:#fff;box-shadow:0 8px 18px -8px #229ed999}.button.primary:hover{box-shadow:0 12px 22px -8px #229ed9b3}.button.ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.button.ghost:hover{border-color:var(--primary);color:var(--primary-dark)}.button.light{background:#fff;color:var(--ink-panel)}.button.danger{background:var(--surface);color:var(--danger);border-color:#f0c2bc}.button.danger:hover{background:#fdf2f0;border-color:var(--danger)}.form-message{padding:12px 14px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#ecfdf6,#e3f7ef);border:1px solid #b6ebd5;color:var(--success);font-weight:700;line-height:1.5}.form-message.error{background:#fdf2f0;border-color:#f0c2bc;color:var(--danger)}.certificate-page{display:grid;gap:20px;width:100%}.certificate-heading{align-items:center}.certificate-heading-actions{justify-content:flex-end;flex-wrap:wrap}.certificate-workspace{display:grid;grid-template-columns:minmax(300px,.36fr) minmax(0,1fr);gap:20px;align-items:start}.certificate-controls{position:sticky;top:96px}.field-label{display:grid;gap:7px;color:var(--ink-soft);font-size:13px;font-weight:800}.certificate-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.certificate-preview-panel{overflow:hidden;padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffffe6,#f6f9fcf5),linear-gradient(45deg,rgba(14,119,147,.06) 25%,transparent 25% 50%,rgba(14,119,147,.06) 50% 75%,transparent 75%);background-size:auto,22px 22px;box-shadow:var(--shadow)}.certificate-sheet{position:relative;isolation:isolate;width:100%;max-width:100%;min-width:0;aspect-ratio:1.414 / 1;container-type:inline-size;overflow:hidden;margin:0 auto;border:4px solid #eef0f3;background:#fff;color:#232629;box-shadow:0 24px 58px -34px #08273f8c;print-color-adjust:exact;-webkit-print-color-adjust:exact}.certificate-teal-art,.certificate-purple-shape,.certificate-purple-shadow{position:absolute;z-index:0;pointer-events:none}.certificate-teal-art{inset:0;z-index:1;width:100%;height:100%;overflow:visible}.certificate-teal-main{fill:#8bdcdf}.certificate-teal-underlay{fill:#4fc4cb;opacity:.78}.certificate-purple-shape{right:-.5%;bottom:-8.7%;z-index:1;width:24.2%;height:28.6%;border-top-left-radius:100%;background:#b00080}.certificate-purple-shadow{right:-2.2%;bottom:-7.8%;z-index:0;width:27.8%;height:31.4%;border-top-left-radius:100%;background:#cf7cc3}.certificate-medal{position:absolute;left:5.1%;top:7.7%;z-index:4;width:12.7%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffce16 0 44%,#fff9bf 45% 51%,#ffcc17 52% 61%,transparent 62%),repeating-conic-gradient(from 4deg,#ffd71d 0 8deg,#fff06d 8deg 13deg,#d99700 13deg 18deg);box-shadow:inset 0 0 0 clamp(3px,.7cqw,7px) #d99400,0 12px 18px -16px #4d2e00d9}.certificate-medal span{position:absolute;inset:22%;border-radius:50%;background:linear-gradient(150deg,rgba(255,255,255,.45),transparent 48%),#ffd018;border:clamp(3px,.52cqw,5px) solid #fff9be}.certificate-ribbon{position:absolute;top:18.3%;z-index:3;width:5%;height:17%;background:#ffcc08;clip-path:polygon(18% 0,82% 0,100% 100%,50% 76%,0 100%)}.certificate-ribbon.left{left:6.7%;transform:rotate(14deg)}.certificate-ribbon.right{left:13.2%;transform:rotate(-14deg)}.certificate-content{position:relative;z-index:2;width:76%;height:100%;margin:0 auto;padding-top:16.8%;display:flex;flex-direction:column;align-items:center;text-align:center}.certificate-title{font-family:"Noto Serif Armenian",Georgia,serif;font-size:clamp(38px,9.1cqw,88px);line-height:.9;font-weight:800;letter-spacing:0}.certificate-subtitle{margin-top:10px;font-family:"Noto Serif Armenian",Georgia,serif;font-size:clamp(12px,2.6cqw,25px);line-height:1;font-weight:500;letter-spacing:0}.certificate-name{width:min(840px,100%);margin-top:9.8%;font-family:"Noto Serif Armenian",Georgia,serif;font-size:clamp(25px,5.9cqw,58px);line-height:1.14;font-weight:600;letter-spacing:0;overflow-wrap:anywhere}.certificate-body{width:min(600px,70%);max-height:12.5%;margin:clamp(7px,1.8cqw,16px) auto 0;font-family:"Noto Serif Armenian",Georgia,serif;font-size:clamp(7px,1.28cqw,13px);line-height:1.45;font-weight:600;color:#111315;overflow:hidden}.certificate-armath-logo{position:absolute;left:50%;bottom:8.1%;z-index:3;width:14.7%;height:auto;margin:0;object-fit:contain;transform:translate(-50%)}.certificate-signatures{position:absolute;left:11.5%;right:11.5%;bottom:2.4%;z-index:3;display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:37%;color:#222528}.certificate-signature-block{display:grid;justify-items:center;gap:4px;min-width:0}.certificate-signature-value{min-height:16px;display:flex;align-items:end;justify-content:center;font-family:"Noto Serif Armenian",Georgia,serif;font-size:clamp(6px,1.05cqw,11px);font-weight:600;color:#2e3135}.certificate-signature-line{width:min(160px,100%);height:1px;background:linear-gradient(90deg,transparent,#5b6068 16% 84%,transparent)}.certificate-signature-label{font-family:"Noto Serif Armenian",Georgia,serif;font-size:clamp(5px,.8cqw,8px);font-weight:600;line-height:1.3;color:#6b7179;white-space:nowrap}@media(max-width:980px){.certificate-workspace{grid-template-columns:1fr}.certificate-controls{position:static}}@media(max-width:760px){.certificate-page{width:100%}.certificate-heading{align-items:stretch}.certificate-heading-actions{justify-content:stretch}.certificate-heading-actions .button{flex:1 1 140px}.certificate-preview-panel{width:100%;padding:10px;border-radius:12px}.certificate-field-pair{grid-template-columns:1fr}.certificate-sheet{width:100%}}@media print{@page{size:A4 landscape;margin:0}html,body,#root{width:297mm;height:210mm;margin:0;background:#fff!important}body *{visibility:hidden!important}.certificate-sheet,.certificate-sheet *{visibility:visible!important}.app-shell,.page,.certificate-page,.certificate-workspace,.certificate-preview-panel{display:block!important;width:297mm!important;height:210mm!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important;overflow:hidden!important}.topbar,.bottom-tabs,.certificate-heading,.certificate-controls{display:none!important}.certificate-sheet{position:fixed!important;inset:0!important;width:297mm!important;height:210mm!important;min-width:0!important;max-width:none!important;margin:0!important;border:0!important;box-shadow:none!important}}.confirm-backdrop{position:fixed;inset:0;z-index:50;padding:18px;display:grid;place-items:center;background:#0f172a52;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.confirm-dialog{width:min(420px,100%);padding:18px;display:grid;gap:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-lg)}.confirm-dialog h3{margin:0 0 8px;font-size:1.2rem;line-height:1.2}.confirm-dialog p{margin:0;color:var(--muted);line-height:1.55}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.empty-state{padding:26px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-soft);display:grid;gap:6px;color:var(--ink);font-weight:700}.empty-state.warning{border-color:#f1c27d;background:#fff8e8;color:var(--warning)}.empty-state.compact{padding:16px}.muted{color:var(--muted);font-weight:500}.login-card{max-width:430px;margin:40px auto;padding:32px;display:grid;gap:14px;text-align:left;box-shadow:var(--shadow-lg)}.login-title{font-size:1.9rem;font-weight:800;letter-spacing:-.02em}.login-copy{margin:0 0 8px;color:var(--muted);line-height:1.6}.chat-shell{display:grid;grid-template-columns:minmax(290px,.34fr) minmax(0,1fr);min-height:min(780px,calc(100dvh - 132px));overflow:hidden;border:1px solid rgba(180,196,210,.72);border-radius:22px;background:var(--surface);box-shadow:0 24px 70px -34px #08273f73}.chat-sidebar,.chat-panel{border:0;border-radius:0;background:var(--surface);box-shadow:none;min-width:0}.chat-sidebar{padding:14px;display:flex;flex-direction:column;gap:10px;min-height:0;border-right:1px solid var(--line);background:#f8fbfd}.chat-sidebar-header{display:grid;gap:12px;padding:8px 6px 14px;border-bottom:1px solid var(--line)}.chat-sidebar-header h1{margin:8px 0 0;font-size:1.55rem;line-height:1.15}.chat-sidebar .eyebrow{background:#e4f4fc;color:var(--telegram-dark)}.chat-me{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;font-weight:700}.chat-room-label{margin:8px 8px 2px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.chat-peer-list{display:grid;gap:4px;overflow-y:auto;padding-right:2px}.chat-room{width:100%;min-height:62px;padding:9px 10px;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--ink);display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.chat-room>span:last-child{min-width:0}.chat-room:hover,.chat-room.active{background:#eaf5fb;border-color:#229ed92e}.chat-room.active{box-shadow:inset 3px 0 0 var(--telegram)}.chat-room.instructor-room{background:#eff9ff}.chat-room.instructor-room.active{background:#dff2fc}.chat-room.group-room .chat-avatar{background:linear-gradient(135deg,#229ed9,#46b4e7);color:#fff;border-color:transparent}.group-avatar{display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#229ed9,#46b4e7)!important;color:#fff!important}.chat-room strong,.chat-room small{display:block}.chat-room strong{font-size:14px}.chat-room small{margin-top:2px;color:var(--muted);font-size:12px;line-height:1.35}.chat-list-panel{display:none}.chat-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:#dceff8;border:1px solid #c6e2f0;color:var(--telegram-dark);font-weight:800;object-fit:cover}.chat-avatar.small{width:30px;height:30px;border-radius:9px;font-size:12px}.chat-panel{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--chat-bg)}.chat-header{min-height:68px;padding:14px 18px;border-bottom:1px solid rgba(182,198,211,.68);display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fffffff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.chat-header h2{margin:0 0 3px;font-size:1.18rem;line-height:1.25}.chat-header p{margin:0;color:var(--muted);line-height:1.5}.chat-header .status-pill{background:#e4f4fc;color:var(--telegram-dark)}.chat-panel>.form-message{margin:10px 12px 0;flex:0 0 auto}.chat-messages{flex:1 1 auto;min-height:320px;overflow-y:auto;padding:18px 18px 12px;display:flex;flex-direction:column;gap:7px;background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.34),transparent 34%),linear-gradient(180deg,#e5eff6,#dce9f1)}.message-bubble{position:relative;width:fit-content;max-width:min(70ch,78%);padding:8px 11px 7px;border:0;border-radius:17px 17px 17px 5px;background:var(--chat-in);box-shadow:0 1px 2px #0b1f301f}.message-bubble.mine{align-self:flex-end;border-radius:17px 17px 5px;background:var(--chat-out)}.message-meta{display:flex;align-items:baseline;justify-content:flex-start;gap:10px;margin-bottom:3px}.message-meta strong{font-size:11px;color:var(--telegram-dark)}.message-meta span{color:var(--muted);font-size:11px;font-weight:700}.message-bubble p{margin:0;color:#102235;line-height:1.48;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.chat-empty{margin:auto;width:min(420px,100%);padding:18px;border:0;border-radius:18px;background:#ffffffc2;color:var(--muted);display:grid;gap:6px;text-align:center;line-height:1.5}.chat-empty strong{color:var(--ink)}.chat-compose{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:8px;padding:10px 12px 12px;border-top:1px solid rgba(182,198,211,.55);background:#f4f9fcf5}.chat-input{width:100%;min-height:46px;padding:12px 16px;border:1px solid rgba(186,203,216,.75);border-radius:999px;background:#fff;color:var(--ink);font-size:15px;outline:none;box-shadow:0 1px 2px #0d1a2d0d}.chat-input:focus{border-color:#229ed9bf;box-shadow:0 0 0 4px #229ed921}.chat-send{width:46px;height:46px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--telegram);color:#fff;font-size:18px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px -10px #229ed9e6}.chat-send:disabled{cursor:default;opacity:.42;box-shadow:none}.chat-mode .page{gap:16px}.chat-mode .topbar{top:10px;flex:0 0 auto}.chat-mode .nav-links{background:#f6fbfe}.chat-mode .chat-shell{flex:1 1 auto;min-height:calc(100dvh - 118px)}.chat-mode .chat-sidebar-header{padding-top:4px}.chat-mode .chat-room{min-height:58px}.chat-mode .chat-compose{padding-bottom:max(12px,env(safe-area-inset-bottom))}.chat-mode .chat-messages{padding-bottom:16px}.chat-mode .chat-empty{max-width:360px}.chat-mode .message-bubble.mine .message-meta strong{color:#3f7c25}.chat-mode .message-bubble.mine .message-meta span{color:#5d7d4e}.chat-mode .chat-header .status-pill{flex:0 0 auto}.chat-mode .chat-input::placeholder{color:#8ca1b3}.chat-mode .chat-send:not(:disabled):hover{background:var(--telegram-dark)}.chat-mode .chat-send:not(:disabled):active{transform:scale(.96)}.chat-mode .chat-room strong,.chat-mode .chat-room small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer{display:block;padding:22px 24px;color:var(--muted);font-size:.92rem;box-shadow:var(--shadow-sm)}.footer-title{color:var(--ink);font-weight:800;font-size:1rem;margin-bottom:4px}.footer-copy{line-height:1.6}.footer-links{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-weight:700}.footer-links a:hover{color:var(--primary)}@media(max-width:920px){.topbar{align-items:center;flex-direction:row;position:static}.nav-links{justify-content:stretch;width:100%;border-radius:var(--radius);display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.hero,.admin-grid,.manager-chat-grid,.communication-grid,.chat-shell{grid-template-columns:1fr}.chat-shell{min-height:auto;border-radius:18px}.chat-sidebar{max-height:340px;border-right:0;border-bottom:1px solid var(--line)}.chat-peer-list{max-height:170px}.chat-panel{min-height:620px}.manager-card{grid-template-columns:1fr;align-items:start;padding:28px}.hero-copy{min-height:auto}}@media(max-width:640px){.app-shell{padding:10px 10px 24px;gap:14px}.topbar{gap:12px;padding:12px}.brand-title{font-size:15px}.brand-subtitle{display:none}.nav-link,.button{min-height:42px;padding:9px 10px;font-size:13px}.nav-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.nav-link{text-align:center;justify-content:center;display:inline-flex;align-items:center;border-radius:var(--radius-sm)}.nav-links .button{width:100%;border-radius:var(--radius-sm)}.manager-card,.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{padding:20px}.manager-avatar{width:72px;height:72px;border-radius:16px;font-size:28px}.hero-copy{padding:22px}.hero-copy h1{font-size:2.15rem}.manager-copy h1{font-size:1.9rem;line-height:1.12}.lede{font-size:1rem}.stat-row{grid-template-columns:1fr}.detail-header{align-items:flex-start;flex-direction:column}.detail-header img,.detail-avatar{width:92px;height:92px}.student-card-header,.admin-row-main{align-items:flex-start}.student-card-footer{justify-content:stretch}.student-card-footer .link-arrow{width:100%;justify-content:center}.admin-header,.admin-actions,.admin-row,.chat-header,.chat-compose{align-items:flex-start}.admin-header,.admin-actions,.admin-row{flex-direction:column}.admin-row-actions,.button-row{width:100%}.admin-row-actions .button,.button-row .button{flex:1 1 100%}.chat-header{flex-direction:column}.manager-chat-grid{min-height:auto}.manager-conversation-list{display:flex;gap:8px;max-height:none;overflow-x:auto;overflow-y:hidden;padding:0 0 4px;scroll-snap-type:x proximity}.manager-conversation{flex:0 0 240px;scroll-snap-align:start}.manager-chat-room{min-height:520px}.chat-sidebar{padding:12px;max-height:none}.chat-sidebar-header{gap:10px}.chat-peer-list{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;max-height:none;padding:0 0 4px;scroll-snap-type:x proximity}.chat-peer-list .chat-room{flex:0 0 220px;scroll-snap-align:start}.chat-panel{min-height:560px}.chat-header,.chat-messages,.chat-compose{padding:12px}.chat-compose{grid-template-columns:minmax(0,1fr) 44px;align-items:center}.message-bubble{width:94%;max-width:88%}}@media(max-width:480px){body{background-image:none}.app-shell{padding:8px}.brand-mark{width:38px;height:38px;border-radius:10px}.brand-mark img{width:24px;height:24px}.brand-title{font-size:14px}.nav-links{grid-template-columns:1fr 1fr}.manager-card,.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{border-radius:var(--radius);padding:16px}.section-header h1,.section-header h2,.admin-header h1,.admin-form h2,.chat-header h2{font-size:1.35rem}.manager-copy h1{font-size:1.7rem}.hero-actions,.detail-links{display:grid;grid-template-columns:1fr}.input,.textarea{font-size:16px}.student-card,.info-card,.communication-item{padding:14px}.chat-avatar{width:38px;height:38px;border-radius:50%}.chat-shell{margin-inline:-2px;border-radius:14px;min-height:calc(100vh - 150px)}.chat-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-sidebar-header h1{font-size:1.2rem;margin-top:5px}.chat-me span{display:none}.chat-room-label{margin-top:4px}.chat-room{min-height:56px;border-radius:14px}.chat-peer-list .chat-room{flex-basis:178px}.manager-conversation{flex-basis:210px;grid-template-columns:auto minmax(0,1fr)}.manager-conversation time{grid-column:2}.message-bubble{max-width:92%;width:fit-content;padding:8px 10px 7px}.message-meta{align-items:flex-start;flex-direction:column;gap:2px}.chat-input{min-height:44px;padding:11px 14px;font-size:16px}.chat-send{width:44px;height:44px}.footer{padding:16px;border-radius:var(--radius)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}:root{--bg: #f7f8fa;--surface: #ffffff;--surface-soft: #f5f6f8;--surface-tint: #f1f7fb;--ink: #111827;--ink-soft: #374151;--muted: #6b7280;--line: #e5e7eb;--line-strong: #d1d5db;--primary: #0f6f95;--primary-dark: #0b5877;--primary-50: #edf8fc;--primary-100: #d9edf5;--telegram: #0f8fc4;--telegram-dark: #0c719c;--chat-bg: #f3f4f6;--chat-out: #e8f6ff;--chat-in: #ffffff;--accent: #0f6f95;--accent-soft: #edf8fc;--radius-sm: 8px;--radius: 10px;--radius-lg: 14px;--shadow-sm: none;--shadow: none;--shadow-md: none;--shadow-lg: none;--gradient-primary: #0f8fc4;--gradient-tint: #f3f8fb;--gradient-panel: #111827}body{background:var(--bg)}.app-shell{width:min(1120px,100%);gap:16px}.app-shell.chat-mode{width:min(1180px,100%)}.topbar{position:static;padding:10px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.brand-mark{width:36px;height:36px;border-radius:9px;background:var(--surface);border-color:var(--line)}.brand-mark img{width:23px;height:23px}.brand-title{font-size:15px;letter-spacing:0}.brand-subtitle{font-size:11px}.nav-links{gap:2px;padding:2px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.nav-link,.nav-links .button{min-height:34px;padding:7px 11px;border-radius:8px;font-size:13px}.nav-link:hover,.button.ghost:hover{background:var(--surface-soft);color:var(--ink);border-color:var(--line);box-shadow:none;transform:none}.nav-link.active{background:var(--ink);color:#fff;box-shadow:none}.page,.page-grid,.home-dashboard,.admin-page{gap:14px}.manager-card,.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card,.footer{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none}.manager-card{display:block;padding:clamp(24px,5vw,54px)}.manager-card:before,.detail-card:before{display:none}.manager-copy h1{max-width:760px;margin:12px 0;font-size:clamp(2rem,6vw,4.2rem);line-height:1.02;letter-spacing:0}.lede{max-width:680px;color:var(--ink-soft);font-size:1rem;line-height:1.7}.eyebrow{padding:0;border-radius:0;background:transparent;color:var(--muted);font-size:12px;letter-spacing:.04em}.hero-actions{gap:8px;margin-top:24px}.button{min-height:38px;border-radius:999px;padding:9px 15px;background:var(--ink);font-size:13px;box-shadow:none}.button:hover{transform:none;box-shadow:none}.button.primary{background:var(--ink);box-shadow:none}.button.primary:hover{box-shadow:none}.button.ghost,.button.danger{background:var(--surface);border-color:var(--line)}.button.danger{color:var(--danger)}.home-strip{padding:0;border:0;background:transparent}.home-strip .communication-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-strip .communication-item{min-height:0;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;align-items:start}.home-strip .communication-item span{grid-row:1 / span 2;width:22px;height:22px;border:1px solid var(--line);border-radius:999px;display:grid;place-items:center;color:var(--muted);font-size:11px;line-height:1}.home-strip .communication-item strong{margin:0;font-size:.92rem;line-height:1.25}.home-strip .communication-item p{margin:0;font-size:12px;line-height:1.35}.communication-grid,.card-grid,.student-grid{gap:10px}.communication-item,.student-card,.info-card,.resource-card,.activity-item,.admin-row,.manager-conversation,.fieldset,.empty-state{border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:none}.communication-item{min-height:auto;padding:16px}.communication-item:hover,.student-card:hover,.info-card:hover,.resource-card:hover,.admin-row:hover{transform:none;border-color:var(--line-strong);box-shadow:none}.communication-item span{width:auto;height:auto;padding:0;border:0;background:transparent;color:var(--muted)}.section{padding:22px}.section-header h1,.section-header h2,.admin-header h1,.admin-form h2,.manager-chat-admin h2,.login-title{letter-spacing:0}.student-card{padding:14px;gap:14px}.story-rail{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 14px;margin:-4px -2px 2px;scrollbar-width:thin}.story-item{width:76px;flex:0 0 76px;display:grid;justify-items:center;gap:6px;color:var(--ink)}.story-ring{width:68px;height:68px;padding:2px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#f9ce34,#ee2a7b 48%,#6228d7) border-box;border:2px solid transparent}.story-ring img,.story-avatar{width:58px;height:58px;border-radius:999px;border:2px solid #ffffff}.story-avatar{display:grid;place-items:center;background:var(--surface-soft);color:var(--ink);font-size:13px;font-weight:800}.story-name{width:100%;color:var(--ink-soft);font-size:11px;line-height:1.2;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-card-footer{border-top:0;justify-content:flex-start}.link-arrow{color:var(--ink)}.link-arrow:after{content:""}.student-avatar,.detail-avatar,.admin-avatar,.manager-avatar{background:var(--surface-soft);color:var(--ink);border-color:var(--line);box-shadow:none}.detail-card,.admin-list,.admin-form,.manager-chat-admin{padding:22px}.detail-header h1{letter-spacing:0}.tag,.status-pill{border-color:var(--line);background:var(--surface-soft);color:var(--ink-soft)}.input,.textarea,.chat-input{border-color:var(--line);border-radius:9px;background:var(--surface);box-shadow:none}.input:focus,.textarea:focus,.chat-input:focus{border-color:var(--ink);box-shadow:0 0 0 3px #11182714}.form-message,.form-message.error,.empty-state.warning{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft)}.admin-grid{gap:14px}.admin-scroll{max-height:520px}.manager-chat-grid{gap:12px}.chat-shell{min-height:min(720px,calc(100dvh - 120px));border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:none}.chat-sidebar{background:var(--surface);border-right-color:var(--line)}.chat-sidebar-header{border-bottom-color:var(--line)}.chat-sidebar .eyebrow,.chat-header .status-pill{background:transparent;color:var(--muted)}.chat-room{min-height:56px;border-radius:10px}.chat-room:hover,.chat-room.active,.chat-room.instructor-room,.chat-room.instructor-room.active{background:var(--surface-soft);border-color:var(--line)}.chat-room.active{box-shadow:inset 2px 0 0 var(--ink)}.chat-room.group-room .chat-avatar{background:var(--ink)}.chat-avatar{background:var(--surface-soft);border-color:var(--line);color:var(--ink)}.chat-panel,.manager-chat-room{background:var(--surface-soft)}.chat-header{border-bottom-color:var(--line);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}.chat-messages,.manager-chat-messages{background:var(--surface-soft)}.message-bubble,.message-bubble.mine{background:var(--surface);box-shadow:none;border:1px solid var(--line)}.message-bubble.mine{background:#f0f9ff}.message-meta strong,.chat-mode .message-bubble.mine .message-meta strong,.chat-mode .message-bubble.mine .message-meta span{color:var(--muted)}.chat-compose{border-top-color:var(--line);background:var(--surface)}.chat-input{border-radius:999px}.chat-send{background:var(--ink);box-shadow:none}.chat-send:not(:disabled):hover,.chat-mode .chat-send:not(:disabled):hover{background:var(--ink-soft)}.footer{color:var(--muted)}@media(max-width:920px){.topbar{border-bottom:1px solid var(--line)}.chat-shell{min-height:auto}.home-strip .communication-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.app-shell{padding:8px;gap:10px}.topbar{padding:8px 0}.nav-links{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.manager-card,.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{padding:16px;border-radius:12px}.manager-copy h1{font-size:2.25rem}.communication-grid{grid-template-columns:1fr}.home-strip .communication-grid{grid-template-columns:1fr;gap:6px}.home-strip .communication-item{padding:9px 10px}.chat-mode .chat-shell{min-height:calc(100dvh - 112px)}.chat-sidebar{padding:10px}.chat-panel{min-height:520px}}:root{--insta-gradient: linear-gradient(135deg, #0f8fc4 0%, #0f6f95 55%, #0b5877 100%);--insta-soft: linear-gradient(135deg, rgba(15, 143, 196, .12), rgba(15, 111, 149, .1) 55%, rgba(11, 88, 119, .1))}.nav-links,.nav-link,.nav-links .button,.button{border-radius:999px}.brand-mark{padding:2px;border:2px solid transparent;border-radius:999px;background:linear-gradient(#fff,#fff) padding-box,var(--insta-gradient) border-box;box-shadow:0 10px 24px -18px #0f6f95b8}.brand-mark img{width:30px;height:30px;border-radius:999px}.nav-link.active,.button.primary{border-color:transparent;background:var(--insta-gradient);color:#fff;box-shadow:0 10px 22px -16px #0f6f95b3}.button.ghost{background:#fff}.manager-card{border:1px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--insta-gradient) border-box;box-shadow:0 18px 42px -34px #0f6f959e}.manager-card .eyebrow{color:#0f6f95}.hero-actions .button.ghost,.nav-links .button,.nav-link{background:#ffffffc2}.home-strip .communication-item{align-items:center;grid-template-columns:auto 1fr;column-gap:10px;min-height:auto;padding:10px 12px}.home-strip .communication-item span{grid-row:span 2;width:30px;height:30px;border:2px solid transparent;border-radius:999px;display:grid;place-items:center;background:linear-gradient(#fff,#fff) padding-box,var(--insta-gradient) border-box;color:#111827;font-size:12px}.home-strip .communication-item strong,.home-strip .communication-item p{text-align:left}.app-shell{padding-bottom:104px}.topbar{justify-content:flex-start}.bottom-tabs{position:fixed;left:50%;bottom:14px;z-index:30;width:min(500px,calc(100% - 24px));min-height:58px;padding:6px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;border:1px solid rgba(210,219,231,.9);border-radius:24px;background:#ffffffeb;box-shadow:0 18px 44px -28px #0d1a2d6b;-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);transform:translate(-50%)}.bottom-tab{appearance:none;border:0;min-width:0;min-height:46px;padding:5px;border-radius:16px;display:grid;place-items:center;background:transparent;color:var(--muted);cursor:pointer}.bottom-tab:hover{background:var(--surface-soft);color:var(--ink)}.bottom-tab.active{background:var(--insta-soft);color:var(--ink)}.bottom-tab-icon{position:relative;width:34px;height:34px;border:2px solid transparent;border-radius:12px;display:grid;place-items:center;background:linear-gradient(#fff,#fff) padding-box,var(--insta-gradient) border-box;color:var(--primary-dark);transition:transform .18s ease,color .18s ease,background .18s ease}.bottom-tab-svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.bottom-tab.active .bottom-tab-icon{background:var(--insta-gradient);color:#fff;transform:translateY(-1px)}.bottom-tab-badge{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 5px;border:2px solid #ffffff;border-radius:999px;display:inline-grid;place-items:center;background:#ef4444;color:#fff;font-size:10px;font-weight:900;line-height:1;box-shadow:0 4px 10px #ef444459}.chat-room.unread{background:#fff7f7}.chat-room.unread strong{color:var(--ink);font-weight:900}.chat-unread-badge{width:fit-content;margin-top:6px;animation:chatBadgePop .22s ease both}@keyframes chatBadgePop{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@media(max-width:640px){.app-shell{padding-bottom:96px}.nav-links{border-radius:16px}.nav-link,.nav-links .button{border-radius:999px}.story-rail{margin-inline:-4px;padding-inline:4px}.bottom-tabs{bottom:8px;width:calc(100% - 16px);min-height:56px;border-radius:22px}.bottom-tab{min-height:44px;padding:4px}.bottom-tab-icon{width:32px;height:32px}.bottom-tab-svg{width:19px;height:19px}}:root{--bg: #f4f7fb;--surface: #ffffff;--surface-soft: #f8fafc;--surface-tint: #ecf7ff;--ink: #1f2937;--ink-soft: #334155;--muted: #64748b;--line: #d9e2ec;--line-strong: #b8c7d9;--primary: #087ea4;--primary-dark: #075985;--primary-50: #e8f7ff;--primary-100: #ccefff;--accent: #00a3ff;--accent-soft: #e7f6ff;--radius-sm: 6px;--radius: 8px;--radius-lg: 10px;--jb-blue: #087ea4;--jb-cyan: #00a3ff;--jb-purple: #6b57ff;--jb-green: #10b981;--insta-gradient: linear-gradient(135deg, #00a3ff 0%, #087ea4 58%, #075985 100%);--insta-soft: linear-gradient(135deg, rgba(0, 163, 255, .13), rgba(8, 126, 164, .1))}body{background-color:var(--bg);background-image:linear-gradient(rgba(8,126,164,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(8,126,164,.035) 1px,transparent 1px);background-size:28px 28px}.app-shell{width:min(1080px,100%)}.topbar{min-height:58px;padding:9px 0 10px;border-bottom:1px solid var(--line)}.brand{gap:10px}.brand-mark{width:38px;height:38px;padding:0;border:1px solid var(--line-strong);border-radius:8px;background:linear-gradient(135deg,#fff,#e8f7ff);box-shadow:inset 3px 0 0 var(--jb-cyan)}.brand-mark img{width:26px;height:26px;border-radius:6px}.brand-title{max-width:min(72vw,640px);color:var(--ink);font-size:15px;line-height:1.15;white-space:normal;overflow:visible;text-overflow:clip}.brand-subtitle{color:var(--muted)}.manager-card,.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card,.student-card,.info-card,.resource-card,.communication-item,.empty-state,.chat-shell{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 16px 36px -34px #0f172a80}.manager-card{border-top:3px solid var(--jb-cyan);background:linear-gradient(180deg,#e7f6ff9e,#ffffffeb 38%),var(--surface)}.manager-card .eyebrow{color:var(--primary);letter-spacing:.08em}.manager-copy h1,.login-title,.section-header h1,.section-header h2,.detail-header h1{color:#111827;letter-spacing:0}.button,.nav-link,.nav-links .button,.bottom-tab,.input,.textarea,.chat-input{border-radius:var(--radius)}.button.primary,.chat-send{border:1px solid #06698a;background:linear-gradient(180deg,#0c97c8,#087ea4);color:#fff;box-shadow:0 10px 20px -18px #087ea4cc}.button.primary:hover,.chat-send:not(:disabled):hover,.chat-mode .chat-send:not(:disabled):hover{background:linear-gradient(180deg,#0aa7df,#087ea4)}.button.ghost,.button.danger{background:#fff;border-color:var(--line-strong)}.input,.textarea,.chat-input{border-color:var(--line-strong);background:#fff}.input:focus,.textarea:focus,.chat-input:focus{border-color:var(--jb-cyan);box-shadow:0 0 0 3px #00a3ff21}.home-strip .communication-item,.student-card,.admin-row,.manager-conversation,.chat-room{border-left:3px solid transparent}.home-strip .communication-item:hover,.student-card:hover,.admin-row:hover,.manager-conversation:hover,.chat-room:hover{border-color:var(--line);border-left-color:var(--jb-cyan)}.home-strip .communication-item span,.story-ring{border-radius:8px;border:1px solid var(--line-strong);background:linear-gradient(180deg,#fff,#e8f7ff);color:var(--primary-dark)}.bottom-tab-icon{border-radius:12px;border:1px solid var(--line-strong);background:linear-gradient(180deg,#fff,#e8f7ff);color:var(--primary-dark)}.story-ring{border-radius:14px}.story-ring img,.story-avatar{border-radius:11px}.bottom-tabs{border-radius:14px;border:1px solid var(--line-strong);background:#fffffff0;box-shadow:0 18px 44px -30px #0f172a8c}.bottom-tab{border-radius:10px;color:var(--muted)}.bottom-tab.active{background:#e8f7ff;color:var(--primary-dark)}.bottom-tab.active .bottom-tab-icon{border-color:#087ea4;background:linear-gradient(180deg,#0aa7df,#087ea4);color:#fff}.login-card{border-top:3px solid var(--jb-cyan)}.chat-shell{overflow:hidden}.chat-sidebar{background:#f8fafc}.chat-header{border-bottom-color:var(--line)}.message-bubble.mine{background:#e8f7ff;border-color:#ccefff}@media(max-width:640px){.topbar{min-height:56px}.brand-title{max-width:calc(100vw - 92px);font-size:14px;line-height:1.2}.manager-card{border-top-width:2px}.bottom-tabs{border-radius:12px}.bottom-tab{border-radius:8px}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes corePulse{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.06);opacity:1}}.home-dashboard{gap:12px}.manager-card{min-height:340px;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);gap:clamp(18px,4vw,42px);align-items:center;overflow:hidden}.manager-copy{position:relative;z-index:2}.orbit-system{position:relative;width:min(100%,360px);aspect-ratio:1;justify-self:center;display:grid;place-items:center;border-radius:28px;background:radial-gradient(circle at 50% 50%,rgba(0,163,255,.17),transparent 34%),linear-gradient(rgba(8,126,164,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(8,126,164,.08) 1px,transparent 1px);background-size:auto,22px 22px,22px 22px}.orbit-system:before{content:"";position:absolute;inset:14%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.92) 0 18%,rgba(232,247,255,.5) 19% 38%,transparent 39%);filter:drop-shadow(0 18px 30px rgba(8,126,164,.18))}.sun-core{position:relative;z-index:2;width:74px;height:74px;border-radius:18px;background:linear-gradient(135deg,#00a3ff,#087ea4 58%,#6b57ff);box-shadow:0 0 0 10px #00a3ff17,0 18px 38px -18px #087ea4c7;animation:corePulse 3.8s ease-in-out infinite}.sun-core:before,.sun-core:after{content:"";position:absolute;background:#ffffffd6}.sun-core:before{width:34px;height:5px;left:20px;top:24px;border-radius:999px}.sun-core:after{width:22px;height:5px;left:20px;top:42px;border-radius:999px}.orbit{position:absolute;inset:50%;border:1px solid rgba(8,126,164,.24);border-radius:50%;transform-origin:center}.orbit-one{width:132px;height:132px;margin:-66px;animation:orbitSpin 9s linear infinite}.orbit-two{width:210px;height:210px;margin:-105px;animation:orbitSpin 15s linear infinite reverse}.orbit-three{width:288px;height:288px;margin:-144px;animation:orbitSpin 22s linear infinite}.planet{position:absolute;top:50%;right:-8px;width:16px;height:16px;margin-top:-8px;border-radius:50%;box-shadow:0 8px 18px -8px #0f172a73}.planet-blue{background:#00a3ff}.planet-green{width:20px;height:20px;margin-top:-10px;background:#10b981}.planet-violet{width:13px;height:13px;margin-top:-6px;background:#6b57ff}.home-strip{margin-top:-26px;position:relative;z-index:3}.home-strip .communication-grid{width:min(720px,calc(100% - 32px));margin-inline:auto}@media(max-width:820px){.manager-card{min-height:auto;grid-template-columns:1fr}.orbit-system{width:min(100%,280px);margin-top:-6px}.orbit-one{width:104px;height:104px;margin:-52px}.orbit-two{width:166px;height:166px;margin:-83px}.orbit-three{width:226px;height:226px;margin:-113px}}@media(max-width:640px){.manager-card{gap:14px}.orbit-system{width:min(100%,236px)}.sun-core{width:58px;height:58px;border-radius:14px}.sun-core:before{width:27px;left:16px;top:19px}.sun-core:after{width:18px;left:16px;top:33px}.home-strip{margin-top:-12px}.home-strip .communication-grid{width:100%}}@media(prefers-reduced-motion:reduce){.orbit,.sun-core{animation:none!important}}@keyframes solarOrbit{to{transform:rotate(360deg)}}@keyframes solarGlow{0%,to{transform:scale(1);box-shadow:0 0 0 12px #fbbf2414,0 0 34px #fbbf2499,0 0 76px #f9731657,0 18px 38px -20px #c2410cc7}50%{transform:scale(1.025);box-shadow:0 0 0 18px #fbbf241c,0 0 48px #fbbf24b8,0 0 96px #f973166b,0 18px 38px -20px #c2410cdb}}@keyframes moonOrbit{to{transform:rotate(360deg)}}.solar-system{position:relative;width:min(100%,390px);aspect-ratio:1;justify-self:center;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(148,163,184,.24);border-radius:18px;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.9) 0 1px,transparent 2px),radial-gradient(circle at 76% 18%,rgba(255,255,255,.7) 0 1px,transparent 2px),radial-gradient(circle at 64% 76%,rgba(255,255,255,.65) 0 1px,transparent 2px),radial-gradient(circle at 38% 66%,rgba(255,255,255,.45) 0 1px,transparent 2px),radial-gradient(circle at 50% 50%,rgba(14,165,233,.22),transparent 42%),linear-gradient(145deg,#09111f,#0f2036 55%,#111827)}.solar-system:before{content:"";position:absolute;inset:18px;border-radius:50%;background:linear-gradient(rgba(56,189,248,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.08) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:radial-gradient(circle,#000 0 70%,transparent 72%);mask-image:radial-gradient(circle,#000 0 70%,transparent 72%)}.solar-sun{position:relative;z-index:4;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#fffde7 0 16%,#fde68a 17% 42%,#fbbf24 43% 72%,#f59e0b 73% 100%);animation:solarGlow 7.5s ease-in-out infinite}.solar-sun:before,.solar-sun:after{content:"";position:absolute;inset:-34%;border-radius:50%;pointer-events:none}.solar-sun:before{background:conic-gradient(from 18deg,#fbbf2405,#fbbf2447,#f973160a,#fbbf2438,#fbbf2405);filter:blur(7px);opacity:.9}.solar-sun:after{inset:14%;background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.32),transparent 24%);mix-blend-mode:soft-light;opacity:.65}.solar-orbit{--orbit: 50%;--speed: 14s;--planet: 14px;position:absolute;left:50%;top:50%;z-index:3;width:var(--orbit);height:var(--orbit);margin-top:calc(var(--orbit) / -2);margin-left:calc(var(--orbit) / -2);border:1px solid rgba(125,211,252,.24);border-radius:50%;animation:solarOrbit var(--speed) linear infinite}.orbit-mercury{--orbit: 24%;--speed: 8s;--planet: 9px;animation-delay:-11s}.orbit-venus{--orbit: 36%;--speed: 12s;--planet: 13px;animation-delay:-37s}.orbit-earth{--orbit: 48%;--speed: 16s;--planet: 15px;animation-delay:-64s}.orbit-mars{--orbit: 60%;--speed: 22s;--planet: 12px;animation-delay:-18s}.orbit-jupiter{--orbit: 73%;--speed: 32s;--planet: 27px;animation-delay:-142s}.orbit-saturn{--orbit: 88%;--speed: 44s;--planet: 23px;animation-delay:-86s}.orbit-uranus{--orbit: 98%;--speed: 58s;--planet: 19px;animation-delay:-230s}.orbit-neptune{--orbit: 108%;--speed: 74s;--planet: 18px;animation-delay:-54s}.orbit-pluto{--orbit: 118%;--speed: 96s;--planet: 8px;border-style:dashed;animation-delay:-311s}.solar-planet{position:absolute;top:50%;right:calc(var(--planet) / -2);width:var(--planet);height:var(--planet);margin-top:calc(var(--planet) / -2);border-radius:50%;box-shadow:inset -5px -6px 8px #0f172a5c,0 0 14px #7dd3fc33}.planet-mercury{background:radial-gradient(circle at 32% 28%,#d6d3d1 0 18%,#78716c 19% 62%,#44403c 63% 100%)}.planet-venus{background:radial-gradient(circle at 35% 28%,#fde68a 0 18%,#f59e0b 19% 60%,#b45309 61% 100%)}.planet-earth{overflow:visible;background:radial-gradient(circle at 65% 30%,#bbf7d0 0 9%,transparent 10%),radial-gradient(circle at 35% 62%,#22c55e 0 13%,transparent 14%),radial-gradient(circle at 30% 26%,#e0f2fe 0 12%,transparent 13%),radial-gradient(circle at 42% 38%,#0ea5e9 0 44%,#075985 45% 100%)}.planet-moon{position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px;border:1px solid rgba(226,232,240,.25);border-radius:50%;animation:moonOrbit 9s linear infinite;animation-delay:-3s}.planet-moon:after{content:"";position:absolute;right:-3px;top:50%;width:5px;height:5px;margin-top:-2px;border-radius:50%;background:#e5e7eb;box-shadow:inset -2px -2px 3px #0f172a4d}.planet-mars{background:radial-gradient(circle at 30% 28%,#fed7aa 0 12%,transparent 13%),radial-gradient(circle at 62% 62%,#7c2d12 0 16%,transparent 17%),radial-gradient(circle at 45% 42%,#ef4444 0 48%,#991b1b 49% 100%)}.planet-jupiter{background:radial-gradient(ellipse at 68% 55%,rgba(153,27,27,.82) 0 12%,transparent 13%),repeating-linear-gradient(0deg,#fef3c7 0 14%,#d97706 15% 25%,#92400e 26% 34%,#fde68a 35% 48%)}.planet-saturn{background:radial-gradient(circle at 32% 28%,#fef3c7 0 16%,#d6a247 17% 56%,#854d0e 57% 100%)}.planet-uranus{background:radial-gradient(circle at 34% 28%,#cffafe 0 18%,#67e8f9 19% 56%,#0e7490 57% 100%)}.planet-neptune{background:radial-gradient(circle at 34% 28%,#bfdbfe 0 16%,#2563eb 17% 58%,#1e3a8a 59% 100%)}.planet-pluto{background:radial-gradient(circle at 32% 28%,#f5f5f4 0 14%,#a8a29e 15% 58%,#57534e 59% 100%)}.planet-saturn:before{content:"";position:absolute;left:-12px;top:50%;width:47px;height:12px;margin-top:-6px;border:3px solid rgba(253,230,138,.86);border-left-color:#fde68a52;border-right-color:#fde68a52;border-radius:50%;transform:rotate(-14deg)}@media(max-width:820px){.solar-system{width:min(100%,342px)}}@media(max-width:640px){.solar-system{width:min(100%,286px);border-radius:14px}.solar-sun{width:46px;height:46px}.orbit-jupiter{--planet: 23px}.orbit-saturn{--planet: 20px}.planet-saturn:before{left:-10px;width:40px;height:10px}}@media(prefers-reduced-motion:reduce){.solar-orbit,.solar-sun,.planet-moon{animation:none!important}}.solar-home{min-height:calc(100dvh - 176px);display:grid;place-items:center}.solar-home-anon{position:relative}.solar-login{position:absolute;top:0;right:0;z-index:5;display:inline-flex;align-items:center;gap:8px;padding:9px 16px 9px 13px;border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;color:#075985;background:#ffffffeb;border:1px solid var(--primary-100, #bae6fd);box-shadow:0 14px 30px -18px #08273f80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:box-shadow .18s ease,transform .18s ease}.solar-login:hover{box-shadow:0 0 0 3px #0ea5e92e;transform:translateY(-1px)}.solar-login .bottom-tab-svg{width:20px;height:20px;stroke:#0c97c8;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}@media(max-width:540px){.solar-login span{display:none}.solar-login{padding:9px}}.solar-hero.manager-card{width:100%;min-height:min(680px,calc(100dvh - 176px));padding:10px;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;border:0;background:transparent;box-shadow:none;overflow:visible}.solar-hero.manager-card:before{display:none}.solar-hero .solar-system{width:min(76vmin,620px);overflow:visible;border:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(251,191,36,.14),transparent 10%),radial-gradient(circle at 50% 50%,rgba(14,165,233,.12),transparent 58%);filter:drop-shadow(0 28px 54px rgba(8,126,164,.18))}.solar-hero .solar-system:before{inset:0;border-radius:50%;background:radial-gradient(circle at 12% 18%,rgba(8,126,164,.16) 0 2px,transparent 3px),radial-gradient(circle at 82% 24%,rgba(8,126,164,.12) 0 2px,transparent 3px),radial-gradient(circle at 74% 78%,rgba(8,126,164,.1) 0 2px,transparent 3px),radial-gradient(circle at 25% 76%,rgba(8,126,164,.1) 0 1px,transparent 2px);-webkit-mask-image:none;mask-image:none;pointer-events:none}.solar-hero .solar-orbit{border-color:#087ea433}.solar-hero .solar-sun{width:clamp(60px,10vmin,92px);height:clamp(60px,10vmin,92px)}.solar-hero .orbit-mercury{--planet: clamp(9px, 1.7vmin, 14px)}.solar-hero .orbit-venus{--planet: clamp(12px, 2.2vmin, 19px)}.solar-hero .orbit-earth{--planet: clamp(14px, 2.5vmin, 22px)}.solar-hero .orbit-mars{--planet: clamp(11px, 2vmin, 17px)}.solar-hero .orbit-jupiter{--planet: clamp(25px, 4.6vmin, 42px)}.solar-hero .orbit-saturn{--planet: clamp(22px, 4vmin, 36px)}.solar-hero .orbit-uranus{--planet: clamp(18px, 3.3vmin, 31px)}.solar-hero .orbit-neptune{--planet: clamp(17px, 3.1vmin, 29px)}.solar-hero .orbit-pluto{--planet: clamp(7px, 1.3vmin, 12px)}.solar-hero .planet-saturn:before{left:-52%;width:204%;height:54%;margin-top:-27%}.solar-hero .planet-moon{width:180%;height:180%;margin:-90%}.solar-hero .planet-moon:after{right:-12%;width:28%;height:28%}.galaxy-home{display:grid;gap:clamp(28px,5vmin,64px);justify-items:center;padding-block:clamp(8px,3vmin,32px) 24px}.galaxy-stage{display:grid;place-items:center;width:100%}.galaxy{margin:0;display:grid;justify-items:center;gap:14px}.galaxy-selectable{cursor:pointer;border-radius:16px;padding:8px;transition:transform .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease)}.galaxy-selectable:hover,.galaxy-selectable:focus-visible,.galaxy-selectable.selected{background:#ffffffb8;box-shadow:0 14px 34px -28px #08273f75;transform:translateY(-2px);outline:none}.galaxy-selectable.selected .galaxy-badge,.galaxy-selectable.selected .galaxy-name{color:#0a5870}.galaxy-system{width:clamp(150px,30vmin,220px);overflow:visible;border:0;border-radius:50%;background:radial-gradient(circle at 22% 26%,rgba(255,255,255,.85) 0 1px,transparent 2px),radial-gradient(circle at 78% 30%,rgba(255,255,255,.6) 0 1px,transparent 2px),radial-gradient(circle at 64% 74%,rgba(255,255,255,.55) 0 1px,transparent 2px),radial-gradient(circle at 32% 70%,rgba(255,255,255,.4) 0 1px,transparent 2px),radial-gradient(circle at 50% 50%,rgba(14,165,233,.14),transparent 62%)}.galaxy-system:before{display:none}.galaxy-orbit{border-color:#7dd3fc29}.galaxy-planet{box-shadow:inset -4px -5px 7px #0f172a66,0 0 10px #7dd3fc47}.galaxy-sun{display:grid;place-items:center}.galaxy-sun-button{border:0;padding:0;font:inherit;cursor:pointer;z-index:6}.galaxy-sun-button:focus-visible{outline:2px solid #0ea5e9;outline-offset:4px}.galaxy-sun-button:hover .galaxy-sun-initials,.galaxy-sun-button[aria-expanded=true] .galaxy-sun-initials{color:#7c2d12;transform:scale(1.06)}.galaxy-sun-initials{transition:transform .18s ease,color .18s ease}.galaxy-star-menu{position:absolute;left:50%;top:50%;transform:translate(-50%);margin-top:clamp(34px,6vmin,56px);z-index:25}.galaxy-star-card{min-width:220px;padding:8px;border-radius:14px;background:#fffffffa;border:1px solid var(--line, #e2e8f0);box-shadow:0 24px 48px -22px #08273f80;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:accountMenuIn .14s ease}.galaxy-sun-initials{position:relative;z-index:5;font-weight:800;letter-spacing:.02em;color:#7c2d12eb;font-size:clamp(11px,2.6vmin,16px);text-shadow:0 1px 1px rgba(255,255,255,.45)}.galaxy-label{display:grid;justify-items:center;gap:3px;text-align:center;max-width:30ch}.galaxy-badge{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0ea5e9;background:#0ea5e91f;border:1px solid rgba(14,165,233,.28);border-radius:999px;padding:3px 12px;margin-bottom:2px}.galaxy-name{font-weight:700;color:var(--ink, #0f172a);line-height:1.2}.galaxy-meta{font-size:.82rem;color:var(--muted, #64748b)}.galaxy-dot{margin:0 6px;opacity:.6}.galaxy-more{font-variant-numeric:tabular-nums}.galaxy-school{font-size:.78rem;color:var(--muted, #64748b);opacity:.85}.galaxy-info-panel{width:min(760px,100%);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:start;padding:16px;border:1px solid #c5e0ee;border-radius:16px;background:#ffffffd1;box-shadow:0 18px 42px -34px #08273f8a}.galaxy-info-kicker{display:inline-flex;width:fit-content;margin-bottom:5px;padding:4px 9px;border-radius:999px;background:#e7f6fc;color:#1688bf;font-size:11px;font-weight:900}.galaxy-info-panel h2{margin:0;font-size:clamp(1.1rem,2.2vw,1.45rem);line-height:1.2}.galaxy-info-school,.galaxy-info-body p{margin:5px 0 0;color:var(--muted);line-height:1.55}.galaxy-info-home{min-height:34px;padding:7px 12px;border:1px solid #c5e0ee;border-radius:999px;background:#fff;color:#0a5870;font-size:12px;font-weight:900;cursor:pointer}.galaxy-info-home:hover,.galaxy-info-home:focus-visible{border-color:#229ed9;background:#e7f6fc}.galaxy-info-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.galaxy-info-stats span,.galaxy-info-members span{border:1px solid #c5e0ee;border-radius:999px;background:#fff;color:var(--ink-soft);font-size:12px;font-weight:800}.galaxy-info-stats span{padding:7px 10px}.galaxy-info-stats strong{color:#1688bf}.galaxy-info-body,.galaxy-info-members{grid-column:1 / -1}.galaxy-info-members{display:flex;gap:8px;flex-wrap:wrap}.galaxy-info-members span{padding:6px 9px}.galaxy-main .galaxy-system{width:min(70vmin,540px)}.galaxy-main .galaxy-sun{width:clamp(54px,9vmin,84px);height:clamp(54px,9vmin,84px)}.galaxy-main .galaxy-name{font-size:clamp(1.1rem,2.4vmin,1.5rem)}.galaxy-main .galaxy-meta{font-size:.92rem}.galaxy-mini .galaxy-sun{width:clamp(30px,9vmin,44px);height:clamp(30px,9vmin,44px)}.galaxy-mini .galaxy-name{font-size:.96rem}.galaxy-cluster{width:100%;max-width:1080px;display:grid;gap:18px}.galaxy-cluster-title{margin:0;text-align:center;font-size:1rem;font-weight:700;letter-spacing:.04em;color:var(--muted, #64748b)}.galaxy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:clamp(18px,4vmin,36px);justify-items:center;align-items:start}@media(max-width:540px){.galaxy-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.galaxy-info-panel{grid-template-columns:1fr;padding:14px}.galaxy-info-stats{justify-content:flex-start}}.about-page .section{max-width:900px;margin-inline:auto}@media(max-width:640px){.solar-home{min-height:calc(100dvh - 150px)}.solar-hero.manager-card{min-height:calc(100dvh - 150px);padding:0}.solar-hero .solar-system{width:min(78vmin,340px)}}@media(max-width:760px){body{background-attachment:scroll;background-size:24px 24px}.app-shell,.app-shell.chat-mode{width:100%;padding:8px 10px calc(86px + env(safe-area-inset-bottom));gap:12px;align-items:center}.page,.page-grid,.admin-page,.home-dashboard{gap:12px;width:100%;max-width:min(680px,calc(100% - 24px));justify-self:center}.topbar{width:min(680px,calc(100% - 24px));max-width:min(680px,calc(100% - 24px));min-height:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fffffff5;max-width:100%;overflow:hidden}.brand{flex:1 1 auto;width:100%;max-width:100%;align-items:center;gap:9px;overflow:hidden}.brand>div:last-child{flex:1 1 auto;width:auto;max-width:100%;min-width:0;overflow:hidden}.brand-mark{width:36px;height:36px;border-radius:8px}.brand-mark img{width:25px;height:25px}.brand-title{display:block;max-width:100%;font-size:clamp(12px,3.7vw,14px);line-height:1.22;font-weight:800;white-space:normal;overflow:hidden;text-overflow:clip;overflow-wrap:anywhere}.brand-subtitle,.nav-links{display:none}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{width:min(680px,calc(100% - 24px));max-width:min(680px,calc(100% - 24px));justify-self:center;padding:14px;border-radius:12px}.section>.empty-state,.section>.empty-state.warning,.section>.empty-state.compact,.admin-list .empty-state,.manager-chat-admin .empty-state{width:100%;max-width:100%}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card,.empty-state,.student-card,.info-card,.resource-card,.communication-item,.activity-item,.admin-row,.manager-conversation{min-width:0;overflow:hidden}.section *,.detail-card *,.admin-list *,.admin-form *,.manager-chat-admin *,.login-card *,.empty-state *{min-width:0;max-width:100%}.section-header,.admin-header,.chat-sidebar-header{text-align:left}.section-header h1,.section-header h2,.admin-header h1,.admin-form h2,.manager-chat-admin h2,.login-title,.detail-header h1{font-size:clamp(1.25rem,6vw,1.7rem);line-height:1.16;margin-bottom:8px}.section-header p,.admin-header p,.login-copy,.field-hint,.detail-body p,.info-card p,.communication-item p,.empty-state,.empty-state div,.student-tags,.chat-header p{font-size:13px;line-height:1.55;overflow-wrap:anywhere;word-break:break-word}.solar-home{min-height:calc(100dvh - 150px);place-items:center}.solar-hero.manager-card{min-height:calc(100dvh - 150px);padding:0;overflow:hidden}.solar-hero .solar-system{width:min(calc(100vw - 92px),280px,68vmin)}.communication-grid,.card-grid,.student-grid,.resource-grid,.admin-grid,.manager-chat-grid{grid-template-columns:1fr;gap:10px}.student-card,.info-card,.resource-card,.communication-item,.activity-item,.admin-row,.manager-conversation{padding:12px;border-radius:10px}.student-card-header,.admin-row-main,.detail-header{align-items:center;gap:11px}.admin-list{gap:14px}.admin-list .admin-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.admin-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.admin-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}.admin-row-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.admin-row-actions .button{min-height:34px;padding:7px 6px;font-size:11px}.student-card-header>div,.admin-row-main>div,.detail-header>div{min-width:0}.student-card-header img,.student-avatar{width:50px;height:50px;border-radius:11px}.student-name,.admin-name{font-size:14px;line-height:1.25}.student-tags,.admin-subtitle{font-size:12px;line-height:1.35}.student-card-footer{justify-content:flex-start;padding-top:0}.story-rail{margin:0 -4px;padding:2px 4px 12px;gap:10px;scroll-padding-inline:4px}.story-item{width:64px;flex-basis:64px}.story-ring{width:58px;height:58px}.story-ring img,.story-avatar{width:50px;height:50px}.story-name{font-size:10px;line-height:1.2}.detail-card{gap:14px}.detail-header{flex-direction:row}.detail-header img,.detail-avatar{width:76px;height:76px;border-radius:14px}.detail-tags,.detail-links,.button-row,.admin-row-actions{gap:7px}.detail-links .button,.button-row .button,.admin-row-actions .button{flex:1 1 130px;justify-content:center}.input,.textarea,.button{min-height:44px;font-size:14px}.input,.textarea{padding:11px 12px}.fieldset{padding:12px}.admin-header,.admin-actions,.admin-row{flex-direction:column;align-items:stretch}.admin-header .button,.admin-actions .button{width:100%}.admin-row-main{align-items:flex-start}.admin-avatar{width:36px;height:36px;border-radius:9px}.admin-scroll{max-height:none;overflow:visible}.login-card{max-width:none;margin:0}.chat-mode{min-height:100dvh}.chat-mode .page{min-height:0}.chat-shell,.chat-mode .chat-shell{display:flex;flex-direction:column;min-height:calc(100dvh - 112px - env(safe-area-inset-bottom));border-radius:12px}.chat-sidebar{flex:0 0 auto;max-height:252px;padding:10px;border-right:0;border-bottom:1px solid var(--line)}.chat-sidebar-header{gap:8px;padding:2px 2px 10px}.chat-sidebar-header h1{margin-top:6px;font-size:1.12rem;line-height:1.2}.chat-me{font-size:12px}.chat-room{min-height:50px;padding:8px;gap:8px}.chat-avatar{width:36px;height:36px}.chat-avatar.small{width:28px;height:28px}.chat-peer-list{max-height:118px}.chat-panel{flex:1 1 auto}.chat-header{min-height:auto;padding:11px 12px;align-items:flex-start}.chat-header h2{font-size:1rem}.chat-header p{font-size:12px}.chat-header .status-pill{flex:0 0 auto;font-size:11px;padding:5px 8px}.chat-messages,.manager-chat-messages{min-height:260px;padding:12px}.message-bubble{max-width:88%}.chat-compose{grid-template-columns:minmax(0,1fr) 44px;padding:9px 10px max(10px,env(safe-area-inset-bottom))}.chat-input{min-height:42px;padding:10px 13px;font-size:14px}.chat-send{width:42px;height:42px}.bottom-tabs{bottom:max(8px,env(safe-area-inset-bottom));width:min(360px,calc(100% - 20px));min-height:54px;padding:5px;gap:3px;border-radius:14px}.bottom-tab{min-height:42px;padding:3px;border-radius:9px}.bottom-tab-icon{width:31px;height:31px;border-radius:9px}.bottom-tab-svg{width:18px;height:18px}}@media(max-width:420px){.app-shell,.app-shell.chat-mode{padding-inline:8px}.page,.page-grid,.admin-page,.home-dashboard,.topbar,.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{width:min(330px,calc(100% - 16px));max-width:min(330px,calc(100% - 16px))}.section>.empty-state,.section>.empty-state.warning,.section>.empty-state.compact,.admin-list .empty-state,.manager-chat-admin .empty-state{width:100%;max-width:100%}.brand-title{font-size:clamp(11px,3.45vw,13px)}.brand-mark{width:34px;height:34px}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{padding:12px}.detail-header{align-items:flex-start}.detail-header img,.detail-avatar{width:66px;height:66px}.student-card-header{align-items:flex-start}.solar-hero .solar-system{width:min(calc(100vw - 82px),260px,66vmin)}.chat-sidebar{max-height:232px}.chat-peer-list{max-height:102px}.message-bubble{max-width:92%}.bottom-tabs{width:calc(100% - 16px)}}@media(max-width:760px){.app-shell,.app-shell.chat-mode{align-items:center;overflow-x:hidden}.topbar,.page,.page-grid,.admin-page,.home-dashboard{width:min(340px,calc(100vw - 32px))!important;max-width:min(340px,calc(100vw - 32px))!important;margin-inline:auto!important}.page{align-items:stretch}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{width:100%!important;max-width:100%!important;margin-inline:0!important}.form-grid,.input,.textarea,.button,.empty-state,.student-grid,.communication-grid,.card-grid,.resource-grid,.admin-grid,.manager-chat-grid{width:100%;max-width:100%}}@media(max-width:520px){.app-shell,.app-shell.chat-mode{align-items:flex-start;padding-inline:22px}.topbar,.page,.page-grid,.admin-page,.home-dashboard{width:min(340px,calc(100vw - 44px))!important;max-width:min(340px,calc(100vw - 44px))!important;margin-inline:0!important}}@media(max-width:360px){.app-shell,.app-shell.chat-mode{padding-inline:10px}.topbar,.page,.page-grid,.admin-page,.home-dashboard{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card{padding:10px}}.manager-chat-admin .chat-compose{margin:0;padding:12px;border-top:1px solid var(--line);background:#fff}.manager-chat-admin .chat-input{border-radius:999px;background:#f8fafc}.manager-chat-admin .chat-send{border-radius:50%}.manager-chat-admin .message-bubble{max-width:min(62ch,76%)}.manager-chat-admin .chat-empty{align-self:center;margin:auto;border-radius:999px;background:#ffffffb8}@media(max-width:900px){.manager-chat-hero{align-items:flex-start;flex-direction:column}.manager-chat-hero-actions{width:100%;justify-content:space-between}.manager-chat-topbar{grid-template-columns:minmax(0,1fr) auto}.manager-chat-topbar .button{grid-column:1 / -1;width:100%}.manager-chat-grid{grid-template-columns:1fr;min-height:0}.manager-inbox-panel{border-right:0;border-bottom:1px solid var(--line)}.manager-conversation-list{max-height:none;display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px}.manager-conversation{width:220px;flex:0 0 220px}.manager-chat-room{min-height:420px}}@media(max-width:520px){.manager-chat-page{width:min(340px,calc(100vw - 24px))}.manager-chat-hero{padding:16px}.manager-chat-hero h1{font-size:1.35rem}.manager-chat-topbar{padding:14px}.manager-chat-topbar h2{font-size:1.25rem}.manager-inbox-panel{padding:12px}.manager-conversation{width:196px;flex-basis:196px;padding:9px}.manager-chat-messages{min-height:300px;padding:14px}.manager-chat-admin .message-bubble{max-width:86%}}.app-shell.chat-mode{padding-bottom:calc(92px + env(safe-area-inset-bottom))}.chat-mode .page{min-height:0}.chat-mode .chat-shell{height:calc(100dvh - 172px - env(safe-area-inset-bottom));min-height:560px;max-height:820px}.chat-mode .chat-panel,.chat-mode .chat-messages{min-height:0}.chat-mode .chat-compose{flex:0 0 auto;margin:0;border-top:1px solid var(--line);background:#fffffff5;padding:11px 12px 12px}@media(max-width:760px){.app-shell.chat-mode{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.chat-mode .chat-shell{height:auto;min-height:calc(100dvh - 120px - env(safe-area-inset-bottom));max-height:none}.chat-mode .chat-panel{min-height:420px}.chat-mode .chat-compose{padding-bottom:12px}}@media(min-width:761px){.admin-page{width:min(1360px,100%)!important;max-width:min(1360px,100%)!important;gap:26px!important}.admin-workspace-heading{width:100%}.admin-grid{grid-template-columns:minmax(380px,.82fr) minmax(460px,1.18fr);gap:24px}.admin-list,.admin-form,.manager-chat-admin{width:100%!important;max-width:none!important;justify-self:stretch!important}.admin-direct-workspace{gap:16px;padding-top:24px}}@media(min-width:761px)and (max-width:1180px){.admin-grid{grid-template-columns:minmax(320px,.82fr) minmax(440px,1.18fr)}.admin-primary-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.admin-primary-actions .button{width:100%;min-width:0}.admin-primary-actions .button:first-child,.admin-primary-actions .muted{grid-column:1 / -1}}@media(max-width:760px){:root{--radius-sm: 12px;--radius: 16px;--radius-lg: 20px}html,body,#root{width:100%;min-width:0;overflow-x:hidden}body{background-color:#f2f6fa;background-image:linear-gradient(rgba(14,119,147,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(14,119,147,.045) 1px,transparent 1px);background-size:22px 22px}.app-shell,.app-shell.chat-mode{width:100%!important;max-width:100%!important;min-height:100dvh;padding:max(10px,env(safe-area-inset-top)) 12px calc(84px + env(safe-area-inset-bottom))!important;gap:12px;align-items:stretch!important}.topbar,.page,.page-grid,.home-dashboard,.admin-page,.manager-chat-page{width:100%!important;max-width:100%!important;margin-inline:0!important}.page,.page-grid,.home-dashboard,.admin-page,.manager-chat-page{gap:12px!important}.topbar{position:sticky;top:max(8px,env(safe-area-inset-top));z-index:30;min-height:56px;padding:8px 10px;border-radius:18px;border-color:#c4d4e0db;background:#ffffffe0;box-shadow:0 10px 30px -22px #0c1d336b;-webkit-backdrop-filter:blur(18px) saturate(165%);backdrop-filter:blur(18px) saturate(165%)}.brand{gap:10px}.brand-mark{width:38px;height:38px;border-radius:13px}.brand-title{font-size:clamp(12px,3.65vw,14px);line-height:1.18;letter-spacing:0}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card,.admin-workspace-heading,.manager-chat-hero{width:100%!important;max-width:100%!important;margin-inline:0!important;padding:16px!important;border-radius:18px!important;border:1px solid rgba(198,213,226,.88);background:#fffffff0;box-shadow:0 12px 34px -28px #0c1d3380;overflow:hidden}.admin-workspace-heading,.manager-chat-hero{display:grid;gap:12px;align-items:start}.admin-workspace-heading h1,.admin-workspace-heading h2,.manager-chat-hero h1,.section-header h1,.section-header h2,.detail-header h1,.admin-header h1,.admin-form h2,.login-title{margin-bottom:7px;font-size:clamp(1.28rem,6.1vw,1.72rem)!important;line-height:1.14;letter-spacing:0}.admin-workspace-heading p,.manager-chat-hero p,.section-header p,.admin-header p,.detail-body p,.login-copy,.field-hint,.communication-item p,.info-card p{font-size:13px;line-height:1.55}.solar-home,.solar-hero.manager-card{min-height:calc(100dvh - 166px)}.solar-hero.manager-card{padding:0!important;display:grid;place-items:center}.solar-hero .solar-system{width:min(82vw,330px,70vmin)!important}.story-rail{margin-inline:-4px;padding:2px 4px 12px;gap:11px;-webkit-overflow-scrolling:touch}.story-item{width:66px;flex:0 0 66px}.student-grid,.communication-grid,.card-grid,.admin-grid,.manager-chat-grid{width:100%;grid-template-columns:minmax(0,1fr)!important;gap:12px!important}.student-card,.info-card,.communication-item,.admin-row,.manager-conversation{border-radius:15px;padding:13px;background:#fff}.student-card-header,.admin-row-main,.detail-header,.manager-chat-peer{display:flex;align-items:flex-start;gap:11px;min-width:0}.student-card-header>div,.admin-row-main>div,.detail-header>div,.manager-chat-peer>div,.conversation-copy{min-width:0}.student-name,.admin-name,.manager-conversation strong{font-size:14px;line-height:1.25}.student-tags,.admin-subtitle,.manager-conversation small{font-size:12px;line-height:1.35}.detail-header{flex-direction:row}.detail-avatar,.detail-header img{width:76px!important;height:76px!important;border-radius:18px}.detail-tags,.detail-links,.button-row{gap:8px}.detail-links .button,.button-row .button{flex:1 1 140px;justify-content:center}.input,.textarea,.button{min-height:46px;border-radius:13px;font-size:14px}.input,.textarea{padding:12px 13px;background:#fff}.fieldset{padding:13px;border-radius:15px}.admin-header,.admin-actions{display:grid!important;grid-template-columns:minmax(0,1fr);gap:10px;align-items:stretch}.admin-header .button,.admin-actions .button,.manager-chat-hero-actions .button{width:100%}.admin-row{display:grid;gap:11px}.admin-row-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.admin-row-actions .button{min-height:38px;padding:8px 6px;font-size:11px;border-radius:11px}.admin-scroll{max-height:none!important;overflow:visible!important;padding-right:0}.login-card{min-height:auto}.manager-chat-hero-actions{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px}.manager-chat-page .manager-chat-admin{padding:0!important}.manager-inbox-panel{padding:12px;border-right:0;border-bottom:1px solid var(--line)}.manager-conversation-list{display:flex;gap:9px;overflow-x:auto;max-height:none;padding:1px 1px 10px;-webkit-overflow-scrolling:touch}.manager-conversation{width:224px;flex:0 0 224px;grid-template-columns:auto minmax(0,1fr)}.conversation-meta{grid-column:2;justify-items:start;display:flex;align-items:center}.manager-chat-room{min-height:calc(100dvh - 350px)}.chat-shell,.chat-mode .chat-shell{width:100%!important;min-height:calc(100dvh - 114px - env(safe-area-inset-bottom));height:auto;max-height:none;border-radius:18px;overflow:hidden}.chat-sidebar{max-height:250px;padding:12px}.chat-sidebar-header{align-items:flex-start}.chat-sidebar-header h1{font-size:1.08rem}.chat-room{min-height:52px;border-radius:14px}.chat-panel,.manager-chat-room{min-height:430px}.chat-header.compact,.chat-header{min-height:auto;padding:12px 14px;align-items:flex-start}.chat-messages,.manager-chat-messages{min-height:300px!important;padding:14px}.message-bubble,.manager-chat-admin .message-bubble{max-width:88%;border-radius:17px}.chat-compose,.manager-chat-admin .chat-compose{grid-template-columns:minmax(0,1fr) 44px;gap:8px;padding:10px 10px max(10px,env(safe-area-inset-bottom))}.chat-input{min-height:44px;border-radius:999px}.chat-send{width:44px;height:44px}.bottom-tabs{left:50%;right:auto;bottom:max(8px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(382px,calc(100vw - 20px));min-height:58px;padding:6px;gap:3px;border-radius:18px;background:#ffffffe6;box-shadow:0 12px 34px -20px #0c1d337a;-webkit-backdrop-filter:blur(18px) saturate(165%);backdrop-filter:blur(18px) saturate(165%)}.bottom-tab{min-width:0;min-height:44px;padding:3px;border-radius:13px}.bottom-tab-icon{width:34px;height:34px;border-radius:12px}}@media(max-width:760px){.app-shell,.app-shell.chat-mode{padding-inline:14px!important;overflow-x:clip}.topbar,.page,.page-grid,.home-dashboard,.admin-page,.manager-chat-page{width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;min-width:0!important;margin-inline:0!important}.section,.detail-card,.admin-list,.admin-form,.manager-chat-admin,.login-card,.admin-workspace-heading,.manager-chat-hero{width:100%!important;max-width:100%!important}.section-header h1,.section-header h2,.detail-header h1,.admin-workspace-heading h1,.admin-workspace-heading h2,.manager-chat-hero h1,.admin-header h1,.admin-form h2,.login-title{font-size:clamp(1.2rem,5.1vw,1.42rem)!important;line-height:1.18!important;overflow-wrap:anywhere;word-break:normal}.section-header p,.admin-workspace-heading p,.manager-chat-hero p,.admin-header p,.login-copy,.field-hint,.detail-body p,.communication-item p,.info-card p,.empty-state{overflow-wrap:anywhere;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.solar-hero .solar-system{width:min(54vw,220px,52vmin)!important;transform:translate(0)}.bottom-tabs{left:14px!important;right:14px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important;transform:none!important;display:flex!important;justify-content:space-between;align-items:center;grid-auto-flow:unset;grid-auto-columns:unset}.bottom-tab{flex:1 1 0;width:auto;max-width:none}}@media(max-width:390px){.app-shell,.app-shell.chat-mode{padding-inline:10px!important}.section,.detail-card,.admin-list,.admin-form,.manager-chat-hero,.login-card{padding:14px!important}.admin-row-actions{grid-template-columns:1fr}.admin-row-actions .button{width:100%}.manager-conversation{width:206px;flex-basis:206px}.bottom-tabs{width:calc(100vw - 16px)}}.chat-mode .page{gap:0}.manager-chat-page{width:min(1180px,100%);gap:0}.manager-chat-hero{display:none}.chat-shell,.manager-chat-admin{overflow:hidden;border:1px solid #b9d4e5;border-radius:18px;background:#fff;box-shadow:0 20px 54px -34px #07233773}.manager-chat-admin{padding:0}.chat-shell{grid-template-columns:minmax(290px,.33fr) minmax(0,1fr)}.manager-chat-grid{grid-template-columns:minmax(290px,.33fr) minmax(0,1fr);min-height:min(760px,calc(100dvh - 132px))}.chat-sidebar,.manager-inbox-panel{padding:0;gap:0;border-right:1px solid #d7e6ef;background:#fff}.chat-sidebar-header,.manager-inbox-title{min-height:72px;padding:16px;border-bottom:1px solid #d7e6ef;background:#fff}.chat-sidebar-header h1{margin:4px 0 0;font-size:1.12rem;line-height:1.22}.chat-sidebar .eyebrow,.manager-inbox-title span{background:#e6f4fb;color:#1688bf}.chat-me{padding-top:2px}.chat-room-label{margin:14px 16px 6px;color:#7f8ea3}.chat-peer-list,.manager-conversation-list{gap:0;padding:0}.chat-room,.manager-conversation{min-height:68px;border:0;border-radius:0;padding:11px 16px;background:#fff;box-shadow:inset 0 -1px #edf3f7}.chat-room:hover,.manager-conversation:hover{background:#f4f8fb}.chat-room.active,.chat-room.instructor-room.active,.manager-conversation.active{background:#dff1fb;box-shadow:inset 4px 0 #229ed9,inset 0 -1px #cce5f2}.chat-room.instructor-room,.chat-room.instructor-room.active{background-image:none}.chat-avatar,.admin-avatar,.conversation-avatar-wrap .admin-avatar{width:46px;height:46px;border-radius:50%;border:0;background:linear-gradient(135deg,#7dd3fc,#229ed9);color:#fff}.chat-avatar.small{width:30px;height:30px;border-radius:50%}.chat-room strong,.manager-conversation strong{font-size:14px;color:#152033}.chat-room small,.manager-conversation small,.conversation-meta time{color:#76869a}.chat-panel,.manager-chat-room{background:linear-gradient(#dfeaf2e0,#dfeaf2e0),radial-gradient(circle at 20px 20px,rgba(34,158,217,.11) 0 1px,transparent 1.5px);background-size:auto,28px 28px}.chat-header,.chat-header.compact{position:sticky;top:0;z-index:5;min-height:64px;padding:12px 18px;border:0;background:#229ed9;color:#fff;box-shadow:0 1px #00000014;-webkit-backdrop-filter:none;backdrop-filter:none}.chat-back{display:none;appearance:none;width:38px;height:38px;border:0;border-radius:50%;place-items:center;background:#ffffff2e;color:#fff;font-size:30px;line-height:1;cursor:pointer}.chat-header h2,.chat-header.compact h3{color:#fff;margin:0 0 2px;font-size:1.08rem}.chat-header p,.chat-header.compact p{color:#ffffffc2;font-size:12px}.chat-header .status-pill,.manager-chat-status .status-pill{border:1px solid rgba(255,255,255,.28);background:#ffffff2e;color:#fff}.chat-messages,.manager-chat-messages{padding:18px 18px 20px;gap:8px;background:transparent}.message-bubble,.manager-chat-admin .message-bubble{position:relative;max-width:min(68%,560px);padding:8px 11px 7px;border:0;border-radius:14px 14px 14px 4px;background:#fff;box-shadow:0 1px 1px #08273f1f}.message-bubble.mine,.manager-chat-admin .message-bubble.mine{align-self:flex-end;border-radius:14px 14px 4px;background:#dff7c8}.message-bubble p{margin:3px 0 0;color:#132033;line-height:1.45}.message-meta{gap:8px;align-items:baseline}.message-meta strong{color:#1688bf;font-size:12px}.message-bubble.mine .message-meta strong{color:#2f7d32}.message-meta span{color:#7f8ea3;font-size:10px}.message-delete{appearance:none;width:20px;height:20px;margin-left:2px;border:0;border-radius:50%;display:inline-grid;place-items:center;background:#ef44441a;color:#dc2626;font-size:16px;font-weight:800;line-height:1;cursor:pointer}.message-delete:hover{background:#ef44442e}.message-delete:disabled{opacity:.5;cursor:wait}.chat-empty,.manager-chat-admin .chat-empty{align-self:center;margin:auto;padding:12px 16px;border:0;border-radius:999px;background:#ffffffb8;color:#617083;box-shadow:0 1px 2px #08273f14}.chat-compose,.manager-chat-admin .chat-compose{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:10px;padding:10px 12px;border-top:1px solid #cfe0ea;background:#fff}.chat-input,.manager-chat-admin .chat-input{min-height:44px;border:1px solid #d5e2eb;border-radius:999px;background:#f7fbfd;padding:10px 15px}.chat-input:focus{border-color:#229ed9;box-shadow:0 0 0 3px #229ed91f}.chat-send,.manager-chat-admin .chat-send{width:46px;height:46px;border-radius:50%;background:#229ed9;box-shadow:none}.chat-send:not(:disabled):hover,.manager-chat-admin .chat-send:not(:disabled):hover{background:#1688bf}@media(min-width:761px)and (max-width:920px){.chat-sidebar{height:100%;max-height:none}.chat-peer-list{flex:1 1 auto;min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto}}@media(max-width:760px){.chat-mode .topbar{display:none}.app-shell.chat-mode{padding-top:max(8px,env(safe-area-inset-top))!important}.chat-shell,.manager-chat-admin{width:100%!important;height:calc(100dvh - 98px - env(safe-area-inset-bottom))!important;min-height:0!important;border-radius:18px!important}.chat-shell,.manager-chat-grid{display:block!important;position:relative}.chat-sidebar,.manager-inbox-panel{height:100%;max-height:none;border-right:0;border-bottom:0;overflow-y:auto}.chat-sidebar-header{min-height:auto;padding:12px 14px}.chat-sidebar-header h1{font-size:1rem}.manager-inbox-title{min-height:48px;padding:11px 14px}.chat-peer-list,.manager-conversation-list{display:grid;gap:0;overflow-x:hidden;overflow-y:visible;padding:0;-webkit-overflow-scrolling:touch}.chat-room,.manager-conversation{width:100%;flex:none;min-height:64px;box-shadow:inset 0 -1px #edf3f7}.chat-panel,.manager-chat-room{position:absolute;inset:0;z-index:6;display:none;min-height:0!important}.chat-shell.mobile-chat-open .chat-sidebar,.manager-chat-admin.mobile-chat-open .manager-inbox-panel{display:none}.chat-shell.mobile-chat-open .chat-panel,.manager-chat-admin.mobile-chat-open .manager-chat-room{display:flex;flex-direction:column}.chat-back{display:grid;flex:0 0 auto}.chat-header,.chat-header.compact{min-height:58px;padding:10px 13px}.chat-messages,.manager-chat-messages{flex:1 1 auto;min-height:0!important;padding:14px 10px}.message-bubble,.manager-chat-admin .message-bubble{max-width:84%}.chat-compose,.manager-chat-admin .chat-compose{padding:8px 9px max(8px,env(safe-area-inset-bottom))}}@media(max-width:760px){.chat-sidebar,.manager-inbox-panel{max-height:42dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.chat-peer-list,.manager-conversation-list{display:grid!important;grid-template-columns:minmax(0,1fr);overflow-x:hidden!important;overflow-y:visible;padding:0!important}.chat-room,.manager-conversation{width:100%!important;flex:none!important;min-height:66px;grid-template-columns:auto minmax(0,1fr) auto;box-shadow:inset 0 -1px #edf3f7}.chat-room>span:last-child,.conversation-copy{min-width:0;overflow:hidden}.chat-room strong,.chat-room small,.manager-conversation strong,.manager-conversation small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-meta{grid-column:auto;justify-items:end;display:grid}.chat-panel,.manager-chat-room{min-height:0!important}}@media(max-width:760px){.chat-shell:not(.mobile-chat-open) .chat-sidebar,.manager-chat-admin:not(.mobile-chat-open) .manager-inbox-panel{display:flex;height:100%;max-height:none!important;overflow-y:auto}.chat-shell:not(.mobile-chat-open) .chat-panel,.manager-chat-admin:not(.mobile-chat-open) .manager-chat-room{display:none!important}.chat-shell.mobile-chat-open .chat-sidebar,.manager-chat-admin.mobile-chat-open .manager-inbox-panel{display:none!important}.chat-shell.mobile-chat-open .chat-panel,.manager-chat-admin.mobile-chat-open .manager-chat-room{display:flex!important;position:absolute;inset:0;z-index:6;flex-direction:column}.chat-sidebar,.manager-inbox-panel{border-bottom:0}.chat-peer-list,.manager-conversation-list{display:grid!important;overflow-x:hidden!important}.chat-room,.manager-conversation{width:100%!important;flex:none!important}}@media(max-width:760px){.chat-shell:not(.mobile-chat-open){background:#fff}.chat-shell:not(.mobile-chat-open) .chat-sidebar{padding:0;background:#fff;gap:0}.chat-shell:not(.mobile-chat-open) .chat-sidebar-header{min-height:78px;padding:14px 16px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;border-bottom:1px solid #d7e6ef;background:#fff}.chat-shell:not(.mobile-chat-open) .chat-sidebar-header .eyebrow{display:none}.chat-shell:not(.mobile-chat-open) .chat-sidebar-header h1{margin:0;max-width:100%;font-size:1.08rem;line-height:1.18;overflow-wrap:anywhere}.chat-shell:not(.mobile-chat-open) .chat-me{align-self:start;padding:0;border-radius:999px;background:#e7f6fc}.chat-shell:not(.mobile-chat-open) .chat-me span{display:none}.chat-shell:not(.mobile-chat-open) .chat-avatar.small{width:36px;height:36px;border-radius:50%;background:#5bb8e5;color:#fff}.chat-shell:not(.mobile-chat-open) .chat-room-label{margin:12px 16px 6px;font-size:10px;letter-spacing:.08em}.chat-shell:not(.mobile-chat-open) .chat-room{min-height:68px;padding:10px 16px;border-radius:0;display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;background:#fff}.chat-shell:not(.mobile-chat-open) .chat-room.active{background:#e8f5fc}.chat-shell:not(.mobile-chat-open) .chat-avatar{width:48px;height:48px}.chat-shell:not(.mobile-chat-open) .chat-room strong{font-size:14px;line-height:1.25}.chat-shell:not(.mobile-chat-open) .chat-room small{margin-top:3px;font-size:12px}.chat-shell:not(.mobile-chat-open) .chat-peer-list{padding-bottom:12px!important}.chat-shell:not(.mobile-chat-open) .chat-list-panel{margin:16px;padding:14px;border:1px solid #d7e6ef;border-radius:18px;display:grid;gap:10px;background:linear-gradient(135deg,#e7f6fceb,#fffffff5),radial-gradient(circle at 92% 12%,rgba(34,158,217,.2),transparent 30%);box-shadow:0 14px 30px -26px #0c1d3380}.chat-list-panel div{display:grid;gap:3px;padding:10px 11px;border-radius:14px;background:#ffffffb8}.chat-list-panel span{color:#1688bf;font-size:11px;font-weight:900}.chat-list-panel strong{color:#20314a;font-size:13px;line-height:1.35}}@media(max-width:760px){.app-shell.chat-mode{--mobile-chat-edge: 8px;--mobile-chat-frame: min(390px, calc(100vw - (var(--mobile-chat-edge) * 2)));--mobile-chat-inner: 16px;--mobile-chat-avatar: 48px;--mobile-chat-gap: 12px;align-items:center!important;padding-left:var(--mobile-chat-edge)!important;padding-right:var(--mobile-chat-edge)!important}.app-shell.chat-mode>.page,.chat-mode .page{width:var(--mobile-chat-frame)!important;max-width:var(--mobile-chat-frame)!important;padding:0!important;margin-left:auto!important;margin-right:auto!important;justify-self:center!important}.chat-shell,.chat-mode .chat-shell{width:100%!important;max-width:100%!important;margin:0}.chat-shell:not(.mobile-chat-open) .chat-sidebar{width:100%;overflow-x:hidden}.chat-shell:not(.mobile-chat-open) .chat-sidebar-header{padding-left:var(--mobile-chat-inner);padding-right:var(--mobile-chat-inner);grid-template-columns:minmax(0,1fr) 40px;column-gap:var(--mobile-chat-gap)}.chat-shell:not(.mobile-chat-open) .chat-me{width:40px;height:40px;display:grid;place-items:center}.chat-shell:not(.mobile-chat-open) .chat-avatar.small{width:36px;height:36px}.chat-shell:not(.mobile-chat-open) .chat-room-label{margin-left:var(--mobile-chat-inner);margin-right:var(--mobile-chat-inner);letter-spacing:0}.chat-shell:not(.mobile-chat-open) .chat-room{display:grid;grid-template-columns:var(--mobile-chat-avatar) minmax(0,1fr);column-gap:var(--mobile-chat-gap);align-items:center;min-width:0;padding-left:var(--mobile-chat-inner);padding-right:var(--mobile-chat-inner)}.chat-shell:not(.mobile-chat-open) .chat-avatar{width:var(--mobile-chat-avatar);height:var(--mobile-chat-avatar)}.chat-shell:not(.mobile-chat-open) .chat-room>span:last-child{min-width:0;display:grid;align-content:center}.chat-shell:not(.mobile-chat-open) .chat-peer-list{flex:0 1 auto;min-height:0;max-height:none!important;overflow-y:visible!important;padding-bottom:0!important}.chat-shell:not(.mobile-chat-open) .chat-list-panel{display:none!important}.chat-mode .bottom-tabs{width:var(--mobile-chat-frame)!important;max-width:var(--mobile-chat-frame)!important}}@media(min-width:761px)and (max-width:920px){.chat-mode .page{width:100%;max-width:100%;overflow:hidden}.chat-mode .chat-shell{display:block!important;position:relative;height:calc(100dvh - 118px);min-height:520px;grid-template-columns:none!important}.chat-shell:not(.mobile-chat-open) .chat-sidebar{display:flex!important;width:100%;height:100%;max-height:none!important;border-right:0;overflow-x:hidden;overflow-y:auto}.chat-shell:not(.mobile-chat-open) .chat-panel{display:none!important}.chat-shell.mobile-chat-open .chat-sidebar{display:none!important}.chat-shell.mobile-chat-open .chat-panel{position:absolute;inset:0;z-index:6;display:flex!important;min-width:0;flex-direction:column}.chat-back{display:grid}}@media(max-width:760px){.story-rail{display:none!important}}@media(max-width:760px){.admin-page>.admin-workspace-heading{display:none}.admin-page{gap:10px!important}.admin-list{padding:12px!important}.admin-list .admin-header{grid-template-columns:minmax(0,1fr)!important;gap:8px!important;align-items:start!important}.admin-header h1{margin:0 0 3px!important;font-size:clamp(1.15rem,5vw,1.35rem)!important}.admin-header p{display:none}.admin-nav-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.admin-list .admin-header .admin-nav-actions .button{width:100%!important;min-width:0;min-height:38px;padding:8px 10px;white-space:normal}.admin-actions{grid-template-columns:minmax(0,1fr)!important;gap:8px!important;padding-bottom:10px}.admin-primary-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.admin-primary-actions .button{width:100%!important;min-width:0;min-height:40px;padding-inline:10px}.admin-primary-actions .button:first-child{grid-column:1 / -1;min-height:46px}.admin-primary-actions .muted{grid-column:1 / -1;align-self:center;justify-self:start;white-space:normal;font-size:12px;line-height:1.45;padding:4px 2px 0}.admin-row{padding:11px!important}}.games-page{width:min(1100px,100%);display:grid;gap:16px}.games-hero,.games-grid{border:1px solid rgba(210,219,231,.9);border-radius:18px;background:#fffffff0;box-shadow:0 18px 44px -34px #0c1d3380}.games-hero{padding:22px}.games-hero h1{margin:4px 0 8px;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.08}.games-hero p{margin:0;max-width:760px;color:var(--muted);line-height:1.58}.games-grid{padding:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.game-select-card{min-height:360px;padding:16px;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-rows:minmax(150px,1fr) auto auto;gap:14px;background:#fff;color:var(--ink);box-shadow:0 14px 34px -30px #0c1d3380;transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}.game-select-card.playable:hover,.game-select-card.playable:focus-visible{transform:translateY(-3px);border-color:#aad8eb;box-shadow:0 22px 44px -32px #0c1d338f}.game-select-card.upcoming{background:#f8fafc}.game-select-copy{display:grid;gap:7px}.game-select-copy span{width:fit-content;padding:5px 10px;border-radius:999px;background:#e7f6fc;color:#1688bf;font-size:12px;font-weight:900}.game-select-card.upcoming .game-select-copy span{background:#fff7ed;color:#c2410c}.game-select-copy h2{margin:0;font-size:1.35rem;line-height:1.18}.game-select-copy p{margin:0;color:var(--muted);line-height:1.55}.game-select-card .button{width:100%;justify-content:center}.game-card-visual{position:relative;min-height:150px;border:1px solid #bdd9e8;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#e7f6fcf0,#fffffffa),radial-gradient(circle at 24% 22%,rgba(34,158,217,.16),transparent 36%)}.game-card-visual.robot{padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mini-board-cell{border:1px solid rgba(190,214,229,.86);border-radius:12px;background:#ffffffd1}.mini-board-cell.active{background:#dcfce7}.mini-board-cell.target{background:#ecfdf5;border-color:#0f766e57}.mini-board-cell.obstacle{background:linear-gradient(135deg,#0c1d33eb,#24364eeb);border-color:#0c1d33b3}.mini-board-cell.robot{position:relative;background:#e7f6fc;border-color:#8bd0ea}.mini-board-cell.robot:before,.mini-board-cell.robot:after{content:"";position:absolute;left:50%;transform:translate(-50%)}.mini-board-cell.robot:before{top:20%;width:42%;height:42%;border-radius:10px;background:#1688bf;box-shadow:0 18px 0 -7px #0f766e}.mini-board-cell.robot:after{top:35%;width:18%;height:6%;border-radius:999px;background:#fff;box-shadow:15px 0 #fff}.game-card-visual.logic{background:linear-gradient(135deg,#0f172a,#173451),radial-gradient(circle at 20% 20%,rgba(45,212,191,.2),transparent 36%)}.logic-node,.logic-wire,.logic-gate,.logic-led{position:absolute;display:block}.logic-node.source{left:13%;top:42%;width:34px;height:34px;border-radius:12px;background:#2dd4bf;box-shadow:0 0 22px #2dd4bf7a}.logic-wire{background:#8bd0ea;box-shadow:0 0 16px #8bd0ea52}.logic-wire.horizontal{left:26%;right:42%;top:calc(42% + 15px);height:4px}.logic-wire.vertical{right:25%;top:36%;width:4px;height:48%}.logic-gate{right:27%;top:34%;min-width:62px;height:48px;padding:0 10px;border:1px solid rgba(139,208,234,.64);border-radius:14px;display:grid;place-items:center;background:#ffffff1a;color:#dff7ff;font-size:12px;font-weight:900}.logic-led{right:18%;bottom:13%;width:40px;height:40px;border-radius:999px;background:#facc15;box-shadow:0 0 26px #facc159e}.game-hero-actions{display:grid;justify-items:stretch;gap:10px}.game-menu-link{justify-content:center}.logic-page{width:min(1100px,100%);display:grid;gap:16px}.game-help{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 12px 34px -28px #08273f73;overflow:hidden}.game-help>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;font-weight:800;font-size:1.02rem;color:var(--ink)}.game-help>summary::-webkit-details-marker{display:none}.game-help>summary:hover{background:var(--surface-soft, #f3f8fb)}.game-help-chevron{color:var(--primary);font-size:.85rem;transition:transform .2s var(--ease, ease)}.game-help[open] .game-help-chevron{transform:rotate(180deg)}.game-help-body{padding:2px 20px 18px;display:grid;gap:10px;color:var(--ink-soft, #334155);line-height:1.55;border-top:1px solid var(--line)}.game-help-body h3{margin:8px 0 0;font-size:.95rem;font-weight:800;color:var(--ink)}.game-help-body p{margin:0}.game-help-body ol,.game-help-body ul{margin:0;padding-left:20px;display:grid;gap:5px}.game-help-body .game-help-gates{list-style:none;padding-left:0}.game-help-body .game-help-gates strong{color:var(--primary)}.logic-layout{padding:16px;border:1px solid rgba(210,219,231,.9);border-radius:18px;display:grid;grid-template-columns:minmax(0,.95fr) minmax(280px,.58fr);gap:16px;background:#fffffff0;box-shadow:0 18px 44px -34px #0c1d3380}.logic-board-panel,.logic-control-panel{display:grid;align-content:start;gap:12px;min-width:0}.logic-control-panel{padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8fbfd}.logic-level-card{padding:16px;border:1px solid #c9e3ef;border-radius:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;background:linear-gradient(135deg,#fff,#f1f8fb)}.logic-level-card span{color:#1688bf;font-size:12px;font-weight:900}.logic-level-card h2{margin:4px 0 7px;font-size:1.24rem}.logic-level-card p{margin:0;color:var(--muted);line-height:1.52}.logic-targets{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.logic-led-pill{min-height:30px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;display:inline-grid;place-items:center;background:#fff;color:var(--muted)!important;font-size:11px!important;font-weight:900}.logic-led-pill.on.yellow{border-color:#eab3086b;background:#fef9c3;color:#854d0e!important}.logic-led-pill.on.green{border-color:#16a34a5c;background:#dcfce7;color:#166534!important}.logic-led-pill.on.blue{border-color:#2563eb5c;background:#dbeafe;color:#1d4ed8!important}.logic-circuit{position:relative;min-height:430px;padding:18px;border:1px solid #bdd9e8;border-radius:18px;display:grid;grid-template-columns:150px minmax(0,1fr) 164px;gap:18px;align-items:center;overflow:hidden;background:linear-gradient(135deg,#0f172af5,#173451f2),radial-gradient(circle at 20% 20%,rgba(45,212,191,.18),transparent 38%);color:#fff}.logic-circuit:before,.logic-circuit:after{content:"";position:absolute;pointer-events:none}.logic-circuit:before{inset:42px 120px 42px 110px;border-top:4px solid rgba(139,208,234,.42);border-bottom:4px solid rgba(139,208,234,.3);transform:skewY(-4deg)}.logic-circuit:after{left:42%;top:28%;bottom:22%;width:4px;border-radius:999px;background:#8bd0ea57;box-shadow:132px 68px #8bd0ea42}.logic-input-bank,.logic-gate-stack,.logic-output-bank{position:relative;z-index:1;display:grid;gap:12px}.logic-switch,.logic-inverter{min-height:86px;padding:12px;border:1px solid rgba(139,208,234,.3);border-radius:16px;display:grid;gap:6px;place-items:center;background:#ffffff14;color:#dff7ff;text-align:center}.logic-switch{cursor:pointer;transition:transform .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease)}.logic-switch:hover,.logic-switch:focus-visible{transform:translateY(-2px);border-color:#8bd0eaa8}.logic-switch.on,.logic-inverter.on{border-color:#2dd4bfa8;background:#2dd4bf29;box-shadow:0 0 24px #2dd4bf2e}.logic-switch span,.logic-inverter span,.logic-gate-block span{font-size:12px;font-weight:900}.logic-switch strong,.logic-inverter strong{font-size:1.7rem;line-height:1}.logic-gate-block{min-height:98px;padding:14px;border:1px solid rgba(139,208,234,.36);border-radius:18px;display:grid;gap:7px;place-items:center;background:#ffffff1a;color:#dff7ff;text-align:center;transition:background .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}.logic-gate-block.powered{border-color:#facc15a3;background:#facc1521;box-shadow:0 0 28px #facc151f}.logic-gate-block.final{background:#229ed924}.logic-gate-block strong{min-width:76px;min-height:36px;padding:8px 12px;border-radius:12px;display:inline-grid;place-items:center;background:#ffffff24;font-size:14px;font-weight:900}.logic-output-bank{gap:10px}.logic-bulb{min-height:106px;padding:12px;border:1px solid rgba(139,208,234,.3);border-radius:16px;display:grid;gap:6px;place-items:center;background:#ffffff14;text-align:center}.logic-bulb span{width:36px;height:36px;border-radius:999px;background:#475569;box-shadow:inset 0 -8px 12px #0f172a47}.logic-bulb.on.yellow span{background:#facc15;box-shadow:0 0 24px #facc15a8}.logic-bulb.on.green span{background:#22c55e;box-shadow:0 0 24px #22c55e99}.logic-bulb.on.blue span{background:#60a5fa;box-shadow:0 0 24px #60a5faa3}.logic-bulb.target{border-color:#facc1580}.logic-bulb strong{font-size:13px}.logic-bulb small{color:#ffffffad;font-size:11px;font-weight:800}.logic-panel-group{display:grid;gap:12px}.logic-panel-title{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.logic-gate-picker{display:grid;gap:8px}.logic-gate-picker strong{font-size:13px}.logic-gate-picker div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.logic-gate-picker button{min-height:38px;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink-soft);font-size:11px;font-weight:900;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}.logic-gate-picker button:hover,.logic-gate-picker button:focus-visible{transform:translateY(-1px);border-color:#aad8eb}.logic-gate-picker button.active{border-color:#1688bf;background:#e7f6fc;color:#0a5870}.logic-status.success{border-color:#0f766e3d;background:#ecfdf5;color:#0f766e}.logic-status.mismatch,.logic-status.timeout{border-color:#ef5a3c42;background:#fff7ed;color:#9a3412}.game-page{width:min(1100px,100%);display:grid;gap:16px}.game-hero,.game-layout,.leaderboard-section{border:1px solid rgba(210,219,231,.9);border-radius:18px;background:#fffffff0;box-shadow:0 18px 44px -34px #0c1d3380}.game-hero{padding:20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.game-hero h1{margin:4px 0 8px;font-size:clamp(1.8rem,4vw,2.8rem)}.game-hero p{margin:0;max-width:760px;color:var(--muted);line-height:1.58}.game-score-chip{min-width:104px;padding:12px 14px;border-radius:16px;display:grid;place-items:center;background:#e7f6fc;color:#1688bf}.game-score-chip span{font-size:1.55rem;font-weight:900;line-height:1}.game-score-chip small{margin-top:4px;color:var(--muted);font-weight:800}.game-layout{padding:16px;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(280px,.68fr);gap:16px}.robot-game{display:grid;gap:12px}.game-board-row{display:grid;grid-template-columns:minmax(0,520px) minmax(116px,148px);gap:12px;align-items:start}.game-board{width:min(100%,520px);aspect-ratio:1;padding:10px;border:1px solid #bdd9e8;border-radius:18px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));gap:6px;background:linear-gradient(135deg,#e7f6fcf0,#fffffffa),radial-gradient(circle at 20% 20%,rgba(34,158,217,.14),transparent 34%);box-shadow:inset 0 0 0 1px #ffffffa6}.robot-compass{width:100%;padding:10px;border:1px solid #bdd9e8;border-radius:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;background:#f8fbfd}.compass-cell,.compass-robot{min-width:0;aspect-ratio:1;border-radius:12px;display:grid;place-items:center;font-weight:900;line-height:1}.compass-cell small{margin-top:3px;display:block;font-size:9px;line-height:1}.compass-cell.empty{background:transparent}.compass-forward{background:#dcfce7;color:#166534}.compass-left{background:#dbeafe;color:#1d4ed8}.compass-right{background:#fef3c7;color:#92400e}.compass-robot{background:#111827;color:#fff;box-shadow:inset 0 0 0 2px #ffffff29}.compass-robot.north{transform:rotate(0)}.compass-robot.east{transform:rotate(90deg)}.compass-robot.south{transform:rotate(180deg)}.compass-robot.west{transform:rotate(-90deg)}.compass-note{grid-column:1 / -1;min-height:30px;padding:7px 8px;border-radius:10px;display:grid;place-items:center;background:#fff;color:var(--ink-soft);font-size:11px;font-weight:800;text-align:center}.game-cell{position:relative;border:1px solid rgba(190,214,229,.8);border-radius:12px;display:grid;place-items:center;background:#ffffffc2;overflow:hidden}.game-cell.obstacle{background:linear-gradient(135deg,#0c1d33eb,#24364eeb);border-color:#0c1d33b3}.game-cell.target{background:#ecfdf5;border-color:#0f766e57}.target-plane{position:absolute;inset:15%;display:block;transform:rotate(-35deg);transform-origin:center;filter:drop-shadow(0 10px 12px rgba(15,118,110,.24))}.plane-body,.plane-wing,.plane-tail{position:absolute;display:block;background:#0f766e}.plane-body{left:44%;top:6%;width:14%;height:86%;border-radius:999px 999px 5px 5px}.plane-body:before{content:"";position:absolute;left:50%;top:-7%;width:150%;aspect-ratio:1;border-radius:50%;background:#2dd4bf;transform:translate(-50%)}.plane-wing{top:39%;width:44%;height:18%;border-radius:6px 999px 999px 6px;background:linear-gradient(135deg,#0f766e,#2dd4bf)}.plane-wing.left{left:6%;transform:rotate(-24deg)}.plane-wing.right{right:4%;transform:scaleX(-1) rotate(-24deg)}.plane-tail{left:37%;bottom:7%;width:28%;height:22%;clip-path:polygon(50% 0,100% 100%,50% 72%,0 100%);background:#1688bf}.target-plane.takeoff{animation:plane-takeoff 1.1s var(--ease) both}.robot-token{position:absolute;inset:14%;display:block;perspective:260px;transform-style:preserve-3d;transition:transform .22s var(--ease);z-index:2}.robot-token.north{transform:rotate(0)}.robot-token.east{transform:rotate(90deg)}.robot-token.south{transform:rotate(180deg)}.robot-token.west{transform:rotate(-90deg)}.robot-model{position:absolute;inset:-10% -18% -16%;display:block;transform-style:preserve-3d;transform:rotateX(8deg) rotateY(-10deg);animation:robot-idle 2.8s ease-in-out infinite}.robot-token:hover .robot-model,.robot-token:focus-visible .robot-model{transform:rotateX(2deg) rotateY(18deg) translateY(-4px)}.robot-token.running .robot-model{animation:robot-float .82s ease-in-out infinite}.robot-token.success .robot-model{animation:robot-celebrate .9s ease-in-out infinite}.robot-body{position:absolute;left:22%;top:8%;width:56%;height:76%;border-radius:42% 42% 36% 36%/34% 34% 48% 48%;background:radial-gradient(circle at 34% 22%,rgba(255,255,255,.98),transparent 20%),linear-gradient(145deg,#fff,#edf4f7 54%,#d9e1e5);border:2px solid rgba(13,26,45,.16);box-shadow:inset -8px -10px 16px #0c1d331f,inset 7px 8px 12px #ffffffe0,0 14px 22px -15px #0c1d33b8;transform:translateZ(20px)}.robot-screen{position:absolute;left:14%;right:14%;top:12%;height:30%;border-radius:38% 38% 22% 22%/52% 52% 24% 24%;background:radial-gradient(circle at 30% 38%,#ffffff 0 5%,transparent 6%),radial-gradient(circle at 70% 38%,#ffffff 0 5%,transparent 6%),linear-gradient(180deg,#dff9ff,#9fe4eb);border:3px solid #173244;box-shadow:inset 0 0 0 2px #229ed93d}.robot-eye{position:absolute;top:24%;width:18%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 42% 38%,#ffffff 0 18%,transparent 20%),radial-gradient(circle,#172033 0 36%,#87d7ef 38% 64%,#fff 66%);box-shadow:0 0 6px #229ed966}.robot-eye.left{left:25%}.robot-eye.right{right:25%}.robot-smile{position:absolute;left:39%;bottom:16%;width:22%;height:13%;border-radius:0 0 999px 999px;background:#151f2e}.robot-smile:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:38%;border-radius:999px 999px 0 0;background:#ef5a6a}.robot-bow{position:absolute;left:38%;top:45%;width:24%;height:10%}.robot-bow:before{content:"";position:absolute;left:42%;top:35%;width:16%;height:30%;border-radius:50%;background:#39424f;z-index:1}.robot-bow span{position:absolute;top:12%;width:44%;height:76%;background:#4a4f59;clip-path:polygon(0 50%,100% 0,100% 100%)}.robot-bow span:first-child{left:0}.robot-bow span:last-child{right:0;transform:scaleX(-1)}.robot-circuit{position:absolute;left:36%;top:59%;width:28%;height:20%}.robot-circuit span{position:absolute;top:0;width:3px;height:72%;border-radius:999px;background:#28b5c8}.robot-circuit span:after{content:"";position:absolute;left:50%;bottom:-5px;width:8px;height:8px;border-radius:50%;transform:translate(-50%);background:currentColor}.robot-circuit span:nth-child(1){left:18%;color:#28b5c8;transform:rotate(26deg)}.robot-circuit span:nth-child(2){left:48%;color:#8b5cf6}.robot-circuit span:nth-child(3){right:18%;color:#ef5a9d;transform:rotate(-26deg)}.robot-base{position:absolute;left:22%;right:22%;bottom:-3%;height:24%;border-radius:0 0 46% 46%;background:linear-gradient(135deg,#c13aaa,#8e2aa5);box-shadow:inset -4px -5px 10px #0c1d332e}.robot-arm{position:absolute;top:38%;width:27%;height:18%;transform-style:preserve-3d}.robot-arm.left{left:0;transform-origin:right center;animation:robot-wave-left 1.8s ease-in-out infinite}.robot-arm.right{right:0;transform-origin:left center;animation:robot-wave-right 1.8s ease-in-out infinite}.robot-arm>span{position:absolute;inset:22% 0;border-radius:999px;background:radial-gradient(circle at 82% 50%,#ffffff 0 28%,transparent 30%),linear-gradient(90deg,#d8dde1,#fff);box-shadow:0 6px 12px -9px #0c1d33b8}.robot-arm.left>span{transform:rotate(-22deg)}.robot-arm.right>span{transform:rotate(22deg)}.robot-hover-ring{position:absolute;left:36%;right:36%;bottom:0;height:10%;border:2px solid rgba(34,158,217,.55);border-radius:50%;transform:rotateX(66deg);animation:robot-ring 1.4s ease-in-out infinite}.game-status{min-height:46px;padding:12px 14px;border-radius:14px;display:grid;align-items:center;background:#f6f9fc;color:var(--ink-soft);font-weight:800}.game-status.success{background:#ecfdf5;color:#0f766e}.game-status.crash{background:#fdeee9;color:#c0392b}.game-status.timeout{background:#fff7ed;color:#c2410c}.game-status.running{background:#e7f6fc;color:#1688bf}.game-control-panel{min-width:0;display:grid;align-content:start;gap:12px}.game-command-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.game-command-buttons button{min-height:48px;border:1px solid transparent;border-radius:14px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:center;justify-content:center;font-weight:900;cursor:pointer;box-shadow:0 10px 20px -16px #0c1d336b}.game-command-buttons .command-icon{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:#ffffffbf;font-size:16px}.game-command-buttons .command-forward{background:#22c55e;color:#052e16}.game-command-buttons .command-left{background:#60a5fa;color:#0f172a}.game-command-buttons .command-right{background:#fbbf24;color:#451a03}.game-command-buttons button:not(:disabled):hover{transform:translateY(-1px);filter:saturate(1.08)}.game-sound-panel{padding:8px;border:1px solid rgba(189,217,232,.78);border-radius:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;background:#f8fbfd}.game-sound-panel .sound-setting{min-height:38px;padding:8px 10px;border-color:#bdd9e8;background:#fff;color:#0a5870}.sound-muted{min-height:38px;padding:8px 10px;border-radius:10px;display:grid;place-items:center;background:#eef2f7;color:var(--muted);font-size:12px;font-weight:800;text-align:center}.game-command-buttons button:disabled,.game-actions .button:disabled,.save-score:disabled{opacity:.55;cursor:not-allowed}.program-strip{min-height:112px;max-height:170px;padding:10px;border:1px solid var(--line);border-radius:14px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;overflow-y:auto;background:#f8fbfd}.program-strip span{height:30px;padding:0 10px;border-radius:999px;display:inline-grid;place-items:center;background:#e7f6fc;color:#1688bf;font-size:12px;font-weight:900}.program-strip .program-empty{background:transparent;color:var(--muted)}.game-actions{display:grid;grid-template-columns:1fr .72fr .72fr .82fr;gap:8px}.game-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.game-meta span{min-height:38px;padding:8px;border-radius:12px;display:grid;place-items:center;background:#f6f9fc;color:var(--muted);font-size:12px;font-weight:900;text-align:center}.save-score{width:100%}.reset-scores{width:100%;border-color:#dc262647!important;background:#fef2f2!important;color:#991b1b!important}.reset-scores:not(:disabled):hover{border-color:#dc262670!important;background:#fee2e2!important}.leaderboard-section{padding:18px}.leaderboard-list{display:grid;gap:8px}.leaderboard-row{min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;animation:leaderboard-pop .36s ease both}.leaderboard-rank{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#e7f6fc;color:#1688bf;font-weight:900}.leaderboard-row.rank-1{border-color:#f59e0b70;background:linear-gradient(135deg,#fff7ed,#fef3c7);box-shadow:0 14px 30px -26px #f59e0bb8}.leaderboard-row.rank-1 .leaderboard-rank{background:linear-gradient(135deg,#f59e0b,#facc15);color:#422006}.leaderboard-row.rank-1 .leaderboard-score{color:#92400e}.leaderboard-row.rank-2{border-color:#94a3b87a;background:linear-gradient(135deg,#f8fafc,#e5e7eb);box-shadow:0 14px 30px -26px #64748ba3}.leaderboard-row.rank-2 .leaderboard-rank{background:linear-gradient(135deg,#94a3b8,#e5e7eb);color:#1f2937}.leaderboard-row.rank-2 .leaderboard-score{color:#475569}.leaderboard-row.rank-3{border-color:#b453096b;background:linear-gradient(135deg,#fff7ed,#fed7aa);box-shadow:0 14px 30px -26px #b45309ad}.leaderboard-row.rank-3 .leaderboard-rank{background:linear-gradient(135deg,#b45309,#f59e0b);color:#431407}.leaderboard-row.rank-3 .leaderboard-score{color:#9a3412}.leaderboard-row strong,.leaderboard-row small{display:block}.leaderboard-row small{margin-top:2px;color:var(--muted)}.leaderboard-score{color:#0f766e;font-size:1.1rem;font-weight:900}.about-page{min-height:calc(100dvh - 150px);gap:0}.globe-section{width:100%!important;max-width:none!important;margin-inline:0!important;min-height:calc(100dvh - 170px);padding:0!important;border:0!important;border-radius:0!important;display:grid;place-items:center;background:transparent!important;box-shadow:none!important;overflow:visible!important}.about-hero,.about-lab,.about-topics,.about-live{position:relative;overflow:hidden}.about-hero:before{content:none}.constellation-layout{display:grid;width:100%;min-height:inherit;grid-template-columns:minmax(0,1fr);place-items:center;gap:0}.constellation-wrap{position:relative;width:min(1080px,100%);border:0;border-radius:0;background:transparent;padding:0;overflow:hidden;box-shadow:none}.constellation-wrap:before{content:none;position:absolute;inset:0;background-image:linear-gradient(rgba(99,91,72,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(99,91,72,.07) 1px,transparent 1px);background-size:18px 18px;-webkit-mask-image:radial-gradient(circle at 50% 45%,#000 0%,transparent 72%);mask-image:radial-gradient(circle at 50% 45%,#000 0%,transparent 72%);pointer-events:none}.network-head{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:8px}.network-head>div:first-child{display:grid;gap:4px}.network-head strong{font-size:1rem}.network-head .about-preview-kicker{height:26px;margin:0}.network-head-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.network-head-stats span{padding:6px 9px;border:1px solid #c5e0ee;border-radius:999px;background:#ffffffc7;color:var(--ink-soft);font-size:12px;font-weight:800}.constellation{position:relative;z-index:1;width:min(100%,1080px);max-height:calc(100dvh - 170px);height:auto;display:block}.globe-map{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.globe-map:active{cursor:grabbing}.globe-info-card{position:absolute;left:clamp(14px,6vw,72px);bottom:clamp(18px,5vw,56px);z-index:2;width:min(330px,calc(100% - 28px));padding:14px;border:1px solid rgba(187,178,152,.56);border-radius:14px;background:#fffcf2e0;color:#111827;box-shadow:0 20px 44px -34px #3d362294;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.globe-info-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.globe-info-kicker{display:inline-flex;width:fit-content;padding:4px 9px;border:1px solid rgba(240,180,41,.34);border-radius:999px;background:#f0b42929;color:#8a5b00;font-size:11px;font-weight:900}.globe-info-actions{display:flex;gap:6px}.globe-info-actions button{width:28px;height:28px;border:1px solid rgba(138,91,0,.22);border-radius:999px;background:#ffffffbd;color:#111827;cursor:pointer;font-size:18px;font-weight:900;line-height:1}.globe-info-actions button:hover,.globe-info-actions button:focus-visible{border-color:#dca32c;background:#fff9e8}.globe-info-card h2{margin:0;font-size:clamp(1rem,2vw,1.18rem);line-height:1.22}.globe-info-card p{margin:5px 0 0;color:#677085;font-size:13px;line-height:1.4}.globe-info-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.globe-info-meta span{padding:6px 9px;border:1px solid rgba(187,178,152,.48);border-radius:999px;background:#ffffffc2;color:#334155;font-size:12px;font-weight:800}.globe-shadow{fill:#483e2a1a;filter:blur(1px)}.globe-sphere{fill:#ffffff57}.globe-fill{fill:url(#globeShade)}.globe-highlight{fill:url(#globeHighlight)}.globe-grid-line{fill:none;stroke:#625e503d;stroke-width:.32}.globe-surface-dot{fill:#605b4e6b}.globe-rim{fill:none;stroke:#544e4057;stroke-width:.55}.globe-selected-route{fill:none;pointer-events:none}.const-grid-bg{fill:#ffffff6b;stroke:#0e77931a;stroke-width:.4}.const-ring{fill:none;stroke:#0e779329;stroke-width:.35;stroke-dasharray:1.5 2.5}.const-link{fill:none;stroke:url(#constRoute);stroke-width:.7;opacity:.62;transition:opacity .2s ease,stroke-width .2s ease,filter .2s ease}.const-link.active{stroke:url(#constRouteActive);opacity:1;stroke-width:1.3;filter:drop-shadow(0 0 3px rgba(34,158,217,.45))}.const-hub,.const-node{cursor:pointer}.const-hub:focus,.const-node:focus{outline:none}.const-hub-pulse{fill:#229ed929;stroke:#229ed947;stroke-width:.5;transform-origin:center;animation:const-pulse 3.4s ease-in-out infinite}.const-hub-circle{fill:#229ed9;stroke:#fff;stroke-width:.7;filter:drop-shadow(0 5px 9px rgba(14,119,147,.36))}.const-hub-text{fill:#fff;font-size:3.8px;font-weight:900;pointer-events:none}.const-node-halo{fill:#229ed91a;stroke:#229ed92e;stroke-width:.35;opacity:.7;transition:opacity .18s ease,r .18s ease}.const-node-circle{fill:#fff;stroke:#229ed9;stroke-width:.8;filter:drop-shadow(0 5px 8px rgba(12,29,51,.2));transition:r .18s ease,fill .18s ease,stroke-width .18s ease}.const-node.active .const-node-circle,.const-node:hover .const-node-circle{fill:#229ed9;stroke-width:1}.const-node.active .const-node-halo,.const-node:hover .const-node-halo{opacity:1}.const-node-count{fill:var(--ink);font-size:3.4px;font-weight:900;pointer-events:none}.const-node.active .const-node-count,.const-node:hover .const-node-count{fill:#fff}.const-node-label{fill:#52627b;font-size:3.2px;font-weight:800;pointer-events:none}.const-node.active .const-node-label{fill:var(--ink)}.globe-workshop .const-node-halo{fill:#f0b42929;stroke:#dca32c3d}.globe-workshop .const-node-circle{fill:#f0b429;stroke:#fff;stroke-width:.42;filter:drop-shadow(0 .7px 1.2px rgba(64,49,17,.28))}.globe-workshop.active .const-node-circle,.globe-workshop:hover .const-node-circle{fill:#f0b429;stroke:#111827;stroke-width:.55}.globe-workshop-hit{fill:transparent;pointer-events:all}.globe-workshop .const-node-label{fill:#111827;font-size:2.5px;font-weight:900;stroke:none;paint-order:normal}.globe-label-pill{fill:#f6f3e9f0;stroke:#11182738;stroke-width:.22;filter:drop-shadow(0 1px 1.8px rgba(61,54,34,.16))}.globe-label-stem{fill:none;stroke:#111827b8;stroke-width:.28;pointer-events:none}.const-member-dot{fill:#0f766e;stroke:#fff;stroke-width:.55;filter:drop-shadow(0 2px 4px rgba(15,118,110,.35));animation:const-member-in .28s var(--ease) both}.constellation-panel{border:1px solid #b7d7e9;border-radius:16px;padding:18px 20px;background:linear-gradient(180deg,#fffffff0,#f1f8fcf0),radial-gradient(80% 90% at 100% 0%,rgba(34,158,217,.14),transparent 60%);min-height:100%;box-shadow:0 20px 44px -34px #0c1d338f}.constellation-panel h2{margin:4px 0 2px;font-size:clamp(1.32rem,2.4vw,1.95rem);line-height:1.18}.const-panel-school{margin-bottom:10px}.const-panel-stats{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0;font-size:14px}.const-panel-stats span{display:inline-flex;align-items:baseline;gap:5px;padding:7px 10px;border-radius:999px;background:#e7f6fc;color:var(--ink-soft);font-weight:800}.const-panel-stats.big{margin-top:16px;font-size:15px}.const-panel-stats strong{font-size:20px;color:#1688bf}.const-panel-instructor{font-weight:600;margin-bottom:8px}.const-member-list,.const-workshop-picker{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.const-member-list span,.const-workshop-picker button{border:1px solid #c5e0ee;border-radius:999px;background:#fff;color:var(--ink-soft);font-size:12px;font-weight:800}.const-member-list span{padding:6px 9px}.const-workshop-picker button{min-height:34px;padding:6px 11px;cursor:pointer;transition:border-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}.const-workshop-picker button:hover,.const-workshop-picker button:focus-visible{border-color:#dca32c;color:#111827;transform:translateY(-1px)}.globe-controls{position:relative;z-index:1;display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:8px;align-items:center;margin-top:10px;color:#6b6659;font-size:12px;font-weight:800;text-align:center}.globe-controls button{width:34px;height:34px;border:1px solid #d8d0bf;border-radius:999px;background:#ffffffb8;color:#111827;cursor:pointer;font-weight:900}.globe-controls button:hover,.globe-controls button:focus-visible{border-color:#dca32c;background:#fff9e8}.const-panel-about{margin:8px 0 0;white-space:pre-wrap;line-height:1.6}.const-panel-about.empty{font-style:italic}@keyframes const-pulse{0%,to{opacity:.7;transform:scale(.94)}50%{opacity:1;transform:scale(1.08)}}@keyframes const-member-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media(max-width:720px){.constellation-layout{grid-template-columns:1fr}.globe-info-card{left:12px;right:12px;bottom:12px;width:auto;padding:12px}}.about-stats,.about-flow,.about-topic-grid,.about-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.about-stat,.about-step,.about-topic,.about-live-grid>div{position:relative;min-height:150px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#ffffffdb;text-align:left;color:var(--ink);box-shadow:0 10px 28px -24px #0c1d337a;transition:transform .22s var(--ease),border-color .22s var(--ease),box-shadow .22s var(--ease),background .22s var(--ease)}.about-step,.about-topic{appearance:none;cursor:pointer}.about-stat:hover,.about-stat:focus-visible,.about-step:hover,.about-topic:hover,.about-live-grid>div:hover{transform:translateY(-4px);border-color:#aad8eb;background:#fff;box-shadow:0 18px 38px -24px #0c1d336b}.about-step.active,.about-topic.active{border-color:#77c4e5;background:#fff;box-shadow:0 18px 42px -26px #0c1d3380}.about-step.active:after,.about-topic.active:after{content:"";position:absolute;inset:auto 18px 12px;height:3px;border-radius:999px;background:linear-gradient(90deg,#229ed9,#0f766e);animation:about-line-in .32s var(--ease) both}.about-stat span,.about-step span,.about-topic span{display:inline-grid;place-items:center;min-width:34px;height:30px;margin-bottom:18px;border-radius:999px;background:#e7f6fc;color:#1688bf;font-size:12px;font-weight:900}.about-stat strong,.about-step strong,.about-topic strong,.about-live-grid strong{display:block;margin-bottom:8px;font-size:1.08rem}.about-stat p,.about-step p,.about-topic p,.about-live-grid p{margin:0;color:var(--muted);line-height:1.58}.about-simulator{background:linear-gradient(180deg,#fffffff5,#f6f9fcf5)}.virtual-lab{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(230px,.85fr);gap:16px;align-items:stretch}.lab-device{position:relative;min-height:360px;padding:16px;border:1px solid #bdd9e8;border-radius:18px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;background:linear-gradient(145deg,#0c1d33f5,#0f233af0),linear-gradient(135deg,rgba(34,158,217,.14),transparent);color:#fff;box-shadow:0 26px 54px -34px #0c1d33b3;overflow:hidden}.lab-device:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent),repeating-linear-gradient(0deg,transparent 0 17px,rgba(255,255,255,.04) 18px);transform:translate(-100%);animation:lab-scan 4s ease-in-out infinite;pointer-events:none}.lab-device-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px}.lab-device-top span{min-width:42px;height:34px;border-radius:999px;display:inline-grid;place-items:center;background:#229ed9;color:#fff;font-size:12px;font-weight:900}.station-robot .lab-device-top span{background:#0f766e}.station-model .lab-device-top span{background:#ef5a3c}.station-team .lab-device-top span{background:#7c3aed}.lab-device-top strong{font-size:1.08rem}.lab-stage{position:relative;z-index:1;min-height:190px;border:1px solid rgba(203,226,239,.2);border-radius:16px;display:grid;grid-template-columns:1fr .8fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:14px;background:#ffffff0f;overflow:hidden}.lab-code-screen{grid-row:span 2;display:grid;align-content:center;gap:11px}.lab-code-screen span{height:10px;width:var(--bar);border-radius:999px;background:linear-gradient(90deg,#7dd3fc,#22c55e);box-shadow:0 0 18px #7dd3fc2e;animation:lab-bar .55s var(--ease) both;animation-delay:var(--delay)}.lab-machine{align-self:end;min-height:88px;display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:8px}.lab-machine span{border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#ffffffe6,#7dd3fcad);animation:lab-lift 1.8s ease-in-out infinite}.lab-machine span:nth-child(1){height:52%}.lab-machine span:nth-child(2){height:86%;animation-delay:.14s}.lab-machine span:nth-child(3){height:64%;animation-delay:.28s}.lab-tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.lab-tile-grid span{aspect-ratio:1;border-radius:7px;background:#ffffff24;border:1px solid rgba(255,255,255,.1);animation:lab-tile .48s var(--ease) both;animation-delay:var(--delay)}.lab-tile-grid span.active{background:#38bdf8;box-shadow:0 0 16px #38bdf86b}.station-robot .lab-tile-grid span.active{background:#2dd4bf;box-shadow:0 0 16px #2dd4bf6b}.station-model .lab-tile-grid span.active{background:#fb923c;box-shadow:0 0 16px #fb923c6b}.station-team .lab-tile-grid span.active{background:#a78bfa;box-shadow:0 0 16px #a78bfa6b}.lab-readout{position:relative;z-index:1;padding:14px;border-radius:14px;background:#ffffff14}.lab-readout strong{display:block;margin-bottom:6px}.lab-readout p{margin:0;color:#ffffffbd;line-height:1.55}.lab-station-controls{display:grid;gap:10px}.lab-station-controls button{appearance:none;width:100%;min-height:74px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:center;background:#ffffffe0;color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 12px 26px -24px #0c1d337a;transition:transform .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease)}.lab-station-controls button:hover,.lab-station-controls button:focus-visible,.lab-station-controls button.active{transform:translate(4px);border-color:#85cce8;background:#fff;box-shadow:0 18px 34px -26px #0c1d3380}.lab-station-controls span{width:42px;height:34px;border-radius:12px;display:inline-grid;place-items:center;background:#e7f6fc;color:#1688bf;font-size:12px;font-weight:900}.lab-station-controls strong{min-width:0;font-size:.98rem}.about-flow{position:relative}.about-lab-board{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:16px;align-items:stretch}.about-flow:before{content:"";position:absolute;left:12%;right:12%;top:48px;height:2px;background:linear-gradient(90deg,transparent,#b7dbea,transparent)}.about-step{animation:about-rise .7s var(--ease) both}.about-lab-preview,.about-topic-focus{position:relative;border:1px solid #c9e3ef;border-radius:18px;background:linear-gradient(135deg,#e7f6fce6,#fffffff5),linear-gradient(90deg,rgba(34,158,217,.12),transparent);box-shadow:0 20px 44px -34px #0c1d338f}.about-lab-preview{min-height:100%;padding:20px;display:grid;align-content:center;overflow:hidden}.about-preview-kicker,.about-topic-focus span{display:inline-grid;place-items:center;width:max-content;min-width:36px;height:32px;margin-bottom:12px;padding:0 12px;border-radius:999px;background:#229ed9;color:#fff;font-size:12px;font-weight:900}.about-lab-preview h3{margin:0 0 8px;font-size:1.28rem}.about-lab-preview p,.about-topic-focus p{margin:0;color:var(--muted);line-height:1.58}.about-signal-stack{display:grid;gap:10px;margin-top:22px}.about-signal-stack span{position:relative;height:9px;border-radius:999px;background:#229ed91f;overflow:hidden}.about-signal-stack span:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--signal);border-radius:inherit;background:linear-gradient(90deg,#229ed9,#0f766e);animation:about-signal-fill .52s var(--ease) both}.about-topic-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.about-topic{min-height:170px}.about-topic-focus{margin-top:14px;padding:16px 18px;animation:about-rise .45s var(--ease) both}.about-topic-focus strong{display:block;margin-bottom:6px;font-size:1.05rem}.about-step:nth-child(2){animation-delay:.08s}.about-step:nth-child(3){animation-delay:.16s}.about-live{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:18px;align-items:start}.about-live h2{margin:4px 0 0;font-size:1.7rem}.about-live>div>p{margin:10px 0 0;color:var(--muted);line-height:1.58}.about-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@keyframes about-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes about-line-in{0%{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@keyframes about-signal-fill{0%{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@keyframes lab-scan{0%,35%{transform:translate(-100%)}70%,to{transform:translate(100%)}}@keyframes lab-bar{0%{transform:scaleX(0);transform-origin:left;opacity:.45}to{transform:scaleX(1);transform-origin:left;opacity:1}}@keyframes lab-lift{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes lab-tile{0%{transform:scale(.72);opacity:.35}to{transform:scale(1);opacity:1}}@keyframes robot-float{0%,to{transform:rotateX(8deg) rotateY(-10deg) translateY(0)}50%{transform:rotateX(4deg) rotateY(10deg) translateY(-6px)}}@keyframes robot-idle{0%,to{transform:rotateX(8deg) rotateY(-10deg) translate(0) rotate(-1deg)}25%{transform:rotateX(6deg) rotateY(7deg) translate(2px,-4px) rotate(1deg)}50%{transform:rotateX(4deg) rotateY(10deg) translateY(-7px) rotate(0)}75%{transform:rotateX(7deg) rotateY(-6deg) translate(-2px,-3px) rotate(-1deg)}}@keyframes robot-celebrate{0%,to{transform:rotateX(8deg) rotateY(-12deg) translateY(0) rotate(-2deg)}50%{transform:rotateX(2deg) rotateY(14deg) translateY(-8px) rotate(2deg)}}@keyframes robot-wave-left{0%,to{transform:rotate(-12deg)}50%{transform:rotate(-34deg)}}@keyframes robot-wave-right{0%,to{transform:rotate(12deg)}50%{transform:rotate(34deg)}}@keyframes robot-ring{0%,to{opacity:.35;transform:rotateX(66deg) scale(.86)}50%{opacity:.78;transform:rotateX(66deg) scale(1.12)}}@keyframes leaderboard-pop{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes plane-takeoff{0%{opacity:1;transform:rotate(-35deg) translate(0) scale(1)}35%{opacity:1;transform:rotate(-26deg) translate(-8px,-10px) scale(1.05)}to{opacity:0;transform:rotate(-18deg) translate(58px,-76px) scale(.72)}}@media(prefers-reduced-motion:reduce){.about-step,.about-topic-focus,.about-step.active:after,.about-topic.active:after,.about-signal-stack span:before,.lab-device:before,.lab-code-screen span,.lab-machine span,.lab-tile-grid span,.robot-model,.robot-arm.left,.robot-arm.right,.robot-hover-ring,.target-plane.takeoff{animation:none}}@media(max-width:760px){.games-page{gap:12px}.games-hero{padding:16px}.games-hero h1{font-size:clamp(1.45rem,7vw,2rem)}.games-grid{padding:12px;grid-template-columns:1fr;gap:12px}.game-select-card{min-height:0;grid-template-rows:150px auto auto;padding:13px}.game-select-copy h2{font-size:1.18rem}.game-hero-actions{grid-template-columns:1fr}.logic-page{gap:12px}.logic-layout{padding:12px;grid-template-columns:1fr;gap:12px}.logic-level-card{grid-template-columns:1fr;padding:14px}.logic-targets{justify-content:flex-start}.logic-circuit{min-height:0;padding:14px;grid-template-columns:1fr;gap:12px}.logic-circuit:before,.logic-circuit:after{display:none}.logic-input-bank,.logic-gate-stack,.logic-output-bank{grid-template-columns:repeat(3,minmax(0,1fr))}.logic-switch,.logic-inverter,.logic-gate-block,.logic-bulb{min-height:92px;padding:10px}.logic-gate-block strong{min-width:0;width:100%;font-size:12px}.logic-bulb span{width:30px;height:30px}.logic-gate-picker div{grid-template-columns:repeat(3,minmax(0,1fr))}.game-page{gap:12px}.game-hero{padding:16px;grid-template-columns:1fr}.game-hero h1{font-size:clamp(1.45rem,7vw,2rem)}.game-score-chip{width:100%;grid-template-columns:auto auto;justify-content:center;gap:8px}.game-score-chip small{margin-top:0}.game-layout{padding:12px;grid-template-columns:1fr;gap:12px}.game-board-row{grid-template-columns:1fr}.game-board{width:100%;padding:7px;gap:4px;border-radius:16px}.game-cell{border-radius:9px}.robot-token{border-radius:12px}.robot-compass{grid-template-columns:repeat(6,minmax(0,1fr));align-items:center}.robot-compass .empty{display:none}.compass-note{grid-column:span 3;min-height:44px}.game-command-buttons{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom));z-index:4;padding:6px;border:1px solid rgba(210,219,231,.8);border-radius:16px;background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.program-strip{min-height:86px;max-height:132px}.game-actions,.game-meta{grid-template-columns:1fr}.leaderboard-section{padding:14px}.leaderboard-row{grid-template-columns:34px minmax(0,1fr) auto}.bottom-tabs{gap:2px}.bottom-tab{padding:2px}.bottom-tab-icon{width:32px;height:32px}.about-page .section-header h1{max-width:100%;font-size:clamp(1.12rem,4.9vw,1.34rem)!important;overflow-wrap:anywhere}.about-page .section-header p,.about-stat p,.about-step p,.about-topic p,.about-live-grid p{max-width:100%;font-size:13px;overflow-wrap:anywhere;word-break:break-word}.about-stat strong,.about-step strong,.about-topic strong,.about-live-grid strong{overflow-wrap:anywhere}.about-stats,.about-topic-grid,.virtual-lab,.about-live,.about-live-grid{grid-template-columns:1fr;gap:12px}.lab-device{min-height:430px;padding:14px;border-radius:18px}.lab-stage{min-height:210px;grid-template-columns:1fr}.lab-code-screen{grid-row:auto}.lab-machine{min-height:74px}.lab-station-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-station-controls button{min-height:86px;grid-template-columns:1fr;row-gap:8px;align-content:start}.lab-station-controls button:hover,.lab-station-controls button:focus-visible,.lab-station-controls button.active{transform:translateY(-2px)}.about-stat,.about-step,.about-topic,.about-live-grid>div{min-height:0;padding:15px;border-radius:16px}.about-stat{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start}.about-stat span,.about-step span,.about-topic span{margin-bottom:12px}.about-stat span{grid-row:span 2;margin-bottom:0}.about-lab-board,.about-flow{grid-template-columns:1fr;gap:12px}.about-lab-preview{min-height:190px;padding:16px}.about-flow:before{inset:18px auto 18px 30px;width:2px;height:auto;background:linear-gradient(180deg,transparent,#b7dbea,transparent)}.about-step{padding-left:52px}.about-step span{position:absolute;left:14px;top:15px;min-width:32px}}.sandbox-page{display:flex;flex-direction:column;gap:18px}.sandbox-hero h1{margin:6px 0 8px}.sandbox-hero p{color:var(--muted);margin:0 0 12px}.sandbox-status{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:999px;font-size:.85rem;font-weight:600;background:var(--surface-tint);color:var(--ink-soft)}.sandbox-status.loading{background:var(--accent-soft);color:var(--accent)}.sandbox-status.ready{background:#0f766e1f;color:var(--success)}.sandbox-editor{display:flex;flex-direction:column;gap:12px}.sandbox-editor textarea{width:100%;resize:vertical;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.95rem;line-height:1.5;padding:14px 16px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--ink-panel);color:#e7f0f7;box-shadow:var(--shadow-sm)}.sandbox-editor textarea:focus{outline:none;border-color:var(--primary)}.sandbox-actions{display:flex;gap:12px}.sandbox-output{display:flex;flex-direction:column;gap:10px}.sandbox-output pre{margin:0;padding:14px 16px;border-radius:var(--radius);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.92rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.sandbox-stdout{background:var(--surface-soft);border:1px solid var(--line);color:var(--ink)}.sandbox-stderr{background:var(--accent-soft);border:1px solid rgba(239,90,60,.3);color:var(--danger)}.learn-page{display:flex;flex-direction:column;gap:20px}.learn-hero h1{margin:6px 0 8px}.learn-hero p{color:var(--muted);margin:0 0 14px}.learn-hero-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0}.learn-hero-buttons .learn-bio-toggle{margin:0}.learn-bio-toggle{display:inline-flex;align-items:center;gap:8px;margin:14px 0 0;padding:9px 16px;border:1px solid var(--line);border-radius:var(--radius-pill);background:#ffffffb8;color:var(--primary-dark);font-size:.92rem;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease}.learn-bio-toggle:hover{background:var(--surface-tint);border-color:var(--primary-dark)}.learn-language-bio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 18px}.learn-language-bio article{min-height:150px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb8;box-shadow:var(--shadow-sm)}.learn-language-bio span{display:inline-grid;place-items:center;min-width:34px;height:28px;margin-bottom:12px;padding:0 9px;border-radius:var(--radius-pill);background:var(--surface-tint);color:var(--primary-dark);font-size:.76rem;font-weight:800}.learn-language-bio strong{display:block;margin-bottom:7px;color:var(--ink);font-size:.98rem}.learn-language-bio p{margin:0;color:var(--muted);font-size:.93rem;line-height:1.58}.learn-progress{display:flex;flex-direction:column;gap:8px}.learn-progress-stats{display:flex;gap:16px;font-weight:700;color:var(--ink-soft)}.learn-progress-bar{height:10px;border-radius:999px;background:var(--surface-tint);overflow:hidden}.learn-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--primary-dark));transition:width .3s ease}.learn-notice{margin:10px 0 0;font-size:.85rem;color:var(--warning)}.learn-module{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm)}.learn-module-head h2{margin:0 0 4px}.learn-module-head p{margin:0 0 14px;color:var(--muted)}.learn-lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.learn-lesson a,.learn-lesson.locked{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-soft);text-decoration:none;color:inherit}.learn-lesson a:hover{border-color:var(--primary)}.learn-lesson.done a{background:#0f766e14;border-color:#0f766e4d}.learn-lesson.locked{opacity:.55}.learn-lesson-index{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-tint);font-weight:700;color:var(--ink-soft);flex-shrink:0}.learn-lesson-copy{display:flex;flex-direction:column;gap:2px;flex:1}.learn-lesson-copy small{color:var(--muted)}.learn-lesson-badge{font-weight:700;color:var(--primary-dark)}.learn-lesson.done .learn-lesson-badge{color:var(--success)}.learn-lesson.homework-child{margin-left:44px}.learn-lesson.homework-child a,.learn-lesson.homework-child.locked{min-height:58px;border-style:dashed;background:#fffaf7}.learn-lesson.homework-child .learn-lesson-index{background:#fdeee9;color:var(--accent)}.learn-lesson.homework-child.done a{background:#0f766e14}.lesson-page{display:flex;flex-direction:column;gap:18px}.lesson-back{display:inline-block;margin-bottom:8px;color:var(--primary-dark);text-decoration:none;font-weight:600}.lesson-head h1{margin:0 0 6px}.lesson-goal{margin:0;color:var(--muted)}.lesson-done-pill{display:inline-block;margin-top:8px;padding:3px 12px;border-radius:999px;font-size:.82rem;font-weight:700;background:#0f766e1f;color:var(--success)}.lesson-intro{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.lesson-intro p{margin:0 0 10px;line-height:1.6}.lesson-intro p:last-child{margin-bottom:0}.lesson-editor{display:flex;flex-direction:column;gap:12px}.lesson-editor-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.lesson-editor-actions{display:flex;gap:8px}.code-editor{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.code-editor .cm-editor{max-height:420px}.lesson-output{display:flex;flex-direction:column;gap:10px}.lesson-result{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:var(--radius)}.lesson-result.success{background:#0f766e1a;border:1px solid rgba(15,118,110,.3);color:var(--success)}.lesson-result.retry{background:var(--accent-soft);border:1px solid rgba(239,90,60,.3);color:var(--ink-soft)}.lesson-result ul{margin:0;padding-left:18px}.lesson-result .button{align-self:flex-start}.lesson-complete-card{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px;border:1px solid rgba(15,118,110,.26);border-radius:var(--radius);background:radial-gradient(circle at 9% 10%,rgba(15,118,110,.16),transparent 28%),linear-gradient(135deg,#ecfdf5,#fff 58%,#eef8fb);color:var(--ink);box-shadow:0 20px 44px -32px #0f766ebf;animation:lessonCompleteIn .54s var(--ease) both}.lesson-complete-mark{position:relative;z-index:1;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--success);color:#fff;font-size:2rem;font-weight:900;box-shadow:0 0 0 8px #0f766e1c;animation:lessonCompletePulse 1.35s var(--ease) infinite}.lesson-complete-copy{position:relative;z-index:1;min-width:0}.lesson-complete-copy h2{margin:7px 0 5px;font-size:clamp(1.3rem,3vw,1.75rem);line-height:1.14}.lesson-complete-copy p{margin:0;color:var(--muted);line-height:1.5}.lesson-complete-xp{position:relative;overflow:hidden;width:min(220px,100%);min-height:46px;margin-top:12px;padding:7px 12px;border:1px solid rgba(15,118,110,.22);border-radius:12px;display:inline-grid;grid-template-columns:auto auto;align-items:baseline;justify-content:start;column-gap:5px;background:#ffffffb8;color:var(--success);box-shadow:inset 0 -3px #0f766e14}.lesson-complete-xp strong{position:relative;z-index:1;font-size:1.45rem;line-height:1;font-weight:900}.lesson-complete-xp span{position:relative;z-index:1;color:var(--primary-dark);font-size:.8rem;font-weight:900}.lesson-complete-xp i{position:absolute;inset:auto 0 0;height:5px;border-radius:999px;background:linear-gradient(90deg,var(--success),var(--primary));transition:width .12s linear}.lesson-complete-next{position:relative;z-index:1;white-space:nowrap}.lesson-complete-burst{position:absolute;inset:0;pointer-events:none}.lesson-complete-burst span{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent);opacity:0;animation:lessonCompleteSpark 1.4s ease-out infinite}.lesson-complete-burst span:nth-child(1){left:13%;top:22%}.lesson-complete-burst span:nth-child(2){left:27%;top:72%;background:var(--primary);animation-delay:.16s}.lesson-complete-burst span:nth-child(3){right:19%;top:18%;background:var(--success);animation-delay:.28s}.lesson-complete-burst span:nth-child(4){right:12%;bottom:21%;animation-delay:.42s}.lesson-complete-burst span:nth-child(5){left:48%;top:12%;background:var(--primary-dark);animation-delay:.54s}.lesson-complete-points{position:absolute;inset:0;pointer-events:none;z-index:0}.lesson-complete-points span{position:absolute;padding:4px 8px;border-radius:999px;background:#fff;color:var(--success);border:1px solid rgba(15,118,110,.18);font-size:.78rem;font-weight:900;box-shadow:0 10px 20px -14px #0f766ee6;opacity:0;animation:lessonPointsFloat 1.8s ease-out infinite}.lesson-complete-points span:nth-child(1){left:82px;bottom:16px}.lesson-complete-points span:nth-child(2){right:132px;top:16px;animation-delay:.35s}.lesson-complete-points span:nth-child(3){right:82px;bottom:18px;animation-delay:.7s}@keyframes lessonCompleteIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes lessonCompletePulse{0%,to{transform:scale(1);box-shadow:0 0 0 8px #0f766e1c}50%{transform:scale(1.06);box-shadow:0 0 0 14px #0f766e0a}}@keyframes lessonCompleteSpark{0%{opacity:0;transform:translateY(8px) scale(.55)}22%{opacity:.85}to{opacity:0;transform:translateY(-20px) scale(1)}}@keyframes lessonPointsFloat{0%{opacity:0;transform:translateY(14px) scale(.82)}22%{opacity:1}76%{opacity:1}to{opacity:0;transform:translateY(-34px) scale(1.04)}}@media(max-width:640px){.lesson-complete-card{grid-template-columns:1fr;justify-items:start}.lesson-complete-next{width:100%;justify-content:center}.lesson-complete-points span:nth-child(1){left:70%;bottom:58%}.lesson-complete-points span:nth-child(2),.lesson-complete-points span:nth-child(3){display:none}}.lesson-solution{display:flex;flex-direction:column;gap:10px}.no-copy{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.lesson-homework{display:grid;gap:12px;padding:18px;border:1px solid #f1c7bc;border-radius:var(--radius);background:linear-gradient(180deg,#fff7f4,#fff)}.lesson-homework h2{margin:0 0 4px;font-size:1.2rem}.lesson-homework p{margin:0;color:var(--muted)}.lesson-homework-list{display:grid;gap:8px}.lesson-homework-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #f0d3cc;border-radius:var(--radius-sm);background:var(--surface)}.lesson-homework-link:hover{border-color:var(--accent)}.lesson-homework-link span{display:grid;gap:2px}.lesson-homework-link small{color:var(--muted)}.lesson-homework-link b{color:var(--accent);font-size:.9rem}.lesson-homework-link.done{border-color:#0f766e4d;background:#0f766e14}.lesson-homework-link.done b{color:var(--success)}.route-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:48vh;padding:48px 0;text-align:center;color:var(--muted);font-weight:600;animation:rise .4s var(--ease) both}.route-loading .route-spinner{position:relative;width:52px;height:52px;flex-shrink:0}.route-loading .route-spinner:before,.route-loading .route-spinner:after{content:"";position:absolute;inset:0;border-radius:50%}.route-loading .route-spinner:before{border:4px solid var(--primary-100)}.route-loading .route-spinner:after{background:conic-gradient(from 0deg,transparent 0deg,var(--primary) 300deg,var(--primary-dark) 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));animation:route-spin .85s linear infinite}.route-loading span{font-size:.95rem}@keyframes route-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.route-loading{animation:none}.route-loading .route-spinner:after{animation:none;background:conic-gradient(from 0deg,var(--primary-100) 0deg,var(--primary) 360deg)}}.learn-level{display:flex;align-items:center;gap:16px}.learn-level-badge{align-self:flex-start;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:86px;padding:10px 16px;border-radius:var(--radius);background:var(--primary-50, #edf8fc);color:var(--primary-dark);border:1px solid var(--primary-100, #d9edf5)}.learn-level-badge strong{font-size:.95rem;white-space:nowrap}.learn-level-badge small{font-size:.8rem;opacity:.75}.learn-level .learn-progress{flex:1}.learn-level-hint{margin-top:6px;font-size:.82rem;color:var(--muted)}@media(max-width:760px){.learn-language-bio{grid-template-columns:1fr;margin:16px 0}.learn-language-bio article{min-height:0}.learn-level{align-items:stretch;flex-direction:column}}.leaderboard-avatar{border-radius:50%;flex-shrink:0}.xp-card{display:flex;flex-direction:column;gap:12px}.xp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.xp-card-head h2{margin:4px 0 2px}.xp-card-head p{margin:0}.homework-module{border-color:var(--accent);background:linear-gradient(180deg,var(--accent-soft),var(--surface))}.homework-module .learn-lesson a{background:var(--surface)}.textarea.code-input{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9rem;white-space:pre;overflow-x:auto}
