#settings{display:block}fieldset{border:1px solid #c6d3e3;border-radius:14px;padding:20px;background:white;width:100%;margin-bottom:14px}legend{font-weight:700}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}.settings-grid label{display:flex;flex-direction:column;gap:7px}.wide{grid-column:1/-1}#duration{width:100%;accent-color:#3185fc;padding:0;margin:14px 0}details{margin:16px 0}summary{cursor:pointer}.session{text-align:center;background:white;padding:24px;border-radius:18px}.clock{--progress:100%;width:min(65vw,350px);aspect-ratio:1;margin:auto;border-radius:50%;background:conic-gradient(#e8edf3 calc(100% - var(--progress)),var(--accent,#3185fc) 0);display:grid;place-items:center}.clock-face{width:80%;height:80%;border-radius:50%;background:white;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.clock strong{font-size:clamp(36px,7vw,64px);font-variant-numeric:tabular-nums}.actions{display:flex;gap:12px;justify-content:center;margin:20px}.tokens{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.token{position:relative;display:inline-block;width:32px;height:32px;color:#d0d5dc}.token svg{width:32px;height:32px;fill:currentColor}.token-fill{position:absolute;inset:0;overflow:hidden;color:var(--reward,#e6a000);width:var(--fill)}#results{text-align:left;max-width:640px;margin:auto;line-height:1.8}dialog{width:min(500px,calc(100% - 32px));border:0;border-radius:20px;padding:28px;text-align:center}dialog::backdrop{background:#14253fcc}.answers{display:flex;justify-content:center;gap:20px}.answers button{font-size:24px;padding:18px 32px}.yes{color:#16803c}.no{color:#c62828}[hidden]{display:none!important}@media(max-width:650px){.settings-grid{grid-template-columns:1fr}.session{padding:16px}.answers button{padding:16px 24px}}

body{--accent:#3185fc;--reward:#e6a000}body[data-theme=forest]{--accent:#278459;--reward:#73a329}body[data-theme=sunset]{--accent:#d75a43;--reward:#db8b21}body[data-theme=space]{--accent:#8155c7;--reward:#d94ca0}.session{border:2px solid var(--accent)}.projection .workspace-sidebar,.projection .workspace-header,.projection main> :not(#sessionView):not(dialog):not(#studentCard){display:none!important}.projection main{max-width:none!important;padding:16px!important;margin:0!important}.projection{padding:0!important;overflow:auto}.projection .session{min-height:calc(100dvh - 32px);display:flex;flex-direction:column;justify-content:center}.projection .clock{width:min(48vh,65vw)}.projection .tokens{margin-top:auto}.projection #projectStart{display:inline-block}.projection #results{max-height:20vh;overflow:auto}.projection .actions{flex-wrap:wrap}#studentCard{display:none}.card-table{width:100%;border-collapse:collapse}.card-table th,.card-table td{border:1px solid #a7b0be;padding:12px;text-align:center}.card-table tr{break-inside:avoid}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.card-footer img{width:.7in;height:.7in}@page{size:letter portrait;margin:.45in}@media print{body>*:not(main),main>*:not(#studentCard),.projection main> :not(#studentCard){display:none!important}main,#studentCard{display:block!important;padding:0!important;margin:0!important}#studentCard h1{font-size:24px}.card-table thead{display:table-header-group}.card-footer{break-inside:avoid}}@media(prefers-reduced-motion:reduce){.clock{animation:none!important}}

.projection> :not(main){display:none!important}

.exit-reflection{break-inside:avoid}.exit-reflection p{overflow-wrap:anywhere}
body[data-theme=classic]{--accent:var(--classic-color,#3185fc);--reward:var(--classic-color,#3185fc)}
.projection .session{position:relative;isolation:isolate;overflow:hidden}
.projection .session>*{position:relative;z-index:1}
.projection[data-theme=space] .session{background:#030610;color:#f6f8ff}
.projection[data-theme=space] .session::before,.projection[data-theme=space] .session::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(circle,#fff 1px,transparent 2px),radial-gradient(circle,#b7d5ff 1px,transparent 2px);background-size:117px 137px,193px 173px;background-position:14px 30px,60px 90px;animation:star-glow 7s ease-in-out infinite alternate}
.projection[data-theme=space] .session::after{background-size:227px 207px,293px 273px;animation-delay:-4s;opacity:.5}
.projection[data-theme=sunset] .session{background:linear-gradient(145deg,#5d3886,#be5277,#ef996b,#f4c378);background-size:250% 250%;animation:sunset-shift 35s ease-in-out infinite alternate;color:#fff}
.projection[data-theme=forest] .session{background:linear-gradient(#8ccdf0,#dbf1fc 75%,#e8f5e2);color:#17283f}
.projection[data-theme=forest] .session::before,.projection[data-theme=forest] .session::after{content:'';position:absolute;pointer-events:none;width:260px;height:85px;border-radius:70px;background:#ffffffb3;box-shadow:50px -35px 0 -10px #ffffffb3,110px -20px 0 0 #ffffffb3;left:-400px;top:15%;z-index:0;animation:cloud-pass 65s linear infinite}
.projection[data-theme=forest] .session::after{top:55%;animation-duration:90s;animation-delay:-45s;opacity:.6}
.projection[data-theme=ocean] .session{background:linear-gradient(155deg,#08728c,#064363 50%,#031b36);color:#f0fcff}
.projection .clock-face{color:#17283f}.projection[data-theme=ocean] .token-fill{color:#ffd269}.projection[data-theme=space] .token-fill{color:#f8aeef}.projection[data-theme=sunset] .token-fill{color:#ffe66c}.projection[data-theme=forest] .token-fill{color:#217549}
@keyframes star-glow{from{opacity:.3}to{opacity:.9}}@keyframes sunset-shift{from{background-position:0% 20%}to{background-position:100% 80%}}@keyframes cloud-pass{to{left:110%}}
@media(prefers-reduced-motion:reduce){.projection .session,.projection .session::before,.projection .session::after{animation:none!important}}
/* Keep projection controls legible independently of scene text colors. */
.projection #sessionView .actions button{background:#fff;color:#17283f;border:2px solid #52647a;font-weight:600;box-shadow:0 2px 5px #0003;min-height:44px}
.projection #sessionView .actions button:hover:not(:disabled){background:#e4edfa;color:#10233e;border-color:#10233e}
.projection #sessionView .actions button:disabled{background:#e2e7ee;color:#526174;border-color:#8995a5;opacity:1;box-shadow:none}
.projection #sessionView .actions button:focus-visible{outline:3px solid #17283f;outline-offset:3px;box-shadow:0 0 0 6px #fff}
.projection #sessionView summary{display:inline-block;background:#fff;color:#17283f;padding:10px 16px;border:2px solid #52647a;border-radius:8px;font-weight:600}
/* Filled Material Cloud silhouette replaces the decorative cloud blobs. */
.projection[data-theme=forest] .session::before,.projection[data-theme=forest] .session::after{height:170px;background:transparent url('cloud.svg') center/contain no-repeat;border-radius:0;box-shadow:none}
.projection[data-theme=space] .session::before,.projection[data-theme=space] .session::after{content:none}
.space-stars{display:none;pointer-events:none}.projection[data-theme=space] #sessionView>.space-stars{display:block;position:absolute;inset:0;z-index:0}.space-stars span{position:absolute;border-radius:50%;background:#fff;opacity:var(--star-opacity);animation:individual-twinkle var(--twinkle-duration) ease-in-out var(--twinkle-delay) infinite alternate}
@keyframes individual-twinkle{from{opacity:var(--star-opacity)}to{opacity:calc(var(--star-opacity) + .2)}}
@media(prefers-reduced-motion:reduce){.space-stars span{animation:none!important}}
body[data-theme=garden]{--accent:#50894b;--reward:#cb4a82}body[data-theme=unicorn]{--accent:#9969c8;--reward:#c249a7}body[data-theme=chef]{--accent:#a95035;--reward:#d68021}body[data-theme=scientist]{--accent:#167e9f;--reward:#158d76}
.projection[data-theme=garden] .session{background:linear-gradient(145deg,#eff8dd,#cde7bb 60%,#aacd9c);color:#203d2b}
.projection[data-theme=unicorn] .session{background:radial-gradient(ellipse at 50% 120%,transparent 50%,#e8b4e8 51%,#ecc5ef 54%,#cee3fc 57%,#d4efd9 60%,transparent 63%),linear-gradient(145deg,#fae7f4,#e6dcfc,#dcf1fc);color:#49245e}
.projection[data-theme=unicorn] .session::before,.projection[data-theme=unicorn] .session::after{content:'';position:absolute;left:-400px;top:15%;width:260px;height:170px;background:transparent url('cloud.svg') center/contain no-repeat;opacity:.5;pointer-events:none;z-index:0;animation:cloud-pass 80s linear infinite}
.projection[data-theme=unicorn] .session::after{top:60%;animation-delay:-40s;animation-duration:110s}
.projection[data-theme=chef] .session{background:linear-gradient(135deg,#fff1db,#f3c7a4 65%,#dda98d);color:#542e21}
.projection[data-theme=scientist] .session{background:linear-gradient(150deg,#d8f4fb,#abd9ef 60%,#b7e6de);color:#173f52}
.theme-particles{display:none;pointer-events:none}.projection[data-theme=garden] #sessionView>.petals,.projection[data-theme=scientist] #sessionView>.bubbles{display:block;position:absolute;inset:0;z-index:0;overflow:hidden}
.theme-particles span{position:absolute;animation-duration:var(--duration);animation-delay:var(--delay);animation-timing-function:linear;animation-iteration-count:infinite}
.petals span{top:-30px;width:13px;height:20px;background:#d68cae80;border-radius:80% 15% 80% 15%;animation-name:petal-drift}.bubbles span{bottom:-40px;width:25px;height:25px;border:2px solid #fff8;border-radius:50%;animation-name:bubble-rise}
@keyframes petal-drift{to{transform:translate(90px,110vh) rotate(220deg)}}@keyframes bubble-rise{to{transform:translate(35px,-110vh)}}
@media(prefers-reduced-motion:reduce){.theme-particles span,.projection[data-theme=unicorn] .session::before,.projection[data-theme=unicorn] .session::after{animation:none!important}}
/* Low-contrast waves stay behind the timer, rewards and controls. */
.projection[data-theme=ocean] .session::before,.projection[data-theme=ocean] .session::after{content:'';position:absolute;left:-50%;bottom:0;width:200%;height:30%;background:url('wave.svg') 0 100%/50% 100% repeat-x;opacity:.11;pointer-events:none;z-index:0;animation:ocean-drift 38s linear infinite}
.projection[data-theme=ocean] .session::after{bottom:-3%;height:25%;opacity:.09;animation-duration:53s;animation-direction:reverse}
@keyframes ocean-drift{to{transform:translateX(25%)}}
@media(prefers-reduced-motion:reduce){.projection[data-theme=ocean] .session::before,.projection[data-theme=ocean] .session::after{animation:none!important}}
body[data-theme=classroom]{--accent:#245ac4;--reward:#db453a}body[data-theme=autumn]{--accent:#a75b2a;--reward:#a44921}body[data-theme=halloween]{--accent:#e78023;--reward:#ffad52}body[data-theme=winter]{--accent:#428ab9;--reward:#287eb2}body[data-theme=tropical]{--accent:#ca8025;--reward:#478337}body[data-theme=eighties]{--accent:#ec4ed9;--reward:#66fff0}body[data-theme=valentine]{--accent:#c85888;--reward:#bc326a}body[data-theme=stpatricks]{--accent:#35854c;--reward:#22743b}body[data-theme=city]{--accent:#4b719b;--reward:#f9be51}
.projection[data-theme=classroom] .session{color:#203652;background:repeating-linear-gradient(0deg,transparent 0 31px,#467acf18 31px 32px),linear-gradient(120deg,#fff6cb,#f0f5ff 65%,#ffe1da)}
.projection[data-theme=autumn] .session{background:linear-gradient(145deg,#f9d59a,#e8af75,#bb8865);color:#472a19}
.projection[data-theme=halloween] .session{background:radial-gradient(ellipse at 0 0,#713812,transparent 55%),#131018;color:#fff4e5}
.projection[data-theme=halloween] .session::before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-radial-gradient(circle at 0 0,transparent 0 45px,#efab6425 46px 47px,transparent 48px 80px);mask-image:linear-gradient(135deg,#000,transparent 35%);z-index:0}
.projection[data-theme=winter] .session{background:linear-gradient(#b0d9f2,#edfaff);color:#224457}
.projection[data-theme=tropical] .session{background:linear-gradient(#ffe8a4,#ffc96f 60%,#f1a46c);color:#533815}
.projection[data-theme=tropical] .session::before,.projection[data-theme=tropical] .session::after{content:'';position:absolute;bottom:-10px;left:1%;width:180px;height:240px;background:url('tropical.svg') center/contain no-repeat;opacity:.2;pointer-events:none;transform-origin:bottom center;animation:palm-sway 18s ease-in-out infinite alternate;z-index:0}
.projection[data-theme=tropical] .session::after{left:auto;right:1%;animation-delay:-9s}
.projection[data-theme=eighties] .session{background:linear-gradient(135deg,#17102f,#281443,#0d2436);color:#f9f0ff}
.projection[data-theme=valentine] .session{background:linear-gradient(140deg,#ffe5ef,#f4bdcf);color:#623048}
.projection[data-theme=stpatricks] .session{background:radial-gradient(circle at 12% 15%,#c5e4ae66,transparent 35%),linear-gradient(135deg,#e0f1c9,#9fcea6,#76af8f);color:#193d26}
.projection[data-theme=city] .session{background:linear-gradient(#344b70,#7292b1 70%,#a6b5c7);color:#fff}
.projection[data-theme=city] .session::before{content:'';position:absolute;inset:0;pointer-events:none;background:url('city.svg') bottom/100% 24% no-repeat;opacity:.65;z-index:0}
.projection[data-theme=city] .session::after{content:'';position:absolute;top:10%;left:-400px;width:240px;height:130px;background:url('cloud.svg') center/contain no-repeat;opacity:.18;animation:cloud-pass 95s linear infinite;z-index:0;pointer-events:none}
.projection[data-theme=autumn] #sessionView>.seasonal-autumn,.projection[data-theme=winter] #sessionView>.seasonal-winter,.projection[data-theme=eighties] #sessionView>.seasonal-eighties,.projection[data-theme=valentine] #sessionView>.seasonal-valentine{display:block;position:absolute;inset:0;z-index:0;overflow:hidden}
[class*=seasonal-] span{top:-40px;animation-name:seasonal-fall;width:22px;height:22px;opacity:.35}.seasonal-autumn span{background:url('icons/maple-leaf.png') center/contain no-repeat}.seasonal-winter span{color:#fff;font-size:24px}.seasonal-valentine svg{width:100%;height:100%;fill:#c34f7e}.seasonal-eighties span{border:2px solid var(--shape-color);width:30px;height:30px;opacity:.35}.seasonal-eighties span:nth-child(3n){border-radius:50%}.seasonal-eighties span:nth-child(3n+1){clip-path:polygon(50% 0,100% 100%,0 100%);background:var(--shape-color)}
@keyframes seasonal-fall{to{transform:translate(45px,115vh) rotate(130deg)}}@keyframes palm-sway{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}
@media(prefers-reduced-motion:reduce){.projection[data-theme=tropical] .session::before,.projection[data-theme=tropical] .session::after,.projection[data-theme=city] .session::after{animation:none!important}}
.projection[data-theme=stpatricks] .session::before{content:'';position:absolute;inset:0;background:url('icons/clover.png') 0 0/120px 120px repeat;opacity:.06;pointer-events:none;z-index:0}

.token img{display:block;width:32px;height:32px;max-width:none;object-fit:contain}.token>img{filter:grayscale(1);opacity:.28}.token-fill img{filter:none;opacity:1}.icon-credit{font-size:11px;line-height:1.4;margin:10px 0}.icon-credit a{color:inherit;text-decoration:underline}.projection .icon-credit a{display:inline-block;background:#fff;color:#253349;border-radius:6px;padding:4px 8px}

.device-panel{margin:12px auto;padding:12px;border:1px solid #aebed1;border-radius:12px;max-width:520px;background:white;color:#17283f;text-align:center}.device-panel p{margin:8px 0}.device-panel button,.device-panel select,.device-panel input{background:white;color:#17283f;border:1px solid #52647a;max-width:100%}.device-panel label{display:block}.device-panel input{width:100%;font-size:12px}.device-panel #pairQR svg{width:min(250px,100%);height:auto}.projection .device-panel{flex-shrink:0}.device-panel:has(option[value=one]:checked) #showPair{display:none}

.device-panel #pairQR svg{width:128px;max-width:100%;height:auto}.device-panel #pairQR.large svg{width:280px}
.monitor-reaction{position:fixed;right:24px;top:18vh;z-index:1000;pointer-events:none;text-align:center;animation:monitor-encouragement 2.6s ease-out both;filter:drop-shadow(0 3px 6px #0003)}.monitor-reaction>span:first-child{display:block;font:clamp(64px,10vw,110px)/1.2 system-ui}.monitor-reaction .reaction-caption{display:block;font:600 14px/1.4 system-ui;background:white;color:#17283f;padding:5px 10px;border-radius:12px}.projection .session>.monitor-reaction{position:fixed;z-index:1000}.reaction-preference{font-size:14px;margin:8px 0}@keyframes monitor-encouragement{0%{opacity:0;transform:translateY(20px) scale(.7)}15%,75%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-30px) scale(1)}}@media(prefers-reduced-motion:reduce){.monitor-reaction{animation:none}}@media print{.monitor-reaction{display:none!important}}
/* Keep transient encouragement clear of screen edges and collect it separately. */
.monitor-reaction{left:var(--reaction-x,50vw);top:var(--reaction-y,30vh);right:auto;width:min(260px,64vw);margin-left:calc(min(260px,64vw)/-2);animation:monitor-pop 4.2s ease-out both}
.monitor-reaction .reaction-ghost{position:absolute;left:35%;top:0;font-size:60px;opacity:0;animation:monitor-float 3s ease-out var(--delay) both}
@keyframes monitor-pop{0%{opacity:0;transform:scale(.6)}10%,70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes monitor-float{0%{opacity:0;transform:translate(0,0) scale(.6)}20%{opacity:.3}100%{opacity:0;transform:translate(var(--drift),-45vh) scale(1.1)}}
.encouragement-history{margin:18px auto;padding:14px 18px;background:#fff;color:#17283f;border:1px solid #c7d4e6;border-radius:14px;max-width:680px;width:100%;text-align:left}
.encouragement-history h2{font-size:18px;margin:0 0 10px}.encouragement-history ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;max-height:130px;overflow:auto}.encouragement-history li{padding:7px 10px;border-radius:10px;background:#eef5ff;font-size:14px}.encouragement-history small{display:block;margin-top:10px;color:#52647a}
.device-panel{display:flex;flex-direction:column;gap:12px}.device-panel label{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.device-panel input[type=checkbox]{width:auto}.device-panel #pairPanel{display:flex;flex-direction:column;gap:12px;align-items:center;width:100%}.device-panel #pairPanel label{width:100%}.device-panel #pairPanel h2,.device-panel #pairPanel p{margin:0}.device-panel #pairPanel[hidden]{display:none!important}
.projection .session>.encouragement-history{flex-shrink:0;position:relative;z-index:1}.projection .encouragement-history h2{color:#17283f}
@media(prefers-reduced-motion:reduce){.monitor-reaction{animation:none}.monitor-reaction .reaction-ghost{display:none}}
@media print{.encouragement-history ul{max-height:none;overflow:visible}}
@media screen{
 .projection .session{justify-content:flex-start;gap:10px}
 .projection .clock{width:min(34dvh,60vw);min-width:160px;flex-shrink:0;margin:0 auto}
 .projection .device-panel:has(#pairPanel[hidden]){flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;max-width:760px;margin:0 auto;padding:8px 14px;gap:8px 18px}
 .projection .device-panel:has(#pairPanel[hidden]) p,.projection .device-panel .reaction-preference{margin:0}
 .projection #projectStart:disabled{display:none}
 .projection .actions{margin:4px 0}.projection #score{margin:4px 0}.projection .tokens{margin-top:0}
 .projection .encouragement-history{margin:4px auto;padding:12px 16px}.projection .encouragement-history ul{max-height:80px}
 .projection #progress,.projection .session>details{margin:4px 0}
}
.monitor-reaction{left:clamp(calc(min(260px,64vw)/2 + 12px),var(--reaction-x,50vw),calc(100vw - min(260px,64vw)/2 - 12px));top:clamp(12px,var(--reaction-y,30vh),calc(100dvh - 190px))}
@media print{#studentCard li{break-inside:avoid;margin-block:6px}}
.monitor-reaction>.reaction-pill:first-child{font:700 clamp(18px,2.5vw,28px)/1.4 system-ui;padding:14px 22px;border-radius:999px;background:#fff;color:#17283f;box-shadow:0 4px 18px #0002}
.encouragement-history li.encouragement-emoji{font-size:30px;line-height:1.2;background:none;padding:4px 8px}.encouragement-history li.encouragement-phrase{border-radius:999px;align-self:center}

.exit-summary{margin:20px 0;padding:16px;border:1px solid #b7c6d8;border-radius:12px;background:#fff;color:#17283f}.exit-summary h2{margin:0 0 12px;font-size:22px}.exit-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.exit-summary dt{font-size:14px}.exit-summary dd{font-size:28px;font-weight:700;margin:6px 0 0}.exit-summary p{font-size:13px;line-height:1.5;margin:14px 0 0}@media print{.exit-summary{break-inside:avoid}}


/* Focused setup and presentation layouts. Shared file, storage and timer controls retain their IDs. */
@media screen {
 body[data-support=self-monitor]{background:#f5f7fb}
 body[data-support=self-monitor] main{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(320px,.9fr);gap:0 28px;max-width:1480px;padding:24px 28px 40px;align-items:start}
 body[data-support=self-monitor] main>.file-bar,body[data-support=self-monitor] main>.board-print-actions,body[data-support=self-monitor] main>h1,body[data-support=self-monitor] main>.offline-tools{grid-column:1/-1}
 body[data-support=self-monitor] .visual-toolbar{display:none}
 body[data-support=self-monitor] .file-bar{margin:0 0 24px;padding:12px 18px;border-radius:14px;box-shadow:none}
 body[data-support=self-monitor] .file-page-title{font-size:18px;margin:0 0 6px}
 body[data-support=self-monitor] .file-document-row{padding-top:8px;margin-top:6px}
 body[data-support=self-monitor] .file-document-row input{font-size:16px;padding:7px}
 body[data-support=self-monitor] .file-modes button{min-height:38px;font-size:13px}
 body[data-support=self-monitor] #status{grid-column:1/-1;grid-row:2;font-size:13px;line-height:1.5;color:#455b76;margin:0 0 14px;min-height:0}
 body[data-support=self-monitor] #status:empty{display:none}
 .monitor-setup{min-width:0}
 .setup-heading{margin:0 0 22px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:750;text-transform:uppercase;margin:0 0 9px;color:#56708d}
 .setup-heading h2{font-size:clamp(23px,2.4vw,30px);line-height:1.2;letter-spacing:-.035em;margin:0 0 8px}
 .setup-heading>p:last-child{font-size:14px;line-height:1.6;color:#5b6c80;margin:0;max-width:48ch}
 #settings{margin:0}#settings #options{border:0;background:transparent;padding:0;margin:0;min-width:0}
 .setup-card{padding:22px;background:#fff;border:1px solid #dbe4ee;border-radius:14px;margin-bottom:16px;min-width:0}
 .section-heading{display:flex;align-items:flex-start;gap:12px;margin:0 0 20px}.step-number{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:9px;background:#eaf2ff;color:#2164bb;font-size:12px;font-weight:750}
 .section-heading h3{font-size:16px;margin:1px 0 4px;letter-spacing:-.015em}.section-heading p{font-size:12px;line-height:1.6;color:#66778d;margin:0}
 #settings label,.field-label{font-size:13px;font-weight:600;color:#344b65;line-height:1.5}
 #settings input:not([type=range]):not([type=checkbox]):not([type=color]),#settings select{width:100%;min-width:0;max-width:100%;font-size:14px;font-weight:400;border:1px solid #cbd6e4;border-radius:8px;padding:10px 12px;min-height:42px}
 #settings input:disabled,#settings select:disabled{background:#f5f7fb;color:#62738a;opacity:1}
 .duration-label{display:flex;justify-content:space-between;gap:12px;align-items:center}.duration-label output{font-size:16px;font-weight:750;color:#2164bb;background:#eef5ff;padding:5px 10px;border-radius:7px}
 #duration{margin:18px 0 8px;height:8px;cursor:pointer;accent-color:#2164bb}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:#7a899a;margin-bottom:22px}
 #settings .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0 0}
 .input-unit{display:flex;align-items:center;border:1px solid #cbd6e4;border-radius:8px;overflow:hidden;background:white}.input-unit input{border:0!important;min-width:0}.input-unit>span{font-size:12px;font-weight:400;color:#6a7d94;padding-right:12px;white-space:nowrap}
 .field-help{font-size:12px;line-height:1.6;color:#6a7b90;margin:12px 0 0}.field-label{display:block;margin-bottom:7px}
 #settings .points-settings{border-top:1px solid #edf0f5;padding-top:15px;margin:20px 0 0}.points-settings summary{font-size:12px;font-weight:650;color:#4c6481;list-style:none;display:flex;align-items:center;gap:8px}.points-settings summary::before{content:'+';font-size:16px;font-weight:400}.points-settings[open] summary::before{content:'−'}.summary-note{margin-left:auto;font-size:10px;font-weight:400;color:#6a7b90}
 #settings .points-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.points-grid label{font-size:11px!important}
 .appearance-fields{display:flex;gap:14px;align-items:flex-end}.appearance-fields>label{flex:1;display:flex;flex-direction:column;gap:7px}.appearance-fields #colorLabel{flex:0 0 110px}.appearance-fields input[type=color]{height:42px;width:100%;padding:5px}
 .toggle-list{display:grid;gap:14px;margin-top:20px}.toggle-list label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.toggle-list input{width:17px;height:17px;accent-color:#2164bb;margin:2px 0 0;flex-shrink:0}.toggle-list small{display:block;font-size:11px;font-weight:400;color:#6a7b90;margin-top:2px}
 .device-panel{max-width:none;margin:0;padding:0;border:0;border-radius:0;text-align:left;gap:12px}.device-panel label{justify-content:flex-start;font-size:12px}.device-panel>label:first-child{display:flex;align-items:center;gap:12px}.device-panel #deviceMode{flex:1;width:auto}.device-panel #linkStatus{font-size:12px;color:#526984;line-height:1.6}.device-panel .reaction-preference{font-size:12px;justify-content:flex-start;margin:0}.device-panel .reaction-preference input{width:16px;height:16px;accent-color:#2164bb}.device-panel #pairPanel{padding:16px;background:#f4f7fb;border:1px solid #dce5f0;border-radius:10px}.device-panel #pairPanel h2{font-size:17px}.device-panel #pairPanel .hint{font-size:11px}.device-panel #pairPanel>p{font-size:12px;overflow-wrap:anywhere}#pairLink{min-width:0}
 .start-footer{padding:4px 0 0;margin:20px 0 0;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.start-footer strong{font-size:12px;color:#344d6a}.start-footer p{font-size:11px;color:#6a7b90;margin:5px 0 0}.start-buttons{display:flex;gap:8px;flex-wrap:wrap}.start-buttons button{min-height:44px;font-size:13px;font-weight:650}body.visual-workspace .start-buttons .primary{background:#2164bb;border-color:#2164bb}.session-help{font-size:12px;line-height:1.6;color:#65768b;margin-top:18px}.session-help .hint{font-size:12px}
 .session{position:sticky;top:24px;border:1px solid #d7e1ed;border-radius:18px;padding:22px;background:white;box-shadow:0 4px 20px #19325106;min-width:0;color:#17283f;text-align:center}
 .session-topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;margin:0 0 22px}.session-badge{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:650;color:#637993}.status-dot{width:7px;height:7px;border-radius:50%;background:#91a4b8}.session-top-actions button{font-size:12px}
 .session-heading{margin:0 0 22px}.session-heading h2{font-size:19px;line-height:1.35;letter-spacing:-.025em;margin:0 0 6px;overflow-wrap:anywhere}.session-heading #sessionQuestion{font-size:13px;line-height:1.5;color:#637993;margin:0;overflow-wrap:anywhere}
 .session .clock{width:min(100%,235px);background:conic-gradient(#e8edf3 calc(100% - var(--progress)),var(--accent,#3185fc) 0);margin:0 auto}.session .clock-face{width:86%;height:86%;gap:6px}.session .clock strong{font-size:48px;letter-spacing:-.055em;font-weight:650}.session #phase{font-size:11px;color:#6b7d92}.next-checkin{font-size:11px;color:#637993;margin:16px 0 20px}
 .score-panel{padding:20px 0 0;border-top:1px solid #e5ecf4}.score-label{font-size:9px;letter-spacing:.13em;font-weight:750;color:#7b8ca0;margin:0 0 6px}.session #score{font-size:26px;letter-spacing:-.035em;margin:0 0 14px}.session .tokens{max-height:100px;overflow:auto;gap:5px;margin:0 auto;max-width:300px}.session .token,.session .token svg,.session .token img{width:25px;height:25px}.session .token img{max-width:none}
 .checkin-progress{margin:22px 0 0;text-align:left}.checkin-progress>div{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#71839a}.checkin-progress strong{color:#344e6d;font-variant-numeric:tabular-nums;font-size:11px}.checkin-progress progress{display:block;width:100%;height:5px;appearance:none;margin:8px 0 0;border:0;border-radius:8px;overflow:hidden;background:#e8eef5}.checkin-progress progress::-webkit-progress-bar{background:#e8eef5;border-radius:8px}.checkin-progress progress::-webkit-progress-value{background:var(--accent);border-radius:8px}.checkin-progress progress::-moz-progress-bar{background:var(--accent);border-radius:8px}.session #progress{font-size:10px;color:#71839a;line-height:1.6;margin:10px 0 0}.session .icon-credit{font-size:9px}
 .session-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e5ecf4;padding-top:14px;margin-top:20px;position:relative}.session .actions{margin:0!important;gap:8px}.session .actions button{min-height:40px;font-size:12px}.session-tools{margin:0;text-align:left}.session-tools>summary{display:flex;gap:8px;align-items:center;list-style:none;cursor:pointer;border-radius:8px;font-size:11px;padding:10px 12px;color:#455f7d}.session-tools>summary::-webkit-details-marker{display:none}.session-tools[open]>summary{background:#edf3fc;color:#174d95}.session-tools-body{position:absolute;bottom:calc(100% + 12px);right:0;width:min(370px,calc(100vw - 100px));max-height:min(600px,70dvh);overflow:auto;z-index:10;padding:20px;background:white;color:#17283f;border:1px solid #c7d4e6;border-radius:14px;box-shadow:0 16px 50px #132a452b;text-align:left}.session-tools-body h3{font-size:14px;margin:0 0 14px}.session-tools-body>button{font-size:12px;min-height:40px}.session-tools-body .device-panel{margin-top:16px;padding-top:16px;border-top:1px solid #e5ecf4}.session-tools-footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.session-tools-footer button{font-size:11px;min-height:40px}#printExit{display:none}#reset{color:#a64141;border-color:#e4c3c3}
 .session-tools .encouragement-history{border:0;border-top:1px solid #e5ecf4;margin:16px 0 0;padding:16px 0 0;background:white}.session-tools .encouragement-history h3{font-size:13px}.session-tools .encouragement-history small{font-size:9px}.session-tools .encouragement-history ul{max-height:120px}.session-tools .results-details{border-top:1px solid #e5ecf4;margin:16px 0 0;padding-top:16px;font-size:12px}.session-tools #results{padding-left:20px;font-size:11px;line-height:1.8;margin-top:10px}
 body[data-session-stage=running] .status-dot{background:#27825e}body[data-session-stage=paused] .status-dot{background:#c58a2e}body[data-session-stage=finished] .status-dot{background:#2164bb}
 #checkin{padding:36px;box-shadow:0 24px 100px #11233d33}#checkin #who{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#637993;font-weight:750;margin:0 0 16px}#checkin h2{font-size:30px;line-height:1.2;letter-spacing:-.035em;margin:0 0 14px;overflow-wrap:anywhere}#checkin #answerHelp{font-size:13px;line-height:1.6;color:#637993;margin-bottom:24px}.answers{gap:14px}.answers button{flex:1;min-height:72px;border-radius:12px;font-size:22px;font-weight:650}.answers .yes{background:#eaf6ef;border-color:#a5d1b7}.answers .no{background:#fff1f0;border-color:#e7b6b1}
 /* The student view gives the timer the stage; utilities remain in a single drawer. */
 body.projection[data-support=self-monitor] main{display:block!important;padding:0!important}
 .projection .session{position:relative;top:0;border:0;border-radius:0;min-height:100dvh;padding:28px 40px;display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:0;text-align:center;box-shadow:none}
 .projection .session-topbar{margin-bottom:12px;min-height:40px}.projection .session-badge{color:inherit;font-size:12px}.projection .session-badge .status-dot{box-shadow:0 0 0 4px #ffffff21}
 .projection .session-heading{margin:0 0 22px}.projection .session-heading .eyebrow{color:inherit;opacity:.65;font-size:10px}.projection .session-heading h2{font-size:clamp(22px,3.5vw,36px);line-height:1.2;max-width:900px;margin:0 auto 8px}.projection .session-heading #sessionQuestion{font-size:clamp(14px,1.8vw,19px);color:inherit;opacity:.85;margin:0 auto;max-width:800px}
 .projection .session-stage{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:clamp(32px,7vw,120px);align-items:center;width:min(100%,1060px);margin:auto;padding:8px 0 20px}
 .projection .timer-area{min-width:0}.projection .clock{width:min(48dvh,43vw,460px);min-width:0;flex-shrink:0}.projection .clock-face{width:86%;height:86%}.projection .clock strong{font-size:clamp(52px,8vw,100px)}.projection #phase{font-size:clamp(12px,1.4vw,17px)}.projection .next-checkin{color:inherit;opacity:.85;font-size:13px;margin:20px 0 0}
 .projection .score-panel{border:1px solid #ffffffa6;background:#fff;color:#17283f;border-radius:22px;padding:30px 26px;box-shadow:0 12px 42px #10253a12;min-width:0}.projection .score-label{font-size:11px;color:#60758e;margin-bottom:10px}.projection #score{font-size:clamp(30px,4vw,52px);margin:0 0 22px}.projection .tokens{max-height:140px;max-width:320px;margin-top:0;gap:7px}.projection .token,.projection .token svg,.projection .token img{width:29px;height:29px}.projection .token-fill{color:var(--reward)}.projection .checkin-progress{margin-top:26px}.projection .checkin-progress>div{font-size:12px}.projection .checkin-progress strong{font-size:13px}.projection #progress{font-size:11px;line-height:1.6;margin-top:12px;color:#637993}.projection .checkin-progress progress{height:7px}.projection .icon-credit{font-size:9px;margin-bottom:0}
 .projection .session-bottom{border-top:1px solid #ffffff40;margin:0;padding-top:18px;min-height:64px}.projection #sessionView .actions button{background:#fff;color:#17283f;border:1px solid #ffffff90;box-shadow:none;padding:12px 28px;font-size:14px;min-width:120px;min-height:44px}.projection #sessionView .actions button:disabled{opacity:.7}.projection .session-top-actions button{background:#ffffff14;border:1px solid currentColor;color:inherit;min-height:40px;font-size:12px}.projection #sessionView .session-tools>summary{background:#fff;color:#17283f;border:1px solid #d2dfed;padding:12px 16px;font-size:12px;min-height:44px}.projection #sessionView .session-tools-body summary{background:transparent;border:0;padding:0;display:list-item;font-size:12px;font-weight:600}.projection .session-tools-body{width:min(400px,calc(100vw - 40px));max-height:calc(100dvh - 140px)}
 .projection #sessionTools .device-panel{display:flex;flex-direction:column;align-items:stretch;max-width:none;margin-top:16px;padding:16px 0 0;gap:12px}.projection #sessionTools .device-panel label{justify-content:flex-start}.projection #sessionTools .device-panel input[type=checkbox]{width:auto}.projection #sessionTools .device-panel #pairQR svg{width:128px}.projection #sessionTools .device-panel #pairQR.large svg{width:250px}
 .projection[data-session-stage=ready] #projectStart{display:inline-block}.projection:not([data-session-stage=ready]) #projectStart{display:none}
 @media(min-width:1700px){body[data-support=self-monitor] main{gap:0 40px}}
 @media(max-width:1100px){body[data-support=self-monitor] main{grid-template-columns:minmax(0,1fr) minmax(270px,.8fr);padding:20px;gap:0 20px}.setup-card{padding:18px}.section-heading{gap:10px}.session{padding:18px}.start-buttons{width:100%}.start-buttons button{flex:1}.projection .session{padding:24px 28px}.projection .session-stage{gap:40px}}
 @media(max-width:900px){body[data-support=self-monitor] main{grid-template-columns:minmax(0,1fr);padding:18px 16px}.session{position:relative;top:0;margin-top:24px}.monitor-setup{max-width:none}.session-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center}.score-panel{border:0;padding:0}.session .clock{width:min(100%,240px)}.session .next-checkin{margin-bottom:0}.projection .session-stage{grid-template-columns:minmax(0,1.3fr) minmax(240px,.9fr)}.projection .clock{width:min(48dvh,43vw)}}
 @media(max-width:600px){body[data-support=self-monitor] main{padding:14px 10px}.setup-heading h2{font-size:24px}.setup-heading>p:last-child{font-size:12px}.setup-card{padding:16px}.section-heading p{font-size:11px}#settings .settings-grid{grid-template-columns:1fr}.points-grid{gap:8px!important}#settings .points-grid{grid-template-columns:1fr}.duration-label output{font-size:14px}.appearance-fields{flex-wrap:wrap}.start-footer{margin-top:12px}.start-buttons{flex-direction:column}.start-buttons button{width:100%}.session-stage{grid-template-columns:1fr;gap:18px}.score-panel{padding-top:18px;border-top:1px solid #e5ecf4}.session-topbar{margin-bottom:16px}.session-tools>summary{padding:10px 4px}.session-tools-body{width:calc(100vw - 110px)}.session #score{font-size:24px}.session .tokens{max-height:80px}.session-heading h2{font-size:17px}.session-bottom{gap:6px}#checkin{padding:28px 20px}#checkin h2{font-size:25px}.answers button{min-height:64px;padding:14px 20px}
 .projection .session{padding:16px 18px;min-height:100dvh;margin:0}.projection .session-stage{grid-template-columns:1fr;gap:20px;padding:4px 0 20px;width:100%}.projection .clock{width:min(36dvh,70vw,300px)}.projection .clock strong{font-size:64px}.projection .session-heading{margin-bottom:16px}.projection .session-heading h2{font-size:23px}.projection .session-heading #sessionQuestion{font-size:14px}.projection .score-panel{width:100%;padding:16px 20px;border-radius:16px}.projection #score{font-size:28px;margin-bottom:12px}.projection .score-label{font-size:9px;margin-bottom:5px}.projection .token,.projection .token svg,.projection .token img{width:23px;height:23px}.projection .tokens{max-height:60px}.projection .checkin-progress{margin-top:16px}.projection #progress{font-size:10px}.projection .session-bottom{padding-top:14px;min-height:58px}.projection #sessionView .actions button{min-width:95px;padding:10px 18px;font-size:13px}.projection .session-tools-body{width:calc(100vw - 36px)}.projection .session-top-actions button{font-size:10px;padding:8px}.projection .session-badge{font-size:10px}.projection .next-checkin{font-size:11px;margin-top:12px}}
 @media(max-height:600px) and (min-width:601px){.projection .session{padding:12px 24px;gap:0}.projection .session-topbar{margin:0;min-height:36px}.projection .session-heading{margin:4px 0 10px}.projection .session-heading .eyebrow{display:none}.projection .session-heading h2{font-size:23px}.projection .session-heading #sessionQuestion{font-size:13px}.projection .clock{width:min(48dvh,40vw)}.projection .clock strong{font-size:58px}.projection .session-stage{padding:4px 0 12px;gap:50px}.projection .score-panel{padding:18px 22px}.projection #score{font-size:32px;margin-bottom:12px}.projection .tokens{max-height:65px}.projection .checkin-progress{margin-top:16px}.projection .session-bottom{padding-top:10px;min-height:50px}.projection .next-checkin{margin-top:12px;font-size:11px}}
 button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #2361a5;outline-offset:3px}.projection .session-tools>summary:focus-visible,.projection .session-top-actions button:focus-visible{outline:3px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px #1c3f67}
}
