:root{color-scheme:light;--ink:#172033;--muted:#667085;--line:#d7dfef;--paper:#fff;--mist:#eef5ff;--gold:#f6b900;--gold-soft:#fff1b8;--aqua:#00a9a5;--coral:#ff6b5f;--violet:#6d5dfc;--green:#28a745;--shadow:0 16px 40px rgba(31,45,75,.16)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--ink);font-family:"Pretendard","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;background:linear-gradient(135deg,#f7fbff 0%,#f3f6ff 48%,#fff8e5 100%)}button,input,textarea{font:inherit}button{border:0;cursor:pointer}.host-app{min-height:100vh;display:grid;grid-template-rows:auto 1fr;padding:16px;gap:14px}.host-header{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:18px 20px;border-radius:8px;color:#fff;background:linear-gradient(90deg,rgba(23,32,51,.95),rgba(27,89,131,.9));box-shadow:var(--shadow)}.brand-block{min-width:0}.eyebrow,h1,h2,h3,p{margin:0}.eyebrow{margin-bottom:5px;color:#bfeee9;font-weight:900}.eyebrow.dark{color:#027e78}h1{font-size:clamp(26px,4vw,52px);line-height:1;letter-spacing:0}h2{font-size:clamp(30px,5vw,74px);line-height:1;letter-spacing:0}h3{font-size:22px}.view-tabs{display:flex;gap:8px;padding:5px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:rgba(255,255,255,.12)}.tab-button{min-width:92px;height:44px;padding:0 16px;border-radius:7px;color:#e9f8ff;background:transparent;font-weight:1000}.tab-button.active{color:#172033;background:#fff}.room-chip{display:grid;gap:3px;min-width:142px;padding:10px 14px;border:1px solid rgba(255,255,255,.32);border-radius:8px;text-align:right;background:rgba(255,255,255,.13)}.room-chip span{color:#d9f7ff;font-size:13px;font-weight:800}.room-chip strong{font-size:17px}.view-panel{display:none;min-height:0}.view-panel.active{display:block}.board-view.active{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;height:calc(100vh - 112px);min-height:620px}.hero-score{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 22px;border:1px solid rgba(215,223,239,.9);border-radius:8px;background:rgba(255,255,255,.9);box-shadow:0 10px 24px rgba(31,45,75,.08)}.score-stats{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));gap:10px}.score-stats div{display:grid;gap:6px;padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:#fff}.score-stats span{color:var(--muted);font-size:13px;font-weight:900}.score-stats strong{font-size:24px}.board-grid{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:14px;min-height:0}.kings-stage,.score-stage,.settings-card{padding:18px;border:1px solid rgba(215,223,239,.9);border-radius:8px;background:rgba(255,255,255,.9);box-shadow:0 10px 24px rgba(31,45,75,.08);min-height:0}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.section-title p{color:var(--muted);font-weight:800}.king-list,.score-board{display:grid;gap:10px}.score-stage{display:grid;grid-template-rows:auto minmax(0,1fr)}.score-board{align-content:start;overflow:auto;padding-right:4px}.king-card,.student-row,.challenger-card,.attendance-row{border:1px solid var(--line);border-radius:8px;background:var(--paper)}.king-card{display:grid;gap:8px;padding:14px;background:linear-gradient(135deg,#fff7d1,#fff)}.crown-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:999px;color:#5b3d00;background:var(--gold);font-size:23px;line-height:1}.king-name{display:flex;gap:10px;align-items:center;font-size:22px;font-weight:1000}.student-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,260px) auto;gap:14px;align-items:center;padding:12px 14px}.student-main{display:flex;gap:10px;align-items:center;min-width:0}.student-name{overflow:hidden;font-size:clamp(18px,2.3vw,28px);font-weight:1000;text-overflow:ellipsis;white-space:nowrap}.status-pill{flex:0 0 auto;padding:5px 9px;border-radius:999px;color:#25314a;background:var(--mist);font-size:12px;font-weight:900}.status-pill.king{color:#5b3d00;background:var(--gold-soft)}.status-pill.challenger{color:#004f4c;background:#cff8f3}.score-meter{display:grid;gap:7px}.score-number{font-size:18px;font-weight:1000;text-align:right}.meter-track{height:12px;overflow:hidden;border-radius:999px;background:#e7edf7}.meter-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--aqua),var(--gold));transition:width .24s ease}.score-actions{display:flex;gap:8px}.mini-button{min-height:36px;padding:0 12px;border-radius:8px;color:#fff;background:#25314a;font-weight:900}.challenger-dock{display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:14px;align-items:center;padding:14px 16px;border-radius:8px;color:#fff;background:rgba(23,32,51,.95);box-shadow:0 -8px 22px rgba(20,28,45,.16)}.dock-title{display:grid;gap:4px}.dock-title span{color:#bfeee9;font-weight:900}.dock-title strong{font-size:24px}.challenger-carousel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory}.challenger-card{flex:0 0 220px;display:grid;gap:6px;padding:12px;color:var(--ink);background:linear-gradient(135deg,#e3fffb,#fff);scroll-snap-align:start}.challenger-card strong{font-size:18px}.settings-view.active{display:block;min-height:calc(100vh - 112px);overflow:auto}.settings-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:14px;align-items:start}.settings-card.wide{grid-column:span 2}.field{display:grid;gap:8px}.field span{color:#38445c;font-size:14px;font-weight:900}input,textarea{width:100%;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;outline:0}input{height:52px;padding:0 14px}textarea{min-height:156px;padding:14px;resize:vertical}input:focus,textarea:focus{border-color:var(--aqua);box-shadow:0 0 0 4px rgba(0,169,165,.16)}.guide-box{display:grid;gap:6px;margin-top:12px;padding:13px 14px;border-radius:8px;color:#344054;background:#f5f9ff;border:1px solid #d9e6fa;font-weight:700}.guide-box strong{font-size:16px}.guide-box.small{font-size:14px}.setting-row{display:grid;grid-template-columns:minmax(140px,190px) minmax(150px,1fr);gap:12px;margin-top:12px}.setting-summary{display:grid;align-content:center;gap:8px;min-height:82px;padding:14px;border-radius:8px;color:#493400;background:linear-gradient(135deg,var(--gold-soft),#fff);border:1px solid #f5db78}.setting-summary span{font-weight:900}.setting-summary strong{font-size:32px}.button-row{display:flex;gap:10px;align-items:center;margin-top:12px}.button-row.stacked{align-items:stretch;flex-direction:column}.primary-button,.secondary-button,.danger-button,.light-button{min-height:48px;padding:0 18px;border-radius:8px;color:#fff;font-weight:1000;box-shadow:0 10px 18px rgba(31,45,75,.12)}.primary-button{background:var(--aqua)}.secondary-button{background:var(--violet)}.danger-button{background:var(--coral)}.light-button{color:#172033;background:#e9effb}.student-form{display:grid;gap:12px}.attendance-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.attendance-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 13px}.attendance-name{font-size:18px;font-weight:1000}.attendance-row.absent{opacity:.62;background:#f7f8fb}.toggle-button{min-width:86px;height:38px;border-radius:999px;color:#fff;background:var(--green);font-weight:1000}.toggle-button.absent{background:var(--coral)}.empty-state{padding:18px;border:1px dashed #b9c4d8;border-radius:8px;color:var(--muted);text-align:center;font-weight:800;background:rgba(255,255,255,.68)}@media (max-width:980px){.host-app{padding:10px}.host-header{grid-template-columns:1fr;align-items:stretch}.view-tabs{width:100%}.tab-button{flex:1}.room-chip{text-align:left}.board-view.active{height:auto;min-height:calc(100vh - 20px)}.hero-score{align-items:stretch;flex-direction:column}.score-stats{grid-template-columns:repeat(3,1fr)}.board-grid,.settings-grid,.settings-card.wide,.challenger-dock{grid-template-columns:1fr}.settings-card.wide{grid-column:auto}.student-row{grid-template-columns:1fr}.score-number{text-align:left}.score-actions{justify-content:flex-end}}@media (max-width:560px){.score-stats{grid-template-columns:1fr}.setting-row{grid-template-columns:1fr}.attendance-list{grid-template-columns:1fr}}.toast-message{position:fixed;bottom:40px;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(31,45,75,0.95);color:#fff;padding:14px 28px;border-radius:12px;font-weight:700;font-size:16px;opacity:0;pointer-events:none;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);z-index:9999;box-shadow:0 8px 32px rgba(31,45,75,0.2)}.toast-message.show{opacity:1;transform:translateX(-50%) translateY(0)}