:root{--ink: #1f2a30;--muted: #5b6970;--line: #dde4e6;--paper: #f6f8f7;--card: #ffffff;--brand: #1d6b6b;--brand-dark: #144f4f;--sun: #f2b53a;--good: #2e8b57;--bad: #c0392b;--radius: 14px;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:17px;line-height:1.55;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}a{color:var(--brand)}h1{font-size:1.9rem;line-height:1.2;margin:0 0 .6em}h2{font-size:1.25rem;margin:1.4em 0 .5em}.top-bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:2rem;height:2rem;border-radius:9px;background:var(--brand);color:#fff;font-weight:800}.help-button{flex:none;display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--sun);color:var(--ink);font-size:1.3rem;font-weight:800;text-decoration:none}.help-button:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.page{max-width:60rem;margin:0 auto;padding:1.5rem 1rem 3rem}.lead{font-size:1.15rem;color:var(--muted);max-width:40rem}.muted{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;margin:1.5rem 0}.card{display:flex;flex-direction:column;gap:.3rem;padding:1.2rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none}.card:hover{border-color:var(--brand)}.card-title{font-weight:700;font-size:1.1rem;color:var(--brand)}.status{padding:.7rem 1rem;border-radius:10px;background:var(--card);border:1px solid var(--line)}.status-connected strong{color:var(--good)}.status-not-connected strong{color:var(--bad)}.search{display:flex;flex-direction:column;gap:.3rem;max-width:30rem;font-weight:600}.search input{font:inherit;padding:.7rem .9rem;border:2px solid var(--line);border-radius:10px;background:var(--card)}.search input:focus{border-color:var(--brand)}.guides{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin-top:1.2rem}.guide-card{padding:1rem 1.2rem 1.2rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line)}.guide-card.mine{border:2px solid var(--brand)}.guide-card h2{margin-top:.2rem}.page-list{padding-left:1.3rem}.page-list li{margin:.35rem 0}.button{display:inline-block;padding:.65rem 1.1rem;border-radius:10px;border:2px solid var(--brand);background:var(--brand);color:#fff;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.button.secondary{background:var(--card);color:var(--brand)}.button:hover{background:var(--brand-dark);color:#fff;border-color:var(--brand-dark)}.whats-new{margin-top:2rem}.whats-new ul{padding-left:1.2rem}.help-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1.5rem;margin-bottom:1rem}.help-head h1{margin:0}.crumbs{color:var(--muted);margin-bottom:.8rem}.help-page h1{margin-top:0}.help-body{max-width:42rem;font-size:1.05rem}.help-body ol li,.help-body ul li{margin:.45rem 0}.help-body img{max-width:100%;border:1px solid var(--line);border-radius:10px}.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}.top-actions{display:flex;align-items:center;gap:.7rem;min-width:0}.who{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.small{font-size:.9rem}.small-button{padding:.35rem .75rem;font-size:.92rem;white-space:nowrap}.button.danger{background:var(--bad);border-color:var(--bad);color:#fff}.button:disabled{opacity:.55;cursor:not-allowed}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sign-in{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center}.sign-in-card{width:100%;max-width:30rem;margin-top:2rem;padding:2rem 1.6rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:.9rem}.sign-in-card h1,.sign-in-card .lead{margin:0}.google-button{text-align:center;font-size:1.1rem;padding:.85rem 1rem}.dev-sign-in{display:flex;flex-direction:column;gap:.6rem;padding:1rem;border:2px dashed var(--line);border-radius:10px}.notice{padding:.75rem 1rem;border-radius:10px;border:1px solid var(--line);background:var(--card);margin:.6rem 0}.notice-problem{border-color:var(--bad);background:#fdf1ef}.notice-good{border-color:var(--good);background:#eef8f2}label{display:flex;flex-direction:column;gap:.25rem;font-weight:600}input,select{font:inherit;padding:.55rem .7rem;border:2px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);min-width:0}input:focus,select:focus{border-color:var(--brand);outline:none}.people-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1rem;margin:1rem 0 1.5rem}.panel{display:flex;flex-direction:column;gap:.7rem;padding:1.1rem 1.2rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);min-width:0}.panel h2{margin:0}.file-pick input{padding:.45rem}.filters{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;margin-bottom:.8rem}.filters label{flex:1 1 14rem}.table-wrap{position:relative;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--card)}table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line);vertical-align:middle}th{background:var(--paper);font-weight:700;white-space:nowrap}tbody tr:last-child td{border-bottom:none}td.email{color:var(--muted);overflow-wrap:anywhere}td.num{font-variant-numeric:tabular-nums}tr.inactive td{color:var(--muted)}.row-actions{white-space:nowrap}.row-actions .button+.button{margin-left:.4rem}.confirm{white-space:normal}.preview-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;max-height:26rem;overflow-y:auto}.preview-list li{display:grid;grid-template-columns:4.2rem minmax(0,1fr);gap:.15rem .6rem;padding:.55rem .7rem;border-bottom:1px solid var(--line);border-left:4px solid var(--line)}.preview-list li:last-child{border-bottom:none}.preview-line{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums;padding-top:.15rem}.preview-who{min-width:0}.preview-email{display:block;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}.preview-what{grid-column:2;font-size:.92rem}.row-add{border-left-color:var(--good)!important}.row-add .preview-what{color:var(--good);font-weight:600}.row-exists .preview-what{color:var(--muted)}.row-error{border-left-color:var(--bad)!important;background:#fdf1ef}.row-error .preview-what{color:var(--bad);font-weight:600}.pill{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.85rem;font-weight:600;white-space:nowrap}.pill-good{background:#e3f4ea;color:#1f6b41}.pill-off{background:#eceff0;color:var(--muted)}@media(max-width:560px){.who{display:none}}@media(max-width:640px){.people-table thead{display:none}.people-table,.people-table tbody{display:block}.people-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem .6rem;padding:.75rem .8rem;border-bottom:1px solid var(--line)}.people-table tbody tr:last-child{border-bottom:none}.people-table td{display:block;padding:0;border:none;min-width:0}.people-table td:nth-child(1){font-weight:600}.people-table td:nth-child(2){grid-column:1 / -1;grid-row:2}.people-table td:nth-child(3){grid-row:3}.people-table td:nth-child(4){grid-row:1;grid-column:2;justify-self:end}.people-table td.row-actions{grid-row:3;grid-column:2;white-space:normal;text-align:right}}@media print{.no-print{display:none!important}:root{background:#fff;font-size:13pt}.page{max-width:none;padding:0}a{color:inherit;text-decoration:none}}.section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;margin-top:1.4em}.section-head h2{margin:0}ul.cards{list-style:none;padding:0}ul.cards>li{display:flex;min-width:0}ul.cards>li>.card{flex:1;min-width:0}.class-card .card-title{font-size:1.25rem}.class-form{max-width:34rem}fieldset{border:2px solid var(--line);border-radius:10px;padding:.6rem .9rem .8rem;margin:0;min-width:0}legend{font-weight:600;padding:0 .3rem}label.check{flex-direction:row;align-items:center;gap:.6rem;font-weight:400;padding:.3rem 0;min-width:0}label.check input{width:1.3rem;height:1.3rem;flex:none;padding:0}.form-actions{display:flex;flex-wrap:wrap;gap:.7rem}.class-admin{margin:1rem 0}.member-list,.pick-list{list-style:none;margin:.8rem 0 0;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--card)}.pick-list{max-height:20rem;overflow-y:auto;margin:0;padding:0 .7rem}.member-list li{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.55rem .8rem;border-bottom:1px solid var(--line)}.member-list li:last-child,.pick-list li:last-child{border-bottom:none}.pick-list li{border-bottom:1px solid var(--line)}.member-list li.inactive strong{color:var(--muted)}.member-who{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem}.member-email{display:block;width:100%;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}.pick-list .member-email{display:inline;width:auto}.add-students{margin:.6rem 0}.add-students h3{margin:0;font-size:1.1rem}.preview-class{color:var(--ink);font-weight:400}.preview-note{grid-column:2;font-size:.88rem;color:#8a5a00}.list-title{font-size:1rem;margin:.8rem 0 .4rem;color:var(--muted)}.lesson-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--card)}.lesson-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.7rem .9rem;border-bottom:1px solid var(--line)}.lesson-row:last-child{border-bottom:none}.lesson-main{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1 1 16rem;color:var(--ink);text-decoration:none}.lesson-main:hover .lesson-title{text-decoration:underline}.lesson-title{font-weight:700;color:var(--brand)}.lesson-when{color:var(--muted);font-size:.95rem}.lesson-main .pill{align-self:flex-start;margin-top:.2rem}.lesson-row.cancelled .lesson-title,.lesson-row.cancelled .lesson-when{text-decoration:line-through;color:var(--muted)}.join-button{font-size:1.1rem;padding:.6rem 1.6rem;background:var(--good);border-color:var(--good)}.join-wait{color:var(--muted);font-size:.92rem;font-weight:600}.join-box{margin:1rem 0 1.4rem}.join-box .join-button{font-size:1.25rem;padding:.8rem 2.4rem}.past-lessons{margin-top:1rem}.past-lessons summary{cursor:pointer;font-weight:600;padding:.4rem 0}.lesson-form{max-width:40rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.7rem}.hint{font-weight:400;font-size:.88rem;color:var(--muted);margin:0}.day-picks{display:flex;flex-wrap:wrap;gap:0 1rem}.day-pick{flex:0 0 auto}.lesson-manage{margin-top:1rem;display:flex;flex-direction:column;gap:.6rem}.confirm p{margin:0 0 .6rem}.live-page{padding:.5rem .75rem 1rem;max-width:100rem;margin:0 auto}.live-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.3rem 0 .6rem}.live-title{font-size:1.25rem;margin:0;min-width:0;overflow-wrap:anywhere}.live-controls{display:flex;flex-wrap:wrap;gap:.4rem}.control{font:inherit;font-size:.92rem;font-weight:600;padding:.45rem .8rem;border-radius:999px;border:2px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap}.control:hover{border-color:var(--brand)}.control-on{border-color:var(--good);color:#1f6b41;background:#eef8f2}.control-hand{border-color:var(--sun);background:#fff6df}.control-end{border-color:var(--bad);color:var(--bad)}.live-notice{margin:.3rem 0;padding:.5rem .8rem;border-radius:10px;background:var(--card);border:1px solid var(--line);font-size:.95rem}.live-notice-warn{border-color:var(--sun);background:#fff6df}.live-body{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:.75rem}.live-main{display:flex;flex-direction:column;gap:.75rem;min-width:0}.stage{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;min-height:7rem}.stage-empty{color:var(--muted);align-self:center}.tile{position:relative;flex:0 0 auto;width:10.5rem;aspect-ratio:4 / 3;margin:0;border-radius:12px;overflow:hidden;background:#24343a;color:#fff}.tile-large{width:17rem;aspect-ratio:16 / 9}.tile video{width:100%;height:100%;object-fit:cover;display:block}.tile video.mirror{transform:scaleX(-1)}.tile-initials{display:grid;place-items:center;width:100%;height:100%;font-size:1.8rem;font-weight:700;opacity:.8}.tile figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:.35rem;padding:.25rem .45rem;background:linear-gradient(transparent,#0009);font-size:.85rem}.tile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mic-bar{position:relative;flex:none;width:.45rem;height:1rem;border-radius:3px;background:#ffffff40;overflow:hidden}.mic-bar span{position:absolute;left:0;right:0;bottom:0;transition:height .15s}.mic-on span{background:#3ecf7a}.mic-off span{background:#9aa5a9}.tile-hand{box-shadow:0 0 0 3px var(--sun)}.tile-hand-badge,.hand-flag{display:inline-grid;place-items:center;background:var(--sun);border-radius:999px;animation:hand-flash 1s ease-in-out infinite}.tile-hand-badge{position:absolute;top:.35rem;right:.35rem;width:2rem;height:2rem;font-size:1.1rem}.hand-flag{width:1.5rem;height:1.5rem;font-size:.85rem;margin-left:.3rem}@keyframes hand-flash{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.tile-hand-badge,.hand-flag{animation:none}}.board-area{display:grid;place-items:center;min-height:18rem;flex:1;border:2px dashed var(--line);border-radius:12px;background:var(--card);color:var(--muted);text-align:center;padding:1rem}.people-panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;align-self:start;max-height:calc(100vh - 7rem);overflow-y:auto}.people-panel h2{font-size:.95rem;margin:.4rem 0}.roster{list-style:none;margin:0 0 .6rem;padding:0}.roster li{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem;padding:.4rem 0;border-bottom:1px solid var(--line)}.roster li:last-child{border-bottom:none}.roster li.hand{background:#fff6df}.roster-who{flex:1 1 10rem;min-width:0;overflow-wrap:anywhere}.roster-state{color:var(--muted)}.roster-actions{display:flex;gap:.3rem;flex-wrap:wrap}.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.35rem;vertical-align:middle}.dot.mic-on{background:var(--good)}.dot.mic-off{background:#b5bec1}.panel-toggle{display:none}.live-devices{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#141e228c;overflow-y:auto}.live-devices .device-check{width:min(46rem,100%)}.device-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.device-preview{min-width:0}.device-preview video{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;background:#24343a;transform:scaleX(-1);display:block}.device-controls{display:flex;flex-direction:column;gap:.55rem;min-width:0}.device-controls select{max-width:100%}.mic-meter{height:.8rem;border-radius:999px;background:var(--line);overflow:hidden}.mic-meter span{display:block;height:100%;background:var(--good);transition:width .1s}.fix-it{margin:0}.waiting{text-align:center;padding:2rem 1rem}.waiting-text{font-size:1.3rem;font-weight:700;margin:0 0 .4rem}@media(max-width:820px){.live-body{grid-template-columns:minmax(0,1fr)}.people-panel{display:none;max-height:none}.live-body.panel-open .people-panel{display:block}.panel-toggle{display:inline-block}.tile{width:8rem}.tile-large{width:12rem}.board-area{min-height:12rem}.device-grid{grid-template-columns:minmax(0,1fr)}}.live-body.no-panel{grid-template-columns:minmax(0,1fr)}.mic-teacher-off span{background:#e0533f}.dot.mic-teacher-off{background:var(--bad)}.dot.cam-on{background:var(--good)}.dot.cam-off{background:#b5bec1}.roster-tools{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.4rem}.roster-icons{display:flex;flex-wrap:wrap;align-items:center;gap:0 .15rem;margin-top:.1rem}.roster-icons .dot{margin-right:.15rem}.roster-icons .dot+.muted{margin-right:.4rem}.roster-more{flex-basis:100%;display:flex;flex-direction:column;gap:.35rem;padding:.35rem 0 .15rem}.roster-more>.button{align-self:flex-start}.remove-for{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.roster li.absent strong{color:var(--muted);font-weight:600}.reminder{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.attendance-table select{padding:.3rem .5rem}.mark-note{display:block;color:var(--muted);margin-top:.2rem}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--brand);text-decoration:underline;cursor:pointer}tr.mark-absent td:first-child,tr.mark-excused td:first-child{color:var(--muted)}tr.mark-late td:first-child:after,tr.mark-left_early td:first-child:after{content:" •";color:var(--sun)}.lesson-main .pill-good{align-self:flex-start;margin-top:.2rem}.archived-note{border-color:var(--sun);background:#fff6df}.archived-classes{margin:1rem 0}.archived-classes summary{cursor:pointer;font-weight:600;color:var(--muted)}
