/* Quiet, consistent surfaces; one accent for the next classroom action. */
:root{--accent:#4f46e5;--green:#4f46e5;--lime:#eef2ff;--bg:#f6f7fb;--ink:#202435;--muted:#667085;--line:#e3e7ef;--white:#fff;--orange:#c88732;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:var(--ink);background:var(--bg)}
body{background:var(--bg);line-height:1.55}h1,h2,h3{letter-spacing:-.6px}h1{font-size:28px;font-weight:700}h2{font-size:19px;font-weight:650}h3{font-weight:650}.hint,.muted,.footer{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.5px;color:#778096}.row{gap:12px}input,select,textarea{border-color:#d8deea;background:#fff;color:var(--ink);border-radius:9px;min-height:42px}input:focus,select:focus,textarea:focus{border-color:#818cf8;outline:2px solid #e0e7ff;outline-offset:1px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a5b4fc;outline-offset:3px}button{transition:background .15s,border-color .15s,color .15s}button:hover:not(:disabled){filter:none}button:disabled{opacity:.5}.btn{border-radius:9px;min-height:42px;font-size:13px;font-weight:600;background:var(--accent);box-shadow:none}.btn:hover:not(:disabled){background:#4338ca}.btn.outline{border:1px solid #dce1eb;background:#fff;color:#41495c}.btn.outline:hover:not(:disabled){background:#f6f7fb;border-color:#bfc7d8}.btn.light,.btn.lime{background:#eef2ff;color:#4f46e5}.btn.light:hover:not(:disabled),.btn.lime:hover:not(:disabled){background:#e0e7ff}.btn.danger{background:#fff7f7;border:1px solid #f0d5d5;color:#b04747}.btn.danger:hover:not(:disabled){background:#ffeded}.text-btn{color:#667085}.text-btn:hover{color:#4338ca;background:#f1f3fa}.btn[aria-pressed=true].outline{background:#eef2ff;border-color:#a5b4fc;color:#4338ca}
.shell{padding-left:224px}.sidebar{width:224px;padding:30px 18px 20px;background:#fff;border-right:1px solid var(--line);color:var(--ink)}.brand{margin:0 12px 42px;color:#202435}.brand img{width:32px;height:32px}.brand strong{font-size:21px;letter-spacing:-1px}.brand .caption{color:#9299aa;letter-spacing:1.8px;font-size:8px}.nav-label{color:#9299aa;letter-spacing:1.4px;margin:0 15px 12px;font-size:10px}.nav{gap:5px}.nav button{color:#606a7e;font-size:14px;padding:13px 14px;border-radius:9px}.nav button:hover:not(:disabled){background:#f5f6fa}.nav button.active{background:#eef0ff;color:#4f46e5;font-weight:650}.nav button .arrow{color:#a0a7b7}.sidebar-management{margin-top:auto;padding-top:24px;border-top:1px solid #edf0f5}.sidebar-management .nav button{font-size:13px}.sidebar .profile{margin-top:20px!important;padding-top:20px;border-color:#edf0f5}.profile strong{color:#353c4e;font-size:12px}.profile small{color:#8992a4}.profile .text-btn{color:#8992a4}.avatar{background:#eef0f6;color:#5a647c}.topbar{height:72px;background:#fff;padding:0 36px}.breadcrumb strong{color:#41495c}.live-note,.topbar .date{color:#7c869a}.live-dot{background:#818cf8}.content{padding:30px 36px 40px;max-width:1440px}.page-heading{margin-bottom:26px}.page-heading p{font-size:14px}.page-heading .eyebrow{color:#7c869a}.footer{font-size:10px;margin-top:36px}
.panel,.round-card,.round-history-row{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 5px #20243503}.panel-head{padding:23px 24px;border-color:#edf0f5}.panel-body{padding:24px}.rounds-heading{margin:0 0 27px}.rounds-heading h1{font-size:29px}.rounds-heading p{color:#7a8497;font-size:14px}.round-filters .btn{border-radius:8px;border-color:transparent;background:transparent;color:#788195;padding:8px 13px}.round-filters .btn[aria-pressed=true]{background:#e9ecf8;color:#414c70;border-color:transparent}.round-cards{gap:16px}.round-card{padding:25px 27px}.round-card.active{background:#fff;border-color:#cbd2ed;border-left:4px solid #6366f1}.round-card-title>.icon{background:#f2f3fa;color:#6c73a2;border-radius:8px}.round-card h2{font-size:20px}.round-card p,.round-history-row p{color:#8590a4}.round-card-stats{margin-top:27px}.round-card-stats strong{font-size:27px;color:#323a4d}.round-card-stats .missing-number strong{color:#a8752c}.round-progress progress{background:#edf0f6;height:7px}.round-progress progress::-webkit-progress-bar{background:#edf0f6}.round-progress progress::-webkit-progress-value{background:#818cf8}.round-progress progress::-moz-progress-bar{background:#818cf8}.round-history{margin-top:30px}.round-history>h2{font-size:16px;color:#778095}.round-history-row{border-radius:11px;padding:19px 23px}.round-history-row>.icon{background:#f2f4f9;color:#929bb0}.round-history-row h3{font-size:15px}.round-delete-action{margin-top:0;float:right}.round-delete-action .btn{font-size:11px;min-height:30px;background:transparent;border-color:transparent;color:#9d7b7b}.round-page-heading{margin-bottom:23px}.round-page-heading h1{font-size:27px}.round-page-heading>p{color:#8991a2}.back-to-rounds{font-size:12px;color:#8b93a5}.round-tabs{border-color:#e3e7ef;margin-top:22px;gap:8px;clear:both}.round-tabs .btn{font-size:12px;padding:9px 13px}.round-context-label{color:#727d91}.chip{background:#f1f3f8;color:#717d92;font-weight:600;border-radius:6px}.chip.green{background:#eef0ff;color:#5c5ed3}.chip.orange{background:#fff4e5;color:#a6752d}.demo-banner{background:#f0f2f8;border-color:#e2e6f0;color:#818a9e}.demo-banner select{background:white;border-color:#dfe3ed}.notice{background:#f3f5fa;color:#738096;border:1px solid #e7ebf3;border-radius:10px;font-size:12px}.notice strong{color:#4c5976}.connection-error{background:#fff4ed;color:#9b6a3b;border-color:#f5dcc3}
.roulette-layout{gap:22px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.wheel-card{padding:24px}.wheel-heading h2{font-size:18px}.wheel-stage{width:min(100%,350px);margin:20px auto 12px}.wheel-pointer{border-top-color:#4f46e5}.roulette-hub{background:#fff;color:#4f46e5;box-shadow:0 3px 20px #26324b15;border:1px solid #e3e7f0}.roulette-hub span{color:#8790a5}.roulette-hub strong{color:#303953}.wheel-action .btn{font-size:14px}.wheel-action p,.wheel-roster p{color:#8992a4}.wheel-roster{border-color:#edf0f5}.wheel-roster summary{color:#7d879a}.presenter-card{padding:25px}.presenter-card-label{color:#7881a0;background:#f2f3fa;border-radius:6px;font-size:11px}.presenter-name{color:#202435;font-size:34px}.presenter-card h2{color:#6d778a;font-size:18px}.presenter-card .hint{font-size:12px}.presenter-placeholder h2{color:#414c64}.presenter-question{background:#f4f5fa;color:#9199b0;border:1px solid #e7ebf2}.presenter-actions{gap:9px}.presenter-actions .btn{font-size:13px;min-height:42px}.defer-button{grid-column:1/-1;font-size:12px!important;background:#f9fafc!important;color:#7c8597!important;border-color:#e4e8ef!important}.presentation-completed{background:#f0f2f8;border-color:#e3e7ef;color:#56627c;padding:18px 22px;border-radius:11px}.presentation-completed h3{font-size:14px}.presentation-completed p{color:#929aad}.student-name-chip{background:#fff;color:#69768b;border:1px solid #e3e7ef;border-radius:7px}.now-presenting{border-color:#d7ddec;color:#6b7490}.now-presenting strong{color:#414c67}.deferred-panel{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px;padding:20px 24px;margin:20px 0}.deferred-panel h3{font-size:15px}.deferred-panel .hint{margin-top:5px}.deferred-names{display:flex;flex-wrap:wrap;gap:10px}.deferred-names>div{display:flex;gap:13px;align-items:center;background:#f7f8fc;border:1px solid #e5e9f1;border-radius:9px;padding:8px 10px 8px 15px}.deferred-names strong{font-size:13px}
.voting-status-bar{position:static!important;max-height:none!important;overflow:visible!important}.participation-panel{border-color:#e3e7ef;padding:19px 22px;border-radius:12px;margin-bottom:20px}.participation-heading h3{font-size:15px}.participation-heading h3 strong{font-size:20px;color:#4338ca}.all-complete{background:#eef0ff;color:#4f46e5;font-size:12px}.teacher-assessment{color:#9299aa}.voter-group>b{font-size:12px;color:#7a8395}.voter-name{font-size:12px;border-radius:6px}.voter-name.pending{background:#fff4e6;color:#9e752c}.voter-name.completed{background:#eef1fb;color:#626a97}.voter-none,.excluded-voters{color:#929bad}.online{color:#6675b0}.offline{color:#9ca4b5}.voter-name small{color:#a19a8a}.close-vote-warning{border:1px solid #eddbb9;background:#fffaf1;border-radius:12px;padding:20px}.close-vote-warning>strong{font-size:19px;color:#946729}.close-vote-warning p{font-size:13px;color:#948065;line-height:1.8;margin-top:14px}.pending-confirm-names{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.pending-confirm-names span{padding:6px 10px;background:#fff;border:1px solid #efe1c9;border-radius:7px;font-size:14px;color:#876e48}
.submission-group{border-radius:12px;padding:22px}.submission-group.missing{background:#fffbf3;border-color:#ebdbbd}.submission-group.missing h2{color:#9a783f}.submission-group.received{background:#f4f6fe;border-color:#dbe1f4}.submission-group.received h2{color:#68759f}.submission-group>p{color:#9395a0}.submission-name{background:#ffffffb8;color:#647089;border-radius:6px;border:1px solid #ffffff;font-size:13px}.submission-excluded{color:#929bad;background:#f2f4f8;border-color:#e4e8f0;border-radius:9px}.entry-row.submission-missing,.workflow-table tr.submission-missing td{background:#fffcf6}.entry-row.submission-received,.workflow-table tr.submission-received td{background:#f8f9fe}.entry-row.submission-missing{border-left-color:#dfbf85}.entry-row.submission-received{border-left-color:#b1bfe7}.workflow-table .submission-missing td:first-child{border-left-color:#dfbf85}.workflow-table .submission-received td:first-child{border-left-color:#b1bfe7}.entry-row.current{background:#f1f3ff;box-shadow:inset 0 0 0 1px #adb6ec}.entry-title{font-size:14px;color:#465069}.entry-meta{color:#929bad}.workflow-table select{font-size:13px}.workflow-order .hint{color:#939bad}.workflow-help{font-size:12px;line-height:1.8;color:#9199a9}
.material-link{background:#f8f9fd;border-color:#e3e7f0;color:#58679b;border-radius:9px}.material-link:hover{background:#f0f2fc;border-color:#bbc5e6}.material-link strong{font-size:14px}.material-link small{color:#8a94a9}.directory-reference,.drive-reference{background:#f7f8fc;border-color:#e3e7f0;color:#5b6780}.drive-reference>span{color:#7f8ba1}.work-description{border-color:#e0e5ef;background:#fafbfe}.work-description summary{color:#7e88a2}.work-description p{color:#7f8a9f}.saved-entry{background:#f5f7fe;border-color:#dce2f4}.entry-link-row{background:#fafbfe;border-color:#e3e7f0}.roster-person.received{background:#f4f6fd;border-color:#dce3f5}.roster-person.received span{color:#6877a3}.roster-person.missing{background:#fffbf2;border-color:#eedfc0}.roster-person.missing span{color:#a28042}.roster-person.excluded{background:#f4f5f8;border-color:#e5e8ef;color:#929aac}
.student-shell{background:#f6f7fb}.student-topbar{background:white;border-color:#e3e7ef;min-height:76px;padding:15px 32px}.student-brand{color:#202435;font-size:20px}.student-account strong{color:#59637a;font-size:13px}.student-topbar nav .btn{font-size:12px}.student-topbar nav .btn.light{background:#eef1fb;color:#5d669a}.student-content{max-width:1260px;padding:30px 32px 60px}.student-focus{background:#fff;border-color:#e2e6ef;box-shadow:0 4px 24px #252e4904;border-radius:18px;padding:35px 42px;margin:12px auto}.student-class-label{font-size:13px;color:#8d96a7;margin-bottom:18px}.stage-tag{background:#eef1fa;color:#737d9d;border-radius:6px;padding:6px 11px;font-size:12px}.stage-tag.voting{background:#eef0ff;color:#4f46e5}.student-next-task{margin:20px 0 24px}.student-next-task>span{font-size:11px;color:#959db0;letter-spacing:.8px}.student-next-task h2{font-size:32px;font-weight:700;line-height:1.45;letter-spacing:-1px;color:#202435;margin:6px 0 12px}.student-instruction{font-size:17px;color:#8490a4;line-height:1.8;margin:0}.student-presenter{font-size:19px;color:#737e96;margin:20px 0 6px}.student-focus h1{font-size:23px;color:#56627c;line-height:1.5}.student-focus .student-state-icon{background:#f1f3fb;color:#a3adca;width:56px;height:56px;padding:15px;margin:20px auto}.student-saved .student-next-task h2{font-size:30px}.student-saved .student-instruction{font-size:16px}.student-saved h1{font-size:22px}.student-saved .submitted-score-summary{margin:24px auto}.student-focus[data-stage=missed] .student-next-task h2{color:#a67a38}.student-voting .student-next-task{margin-bottom:15px}.student-voting .student-next-task h2{font-size:29px}.student-voting .student-presenter{font-size:17px;margin-top:15px}.student-voting h1{font-size:22px}.student-vote-panel{border-color:#e5e9f3;margin-top:22px;padding-top:14px}.student-vote-panel .score-row label{font-size:17px;color:#5f6c84}.score-picked{color:#787cca}.score-buttons button,.student-vote-panel .score-buttons button{background:#f1f3f9;color:#6e7a93;border:1px solid #e3e7f0;border-radius:9px;font-weight:650}.score-buttons button:hover:not(:disabled){background:#e9edfa;border-color:#b9c3e8}.score-buttons button.selected,.student-vote-panel .score-buttons button.selected{background:#4f46e5;border-color:#4f46e5;color:white;box-shadow:0 2px 5px #4f46e51a}.student-vote-panel .score-buttons button{height:54px;font-size:23px}.student-vote-panel button[type=submit]{font-size:18px;min-height:56px;border-radius:10px}.submitted-score-grid>div{background:#f3f5fd;border:1px solid #e0e5f5;border-radius:12px}.submitted-score-grid span{color:#8690a6}.submitted-score-grid strong{color:#5155b3}.submitted-score-grid small{color:#929bb0}.student-roster .panel-head p{color:#8b95a8}.gallery-card{background:white;border-color:#e3e7ef;border-radius:12px}.gallery-card p{color:#929bad}
.ranking-celebration{background:#fff;border:1px solid #e0e5ef;color:#202435;border-radius:16px;padding:28px}.ranking-hero h2{font-size:25px}.ranking-hero p{color:#929bad}.ranking-hero .eyebrow{color:#939ab1}.celebration-icon{font-size:47px;transform:none}.podium-grid{gap:14px}.podium-card,.podium-card.place-1,.podium-card.place-2,.podium-card.place-3{background:#fcfcfe;border:1px solid #e3e7f0;box-shadow:none;color:#424c64;border-radius:12px;padding:22px}.podium-card.place-1{border:1px solid #a5aef0;background:#f8f9ff}.podium-medal{font-size:31px}.podium-card h3{font-size:24px;font-weight:650}.podium-card p{color:#939bad}.podium-card strong{color:#39436c;font-size:35px}.podium-card strong small{color:#969eb1}.podium-place{font-size:13px;color:#7b85a0}.podium-card.is-mine{outline:2px solid #818cf8;outline-offset:3px}.my-ranking{background:#f3f5fc;color:#7f8aa3;border:1px solid #e5e9f5;border-radius:9px;font-size:13px}.my-ranking strong{color:#555c9a;font-size:18px}.rank-medal{border-radius:7px;background:#f4f5f9;color:#8790a4;min-width:56px;font-size:12px}.rank-medal.place-1{background:#eef0ff;color:#6964c5}.rank-medal.place-2{background:#eff2f7;color:#7c88a3}.rank-medal.place-3{background:#f7f1e9;color:#a78b65}.my-ranking-row{background:#f5f6ff!important}.score-text{color:#515d7d;font-size:19px;font-weight:650}.score-track{background:#edf0f7}.score-track i{background:#939ce2}.ranking-table td{padding-top:19px;padding-bottom:19px}.vote-matrix,.work-ballots{border-color:#e3e7ef;border-radius:10px}.vote-matrix th:first-child{background:#f6f7fc}.vote-detail-title{color:#768198}.vote-matrix summary,.work-ballots summary{font-weight:600;color:#66718a}.work-ballots summary span{color:#969eb0}th{background:#f8f9fc;color:#8a94a8;font-size:12px;font-weight:600;border-color:#e7ebf2}td{font-size:13px;color:#647089;border-color:#e9edf4}.table-wrap{border-radius:0 0 13px 13px}
.login-layout{background:#fafbfe}.login-art{background:#24283b;color:#fff;padding:50px 60px}.login-art .brand{color:#fff}.login-art .brand .caption{color:#9198b5}.login-art h1{font-size:40px;font-weight:650;letter-spacing:-1.5px}.login-art p{color:#a3abc7;line-height:2}.login-art .art-object{display:none}.login-art .eyebrow{color:#8790b0}.login-art .tiny{font-size:10px;letter-spacing:1px;color:#717b9c}.login-form-wrap{background:#fff}.login-form{max-width:380px}.login-form h2{font-size:27px;font-weight:650}.login-form p{color:#929bad;font-size:13px}.login-form .eyebrow{color:#8f97ad}.login-form .divider{color:#a2aabc}.login-form .btn{min-height:46px}.login-form input{min-height:46px}.login-form label{color:#66718a}.login-form .hint{color:#929bad}dialog{border-color:#e3e7ef;border-radius:15px;box-shadow:0 20px 90px #2024351c}dialog::backdrop{background:#252c485c;backdrop-filter:blur(3px)}dialog .dialog-head{border-color:#e8ebf2;padding:22px 25px}dialog .dialog-head h2{font-size:19px}dialog .dialog-body{padding:26px}dialog .close{background:#f3f4f9;color:#8d96aa;border-radius:8px}#toast{background:#323a58;box-shadow:0 8px 26px #20243516;border-radius:9px;font-size:13px}#toast.error{background:#a64e51}
@media(min-width:1001px) and (max-height:800px){.topbar{height:65px}.content{padding-top:25px}.round-page-heading h1{font-size:25px}.wheel-stage{width:min(100%,290px);margin-top:14px}.wheel-card,.presenter-card{padding:20px}.presenter-name{font-size:29px}.student-content{padding-top:22px}.student-focus{padding:26px 34px}.student-next-task{margin:14px 0 18px}.student-next-task h2{font-size:29px}.student-voting .student-next-task h2{font-size:26px}.student-class-label{margin-bottom:12px}.student-vote-panel .score-row{padding:13px 0}.student-vote-panel .score-buttons button{height:52px}.student-vote-panel button[type=submit]{min-height:52px}}
@media(max-width:1150px) and (min-width:701px){.sidebar{width:210px;padding-left:15px;padding-right:15px}.shell{padding-left:210px}.content{padding-left:25px;padding-right:25px}.topbar{padding-left:25px;padding-right:25px}.roulette-layout{gap:16px}}
@media(max-width:900px){.student-topbar{padding:15px 20px}.student-content{padding:24px 20px}.student-focus{padding:28px}.student-next-task h2{font-size:28px}}
@media(max-width:700px){.shell{padding-left:0;padding-bottom:85px}.sidebar{width:100%;height:76px;top:auto;bottom:0;border:0;border-top:1px solid var(--line);border-radius:0;flex-direction:row;align-items:center;padding:8px 15px}.sidebar>.nav{flex:1}.sidebar .brand,.sidebar>.nav-label,.sidebar .profile{display:none}.nav button{font-size:11px;padding:8px;gap:4px}.sidebar-management{margin:0 0 0 22px;padding:0 0 0 18px;border-top:0;border-left:1px solid #e4e8f0}.sidebar-management>.nav-label{display:none}.sidebar-management .nav button{font-size:10px}.content{padding:22px 17px}.round-card{padding:20px}.round-card-actions{width:100%;justify-content:stretch}.round-card-actions>.btn{flex:1}.round-card-stats{gap:12px}.round-delete-action{float:none;margin-top:10px;justify-content:flex-start}.round-page-heading h1{font-size:24px}.roulette-layout{grid-template-columns:1fr}.wheel-stage{width:min(100%,330px)}.round-tabs .btn{font-size:11px;padding:8px}.student-content{padding:18px 12px}.student-focus{padding:26px 20px}.student-next-task h2,.student-voting .student-next-task h2{font-size:25px}.student-instruction{font-size:16px}.student-vote-panel .score-buttons button{height:54px}.student-next-task{margin:18px 0}.deferred-panel{padding:18px}.podium-card h3{font-size:22px}.ranking-hero h2{font-size:22px}.ranking-celebration{padding:20px}.login-art{padding:30px;min-height:270px}.login-art h1{font-size:28px;margin:25px 0 12px}.login-form-wrap{padding:36px 26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.podium-card{animation:none}}
.voting-status-bar .voter-name small{display:none}.participation-close{margin-left:auto}.participation-heading .teacher-assessment{margin-left:0}.voting-status-bar .voter-name{padding:5px 8px}.voting-status-bar .voter-group{margin-top:7px}.voting-status-bar .participation-heading{margin-bottom:10px}
/* Keep the action readable without pushing the scoring controls off the page. */
.student-instruction{color:#6b7790}.student-voting .student-class-label{display:inline-block;margin:0 10px 0 0}.student-voting .student-next-task{margin:14px 0 12px}.student-voting .student-next-task h2{margin:4px 0 8px}.student-voting .student-instruction{font-size:15px}.student-voting .student-presenter{display:inline-block;margin:0 10px 0 0;color:#6b7790}.student-voting h1{display:inline;font-size:20px}.student-voting .work-description{margin:12px auto 0}.student-voting .student-vote-panel{margin-top:16px;padding-top:10px}.student-vote-panel .score-row .score-buttons{margin-top:12px}.student-vote-panel .hint{font-size:12px}
