/* Additive classroom V2 UI. Existing score effects and controls remain intact. */
#customAlertOverlay{z-index:26000!important}
#hallGrid .hall-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:20px;max-width:1960px;margin:auto}
#hallGrid .hall-card{padding:0;min-width:0;overflow:hidden;text-align:left;border:1px solid #e0e8ed;border-radius:18px}
#hallGrid .hall-card .avatar-large{display:block;width:100%!important;height:auto!important;aspect-ratio:1;object-fit:contain;border:0;border-radius:0;box-shadow:none;margin:0;animation:none!important;background:#f3f7fa}
#hallGrid .hall-card-info{padding:14px 16px}
#hallGrid .hall-info-row{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0}
#hallGrid .hall-student-no{color:#8499ac;font-size:12px;white-space:nowrap}
#hallGrid .hall-energy{font-size:13px;color:#8499ac;margin-top:7px}
#hallGrid .hall-info-row .level-tag{min-width:0;overflow-wrap:anywhere}
#hallGrid .hall-info-row .growth-coins{flex-shrink:0;background:none;padding:0;margin:0;font-weight:700;color:#bf810e}
#hallGrid .coin-label{display:none}
.coin-disabled{font-size:12px;font-weight:400;color:#7b8d9d}
#termConfirmationText{display:block;color:#c62828;font-weight:800;line-height:1.7;overflow-wrap:anywhere}
#growthForm label.field:has(input[name=confirmation]){font-size:inherit;font-weight:400;line-height:1.65}
.coin-settings-link{background:#f2f8fc;border:1px dashed #89b7d4;border-radius:6px;padding:4px 6px;cursor:pointer;color:#39789e}
.coin-settings-link:hover,.coin-settings-link:focus-visible{border-color:#208fd0;background:#e4f3ff;outline:2px solid #a7d6ef}
@keyframes coin-setting-pulse{50%{box-shadow:0 0 0 5px #3498db40;border-color:#168bd1}}
.growth .coin-setting-highlight{animation:coin-setting-pulse .85s ease-in-out 3;outline:2px solid #3498db;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.growth .coin-setting-highlight{animation:none}}
.hall-size-controls button{border:0;border-radius:8px;background:white;color:#36516b;padding:9px 12px;cursor:pointer}
.hall-size-controls button[aria-pressed=true]{background:#e8f4ff;color:#168dd5;font-weight:700}
#hallGrid.hall-standard .hall-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
#hallGrid .hall-card .name{font-size:19px;margin:4px 0}
#hallGrid .hall-card .level-tag{margin:4px 0;font-size:13px}
#hallGrid .hall-card .progress-container{width:100%;margin:8px 0 0;height:6px;box-shadow:none;background:#e8f0f4}
#hallGrid .hall-card .progress-bar{background:#25c698}
#scoreModal .score-modal-content{max-width:980px!important;width:min(980px,96vw)}
#scoreModal .score-modal-body{height:580px}
#scoreModalLeft{box-sizing:border-box;flex-shrink:0;padding:16px;width:340px;align-items:stretch}
#scoreModalLeft .growth-pet{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:1;object-fit:contain;border:0;border-radius:12px;box-shadow:none;margin:0 0 12px;background:#f3f7fa}
#scoreModalLeft .score-student-row{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;margin:0 0 10px}
#scoreModalLeft .score-student-row .name{font-size:20px;font-weight:bold;color:#2c3e50;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
#scoreModalLeft .score-student-no{color:#8499ac;font-size:13px;white-space:nowrap;flex-shrink:0}
#scoreModalRight{min-width:0}
#scoreModalRight .rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#scoreModalRight .rule-tag{min-width:0;padding:12px 10px;min-height:48px;box-sizing:border-box}
#scoreModalRight .rule-tag.add{background:#effaf4;border-color:#c6ecd6;color:#21844d}
#scoreModalRight .rule-tag.sub{background:#fff4f2;border-color:#f5cec8;color:#c55545}
#scoreModalLeft .growth-coins{background:none;padding:4px 0;margin:8px 0}
.growth-coins{font-size:13px;color:#966108;background:#fff5d9;border-radius:8px;padding:6px 10px;margin:8px 0}
.growth-delta{font-weight:800;margin-left:8px;color:#17744c}
.growth{color:#2c3e50;max-width:1500px;margin:auto}
.growth h2{margin:0;font-size:26px}.growth h3{margin:0 0 14px}.growth p{line-height:1.65}.growth small,.growth .muted{color:#738390}
.growth .bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 20px}
.growth .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.growth button{padding:10px 16px;border-radius:9px;border:1px solid #d4dfe5;background:#fff;color:#2c3e50;cursor:pointer;font:inherit;font-size:14px;min-height:42px}
.growth button.primary{background:#3498db;border-color:#3498db;color:white}.growth button.success{background:#20bd77;border-color:#20bd77;color:white}.growth button.danger{color:#c84034;border-color:#e4b9b5}
.growth button:disabled{opacity:.45;cursor:not-allowed}.growth button:focus-visible,.growth input:focus-visible,.growth select:focus-visible{outline:3px solid #7cc4f6;outline-offset:2px}
.growth .card{background:white;padding:24px;border:1px solid #e1e8ec;border-radius:15px;box-shadow:0 5px 18px #263d5010;margin-bottom:18px}
.growth .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.growth .grid .card{margin:0}
.growth .note{padding:14px 18px;background:#eaf5fd;border-left:4px solid #3498db;border-radius:8px;line-height:1.7;margin:14px 0}
.growth .warn{background:#fff7e6;border-left-color:#efa525}.growth .tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.growth .tabs .selected{background:#e8f4ff;border:2px solid #3498db;font-weight:700}
.growth label.field{display:block;margin:0 0 18px;font-weight:600}.growth .field input:not([type=checkbox]):not([type=radio]),.growth .field select,.growth .field textarea{display:block;width:100%;margin-top:8px;padding:11px;border:1px solid #ccd7df;border-radius:8px;font:inherit;box-sizing:border-box}
.growth input[type=checkbox],.growth input[type=radio]{width:18px;height:18px;accent-color:#238bcf;vertical-align:middle;margin-right:7px}
.growth .choices{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 18px}.growth .choice{flex:1;min-width:160px;padding:14px;border:2px solid #dbe3e9;border-radius:10px;font-weight:600;cursor:pointer}.growth .choice:has(input:checked){border-color:#268fcf;background:#e8f4ff;box-shadow:inset 0 0 0 1px #268fcf}
.growth input:disabled{background:#edf0f2;color:#8c989e}.growth .summary{padding:16px;background:#f4f7f9;border-radius:10px;line-height:1.8;margin:16px 0}
.growth .table-wrap{overflow:auto}.growth table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:14px}.growth th,.growth td{padding:13px;text-align:left;border-bottom:1px solid #e7ecef}.growth th{background:#f3f7fa}.growth .badge{display:inline-block;padding:5px 10px;border-radius:8px;background:#edf2f6;font-size:13px}.growth .badge.ok{background:#e5f8ed;color:#188452}
.growth .student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:12px}.growth .student-card{text-align:left;padding:16px;border:2px solid #dfe7eb;min-height:90px}.growth .student-card strong{display:block;margin-bottom:10px}.growth .student-card.submitted,.growth .student-card.pass,.growth .student-card.excellent{background:#ecfaf2;border-color:#55bc87}.growth .student-card.revise{background:#fff7e9;border-color:#e5b157}
.growth-modal-backdrop{position:fixed;inset:0;background:#20334480;z-index:15000;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.growth-modal{width:min(800px,100%);max-height:90vh;display:flex;flex-direction:column;background:white;border-radius:18px;box-shadow:0 18px 70px #0d243540;overflow:hidden}
.growth-modal>.bar{padding:20px 24px;border-bottom:1px solid #e5ebef;margin:0}.growth-modal .body{padding:24px;overflow:auto}.growth-modal .footer{position:sticky;bottom:-24px;background:#fff;padding:18px 0 0;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #edf0f3}
.growth .good-icon{font-size:45px;line-height:1.5}.growth .price{font-weight:800;font-size:23px;color:#b4790d}.growth .empty{text-align:center;padding:45px 20px;color:#788996}.growth .split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.growth video{width:100%;max-height:360px;background:#102230;border-radius:10px}.growth .step{display:flex;gap:16px;margin:20px 0}.growth .step>b{background:#e6f3ff;color:#238ccc;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;flex-shrink:0}
@media(min-width:2000px){#hallGrid .hall-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:700px){.growth .split{grid-template-columns:1fr}.growth-modal-backdrop{padding:10px}.growth-modal>.bar,.growth-modal .body{padding:16px}.growth h2{font-size:22px}.growth .card{padding:17px}#hallGrid .hall-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#hallGrid .hall-card{padding:8px}#hallGrid .hall-card .name{font-size:16px}}
@media(max-width:380px){#hallGrid .hall-grid{grid-template-columns:1fr}}

@media(max-width:700px){#hallGrid .hall-card{padding:0!important}#hallGrid .hall-card-info{padding:10px}#hallGrid .hall-info-row{flex-wrap:wrap;gap:3px}#hallGrid.hall-standard .hall-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
