.class-camp{width:min(1080px,94vw);margin:auto;text-align:center;padding:42px 0}.class-heading{font:700 clamp(48px,6vw,78px)/1.02 Georgia,serif;color:#fff1c6;text-shadow:0 4px 24px #02141e;margin:0 0 38px}.class-create{display:grid;grid-template-columns:minmax(200px,380px) auto 70px;align-items:center;justify-content:center;gap:24px;max-width:850px;margin:40px auto;padding:22px 32px;border-block:1px solid #d7cba32d;background:linear-gradient(90deg,transparent,#0a262dcc,transparent)}.class-create input{font:600 30px Georgia,serif;color:#fff0ca;background:#071b2277;border:0;border-bottom:1px solid #b9c8a57d;border-radius:0;padding:16px 8px;min-width:0;text-align:center}.class-create input::placeholder{color:#d2dbc4a8}.class-create-go{width:64px;height:64px;font-size:36px;padding:0!important;border-radius:50%!important}.class-round-count{display:grid;grid-template-columns:44px 32px 44px;align-items:center;gap:7px;justify-content:center}.class-round-count strong{font:600 32px Georgia,serif;color:#f7e2aa}.class-round-count small{grid-column:1/-1;font-size:13px;letter-spacing:.12em;color:#c2cdb6}.class-count-button{width:44px;height:44px;padding:0;border:0;background:transparent;color:#d9dfc9;font-size:28px;cursor:pointer}.class-count-button:disabled{opacity:.25}.class-cards{display:flex;flex-wrap:wrap;gap:28px;justify-content:center}.class-card{position:relative;min-width:280px;width:320px;padding:26px 24px 22px;border:1px solid #d6d3a42d;border-radius:22px;background:radial-gradient(ellipse at 50% 0,#183a4199,#071c25df 75%);box-shadow:0 22px 60px #020e2466}.class-card h2{margin:0 0 22px;font:600 40px Georgia,serif;color:#fff0c6}.class-mini-score{display:flex;gap:22px;justify-content:center}.class-mini-team{position:relative;display:grid;grid-template-columns:54px 28px;align-items:center;padding-bottom:10px}.class-mini-team img{width:54px;height:58px;object-fit:contain}.class-mini-team strong{font:600 30px Georgia,serif;color:#ecf4dc}.class-mini-beam{position:absolute;bottom:0;left:0;right:0;height:3px;background:#1a3949}.class-mini-beam:after{content:'';position:absolute;left:0;top:0;width:calc(var(--series-fill)*100%);height:100%;background:#79c5ff;box-shadow:0 0 9px #64aaff}.team-b .class-mini-beam:after{background:#ffad76;box-shadow:0 0 9px #ff6748}.class-gems{display:flex;justify-content:center;gap:8px;margin:21px 0}.class-gems i{width:8px;height:8px;transform:rotate(45deg);border:1px solid #d8d9b96b}.class-gems .filled{background:#d6c487;box-shadow:0 0 8px #d5d6a455}.class-continue{display:flex!important;align-items:center;justify-content:center;gap:25px;width:100%;font-size:18px!important}.class-continue b{font-size:26px}.class-save-state{position:absolute;right:16px;top:16px;color:#a6c7ac;font-size:14px}.class-tools{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:30px}.class-add,.class-back{background:#09202980;border:1px solid #c9d4bc3b;color:#dce7d0;border-radius:50%;width:48px;height:48px;font-size:28px;cursor:pointer}.class-back{font-size:22px}.class-error{grid-column:1/-1;color:#f1d5b4;font-size:16px}.class-camp button:focus-visible,.class-camp input:focus-visible{outline:2px solid #f1dfa4;outline-offset:5px}.class-camp[hidden]{display:none}.class-card{animation:class-rise .35s ease-out both}@keyframes class-rise{from{opacity:.9;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:780px){.class-create{grid-template-columns:minmax(170px,1fr) auto;gap:20px;padding:20px 10px}.class-create-go{grid-column:1/-1;justify-self:center}.class-heading{font-size:48px}.class-create input{font-size:26px}.class-camp{padding:32px 0}}@media(prefers-reduced-motion:reduce){.class-card{animation:none}}

/* The class standings are a full scene, with one centered route onward. */
#hub[data-screen="camp"][data-class-duel="true"] main{max-width:none;padding:0}
#hub[data-screen="camp"][data-class-duel="true"] .camp-dashboard{min-height:100svh;height:100svh;padding:0;animation:none}
#hub[data-class-duel="true"] .class-camp{position:relative;width:100%;height:100svh;min-height:500px;padding:0;margin:0;isolation:isolate;overflow:hidden}
.class-battle-host{position:absolute;inset:0;z-index:0;pointer-events:none}
.class-picker{position:absolute;left:250px;right:110px;top:24px;z-index:3;display:flex;align-items:center;justify-content:center;gap:10px;padding:4px 0}
.class-picker-scroll{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%;overflow-x:auto;padding:4px 8px;scrollbar-width:thin;scroll-behavior:smooth}
.class-pick{position:relative;white-space:normal;overflow-wrap:anywhere;flex:none;max-width:min(100%,480px);min-width:66px;min-height:48px;padding:9px 22px;border:1px solid #d9e1c426;border-radius:24px;background:#041622a8;backdrop-filter:blur(12px);color:#c7d7d3;font:600 22px Georgia,serif}
.class-pick[aria-pressed="true"]{border-color:#e9dfb98a;color:#fff0c5;box-shadow:inset 0 0 20px #ded4a713,0 0 25px #0004}
.class-picker .class-add{flex:none;background:#051a28aa;border-color:#d2dfcb45}
.class-duel-actions{position:absolute;z-index:3;left:50%;bottom:22px;transform:translateX(-50%);width:clamp(230px,27vw,350px);display:flex;flex-direction:column;align-items:center;gap:10px}
.class-duel-actions .class-continue{width:100%;margin:0;min-height:58px;border-radius:30px;background:linear-gradient(120deg,#235044e8,#102f2ce8);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 3px #193e3488,0 8px 36px #010d1b99;color:#fff0c5;font-size:21px!important}
.class-duel-actions .class-tools{margin:0;position:relative;width:100%;height:30px;gap:18px}
.class-duel-actions .class-back{height:30px;width:30px;font-size:19px;background:none;border:0;opacity:.6}
.class-duel-actions .class-manage{font-size:17px}
.class-duel-actions .class-save-state{position:static;color:#b9d4c3;font-size:13px}
#hub[data-class-duel="true"] .camp-world{opacity:.38}
@media(max-height:620px){.class-picker{top:10px}.class-pick{min-height:40px;font-size:18px;padding:7px 18px}.class-picker .class-add{height:40px;width:40px}.class-duel-actions{bottom:8px;gap:2px}.class-duel-actions .class-continue{min-height:46px;font-size:18px!important}}
@media(max-width:1100px){.class-picker{left:100px;right:100px}}
@media(max-width:600px){.class-picker{top:15px;left:84px;right:70px}.class-pick{padding:7px 18px;font-size:20px}.class-duel-actions{width:min(290px,78vw);bottom:22px}}

/* Safe recovery stays separate from the word-import journey. */
.class-recovery-actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin:24px auto 0;max-width:640px}.class-recovery-actions button{min-height:52px;padding:12px 18px}.class-recovery-actions>.primary{min-width:64px;font-size:25px}.class-recovery-note{max-width:520px;margin:18px auto 0;color:#d5dccd;font-size:16px;text-align:center;line-height:1.5}.class-recovery-note:empty{display:none}

/* Prepared sheet ready to play: checked against the printed copies, started from the class page. */
.class-duel-actions .class-ready{width:min(560px,86vw);display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 12px 10px 18px;border-radius:18px;background:linear-gradient(120deg,#102a33e8,#0b1f27e8);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 2px #d9c27a55,0 8px 30px #010d1b99;text-align:left}
.class-ready-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.class-ready-text small{font:700 11px/1.1 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#d9c27a}
.class-ready-text strong{font:700 18px/1.15 Georgia,serif;color:#fff1c6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.class-ready-text span{font:400 13px/1.2 system-ui,sans-serif;color:#b9d4c3}
.class-ready button{min-height:44px;padding:0 16px;border-radius:22px;border:1px solid #d9c27a66;background:#0e2a2a;color:#f3ead0;font:600 15px/1 system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.class-ready .class-ready-play{background:linear-gradient(120deg,#e7cf8c,#c7a95b);color:#1a1405;border-color:transparent}
@media(max-width:700px){.class-duel-actions .class-ready{grid-template-columns:1fr 1fr}.class-ready-text{grid-column:1/-1}}

@media(max-height:820px){.class-duel-actions{bottom:10px;gap:6px}.class-duel-actions .class-ready{padding:5px 8px 5px 14px;gap:8px}.class-ready-text span{display:none}.class-ready-text small{font-size:10px}.class-ready-text strong{font-size:16px}.class-ready button{min-height:36px;padding:0 12px;font-size:14px}.class-duel-actions .class-continue{min-height:48px;font-size:19px!important}}
.class-file-open{display:block;margin:18px auto 0;font-size:16px}

/* Optional local team lists. Native modal keeps focus inside the teacher flow. */
.class-players-open{border:1px solid #d9c27a66;border-radius:24px;background:#0b242ddd;color:#f1e5bf;min-height:44px;padding:8px 20px;font:600 15px system-ui;cursor:pointer}
.class-duel-actions .class-ready{grid-template-columns:1fr auto auto auto;width:min(650px,90vw)}
.player-dialog{box-sizing:border-box;width:min(1000px,96vw);max-height:92svh;overflow:auto;border:1px solid #d9c27a88;border-radius:22px;padding:24px;background:linear-gradient(135deg,#102d39,#091d26);color:#eff0dc;box-shadow:0 28px 120px #000b;font:16px/1.45 system-ui,sans-serif}
.player-dialog::backdrop{background:#010c18bf;backdrop-filter:blur(6px)}
.player-dialog h2{margin:0 0 8px;font:600 clamp(25px,3vw,36px)/1.2 Georgia,serif;color:#fff1c6}.player-dialog h3{margin:0 0 8px;color:#fff1c6;font-size:21px}.player-note{font-size:14px;color:#c5d8d5;margin:6px 0 14px}.player-teams{display:grid;grid-template-columns:1fr 1fr;gap:22px}.player-team{min-width:0;border-top:2px solid #7abfff;padding:14px 0}.player-team[data-team="B"]{border-color:#f9a17f}.player-row{display:flex;gap:6px;align-items:center;border-bottom:1px solid #dce5ca22;padding:4px 0}.player-row label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1;min-width:0;min-height:44px;cursor:pointer}.player-row label span{overflow-wrap:anywhere}.player-row small{font-size:12px}.player-row input{width:22px;height:22px;accent-color:#d7c27d;flex-shrink:0}.player-row[data-present="false"] label{color:#9caeb3}.player-row[data-present="false"] label span{text-decoration:line-through}.player-uses{font-size:13px;white-space:nowrap;color:#c6d6d6}.player-edit{min-width:44px;min-height:44px;border:0;background:transparent;color:#f3e5b5;font-size:22px;cursor:pointer}.player-add{margin:14px 0}.player-add summary{cursor:pointer;min-height:44px;align-content:center}.player-add textarea{box-sizing:border-box;display:block;width:100%;padding:10px;background:#061a22;color:#fff4cf;border:1px solid #c8d4c366;border-radius:8px;font:17px system-ui}.player-dialog button{min-height:44px;cursor:pointer}.player-dialog .quiet{border:1px solid #b2c6be66;border-radius:12px;padding:9px 15px;background:#163744;color:#f1edcf;font:600 15px/1.3 system-ui}.player-dialog .primary{border:1px solid #e8d49a;border-radius:12px;padding:10px 20px;background:#e5cd88;color:#13262d;font:700 16px/1.3 system-ui}.player-dialog button:disabled{opacity:.45;cursor:default}.player-dialog :focus-visible{outline:3px solid #f4d883;outline-offset:3px}.player-settings{display:flex;align-items:center;flex-wrap:wrap;gap:12px;border-block:1px solid #d5d5ab33;padding:14px 0}.player-settings p{flex-basis:100%;margin:0}.player-dialog select{min-height:44px;max-width:100%;padding:8px;background:#0b2532;color:#fff0c5;border:1px solid #c4d4b977;border-radius:8px;font:16px system-ui}.player-preview{padding:18px 0}.player-group{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0}.player-group strong{min-width:100px}.player-group>span{padding:8px 12px;background:#ffffff0d;border-radius:8px}.player-group small{color:#ddcfb4}.player-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:14px;border-top:1px solid #d5d5ab33}.player-error{color:#ffd5ac;font-weight:600}.player-error:empty{display:none}
@media(max-width:700px){.class-duel-actions .class-ready{grid-template-columns:1fr 1fr 1fr}.class-ready-view{grid-column:auto}.player-teams{grid-template-columns:1fr}.player-dialog{padding:18px}.player-row{gap:3px}.player-edit{min-width:44px}.player-group select{width:100%}.player-actions>button{flex:1 1 180px}}
.player-dialog[open]{display:flex;flex-direction:column;overflow:hidden}.player-dialog>h2,.player-dialog>.player-note,.player-actions,.player-error{flex:none}.player-body{overflow:auto;min-height:0;padding-right:5px}.player-preview{display:grid;grid-template-columns:1fr 1fr;gap:16px}.player-preview>h3{grid-column:1/-1}.player-group{flex-direction:column;align-items:stretch;margin:0}.player-group select{width:100%}.player-actions{margin-top:8px}.player-error{margin:6px 0}.player-add>.quiet{margin-top:8px}
@media(max-width:700px){.player-preview{grid-template-columns:1fr}.player-dialog>.player-note{font-size:12px;line-height:1.3}.player-actions{gap:6px}.player-actions>button{flex-basis:140px}}
