:root{color:#181a20;font-synthesis:none;--blue:#234ce4;--line:#e2e3e7;--muted:#686c75;--red:#b32f2b;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-content{flex:1;min-width:0}button,input{font:inherit;touch-action:manipulation}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #6485ff}h1,h2,p{margin:0}h1{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:30px;font-weight:600;line-height:1.3}h2{font-size:17px;font-weight:600}.home{max-width:420px;margin:64px auto 100px;padding:0 24px}.home-brand{align-items:center;min-height:44px;margin-bottom:28px;display:inline-flex}.home-brand svg{width:124px;height:29px;display:block;overflow:hidden}.home h1{margin:34px 0;font-size:28px}.tabs{border-bottom:1px solid var(--line);gap:28px;display:flex}.tabs button{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 0 15px;font-size:16px}.tabs button[aria-pressed=true]{color:var(--blue);border-color:var(--blue)}label{margin-bottom:10px;font-size:14px;display:block}label>span{color:var(--muted)}input:not([type=range]){width:100%;height:50px;color:inherit;background:#fff;border:1px solid #c8cbd2;border-radius:3px;margin-bottom:24px;padding:0 14px;font-size:16px;display:block}.primary,.outline,.danger-button,.small-primary{border-radius:3px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:12px 20px;font-size:15px;display:inline-flex}.primary,.small-primary{background:var(--blue);color:#fff}.primary:hover:not(:disabled),.small-primary:hover:not(:disabled){background:#1b3dc0}.full{width:100%}.outline{border:1px solid #c8cbd2}.outline:hover{background:#f7f7f9}.text-button{white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 0;font-size:14px;display:inline-flex}.text-button:hover{color:var(--blue)}.danger{color:var(--red)}.danger-button{color:var(--red);background:#fff;border:1px solid #e5bfbd}.danger-button:hover{background:#fff5f4}.muted{color:var(--muted);font-size:14px}.notice{overflow-wrap:anywhere;padding:12px 0;font-size:14px;line-height:1.6}.notice.error{color:#a72724}.entry-notice{color:var(--muted);margin-top:16px;font-size:12px;line-height:1.8}.entry-notice a,.legal-page a{color:inherit;text-underline-offset:3px;text-decoration:underline}.site-footer{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:2px;padding:20px 24px 24px;font-size:12px;line-height:1.7;display:flex}.site-footer nav{flex-wrap:wrap;justify-content:center;column-gap:18px;display:flex}.site-footer a{color:inherit;padding:6px 0;text-decoration:none}.site-footer a:hover{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.legal-page{overflow-wrap:anywhere;max-width:740px;margin:0 auto;padding:48px 28px 64px;font-size:15px;line-height:1.8}.legal-back{color:var(--muted);margin-bottom:36px;font-size:14px;display:inline-block}.legal-date{color:var(--muted);margin:12px 0 32px;font-size:13px}.legal-page section{margin-top:32px}.legal-page h2{margin-bottom:12px;font-size:19px}.legal-page section p+p{margin-top:14px}.legal-page ul{margin:0 0 16px;padding-left:22px}.legal-page li+li{margin-top:12px}.host{max-width:1140px;margin:0 auto;padding:48px 40px}.page-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px;display:flex}.host-layout{grid-template-columns:minmax(0,1fr) 280px;gap:48px;display:grid}.join-panel{border-left:1px solid var(--line);padding-left:32px}.sound-settings{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.volume{align-items:center;gap:10px;margin:0;font-size:14px;display:flex}.volume input{width:105px;accent-color:var(--blue)}.volume span:last-child{font-variant-numeric:tabular-nums;min-width:36px}.speaking{min-height:150px;padding:32px 0}.speaking h2{overflow-wrap:anywhere;font-size:24px;line-height:1.4}.speaking.is-live h2{color:var(--blue)}.speaking .meter{margin:20px 0}.meter{background:#e4e6ec;max-width:260px;height:4px;overflow:hidden}.meter>span{background:var(--blue);height:100%;transition:width 80ms linear;display:block}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;display:flex}.section-heading h2{align-items:center;gap:12px;display:flex}.section-heading h2 span{color:var(--muted);font-size:14px;font-weight:400}.queue{margin:0;padding:0;list-style:none}.queue li{border-bottom:1px solid var(--line);align-items:center;gap:16px;min-height:76px;padding:16px 0;display:flex}.queue-number{color:var(--muted);min-width:16px;font-size:14px}.student-name{overflow-wrap:anywhere;flex:1;font-size:16px}.small-primary{white-space:nowrap;min-height:38px;padding:9px 15px;font-size:14px}.empty{color:var(--muted);padding:34px 0;font-size:15px}.participants{border-top:1px solid var(--line);margin-top:10px;font-size:14px}.participants summary{cursor:pointer;color:var(--muted);padding:18px 0}.participants ul{margin:0;padding:0;list-style:none}.participants li{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:12px 0;display:flex}.participants li>span:first-child{overflow-wrap:anywhere}.icon-button{place-items:center;width:32px;height:32px;display:grid}.qr{flex-direction:column;align-items:center;gap:14px;padding:24px 0;display:flex}.qr img{object-fit:contain;width:220px;max-width:100%;height:220px;image-rendering:pixelated}.class-code{letter-spacing:.12em;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:.12em;font-size:32px;font-weight:600}.qr-placeholder{height:220px;color:var(--muted);place-items:center;font-size:14px;display:grid}.projection{text-align:center;flex-direction:column;align-items:center;min-height:100svh;padding:100px 24px 40px;display:flex;position:relative}.projection-close{position:absolute;top:24px;right:32px}.projection h1{font-size:36px}.qr-large img{width:min(48vh,480px);height:auto}.qr-large .class-code{font-size:54px}.student{text-align:center;flex-direction:column;align-items:center;max-width:600px;margin:0 auto;padding:40px 28px;display:flex}.student .page-heading{text-align:left;width:100%;margin-bottom:20px}.student .page-heading h1{font-size:22px}.student-meta{width:100%;color:var(--muted);justify-content:space-between;gap:20px;font-size:14px;display:flex}.student-meta span:first-child{overflow-wrap:anywhere;text-align:left}.student-status{min-height:64px;margin-top:70px}.student-status h2{font-size:24px}.student-status p{color:var(--muted);margin-top:12px;font-size:15px}.mic-button{background:var(--blue);color:#fff;border-radius:50%;place-items:center;width:140px;height:140px;margin:28px 0 20px;transition:transform .15s;display:grid}.mic-button:not(:disabled):active{transform:scale(.96)}.mic-button.waiting{color:var(--blue);background:#edf0fa;border:1px solid #ccd5f4}.mic-button.live{background:var(--red)}.mic-label{font-size:16px}.student-meter{width:240px;margin-top:30px}.student-meter .meter{width:100%}.student-tip{color:var(--muted);max-width:280px;margin-top:28px;font-size:14px;line-height:1.7}.end{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:30px;max-width:650px;min-height:calc(100svh - 96px);margin:auto;padding:40px 24px;display:flex}.end h1{font-size:26px}dialog{border:1px solid var(--line);width:420px;max-width:calc(100% - 40px);color:inherit;background:#fff;border-radius:4px;padding:28px}dialog::backdrop{background:#10142066}dialog h2{font-size:23px}dialog p{color:var(--muted);margin:16px 0 28px;font-size:15px;line-height:1.7}.dialog-actions{justify-content:flex-end;gap:12px;display:flex}@media (width<=850px){.host{padding:36px 28px}.host-layout{grid-template-columns:minmax(0,1fr) 250px;gap:28px}.join-panel{padding-left:24px}.sound-settings{flex-wrap:wrap}}@media (width<=650px){.legal-page{padding:28px 22px 44px}.home{margin-top:28px;margin-bottom:60px}.host{padding:26px 22px}.page-heading{gap:16px;margin-bottom:28px}h1{font-size:25px}.host-layout{flex-direction:column;gap:32px;display:flex}.join-panel{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.join-panel>.outline{max-width:320px;margin:auto;display:flex}.speaking h2{font-size:22px}.queue li{flex-wrap:wrap;gap:10px}.small-primary{padding:9px 12px}.volume input{width:90px}.projection{padding:85px 20px 32px}.projection h1{font-size:27px}.qr-large img{width:min(80vw,360px);height:auto}.qr-large .class-code{font-size:42px}.student{padding:28px 22px}.student-status{margin-top:62px}.student-status h2{font-size:23px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
