:root{
  font-family: Inter, Pretendard, "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:#172033;background:#f5f7fb;line-height:1.5;
}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#ffffff 0,#f5f7fb 44%,#eef2f8 100%);min-height:100vh}
button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 56px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.brand{font-size:clamp(24px,3vw,38px);font-weight:900;letter-spacing:-.04em}.subtle{color:#6c768c;font-size:14px}
.card{background:rgba(255,255,255,.94);border:1px solid #e1e7f0;border-radius:22px;box-shadow:0 12px 35px rgba(51,65,85,.08);padding:24px}.card+.card{margin-top:18px}
.center{text-align:center}.hidden{display:none!important}.big-title{font-size:clamp(34px,7vw,78px);font-weight:950;letter-spacing:.02em}.timer{font-variant-numeric:tabular-nums;font-size:clamp(28px,5vw,54px);font-weight:900}.muted{color:#788399}
.number-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:10px}.number-btn,.seat{min-height:64px;border-radius:16px;border:1px solid #dfe5ee;background:#fff;font-weight:850;font-size:20px;display:flex;align-items:center;justify-content:center;gap:7px;transition:.15s ease}.number-btn:hover{transform:translateY(-1px);border-color:#9aa8be}.seat.offline{background:#eceff4;color:#7b8494}.seat.online{background:#e8f7ef;color:#18794e;border-color:#bfe8d1}.seat.submitted{background:#e7f0ff;color:#1f5fbf;border-color:#bfd4fa}.seat.excluded{background:repeating-linear-gradient(135deg,#f3f4f6,#f3f4f6 8px,#e6e8ec 8px,#e6e8ec 16px);color:#747b88}.seat.presenter{background:#ffe5e5;color:#b42318;border-color:#f4b6b2;box-shadow:0 0 0 3px rgba(217,45,32,.11)}
.primary,.danger,.ghost,.soft{border:0;border-radius:14px;padding:13px 18px;font-weight:850}.primary{background:#172033;color:white}.danger{background:#c9362b;color:white}.ghost{background:#eef2f7;color:#344054}.soft{background:#edf4ff;color:#2857a4}.primary:disabled,.danger:disabled,.ghost:disabled,.soft:disabled{opacity:.45;cursor:not-allowed}
.input{width:100%;border:1px solid #cfd7e5;border-radius:16px;padding:15px 16px;background:white;outline:none}.input:focus{border-color:#5f82c8;box-shadow:0 0 0 4px rgba(80,116,184,.12)}
.game-input{font-size:26px;text-align:center;font-weight:800;max-width:420px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.stack{display:grid;gap:12px}.status-line{min-height:24px;font-weight:750}.error{color:#b42318}.success{color:#18794e}.warning{color:#b54708}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.tab{border:0;background:#e9edf4;padding:11px 16px;border-radius:999px;font-weight:850}.tab.active{background:#172033;color:#fff}.stats{display:flex;gap:10px;flex-wrap:wrap}.pill{background:#eef2f7;border-radius:999px;padding:8px 12px;font-weight:760;font-size:14px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}@media(max-width:850px){.split{grid-template-columns:1fr}.shell{width:min(100% - 20px,1180px);padding-top:16px}.card{padding:18px;border-radius:18px}}
.result-banner{padding:24px;border-radius:20px;text-align:center;background:#fff3f2;border:1px solid #f3c5c1}.result-banner .presenter{font-size:clamp(42px,7vw,86px);font-weight:950;color:#b42318}.result-list{display:grid;gap:8px}.result-item{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;background:#f7f9fc;border-radius:12px}.result-item.duplicate{background:#fff0ef;border:1px solid #f4c5c1}.tiny{font-size:12px}.board-shell{width:min(1500px,calc(100% - 36px));margin:0 auto;padding:24px 0}.board-heading{text-align:center;margin:8px 0 20px}.board-heading h1{margin:0;font-size:clamp(28px,4vw,52px)}.board-grid .seat{min-height:78px;font-size:24px}.board-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.board-game{display:grid;justify-items:center;gap:8px;margin:12px 0 24px}.board-game .big-title{font-size:clamp(72px,12vw,150px)}.overlay-alert{position:fixed;inset:0;background:rgba(160,24,24,.96);color:white;display:grid;place-items:center;z-index:100;text-align:center;padding:24px}.overlay-alert h2{font-size:clamp(48px,9vw,110px);margin:0}.overlay-alert p{font-size:clamp(22px,4vw,48px);font-weight:800}.teacher-seat{cursor:pointer}.log-item{border:1px solid #e1e7f0;border-radius:16px;padding:15px;background:#fff}.log-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.log-meta{font-weight:850}.select{border:1px solid #cfd7e5;border-radius:14px;padding:12px 14px;background:#fff;font-weight:800}.duration-group{display:flex;gap:8px;flex-wrap:wrap}.duration-btn.active{background:#172033;color:#fff}.modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:20px;z-index:50}.modal-box{width:min(460px,100%);background:#fff;border-radius:22px;padding:22px;box-shadow:0 24px 60px rgba(15,23,42,.25)}.student-presenter{background:linear-gradient(160deg,#8f1712,#d64035);color:#fff}.student-presenter .card{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}.student-presenter .muted{color:#ffe2df}

.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.nav-links{display:flex;gap:8px;flex-wrap:wrap}.board-nav{display:flex;justify-content:flex-end;margin-bottom:8px}@media(max-width:640px){.topbar{align-items:flex-start}.top-actions{align-items:flex-end}.nav-links .ghost{padding:9px 11px;font-size:13px}}

/* 2026-08 pastel classroom refresh */
.student-page,.board-page{background:linear-gradient(140deg,#fff9fb 0%,#f7fbff 35%,#fbfff5 68%,#fffaf0 100%);background-attachment:fixed}.student-page:before,.board-page:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 12%,rgba(255,193,204,.28),transparent 22%),radial-gradient(circle at 88% 18%,rgba(183,226,255,.28),transparent 24%),radial-gradient(circle at 72% 82%,rgba(218,244,194,.28),transparent 23%),radial-gradient(circle at 20% 82%,rgba(255,227,166,.25),transparent 20%);z-index:-1}.brand{color:#394264}.pastel-card,.board-page .card{background:rgba(255,255,255,.86);border:2px solid rgba(199,210,236,.65);box-shadow:0 16px 45px rgba(91,103,145,.10);backdrop-filter:blur(10px)}.section-kicker{display:inline-flex;padding:7px 12px;border-radius:999px;background:#fff0f5;color:#8d4b67;font-weight:900;font-size:13px;margin-bottom:6px}.initials-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:min(360px,86vw);padding:18px 28px;border-radius:28px;background:linear-gradient(135deg,#fff0f5,#eef7ff 52%,#f3ffe8);border:2px solid #d8e2f4;box-shadow:0 12px 30px rgba(107,123,166,.11)}.number-btn{background:linear-gradient(145deg,#ffffff,#f8fbff);border:2px solid #dce6f4;color:#3e4a69;box-shadow:0 5px 14px rgba(83,102,143,.06)}.number-btn:hover:not(:disabled){border-color:#a9bfe6;background:#f3f7ff;transform:translateY(-2px)}.number-btn:disabled{cursor:not-allowed;transform:none;box-shadow:none}.number-btn.occupied{background:#eef1f5;color:#9aa3b2;border-color:#e0e4ea}.number-btn.excluded-choice{background:repeating-linear-gradient(135deg,#f2f2f4,#f2f2f4 8px,#e6e7ea 8px,#e6e7ea 16px);color:#969ca8;border-color:#dddfe4}.number-btn.round-locked{background:#f3f4f8;color:#a0a7b3;border-color:#e3e5eb}.choice-lock-note{padding:14px 16px;background:#fff3d8;border:1px solid #f1d99d;border-radius:16px;color:#765716;font-weight:800;text-align:center;margin-bottom:14px}.time-track{width:min(460px,88vw);height:18px;background:#edf0f6;border-radius:999px;overflow:hidden;border:2px solid rgba(199,208,226,.75);box-shadow:inset 0 2px 5px rgba(65,78,110,.06);margin:10px auto 0}.time-bar{height:100%;width:100%;border-radius:999px;background:linear-gradient(90deg,#ffb8ca 0%,#ffd990 28%,#c8ed9f 53%,#9eddf7 76%,#c8b9ff 100%);transition:width .08s linear}.board-time-track{width:min(760px,70vw);height:22px}.board-heading h1{color:#394264}.board-tagline{font-size:clamp(15px,2vw,22px);font-weight:850;color:#7080a2;margin:4px 0 8px}.board-grid .seat{border-width:2px;box-shadow:0 7px 18px rgba(78,96,135,.06)}.seat.offline{background:#f0f2f6}.seat.online{background:#e7f9ef;border-color:#b8e8ca}.seat.submitted{background:#e8f1ff;border-color:#bdd5ff}.seat.excluded{border-color:#dedfe3}.seat.presenter{background:#ffe1e7;border-color:#ffb4c0;box-shadow:0 0 0 5px rgba(255,133,153,.14),0 12px 26px rgba(184,67,87,.14)}.pill{background:#f2f5fb;border:1px solid #e1e7f1}.primary{background:linear-gradient(135deg,#5f6fc6,#7b72d8);box-shadow:0 7px 16px rgba(93,99,190,.18)}.ghost{background:#f1f4fa;color:#47536f}.soft{background:#edf6ff;color:#365e98}.result-card{border-color:#e2d8fa!important}.result-banner{background:linear-gradient(135deg,#fff0f5,#f3f1ff 55%,#eefbff);border:2px solid #e3d7f4}.result-banner .presenter{color:#9b4963}.reason-label{display:inline-block;padding:7px 13px;border-radius:999px;background:#ede8ff;color:#6255a7;font-size:13px;font-weight:950;letter-spacing:.02em}.reason-label-secondary{background:#fff0d9;color:#86601f;margin-top:16px}.result-reason{font-size:clamp(18px,2.5vw,28px);font-weight:900;line-height:1.5;color:#4a5164;margin:10px auto 0;max-width:880px}.result-popup{background:rgba(58,64,91,.36);backdrop-filter:blur(8px)}.result-popup-box{text-align:center;width:min(680px,94vw);padding:30px;border:2px solid #e5def7;background:linear-gradient(145deg,#fff,#fff8fb)}.popup-emoji{font-size:52px}.popup-presenter{font-size:clamp(52px,10vw,94px);font-weight:950;color:#a84763;margin:5px 0 8px}.popup-reason{font-size:clamp(18px,3vw,27px);font-weight:850;color:#4a5164;line-height:1.55}.result-popup-box .primary{min-width:180px;margin-top:8px}.log-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:12px;background:#f7f8fc;border-radius:14px}.log-name-row .input{max-width:220px;padding:10px 12px}.save-state{font-size:12px;font-weight:800;color:#6f7890}.student-presenter{background:linear-gradient(150deg,#ff7f96,#bd465f)!important}.student-presenter:before{display:none}.student-presenter .pastel-card{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.38);box-shadow:none}.student-presenter .big-title,.student-presenter p{color:#fff}.presenter-reason-box{margin:16px auto 0;max-width:520px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.28);font-weight:800}.presenter-reason-box .reason-label{background:rgba(255,255,255,.9);color:#994057;margin-bottom:8px}.disabled-grid{opacity:.68;filter:saturate(.6)}

/* 2026-08-16 vivid classroom game refresh */
.student-page,.board-page{background:linear-gradient(135deg,#fff0f5 0%,#eef8ff 34%,#f2ffe7 66%,#fff5d9 100%);background-attachment:fixed}
.student-page:before,.board-page:before{background:radial-gradient(circle at 8% 10%,rgba(255,113,151,.30),transparent 25%),radial-gradient(circle at 92% 14%,rgba(84,184,255,.28),transparent 26%),radial-gradient(circle at 76% 88%,rgba(125,214,97,.25),transparent 26%),radial-gradient(circle at 15% 88%,rgba(255,188,62,.28),transparent 24%)}
.brand{font-size:clamp(22px,3.2vw,34px);font-weight:950;color:#313a67;letter-spacing:-.02em}.subtle{color:#667199;font-weight:750}.pastel-card,.board-page .card{background:rgba(255,255,255,.94);border:2px solid rgba(137,162,219,.52);box-shadow:0 18px 48px rgba(71,88,147,.16)}
.number-btn{background:linear-gradient(145deg,#ffffff,#eef7ff);border-color:#b9cff2;color:#34446d;box-shadow:0 7px 16px rgba(73,104,164,.11)}.number-btn:hover:not(:disabled){background:linear-gradient(145deg,#f7fbff,#e5f2ff);border-color:#6fa7e8}.seat.offline{background:#e9edf5;color:#68728a;border-color:#cbd3e2}.seat.online{background:#dff8e8;color:#137448;border-color:#8fd4ad}.seat.submitted{background:#dcebff;color:#1559ae;border-color:#8ebcf5}.seat.presenter{background:#ffd7e1;color:#a62147;border-color:#f48ca5}
.primary{background:linear-gradient(135deg,#596ee8,#8268dc);box-shadow:0 8px 18px rgba(83,89,202,.25)}.ghost{background:#e9f0fb;color:#3d4e73;border:1px solid #d2dff2}.soft{background:#dcf0ff;color:#255b91}.pill{background:#e8f1ff;border-color:#c9d9f3;color:#405274}.section-kicker{background:#ffe1ec;color:#963f63}.initials-badge{background:linear-gradient(135deg,#ffe2ec,#dff3ff 50%,#e9ffd7);border-color:#afc9ef}.time-track{background:#dde4ef;border-color:#b9c6d9;box-shadow:inset 0 2px 6px rgba(42,58,91,.12),0 5px 14px rgba(75,91,130,.10)}.time-bar{background:linear-gradient(90deg,#f05d7b 0%,#ffad42 28%,#76c95e 53%,#4aaee8 76%,#8b69df 100%)}
.connection-warning{margin-top:7px;color:#c62828;font-weight:900;font-size:14px;animation:connectionPulse 1.2s ease-in-out infinite alternate}.board-heading .connection-warning{font-size:clamp(14px,1.7vw,20px)}@keyframes connectionPulse{from{opacity:.72}to{opacity:1}}
.howto-card{text-align:left;margin:24px auto 0;max-width:720px;padding:20px 22px;border-radius:20px;background:linear-gradient(135deg,#f4f8ff,#fff6df);border:2px solid #d7e2f4;box-shadow:0 8px 22px rgba(80,99,143,.08)}.howto-card h3,.howto-card h4{margin:0 0 10px;color:#35456d}.howto-card h4{margin-top:18px}.howto-card ul,.howto-card ol{margin:8px 0 0;padding-left:24px;line-height:1.7;color:#4d5873}.waiting-message{font-size:18px;font-weight:800;color:#4e5a79}
.participant-limit-box{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin:6px 0 16px;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,#eef7ff,#f5f0ff);border:1px solid #cfddf4}.participant-limit-control{display:flex;align-items:center;gap:8px}.participant-limit-input{width:90px!important;padding:11px 12px!important;font-size:20px;font-weight:900;text-align:center}.participant-limit-control>span{font-weight:900;color:#55617c}
.choice-lock-note{background:#fff0ca;border-color:#e8c867;color:#6d4d00}.result-popup-box{box-shadow:0 30px 80px rgba(55,55,100,.28)}
@media(max-width:640px){.participant-limit-control{width:100%}.participant-limit-input{flex:1}.howto-card{padding:16px 17px}}

/* Final build additions */
.number-button{min-height:72px;border-radius:18px;border:2px solid #b9cff2;background:linear-gradient(145deg,#ffffff,#eef7ff);color:#34446d;font-weight:900;font-size:21px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:0 7px 16px rgba(73,104,164,.11);transition:.15s ease}.number-button:hover:not(:disabled){transform:translateY(-2px);background:linear-gradient(145deg,#f7fbff,#e5f2ff);border-color:#6fa7e8}.number-button span{font-size:11px;color:#7b8497}.number-button:disabled{cursor:not-allowed;box-shadow:none;opacity:.72}.number-button.excluded{background:repeating-linear-gradient(135deg,#ededf0,#ededf0 8px,#dfe1e6 8px,#dfe1e6 16px);border-color:#cfd3da;color:#858b98}.number-button.occupied{background:#e5e9f0;border-color:#cbd2df;color:#7d8799}.number-button.locked{filter:saturate(.5);opacity:.58}
.class-box{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:6px 0 14px;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,#fff0f5,#eef7ff);border:1px solid #d7deef}.class-choice-group{display:flex;gap:7px;flex-wrap:wrap}.class-choice{border:1px solid #cfd9eb;background:#fff;color:#53617d;padding:10px 14px;border-radius:999px;font-weight:900}.class-choice.active{background:linear-gradient(135deg,#596ee8,#8268dc);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(83,89,202,.22)}
.no-margin{margin:0}.top-small{margin-top:10px}.top-gap{margin-top:16px}.small-top-gap{margin-top:8px}.full-width{width:100%}.flex1{flex:1}.modal-actions{margin-top:12px}.game-form{justify-items:center;margin-top:18px}.submit-large{min-width:180px}.submitted-title{font-size:52px}.presenter-self-title{font-size:54px}.ended-title{font-size:48px}.board-main-title{font-size:42px}.teacher-live-title{font-size:56px}.live-seats{margin-top:16px}.result-card{margin-top:22px}.compact-result{padding:18px}.wrap-toolbar{align-items:flex-start}.log-actions{display:flex;gap:8px;flex-wrap:wrap}.pager{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:20px}.log-card{border:1px solid #dfe6f2;background:linear-gradient(145deg,#fff,#fbfcff);border-radius:18px;padding:17px;box-shadow:0 8px 22px rgba(71,88,147,.06)}.log-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.log-reason{margin:13px 0;padding:12px 14px;border-radius:14px;background:#fff8e8;color:#5b5139;font-weight:800}.log-grid{display:grid;grid-template-columns:minmax(180px,.6fr) minmax(260px,1.4fr);gap:12px}.log-grid label{display:grid;gap:6px;font-weight:850;color:#4c5873}.log-grid textarea{resize:vertical;min-height:84px}.log-save-row{margin-top:10px}.log-detail{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;margin-top:12px;padding:12px 14px;background:#f7f9fd;border-radius:14px}.danger-outline{border:1px solid #e6a5a0;background:#fff5f4;color:#a12d25;border-radius:12px;padding:9px 12px;font-weight:850}.danger-outline:hover{background:#ffe9e7}.log-card details{margin-top:12px}.log-card summary{cursor:pointer;font-weight:850;color:#53617d}.board-page{background:linear-gradient(135deg,#ffe8f0 0%,#e5f5ff 34%,#ecffdc 66%,#ffefc6 100%)}.student-page{background:linear-gradient(135deg,#ffe9f1 0%,#e6f6ff 36%,#efffdf 68%,#fff0cb 100%)}
@media(max-width:760px){.log-grid{grid-template-columns:1fr}.log-detail{grid-template-columns:1fr}.class-choice-group{width:100%}.class-choice{flex:1;min-width:58px}.number-button{min-height:62px;font-size:19px}}


/* 2026-08-16 saturation + privacy + provenance refresh */
.pin-mask{
  -webkit-text-security:disc;
  text-security:disc;
  letter-spacing:.18em;
  font-variant-numeric:tabular-nums;
}
.pin-mask::-ms-reveal,.pin-mask::-ms-clear{display:none}
.dictionary-version{margin-top:16px;padding:9px 13px;border-radius:14px;background:#e5f2ff;border:1px solid #9bc9f4;color:#275d91;font-size:12px;font-weight:850;line-height:1.45}
.board-dictionary-version{display:inline-block;margin:2px auto 7px;background:#fff0b8;border-color:#f2c85f;color:#755000;font-size:clamp(12px,1.25vw,16px)}
.teacher-dictionary-version{display:inline-block;margin-top:6px;background:#eaf4ff}
.student-footer{margin:24px auto 0;text-align:center;display:grid;gap:5px;color:#4e5c80;font-size:13px;font-weight:800;padding:16px 12px;border-top:1px solid rgba(79,105,169,.22)}

.student-page{background:linear-gradient(135deg,#ffcfe0 0%,#cfecff 34%,#dcffc5 67%,#ffe59f 100%)}
.board-page{background:linear-gradient(135deg,#ffc9dc 0%,#c6eaff 33%,#d9ffbe 66%,#ffe394 100%)}
.student-page:before,.board-page:before{background:radial-gradient(circle at 8% 8%,rgba(246,64,119,.34),transparent 25%),radial-gradient(circle at 92% 13%,rgba(22,150,238,.31),transparent 27%),radial-gradient(circle at 78% 88%,rgba(86,190,49,.30),transparent 27%),radial-gradient(circle at 14% 88%,rgba(246,166,25,.34),transparent 25%)}
.pastel-card,.board-page .card{background:rgba(255,255,255,.95);border-color:rgba(76,119,207,.58);box-shadow:0 18px 46px rgba(39,67,132,.20)}
.brand,.board-heading h1{color:#263674;text-shadow:0 1px 0 rgba(255,255,255,.72)}
.section-kicker{background:#ffd0e2;color:#85264f;border:1px solid #f39aba}
.initials-badge{background:linear-gradient(135deg,#ffd0e2 0%,#cbeaff 47%,#d9ffc0 100%);border-color:#6da8df;box-shadow:0 13px 30px rgba(58,100,174,.18)}
.primary{background:linear-gradient(135deg,#425fe6,#7b49d8);box-shadow:0 9px 20px rgba(68,76,199,.30)}
.primary:hover:not(:disabled){filter:saturate(1.12) brightness(1.04)}
.ghost{background:#dceaff;color:#2f477d;border-color:#a9c6eb}.soft{background:#ccecff;color:#174f86}
.number-button{border-color:#89b8e9;background:linear-gradient(145deg,#fff,#dff1ff);color:#253f75;box-shadow:0 8px 17px rgba(45,83,150,.16)}
.number-button:hover:not(:disabled){background:linear-gradient(145deg,#fff,#cfeaff);border-color:#3b91df}
.seat.offline{background:#dce2ee;color:#59647c;border-color:#aab7cb}.seat.online{background:#c9f5d8;color:#086c3c;border-color:#53bc7e}.seat.submitted{background:#c9e4ff;color:#074f9d;border-color:#559ee6}.seat.presenter{background:#ffc1d0;color:#9e153d;border-color:#e9577a}
.pill{background:#dceaff;border-color:#acc9ed;color:#304b78}.time-track{background:#c8d3e4;border-color:#91a7c6}.time-bar{background:linear-gradient(90deg,#ec3766 0%,#ff9e1f 27%,#5fbd3e 52%,#249ee1 76%,#7c4fd6 100%)}
.howto-card{background:linear-gradient(135deg,#e7f3ff,#fff0bd);border-color:#9fc1ec;box-shadow:0 9px 22px rgba(49,84,145,.13)}
.class-box{background:linear-gradient(135deg,#ffdce9,#dceeff);border-color:#aac5eb}.participant-limit-box{background:linear-gradient(135deg,#d9efff,#e9dcff);border-color:#a9c0e9}
.class-choice{border-color:#aac3e6;background:#f8fbff;color:#3d527c}.class-choice.active{background:linear-gradient(135deg,#425fe6,#7b49d8)}
.result-banner{background:linear-gradient(135deg,#ffdce9,#e5dcff 55%,#d9f3ff);border-color:#b59ee6}.reason-label{background:#ded1ff;color:#513f9b}.reason-label-secondary{background:#ffe2a5;color:#765000}
.result-popup-box{border-color:#b9a8e5;background:linear-gradient(145deg,#fff,#ffecf4);box-shadow:0 30px 80px rgba(49,51,112,.34)}

/* 2026-08-16 mobile header cleanup + teacher dark theme */
.page-header{margin:0 0 22px;display:grid;gap:12px}
.page-title-row{text-align:center;display:grid;justify-items:center;gap:3px}
.page-title-row .brand{font-size:clamp(24px,3vw,38px);line-height:1.2}
.page-subtitle{margin-top:2px;font-weight:800}
.page-nav-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:18px;background:rgba(255,255,255,.58);border:1px solid rgba(83,112,171,.22);backdrop-filter:blur(8px)}
.page-nav-row .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.board-header{margin-top:6px}
.board-heading{margin-bottom:20px}
.board-nav-row{width:min(720px,100%);margin:0 auto}

/* Force PIN masking. The type=password attribute is primary; text-security prevents
   Chromium/WebKit from exposing typed digits even when platform styling changes. */
.pin-mask{
  -webkit-text-security:disc !important;
  text-security:disc !important;
  font-family:Arial,sans-serif !important;
  letter-spacing:.24em !important;
}
.pin-mask::-ms-reveal,.pin-mask::-ms-clear{display:none!important}
.pin-mask::-webkit-credentials-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none}

/* Teacher page: intentionally distinct, dark control-room theme. */
.teacher-page{
  color:#edf3ff;
  background:
    radial-gradient(circle at 12% 8%,rgba(74,102,210,.22),transparent 26%),
    radial-gradient(circle at 88% 14%,rgba(126,76,204,.18),transparent 28%),
    linear-gradient(145deg,#080b12 0%,#0d111b 42%,#111827 100%);
  background-attachment:fixed;
}
.teacher-page .brand{color:#f6f8ff;text-shadow:none}
.teacher-page .subtle,.teacher-page .muted{color:#aeb9cf}
.teacher-page .page-nav-row{background:rgba(21,27,41,.88);border-color:#2b3851;box-shadow:0 10px 28px rgba(0,0,0,.22)}
.teacher-page .card,.teacher-page .log-card{
  color:#edf3ff;
  background:linear-gradient(145deg,rgba(22,28,42,.97),rgba(17,22,34,.97));
  border-color:#303b52;
  box-shadow:0 16px 38px rgba(0,0,0,.28);
}
.teacher-page .tabs{padding:5px;border-radius:18px;background:#0e1420;border:1px solid #273248}
.teacher-page .tab{background:#182131;color:#b9c5da}
.teacher-page .tab.active{background:linear-gradient(135deg,#526cf0,#824fd9);color:#fff}
.teacher-page .ghost{background:#202b3e;color:#dce7fa;border-color:#34445e}
.teacher-page .ghost:hover:not(:disabled){background:#29364b}
.teacher-page .soft{background:#153451;color:#bfe2ff;border:1px solid #24557f}
.teacher-page .primary{background:linear-gradient(135deg,#526cf0,#824fd9);color:#fff}
.teacher-page .danger{background:#b83242}
.teacher-page .pill{background:#1a2639;border-color:#34445e;color:#dce7fa}
.teacher-page .input,.teacher-page .select{
  color:#f2f6ff;
  background:#0d1420;
  border-color:#3a4964;
}
.teacher-page .input::placeholder{color:#71809b}
.teacher-page .input:focus,.teacher-page .select:focus{border-color:#6d86f4;box-shadow:0 0 0 4px rgba(91,113,229,.18)}
.teacher-page .class-box,.teacher-page .participant-limit-box{
  background:linear-gradient(135deg,#161f30,#1b2036);
  border-color:#33415c;
}
.teacher-page .class-choice{background:#111927;color:#c4cee0;border-color:#3a4860}
.teacher-page .class-choice.active{background:linear-gradient(135deg,#526cf0,#824fd9);color:#fff}
.teacher-page .number-button{
  background:linear-gradient(145deg,#182236,#111927);
  border-color:#344864;
  color:#e5edfb;
  box-shadow:0 7px 16px rgba(0,0,0,.2)
}
.teacher-page .number-button span{color:#94a2ba}
.teacher-page .number-button:hover:not(:disabled){background:linear-gradient(145deg,#20304b,#172238);border-color:#5876a5}
.teacher-page .number-button.occupied{background:#252d3a;color:#909cb0;border-color:#3d4655}
.teacher-page .number-button.excluded{background:repeating-linear-gradient(135deg,#20242c,#20242c 8px,#161a22 8px,#161a22 16px);color:#7d8798;border-color:#353b48}
.teacher-page .seat.offline{background:#232b38;color:#a2adbf;border-color:#3b4658}
.teacher-page .seat.online{background:#123927;color:#7de2a7;border-color:#296b4a}
.teacher-page .seat.submitted{background:#143355;color:#83bcff;border-color:#2c639c}
.teacher-page .seat.presenter{background:#571d2b;color:#ff9caf;border-color:#a63b57}
.teacher-page .log-reason{background:#282315;color:#f6d888}
.teacher-page .log-detail{background:#101824;color:#cbd5e6}
.teacher-page .log-card summary,.teacher-page .log-grid label{color:#dbe5f5}
.teacher-page .danger-outline{background:#35171b;color:#ff9ea8;border-color:#743039}
.teacher-page .dictionary-version{background:#152b42;border-color:#2d5b82;color:#a9d5ff}
.teacher-page .teacher-dictionary-version{background:#152b42}
.teacher-page .modal{background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}
.teacher-page .modal-box{background:#151d2b;color:#eef4ff;border:1px solid #35445d;box-shadow:0 28px 70px rgba(0,0,0,.55)}
.teacher-page .status-line.error,.teacher-page .error{color:#ff8e9c}
.teacher-page .connection-warning{color:#ff788a}
.teacher-page .time-track{background:#202a3a;border-color:#41516a}

@media(max-width:640px){
  .page-header{gap:10px;margin-bottom:16px}
  .page-title-row .brand{font-size:24px}
  .page-title-row .subtle{font-size:13px}
  .page-nav-row{padding:9px;align-items:center}
  .page-nav-row .nav-links{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .page-nav-row .nav-links .ghost{width:100%;padding:10px 8px;font-size:13px;white-space:nowrap}
  .page-nav-row .pill{flex:0 0 auto;font-size:12px;padding:7px 9px}
  .board-nav-row{width:100%}
}
@media(max-width:430px){
  .page-nav-row{display:grid;grid-template-columns:1fr}
  .page-nav-row .pill{justify-self:center}
  .page-nav-row .nav-links{width:100%}
}

/* 2026-08-16 teacher detail polish */
.teacher-page .duration-group{gap:10px}
.teacher-page .duration-btn{
  appearance:none;
  border:1px solid #3a4964;
  border-radius:14px;
  padding:11px 16px;
  background:#151f2f;
  color:#cbd6e9;
  font-weight:900;
  line-height:1.2;
  min-width:72px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
  transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.teacher-page .duration-btn:hover{
  background:#1d2a40;
  border-color:#6078a1;
  transform:translateY(-1px);
}
.teacher-page .duration-btn.active,
.teacher-page .duration-btn:active{
  border-radius:14px !important;
}
.teacher-page .duration-btn.active{
  color:#fff;
  border-color:#8294ff;
  background:linear-gradient(135deg,#526cf0,#824fd9);
  box-shadow:0 7px 18px rgba(75,79,205,.28),inset 0 0 0 1px rgba(255,255,255,.14);
}
.teacher-page .select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:44px;
  background-color:#0d1420;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23dce7fa' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:17px 17px;
}
.teacher-page .select::-ms-expand{display:none}
.teacher-page .log-card details{margin-top:12px}
.teacher-page .log-card summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  padding:8px 11px;
  border-radius:11px;
  background:#182335;
  border:1px solid #30415c;
  color:#dbe5f5;
  font-size:12px;
  font-weight:900;
}
.teacher-page .log-card summary::-webkit-details-marker{display:none}
.teacher-page .log-card summary::before{content:'▸';color:#91a8d7;transition:transform .15s ease}
.teacher-page .log-card details[open] summary::before{transform:rotate(90deg)}
.teacher-page .log-detail{
  display:block;
  margin-top:10px;
  padding:0;
  background:transparent;
  color:#cbd5e6;
}
.teacher-page .log-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.teacher-page .log-detail-section{
  min-width:0;
  padding:11px 12px;
  border-radius:12px;
  background:#0d1521;
  border:1px solid #29384f;
}
.teacher-page .log-detail-section.wide{grid-column:1/-1}
.teacher-page .log-detail-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
  color:#e1e9f7;
  font-size:11px;
  font-weight:950;
  letter-spacing:.03em;
}
.teacher-page .log-detail-count{
  flex:0 0 auto;
  padding:2px 7px;
  border-radius:999px;
  background:#202d43;
  color:#9eb4da;
  font-size:10px;
  font-weight:900;
}
.teacher-page .log-chip-list{display:flex;flex-wrap:wrap;gap:5px}
.teacher-page .log-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:100%;
  padding:4px 7px;
  border-radius:8px;
  background:#172235;
  border:1px solid #2c3c55;
  color:#cbd7eb;
  font-size:11px;
  line-height:1.35;
}
.teacher-page .log-chip strong{color:#f2f6ff;font-size:11px}
.teacher-page .log-chip.missing{background:#2a2115;border-color:#554226;color:#f1d599}
.teacher-page .log-chip.excluded{background:#20232a;border-color:#3a404b;color:#aeb7c6}
.teacher-page .log-empty{color:#7f8da4;font-size:11px}
@media(max-width:620px){
  .teacher-page .duration-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .teacher-page .duration-btn{width:100%;min-width:0}
  .teacher-page .log-detail-grid{grid-template-columns:1fr}
  .teacher-page .log-detail-section.wide{grid-column:auto}
}

/* 2026-08-18 teacher live result visibility fix */
.teacher-page #teacherResult > h3{
  margin:16px 0 8px;
  color:#dce7fa;
  font-size:14px;
  font-weight:950;
  letter-spacing:.02em;
}
.teacher-page #teacherResult .result-list{
  display:grid;
  gap:7px;
  padding:10px;
  border-radius:14px;
  background:#0b121d;
  border:1px solid #2a3950;
}
.teacher-page #teacherResult .result-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 12px;
  border-radius:11px;
  background:#151f2f;
  border:1px solid #2d3d56;
  color:#bac8dc;
  box-shadow:none;
}
.teacher-page #teacherResult .result-item span{
  color:#aebed5;
  font-size:13px;
  font-weight:800;
}
.teacher-page #teacherResult .result-item strong{
  color:#f7f9ff;
  font-size:14px;
  font-weight:950;
}
.teacher-page #teacherResult .result-item.duplicate{
  background:#451c2a;
  border-color:#8e3c56;
}
.teacher-page #teacherResult .result-item.duplicate span{color:#ffc1ce}
.teacher-page #teacherResult .result-item.duplicate strong{color:#fff2f5}
.teacher-page #teacherResult > .pill{
  display:block;
  width:100%;
  padding:10px 12px;
  border-radius:11px;
  background:#181f2c;
  border:1px solid #364359;
  color:#c8d3e4;
  font-size:13px;
  line-height:1.55;
}
@media(max-width:620px){
  .teacher-page #teacherResult .result-item{padding:9px 10px}
  .teacher-page #teacherResult .result-item span{font-size:12px}
  .teacher-page #teacherResult .result-item strong{font-size:13px}
}

/* 2026-08-18 initial difficulty recommendation */
.teacher-page .initial-recommend-box{
  display:grid;gap:10px;padding:13px 14px;border:1px solid #31405a;border-radius:16px;
  background:linear-gradient(145deg,#121c2b,#101724);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)
}
.teacher-page .initial-recommend-head strong{color:#f0f5ff;font-size:14px}
.teacher-page .difficulty-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.teacher-page .difficulty-btn{
  min-height:42px;border-radius:13px;border:1px solid #3d4d68;background:#1a2537;color:#e2eaff;
  font-weight:900;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease
}
.teacher-page .difficulty-btn:hover{transform:translateY(-1px);border-color:#687ca0}
.teacher-page .difficulty-btn.easy{background:#153526;border-color:#2f6b4e;color:#9ce9bd}
.teacher-page .difficulty-btn.normal{background:#2d2a17;border-color:#695f2e;color:#f5dc84}
.teacher-page .difficulty-btn.hard{background:#391b25;border-color:#793b50;color:#ffadbf}
.teacher-page .difficulty-btn.selected{box-shadow:0 0 0 3px rgba(112,137,242,.18),0 8px 20px rgba(0,0,0,.22);border-color:#8da1ff}
.teacher-page .initial-recommend-result{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid #405273;
  border-radius:14px;background:#182338
}
.teacher-page .initial-recommend-result>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.teacher-page .recommend-difficulty{font-size:11px;font-weight:900;padding:5px 8px;border-radius:999px;background:#27334a;color:#dfe8f8}
.teacher-page .recommend-difficulty.easy{background:#17432f;color:#a9efc7}
.teacher-page .recommend-difficulty.normal{background:#493f17;color:#f8df82}
.teacher-page .recommend-difficulty.hard{background:#512031;color:#ffb2c3}
.teacher-page .recommend-initials{font-size:25px;letter-spacing:.08em;color:#fff}
.teacher-page .recommend-count{font-size:11px;color:#9facbf;font-weight:750}
.teacher-page .recommend-apply{white-space:nowrap;padding:9px 11px}
.teacher-page .recommend-guide{line-height:1.5}
@media(max-width:620px){
  .teacher-page .difficulty-buttons{grid-template-columns:1fr}
  .teacher-page .difficulty-btn{min-height:38px}
  .teacher-page .initial-recommend-result{align-items:stretch;flex-direction:column}
  .teacher-page .recommend-apply{width:100%}
}


/* 2026-08-18 board visual distinction + large submission counter + mobile presenter polish */
.board-page{
  background:linear-gradient(145deg,#071a2b 0%,#0b3241 38%,#123a58 70%,#18274b 100%)!important;
  background-attachment:fixed!important;
  color:#eef8ff;
}
.board-page:before{
  background:
    radial-gradient(circle at 12% 12%,rgba(38,218,203,.23),transparent 28%),
    radial-gradient(circle at 88% 16%,rgba(80,142,255,.24),transparent 29%),
    radial-gradient(circle at 72% 86%,rgba(83,224,177,.16),transparent 27%),
    radial-gradient(circle at 15% 84%,rgba(103,125,255,.18),transparent 25%)!important;
}
.board-page .board-heading h1{color:#f6fbff;text-shadow:0 3px 18px rgba(0,0,0,.22)}
.board-page .board-tagline{color:#b9d7e8}
.board-page .dictionary-version{color:#93b9cf}
.board-page .page-nav-row{border-color:rgba(152,210,230,.18)}
.board-page .ghost{background:rgba(14,46,63,.78);color:#eaf8ff;border:1px solid rgba(132,201,222,.32)}
.board-page .ghost:hover{background:rgba(25,71,91,.92);border-color:rgba(117,229,215,.55)}
.board-page .pill{background:rgba(9,39,56,.78);border:1px solid rgba(134,205,224,.31);color:#e9f8ff}
.board-page .section-kicker{background:#0f5562;color:#cafff6;border:1px solid rgba(95,232,211,.38)}
.board-page .board-main-title{color:#fff;letter-spacing:.045em;text-shadow:0 5px 24px rgba(0,0,0,.28)}
.board-page .timer{color:#8ff5ea;text-shadow:0 3px 18px rgba(25,217,194,.18)}
.board-page .board-time-track{background:#07151f;border-color:#28586a;box-shadow:inset 0 2px 8px rgba(0,0,0,.36)}
.board-page .board-time-track .time-bar{background:linear-gradient(90deg,#ff6f91 0%,#ffbd55 32%,#62e6c8 67%,#55a8ff 100%)}
.board-page .board-grid .seat{box-shadow:0 9px 22px rgba(0,0,0,.16);border-width:2px}
.board-page .seat.offline{background:#26394a;color:#a9bfce;border-color:#40586d}
.board-page .seat.online{background:#164b43;color:#aaf9e0;border-color:#2c8d79}
.board-page .seat.submitted{background:#123d70;color:#d5ecff;border-color:#3b88df;box-shadow:0 0 0 3px rgba(66,149,239,.12),0 9px 22px rgba(0,0,0,.18)}
.board-page .seat.excluded{background:repeating-linear-gradient(135deg,#1c2630,#1c2630 8px,#273440 8px,#273440 16px);color:#8799a6;border-color:#3b4b58}
.board-page .seat.presenter{background:#8f203b;color:#fff2f5;border-color:#ff6f91;box-shadow:0 0 0 5px rgba(255,89,126,.2),0 12px 28px rgba(0,0,0,.22)}
.board-page #boardCount.submission-counter{
  display:flex;align-items:baseline;justify-content:center;gap:8px;
  min-width:min(500px,88vw);padding:15px 26px 17px;border-radius:24px;
  background:linear-gradient(135deg,rgba(8,44,58,.94),rgba(12,66,80,.94));
  border:2px solid rgba(83,229,208,.58);box-shadow:0 14px 34px rgba(0,0,0,.23),inset 0 1px 0 rgba(255,255,255,.06)
}
.board-page .submission-number{font-size:clamp(58px,9vw,108px);font-weight:950;line-height:.9;color:#79f6df;text-shadow:0 4px 18px rgba(72,240,215,.18)}
.board-page .submission-slash{font-size:clamp(30px,5vw,58px);font-weight:850;color:#7ea8b9}
.board-page .submission-total{font-size:clamp(36px,6vw,70px);font-weight:950;color:#f4fbff}
.board-page .submission-label{font-size:clamp(18px,2.6vw,30px);font-weight:900;color:#b7dbe5;margin-left:4px}
.board-page .result-card{background:rgba(244,251,255,.97)!important;border:2px solid rgba(101,215,211,.62)!important;box-shadow:0 18px 45px rgba(0,0,0,.24)}
.board-page .result-card h3{color:#183b4d}
.board-page .result-banner{background:linear-gradient(135deg,#e8fff9,#e9f4ff 58%,#fff0f4);border-color:#9edfd5}
.board-page .result-banner .presenter{color:#a32146}
.board-page .result-reason{color:#334856}
.board-page .result-item{background:#edf6fb;color:#244557}
.board-page .result-item.duplicate{background:#ffe8ee;border-color:#f79cb0}
.board-page #boardResult>.pill{background:#edf6fb;color:#284759;border-color:#c5dce7}

/* no click-to-dismiss result modal on the board; inline result is the final state */
.board-page .result-popup{display:none!important}

.student-presenter .presenter-self-title{font-size:clamp(34px,8.5vw,50px)!important;line-height:1.16;letter-spacing:-.035em;max-width:92%;margin-left:auto;margin-right:auto;word-break:keep-all}
.student-presenter #ended{padding-left:18px;padding-right:18px}
.student-presenter #ended .timer{font-size:clamp(38px,12vw,64px)}
.student-presenter .presenter-reason-box{font-size:clamp(14px,4vw,17px);line-height:1.55}
@media(max-width:520px){
  .board-page #boardCount.submission-counter{gap:6px;padding:13px 16px 15px;border-radius:20px;min-width:min(360px,94vw)}
  .board-page .submission-number{font-size:clamp(54px,16vw,76px)}
  .board-page .submission-slash{font-size:clamp(28px,8vw,40px)}
  .board-page .submission-total{font-size:clamp(34px,10vw,50px)}
  .board-page .submission-label{font-size:15px}
  .student-presenter .presenter-self-title{font-size:clamp(30px,9.5vw,40px)!important;max-width:96%}
}

/* 2026-08-19 PC board two-column dashboard */
.board-page .board-shell{width:min(1680px,96vw);max-width:none;margin:0 auto;padding-bottom:16px}
.board-page .board-heading{margin-bottom:12px}
.board-dashboard{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(600px,1.72fr);gap:16px;align-items:stretch;min-height:calc(100vh - 172px)}
.board-left-panel,.board-right-panel{border:1px solid rgba(126,207,218,.22);border-radius:24px;background:rgba(5,28,40,.76);box-shadow:0 18px 42px rgba(0,0,0,.18);backdrop-filter:blur(10px)}
.board-left-panel{padding:16px;display:flex;flex-direction:column;min-height:0}
.board-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.board-panel-label{font-size:14px;font-weight:950;letter-spacing:.04em;color:#d8f6ff;margin-bottom:6px}
.board-left-summary{font-size:13px;font-weight:850;color:#8fc2d2;text-align:right;white-space:nowrap}
.board-left-panel .section-kicker{font-size:13px;padding:5px 9px;margin:0}
.board-page .board-left-panel .board-grid{grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:7px;align-content:start;margin:0}
.board-page .board-left-panel .seat{min-height:48px;border-radius:12px;font-size:16px;gap:3px;padding:4px 3px;box-shadow:0 5px 12px rgba(0,0,0,.14)}
.board-page .board-left-panel .seat strong{font-size:17px;line-height:1}
.board-page .board-left-panel .seat .tiny{font-size:9px;line-height:1;margin-top:1px}
.board-right-panel{padding:18px 20px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.board-page .board-right-panel .board-game{padding:4px 0 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto}
.board-page .board-right-panel .board-main-title{font-size:clamp(34px,4.1vw,68px);margin:2px 0 4px}
.board-page .board-right-panel .timer{font-size:clamp(32px,4vw,58px);margin:0 0 5px}
.board-page .board-right-panel .board-time-track{width:min(760px,94%);margin:4px auto 8px}
.board-page .board-right-panel #boardCount.submission-counter{margin:5px auto 2px;min-width:min(460px,88%);padding:11px 22px 13px}
.board-page .board-right-panel .submission-number{font-size:clamp(52px,6.6vw,94px)}
.board-page .board-right-panel .submission-slash{font-size:clamp(28px,3.4vw,48px)}
.board-page .board-right-panel .submission-total{font-size:clamp(34px,4.2vw,60px)}
.board-page .board-right-panel .submission-label{font-size:clamp(16px,1.7vw,24px)}
.board-page .board-right-panel .result-card{margin:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:16px 18px!important}
.board-page .board-right-panel .result-card.hidden{display:none!important}
.board-page .board-right-panel .result-banner{padding:12px 16px;margin-bottom:10px;display:grid;grid-template-columns:auto 1fr;gap:7px 12px;align-items:center}
.board-page .board-right-panel .result-banner .presenter{font-size:clamp(36px,4.5vw,64px);grid-row:1 / span 2;grid-column:1;min-width:130px;text-align:center}
.board-page .board-right-panel .result-banner .reason-label{justify-self:start;margin:0;font-size:12px;padding:5px 9px}
.board-page .board-right-panel .result-banner .reason-label-secondary{grid-column:2;grid-row:1}
.board-page .board-right-panel .result-banner .reason-label:first-child{display:none}
.board-page .board-right-panel .result-reason{grid-column:2;grid-row:2;font-size:clamp(15px,1.35vw,20px);line-height:1.42;font-weight:850}
.board-page .board-right-panel .result-card h3{font-size:14px;margin:8px 0 6px}
.board-page .board-right-panel .result-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px;min-height:0;overflow:auto;padding-right:3px}
.board-page .board-right-panel .result-item{padding:7px 10px;border-radius:10px;font-size:13px;min-height:36px}
.board-page .board-right-panel .result-item span{font-size:12px}
.board-page .board-right-panel .result-item strong{font-size:14px}
.board-page .board-right-panel #boardResult>.pill{font-size:12px;padding:7px 10px;margin:0}
@media (min-width:1100px) and (max-height:820px){
  .board-page .board-heading{margin-bottom:8px}
  .board-dashboard{min-height:calc(100vh - 150px);gap:12px}
  .board-left-panel,.board-right-panel{border-radius:20px}
  .board-left-panel{padding:12px}
  .board-right-panel{padding:12px 16px}
  .board-page .board-left-panel .board-grid{gap:5px;grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}
  .board-page .board-left-panel .seat{min-height:43px;border-radius:10px}
  .board-page .board-right-panel .result-banner{padding:9px 12px;margin-bottom:7px}
  .board-page .board-right-panel .result-item{padding:5px 8px;min-height:31px}
}
@media (max-width:980px){
  .board-dashboard{grid-template-columns:1fr;min-height:auto}
  .board-left-panel,.board-right-panel{min-height:auto}
  .board-page .board-left-panel .board-grid{grid-template-columns:repeat(auto-fit,minmax(58px,1fr))}
  .board-page .board-right-panel{overflow:visible}
  .board-page .board-right-panel .result-list{overflow:visible}
}
@media (max-width:620px){
  .board-page .board-shell{width:min(96vw,100%)}
  .board-left-panel,.board-right-panel{padding:12px;border-radius:18px}
  .board-page .board-right-panel .result-list{grid-template-columns:1fr}
  .board-page .board-right-panel .result-banner{grid-template-columns:1fr;text-align:center}
  .board-page .board-right-panel .result-banner .presenter,.board-page .board-right-panel .result-banner .reason-label-secondary,.board-page .board-right-panel .result-reason{grid-column:1;grid-row:auto;justify-self:center}
}
/* result header: presenter and reason as two clean columns */
.board-page .board-right-panel .result-banner .reason-label:first-child{display:inline-flex;grid-column:1;grid-row:1;justify-self:center}
.board-page .board-right-panel .result-banner .presenter{grid-column:1;grid-row:2;align-self:center}
.board-page .board-right-panel .result-banner .reason-label-secondary{grid-column:2;grid-row:1;justify-self:start}
.board-page .board-right-panel .result-reason{grid-column:2;grid-row:2}
@media (max-width:620px){
  .board-page .board-right-panel .result-banner .reason-label:first-child,.board-page .board-right-panel .result-banner .presenter,.board-page .board-right-panel .result-banner .reason-label-secondary,.board-page .board-right-panel .result-reason{grid-column:1;grid-row:auto;justify-self:center}
}

/* 2026-08-20 typography refresh: Gowun Dodum for UI copy, sturdy gothic for game-critical data */
:root,
body,
button,
input,
select,
textarea {
  font-family:"Gowun Dodum", "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* Keep fast-glance game information in the original bold gothic style. */
.number-btn,
.number-button,
.seat,
.seat strong,
.big-title,
.initials-badge,
.timer,
.presenter,
.popup-presenter,
.presenter-self-title,
.teacher-live-title,
.submitted-title,
.ended-title,
.submission-number,
.submission-slash,
.submission-total,
.participant-limit-input,
#studentNumber,
#boardCount,
#teacherLiveCount {
  font-family:Inter, Pretendard, "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* PIN uses a neutral gothic face so masking dots stay visually consistent. */
.pin-mask {
  font-family:Arial, sans-serif !important;
}

/* 2026-08-20 compact accordion game logs */
.teacher-page .log-card.log-accordion{
  padding:0;
  overflow:hidden;
  border-radius:14px;
  background:#111a27;
  border:1px solid #253247;
  box-shadow:0 5px 14px rgba(0,0,0,.14);
}
.teacher-page .log-card.log-accordion + .log-card.log-accordion{margin-top:7px}
.teacher-page .log-summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:9px 12px;
  color:#edf3ff;
  user-select:none;
}
.teacher-page .log-summary::-webkit-details-marker{display:none}
.teacher-page .log-summary::marker{display:none;content:""}
.teacher-page .log-summary:hover{background:#162235}
.teacher-page .log-summary-main{min-width:0;flex:1;display:grid;gap:5px}
.teacher-page .log-summary-title{display:flex;align-items:baseline;gap:9px;min-width:0}
.teacher-page .log-summary-title strong{font-size:13px;line-height:1.25;color:#f5f8ff;white-space:nowrap}
.teacher-page .log-summary-date{font-size:10.5px;color:#8493aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.teacher-page .log-summary-reason{
  min-width:0;
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  line-height:1.3;
  color:#bdc9da;
}
.teacher-page .log-summary-reason .reason-label{
  flex:0 0 auto;
  margin:0;
  padding:3px 7px;
  border-radius:999px;
  font-size:9px;
  background:#332b16;
  color:#f6d985;
}
.teacher-page .log-summary-reason > span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.teacher-page .log-summary-toggle{
  flex:0 0 auto;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#9db3d6;
  background:#1b293c;
  font:700 17px/1 Arial,sans-serif;
  transition:transform .16s ease,background .16s ease;
}
.teacher-page .log-accordion[open] .log-summary-toggle{transform:rotate(180deg);background:#263955}
.teacher-page .log-accordion[open] .log-summary{border-bottom:1px solid #253247;background:#141f30}
.teacher-page .log-expanded{padding:12px 13px 13px;background:#0d1520}
.teacher-page .log-expanded .log-grid{margin:0}
.teacher-page .log-expanded .log-save-row{margin-top:8px}
.teacher-page .log-detail-direct{margin-top:10px}
.teacher-page .log-expanded-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid #202d40;
}
.teacher-page .log-expanded-footer .danger-outline{padding:7px 10px;font-size:11px}

@media(max-width:760px){
  .teacher-page .log-summary{min-height:62px;padding:9px 10px}
  .teacher-page .log-summary-title{display:grid;gap:2px}
  .teacher-page .log-summary-title strong{font-size:12px;white-space:normal}
  .teacher-page .log-summary-date{font-size:10px}
  .teacher-page .log-summary-reason{font-size:10.5px}
  .teacher-page .log-summary-toggle{width:24px;height:24px}
  .teacher-page .log-expanded{padding:11px}
}

/* ===== 줄세우기 모드 ===== */
.game-mode-group{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 18px}
.game-mode-btn{border:1px solid rgba(148,163,184,.32);border-radius:16px;padding:12px 14px;background:rgba(15,23,42,.72);color:#e5e7eb;text-align:left;display:flex;flex-direction:column;gap:3px;cursor:pointer}
.game-mode-btn strong{font-family:"Gowun Dodum",sans-serif;font-size:1rem}.game-mode-btn span{font-size:.78rem;color:#94a3b8}
.game-mode-btn.active{border-color:#818cf8;background:linear-gradient(135deg,rgba(79,70,229,.42),rgba(8,145,178,.28));box-shadow:0 0 0 2px rgba(129,140,248,.16)}
.lineup-presenter-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.lineup-presenter-row{display:grid;grid-template-columns:70px 70px 1fr;gap:10px;align-items:center;padding:9px 12px;border-radius:13px;background:rgba(255,255,255,.08);font-size:.9rem}.lineup-order{font-weight:800;color:#fbbf24}.lineup-survive{padding:18px;border-radius:14px;background:rgba(34,197,94,.15);font-weight:700}.lineup-submit-note{display:inline-block;margin-top:6px;padding:8px 10px;border-radius:12px;background:rgba(99,102,241,.12);color:#4338ca;font-size:.9rem}.lineup-log-editors{display:flex;flex-direction:column;gap:10px}.lineup-log-editor{display:grid;grid-template-columns:minmax(170px,.8fr) 1fr 1.4fr;gap:10px;align-items:end;padding:10px;border-radius:12px;background:rgba(255,255,255,.045)}.lineup-editor-title{display:flex;flex-direction:column;gap:2px;font-size:.78rem;color:#a5b4fc}.mode-badge{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:.72rem;margin-right:4px}.mode-badge.lineup{background:rgba(14,165,233,.18);color:#7dd3fc}.mode-badge.single{background:rgba(168,85,247,.16);color:#d8b4fe}.board-lineup-row{grid-template-columns:54px 74px 1fr;font-size:1rem}
@media(max-width:700px){.game-mode-group{grid-template-columns:1fr}.lineup-log-editor{grid-template-columns:1fr}.lineup-presenter-row{grid-template-columns:58px 60px 1fr;font-size:.82rem}}
