.qpc-setup,.qpc-dashboard{color:#493657;font-family:'NanumSquareRound',sans-serif;max-width:1160px;width:100%;margin:0 auto;box-sizing:border-box}
.qpc-panel{background:#fffdf5;border:3px solid #fff;border-radius:25px;box-shadow:0 4px 0 #dbcae6,0 9px 24px #66447d14;padding:22px;box-sizing:border-box}
.qpc-heading h2,.qpc-dash-heading h2{font-family:'Jua',sans-serif;font-size:32px;color:#685098;margin:6px 0 10px;font-weight:400;line-height:1.2}
.qpc-heading p,.qpc-dash-heading p{font-size:14px;line-height:1.6;margin:0;color:#786687}
.qpc-eyebrow{font-size:12px;font-weight:800;color:#a277ac;letter-spacing:.025em}
.qpc-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;margin-top:24px}
.qpc-wide{grid-column:1/-1}
.qpc-field{display:flex;flex-direction:column;gap:8px;color:#5d486a;font-weight:800;font-size:15px;min-width:0}
.qpc-form input:not([type=radio]),.qpc-form select{width:100%;min-height:44px;border:2px solid #decfec;border-radius:12px;background:#fff;padding:10px 13px;font-family:inherit;font-size:15px;color:#4a3559;box-sizing:border-box}
.qpc-form input:focus,.qpc-form select:focus{outline:3px solid #c2ebfc;outline-offset:1px;border-color:#70bedf}
.qpc-field small{font-size:12px;line-height:1.5;color:#8b7a93;font-weight:400}
.qpc-delivery{grid-column:1/-1;border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}
.qpc-delivery legend,.qpc-team-assignment legend{margin-bottom:9px;font-weight:800;font-size:15px;color:#5d486a}
.qpc-delivery label{display:grid;grid-template-columns:22px 1fr;gap:6px 7px;background:#f4ebfb;border:2px solid #e4d5ef;border-radius:16px;padding:15px;cursor:pointer}
.qpc-delivery label:has(input:checked){border-color:#8d64cf;background:#eee2ff;box-shadow:0 3px 0 #d4bde9}
.qpc-delivery input{grid-row:1/3;margin:3px 0;accent-color:#8d64cf;width:17px;height:17px}
.qpc-delivery strong{font-size:16px}.qpc-delivery span{font-size:12px;color:#857090;line-height:1.4}
.qpc-team-assignment{border:0;padding:0;margin:0;justify-content:center}.qpc-team-assignment label{font-size:13px;display:flex;align-items:center;gap:7px;font-weight:500;line-height:1.5}.qpc-team-assignment input{accent-color:#8d64cf}
.qpc-form-note{margin:0;background:#eaf7f1;border-radius:12px;padding:12px 15px;color:#4f8272;font-size:13px;line-height:1.5}
.qpc-form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:3px}
.qpc-button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 20px;border:2px solid #fff;border-radius:14px;background:linear-gradient(#c7a8ec,#a785cf);color:#fff;font-family:'Jua',sans-serif;font-size:18px;box-shadow:0 4px 0 #8662aa;cursor:pointer;line-height:1.2;white-space:nowrap;text-shadow:0 1px 1px #76509644}
.qpc-button.qpc-primary,[data-action=start].qpc-button{background:linear-gradient(#93d85a,#6fba3f);box-shadow:0 4px 0 #519631}
.qpc-button[data-action=end]{background:linear-gradient(#fb9c88,#e98271);box-shadow:0 4px 0 #c46759}
.qpc-button:disabled{opacity:.58;cursor:wait}.qpc-button:focus-visible{outline:3px solid #2595d4;outline-offset:3px}.qpc-button:active{transform:translateY(2px);box-shadow:0 2px 0 #8662aa}
.qpc-error{margin:0;color:#b95754;background:#fff0eb;border-radius:10px;padding:10px 13px;font-size:13px;line-height:1.4}.qpc-error[hidden],.qpc-field[hidden]{display:none}
.qpc-dashboard{display:flex;flex-direction:column;gap:16px}
.qpc-dash-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.qpc-link-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.qpc-link-actions .qpc-button{font-size:15px;padding:10px 15px}
.qpc-header-tools{display:flex;flex-direction:column;gap:13px;max-width:580px}.qpc-header-actions{padding:0 0 3px!important}.qpc-header-actions .qpc-button{font-size:16px;padding:10px 15px}
.qpc-status{display:inline-flex;align-items:center;border-radius:20px;background:#f1e6fc;color:#8b63b0;padding:4px 12px;font-size:12px;font-weight:800}.qpc-status-playing{background:#e5f5e4;color:#63984d}.qpc-status-ended{background:#f8ecd0;color:#a18543}
.qpc-clock{margin-left:12px;font-size:13px;font-weight:800;color:#5f91a3}.qpc-clock-expired{color:#c2766d}
.qpc-class-summary{display:flex;align-items:center;justify-content:space-around;padding:15px 22px}.qpc-class-summary>div{display:flex;align-items:baseline;gap:10px}.qpc-class-summary strong{font-family:'Jua',sans-serif;font-size:29px;font-weight:400;color:#7956ad}.qpc-class-summary span{font-size:12px;color:#897195}
.qpc-team-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.qpc-team-summary article{display:flex;flex-direction:column;gap:7px;border:3px solid #fff;border-top:8px solid var(--team-color);border-radius:17px;background:#fffdf7;padding:13px 16px;box-shadow:0 3px 0 #dacbe5}.qpc-team-summary article>span{color:#796185;font-size:13px;font-weight:800}.qpc-team-summary strong{font-family:'Jua',sans-serif;font-size:29px;font-weight:400;color:var(--team-color)}.qpc-team-summary strong small{margin-left:6px;font-size:14px}.qpc-team-summary article>small{color:#8d7b96;font-size:12px}
.qpc-coop-goal{background:#f0fbd9;border:3px solid #fff;border-radius:20px;padding:17px 20px;box-shadow:0 3px 0 #bdd49c}.qpc-coop-goal>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.qpc-coop-goal strong{font-family:'Jua',sans-serif;font-size:23px;font-weight:400;color:#77a13c}.qpc-coop-goal span{font-size:12px;color:#83a04e}
.qpc-dashboard progress{appearance:none;border:0;height:11px;width:100%;border-radius:8px;background:#e9e0ef;overflow:hidden}.qpc-dashboard progress::-webkit-progress-bar{background:#e9e0ef;border-radius:8px}.qpc-dashboard progress::-webkit-progress-value{background:linear-gradient(#a1db64,#79c34d);border-radius:8px}.qpc-dashboard progress::-moz-progress-bar{background:#8acb55;border-radius:8px}
.qpc-round-summary h3{font-size:21px;line-height:1.5;margin:9px 0}.qpc-round-summary p{font-size:13px;color:#8b7497;margin:0}
.qpc-roster{padding:18px 20px}.qpc-roster>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.qpc-roster h3{font-family:'Jua',sans-serif;font-size:22px;font-weight:400;margin:0;color:#755293}.qpc-roster>header>span{font-size:11px;color:#9a86a5}
.qpc-table-wrap{overflow:auto;max-height:380px}.qpc-roster table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;text-align:left;min-width:560px}.qpc-roster th{font-size:11px;color:#9a83a6;letter-spacing:.02em;background:#fffdf5;padding:10px 12px;position:sticky;top:0}.qpc-roster td{border-top:1px solid #f0e7f4;padding:10px 12px;vertical-align:middle;color:#796484}.qpc-roster td:last-child{font-size:12px;white-space:nowrap}
.qpc-player{display:flex;align-items:center;gap:10px;min-width:0}.qpc-player>strong{font-size:14px;font-weight:800;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qpc-player-initial{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;background:#f3e8fa;border-radius:50%;color:#a184ba;font-family:'Jua',sans-serif;font-size:19px}.qpc-player>svg,.qpc-player>.av{flex:0 0 auto}.qpc-team-badge{display:inline-flex;border-radius:8px;padding:5px 8px;gap:5px;align-items:center;font-size:11px;font-weight:800;white-space:nowrap;background:#f6f1f8}.qpc-team-badge:before{content:'';width:9px;height:9px;border-radius:50%;background:var(--team-color)}
.qpc-student-progress{display:flex;align-items:center;gap:10px;min-width:140px}.qpc-student-progress progress{max-width:135px;min-width:60px}.qpc-student-progress span{font-size:12px;white-space:nowrap}.qpc-roster .qpc-score{font-weight:800;color:#a78a47}
.qpc-empty{text-align:center;padding:36px 20px;color:#a28ab0}.qpc-empty strong{font-family:'Jua',sans-serif;font-size:23px;font-weight:400}.qpc-empty p{font-size:13px;line-height:1.6}.qpc-dashboard-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;padding:0 3px 7px}.qpc-dashboard-actions .qpc-error{flex-basis:100%}
@media(max-width:1100px){.qpc-panel{padding:18px}.qpc-table-wrap{max-height:320px}.qpc-heading h2,.qpc-dash-heading h2{font-size:28px}.qpc-form{gap:15px}.qpc-dash-heading{align-items:flex-start}.qpc-link-actions{max-width:290px}}
@media(max-width:700px){.qpc-panel{padding:16px;border-radius:20px}.qpc-form{grid-template-columns:1fr}.qpc-wide,.qpc-delivery{grid-column:auto}.qpc-delivery{grid-template-columns:1fr}.qpc-dash-heading{flex-direction:column;gap:12px}.qpc-link-actions{justify-content:flex-start;max-width:none}.qpc-class-summary{gap:15px;padding:14px}.qpc-class-summary>div{flex-direction:column;align-items:center;gap:2px}.qpc-class-summary strong{font-size:25px}.qpc-class-summary span{font-size:10px}.qpc-coop-goal>div{flex-direction:column;align-items:flex-start;gap:5px}.qpc-roster>header{align-items:flex-start;flex-direction:column;gap:5px}.qpc-clock{display:block;margin:8px 0 0}.qpc-dashboard-actions{justify-content:stretch}.qpc-dashboard-actions .qpc-button{flex:1;font-size:16px}.qpc-form-actions .qpc-button{font-size:16px;padding:10px 13px}}

/* White beveled rims, glossy color and a firm lower edge match the game controls. */
.qpc-panel{background:linear-gradient(180deg,#fffef9 0%,#fff9ea 100%);border:4px solid #fff;border-radius:26px;box-shadow:inset 0 2px 0 #fff,0 6px 0 #d8bfe7,0 12px 24px #72459a1c}
.qpc-heading h2,.qpc-dash-heading h2,.qpc-roster h3{color:#6d45ad}
.qpc-form input:not([type=radio]),.qpc-form select{background:linear-gradient(#fcf9ff,#fff);border:2px solid #d4b7ed;box-shadow:inset 0 2px 3px #78519d0d,0 2px 0 #f0e3f8;border-radius:13px}
.qpc-delivery label{background:linear-gradient(#faf4ff,#eadcfb);border:3px solid #fff;box-shadow:0 4px 0 #d1b3e6,inset 0 2px 0 #fff;position:relative}
.qpc-delivery label:has(input:checked){background:linear-gradient(#ede0ff,#dfc7fb);border-color:#a776dd;box-shadow:inset 0 2px 0 #ffffffb0,0 4px 0 #a77acb}
.qpc-delivery label strong{color:#745093}.qpc-delivery label:has(input:checked) strong{color:#6641a2}
.qpc-form-note{background:linear-gradient(#ecfff6,#daf4e7);border:2px solid #fff;box-shadow:0 2px 0 #badcca;color:#4b856a}
.qpc-button{position:relative;overflow:hidden;min-height:46px;border:3px solid #fff;border-radius:15px;background:linear-gradient(180deg,#d0b0fa 0%,#b18aeb 46%,#a074db 52%,#b284e5 100%);box-shadow:inset 0 2px 0 #ffffff88,0 5px 0 #8553b9,0 7px 10px #66448816;text-shadow:0 2px 0 #7044a06b;font-size:19px}
.qpc-button:before{content:'';position:absolute;left:9%;right:9%;top:4px;height:12px;border-radius:50%;background:linear-gradient(#ffffff47,#ffffff00);pointer-events:none}
.qpc-button.qpc-primary,[data-action=start].qpc-button,[data-action=next].qpc-button{background:linear-gradient(180deg,#b4e764 0%,#8fd548 45%,#79c133 52%,#87ce43 100%);box-shadow:inset 0 2px 0 #ffffff99,0 5px 0 #529c25,0 7px 10px #52872118;text-shadow:0 2px 0 #4c8a3475}
.qpc-button[data-action=end]{background:linear-gradient(180deg,#ffb39a 0%,#f59179 45%,#e77d65 52%,#f49179 100%);box-shadow:inset 0 2px 0 #ffffff99,0 5px 0 #c56349;text-shadow:0 2px 0 #b7534566}
.qpc-button[data-action=copy]{background:linear-gradient(180deg,#8addfa 0%,#51c4ef 45%,#35addc 52%,#55c7ee 100%);box-shadow:inset 0 2px 0 #ffffff99,0 5px 0 #2583b1;text-shadow:0 2px 0 #236d9b66}
.qpc-button[data-action=back],.qpc-button[data-action=reveal]{background:linear-gradient(180deg,#ffe294 0%,#ffd164 45%,#efbb43 52%,#ffce58 100%);box-shadow:inset 0 2px 0 #ffffff99,0 5px 0 #c79732;text-shadow:0 2px 0 #b78b3970;color:#fff}
.qpc-class-summary{gap:15px}.qpc-class-summary>div{flex:1;justify-content:center;background:linear-gradient(#fffdf0,#fff2d8);border:2px solid #f1d391;border-radius:16px;padding:8px 14px;box-shadow:inset 0 2px 0 #fff,0 3px 0 #e7cca0}
.qpc-class-summary strong{color:#9361b5;text-shadow:0 2px 0 #fff}.qpc-class-summary span{color:#91744d;font-weight:800}
.qpc-team-summary article{background:linear-gradient(#fffefa,#fff7e8);border-right:4px solid #fff;border-left:4px solid #fff;border-bottom:4px solid #fff;border-radius:20px;box-shadow:inset 0 2px 0 #fff,0 5px 0 #d4bcdf}.qpc-team-summary strong{text-shadow:0 2px 0 #fff}
.qpc-coop-goal{background:linear-gradient(#f2ffd9,#e0f5b9);border:4px solid #fff;box-shadow:inset 0 2px 0 #fff,0 5px 0 #abc87e}.qpc-coop-goal strong{color:#6e9d31;text-shadow:0 2px 0 #fff}
.qpc-dashboard progress{height:14px;border:2px solid #fff;background:#e7d8ef;box-shadow:inset 0 2px 3px #92769e22,0 1px 0 #c9b2d6}.qpc-dashboard progress::-webkit-progress-bar{background:#e7d8ef}.qpc-dashboard progress::-webkit-progress-value{background:linear-gradient(#c3ec70 0%,#9bd64d 45%,#83c33b 52%,#9ed649 100%)}.qpc-dashboard progress::-moz-progress-bar{background:linear-gradient(#c3ec70,#84c23c)}
.qpc-team-badge{background:linear-gradient(#fff,#f1e7f5);border:1px solid #e5d4ec;box-shadow:0 2px 0 #e0cfe8}.qpc-team-badge:before{box-shadow:inset 0 2px 0 #ffffff77,0 1px 0 #00000022}
.qpc-player-initial{background:linear-gradient(#fcf3ff,#e4d3f6);border:2px solid #fff;box-shadow:0 2px 0 #ceb3e3;color:#9b72c3}
@media(max-width:700px){.qpc-class-summary{gap:8px}.qpc-class-summary>div{padding:6px}.qpc-panel{border-radius:21px}}
