:root{color-scheme:dark;--surface:rgba(37,43,57,.60);--edge:rgba(255,255,255,.13);--text:#f8faff;--muted:#aab3c6;--blue:#159aff;--violet:#8272f5}*{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",Inter,Arial,sans-serif;background:#040812;color:var(--text)}body{margin:0;min-height:100vh}.glow{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse 48% 35% at 13% 0%,#023c67 0,transparent 90%),radial-gradient(ellipse 38% 36% at 90% 18%,#18103c 0,transparent 90%),radial-gradient(ellipse 35% 28% at 75% 72%,#402008 0,transparent 90%),#05080d}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #65c7ff;outline-offset:2px}#app{max-width:1020px;margin:auto;padding:26px 22px 120px}header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:30px}h1{font-size:clamp(29px,5vw,43px);letter-spacing:-.035em;margin:8px 0 3px}h2{font-size:32px;letter-spacing:-.035em;margin:5px 0}.eyebrow{font-size:11px;font-weight:750;letter-spacing:.12em;color:#76caff}.sub,.pagehead p{color:var(--muted);margin:0;line-height:1.45}.pagehead{margin:0 0 20px}.iconbutton,.mini{border:1px solid var(--edge);background:var(--surface);color:#fff;border-radius:17px;padding:11px 14px}.panel{display:none}.panel.active{display:block}.hero{background:linear-gradient(125deg,#0099fb,#456ef5 82%,#7375fa);padding:28px;border-radius:28px;box-shadow:0 18px 50px #0052d52e}.hero .eyebrow{color:#e4f4ff}.hero-row{display:flex;align-items:baseline;gap:13px;margin-top:10px}.hero strong{font-size:clamp(53px,9vw,82px);letter-spacing:-.055em;line-height:1}.hero-row span{font-size:17px}.hero-foot{display:flex;justify-content:space-between;color:#e4f5ff;font-size:13px;margin-top:17px;gap:12px}.notice{border:1px solid #77acff55;background:#0873b328;border-radius:18px;padding:13px 17px;color:#c6e8ff;font-size:13px;line-height:1.45;margin:18px 0}.section-title{font-size:20px;font-weight:750;letter-spacing:-.02em;margin:25px 0 14px}.tiles,.toolgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile,.glass{background:var(--surface);border:1px solid var(--edge);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);border-radius:23px;box-shadow:0 12px 32px #0002}.tile{text-align:left;color:var(--text);padding:19px;min-height:152px;display:flex;flex-direction:column;align-items:flex-start}.tile b{font-size:17px;margin-top:12px}.tile small{color:var(--muted);margin-top:5px}.tileicon,.toolicon{width:43px;height:43px;display:grid;place-items:center;background:linear-gradient(145deg,#54d2ff,#067aff);border-radius:13px;box-shadow:inset 0 1px 0 #fff8;font-size:23px}.purple{background:linear-gradient(145deg,#b7a6ff,#623ff1)}.cyan{background:linear-gradient(145deg,#80f0ff,#0897cf)}.gold{background:linear-gradient(145deg,#ffd179,#dc831d)}.glass{padding:17px}.step{margin-bottom:13px}.step-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.step b,.tool>b{font-size:17px}.textbutton{border:0;background:transparent;color:#48b8ff;font-weight:650;padding:8px}.student-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:15px}.student-choice{border:1px solid var(--edge);border-radius:15px;min-height:85px;background:#ffffff09;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:13px}.student-choice.selected{border-color:#56c0ff;background:#159aff38}.avatar{width:33px;height:33px;border-radius:11px;background:linear-gradient(130deg,#335a82,#395dda);display:grid;place-items:center;font-weight:750;color:#eaf8ff}.hint{font-size:12px;color:var(--muted);margin:11px 0;line-height:1.45}.pills,.quick{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.pill,.amount{border:1px solid var(--edge);background:#ffffff0b;color:#e6ebf7;border-radius:30px;padding:9px 13px;min-height:42px}.pill.selected,.amount.selected{background:#117afc;color:#fff;border-color:#55c0ff}.field-label{display:block;color:#c1cadb;font-size:13px;margin:16px 0 8px}input:not([type=range]),textarea,select{background:#ffffff12;border:1px solid var(--edge);border-radius:13px;min-height:45px;padding:11px 13px;color:white;width:100%;outline:none}input::placeholder,textarea::placeholder{color:#929bb0}select option{background:#152136}.primary,.secondary,.danger{border-radius:14px;padding:13px 17px;font-weight:720;min-height:46px}.primary{background:linear-gradient(120deg,#1599ff,#5274f5);color:#fff;border:0;width:100%;font-size:16px}.primary:disabled{opacity:.55;cursor:not-allowed}.secondary{background:#1885ed;color:#fff;border:1px solid #57b7ff}.danger{background:#692a35;color:#fff;border:1px solid #c17580;margin-top:8px}.feedback{font-size:13px;color:#9ee9c3;text-align:center;min-height:20px;margin:10px}.rosterrow,.ledgerrow,.settingrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 2px;border-bottom:1px solid var(--edge)}.rosterrow:last-child,.ledgerrow:last-child,.settingrow:last-child{border:0}.rosterrow .left{display:flex;align-items:center;gap:11px}.rosterrow small,.ledgerrow small{display:block;color:var(--muted);margin-top:4px}.rosterrow strong,.ledgerrow strong{font-size:17px}.toolgrid{margin-top:16px}.tool{min-height:235px}.toolicon{margin-bottom:13px}.result{font-size:21px;font-weight:730;margin:18px 0}.tool .secondary{margin:12px 0 0}.groupresults{font-size:13px;line-height:1.5;margin-top:12px}.groupresults div{padding:7px 0;border-top:1px solid var(--edge)}.clock{font-variant-numeric:tabular-nums;font-size:36px;font-weight:760;margin-top:14px}.timer-controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.timer-controls .secondary{margin:0}.tool textarea{margin-top:13px}.inline{display:flex;gap:9px;margin-top:14px}.inline input{flex:1}.inline button{flex:0}.reasonlist{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.reasonlist button{background:#ffffff12;color:#dce6f5;border:1px solid var(--edge);padding:9px;border-radius:12px}.tag{font-size:11px;text-align:right;background:#ffffff13;color:#b5c7dd;border-radius:12px;padding:6px 9px}.settingrow span:first-child{flex:1}nav{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:3px;z-index:10;background:#252a33c9;border:1px solid #fff5;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-radius:29px;padding:5px;box-shadow:0 9px 30px #0009;max-width:calc(100vw - 24px)}nav button{background:none;border:0;color:#d4d9e4;display:flex;flex-direction:column;align-items:center;gap:2px;border-radius:24px;min-width:64px;padding:7px 9px;font-size:10px}nav button span{font-size:22px;line-height:24px}nav button.navactive{background:#ffffff26;color:#45b8ff}.empty{color:#abb5c8;text-align:center;padding:24px 8px}@media(max-width:550px){#app{padding:20px 16px 108px}header{margin-bottom:20px}.hero{padding:22px}.tiles{gap:9px}.tile{min-height:135px;padding:15px}.tile b{font-size:15px}.student-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.toolgrid{grid-template-columns:1fr}.tool{min-height:auto}.hero-foot{font-size:11px}nav button{min-width:57px;padding:7px 6px}}
.import-preview{margin:14px 0;color:#d7e5f7;font-size:13px;overflow:auto;max-height:320px}.import-preview table{border-collapse:collapse;width:100%;min-width:400px}.import-preview th,.import-preview td{padding:8px;border-bottom:1px solid var(--edge);text-align:left;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-preview th{color:#78caff}.import-preview .warning{color:#ffce84}input[type=file]{height:auto!important;font-size:12px;overflow:hidden}input[type=file]::file-selector-button{background:#1584ed;color:white;border:0;border-radius:9px;padding:8px 11px;margin-right:9px}.import-preview p{line-height:1.45}
.balance-line{margin-top:14px;padding:13px 14px;background:#159aff20;border:1px solid #159aff55;border-radius:13px;color:#d8ecff;font-weight:650}.ledgerrow strong.minus{color:#f9b7aa}.ledgerrow strong.plus{color:#a8eec5}.rosterrow.clickable{cursor:pointer}.rosterrow.clickable:hover{background:#ffffff0b}.activity-action{font-size:12px;color:#58beff;border:0;background:none;padding:4px 0}nav button{min-width:64px}@media(max-width:550px){nav button{min-width:57px}}
.accountbar{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;margin-bottom:18px;gap:12px;overflow-wrap:anywhere}.undo{font-size:12px;margin:8px 0 0}.ledgerrow>span{flex:1}.ledgerrow .undo{padding:7px 12px}.locked{opacity:.6}.student-choice .avatar{border-radius:20px;background:linear-gradient(135deg,#75e7ff,#8a91ff);color:#102035;font-weight:800}#loginPanel{max-width:560px;margin:24px auto}#loginPanel .primary{margin-top:20px}.hero{background:linear-gradient(130deg,rgba(42,132,225,.25),rgba(99,224,229,.12));backdrop-filter:blur(30px)}#mode{border:1px solid rgba(124,209,255,.3)}button:disabled{cursor:not-allowed}.student-choice{min-height:110px}.student-choice small{display:block;color:#a9bed0;margin-top:6px}.accountbar+.notice{margin-top:8px}

.school-logo{width:82px;height:82px;object-fit:contain;background:white;border-radius:18px;padding:5px;flex-shrink:0}header>div{flex:1}@media(max-width:550px){.school-logo{width:54px;height:54px;border-radius:12px}header{gap:10px}header h1{font-size:27px}}

.profile-balance{font-size:28px;white-space:nowrap}.profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.profile-actions .secondary{margin:0}#studentPointName{margin:8px 0}.rosterrow.clickable{cursor:pointer}@media(max-width:520px){.profile-balance{font-size:22px}.profile-actions{gap:8px}.profile-actions button{padding:13px 8px}}

button.rosterrow{width:100%;text-align:left;background:transparent;color:inherit;border:0;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0;font:inherit}
button:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.45)}

#rosterList{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 8px;margin-top:22px}.student-tile{border:0;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 1px;font-size:13px;min-width:0}.student-tile>b{font-size:13px;line-height:1.2;max-width:100%;overflow-wrap:break-word}.tile-avatar{position:relative;width:70px;height:70px;border-radius:23px;background:linear-gradient(140deg,#417dec,#8461df);display:grid;place-items:center;font-size:24px;font-weight:750}.class-tile .tile-avatar{background:linear-gradient(140deg,#299ccc,#20a47f)}.point-badge{position:absolute;right:-5px;top:-8px;border-radius:18px;background:#328b52;color:#fff;border:3px solid #172238;min-width:31px;padding:3px 7px;font-size:14px}.point-badge.zero{background:#5b6678}.student-sheet{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(640px,100%);max-height:88vh;overflow-y:auto;background:#152031f5;border-radius:26px 26px 0 0;padding:22px 20px 32px;box-shadow:0 -20px 90px #0009;backdrop-filter:blur(35px)}.student-sheet[hidden]{display:none}.sheet-close{display:block;margin-left:auto}.point-tabs{display:flex;gap:8px;margin:18px 0}.point-tabs button{flex:1;background:#ffffff0a;color:var(--muted);border:1px solid var(--edge);border-radius:15px;padding:12px}.point-tabs button.selected{background:#3c88572e;color:#9df0b9;border-color:#60b97c}.point-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.point-tiles button{border:1px solid var(--edge);border-radius:17px;background:#ffffff08;color:white;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:12px;font-weight:650}.point-tiles span{position:relative;display:grid;place-items:center;background:#42955d;width:46px;height:46px;border-radius:15px;font-size:25px}.point-tiles span b{position:absolute;right:-8px;top:-7px;border-radius:20px;background:#89d29d;color:#123d22;padding:2px 6px;font-size:13px}.sheet-links{display:flex;justify-content:space-between;border-top:1px solid var(--edge);margin-top:18px;padding-top:10px}.student-sheet summary{color:var(--muted);font-size:13px;margin-top:15px;cursor:pointer}@media(max-width:520px){#app{padding:16px 14px 100px}header{margin-bottom:16px}.school-brand img{width:48px;height:48px}h1{font-size:27px}#roster .glass{padding:12px}#rosterList{gap:14px 5px}.tile-avatar{width:58px;height:58px;border-radius:20px;font-size:21px}.student-tile>b{font-size:11px}.point-badge{font-size:12px;min-width:27px}.student-sheet h2{font-size:24px}.student-sheet .profile-balance{font-size:21px;white-space:nowrap}}

.point-tiles[hidden],#studentSheetActivity[hidden]{display:none}.student-custom h3{margin:14px 0 0;font-size:17px}.student-custom .field-label{margin-top:12px}.point-tabs{gap:6px}.point-tabs button{padding:11px 6px;font-size:13px}
.student-custom[hidden]{display:none}

.student-picker{position:relative}.picker-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;border:1px solid var(--edge);border-radius:13px;padding:13px;background:#ffffff12;color:white;text-align:left}.picker-toggle span{font-size:20px}#studentPickerMenu{margin-top:8px;border:1px solid var(--edge);border-radius:15px;background:#182435;padding:10px}#studentPickerMenu[hidden]{display:none}#studentPickerOptions{max-height:240px;overflow:auto;margin-top:7px}#studentPickerOptions button{display:flex;justify-content:space-between;gap:8px;width:100%;padding:13px 8px;background:transparent;border:0;border-bottom:1px solid var(--edge);color:white;text-align:left}#studentPickerOptions small{color:var(--muted)}

html{overscroll-behavior-y:contain}.pull-refresh{position:fixed;top:calc(env(safe-area-inset-top) + 10px);left:50%;transform:translateX(-50%);z-index:2000;padding:12px 22px;border-radius:28px;background:#123750;color:#e5f7ff;border:1px solid #3abbea;box-shadow:0 8px 25px #0008;font-weight:650;font-size:14px;pointer-events:none;white-space:nowrap}.pull-refresh[hidden]{display:none}

.certificate-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;max-height:330px;overflow:auto;margin:12px 0}.certificate-choice{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--edge);border-radius:12px;background:#ffffff0b}.certificate-choice input{width:20px;height:20px;flex-shrink:0;margin:0;accent-color:#299dfd}

#certificatePickerMenu{margin:8px 0 12px;border:1px solid var(--edge);border-radius:15px;background:#182435;padding:10px}#certificatePickerMenu[hidden]{display:none}#certificatePickerOptions{max-height:240px;overflow:auto;margin-top:7px}#certificatePickerOptions button{display:flex;justify-content:space-between;gap:8px;width:100%;padding:13px 8px;background:transparent;border:0;border-bottom:1px solid var(--edge);color:white;text-align:left}#certificatePickerOptions small{color:var(--muted)}

.top-student-search{padding:14px;margin:0 0 18px}.top-student-search>.field-label{margin-top:0}#topSearch{width:100%;font-size:16px}#topSearchResults{max-height:230px;overflow:auto}#topSearchResults button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:13px 4px;background:transparent;border:0;border-bottom:1px solid var(--edge);color:var(--text);text-align:left}#topSearchResults strong{white-space:nowrap;font-size:13px;color:#76caff}.top-student-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}.top-student-heading strong{color:#76caff}.top-student-heading button{margin-left:auto}.top-quick-points{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0}.top-quick-points button{border:1px solid var(--edge);border-radius:12px;background:#159aff25;color:white;padding:13px 4px;font-size:18px;font-weight:700}.top-point-custom{display:flex;gap:8px}.top-point-custom input{min-width:0;width:50%;font-size:16px}.top-point-custom button{flex:1;padding:12px 8px}.top-student-search small{display:block;margin-top:9px;color:var(--muted)}#topStudentCard[hidden]{display:none}

.recent-students{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.recent-chip{border:1px solid var(--edge);border-radius:20px;background:#159aff18;color:white;padding:9px 14px;font-size:14px}.recent-chip.selected{background:#159aff55;border-color:#159aff}
.sound-row{display:flex;align-items:center;gap:10px;margin:6px 0 12px;font-size:15px}.sound-row input{width:20px;height:20px;accent-color:#299dfd}
.qr-scan-card{margin:0 0 18px}.qr-scan-card .inline{display:flex;gap:10px}.scan-toast{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 78px);left:50%;transform:translateX(-50%);z-index:2100;display:flex;gap:12px;align-items:center;padding:12px 18px;border-radius:26px;background:#123750;color:#e5f7ff;border:1px solid #3abbea;box-shadow:0 8px 25px #0008;font-size:14px;white-space:nowrap}.scan-toast[hidden]{display:none}.scan-toast button{color:#7fd6ff;font-size:14px}
#qrVideo{width:100%;border-radius:12px;background:#000;margin-top:10px}

.practice-controls{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap}.practice-controls button{flex:1;min-height:48px}.practice-on #mode{position:sticky;top:0;z-index:100;background:#fbbf24;color:#171100;border:3px solid #fef3c7;font-weight:800;font-size:16px;padding:16px}.practice-on .practice-controls button{border:2px solid #fbbf24}.practice-on .hero{border:3px solid #fbbf24}

.practice-on .student-sheet{z-index:120;border-top:5px solid #fbbf24}.practice-on .student-sheet:before{content:"PRACTICE ONLY - FICTIONAL STUDENT";display:block;color:#fbbf24;font:bold 13px Arial;margin-bottom:8px}

.swipe-entry{position:relative;overflow:hidden;border-radius:12px;margin:5px 0;background:#d52e39;touch-action:pan-y}.swipe-content{position:relative;background:#152031;transition:transform .12s;min-height:88px}.swipe-undo{position:absolute;right:0;top:0;width:88px;height:100%;background:#d52e39;color:white;border:0;font-weight:700}.undo-confirm{position:fixed;z-index:150;top:25%;left:50%;transform:translateX(-50%);width:min(90%,420px);background:#152031;border:2px solid #d52e39;border-radius:20px;padding:24px;box-shadow:0 0 0 100vmax #0009}.undo-confirm[hidden]{display:none}.undo-confirm button{display:block;width:100%;margin-top:12px}

.practice-on #mode{position:relative;top:auto;padding:10px 12px;font-size:13px;line-height:1.35;border-width:2px;margin-bottom:18px}#qr .pagehead p{line-height:1.5}#qr .glass.step{display:flex;flex-direction:column;gap:14px;padding:20px}#qr h3{font-size:18px;margin:0}#qr .field-label{margin:0}#qr select,#qr input,#qr .primary,#qr .secondary{width:100%;margin:0;min-height:46px}#qr .quick{margin:0;display:flex;gap:10px;flex-wrap:wrap}#qr .quick button{flex:1;min-width:48px;min-height:48px}#qr #scannerStatus{margin:0;line-height:1.5}#qr #scannerBox{width:100%}
/* Projector-only classroom page. No private app surfaces remain on screen. */
body.class-view-on{background:#eef7ff;color:#163553}body.class-view-on #app,body.class-view-on .practice-banner,body.class-view-on #practiceBanner,body.class-view-on #pullRefresh,body.class-view-on .glow,body.class-view-on .dock{display:none!important}
#classView[hidden],#classView [hidden]{display:none!important}#classView{position:fixed;inset:0;overflow:auto;z-index:99999;background:radial-gradient(ellipse at top,#fff7dc 0,transparent 65%),#eef7ff;color:#163553;font-family:inherit}#classView button{min-height:48px;border:2px solid #b4cadb;border-radius:16px;background:white;color:#163553;padding:10px 18px;font-size:18px;font-weight:700;cursor:pointer}.cv-head{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;background:transparent}.cv-head span{font-size:24px}.cv-main{max-width:1180px;margin:auto;padding:0 30px 40px}.cv-title{text-align:center}.cv-title img{width:70px;height:70px;object-fit:contain}.cv-title h1{font-size:clamp(28px,4vw,48px);margin:4px 0 22px;letter-spacing:-1px}.cv-title p{color:#5a667a}.cv-progress{display:flex;align-items:center;justify-content:center;gap:45px;margin-bottom:30px}.cv-progress h2{font-size:clamp(24px,3vw,38px);margin:0 0 15px}.cv-progress p{font-size:22px}.cv-jar{position:relative;width:210px;height:225px;border:8px solid #315d81;border-radius:26px 26px 52px 52px;overflow:hidden;background:#fff;box-shadow:inset 7px 0 #dbe9f4,0 10px 0 #d8e4ed;flex-shrink:0}.cv-fill{position:absolute;bottom:0;width:100%;background:linear-gradient(135deg,#92dfda,#3aaea5);transition:height 1.2s ease}.cv-fill:before{content:'';position:absolute;top:-5px;height:10px;width:100%;background:#71cac3;border-radius:50%}.cv-jar-label{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:30px}.cv-jar-label strong{font-size:42px}.cv-jar-label span{font-size:15px}.cv-bar{height:22px;border:3px solid #315d81;border-radius:20px;overflow:hidden;background:white;max-width:550px}.cv-bar i{display:block;height:100%;background:#3aaea5;transition:width 1.2s}.cv-tools{display:grid;grid-template-columns:1fr 1fr;gap:25px}.cv-tools section{background:white;border-radius:28px;padding:24px;text-align:center;box-shadow:0 6px 0 #d8e4ed}.cv-tools h2{font-size:26px;margin:0 0 16px}.cv-clock{font-size:clamp(50px,7vw,90px);font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums;color:#315d81}.cv-clock.finished{color:#ac4017}.cv-controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:22px}#cvStart,#cvPick{background:#315d81;color:white;border-color:#315d81}.cv-picked{font-size:clamp(28px,4vw,46px);font-weight:800;min-height:109px;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere;line-height:1.15;padding:6px}.cv-award{position:absolute;inset:120px 8% auto;background:#fff8d9;border:5px solid #e0af3d;border-radius:35px;box-shadow:0 20px 70px #16355355;text-align:center;padding:30px;z-index:2;max-height:75%;overflow:auto;animation:cvpop .5s both}.cv-award h2{font-size:48px;margin:8px}.cv-award p{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;font-size:32px;margin:16px}.cv-award strong{color:#216c62}.cv-stars{font-size:48px;color:#be8b0e;animation:cvfloat 2s ease-in-out infinite}.cv-pop{animation:cvpop .5s}.cv-award button{margin-top:15px}@keyframes cvpop{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}@keyframes cvfloat{50%{transform:translateY(-8px) rotate(-3deg)}}@media(max-width:650px){.cv-main{padding:0 15px 35px}.cv-head{padding:10px}.cv-head button{font-size:15px;padding:8px 12px}.cv-progress{gap:18px;flex-direction:column}.cv-jar{height:170px;width:175px}.cv-progress h2{font-size:26px}.cv-progress p{font-size:18px}.cv-tools{grid-template-columns:1fr}.cv-award{inset:110px 12px auto;padding:18px}.cv-award h2{font-size:36px}.cv-award p{font-size:26px;gap:8px;flex-direction:column}.cv-stars{font-size:36px}}@media(prefers-reduced-motion:reduce){.cv-award,.cv-stars,.cv-pop{animation:none}.cv-fill,.cv-bar i{transition:none}}
@media(min-width:651px) and (max-height:800px){.cv-head{padding:8px 20px}.cv-title img{width:45px;height:45px}.cv-title h1{margin:0 0 8px;font-size:36px}.cv-title p{margin:5px}.cv-progress{margin:12px 0 20px;gap:35px}.cv-jar{height:175px;width:175px}.cv-progress h2{font-size:30px}.cv-tools section{padding:17px}.cv-tools h2{margin:0 0 8px;font-size:24px}.cv-clock{font-size:66px}.cv-picked{min-height:80px;font-size:34px}.cv-controls{margin-top:12px}.cv-main{padding-bottom:20px}}

/* Horizontal projector progress, requested Oct 8. */
#classView .cv-progress{flex-direction:column;gap:20px}#classView .cv-jar.cv-landscape{width:min(820px,100%);height:145px;box-sizing:border-box;border-radius:32px;flex-shrink:0}#classView .cv-landscape .cv-fill{top:0;left:0;bottom:0;height:100%!important;transition:width 1.2s ease;background:linear-gradient(90deg,#92dfda,#3aaea5)}#classView .cv-landscape .cv-fill:before{top:0;right:-5px;left:auto;height:100%;width:10px}#classView .cv-jar-label{flex-direction:row;gap:15px}#classView .cv-jar-label span{font-size:20px}#classView .cv-progress>div:nth-child(2){width:min(820px,100%);text-align:center}#classView .cv-bar{display:none}#classView .cv-progress h2{margin:0 0 5px}#classView .cv-progress p{margin:6px 0}@media(min-width:651px) and (max-height:800px){#classView .cv-progress{gap:12px;margin-bottom:18px}#classView .cv-jar.cv-landscape{height:120px}}@media(max-width:650px){#classView .cv-jar.cv-landscape{height:110px}#classView .cv-jar-label{gap:8px;flex-wrap:wrap}#classView .cv-jar-label strong{font-size:36px}#classView .cv-jar-label span{font-size:16px}#classView .cv-title h1{font-size:28px}}

#classView .cv-award.cv-loss{background:#fff1ee;border-color:#c64343;animation:cvpop .5s both}#classView .cv-loss h2,#classView .cv-loss strong,#classView .cv-loss .cv-stars{color:#aa2424}
/* Larger transparent school mark and daily classroom side panel. */
#classView .cv-title{display:grid;grid-template-columns:150px 1fr;align-items:center;column-gap:18px;text-align:left;margin:0 0 15px}#classView .cv-title img{width:150px;height:112px;grid-row:1/3;object-fit:contain}#classView .cv-title h1{font-size:36px;margin:0}#classView .cv-title p{margin:5px 0}#classView .cv-board{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px}#classView .cv-side{display:grid;gap:14px;align-content:start}#classView .cv-side section{background:white;border-radius:22px;padding:16px;box-shadow:0 6px 0 #d8e4ed}#classView .cv-side h2{font-size:22px;margin:0 0 6px}#classView .cv-side-caption{font-size:14px;color:#5a667a;margin:4px 0 12px}#classView .cv-side p:not(.cv-side-caption){display:flex;justify-content:space-between;align-items:center;gap:12px;margin:9px 0;font-size:17px;overflow-wrap:anywhere}#classView .cv-side strong{color:#216c62;flex-shrink:0}#cvToday,#cvRecent{max-height:155px;overflow:auto}#classView .cv-award{inset:170px 335px auto 5%;padding:24px}#classView .cv-award h2{font-size:36px}#classView .cv-award p{font-size:26px}#classView .cv-tools{gap:16px}@media(min-width:651px) and (max-height:800px){#classView .cv-title{margin-bottom:10px}#classView .cv-progress{margin:0 0 15px}#classView .cv-jar.cv-landscape{height:90px}#classView .cv-progress h2{font-size:24px}#classView .cv-progress p{font-size:18px}#classView .cv-tools section{padding:16px}#classView .cv-clock{font-size:56px}#classView .cv-controls button{font-size:14px;padding:8px 10px}}@media(max-width:950px){#classView .cv-board{grid-template-columns:1fr}#classView .cv-side{grid-template-columns:1fr 1fr}#classView .cv-award{inset:170px 5% auto}}@media(max-width:650px){#classView .cv-title{grid-template-columns:1fr;text-align:center;gap:6px}#classView .cv-title img{width:170px;height:127px;grid-row:auto;margin:auto}#classView .cv-title h1{font-size:28px}#classView .cv-side{grid-template-columns:1fr}#classView .cv-award{inset:190px 12px auto;padding:18px}}

@media(min-width:951px) and (max-height:800px){#classView .cv-side section{padding:12px}#classView .cv-side h2{font-size:20px;margin:0 0 4px}#classView .cv-side p:not(.cv-side-caption){margin:6px 0;font-size:16px}#classView .cv-side-caption{margin:2px 0 6px}#classView .cv-side{gap:10px}#classView .cv-title img{height:100px;width:150px}#classView .cv-title{min-height:100px;margin-bottom:8px}#classView .cv-tools section{padding:12px}#classView .cv-picked{min-height:70px}#classView .cv-progress{gap:8px;margin-bottom:12px}#classView .cv-progress h2{font-size:22px}#classView .cv-progress p{margin:3px 0}}
/* Centered, prominent projector logo. */
#classView .cv-title{display:flex;flex-direction:column;text-align:center;gap:4px;margin:0 0 12px}#classView .cv-title img{width:200px;height:150px;margin:0 auto;object-fit:contain}#classView .cv-title h1{margin:0;font-size:34px}#classView .cv-title p{margin:3px 0}@media(min-width:651px) and (max-height:800px){#classView .cv-title{min-height:0;margin-bottom:8px;gap:0}#classView .cv-title img{width:170px;height:127px}#classView .cv-title h1{font-size:30px}#classView .cv-head{padding:5px 20px}#classView .cv-progress{gap:5px;margin-bottom:10px}#classView .cv-jar.cv-landscape{height:76px}#classView .cv-title p{font-size:13px}}@media(max-width:650px){#classView .cv-title img{width:200px;height:150px}#classView .cv-title h1{font-size:27px}}

#classView .cv-focus{position:fixed;inset:0;z-index:5;background:radial-gradient(ellipse at top,#fff7dc,transparent 70%),#eef7ff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;box-sizing:border-box;overflow:auto}#cvFocusBack{position:absolute;top:14px;left:14px}#classView .cv-focus img{width:170px;height:127px;object-fit:contain}#classView .cv-focus h2{font-size:clamp(24px,4vw,48px);margin:10px 0}#cvFocusValue{font-size:clamp(70px,18vw,240px);font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums;color:#315d81;overflow-wrap:anywhere;width:100%}#classView .cv-focus-picker #cvFocusValue{font-size:clamp(42px,10vw,150px);animation:cvpop .6s both}#cvFocusControls{display:flex;gap:15px;margin:18px 0}#cvFocusDismiss{margin-top:16px}#cvFocusValue.finished{color:#aa2424}@media(max-height:700px){#classView .cv-focus img{width:120px;height:90px}#classView .cv-focus h2{margin:8px 0}#cvFocusValue{font-size:clamp(70px,16vw,180px)}}@media(max-width:650px){#classView .cv-focus img{width:150px;height:112px}#classView .cv-focus{padding:18px}#cvFocusValue{font-size:clamp(62px,22vw,100px)}#classView .cv-focus-picker #cvFocusValue{font-size:clamp(38px,14vw,70px)}}

.cv-minute-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;flex-basis:100%}.cv-minute-presets button{padding:8px 12px;min-width:42px}.cv-controls{flex-wrap:wrap}
@media(min-width:951px) and (max-height:800px){#cvRecent,#cvToday{max-height:92px}#classView .cv-side p:not(.cv-side-caption){font-size:14px;margin:4px 0}#classView .cv-title img{width:150px;height:112px}#classView .cv-award{top:250px}#classView .cv-controls button{min-height:40px}}

#classView .cv-award-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:none;overflow:visible;align-content:start}#classView .cv-earned-tile{position:relative;background:#fff8d9;border:2px solid #e0af3d;border-radius:16px;padding:9px 7px 13px;text-align:center;min-width:0;overflow:hidden;animation:cvTileIn .45s both}#classView .cv-earned-tile b{display:block;font-size:16px;overflow-wrap:anywhere}#classView .cv-earned-tile strong{font-size:22px;display:block;margin-top:3px}#classView .cv-earned-tile i{position:absolute;bottom:0;left:0;height:4px;background:#e0af3d;transition:width 1s linear}#classView .cv-tiles-many{gap:5px;grid-template-columns:repeat(3,minmax(0,1fr))}#classView .cv-tiles-many .cv-earned-tile{padding:6px 4px 10px}#classView .cv-tiles-many .cv-earned-tile b{font-size:12px}#classView .cv-tiles-many .cv-earned-tile strong{font-size:18px}@keyframes cvTileIn{from{transform:translateX(-45px) scale(.75);opacity:0}to{transform:none;opacity:1}}@media(min-width:951px) and (max-height:800px){#classView .cv-title img{width:135px;height:101px}#classView .cv-side #cvToday{max-height:72px}#classView .cv-earned-tile{padding:5px 5px 9px;border-radius:12px}#classView .cv-earned-tile b{font-size:13px}#classView .cv-earned-tile strong{font-size:18px;margin-top:0}#classView .cv-side{gap:8px}}@media(max-width:950px){#classView .cv-award-tiles{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}}@media(prefers-reduced-motion:reduce){#classView .cv-earned-tile{animation:none}}

@media(min-width:951px) and (max-height:800px){#classView .cv-earned-tile b{font-size:12px;line-height:1.1}#classView .cv-earned-tile strong{font-size:16px;line-height:1.1}#classView .cv-earned-tile{padding:4px 4px 8px}#classView .cv-award-tiles{gap:5px}}
@media(min-width:951px) and (max-height:800px){#classView .cv-side section{padding:8px 12px}#classView .cv-side #cvToday{max-height:48px}#classView .cv-earned-tile{padding:3px 4px 6px}#classView .cv-earned-tile b{line-height:1}#classView .cv-earned-tile strong{line-height:1}#classView .cv-tiles-many .cv-earned-tile{padding:3px 3px 6px}#classView .cv-tiles-many .cv-earned-tile b{font-size:11px}#classView .cv-tiles-many .cv-earned-tile strong{font-size:14px}}

nav{grid-template-columns:repeat(6,minmax(0,1fr))}nav button{min-width:0}@media(max-width:500px){nav{gap:2px;padding:8px 3px}nav button{font-size:10px;padding:7px 2px}nav button span{font-size:21px}}

nav{display:grid;width:440px;box-sizing:border-box}nav button{min-height:54px;width:100%;padding:7px 3px} @media(max-width:500px){nav{width:calc(100vw - 28px);padding:5px;gap:1px}nav button{font-size:10px;min-height:56px;padding:6px 2px}}

.undo-visibility{display:flex;align-items:center;gap:8px;margin:12px 0}.undo-visibility input[type=checkbox]{width:18px;height:18px;min-height:0;margin:0;display:inline-block}.swipe-entry .swipe-undo{width:88px;max-width:88px;padding:8px;font-size:15px}
#studentSheetActivity .swipe-undo,#ledger .swipe-undo{width:88px;min-width:88px;max-width:88px;left:auto;right:0;display:flex;align-items:center;justify-content:center}

.swipe-content{cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}.swipe-content:active{cursor:grabbing}.undo.textbutton{min-height:36px}

.student-sheet{overscroll-behavior:contain;padding-bottom:max(18px,env(safe-area-inset-bottom));}.student-sheet .point-tiles{gap:8px}.student-sheet .point-tiles button{padding:10px 6px;gap:6px}.student-custom summary{padding:12px 0}.student-sheet .undo-visibility:has(#studentShowUndone){display:none}.student-sheet:has(#studentSheetActivity:not([hidden])) .undo-visibility{display:block}.student-sheet .step-head{margin-top:0}

#cvTimerArt{width:min(650px,80vw);height:clamp(120px,28vh,290px);margin:0 auto}#cvTimerArt[hidden]{display:none}#cvTimerArt svg{width:100%;height:100%;overflow:visible}.timer-sand-top{transform-origin:300px 45px;transform:scaleY(calc(1 - var(--progress)))}.timer-sand-bottom{transform-origin:300px 225px;transform:scaleY(var(--progress))}.timer-flow{animation:timerSand 1s linear infinite}.timer-train{transform:translateX(calc(var(--progress) * 370px))}.timer-garden{transform-origin:300px 225px;transform:scale(calc(.3 + var(--progress) * .7))}.paused .timer-flow{animation-play-state:paused;opacity:0}@keyframes timerSand{to{stroke-dashoffset:-26}}.cv-focus:has(#cvTimerArt:not([hidden])) #cvFocusValue{font-size:clamp(52px,12vw,150px)}@media(max-height:700px){.cv-focus:has(#cvTimerArt:not([hidden])){gap:8px;padding:12px}.cv-focus:has(#cvTimerArt:not([hidden]))>img{width:60px;height:60px}.cv-focus:has(#cvTimerArt:not([hidden]))>h2{margin:0;font-size:20px}#cvTimerArt{height:23vh}}@media(prefers-reduced-motion:reduce){.timer-flow{animation:none}}

#classView .cv-award.cv-loss{position:fixed;inset:0;max-height:none;border:10px solid #b84349;border-radius:0;background:radial-gradient(circle at center,#fff0e8 0,#f9c9c3 70%);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;z-index:100;box-shadow:inset 0 0 100px #b8434930;animation:cvLossArrive .65s ease-out both}#classView .cv-loss h2{font-size:clamp(38px,7vw,92px);margin:14px 0;color:#942a35}#classView .cv-loss strong{font-size:clamp(54px,10vw,135px);color:#942a35}#classView .cv-loss .cv-stars{font-size:clamp(60px,12vw,145px);line-height:1;color:#b84349;animation:cvLossDrop .7s ease-out both}#classView .cv-loss button{margin-top:30px;min-width:140px}@keyframes cvLossArrive{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes cvLossDrop{from{opacity:0;transform:translateY(-60px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){#classView .cv-award.cv-loss,#classView .cv-loss .cv-stars{animation:none}}

#classView #cvEnableSound{font-size:14px;padding:8px 12px}#classView #cvEnableSound[data-ready="true"]{background:#e2f3e8;border-color:#5d9871}.cv-head{gap:6px;flex-wrap:wrap}@media(max-width:650px){#classView #cvEnableSound{order:4;width:100%}}

#classView #cvEnableSound[hidden]{display:none!important}#classView .cv-award.cv-loss{position:absolute;inset:120px 8% auto;max-height:75%;border:5px solid #b84349;border-radius:35px;display:block;padding:30px;overflow:auto;box-shadow:0 20px 70px #942a3540}#classView .cv-loss h2{font-size:48px;margin:8px}#classView .cv-loss strong{font-size:inherit}#classView .cv-loss .cv-stars{font-size:48px;line-height:normal}#classView .cv-loss button{margin-top:15px;min-width:auto}@media(max-width:650px){#classView .cv-award.cv-loss{inset:110px 12px auto;padding:18px}#classView .cv-loss h2{font-size:36px}#classView .cv-loss .cv-stars{font-size:36px}}@media(min-width:951px) and (max-height:800px){#classView .cv-award.cv-loss{top:250px}}

#classView .cv-award.cv-loss{inset:170px 335px auto 5%;padding:24px}#classView .cv-loss h2{font-size:36px}#classView .cv-loss .cv-stars{font-size:48px}@media(max-width:950px){#classView .cv-award.cv-loss{inset:170px 5% auto}}@media(max-width:650px){#classView .cv-award.cv-loss{inset:190px 12px auto;padding:18px}#classView .cv-loss .cv-stars{font-size:36px}}@media(min-width:951px) and (max-height:800px){#classView .cv-award.cv-loss{top:250px}}

#classView .cv-award{min-height:320px}#classView .cv-award.cv-loss{min-height:320px}@media(max-width:650px){#classView .cv-award,#classView .cv-award.cv-loss{min-height:305px}}

#classView .cv-award.cv-loss{position:fixed;inset:0;max-height:none;min-height:0;border:10px solid #b84349;border-radius:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;z-index:100;box-shadow:inset 0 0 100px #b8434930}#classView .cv-loss h2{font-size:clamp(38px,7vw,92px);margin:14px 0}#classView .cv-loss strong{font-size:clamp(54px,10vw,135px)}#classView .cv-loss .cv-stars{font-size:clamp(60px,12vw,145px);line-height:1}#classView .cv-loss button{margin-top:30px;min-width:140px}

#scanFeedback{position:fixed;inset:20% 6% auto;z-index:200000;background:#eaf4ff;color:#174e78;border:4px solid #63a4d1;border-radius:28px;text-align:center;padding:26px 18px;pointer-events:none;box-shadow:0 15px 80px #0007}#scanFeedback strong{display:block;font-size:70px;line-height:1.2}#scanFeedback span{display:block;font-size:25px;font-weight:700;overflow-wrap:anywhere}#scanFeedback.saved{background:#e3f8e8;color:#226b40;border-color:#51a96b;animation:scanConfirm .3s ease-out}#scanFeedback[hidden]{display:none}@keyframes scanConfirm{from{transform:scale(.94);opacity:.6}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){#scanFeedback.saved{animation:none}}

nav{grid-template-columns:repeat(7,minmax(0,1fr));width:510px}@media(max-width:550px){nav{width:calc(100vw - 20px)}nav button{font-size:9px;padding:6px 1px}}

#scannerBox{position:fixed;inset:0;z-index:100001;background:#040812;display:flex;flex-direction:column;padding:12px;gap:12px}#scannerBox[hidden]{display:none}#qrVideo{width:100%;height:calc(100dvh - 100px);flex:1;min-height:0;object-fit:contain;border-radius:12px;margin:0}#stopScanner{flex-shrink:0;width:100%;min-height:52px}

/* Store navigation and mobile form, Oct 10. */
nav{grid-template-columns:repeat(8,minmax(0,1fr));width:min(590px,calc(100vw - 16px))}nav button{font-size:10px}nav button span{font-size:20px}
#storeEdit,#storeConfirm{color:var(--text);background:#101723;border:1px solid #718ca866;border-radius:22px;width:min(480px,calc(100vw - 24px));padding:0;max-height:calc(100dvh - 32px);overflow:auto}#storeEdit::backdrop,#storeConfirm::backdrop{background:#000a;backdrop-filter:blur(4px)}#storeEdit .step,#storeConfirm .step{padding:20px;margin:0}#storeEdit h3{margin:0 0 18px}#storeEditForm>label:not(.store-active){display:block;font-size:13px;color:#c1cadb;margin:12px 0}#storeEditForm>label input{margin-top:7px}#storeEdit .store-active{display:flex;gap:10px;align-items:center;margin:16px 0;font-size:14px}#storeEdit .store-active input[type=checkbox]{width:22px;height:22px;min-height:0;margin:0;display:inline-block;flex:0 0 22px;padding:0}#storeEdit .store-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.55fr);gap:12px;margin-top:18px}#storeEdit .store-actions button{width:100%;margin:0;min-height:48px;padding:12px 10px}#storeEdit input[type=file]{padding:10px;font-size:12px}#storeEditError:empty{display:none}@media(max-width:420px){nav button{font-size:9px;min-height:56px;padding:6px 0}nav{gap:1px;padding:5px 2px}}

/* Store touch spacing, Oct 11. */
#store #storeScan{display:block;margin:14px 0 18px;min-height:46px}#store #storeProducts article{display:flex;flex-direction:column;gap:10px}#store #storeProducts article p{margin:0 0 4px}#store [data-store-product]{min-height:48px;line-height:1.25;padding:12px 10px}#store [data-store-edit]{display:block;align-self:flex-start;margin:4px 0 0;min-height:44px;padding:10px 8px}#store #storeReview{margin-top:12px}#store #storeRetry{margin-top:12px}#store{padding-bottom:150px}#store .store-actions{display:flex;flex-wrap:wrap;gap:12px}#store #storeConfirmNo{margin-top:12px}
.request-demo input,.request-demo select,.request-demo textarea{background:#edf2f4!important;color:#173b3f!important;border:1px solid #87a4ac!important;margin:8px 0 16px;min-height:46px}.request-demo button{background:#173b3f;color:white;border-radius:10px;padding:12px 18px}.request-demo label{color:#173b3f}.request-demo{margin-bottom:24px!important}
.cv-premium-note{padding:16px;border:1px solid #a8bfca;border-radius:12px;background:#edf5f7;color:#173b3f;margin:12px 0;line-height:1.5}.cv-premium-note p{margin:10px 0}.cv-premium-note summary{font-weight:700;cursor:pointer}

/* iPhone scroll and dock repair, October 11. */
html{scroll-behavior:auto}body{min-height:100dvh}
body>nav{position:fixed;left:0;right:0;top:auto;bottom:max(10px,env(safe-area-inset-bottom));margin:0 auto;transform:none;z-index:15}
body>nav[hidden],body.class-view-on>nav,body>nav.keyboard-open{display:none!important}
.student-sheet{max-height:88dvh;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:max(32px,env(safe-area-inset-bottom))}
.student-point-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.student-point-summary>div{background:#ffffff0d;padding:12px;border-radius:14px;min-width:0}
.student-point-summary small{display:block;color:#c1cadb;font-size:12px;line-height:1.4}
.student-point-summary strong{display:block;font-size:25px;overflow-wrap:anywhere;margin-top:6px}
#topStudentActivity{width:100%;margin-bottom:14px}
#classView{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
body.class-view-on .baldinger-app-footer{display:none!important}
@media(max-width:700px){body.class-view-on{overflow-x:hidden}#classView{position:absolute;inset:0 0 auto;min-height:100dvh;height:auto;overflow:visible;padding-bottom:env(safe-area-inset-bottom)}}

/* Session-only student tile visibility. Fresh document and pagehide reset off. */
.points-visibility{display:flex;align-items:center;gap:10px;font-weight:700;margin:12px 0;padding:10px 12px;background:rgba(255,255,255,.07);border-radius:12px}.points-visibility input{width:22px;height:22px;margin:0;accent-color:#30c998}.student-points-hidden #roster .point-badge,.student-points-hidden .student-tile-points{display:none!important}

/* Classroom-board Today tile: enough room for names and totals, never a tiny strip. */
@media(min-width:951px){
 #classView .cv-board{grid-template-columns:minmax(0,1fr) clamp(390px,32vw,680px)}
 #classView .cv-today-card{padding:clamp(18px,1.6vw,32px)!important}
 #classView .cv-today-card h2{font-size:clamp(30px,2.2vw,48px);margin:0 0 10px}
 #classView .cv-today-card .cv-side-caption{font-size:clamp(18px,1.1vw,25px);margin:0 0 14px}
 #classView .cv-side #cvToday{max-height:var(--today-board-height,300px);min-height:150px;overflow:auto;scrollbar-gutter:stable}
 #classView .cv-side #cvToday p:not(.cv-side-caption){font-size:clamp(25px,1.65vw,38px);line-height:1.25;margin:14px 0;gap:18px;align-items:start}
 #classView #cvToday p span{min-width:0;overflow-wrap:anywhere}
 #classView #cvToday strong{font-size:clamp(30px,2vw,46px);line-height:1.15;font-variant-numeric:tabular-nums}
}

#app{position:relative}
.bsd-top{position:absolute;top:6px;right:16px;font-size:13px;color:#9db4d8;pointer-events:none;z-index:5}
