.custom-badge-library{padding:18px;border-radius:16px}.custom-badge-library-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.custom-badge-library-head h4{margin:3px 0 4px;color:var(--color-text-primary);font-size:1.08rem}.custom-badge-library-head p{margin:0;color:var(--manager-muted);font-size:.8rem;line-height:1.5}.custom-badge-library-count{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 10px;border:1px solid rgba(33,150,243,.28);border-radius:999px;background:rgba(33,150,243,.1);color:#4aa8f5;font-size:.76rem;font-weight:950}.custom-badge-library-empty{margin:0;padding:18px;border:1px dashed var(--color-glass-border);border-radius:14px;color:var(--manager-muted);text-align:center}.custom-badge-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));gap:12px}.custom-badge-library-card{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--color-glass-border);border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.035));box-shadow:0 10px 26px rgba(0,0,0,.1)}.custom-badge-library-main{min-width:0;display:flex;align-items:center;gap:11px}.custom-badge-library-icon{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border:1px solid rgba(255,204,0,.3);border-radius:15px;background:radial-gradient(circle at 50% 34%,rgba(255,255,255,.75),rgba(255,204,0,.16));box-shadow:inset 0 1px rgba(255,255,255,.7)}.custom-badge-library-icon img{width:43px;height:43px;object-fit:contain;filter:drop-shadow(0 5px 8px rgba(0,0,0,.2))}.custom-badge-library-copy{min-width:0;display:grid;gap:2px}.custom-badge-library-copy strong,.custom-badge-library-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-badge-library-copy strong{color:var(--color-text-primary);font-size:.93rem}.custom-badge-library-bonus{color:#2196f3;font-size:.74rem;font-weight:950}.custom-badge-library-description{color:var(--manager-muted);font-size:.69rem}.custom-badge-library-issued{margin-top:3px;color:var(--color-text-secondary);font-size:.68rem;font-weight:900}.custom-badge-library-actions{display:grid;gap:7px}.custom-badge-library-actions .game-btn{min-width:64px;padding:6px 10px;font-size:.73rem}.badge-roster-backdrop{z-index:12600!important;padding:18px}.badge-roster-modal{width:min(760px,96vw)!important;max-height:min(88dvh,820px)!important;display:flex!important;flex-direction:column;padding:0!important;overflow:hidden!important;border-radius:24px!important}.badge-roster-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 16px;border-bottom:1px solid var(--color-glass-border);background:linear-gradient(135deg,rgba(33,150,243,.13),rgba(255,204,0,.08))}.badge-roster-identity{min-width:0;display:flex;align-items:center;gap:13px}.badge-roster-icon{width:64px;height:64px;flex:0 0 64px;display:grid;place-items:center;border:2px solid rgba(255,204,0,.45);border-radius:19px;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,224,102,.28));box-shadow:0 12px 28px rgba(0,0,0,.16)}.badge-roster-icon img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 6px 9px rgba(0,0,0,.22))}.badge-roster-head .modal-title{margin:2px 0;color:var(--color-text-primary);font-size:clamp(1.18rem,2.4vw,1.55rem)}.badge-roster-identity strong{display:block;max-width:480px;overflow:hidden;color:var(--color-text-secondary);font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.badge-roster-close{position:static!important;flex:0 0 auto}.badge-roster-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 22px;border-bottom:1px solid var(--color-glass-border);background:rgba(255,255,255,.045)}.badge-roster-summary-copy{min-width:0}.badge-roster-summary-copy>span{color:#2196f3;font-size:.84rem;font-weight:950}.badge-roster-summary-copy p{max-width:520px;margin:3px 0 0;overflow:hidden;color:var(--manager-muted);font-size:.75rem;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.badge-roster-progress{flex:0 0 auto;display:flex;align-items:baseline;gap:4px;padding:8px 11px;border:1px solid rgba(76,175,80,.28);border-radius:13px;background:rgba(76,175,80,.1);color:#4caf50}.badge-roster-progress strong{font-size:1.3rem}.badge-roster-progress span{font-size:.72rem;font-weight:900}.badge-roster-bulk-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 22px}.badge-roster-bulk-actions .game-btn{width:100%}.badge-roster-bulk-actions .game-btn:disabled{cursor:not-allowed;filter:grayscale(.6);opacity:.45;transform:none;box-shadow:none}.badge-roster-list{min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:9px;padding:2px 22px 16px;overscroll-behavior:contain}.badge-roster-student{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--color-glass-border);border-radius:14px;background:rgba(255,255,255,.055);transition:border-color .18s ease,background .18s ease,transform .18s ease}.badge-roster-student.has-badge{border-color:rgba(33,150,243,.32);background:rgba(33,150,243,.1)}.badge-roster-student:hover{transform:translateY(-1px)}.badge-roster-student-name{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;column-gap:9px}.badge-roster-seat{grid-row:1 / span 2;width:34px;height:34px;display:grid;place-items:center;border:2px solid rgba(23,50,95,.24);border-radius:11px;background:#fff8d7;color:#17325f;font-size:.79rem;font-weight:950}.badge-roster-student-name strong{overflow:hidden;color:var(--color-text-primary);font-size:.83rem;text-overflow:ellipsis;white-space:nowrap}.badge-roster-student-name em{color:#2196f3;font-size:.65rem;font-style:normal;font-weight:900}.badge-roster-student .game-btn{flex:0 0 auto;min-width:58px;padding:6px 9px;font-size:.72rem}.badge-roster-empty{margin:2px 22px 16px;padding:28px;border:1px dashed var(--color-glass-border);border-radius:15px;color:var(--manager-muted);text-align:center}.badge-roster-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 22px 17px;border-top:1px solid var(--color-glass-border);background:rgba(0,0,0,.045)}.badge-roster-footer span{color:var(--manager-muted);font-size:.7rem}.badge-roster-footer .cm-button{flex:0 0 auto;min-width:92px}@media(max-width:700px){.custom-badge-library-card{grid-template-columns:1fr}.custom-badge-library-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.badge-roster-backdrop{align-items:flex-end!important;padding:0!important}.badge-roster-modal{width:100%!important;max-height:92dvh!important;border-radius:24px 24px 0 0!important}.badge-roster-head{padding:16px}.badge-roster-icon{width:54px;height:54px;flex-basis:54px;border-radius:16px}.badge-roster-icon img{width:44px;height:44px}.badge-roster-summary{align-items:flex-start;padding:12px 16px}.badge-roster-summary-copy p{white-space:normal}.badge-roster-bulk-actions{padding:10px 16px}.badge-roster-list{grid-template-columns:1fr;padding:2px 16px 14px}.badge-roster-footer{padding:12px 16px}.badge-roster-footer span{display:none}}

.custom-badge-icon-field{flex:1 1 245px;min-width:220px}.custom-badge-icon-trigger{width:100%;min-height:64px;display:grid;grid-template-columns:52px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:6px 10px;border:2px solid rgba(23,50,95,.28);border-radius:14px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(224,245,255,.82));color:#17325f;text-align:left;cursor:pointer;box-shadow:0 4px rgba(23,50,95,.18);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.custom-badge-icon-trigger:hover{transform:translateY(-2px);border-color:#2196f3;box-shadow:0 6px #17325f33}.custom-badge-icon-trigger-art{width:52px;height:52px;display:grid;place-items:center;padding:5px;border:2px solid #17325f;border-radius:13px;background:#fff8d7;overflow:visible}.custom-badge-icon-trigger-art img{width:100%;height:100%;object-fit:contain;transform:scale(.88);filter:drop-shadow(0 4px 5px rgba(23,50,95,.22))}.custom-badge-icon-trigger-copy{min-width:0;display:grid;gap:2px}.custom-badge-icon-trigger-copy strong,.custom-badge-icon-trigger-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-badge-icon-trigger-copy strong{font-size:.82rem}.custom-badge-icon-trigger-copy small{color:#5a7eba;font-size:.68rem;font-weight:800}.custom-badge-icon-trigger-arrow{font-size:1.7rem;font-weight:950}.badge-icon-picker-backdrop{z-index:12700!important;padding:18px}.badge-icon-picker-modal{width:min(720px,96vw)!important;max-height:min(88dvh,780px)!important;padding:0!important;overflow:hidden!important;border-radius:24px!important}.badge-icon-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 16px;border-bottom:2px solid rgba(23,50,95,.16);background:linear-gradient(135deg,#fff8d7,#e1f6ff)}.badge-icon-picker-head .modal-title{margin:3px 0 4px;color:#17325f}.badge-icon-picker-head p{margin:0;color:#5a7eba;font-size:.8rem;font-weight:800}.badge-icon-picker-grid{max-height:calc(88dvh - 110px);overflow-y:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 22px 24px}.badge-icon-choice{min-width:0;display:grid;justify-items:center;gap:7px;padding:14px 10px 12px;border:3px solid rgba(23,50,95,.18);border-radius:18px;background:linear-gradient(180deg,#fff,#edf8ff);color:#17325f;cursor:pointer;box-shadow:0 5px rgba(23,50,95,.15);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.badge-icon-choice:hover{transform:translateY(-3px);border-color:#2196f3;box-shadow:0 8px #17325f33}.badge-icon-choice.is-selected{border-color:#e4563a;background:linear-gradient(180deg,#fff4c6,#ffe5bd);box-shadow:0 6px #e4563a}.badge-icon-choice-art{width:94px;height:94px;display:grid;place-items:center;padding:10px;border:2px solid rgba(23,50,95,.22);border-radius:24px;background:radial-gradient(circle,#fff 0 42%,#fff1b8 100%);overflow:visible}.badge-icon-choice-art img{width:100%;height:100%;object-fit:contain;transform:scale(.88);filter:drop-shadow(0 7px 9px rgba(23,50,95,.24))}.badge-icon-choice strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.83rem}.badge-icon-choice small{color:#5a7eba;font-size:.68rem;font-weight:850}.student-badge-grid{overflow:visible!important;padding:8px 6px 12px!important}.student-badge-card,.student-badge-equipped-slot{overflow:visible!important}.student-badge-art{width:88px;height:88px;flex:0 0 88px;display:grid;place-items:center;margin:0 auto 5px;padding:9px;border-radius:24px;background:radial-gradient(circle,rgba(255,255,255,.98),rgba(255,229,127,.36));overflow:visible}.student-badge-art img{width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:contain!important;transform:scale(.86);transform-origin:center;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))}.student-badge-equipped-art{width:70px;height:70px;flex-basis:70px;margin-bottom:0;padding:7px;border-radius:19px}.total-power-container{position:relative;isolation:isolate;min-width:0;display:grid;grid-template-columns:auto minmax(180px,.75fr) minmax(360px,1.25fr);align-items:center;gap:clamp(14px,2.2vw,28px);padding:clamp(18px,2.4vw,28px);overflow:hidden;border:4px solid #17325f;border-radius:24px;background:radial-gradient(circle at 12% 20%,rgba(255,255,255,.98),transparent 27%),linear-gradient(125deg,#fff2a8 0%,#ffcf4f 42%,#ff9f43 100%);color:#17325f;box-shadow:0 9px #17325f,0 24px 50px rgba(23,50,95,.3)}.total-power-container:before,.total-power-container:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.total-power-container:before{right:-72px;top:-92px;width:260px;height:260px;border:34px solid rgba(255,255,255,.22)}.total-power-container:after{left:38%;bottom:-70px;width:180px;height:180px;background:radial-gradient(circle,rgba(228,86,58,.28),transparent 68%)}.total-power-emblem{width:clamp(76px,9vw,104px);height:clamp(76px,9vw,104px);display:grid;place-items:center;border:5px solid #17325f;border-radius:28px;background:linear-gradient(145deg,#fff,#e6f7ff);box-shadow:0 7px #17325f,0 12px 25px rgba(23,50,95,.2);transform:rotate(-4deg)}.total-power-emblem span{font-size:clamp(1.55rem,3vw,2.5rem);font-weight:1000;letter-spacing:-.08em;text-shadow:0 3px #ffcf4f}.total-power-main{min-width:0}.total-power-main p{margin:0;color:#b9432e;font-size:.68rem;font-weight:1000;letter-spacing:.16em}.total-power-main h3{margin:3px 0 1px;font-size:clamp(1.15rem,2.2vw,1.7rem);line-height:1}.total-power-main>strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:clamp(2.4rem,6vw,4.8rem);font-weight:1000;line-height:.98;letter-spacing:-.06em;text-shadow:0 4px rgba(255,255,255,.72)}.total-power-breakdown{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.total-power-breakdown>div{min-width:0;display:grid;gap:3px;padding:12px 10px;border:2px solid rgba(23,50,95,.25);border-radius:14px;background:rgba(255,255,255,.74);text-align:center;box-shadow:inset 0 1px #fff}.total-power-breakdown span{overflow:hidden;color:#496b95;font-size:.7rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.total-power-breakdown b{overflow:hidden;font-size:clamp(.9rem,1.5vw,1.18rem);text-overflow:ellipsis;white-space:nowrap}.student-game-console .console-header{grid-template-columns:minmax(310px,.86fr) minmax(430px,1.18fr) minmax(190px,.48fr)!important;grid-template-areas:"identity tabs pet"!important;min-height:104px!important;padding:12px 16px 12px 130px!important}.student-game-console .console-title-area.console-title-lockup{grid-area:identity!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-content:center;gap:7px;width:100%;min-width:0}.student-game-console .console-title-text{min-width:0}.student-game-console .console-class-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-game-console .console-student-name{margin:2px 0 0!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.35rem,2.1vw,2.15rem)!important}.student-game-console .console-resource-pills{width:100%!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}.student-game-console .console-resource-pills span{min-width:0;width:100%;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-game-console .console-total-power-badge{background:#fff2a8!important}.student-game-console .console-score-badge{background:#e6f7ff!important}.student-game-console .console-tab-bar{grid-area:tabs!important;align-self:center}.student-game-console .console-player-card{grid-area:pet!important;justify-self:end!important;width:min(230px,100%)!important}.student-game-console .console-player-card img{object-fit:contain!important;overflow:visible}
@media(max-width:1180px){.student-game-console .console-header{grid-template-columns:minmax(0,1fr) minmax(180px,230px)!important;grid-template-areas:"identity pet" "tabs tabs"!important;min-height:138px!important}.total-power-container{grid-template-columns:auto minmax(0,1fr)}.total-power-breakdown{grid-column:1 / -1}}
@media(max-width:760px){.custom-badge-icon-field{min-width:100%;flex-basis:100%}.badge-icon-picker-backdrop{align-items:flex-end!important;padding:0!important}.badge-icon-picker-modal{width:100%!important;max-height:92dvh!important;border-radius:24px 24px 0 0!important}.badge-icon-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:15px}.badge-icon-choice-art{width:80px;height:80px}.student-game-console .console-header{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"identity" "tabs"!important;padding:62px 12px 12px!important}.student-game-console .console-resource-pills{grid-template-columns:repeat(3,minmax(0,1fr))!important}.student-game-console .console-resource-pills span{padding-inline:4px!important;font-size:.61rem!important}.student-game-console .console-player-card{display:none!important}.total-power-container{grid-template-columns:1fr;text-align:center}.total-power-emblem{justify-self:center}.total-power-breakdown{grid-column:auto;grid-template-columns:repeat(3,minmax(0,1fr))}.total-power-breakdown>div{padding:9px 5px}.total-power-breakdown span{font-size:.58rem}.total-power-breakdown b{font-size:.82rem}.total-power-main>strong{font-size:clamp(2.8rem,16vw,4.5rem)}}

/* Badge sizing and teacher form alignment */
.student-badge-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr))!important;gap:16px!important}.student-badge-card{min-height:286px!important}.student-badge-equipped-slot{min-height:190px!important}.student-badge-art,.student-badge-equipped-art{box-sizing:content-box;width:128px!important;height:128px!important;min-width:128px;min-height:128px;flex:0 0 128px!important;margin:0 auto 8px!important;padding:0!important;border-radius:28px;background:transparent!important;overflow:visible!important}.student-badge-art img,.student-badge-equipped-art img{display:block;width:128px!important;height:128px!important;max-width:none!important;max-height:none!important;object-fit:contain!important;transform:none!important;transform-origin:center;filter:drop-shadow(0 7px 9px rgba(0,0,0,.25))}.badge-icon-choice-art{box-sizing:content-box;width:128px!important;height:128px!important;padding:0!important;background:transparent!important}.badge-icon-choice-art img{width:128px!important;height:128px!important;max-width:none!important;max-height:none!important;object-fit:contain!important;transform:none!important}.custom-badge-form-grid{display:grid;grid-template-columns:minmax(190px,1.15fr) minmax(235px,1.35fr) minmax(118px,.62fr) minmax(94px,.48fr) minmax(240px,1.5fr) auto;align-items:end;gap:12px}.custom-badge-form-field{min-width:0}.custom-badge-field-label{display:block;min-height:18px;margin:0 0 6px;color:var(--text-muted);font-size:12px;font-weight:850}.custom-badge-control,.custom-badge-icon-trigger,.custom-badge-create-btn{box-sizing:border-box;width:100%!important;height:58px!important;min-height:58px!important;margin:0!important}.custom-badge-control{padding:0 14px!important;border:2px solid rgba(23,50,95,.24)!important;border-radius:14px!important;background:rgba(255,255,255,.9)!important;color:#17325f!important}.custom-badge-icon-trigger{grid-template-columns:44px minmax(0,1fr) 18px;padding:5px 10px;box-shadow:0 4px rgba(23,50,95,.18)}.custom-badge-icon-trigger-art{width:42px;height:42px;padding:0;overflow:visible}.custom-badge-icon-trigger-art img{width:42px;height:42px;object-fit:contain;transform:none}.custom-badge-create-btn{align-self:end;min-width:112px;padding:0 18px!important}.class-recovery-section>p{margin:0 0 12px;color:var(--manager-muted);font-size:.8rem;line-height:1.55}.class-recovery-list{display:grid;gap:8px;margin-top:12px}.class-recovery-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--manager-line);border-radius:12px;background:rgba(255,255,255,.42)}.class-recovery-row>div{min-width:0;display:grid;gap:2px}.class-recovery-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-recovery-row small{color:var(--manager-muted)}
@media(max-width:1280px){.custom-badge-form-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.custom-badge-form-field.is-name{grid-column:span 4}.custom-badge-form-field.is-icon{grid-column:span 4}.custom-badge-form-field.is-type{grid-column:span 2}.custom-badge-form-field.is-value{grid-column:span 2}.custom-badge-form-field.is-description{grid-column:span 9}.custom-badge-create-btn{grid-column:span 3}}
@media(max-width:760px){.student-badge-grid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr))!important}.student-badge-card{min-height:278px!important}.student-badge-equipped-slot{min-height:178px!important}.custom-badge-form-grid{grid-template-columns:1fr}.custom-badge-form-field.is-name,.custom-badge-form-field.is-icon,.custom-badge-form-field.is-type,.custom-badge-form-field.is-value,.custom-badge-form-field.is-description,.custom-badge-create-btn{grid-column:auto}.custom-badge-icon-field{min-width:0}.badge-icon-choice-art{width:112px!important;height:112px!important}.badge-icon-choice-art img{width:112px!important;height:112px!important}.class-recovery-row{align-items:flex-start;flex-direction:column}.class-recovery-row .cm-button{width:100%}}

/* Step 4: robust custom badge form sizing */
.pet-badge-teacher-panel,.pet-badge-teacher-panel>.cm-glass,.custom-badge-form-grid,.custom-badge-form-field{min-width:0;max-width:100%;box-sizing:border-box}.custom-badge-form-grid{width:100%;overflow:visible}.custom-badge-form-field{width:100%;overflow:visible}.custom-badge-form-field.is-description{align-self:stretch}.custom-badge-description-control{display:block;height:76px!important;min-height:76px!important;max-height:132px!important;padding:12px 14px!important;resize:vertical;line-height:1.45!important;overflow:auto!important;white-space:normal}.custom-badge-create-btn{max-width:100%;overflow:hidden}.pet-badge-teacher-panel>.cm-glass{overflow:visible!important}
@media(max-width:1280px){.custom-badge-form-field.is-description{grid-column:span 8}.custom-badge-create-btn{grid-column:span 4;align-self:end}}
@media(max-width:760px){.custom-badge-form-field.is-description,.custom-badge-create-btn{grid-column:auto}.custom-badge-description-control{height:88px!important;min-height:88px!important}}

/* Step 4: random arena */
.console-arena-crystal-badge{background:linear-gradient(135deg,#e0f7ff,#a7e8ff)!important;color:#17325f!important}.console-arena-crystal-badge img{object-fit:contain}.arena-console-page{display:grid;gap:16px}.arena-heading{align-items:center}.arena-crystal-readout{display:inline-flex!important;align-items:center;gap:7px}.arena-crystal-readout img{width:24px;height:24px;object-fit:contain}.arena-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;border:3px solid #17325f;border-radius:20px;background:linear-gradient(135deg,#fff8d7,#dff7ff 58%,#bcecff);box-shadow:0 7px #17325f;color:#17325f}.arena-hero-copy{display:grid;gap:3px}.arena-hero-copy>span,.arena-panel-title span{color:#2f7698;font-size:.72rem;font-weight:950;letter-spacing:.12em}.arena-hero-copy>strong{font-size:clamp(1.5rem,3vw,2.35rem);font-weight:950}.arena-hero-copy p{max-width:760px;margin:4px 0 0;color:#496b95;font-weight:850;line-height:1.55}.arena-daily-meter{display:grid;grid-template-columns:repeat(3,34px);align-items:center;justify-content:end;gap:7px}.arena-daily-meter i{width:34px;height:14px;border:2px solid #17325f;border-radius:999px;background:#fff}.arena-daily-meter i.is-used{background:linear-gradient(90deg,#42d8ff,#2d7cff)}.arena-daily-meter span{grid-column:1 / -1;color:#17325f;font-size:.78rem;font-weight:950;text-align:right}.arena-locked-card{padding:34px;border:2px dashed rgba(23,50,95,.35);border-radius:20px;background:rgba(255,255,255,.72);color:#17325f;text-align:center}.arena-locked-card h3{margin:0 0 6px}.arena-locked-card p{margin:0;color:#496b95;font-weight:800}.arena-match-grid{display:grid;grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr);align-items:stretch;gap:12px}.arena-player-card{min-width:0;display:grid;justify-items:center;align-content:center;gap:7px;padding:18px;border:3px solid #17325f;border-radius:22px;background:linear-gradient(180deg,#fff,#e9f7ff);box-shadow:0 6px #17325f;color:#17325f;text-align:center}.arena-player-card.is-opponent{background:linear-gradient(180deg,#fff7f3,#ffe1d2)}.arena-player-card>span{padding:3px 10px;border-radius:999px;background:#17325f;color:#fff;font-size:.7rem;font-weight:950}.arena-player-card>strong{font-size:1.05rem;font-weight:950}.arena-player-card>em{max-width:100%;overflow:hidden;color:#496b95;font-size:.76rem;font-style:normal;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.arena-avatar{width:112px;height:112px;display:grid;place-items:center;border:3px solid #17325f;border-radius:50%;background:radial-gradient(circle,#fff,#9fe8ff);overflow:hidden;color:#17325f;font-size:2.8rem;font-weight:950}.arena-avatar img{width:100px;height:100px;object-fit:contain}.arena-opponent-avatar{background:radial-gradient(circle,#fff8d7,#ff9d76)}.arena-versus{display:grid;place-items:center;align-content:center;gap:5px;color:#17325f}.arena-versus b{font-size:2rem;font-style:italic}.arena-versus span{font-size:.66rem;font-weight:950;letter-spacing:.14em}.arena-result-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;border:2px solid #17325f;border-radius:16px;color:#17325f}.arena-result-banner.is-win{background:#c9ffd8}.arena-result-banner.is-loss{background:#ffe0d8}.arena-result-banner strong{font-size:1.05rem}.arena-result-banner span{font-size:.82rem;font-weight:850;text-align:right}.arena-match-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.arena-match-actions .game-btn{width:100%}.arena-shop-panel,.arena-history-panel{display:grid;gap:12px;padding:16px;border:2px solid rgba(23,50,95,.22);border-radius:20px;background:rgba(255,255,255,.8)}.arena-panel-title{display:flex;align-items:end;justify-content:space-between;gap:12px;color:#17325f}.arena-panel-title h4{margin:2px 0 0;font-size:1.18rem}.arena-panel-title>strong{color:#2f7698;font-size:.78rem}.arena-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.arena-shop-card{position:relative;min-width:0;display:grid;justify-items:center;gap:7px;padding:14px;border:2px solid #17325f;border-radius:18px;background:linear-gradient(155deg,#fffef4,#dff7ff);box-shadow:0 4px #17325f;color:#17325f;text-align:center}.arena-shop-card.is-owned{filter:saturate(.55);opacity:.72}.arena-shop-card>img{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(23,50,95,.25))}.arena-shop-card h4{margin:0;font-size:.95rem}.arena-shop-card p{margin:0;color:#496b95;font-size:.75rem;font-weight:850}.arena-shop-card .game-btn{width:100%;margin-top:3px}.arena-legend-tag{position:absolute;top:8px;left:8px;padding:3px 7px;border-radius:999px;background:#17325f;color:#ffcf4f;font-size:.56rem;font-weight:950;letter-spacing:.08em}.arena-history-panel{gap:8px}.arena-history-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;background:#eef7ff;color:#17325f}.arena-history-row b{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#17325f;color:#fff}.arena-history-row.is-win b{background:#199a57}.arena-history-row.is-loss b{background:#d9534f}.arena-history-row span{overflow:hidden;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.arena-history-row em{color:#496b95;font-size:.74rem;font-style:normal;font-weight:850}.arena-empty-history{margin:0;padding:18px;border:1px dashed rgba(23,50,95,.25);border-radius:14px;color:#496b95;text-align:center}.arena-teacher-panel{display:grid;gap:15px;padding:18px!important;border-radius:18px}.arena-teacher-global{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px;border:2px solid rgba(23,50,95,.18);border-radius:16px;background:linear-gradient(135deg,#fffdf0,#e6f8ff)}.arena-teacher-global>div{display:grid;gap:3px}.arena-teacher-global span{color:#2f7698;font-size:.72rem;font-weight:950}.arena-teacher-global strong{color:#17325f;font-size:1.12rem}.arena-teacher-global p{margin:2px 0 0;color:#496b95;font-size:.8rem;font-weight:800}.arena-teacher-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.arena-teacher-summary>div{display:grid;gap:3px;padding:12px;border:1px solid rgba(23,50,95,.16);border-radius:14px;background:rgba(255,255,255,.78);text-align:center}.arena-teacher-summary span{color:#496b95;font-size:.7rem;font-weight:850}.arena-teacher-summary strong{color:#17325f;font-size:1rem}.arena-roster-head{display:flex;align-items:end;justify-content:space-between;gap:14px}.arena-roster-head>div:first-child{display:grid;gap:3px}.arena-roster-head strong{color:var(--color-text-primary)}.arena-roster-head span{color:var(--manager-muted);font-size:.75rem}.arena-roster-actions{display:flex;gap:8px}.arena-teacher-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.arena-teacher-student{min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid rgba(23,50,95,.18);border-radius:14px;background:rgba(255,255,255,.7)}.arena-teacher-student.is-disabled{opacity:.62;background:rgba(255,224,216,.65)}.arena-teacher-seat{width:38px;height:38px;display:grid;place-items:center;border:2px solid #17325f;border-radius:11px;background:#fff8d7;color:#17325f;font-weight:950}.arena-teacher-student-copy{min-width:0;display:grid;gap:2px}.arena-teacher-student-copy strong,.arena-teacher-student-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-teacher-student-copy strong{color:var(--color-text-primary)}.arena-teacher-student-copy span{color:var(--manager-muted);font-size:.7rem}.arena-teacher-student .game-btn{min-width:72px;padding:6px 9px;font-size:.72rem}
@media(max-width:900px){.arena-hero-card,.arena-teacher-global{grid-template-columns:1fr}.arena-daily-meter{justify-content:start}.arena-daily-meter span{text-align:left}.arena-match-grid{grid-template-columns:1fr}.arena-versus{min-height:64px}.arena-shop-grid,.arena-teacher-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.arena-teacher-roster{grid-template-columns:1fr}.arena-roster-head{align-items:stretch;flex-direction:column}.arena-roster-actions .game-btn{flex:1}}
@media(max-width:560px){.arena-shop-grid,.arena-teacher-summary,.arena-match-actions{grid-template-columns:1fr}.arena-panel-title,.arena-result-banner{align-items:flex-start;flex-direction:column}.arena-result-banner span{text-align:left}.arena-history-row{grid-template-columns:34px minmax(0,1fr)}.arena-history-row em{grid-column:2}.arena-teacher-student{grid-template-columns:38px minmax(0,1fr)}.arena-teacher-student .game-btn{grid-column:1 / -1;width:100%}}

/* Keep badge descriptions on their own row so the name field can remain usable. */
@media(min-width:1281px){
  .custom-badge-form-grid{grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,2fr) minmax(0,1.35fr) minmax(120px,1.35fr);grid-template-areas:"name icon type value action" "description description description description description";align-items:end}
  .custom-badge-form-field.is-name{grid-area:name}.custom-badge-form-field.is-icon{grid-area:icon}.custom-badge-form-field.is-type{grid-area:type}.custom-badge-form-field.is-value{grid-area:value}.custom-badge-form-field.is-description{grid-area:description}.custom-badge-create-btn{grid-area:action}
}
@media(min-width:761px) and (max-width:1280px){
  .custom-badge-form-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.custom-badge-form-field.is-name{grid-column:span 7}.custom-badge-form-field.is-icon{grid-column:span 5}.custom-badge-form-field.is-type{grid-column:span 3}.custom-badge-form-field.is-value{grid-column:span 3}.custom-badge-create-btn{grid-column:span 6}.custom-badge-form-field.is-description{grid-column:1/-1}
}
.custom-badge-description-control{height:88px!important;min-height:88px!important}

/* Keep every game-console destination visible, including the power leaderboard. */
.student-game-console .console-tab-bar{width:100%;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-self:center}
.student-game-console .console-tab-btn{min-width:0!important;width:100%;padding:8px 6px!important;font-size:clamp(.72rem,.85vw,.9rem)!important;line-height:1.15;white-space:normal!important}
@media(max-width:760px){.student-game-console .console-tab-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.student-game-console .console-header{height:auto!important;max-height:none!important}}

/* Arena pet scale follows evolution stage instead of forcing every sprite into one size. */
.arena-avatar.pet-stage-1 img{width:68%;height:68%}.arena-avatar.pet-stage-2 img{width:84%;height:84%}.arena-avatar.pet-stage-3 img{width:100%;height:100%}.arena-avatar.has-legendary-pet img{width:112%;height:112%;max-width:none;max-height:none}

.arena-match-modal,.arena-battle-modal{position:relative;box-sizing:border-box;width:min(94vw,920px);overflow:hidden;border:3px solid #17325f;border-radius:26px;background:linear-gradient(155deg,#fffdf0,#dff7ff 58%,#b8ddff);box-shadow:0 18px 0 rgba(23,50,95,.35),0 30px 70px rgba(4,19,48,.48);color:#17325f}.arena-battle-modal{max-height:96dvh;display:flex;flex-direction:column}
.arena-match-modal{width:min(92vw,560px);display:grid;justify-items:center;gap:12px;padding:30px;text-align:center}.arena-match-modal>p{margin:0;color:#2f7698;font-size:.72rem;font-weight:950;letter-spacing:.18em}.arena-match-modal>h3{margin:0;font-size:clamp(1.35rem,3vw,2rem)}
.arena-match-scan{position:relative;width:178px;height:178px;display:grid;place-items:center}.arena-scan-ring{position:absolute;inset:50%;border:3px solid rgba(33,150,243,.65);border-radius:50%;animation:arena-scan-pulse 1.8s ease-out infinite}.arena-scan-ring.ring-2{animation-delay:.45s}.arena-scan-ring.ring-3{animation-delay:.9s}
.arena-match-emblem{position:relative;z-index:2;width:82px;height:82px;display:grid;place-items:center;border:4px solid #17325f;border-radius:50%;background:linear-gradient(135deg,#ffcf4f,#ff7b65);box-shadow:0 7px #17325f;color:#17325f;font-size:1.65rem;font-weight:950}
.arena-search-dots{height:24px;display:flex;align-items:center;gap:8px}.arena-search-dots i{width:10px;height:10px;border-radius:50%;background:#2196f3;animation:arena-dot-bounce .9s ease-in-out infinite}.arena-search-dots i:nth-child(2){animation-delay:.15s}.arena-search-dots i:nth-child(3){animation-delay:.3s}
.arena-found-opponent{display:grid;justify-items:center;gap:5px;width:100%;padding:14px;border:2px solid rgba(23,50,95,.18);border-radius:20px;background:rgba(255,255,255,.72)}.arena-found-opponent>strong{font-size:1.15rem}.arena-found-opponent>span{color:#496b95;font-size:.8rem;font-weight:900}
.arena-found-pet{position:relative;width:190px;height:170px;display:flex;align-items:flex-end;justify-content:center}.arena-found-pet img{position:relative;z-index:2;width:auto;height:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(23,50,95,.3));animation:arena-pet-reveal .65s cubic-bezier(.2,.9,.25,1.25) both}.arena-found-pet.pet-stage-1 img{max-height:52%}.arena-found-pet.pet-stage-2 img{max-height:70%}.arena-found-pet.pet-stage-3 img{max-height:88%}.arena-found-pet.has-legendary-pet img{max-height:100%}
.arena-found-glow{position:absolute;left:50%;bottom:4px;width:150px;height:72px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,#fff8b7 0,#56caff88 38%,transparent 72%);filter:blur(3px);animation:arena-found-glow 1.3s ease-in-out infinite alternate}
.arena-battle-head{padding:18px 20px;border-bottom:2px solid rgba(23,50,95,.16)}
.arena-battle-stage{position:relative;box-sizing:border-box;height:clamp(360px,58dvh,500px);min-height:360px;flex:1 1 auto;display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);align-items:end;gap:12px;padding:36px 28px 48px;background:radial-gradient(circle at 50% 34%,rgba(255,255,255,.95),transparent 28%),linear-gradient(180deg,#7acbff 0,#d9f4ff 56%,#7fcf87 57%,#3f9961 100%);isolation:isolate}.arena-battle-stage:after{content:"";position:absolute;left:6%;right:6%;bottom:34px;height:34px;border-radius:50%;background:rgba(10,40,95,.22);filter:blur(8px);z-index:-1}.arena-battle-stage .battle-versus-badge{position:absolute;left:50%;top:22px;transform:translateX(-50%);z-index:7}
.arena-combatant{position:relative;min-width:0;width:100%;height:100%;max-height:390px;display:flex;align-items:flex-end;justify-content:center;transform-origin:center bottom;z-index:3}.arena-combatant.is-player{grid-column:1}.arena-combatant.is-opponent{grid-column:3}
.arena-combatant-sprite{position:relative;z-index:3;width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;transform-origin:center bottom}.arena-combatant.is-player .arena-combatant-sprite{transform:scaleX(-1)}.arena-combatant img{position:relative;z-index:3;width:auto;height:auto;max-width:100%;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 14px 12px rgba(8,35,73,.32));transform-origin:center bottom}.arena-combatant.pet-stage-1 img{max-height:48%}.arena-combatant.pet-stage-2 img{max-height:67%}.arena-combatant.pet-stage-3 img{max-height:84%}.arena-combatant.has-legendary-pet img{max-height:100%}
.arena-combatant>strong{position:absolute;left:50%;bottom:-27px;z-index:8;max-width:92%;padding:5px 12px;transform:translateX(-50%);border:2px solid #17325f;border-radius:999px;background:#fffdf0;color:#17325f;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arena-combatant-glow{position:absolute;left:50%;bottom:8%;z-index:1;width:78%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,#fff9ae 0,#68d9ff99 36%,transparent 70%);filter:blur(5px);animation:arena-combatant-aura 1.15s ease-in-out infinite alternate}.arena-hit-flash{position:absolute;inset:10% 2% 4%;z-index:6;border-radius:48%;color:var(--arena-player-glow,#55dcff);background:radial-gradient(circle at 50% 52%,rgba(255,255,255,.92) 0 3%,rgba(255,255,255,.5) 7%,color-mix(in srgb,currentColor 38%,transparent) 19%,color-mix(in srgb,currentColor 15%,transparent) 37%,transparent 68%);box-shadow:inset 0 0 28px color-mix(in srgb,currentColor 25%,transparent),0 0 34px color-mix(in srgb,currentColor 22%,transparent);filter:blur(2px);mix-blend-mode:screen;opacity:0;pointer-events:none}.is-opponent .arena-hit-flash{color:var(--arena-opponent-glow,#ff6bb5)}
.arena-damage-pop{position:absolute;top:18%;z-index:9;color:#ff3d3d;font-size:clamp(1.25rem,3vw,2.1rem);font-weight:950;text-shadow:0 3px #fff,-2px 0 #fff,2px 0 #fff;opacity:0}.is-player .arena-damage-pop{right:5%}.is-opponent .arena-damage-pop{left:5%}
.arena-attack-trail{position:absolute;top:48%;z-index:5;width:34%;height:10px;border-radius:999px;background:linear-gradient(90deg,transparent,#fff,#ffcf4f,transparent);filter:drop-shadow(0 0 10px #fff);opacity:0}.trail-player{left:24%;transform:rotate(-8deg)}.trail-opponent{right:24%;transform:rotate(188deg)}
.arena-battle-finish{position:absolute;inset:0;z-index:12;display:grid;place-content:center;justify-items:center;gap:5px;background:rgba(7,23,52,.76);color:#fff;opacity:0;pointer-events:none;text-align:center}.arena-battle-finish strong{color:#ffcf4f;font-size:clamp(2rem,6vw,4rem);font-weight:950;text-shadow:0 4px #17325f}.arena-battle-finish span{font-weight:850}
.arena-battle-result{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px 20px;border-top:2px solid rgba(23,50,95,.16);font-weight:900;text-align:center}.arena-battle-result span:first-child{text-align:right}.arena-battle-result span:last-child{text-align:left}.arena-battle-result strong{color:#df4b42;letter-spacing:.12em}.arena-battle-modal>.game-btn{display:block;min-width:190px;margin:0 auto 20px}
.player-wins .is-opponent{animation:arena-opponent-first 5.8s ease-in-out both}.player-wins .is-player{animation:arena-player-counter 5.8s ease-in-out both}.opponent-wins .is-player{animation:arena-player-first 5.8s ease-in-out both}.opponent-wins .is-opponent{animation:arena-opponent-counter 5.8s ease-in-out both}
.player-wins .is-player img,.opponent-wins .is-opponent img{animation:arena-survivor-hit 5.8s linear both}.player-wins .is-opponent img,.opponent-wins .is-player img{animation:arena-loser-hit 5.8s linear both}.player-wins .is-player .arena-hit-flash,.opponent-wins .is-opponent .arena-hit-flash{animation:arena-first-hit-flash 5.8s linear both}.player-wins .is-opponent .arena-hit-flash,.opponent-wins .is-player .arena-hit-flash{animation:arena-final-hit-flash 5.8s linear both}
.player-wins .is-player .arena-damage-pop,.opponent-wins .is-opponent .arena-damage-pop{animation:arena-first-damage 5.8s ease-out both}.player-wins .is-opponent .arena-damage-pop,.opponent-wins .is-player .arena-damage-pop{animation:arena-final-damage 5.8s ease-out both}.player-wins .trail-opponent,.opponent-wins .trail-player{animation:arena-first-trail 5.8s linear both}.player-wins .trail-player,.opponent-wins .trail-opponent{animation:arena-final-trail 5.8s linear both}.arena-combatant.is-loser .arena-combatant-glow{animation:arena-loser-glow 5.8s linear both}.arena-battle-finish{animation:arena-finish-reveal 5.8s ease both}
@keyframes arena-scan-pulse{0%{inset:50%;opacity:.9}100%{inset:0;opacity:0}}@keyframes arena-dot-bounce{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-7px);opacity:1}}@keyframes arena-pet-reveal{0%{transform:translateY(28px) scale(.68);opacity:0}100%{transform:translateY(0) scale(1);opacity:1}}@keyframes arena-found-glow{from{opacity:.55;transform:translateX(-50%) scale(.9)}to{opacity:1;transform:translateX(-50%) scale(1.08)}}@keyframes arena-combatant-aura{from{opacity:.55;transform:translateX(-50%) scale(.92)}to{opacity:1;transform:translateX(-50%) scale(1.08)}}
@keyframes arena-opponent-first{0%,8%,28%,100%{transform:translateX(0)}15%{transform:translateX(-36%) scale(1.08)}}@keyframes arena-player-first{0%,8%,28%,100%{transform:translateX(0)}15%{transform:translateX(36%) scale(1.08)}}@keyframes arena-player-counter{0%,38%,60%,100%{transform:translateX(0)}48%{transform:translateX(38%) scale(1.1)}}@keyframes arena-opponent-counter{0%,38%,60%,100%{transform:translateX(0)}48%{transform:translateX(-38%) scale(1.1)}}
@keyframes arena-survivor-hit{0%,18%{filter:drop-shadow(0 14px 12px rgba(8,35,73,.32))}21%{filter:brightness(3) saturate(0) drop-shadow(0 0 20px #fff)}25%,100%{filter:drop-shadow(0 14px 12px rgba(8,35,73,.32))}}@keyframes arena-loser-hit{0%,51%{filter:drop-shadow(0 14px 12px rgba(8,35,73,.32))}55%{filter:brightness(3) saturate(0) drop-shadow(0 0 22px #fff)}62%{filter:brightness(.6) saturate(.5)}100%{filter:brightness(.35) saturate(.25) drop-shadow(0 5px 4px rgba(8,35,73,.15));transform:translateY(12px) scale(.94)}}
@keyframes arena-first-hit-flash{0%,18%,26%,100%{opacity:0;transform:scale(.65)}21%,23%{opacity:.72;transform:scale(1)}}@keyframes arena-final-hit-flash{0%,51%,60%,100%{opacity:0;transform:scale(.65)}54%,57%{opacity:.78;transform:scale(1.04)}}@keyframes arena-first-damage{0%,20%,27%,100%{opacity:0;transform:translateY(10px)}22%,25%{opacity:1;transform:translateY(-8px)}}@keyframes arena-final-damage{0%,53%,62%,100%{opacity:0;transform:translateY(10px)}55%,59%{opacity:1;transform:translateY(-10px)}}
@keyframes arena-first-trail{0%,11%,20%,100%{opacity:0}14%,17%{opacity:1}}@keyframes arena-final-trail{0%,43%,53%,100%{opacity:0}46%,50%{opacity:1}}@keyframes arena-loser-glow{0%,56%{opacity:1}68%,100%{opacity:0;transform:translateX(-50%) scale(.25)}}@keyframes arena-finish-reveal{0%,70%{opacity:0}78%,92%{opacity:1}100%{opacity:0}}
@media(max-width:680px){.arena-match-modal{padding:22px 16px}.arena-match-scan{width:144px;height:144px}.arena-battle-stage{min-height:560px;grid-template-columns:1fr;grid-template-rows:1fr 1fr;align-items:center;padding:50px 18px 34px}.arena-combatant{height:230px}.arena-combatant.is-player{grid-column:1;grid-row:1}.arena-combatant.is-opponent{grid-column:1;grid-row:2}.arena-combatant.pet-stage-1 img{max-height:42%}.arena-combatant.pet-stage-2 img{max-height:56%}.arena-combatant.pet-stage-3 img{max-height:70%}.arena-combatant.has-legendary-pet img{max-height:82%}.arena-combatant>strong{bottom:-12px}.arena-attack-trail{left:44%;right:auto;top:47%;width:12%;transform:rotate(90deg)}.arena-battle-result{grid-template-columns:1fr}.arena-battle-result span:first-child,.arena-battle-result span:last-child{text-align:center}}

/* Keep the power leaderboard permanently reachable, including cached narrow layouts. */
.student-game-console .console-header{height:auto!important;max-height:none!important;overflow:visible!important}
.student-game-console .console-tab-bar{min-height:0!important;overflow:visible!important}
.student-game-console .console-leaderboard-tab{background:linear-gradient(135deg,#f5fbff,#dff1ff)!important;color:#17325f!important;border-color:rgba(23,50,95,.32)!important;box-shadow:0 4px rgba(23,50,95,.22)!important}
.student-game-console .console-leaderboard-tab.active{background:linear-gradient(135deg,#d9f2ff,#9bd6ff)!important}

/* Cosmic arena battle: Boss-scale presentation with two clearly sequenced attacks. */
.arena-battle-backdrop{padding:clamp(8px,2vw,20px);background:radial-gradient(ellipse at 50% 46%,rgba(74,150,255,.28) 0,rgba(20,54,110,.2) 28%,rgba(2,8,26,.92) 72%);backdrop-filter:blur(18px) saturate(155%);-webkit-backdrop-filter:blur(18px) saturate(155%)}
.battle-effect-backdrop .cosmic-arena-battle{width:min(98vw,1200px);height:clamp(540px,92dvh,920px);max-height:98dvh;border:1px solid rgba(185,236,255,.8);background:linear-gradient(180deg,rgba(7,20,46,.97),rgba(12,36,72,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.72),inset 0 0 34px rgba(95,200,255,.18),0 0 0 3px rgba(255,207,79,.62),0 0 22px rgba(169,228,255,.78),0 0 90px rgba(51,181,255,.45),0 34px 100px rgba(0,0,0,.78);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%)}
.cosmic-arena-battle .arena-battle-head{position:relative;z-index:30;flex:0 0 auto;background:linear-gradient(90deg,rgba(4,17,43,.96),rgba(17,54,102,.94),rgba(4,17,43,.96));border-bottom-color:rgba(136,217,255,.48);color:#fff}
.cosmic-arena-battle .arena-battle-head p{color:#8bdcff!important;letter-spacing:.2em}.cosmic-arena-battle .arena-battle-head h3{color:#fff4bd!important;text-shadow:0 0 18px rgba(255,207,79,.65)}
.cosmic-arena-battle .arena-battle-stage{height:auto;min-height:390px;flex:1 1 auto;overflow:hidden;background:radial-gradient(ellipse at 50% 44%,rgba(115,176,255,.24) 0,rgba(29,76,139,.12) 26%,transparent 54%),linear-gradient(180deg,#020817 0%,#071a38 53%,#123d58 55%,#071b2b 100%);box-shadow:inset 0 18px 35px rgba(0,0,0,.45),inset 0 -16px 30px rgba(3,10,28,.6)}
.arena-cosmic-sky{position:absolute;inset:0;z-index:-4;background:radial-gradient(ellipse at 17% 28%,rgba(84,206,255,.3) 0,rgba(45,131,255,.12) 24%,transparent 52%),radial-gradient(ellipse at 84% 24%,rgba(255,116,207,.27) 0,rgba(166,70,255,.1) 25%,transparent 54%),radial-gradient(ellipse at 50% 76%,rgba(84,255,218,.16) 0,transparent 48%);filter:saturate(125%)}
.arena-cosmic-sky:before,.arena-cosmic-sky:after{content:"";position:absolute;inset:-12%;pointer-events:none;opacity:.55;filter:blur(24px);mix-blend-mode:screen}.arena-cosmic-sky:before{background:conic-gradient(from 205deg at 18% 72%,transparent 0 10deg,rgba(102,217,255,.18) 16deg,transparent 25deg 100%)}.arena-cosmic-sky:after{background:conic-gradient(from 30deg at 82% 68%,transparent 0 10deg,rgba(255,125,220,.14) 16deg,transparent 26deg 100%)}
.arena-volumetric-mist{position:absolute;z-index:-1;width:58%;height:74%;top:12%;border-radius:50%;opacity:.5;filter:blur(34px);mix-blend-mode:screen;pointer-events:none;animation:arena-mist-drift 5.8s ease-in-out both}.mist-player{left:-8%;background:radial-gradient(ellipse at 55% 52%,color-mix(in srgb,var(--arena-player-glow,#55dcff) 40%,transparent) 0,rgba(72,173,255,.17) 35%,transparent 72%)}.mist-opponent{right:-8%;background:radial-gradient(ellipse at 45% 52%,color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 40%,transparent) 0,rgba(217,91,255,.15) 35%,transparent 72%);animation-direction:reverse}
.arena-lens-flare{position:absolute;z-index:12;width:clamp(110px,18vw,230px);aspect-ratio:1;border-radius:50%;opacity:0;pointer-events:none;mix-blend-mode:screen;filter:blur(.3px);background:radial-gradient(circle,rgba(255,255,255,.96) 0 2%,rgba(255,255,255,.48) 3%,currentColor 8%,color-mix(in srgb,currentColor 28%,transparent) 23%,transparent 62%);box-shadow:0 0 18px color-mix(in srgb,currentColor 75%,transparent),0 0 64px color-mix(in srgb,currentColor 48%,transparent)}.arena-lens-flare:before,.arena-lens-flare:after{content:"";position:absolute;inset:36%;border-radius:50%;border:1px solid rgba(255,255,255,.8);box-shadow:0 0 12px currentColor}.arena-lens-flare:after{inset:10%;border-color:color-mix(in srgb,currentColor 35%,transparent);filter:blur(2px)}.flare-player{left:17%;top:33%;color:var(--arena-player-glow,#55dcff)}.flare-opponent{right:17%;top:33%;color:var(--arena-opponent-glow,#ff6bb5)}
.arena-starfield{position:absolute;inset:-40%;z-index:-3;pointer-events:none;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.8px),radial-gradient(circle,#8bdcff 0 1px,transparent 1.9px);background-size:47px 47px,79px 79px;opacity:.54;transform-origin:center;animation:arena-star-warp 5.8s linear both}.arena-starfield.starfield-near{inset:-65%;z-index:-2;background-size:93px 93px,137px 137px;opacity:.36;animation-duration:4.2s}
.cosmic-arena-battle .battle-speed-field{z-index:-1;opacity:.68;background:repeating-conic-gradient(from 90deg at 50% 50%,transparent 0 5deg,rgba(155,224,255,.18) 5.4deg 6deg,transparent 6.4deg 12deg);animation:arena-speed-burst 5.8s ease both}
.cosmic-arena-battle .battle-floor-aura{z-index:0;left:3%;right:3%;bottom:2%;height:28%;background:radial-gradient(ellipse at center,rgba(255,255,255,.72) 0 2%,color-mix(in srgb,var(--arena-player-glow,#59d9ff) 55%,transparent) 10%,rgba(64,183,255,.28) 28%,rgba(255,207,79,.1) 48%,transparent 75%);filter:blur(15px);box-shadow:0 -8px 28px rgba(87,200,255,.18);animation:arena-floor-charge 5.8s ease both}
.arena-screen-flash{position:absolute;inset:0;z-index:22;background:radial-gradient(circle at 50% 48%,#fff 0,rgba(255,255,255,.9) 8%,rgba(169,225,255,.4) 32%,transparent 68%);filter:blur(3px);mix-blend-mode:screen;opacity:0;pointer-events:none;animation:arena-screen-burst 5.8s linear both}
.arena-light-pillar{position:absolute;bottom:2%;z-index:1;width:30%;height:104%;opacity:0;border-radius:45% 45% 22% 22%/7% 7% 24% 24%;filter:blur(7px);clip-path:polygon(44% 0,56% 0,78% 66%,100% 100%,0 100%,22% 66%);mix-blend-mode:screen}.arena-light-pillar:before,.arena-light-pillar:after{content:"";position:absolute;inset:0;border-radius:inherit}.arena-light-pillar:before{inset:0 26%;background:linear-gradient(180deg,transparent 0,rgba(255,255,255,.22) 24%,rgba(255,255,255,.94) 82%,rgba(255,255,255,.45) 100%);filter:blur(2px)}.arena-light-pillar:after{inset:6% -12% 0;background:radial-gradient(ellipse at 50% 88%,rgba(255,255,255,.92) 0 3%,currentColor 15%,color-mix(in srgb,currentColor 30%,transparent) 35%,transparent 70%);filter:blur(18px)}.pillar-player{left:6%;color:var(--arena-player-glow,#55dcff);background:linear-gradient(180deg,transparent 0,color-mix(in srgb,var(--arena-player-glow,#55dcff) 10%,transparent) 24%,color-mix(in srgb,var(--arena-player-glow,#55dcff) 48%,transparent) 76%,transparent 100%);box-shadow:0 0 45px color-mix(in srgb,var(--arena-player-glow,#55dcff) 35%,transparent)}.pillar-opponent{right:6%;color:var(--arena-opponent-glow,#ff6bb5);background:linear-gradient(180deg,transparent 0,color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 10%,transparent) 24%,color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 48%,transparent) 76%,transparent 100%);box-shadow:0 0 45px color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 35%,transparent)}
.arena-black-hole{position:absolute;left:50%;top:46%;z-index:10;width:clamp(90px,14vw,170px);aspect-ratio:1;transform:translate(-50%,-50%) scale(0);opacity:0;border-radius:50%;pointer-events:none;filter:drop-shadow(0 0 22px rgba(112,87,255,.75)) drop-shadow(0 0 54px rgba(54,186,255,.48));animation:arena-black-hole-entry 5.8s cubic-bezier(.2,.8,.2,1) both}.arena-black-hole:before{content:"";position:absolute;inset:-45%;border-radius:50%;background:conic-gradient(from 20deg,transparent 0 16%,rgba(85,210,255,.12) 25%,transparent 38% 58%,rgba(255,91,205,.11) 72%,transparent 88%);filter:blur(15px);animation:arena-black-hole-spin 2.8s linear infinite}.black-hole-core,.black-hole-ring{position:absolute;inset:0;border-radius:50%}.black-hole-core{inset:21%;background:radial-gradient(circle at 42% 38%,rgba(30,22,55,.45) 0,#030207 32%,#000 70%);box-shadow:inset -8px -7px 18px rgba(68,31,130,.28),0 0 18px #000,0 0 44px rgba(88,53,255,.9),0 0 92px rgba(50,190,255,.6)}.black-hole-ring{border:10px solid transparent;background:conic-gradient(from 0deg,rgba(255,249,190,.9),rgba(86,223,255,.8),rgba(121,60,255,.76),rgba(255,93,177,.74),rgba(255,249,190,.9)) border-box;-webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude;filter:blur(3px);box-shadow:inset 0 0 16px rgba(255,255,255,.35),0 0 26px rgba(93,181,255,.55);animation:arena-black-hole-spin .75s linear infinite}.black-hole-ring.ring-b{inset:-14%;border-width:6px;opacity:.38;filter:blur(6px);animation-direction:reverse;animation-duration:1.35s}
.cosmic-arena-battle .battle-versus-badge{padding:8px 15px;border:2px solid #fff;border-radius:999px;background:linear-gradient(135deg,#ff4e77,#6d48ff);color:#fff;box-shadow:0 0 24px rgba(116,105,255,.8);font-size:1.05rem;animation:arena-vs-charge 5.8s ease both}
.cosmic-arena-battle .arena-combatant{z-index:5}.cosmic-arena-battle .arena-combatant img{filter:drop-shadow(0 18px 15px rgba(0,0,0,.55)) drop-shadow(0 0 16px var(--arena-player-glow,#55dcff))}.cosmic-arena-battle .arena-combatant.is-opponent img{filter:drop-shadow(0 18px 15px rgba(0,0,0,.55)) drop-shadow(0 0 16px var(--arena-opponent-glow,#ff6bb5))}
.arena-summon-ring{position:absolute;left:50%;bottom:4%;z-index:2;width:78%;aspect-ratio:1;transform:translateX(-50%) rotateX(70deg);border:2px solid color-mix(in srgb,var(--arena-player-glow,#55dcff) 78%,white);border-radius:50%;background:radial-gradient(ellipse,transparent 48%,color-mix(in srgb,var(--arena-player-glow,#55dcff) 16%,transparent) 62%,transparent 73%);box-shadow:0 0 8px rgba(255,255,255,.75),0 0 24px var(--arena-player-glow,#55dcff),0 0 48px color-mix(in srgb,var(--arena-player-glow,#55dcff) 40%,transparent),inset 0 0 16px color-mix(in srgb,var(--arena-player-glow,#55dcff) 65%,transparent);opacity:.72;filter:blur(.35px);animation:arena-summon-spin 1.8s linear infinite}.is-opponent .arena-summon-ring{border-color:color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 78%,white);background:radial-gradient(ellipse,transparent 48%,color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 16%,transparent) 62%,transparent 73%);box-shadow:0 0 8px rgba(255,255,255,.75),0 0 24px var(--arena-opponent-glow,#ff6bb5),0 0 48px color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 40%,transparent),inset 0 0 16px color-mix(in srgb,var(--arena-opponent-glow,#ff6bb5) 65%,transparent)}
.arena-orbit-particle{position:absolute;z-index:4;width:clamp(8px,1vw,13px);aspect-ratio:1;border-radius:50%;opacity:0;background:radial-gradient(circle at 38% 35%,#fff 0 13%,currentColor 32%,color-mix(in srgb,currentColor 24%,transparent) 58%,transparent 76%);box-shadow:0 0 6px rgba(255,255,255,.9),0 0 14px currentColor,0 0 32px color-mix(in srgb,currentColor 55%,transparent);filter:blur(.25px);animation:arena-particle-charge 5.8s ease both}.player-particle{left:24%;bottom:28%;color:var(--arena-player-glow,#55dcff)}.opponent-particle{right:24%;bottom:28%;color:var(--arena-opponent-glow,#ff6bb5)}.particle-1{--particle-x:-72px;--particle-y:-86px}.particle-2{--particle-x:66px;--particle-y:-102px;animation-delay:.08s}.particle-3{--particle-x:-92px;--particle-y:-12px;animation-delay:.16s}.particle-4{--particle-x:86px;--particle-y:-30px;animation-delay:.24s}.particle-5{--particle-x:-38px;--particle-y:40px;animation-delay:.32s}.particle-6{--particle-x:48px;--particle-y:34px;animation-delay:.4s}
.arena-energy-orb{position:absolute;top:45%;z-index:14;width:clamp(34px,5vw,66px);aspect-ratio:1;border-radius:50%;opacity:0;mix-blend-mode:screen;pointer-events:none;filter:blur(.2px)}.arena-energy-orb:before,.arena-energy-orb:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.arena-energy-orb:before{inset:-32%;background:radial-gradient(circle,currentColor 0,color-mix(in srgb,currentColor 32%,transparent) 34%,transparent 70%);filter:blur(12px)}.arena-energy-orb:after{inset:-72%;border:1px solid color-mix(in srgb,currentColor 48%,transparent);box-shadow:0 0 20px color-mix(in srgb,currentColor 58%,transparent);opacity:.55}.orb-player{left:24%;color:var(--arena-player-glow,#55dcff);background:radial-gradient(circle at 38% 33%,#fff 0 8%,rgba(255,255,255,.9) 11%,currentColor 28%,color-mix(in srgb,currentColor 38%,transparent) 48%,transparent 74%);box-shadow:0 0 10px #fff,0 0 26px currentColor,0 0 72px color-mix(in srgb,currentColor 62%,transparent)}.orb-opponent{right:24%;color:var(--arena-opponent-glow,#ff6bb5);background:radial-gradient(circle at 38% 33%,#fff 0 8%,rgba(255,255,255,.9) 11%,currentColor 28%,color-mix(in srgb,currentColor 38%,transparent) 48%,transparent 74%);box-shadow:0 0 10px #fff,0 0 26px currentColor,0 0 72px color-mix(in srgb,currentColor 62%,transparent)}
.arena-impact-burst{position:absolute;left:50%;top:45%;z-index:15;width:clamp(110px,19vw,245px);aspect-ratio:1;transform:translate(-50%,-50%) scale(0);border-radius:50%;opacity:0;pointer-events:none;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.96) 0 2deg,transparent 4deg 13deg),radial-gradient(circle,rgba(255,255,255,1) 0 5%,rgba(255,248,188,.9) 9%,rgba(255,163,72,.58) 22%,rgba(255,83,83,.25) 40%,transparent 70%);filter:blur(.5px) drop-shadow(0 0 12px #fff) drop-shadow(0 0 35px rgba(255,176,77,.76))}.arena-impact-burst:after{content:"";position:absolute;inset:18%;border:2px solid rgba(255,255,255,.8);border-radius:50%;box-shadow:0 0 18px #fff,0 0 42px rgba(255,207,79,.72)}
.cosmic-arena-battle .arena-attack-trail{height:22px;border-radius:50%;background:linear-gradient(90deg,transparent 0,color-mix(in srgb,currentColor 18%,transparent) 12%,currentColor 34%,rgba(255,255,255,.98) 50%,currentColor 66%,color-mix(in srgb,currentColor 18%,transparent) 88%,transparent 100%);box-shadow:0 0 8px #fff,0 0 18px currentColor,0 0 38px color-mix(in srgb,currentColor 50%,transparent);filter:blur(1.2px)}.cosmic-arena-battle .trail-player{color:var(--arena-player-glow,#55dcff)}.cosmic-arena-battle .trail-opponent{color:var(--arena-opponent-glow,#ff6bb5)}
.arena-boss-projectile{--projectile-y:0px;--projectile-scale:1;left:24%!important;top:45%!important;z-index:13!important;width:clamp(18px,2.7vw,34px)!important;height:clamp(18px,2.7vw,34px)!important;border-radius:50%!important;background:radial-gradient(circle at 38% 35%,#fff 0 10%,rgba(255,255,255,.92) 14%,#7ee5ff 35%,rgba(95,112,255,.36) 58%,transparent 76%)!important;box-shadow:0 0 8px #fff,0 0 22px #67ddff,0 0 48px rgba(102,103,255,.65)!important;filter:blur(.4px)!important;opacity:0;animation-duration:5.8s!important;animation-timing-function:cubic-bezier(.18,.72,.22,1)!important;animation-fill-mode:both!important}.arena-boss-projectile:after{content:"";position:absolute;right:55%;top:30%;width:240%;height:40%;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(102,193,255,.25),rgba(255,255,255,.8));filter:blur(3px)}.arena-boss-projectile.projectile-2{--projectile-y:-34px;--projectile-scale:.72;animation-delay:.05s!important}.arena-boss-projectile.projectile-3{--projectile-y:30px;--projectile-scale:.64;animation-delay:.1s!important}.arena-boss-projectile.projectile-4{--projectile-y:-58px;--projectile-scale:.5;animation-delay:.16s!important}.arena-boss-projectile.projectile-5{--projectile-y:54px;--projectile-scale:.46;animation-delay:.21s!important}
.arena-shockwave{position:absolute;left:50%;top:47%;z-index:16;width:clamp(80px,12vw,150px);aspect-ratio:1;transform:translate(-50%,-50%) scale(.1);border:2px solid rgba(255,255,255,.9);border-radius:50%;opacity:0;box-shadow:0 0 12px #fff,0 0 35px rgba(94,204,255,.7),inset 0 0 18px rgba(255,255,255,.55);filter:blur(.4px);pointer-events:none}.shockwave-first{animation:arena-shockwave-first 5.8s ease-out both}.shockwave-counter{animation:arena-shockwave-counter 5.8s ease-out both}
.player-wins .shockwave-first,.opponent-wins .shockwave-counter{left:25%}.player-wins .shockwave-counter,.opponent-wins .shockwave-first{left:75%}
.cosmic-arena-battle .arena-battle-finish{background:radial-gradient(circle,rgba(35,83,154,.72),rgba(1,6,20,.94));backdrop-filter:blur(8px)}.cosmic-arena-battle .arena-battle-finish strong{text-shadow:0 0 22px #ffcf4f,0 5px #17325f}.cosmic-arena-battle .arena-battle-result{position:relative;z-index:30;flex:0 0 auto;background:linear-gradient(90deg,#07142e,#112f58,#07142e);border-top-color:rgba(136,217,255,.4);color:#fff}.cosmic-arena-battle .arena-battle-result strong{color:#ffcf4f}.cosmic-arena-battle>.game-btn{position:relative;z-index:30;flex:0 0 auto}
.player-wins .pillar-opponent,.opponent-wins .pillar-player{animation:arena-first-pillar 5.8s ease both}.player-wins .pillar-player,.opponent-wins .pillar-opponent{animation:arena-counter-pillar 5.8s ease both}
.player-wins .orb-opponent{animation:arena-orb-right-to-left 5.8s cubic-bezier(.2,.8,.2,1) both}.player-wins .orb-player{animation:arena-orb-left-to-right 5.8s cubic-bezier(.2,.8,.2,1) both}.opponent-wins .orb-player{animation:arena-orb-left-to-right-first 5.8s cubic-bezier(.2,.8,.2,1) both}.opponent-wins .orb-opponent{animation:arena-orb-right-to-left-counter 5.8s cubic-bezier(.2,.8,.2,1) both}
.player-wins .impact-player,.opponent-wins .impact-opponent{animation:arena-impact-first 5.8s ease-out both}.player-wins .impact-opponent,.opponent-wins .impact-player{animation:arena-impact-counter 5.8s ease-out both}
.player-wins .flare-player,.opponent-wins .flare-opponent{animation:arena-flare-first 5.8s ease-out both}.player-wins .flare-opponent,.opponent-wins .flare-player{animation:arena-flare-counter 5.8s ease-out both}
.player-wins .arena-boss-projectile{animation-name:arena-projectile-opponent-first!important}.opponent-wins .arena-boss-projectile{animation-name:arena-projectile-player-first!important}

@keyframes arena-star-warp{0%{transform:scale(.75) rotate(0);opacity:.18}28%{opacity:.72}70%{transform:scale(1.28) rotate(5deg);opacity:.62}100%{transform:scale(1.6) rotate(8deg);opacity:.12}}
@keyframes arena-speed-burst{0%,7%,30%,38%,66%,100%{opacity:.08;transform:scale(.9)}13%,23%,45%,60%{opacity:.75;transform:scale(1.18)}}
@keyframes arena-floor-charge{0%{opacity:.25;transform:scale(.72)}16%,52%{opacity:1;transform:scale(1.05)}72%,100%{opacity:.18;transform:scale(.86)}}
@keyframes arena-screen-burst{0%,19%,24%,52%,58%,100%{opacity:0}21%,55%{opacity:.82}22%,56%{opacity:.18}}
@keyframes arena-first-pillar{0%,4%,21%,100%{opacity:0;transform:scaleY(.4)}8%,16%{opacity:.8;transform:scaleY(1)}}
@keyframes arena-counter-pillar{0%,37%,56%,100%{opacity:0;transform:scaleY(.4)}42%,50%{opacity:.9;transform:scaleY(1)}}
@keyframes arena-black-hole-entry{0%,25%,45%,100%{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(-30deg)}31%,39%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}
@keyframes arena-black-hole-spin{to{transform:rotate(360deg)}}
@keyframes arena-vs-charge{0%{transform:translateX(-50%) scale(.4);opacity:0}10%,68%{transform:translateX(-50%) scale(1);opacity:1}76%,100%{transform:translateX(-50%) scale(1.5);opacity:0}}
@keyframes arena-summon-spin{to{transform:translateX(-50%) rotateX(70deg) rotate(360deg)}}
@keyframes arena-particle-charge{0%,5%,67%,100%{opacity:0;transform:translate(0,0) scale(.2)}12%,58%{opacity:.92;transform:translate(var(--particle-x),var(--particle-y)) scale(1)}64%{opacity:.2;transform:translate(0,0) scale(.1)}}
@keyframes arena-orb-right-to-left{0%,9%,23%,100%{opacity:0;transform:translate(0,0) scale(.2)}12%{opacity:1;transform:translate(0,0) scale(1)}20%{opacity:1;transform:translate(calc(-52vw + 170px),8px) scale(1.35)}}
@keyframes arena-orb-left-to-right{0%,41%,58%,100%{opacity:0;transform:translate(0,0) scale(.2)}44%{opacity:1;transform:translate(0,0) scale(1)}55%{opacity:1;transform:translate(calc(52vw - 170px),-8px) scale(1.45)}}
@keyframes arena-orb-left-to-right-first{0%,9%,23%,100%{opacity:0;transform:translate(0,0) scale(.2)}12%{opacity:1;transform:translate(0,0) scale(1)}20%{opacity:1;transform:translate(calc(52vw - 170px),8px) scale(1.35)}}
@keyframes arena-orb-right-to-left-counter{0%,41%,58%,100%{opacity:0;transform:translate(0,0) scale(.2)}44%{opacity:1;transform:translate(0,0) scale(1)}55%{opacity:1;transform:translate(calc(-52vw + 170px),-8px) scale(1.45)}}
@keyframes arena-impact-first{0%,19%,27%,100%{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(0)}21%{opacity:1;transform:translate(-50%,-50%) scale(.45) rotate(18deg)}24%{opacity:0;transform:translate(-50%,-50%) scale(1.45) rotate(48deg)}}
@keyframes arena-impact-counter{0%,53%,62%,100%{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(0)}55%{opacity:1;transform:translate(-50%,-50%) scale(.5) rotate(18deg)}59%{opacity:0;transform:translate(-50%,-50%) scale(1.65) rotate(55deg)}}
@keyframes arena-mist-drift{0%{opacity:.28;transform:translate3d(-3%,2%,0) scale(.92)}38%{opacity:.58;transform:translate3d(3%,-2%,0) scale(1.08)}72%{opacity:.42;transform:translate3d(-1%,1%,0) scale(1)}100%{opacity:.18;transform:translate3d(2%,-1%,0) scale(1.12)}}
@keyframes arena-flare-first{0%,18%,26%,100%{opacity:0;transform:translate(-50%,-50%) scale(.2)}20%{opacity:.42;transform:translate(-50%,-50%) scale(.7)}22%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}25%{opacity:0;transform:translate(-50%,-50%) scale(1.75)}}
@keyframes arena-flare-counter{0%,52%,62%,100%{opacity:0;transform:translate(-50%,-50%) scale(.2)}54%{opacity:.48;transform:translate(-50%,-50%) scale(.72)}56%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}61%{opacity:0;transform:translate(-50%,-50%) scale(1.85)}}
@keyframes arena-shockwave-first{0%,19%,27%,100%{opacity:0;transform:translate(-50%,-50%) scale(.08)}21%{opacity:.95;transform:translate(-50%,-50%) scale(.25)}26%{opacity:0;transform:translate(-50%,-50%) scale(2.8)}}
@keyframes arena-shockwave-counter{0%,53%,64%,100%{opacity:0;transform:translate(-50%,-50%) scale(.08)}55%{opacity:1;transform:translate(-50%,-50%) scale(.25)}63%{opacity:0;transform:translate(-50%,-50%) scale(3.25)}}
@keyframes arena-projectile-opponent-first{0%,9%{opacity:0;transform:translate(calc(52vw - 170px),var(--projectile-y)) scale(var(--projectile-scale))}12%{opacity:.95;transform:translate(calc(46vw - 150px),var(--projectile-y)) scale(var(--projectile-scale))}21%{opacity:1;transform:translate(0,var(--projectile-y)) scale(var(--projectile-scale))}24%,41%{opacity:0;transform:translate(0,var(--projectile-y)) scale(var(--projectile-scale))}44%{opacity:.95;transform:translate(0,var(--projectile-y)) scale(var(--projectile-scale))}56%{opacity:1;transform:translate(calc(52vw - 170px),var(--projectile-y)) scale(var(--projectile-scale))}59%,100%{opacity:0;transform:translate(calc(52vw - 170px),var(--projectile-y)) scale(var(--projectile-scale))}}
@keyframes arena-projectile-player-first{0%,9%{opacity:0;transform:translate(0,var(--projectile-y)) scale(var(--projectile-scale))}12%{opacity:.95;transform:translate(0,var(--projectile-y)) scale(var(--projectile-scale))}21%{opacity:1;transform:translate(calc(52vw - 170px),var(--projectile-y)) scale(var(--projectile-scale))}24%,41%{opacity:0;transform:translate(calc(52vw - 170px),var(--projectile-y)) scale(var(--projectile-scale))}44%{opacity:.95;transform:translate(calc(52vw - 170px),var(--projectile-y)) scale(var(--projectile-scale))}56%{opacity:1;transform:translate(0,var(--projectile-y)) scale(var(--projectile-scale))}59%,100%{opacity:0;transform:translate(0,var(--projectile-y)) scale(var(--projectile-scale))}}

@media(max-width:680px){
  .battle-effect-backdrop .cosmic-arena-battle{height:min(96dvh,900px)}
  .cosmic-arena-battle .arena-battle-stage{min-height:430px;padding-top:42px;padding-bottom:28px}
  .cosmic-arena-battle .arena-combatant{height:180px}
  .cosmic-arena-battle .arena-combatant.is-player>strong{bottom:14px;z-index:18}
  .cosmic-arena-battle .arena-battle-result{gap:5px;padding:9px 14px;font-size:.78rem}
  .cosmic-arena-battle>.game-btn{min-height:38px;margin:0 auto 12px;padding:6px 18px}
  .arena-black-hole{top:50%;width:88px}.arena-light-pillar{width:54%;height:48%}.pillar-player{left:23%;top:2%;bottom:auto}.pillar-opponent{right:23%;bottom:2%}
  .arena-energy-orb{top:48%}.orb-player{left:45%;top:29%}.orb-opponent{right:45%;top:68%}
  .player-wins .orb-opponent{animation-name:arena-orb-bottom-to-top-first}.player-wins .orb-player{animation-name:arena-orb-top-to-bottom-counter}.opponent-wins .orb-player{animation-name:arena-orb-top-to-bottom-first}.opponent-wins .orb-opponent{animation-name:arena-orb-bottom-to-top-counter}
  .flare-player{left:50%;top:23%}.flare-opponent{left:50%;right:auto;top:67%}
  .player-wins .shockwave-first,.opponent-wins .shockwave-counter{left:50%;top:23%}.player-wins .shockwave-counter,.opponent-wins .shockwave-first{left:50%;top:67%}
  .player-wins .is-opponent{animation-name:arena-opponent-first-mobile}.player-wins .is-player{animation-name:arena-player-counter-mobile}.opponent-wins .is-player{animation-name:arena-player-first-mobile}.opponent-wins .is-opponent{animation-name:arena-opponent-counter-mobile}
  .arena-boss-projectile{--mobile-x:0px;left:48%!important;top:29%!important}.arena-boss-projectile.projectile-2{--mobile-x:-28px}.arena-boss-projectile.projectile-3{--mobile-x:26px}.arena-boss-projectile.projectile-4{--mobile-x:-48px}.arena-boss-projectile.projectile-5{--mobile-x:45px}
  .player-wins .arena-boss-projectile{animation-name:arena-projectile-bottom-first!important}.opponent-wins .arena-boss-projectile{animation-name:arena-projectile-top-first!important}
}
@keyframes arena-orb-bottom-to-top-first{0%,9%,23%,100%{opacity:0;transform:translate(0,0) scale(.2)}12%{opacity:1;transform:translate(0,0) scale(1)}20%{opacity:1;transform:translate(0,-220px) scale(1.35)}}
@keyframes arena-orb-top-to-bottom-first{0%,9%,23%,100%{opacity:0;transform:translate(0,0) scale(.2)}12%{opacity:1;transform:translate(0,0) scale(1)}20%{opacity:1;transform:translate(0,220px) scale(1.35)}}
@keyframes arena-orb-bottom-to-top-counter{0%,41%,58%,100%{opacity:0;transform:translate(0,0) scale(.2)}44%{opacity:1;transform:translate(0,0) scale(1)}55%{opacity:1;transform:translate(0,-220px) scale(1.45)}}
@keyframes arena-orb-top-to-bottom-counter{0%,41%,58%,100%{opacity:0;transform:translate(0,0) scale(.2)}44%{opacity:1;transform:translate(0,0) scale(1)}55%{opacity:1;transform:translate(0,220px) scale(1.45)}}
@keyframes arena-projectile-bottom-first{0%,9%{opacity:0;transform:translate(var(--mobile-x),250px) scale(var(--projectile-scale))}12%{opacity:.95;transform:translate(var(--mobile-x),230px) scale(var(--projectile-scale))}21%{opacity:1;transform:translate(var(--mobile-x),0) scale(var(--projectile-scale))}24%,41%{opacity:0;transform:translate(var(--mobile-x),0) scale(var(--projectile-scale))}44%{opacity:.95;transform:translate(var(--mobile-x),0) scale(var(--projectile-scale))}56%{opacity:1;transform:translate(var(--mobile-x),250px) scale(var(--projectile-scale))}59%,100%{opacity:0;transform:translate(var(--mobile-x),250px) scale(var(--projectile-scale))}}
@keyframes arena-projectile-top-first{0%,9%{opacity:0;transform:translate(var(--mobile-x),0) scale(var(--projectile-scale))}12%{opacity:.95;transform:translate(var(--mobile-x),0) scale(var(--projectile-scale))}21%{opacity:1;transform:translate(var(--mobile-x),250px) scale(var(--projectile-scale))}24%,41%{opacity:0;transform:translate(var(--mobile-x),250px) scale(var(--projectile-scale))}44%{opacity:.95;transform:translate(var(--mobile-x),250px) scale(var(--projectile-scale))}56%{opacity:1;transform:translate(var(--mobile-x),0) scale(var(--projectile-scale))}59%,100%{opacity:0;transform:translate(var(--mobile-x),0) scale(var(--projectile-scale))}}
@keyframes arena-opponent-first-mobile{0%,8%,28%,100%{transform:translateY(0)}15%{transform:translateY(-28%) scale(1.06)}}
@keyframes arena-player-first-mobile{0%,8%,28%,100%{transform:translateY(0)}15%{transform:translateY(28%) scale(1.06)}}
@keyframes arena-player-counter-mobile{0%,38%,60%,100%{transform:translateY(0)}48%{transform:translateY(29%) scale(1.08)}}
@keyframes arena-opponent-counter-mobile{0%,38%,60%,100%{transform:translateY(0)}48%{transform:translateY(-29%) scale(1.08)}}

@media(prefers-reduced-motion:reduce){.arena-starfield,.arena-black-hole,.arena-light-pillar,.arena-orbit-particle,.arena-energy-orb,.arena-impact-burst,.arena-screen-flash,.arena-volumetric-mist,.arena-lens-flare,.arena-boss-projectile,.arena-shockwave{animation:none!important;display:none!important}}

/* Step 5: knowledge mission database */
.console-knowledge-tab{border-color:rgba(23,50,95,.32)!important}.console-knowledge-tab.active{background:linear-gradient(135deg,#d9f2ff,#9bd6ff)!important;box-shadow:0 5px #17325f!important}
.knowledge-console-page{--knowledge-cyan:#46e1c2;--knowledge-gold:#ffd66b;--knowledge-ink:#071725;display:grid;gap:18px}.knowledge-heading{padding-bottom:14px;border-bottom:1px solid rgba(70,225,194,.2)}.knowledge-heading>span{color:var(--knowledge-cyan)!important;background:rgba(70,225,194,.1)!important;border:1px solid rgba(70,225,194,.22);border-radius:999px;padding:7px 12px}.knowledge-assignment-list{display:grid;gap:13px}.knowledge-assignment-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;align-items:center;gap:15px;padding:16px;border:1px solid rgba(124,173,255,.18);border-radius:18px;background:linear-gradient(120deg,rgba(8,30,49,.96),rgba(11,48,61,.88));box-shadow:inset 0 1px rgba(255,255,255,.06),0 18px 36px rgba(0,0,0,.2)}.knowledge-assignment-card.is-completed{border-color:rgba(70,225,194,.28);background:linear-gradient(120deg,rgba(7,43,49,.96),rgba(11,65,58,.82))}.knowledge-card-sigil{width:56px;height:56px;display:grid;place-items:center;border-radius:17px;color:var(--knowledge-ink);font-size:27px;font-weight:900;background:linear-gradient(145deg,var(--knowledge-gold),#ff9f54);box-shadow:0 8px 22px rgba(255,177,78,.24)}.knowledge-card-copy{min-width:0}.knowledge-card-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:6px}.knowledge-card-meta span{font-size:11px;font-weight:800;color:#b9d9e8;border:1px solid rgba(185,217,232,.18);border-radius:999px;padding:3px 8px}.knowledge-card-copy h4{margin:0;color:#fff;font-size:18px}.knowledge-card-copy p{margin:6px 0 0;color:#a9bdca;font-size:13px}.knowledge-card-reward{text-align:center;color:var(--knowledge-gold)}.knowledge-card-reward strong{display:block;font-size:22px}.knowledge-card-reward span{font-size:11px}.knowledge-result-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:7px}.knowledge-result-line strong{color:var(--knowledge-cyan)}.knowledge-result-line code,.knowledge-response-row code{padding:4px 7px;border-radius:7px;color:#dffdf7;background:rgba(0,0,0,.28);font-size:11px;letter-spacing:.04em}.knowledge-empty{border-color:rgba(70,225,194,.2)!important}
.knowledge-quiz-topline{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.knowledge-quiz-topline>div{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#d6e7ef}.knowledge-quiz-topline span{font-size:12px;color:#8eaebd}.knowledge-quiz-topline strong{color:#fff}.knowledge-quiz-topline em{font-style:normal;color:var(--knowledge-cyan);font-size:12px}.knowledge-back-button{min-height:36px;padding:7px 12px;color:#dbeaf0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);border-radius:999px;cursor:pointer}.knowledge-progress-track{height:7px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}.knowledge-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--knowledge-cyan),var(--knowledge-gold));transition:width .25s ease}.knowledge-question-stage{position:relative;overflow:hidden;padding:clamp(20px,4vw,42px);border:1px solid rgba(70,225,194,.2);border-radius:24px;background:radial-gradient(circle at 90% 5%,rgba(70,225,194,.12),transparent 35%),linear-gradient(155deg,rgba(5,25,42,.98),rgba(6,44,54,.95));box-shadow:0 24px 55px rgba(0,0,0,.28)}.knowledge-question-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(70,225,194,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(70,225,194,.035) 1px,transparent 1px);background-size:32px 32px}.knowledge-question-number{position:absolute;right:25px;top:12px;color:rgba(70,225,194,.12);font-size:82px;font-weight:900;line-height:1}.knowledge-question-stage h3{position:relative;z-index:1;max-width:820px;margin:0 0 24px;color:#fff;font-size:clamp(20px,3vw,31px);line-height:1.45}.knowledge-option-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.knowledge-option-button{min-height:70px;display:flex;align-items:center;gap:13px;padding:13px 15px;text-align:left;color:#dcecf2;background:rgba(255,255,255,.055);border:1px solid rgba(185,217,232,.15);border-radius:15px;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.knowledge-option-button:hover{transform:translateY(-2px);border-color:rgba(70,225,194,.45);background:rgba(70,225,194,.09)}.knowledge-option-button b{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:10px;color:#9dc1d0;background:#102f42}.knowledge-option-button.is-selected{border-color:var(--knowledge-cyan);background:linear-gradient(135deg,rgba(70,225,194,.2),rgba(255,214,107,.08));box-shadow:0 0 0 2px rgba(70,225,194,.1)}.knowledge-option-button.is-selected b{color:var(--knowledge-ink);background:var(--knowledge-cyan)}.knowledge-quiz-actions{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px;margin-top:24px}
.knowledge-teacher-panel{display:grid;gap:16px}.knowledge-composer-panel,.knowledge-dashboard-panel{padding:20px;border-radius:18px}.knowledge-db-count{padding:7px 11px;color:#16675d;background:#dcfaf2;border:1px solid #8ce0cc;border-radius:999px;font-size:12px;font-weight:900}.knowledge-compose-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(170px,1fr) minmax(130px,.65fr) auto;gap:12px;align-items:end;margin-top:16px}.knowledge-assign-button{min-height:44px}.knowledge-question-preview{margin-top:15px;padding:15px;border:1px solid rgba(47,119,109,.17);border-radius:15px;background:rgba(255,255,255,.55)}.knowledge-preview-head{display:flex;justify-content:space-between;gap:12px;color:#315f59}.knowledge-preview-head span{font-size:12px;font-weight:900}.knowledge-question-preview ol{columns:2;column-gap:32px;margin:12px 0 0;padding-left:22px}.knowledge-question-preview li{break-inside:avoid;margin:0 0 7px;color:#604e47;font-size:12px;line-height:1.45}.knowledge-dashboard-grid{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.6fr);gap:18px}.knowledge-assignment-admin-list{display:grid;align-content:start;gap:9px}.knowledge-admin-title,.knowledge-report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.knowledge-admin-title span,.knowledge-report-head span{color:#2f776d;font-size:10px;font-weight:900;letter-spacing:.11em}.knowledge-admin-title h4,.knowledge-report-head h4{margin:2px 0 0}.knowledge-admin-title>strong{color:#2f776d;font-size:28px}.knowledge-admin-card{overflow:hidden;border:1px solid rgba(111,78,55,.13);border-radius:14px;background:rgba(255,255,255,.58)}.knowledge-admin-card.is-selected{border-color:rgba(47,119,109,.5);box-shadow:0 9px 24px rgba(47,119,109,.13)}.knowledge-admin-card.is-closed{opacity:.68}.knowledge-admin-main{width:100%;display:grid;gap:3px;padding:12px;text-align:left;color:#33231f;background:transparent;cursor:pointer}.knowledge-admin-main span,.knowledge-admin-main small{color:#7b625a;font-size:11px}.knowledge-admin-actions{display:flex;gap:7px;padding:0 10px 10px}.knowledge-admin-actions .game-btn{flex:1;min-height:32px;padding:5px 8px;font-size:11px}.knowledge-report-board{min-width:0;padding:17px;border:1px solid rgba(47,119,109,.16);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(229,244,239,.62))}.knowledge-report-head p{margin:4px 0 0;color:#7b625a;font-size:12px}.knowledge-report-head>strong{color:#2f776d;font-size:34px}.knowledge-rate-chart{display:grid;gap:7px;margin:17px 0}.knowledge-rate-row{display:grid;grid-template-columns:28px minmax(0,1fr) 42px;align-items:center;gap:8px;font-size:11px}.knowledge-rate-row>span{font-weight:900;color:#4d746e}.knowledge-rate-row>strong{text-align:right;color:#2f776d}.knowledge-rate-track{height:10px;overflow:hidden;border-radius:999px;background:rgba(47,119,109,.11)}.knowledge-rate-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f776d,#e8ad62);transition:width .3s ease}.knowledge-response-table{overflow:hidden;border:1px solid rgba(111,78,55,.12);border-radius:13px}.knowledge-response-row{display:grid;grid-template-columns:minmax(120px,1fr) 60px minmax(150px,1.1fr);gap:10px;align-items:center;padding:9px 11px;border-top:1px solid rgba(111,78,55,.09);font-size:12px}.knowledge-response-row:first-child{border-top:0}.knowledge-response-row.is-head{color:#6f4e37;background:rgba(111,78,55,.07);font-size:10px;font-weight:900;letter-spacing:.05em}.knowledge-response-row code{color:#315f59;background:rgba(47,119,109,.08)}.knowledge-no-response,.knowledge-report-empty{padding:30px;text-align:center;color:#7b625a}.knowledge-report-empty strong{display:block;color:#33231f;font-size:18px;margin-bottom:5px}
@media(max-width:980px){.knowledge-compose-grid{grid-template-columns:1fr 1fr}.knowledge-dashboard-grid{grid-template-columns:1fr}.knowledge-question-preview ol{columns:1}.knowledge-assignment-card{grid-template-columns:52px minmax(0,1fr) auto}.knowledge-assignment-card>.game-btn{grid-column:2/4}.knowledge-card-sigil{width:48px;height:48px}}
@media(max-width:620px){.knowledge-compose-grid,.knowledge-option-grid{grid-template-columns:1fr}.knowledge-assignment-card{grid-template-columns:44px minmax(0,1fr)}.knowledge-card-sigil{width:42px;height:42px;border-radius:13px;font-size:21px}.knowledge-card-reward{text-align:left}.knowledge-assignment-card>.game-btn{grid-column:1/-1}.knowledge-quiz-topline{grid-template-columns:1fr auto}.knowledge-quiz-topline>div{grid-column:1/-1;grid-row:1}.knowledge-back-button{grid-row:2}.knowledge-quiz-topline>em{grid-row:2;text-align:right}.knowledge-question-number{font-size:56px}.knowledge-response-row{grid-template-columns:1fr 48px}.knowledge-response-row code{grid-column:1/-1}.knowledge-response-row.is-head span:last-child{display:none}}

/* Step 5 upload and UI hygiene */
.student-game-console .console-tab-btn,.student-game-console .console-leaderboard-tab,.student-game-console .console-knowledge-tab{background:linear-gradient(135deg,#f5fbff,#dff1ff)!important;color:#17325f!important;border:2px solid rgba(23,50,95,.32)!important;border-radius:14px!important;box-shadow:0 4px rgba(23,50,95,.22)!important;text-shadow:none!important}
.student-game-console .console-tab-btn:hover,.student-game-console .console-leaderboard-tab:hover,.student-game-console .console-knowledge-tab:hover{background:linear-gradient(135deg,#ffffff,#cdeaff)!important;border-color:#17325f!important;transform:translateY(-1px)}
.student-game-console .console-tab-btn.active,.student-game-console .console-leaderboard-tab.active,.student-game-console .console-knowledge-tab.active{background:linear-gradient(135deg,#d9f2ff,#9bd6ff)!important;color:#17325f!important;border-color:#17325f!important;box-shadow:0 5px #17325f!important}
.knowledge-result-status{color:#a9bdca;font-size:12px;font-weight:900}
.knowledge-result-dots{display:inline-flex;align-items:center;gap:4px;min-width:0}
.knowledge-result-dots i{width:10px;height:10px;display:inline-block;border-radius:999px;border:1px solid rgba(23,50,95,.18);background:#d8e2ea}
.knowledge-result-dots i.is-correct{background:#2f776d;border-color:#2f776d}
.knowledge-result-dots i.is-wrong{background:#e8ad62;border-color:#d39245}
.knowledge-response-row .knowledge-result-dots{justify-content:flex-start}
.knowledge-upload-panel{display:grid;gap:16px;padding:20px;border-radius:18px}
.knowledge-db-count.is-upload{color:#17325f;background:#e6f7ff;border-color:#a8daf6}
.knowledge-upload-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:16px;align-items:start}
.knowledge-upload-form,.knowledge-upload-library{min-width:0;display:grid;gap:12px}
.knowledge-upload-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.42fr);gap:12px}
.knowledge-upload-textarea textarea{width:100%;min-height:156px;resize:vertical;line-height:1.5}
.knowledge-file-trigger{min-height:46px;display:flex;align-items:center;justify-content:center;padding:10px 14px;border:2px dashed rgba(23,50,95,.28);border-radius:14px;background:#f6fbff;color:#17325f;font-weight:950;cursor:pointer;text-align:center}
.knowledge-file-trigger input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.knowledge-file-trigger:hover{border-color:#17325f;background:#eaf7ff}
.knowledge-upload-actions{display:flex;gap:10px;flex-wrap:wrap}
.knowledge-upload-note{margin:0;color:#7b625a;font-size:12px;font-weight:850;line-height:1.5}
.knowledge-upload-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid rgba(47,119,109,.16);border-radius:15px;background:rgba(255,255,255,.64)}
.knowledge-upload-card-main{min-width:0;display:grid;gap:3px}
.knowledge-upload-card-main span{color:#2f776d;font-size:11px;font-weight:950}
.knowledge-upload-card-main strong{overflow:hidden;color:#33231f;text-overflow:ellipsis;white-space:nowrap}
.knowledge-upload-card-main small{overflow:hidden;color:#7b625a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.knowledge-upload-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,72px));gap:7px}
.knowledge-upload-card-actions .game-btn{min-height:32px;padding:5px 8px;font-size:11px}
.knowledge-upload-empty{padding:26px;border:1px dashed rgba(47,119,109,.24);border-radius:15px;background:rgba(255,255,255,.45);color:#7b625a;text-align:center}
.knowledge-upload-empty strong{display:block;color:#33231f;margin-bottom:5px}
.knowledge-upload-empty p{margin:0;font-size:12px}
@media(max-width:900px){.knowledge-upload-grid,.knowledge-upload-fields{grid-template-columns:1fr}.knowledge-upload-card{grid-template-columns:1fr}.knowledge-upload-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Step 5: knowledge answer battle and custom upload polish */
.knowledge-battle-stage{--knowledge-attack-distance:min(52vw,560px);position:relative;z-index:1;height:clamp(190px,24vw,280px);margin:-8px 0 24px;overflow:hidden;isolation:isolate;border:3px solid rgba(70,225,194,.36);border-radius:22px;background:radial-gradient(circle at 78% 35%,rgba(255,214,107,.18),transparent 26%),radial-gradient(circle at 20% 24%,rgba(70,225,194,.16),transparent 30%),linear-gradient(180deg,rgba(12,48,70,.96),rgba(7,23,37,.98));box-shadow:inset 0 0 0 2px rgba(255,255,255,.05),0 16px 34px rgba(0,0,0,.22)}
.knowledge-battle-stage:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(180deg,rgba(0,0,0,.8),rgba(0,0,0,.22));pointer-events:none}
.knowledge-battle-ground{position:absolute;left:7%;right:7%;bottom:24px;height:18px;border-radius:999px;background:linear-gradient(90deg,rgba(70,225,194,.3),rgba(255,214,107,.28),rgba(70,225,194,.18));box-shadow:0 14px 24px rgba(0,0,0,.24)}
.knowledge-battle-ground:after{content:"";position:absolute;left:4%;right:4%;top:6px;height:3px;border-radius:999px;background:rgba(255,255,255,.36)}
.knowledge-battle-pet{position:absolute;left:9%;bottom:42px;z-index:3;width:clamp(84px,12vw,132px);height:clamp(92px,13vw,146px);display:grid;place-items:end center;transform-origin:center bottom}
.knowledge-battle-pet img{width:100%;height:100%;object-fit:contain;transform-origin:center bottom;filter:drop-shadow(0 12px 16px rgba(0,0,0,.36))}
.knowledge-battle-pet.has-legendary-pet{width:clamp(108px,15vw,172px);height:clamp(116px,16vw,190px);bottom:34px}
.knowledge-battle-pet.no-pet img{opacity:.92;filter:drop-shadow(0 10px 14px rgba(0,0,0,.32)) saturate(.9)}
.knowledge-training-dummy{position:absolute;right:10%;bottom:18px;z-index:2;width:clamp(116px,16vw,184px);height:clamp(116px,16vw,184px);object-fit:contain;transform-origin:center 86%;filter:drop-shadow(0 16px 18px rgba(0,0,0,.34))}
.knowledge-hit-particles{position:absolute;left:72%;top:48%;z-index:4;width:1px;height:1px;pointer-events:none}
.knowledge-hit-particles i{position:absolute;left:0;top:0;width:12px;height:12px;border-radius:999px;opacity:0;background:radial-gradient(circle,#fff 0 20%,#46e1c2 21% 58%,rgba(70,225,194,0) 60%);box-shadow:0 0 14px rgba(70,225,194,.95)}
.knowledge-battle-stage.is-miss .knowledge-hit-particles i{background:radial-gradient(circle,#fff 0 20%,#ff8a62 21% 58%,rgba(255,138,98,0) 60%);box-shadow:0 0 14px rgba(255,138,98,.9)}
.knowledge-battle-stage.is-attacking .knowledge-battle-pet{animation:knowledge-pet-dash 1.04s cubic-bezier(.2,.86,.26,1) both}
.knowledge-battle-stage.is-attacking .knowledge-battle-pet img{animation:knowledge-pet-strike 1.04s ease both}
.knowledge-battle-stage.is-attacking .knowledge-training-dummy{animation:knowledge-dummy-hit 1.04s ease both}
.knowledge-battle-stage.is-attacking .knowledge-hit-particles i{animation:knowledge-spark-burst .72s cubic-bezier(.12,.82,.28,1) both;animation-delay:var(--spark-delay)}
@keyframes knowledge-pet-dash{0%,100%{transform:translateX(0) translateY(0) scale(1)}30%{transform:translateX(calc(var(--knowledge-attack-distance) * .72)) translateY(-2px) scale(1.04)}43%{transform:translateX(var(--knowledge-attack-distance)) translateY(0) scale(1.08)}57%{transform:translateX(calc(var(--knowledge-attack-distance) * .96)) translateY(4px) scale(.96)}72%{transform:translateX(calc(var(--knowledge-attack-distance) * .72)) translateY(-1px) scale(1.02)}}
@keyframes knowledge-pet-strike{0%,32%,100%{transform:rotate(0) scale(1)}43%{transform:rotate(-8deg) scale(1.08)}53%{transform:rotate(10deg) scale(.98)}64%{transform:rotate(-3deg) scale(1.02)}}
@keyframes knowledge-dummy-hit{0%,38%,100%{transform:translateX(0) rotate(0) scale(1)}48%{transform:translateX(12px) rotate(5deg) scale(1.02);filter:drop-shadow(0 16px 18px rgba(0,0,0,.34)) brightness(1.2)}58%{transform:translateX(-7px) rotate(-3deg) scale(.99)}68%{transform:translateX(3px) rotate(1.5deg) scale(1)}}
@keyframes knowledge-spark-burst{0%,44%{opacity:0;transform:translate(0,0) scale(.2)}52%{opacity:1;transform:translate(0,0) scale(1.12)}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) scale(.16)}}
.knowledge-upload-panel{position:relative;overflow:hidden;display:grid;gap:18px;padding:22px!important;border:4px solid #17325f!important;border-radius:22px!important;background:linear-gradient(135deg,#fffdf2,#eaf7ff 64%,#fff5df)!important;box-shadow:0 10px #17325f,0 24px 46px rgba(23,50,95,.22)!important}
.knowledge-upload-panel:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 18px 18px,rgba(255,255,255,.56) 0 2px,transparent 3px),linear-gradient(135deg,rgba(255,207,79,.16) 0 10px,transparent 10px 22px);background-size:72px 58px,44px 44px;opacity:.46;pointer-events:none}
.knowledge-upload-panel>*{position:relative;z-index:1}
.knowledge-upload-panel .pet-panel-head{align-items:center;padding-bottom:14px;border-bottom:3px solid rgba(23,50,95,.16)}
.knowledge-upload-head-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap}
.knowledge-template-button{min-height:42px;padding:8px 14px;font-size:13px;white-space:nowrap}
.knowledge-db-count.is-upload{min-height:42px;display:inline-grid;place-items:center;padding:8px 14px;color:#17325f;background:linear-gradient(135deg,#e7fbff,#c4efff);border:3px solid #17325f;border-radius:999px;box-shadow:0 4px #17325f;font-size:14px;font-weight:950}
.knowledge-upload-grid{gap:20px}
.knowledge-upload-form,.knowledge-upload-library{gap:14px;padding:14px;border:3px solid rgba(23,50,95,.18);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(234,247,255,.8));box-shadow:inset 0 2px rgba(255,255,255,.82)}
.knowledge-upload-fields{gap:14px}
.knowledge-upload-panel .mission-field{gap:8px}
.knowledge-upload-panel .mission-field span{color:#17325f;font-weight:950;letter-spacing:0}
.knowledge-upload-panel .mission-field input,.knowledge-upload-panel .mission-field textarea{width:100%;border:3px solid #17325f!important;border-radius:16px!important;background:#fffdf7!important;color:#33231f!important;box-shadow:inset 0 -3px rgba(23,50,95,.08)!important;font-weight:850}
.knowledge-upload-panel .mission-field input{min-height:50px;padding:11px 14px!important}
.knowledge-upload-textarea textarea{min-height:184px;padding:14px!important;line-height:1.55}
.knowledge-file-trigger{min-height:62px;padding:12px 16px;border:4px dashed #17325f;border-radius:18px;background:linear-gradient(135deg,#f5fbff,#dff1ff);box-shadow:inset 0 -4px rgba(23,50,95,.12);font-size:16px;letter-spacing:0}
.knowledge-file-trigger:hover{background:linear-gradient(135deg,#fff,#cdeaff);border-color:#17325f;transform:translateY(-1px)}
.knowledge-upload-actions{gap:12px}
.knowledge-upload-actions .game-btn{min-height:48px;padding:10px 18px}
.knowledge-upload-note{padding:11px 13px;border:2px solid rgba(23,50,95,.2);border-radius:14px;background:rgba(255,255,255,.68);color:#6f4e37;font-size:13px}
.knowledge-upload-card{padding:15px;border:3px solid #17325f;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(235,248,255,.92));box-shadow:0 6px #17325f}
.knowledge-upload-card-main{gap:5px}
.knowledge-upload-card-main span{color:#2f776d;font-size:12px}
.knowledge-upload-card-main strong{color:#17325f;font-size:16px}
.knowledge-upload-card-main small{color:#6f4e37;font-weight:800}
.knowledge-upload-card-actions{grid-template-columns:repeat(2,minmax(0,82px));gap:9px}
.knowledge-upload-card-actions .game-btn{min-height:36px}
.knowledge-upload-empty{padding:30px;border:3px dashed #17325f;border-radius:18px;background:rgba(255,255,255,.72);color:#6f4e37}
.knowledge-upload-empty strong{color:#17325f}
@media(max-width:900px){.knowledge-upload-head-actions{justify-content:flex-start}.knowledge-template-button,.knowledge-db-count.is-upload{flex:1 1 180px}}
@media(max-width:620px){.knowledge-battle-stage{--knowledge-attack-distance:min(46vw,270px);height:182px;margin-top:0}.knowledge-battle-pet{left:5%;bottom:34px;width:78px;height:88px}.knowledge-battle-pet.has-legendary-pet{width:104px;height:118px;bottom:28px}.knowledge-training-dummy{right:4%;bottom:16px;width:118px;height:118px}.knowledge-hit-particles{left:74%;top:49%}.knowledge-question-stage{padding:18px}.knowledge-template-button,.knowledge-db-count.is-upload{width:100%}.knowledge-upload-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.group-board-panel{max-height:calc(100vh - 230px)!important;max-height:calc(100dvh - 230px)!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.group-card-grid{min-height:0}.group-members.group-drop-zone{max-height:min(42vh,430px)!important;max-height:min(42dvh,430px)!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.group-drop-zone{scroll-margin-block:120px}@media(max-width:1100px){.group-board-panel{max-height:none!important;overflow:visible!important}.group-card-grid{max-height:calc(100vh - 220px)!important;max-height:calc(100dvh - 220px)!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}}
