#adventureHubPanel { container-type:inline-size; }
#adventureHubPanel [hidden] { display:none!important; }
.hub-hero { position:relative; overflow:hidden; padding:clamp(25px,4vw,45px); border-bottom:1px solid #c1d4ed; background:linear-gradient(90deg,#122e58f2,#21457bd9 48%,#24477655),url('academy-hero-unified-v1.png') 68% 48%/cover; color:#fff; }
.hub-hero .class-kicker { color:#f0d59c; font-size:12px; letter-spacing:.1em; }
.hub-hero h2 { margin:10px 0; color:#fff8e6; font-size:clamp(28px,4.2vw,47px); letter-spacing:.04em; text-shadow:0 3px 12px #0a1e45b3; }
.hub-hero > p { max-width:580px; margin:0; color:#e3edfc; font-size:14px; line-height:1.8; }
.hub-hero-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.hub-hero-tags span { padding:6px 11px; border:1px solid #d8e6ff66; border-radius:10px 6px 10px 7px; color:#f4e3bb; background:#102d5973; font-size:11px; font-weight:800; }
.hub-content { padding:22px; }
.hub-tabs { display:grid; grid-template-columns:1fr 1fr; gap:9px; padding:7px; border:1px solid #a8c2e3; border-radius:21px 13px 20px 14px; background:#d2e3f8; box-shadow:inset 0 0 0 2px #ffffff75; }
.hub-tabs button { display:flex; align-items:center; gap:12px; min-width:0; padding:17px; border:1px solid transparent; border-radius:16px 9px 16px 10px; background:transparent; color:#406087; text-align:left; font:inherit; }
.hub-tabs button[aria-selected="true"] { border-color:#879fc9; background:linear-gradient(110deg,#f9f6ed,#eff5ff); color:#234c7f; box-shadow:0 5px 0 #496d9b25; }
.hub-tab-icon { display:grid; flex:0 0 39px; width:39px; height:39px; place-items:center; border:1px solid #aac1e1; border-radius:14px 9px 14px 10px; background:linear-gradient(135deg,#fcf4d7,#c8e3fd); color:#355d8e; font-size:22px; }
.hub-tabs b { display:block; font-size:17px; }
.hub-tabs small { display:block; margin-top:3px; color:#526d8c; font-size:11px; line-height:1.5; }
.hub-tab-head { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:15px; margin:27px 0 17px; }
.hub-tab-head h3 { margin:0; color:#234f82; font-size:24px; }
.hub-tab-head p { margin:6px 0 0; color:#526b89; font-size:12px; line-height:1.7; }
.hub-actions { display:flex; flex-wrap:wrap; gap:8px; }
.hub-actions .btn { min-height:40px; text-decoration:none; }
.hub-search { display:flex; flex-wrap:wrap; align-items:center; gap:13px; margin:18px 0; color:#4f6b8d; font-size:12px; }
.hub-search input { min-width:0; flex:1; min-height:43px; padding:10px 13px; border:1px solid #a8c5e6; border-radius:13px 8px 13px 9px; background:#f5faff; color:#2b4c74; font:inherit; font-size:13px; }
.hub-search input:focus { outline:3px solid #bfd9f8; }
.hub-status { margin:15px 1px; color:#47658a; font-size:12px; line-height:1.7; }
.hub-status.is-error { color:#a33f55; }
.hub-student-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.hub-student-card { min-width:0; padding:17px; border:1.5px solid #9db9db; border-radius:23px 12px 22px 14px; background:linear-gradient(130deg,#fcfbf5,#edf4ff 72%); box-shadow:0 5px 0 #5274a524,inset 0 0 0 3px #ffffff91; }
.hub-student-card.is-teacher { border-color:#b29fc9; background:linear-gradient(130deg,#f9f1ff,#e8edff); }
.hub-student-top { display:flex; align-items:center; gap:12px; }
.hub-seat { display:grid; place-items:center; width:47px; height:49px; flex:0 0 47px; border:1px solid #bd9e5d; border-radius:15px 8px 15px 9px; background:linear-gradient(145deg,#fff1bf,#eac989); box-shadow:inset 0 0 0 3px #fff6d69c; color:#695026; font-size:22px; font-weight:900; }
.is-teacher .hub-seat { border-color:#a289bf; background:linear-gradient(145deg,#e9ddfb,#bfbedf); color:#5b4876; }
.hub-student-name { min-width:0; flex:1; }
.hub-student-name h4 { margin:0; color:#244c7c; font-size:16px; overflow-wrap:anywhere; }
.hub-student-name small { display:block; margin-top:5px; color:#5b728f; font-size:10px; line-height:1.5; }
.hub-coins { display:grid; place-items:center; flex-shrink:0; min-width:66px; padding:8px 11px; border:1px solid #e3d0a5; border-radius:13px 7px 13px 8px; background:linear-gradient(140deg,#fff7db,#f1e7c9); color:#836333; font-size:10px; }
.hub-coins b { display:block; margin-top:2px; color:#6d5225; font-size:21px; line-height:1.1; font-variant-numeric:tabular-nums; }
.hub-card-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:15px; }
.hub-card-actions button,.hub-card-actions a { display:flex; justify-content:center; align-items:center; gap:6px; min-height:41px; padding:9px; border:1px solid #a3bfe0; border-radius:12px 7px 12px 8px; background:#e5effe; color:#2e5685; font:inherit; font-size:12px; font-weight:800; text-align:center; text-decoration:none; }
.hub-card-actions button { background:linear-gradient(135deg,#fff1c4,#f3dfae); border-color:#d0b782; color:#785a26; }
.hub-card-actions button:disabled { opacity:.55; cursor:default; }
.hub-card-actions a:hover { background:#d4e5fc; }
.hub-card-actions .hub-teacher-note { display:grid; place-items:center; color:#685581; font-size:11px; }
.hub-empty { grid-column:1/-1; padding:32px; border:1px dashed #a1bddf; border-radius:20px; color:#516d8d; background:#f0f6ff; text-align:center; line-height:1.9; }
.hub-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; margin:20px 0; }
.hub-summary div { padding:19px 15px; border:1px solid #b3cbe7; border-radius:20px 11px 19px 12px; background:#f0f7ff; color:#536d8c; font-size:12px; }
.hub-summary b { display:block; margin-top:7px; color:#2e578a; font-size:27px; }
.hub-command-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.hub-command-grid button,.hub-command-grid a { display:block; min-width:0; padding:23px 18px; border:1px solid #aac3e3; border-radius:23px 12px 22px 14px; background:linear-gradient(140deg,#faf9f2,#e7f0ff); text-align:left; font:inherit; text-decoration:none; color:#315783; box-shadow:0 4px 0 #5675a522; }
.hub-command-grid span { display:grid; width:42px; height:42px; place-items:center; margin-bottom:13px; border:1px solid #d3be93; border-radius:15px 9px 15px 10px; background:#f7ebcb; color:#816130; font-size:23px; }
.hub-command-grid b { display:block; font-size:16px; }
.hub-command-grid small { display:block; margin-top:7px; color:#536b88; font-size:11px; line-height:1.7; }
.hub-command-grid a:hover,.hub-command-grid button:hover { background:#dae9fc; }
#hubQrDialog { width:min(440px,calc(100% - 24px)); padding:24px; border:1px solid #aac5e5; border-radius:25px 14px 24px 16px; background:linear-gradient(135deg,#fcfbf5,#e9f3ff); text-align:center; }
#hubQrDialog h3 { margin:6px 0; color:#2a507b; font-size:23px; }
#hubQrDialog p { color:#536c88; font-size:12px; line-height:1.7; }
#hubQrImage { display:block; width:min(100%,285px); aspect-ratio:1; margin:18px auto; border:9px solid #fff; border-radius:12px; background:#fff; }
#hubQrImage[hidden] { display:none; }
#hubQrDialog [hidden] { display:none!important; }
.hub-qr-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:9px; }
.hub-qr-actions .btn { text-decoration:none; }
.hub-print-code { display:none; }
.hub-print-title { display:none; }
@container (max-width:780px) { .hub-command-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .hub-content { padding:16px; } .hub-tabs button { padding:13px; gap:8px; } .hub-tabs b { font-size:15px; } }
@container (max-width:560px) { .hub-student-grid { grid-template-columns:minmax(0,1fr); } .hub-tabs { grid-template-columns:1fr; } .hub-tabs button { padding:12px; } .hub-tab-head h3 { font-size:21px; } .hub-summary { grid-template-columns:1fr; } .hub-summary div { display:flex; align-items:center; justify-content:space-between; padding:13px; } .hub-summary b { margin:0; font-size:22px; } .hub-command-grid { grid-template-columns:1fr; } }
@media print {
  body.hub-printing { background:#fff; }
  body.hub-printing .shell { display:block; width:100%; margin:0; }
  body.hub-printing .topbar,body.hub-printing .teacher-nav,body.hub-printing .petal-layer,body.hub-printing #toast,body.hub-printing #studentExperience,body.hub-printing .hub-hero,body.hub-printing .hub-tabs,body.hub-printing .hub-tab-head,body.hub-printing .hub-search,body.hub-printing .hub-status,body.hub-printing #hubCommandPane,body.hub-printing .hub-card-actions,body.hub-printing .hub-coins,body.hub-printing .hub-student-card.is-teacher,body.hub-printing .hub-student-name small { display:none!important; }
  body.hub-printing #adventureHubPanel { border:0; background:none; box-shadow:none; overflow:visible; }
  body.hub-printing .hub-content { padding:0; }
  body.hub-printing .hub-print-title { display:block; margin:0 0 8mm; color:#16385d; font-size:20pt; text-align:center; }
  body.hub-printing #hubStudentPane[hidden] { display:block!important; }
  body.hub-printing .hub-student-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7mm; }
  body.hub-printing .hub-student-card { padding:4mm; border:1px solid #7c9abd; border-radius:4mm; background:#fff; box-shadow:none; break-inside:avoid; }
  body.hub-printing .hub-student-card.no-qr { display:none!important; }
  body.hub-printing .hub-print-code { display:block; width:100%; aspect-ratio:1; }
  body.hub-printing .hub-student-top { justify-content:center; gap:5mm; margin-top:3mm; }
  body.hub-printing .hub-seat { width:9mm; height:9mm; flex-basis:9mm; font-size:12pt; }
  body.hub-printing .hub-student-name h4 { font-size:11pt; }
}
