:root{--green:#176b46;--green-dark:#104832;--lime:#d7ee83;--ink:#13251d;--muted:#6b786f;--line:#dce5dc;--paper:#f4f7f3;--white:#fff;--gold:#d99a27;font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input{font:inherit}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,76px)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font:700 18px Manrope,sans-serif}.brand img{width:43px;height:43px;object-fit:cover;border-radius:50%;border:1px solid #e5e7e2}.brand b{color:var(--green)}.topbar-right{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:.13em;color:#4b5d51}.live-dot,.status-chip i{width:8px;height:8px;border-radius:50%;background:#69a638;box-shadow:0 0 0 4px #eaf3dc}.secure-pill{margin-left:12px;padding:8px 11px;border:1px solid var(--line);border-radius:100px;color:#657269;letter-spacing:0;font-weight:500}.intro{max-width:1180px;margin:0 auto;padding:74px 28px 68px;display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.17em;color:var(--green);margin:0 0 18px}.intro h1{font:800 clamp(54px,8vw,98px)/.98 Manrope,sans-serif;letter-spacing:-.075em;margin:0;color:#18281f}.intro h1 span{color:var(--green)}.intro-text{max-width:410px;margin:22px 0 0;color:#637168;font-size:16px;line-height:1.7}.class-card{padding:27px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 50px #203e2c0b}.class-card-head{display:flex;gap:12px;align-items:center;margin-bottom:22px}.class-icon{width:43px;height:43px;display:grid;place-items:center;background:var(--green);color:var(--lime);border-radius:12px;font:800 14px Manrope,sans-serif}.class-card-head b{display:block;font:700 14px Manrope,sans-serif}.class-card-head small{display:block;color:#879188;font-size:12px;margin-top:3px}.status-chip{margin-left:auto;display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:100px;background:#f2f7ed;color:#56734b;font-size:11px}.status-chip i{width:6px;height:6px;box-shadow:none}.class-card label{display:block;font-size:11px;font-weight:700;color:#4c5e52;margin:13px 0 7px}.class-card>input,.room-input{height:46px;border:1px solid var(--line);border-radius:8px;background:#fbfcfa;width:100%;padding:0 12px;color:var(--ink);outline:none}.class-card input:focus,.room-input:focus-within{border-color:#7ba78b;box-shadow:0 0 0 3px #176b4610}.room-input{display:flex;align-items:center;gap:8px}.room-input span{color:#8b968f;font-size:13px}.room-input input{border:0;outline:0;min-width:0;flex:1;background:transparent;color:var(--ink)}.action-row{display:flex;gap:10px;margin-top:18px}.button{border:0;border-radius:8px;min-height:44px;padding:0 16px;cursor:pointer;font-weight:700;font-size:12px;transition:.18s ease}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{background:var(--green);color:white;flex:1}.button.primary:hover:not(:disabled){background:var(--green-dark);transform:translateY(-1px)}.button.primary span{float:right;font-size:16px;line-height:12px}.button.quiet{background:#f2f5f1;color:#506054}.small-note{font-size:10px;line-height:1.6;color:#88928a;margin:13px 0 0}.meeting-section{background:#102319;padding:56px max(24px,calc((100vw - 1120px)/2)) 66px;color:#fff}.meeting-toolbar{max-width:1120px;margin:0 auto 19px;display:flex;align-items:end;justify-content:space-between;gap:20px}.meeting-toolbar .eyebrow{color:#bfdc86;margin-bottom:8px}.meeting-toolbar h2,.how-section h2{font:700 clamp(25px,3vw,36px) Manrope,sans-serif;letter-spacing:-.045em;margin:0}.meeting-actions{display:flex;gap:8px}.button.outline{background:transparent;color:#edf3eb;border:1px solid #62776a}.button.outline:hover:not(:disabled){background:#203c2d}.notice-bar{max-width:1120px;margin:0 auto 14px;padding:12px 15px;background:#203629;border:1px solid #344b3a;border-radius:8px;display:flex;align-items:flex-start;gap:10px;color:#d9e4d9}.notice-icon{flex:0 0 18px;width:18px;height:18px;border:1px solid #a5c37b;border-radius:50%;display:grid;place-items:center;color:#c6e294;font-size:11px}.notice-bar p{font-size:11px;line-height:1.5;margin:0}.meeting-shell{position:relative;max-width:1120px;height:min(66vw,640px);min-height:400px;margin:0 auto;background:#0b1711;border:1px solid #2c4334;border-radius:12px;overflow:hidden}.meet-frame{position:absolute;inset:0;z-index:1}.meet-frame iframe{width:100%!important;height:100%!important;border:0}.meeting-placeholder{position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}.placeholder-mark{width:55px;height:55px;border:1px solid #567049;border-radius:18px;display:grid;place-items:center;color:var(--lime);font:800 25px Manrope,sans-serif;margin-bottom:18px}.meeting-placeholder h3{font:700 20px Manrope,sans-serif;margin:0 0 9px}.meeting-placeholder p{max-width:470px;color:#a6b2a9;font-size:13px;line-height:1.6;margin:0}.feature-pills{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap;justify-content:center}.feature-pills span{font-size:10px;color:#ccd7ce;border:1px solid #354a3c;border-radius:100px;padding:7px 11px}.watermark{position:absolute;z-index:4;left:18px;bottom:16px;pointer-events:none;padding:7px 10px;background:#07100ca8;border:1px solid #ffffff28;border-radius:4px;color:#ffffffb8;font-size:9px;font-weight:700;letter-spacing:.14em}.recording-status{max-width:1120px;min-height:20px;margin:8px auto 0;color:#e9c37a;font-size:11px}.recording-panel{max-width:1120px;margin:14px auto 0;display:flex;align-items:center;gap:13px;border:1px solid #334b3b;border-radius:10px;padding:16px;background:#182d20}.recording-symbol{width:35px;height:35px;flex:0 0 35px;border:1px solid #607954;border-radius:50%;display:grid;place-items:center;color:var(--lime);font-size:18px}.recording-panel b{font:700 12px Manrope,sans-serif}.recording-panel p{font-size:10px;line-height:1.5;color:#aab7ac;margin:5px 0 0}.local-tag{margin-left:auto;white-space:nowrap;font-size:9px;letter-spacing:.12em;color:#d1e6a7}.how-section{max-width:1120px;padding:70px 25px;margin:0 auto}.how-section .eyebrow{margin-bottom:10px}.how-section h2{font-size:33px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}.steps article{background:#fff;border:1px solid var(--line);border-radius:11px;padding:23px}.steps article span{font:700 11px Manrope,sans-serif;color:#78a653}.steps article h3{font:700 14px Manrope,sans-serif;margin:17px 0 8px}.steps article p{font-size:12px;line-height:1.6;color:#748077;margin:0}footer{border-top:1px solid var(--line);padding:20px max(24px,calc((100vw - 1120px)/2));display:flex;justify-content:space-between;gap:16px;font-size:10px;color:#7d8980}
@media(max-width:760px){.topbar{height:64px;padding:0 16px}.brand{font-size:15px;gap:8px}.brand img{width:36px;height:36px}.topbar-right{font-size:9px;letter-spacing:.08em}.secure-pill{display:none}.intro{padding:48px 19px 43px;grid-template-columns:1fr;gap:26px}.intro h1{font-size:clamp(58px,16vw,84px)}.intro-text{font-size:14px;margin-top:15px}.class-card{padding:20px}.meeting-section{padding:39px 14px 45px}.meeting-toolbar{align-items:flex-start;flex-direction:column;margin-bottom:16px}.meeting-toolbar h2{font-size:25px}.meeting-actions{width:100%;flex-wrap:wrap}.button.outline{flex:1;padding:0 10px;font-size:11px}.notice-bar{padding:11px}.meeting-shell{height:68vh;min-height:420px;border-radius:9px}.recording-panel{align-items:flex-start;flex-wrap:wrap}.recording-panel>div:nth-child(2){flex:1;min-width:190px}.local-tag{margin-left:48px}.how-section{padding:48px 18px}.how-section h2{font-size:27px}.steps{grid-template-columns:1fr;gap:10px;margin-top:22px}.steps article{padding:18px}.steps article h3{margin:10px 0 5px}footer{padding:18px;flex-direction:column;gap:7px}.watermark{left:10px;bottom:10px}.small-note{font-size:10px}}

/* Accounts and instructor dashboard */
.hidden{display:none!important}.topbar-right{gap:12px}.topbar-right .button{min-height:36px;padding:0 13px}.auth-layout,.portal-screen{max-width:1160px;margin:0 auto;padding:70px 28px 84px}.auth-layout{min-height:calc(100vh - 124px);display:grid;grid-template-columns:1fr 420px;align-items:center;gap:9vw}.auth-intro h1,.portal-heading h1{font:800 clamp(45px,6vw,76px)/1.05 Manrope,sans-serif;letter-spacing:-.075em;margin:0;color:#18281f}.auth-intro h1 span,.portal-heading h1 span{color:var(--green)}.auth-intro>p:not(.eyebrow){max-width:470px;color:#637168;font-size:15px;line-height:1.75;margin:21px 0 25px}.auth-points{display:grid;gap:12px;color:#536257;font-size:12px;font-weight:600}.auth-points span{display:flex;align-items:center;gap:10px}.auth-points i{font-style:normal;display:grid;place-items:center;width:20px;height:20px;background:#e6f0d8;border-radius:50%;color:var(--green);font-size:11px}.auth-card,.admin-panel,.stat-card,.info-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 15px 45px #203e2c08}.auth-card{padding:27px}.auth-tabs{display:flex;padding:4px;background:#f1f5ef;border-radius:9px;margin-bottom:25px}.auth-tab,.mode-link{flex:1;border:0;background:transparent;border-radius:7px;padding:10px 12px;font:700 12px Manrope,sans-serif;color:#748077;cursor:pointer}.auth-tab.active{background:#fff;color:var(--green);box-shadow:0 2px 7px #1d332418}.auth-card .eyebrow{margin-bottom:8px}.auth-card h2{font:700 25px Manrope,sans-serif;letter-spacing:-.05em;margin:0}.auth-subtitle{font-size:12px;color:#78847c;margin:7px 0 16px}.mode-switch{display:flex;gap:17px;border-bottom:1px solid var(--line);margin:0 0 14px}.mode-link{flex:none;padding:10px 0;border-radius:0;border-bottom:2px solid transparent}.mode-link.active{border-color:var(--green);color:var(--green)}.auth-card label{display:block;font-size:11px;font-weight:700;color:#4c5e52;margin:13px 0 7px}.auth-card input{width:100%;height:45px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:#fbfcfa;outline:none;color:var(--ink);font:inherit;font-size:13px}.auth-card input:focus{border-color:#7ba78b;box-shadow:0 0 0 3px #176b4610}.full-width{width:100%;margin-top:18px}.form-message{min-height:18px;color:#66776c;font-size:11px;line-height:1.5;margin:10px 0 0}.form-message.error{color:#a4483e}.form-message.success{color:#286945}.privacy-note{font-size:10px;color:#8a948d;line-height:1.5;margin:15px 0 0}.portal-screen{padding-top:55px}.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.portal-heading h1{font-size:clamp(38px,5vw,60px)}.portal-heading>div>p:last-child{color:#738077;font-size:13px;margin:12px 0 0}.account-chip{display:flex;align-items:center;gap:11px;padding:11px 14px;border:1px solid var(--line);background:#fff;border-radius:12px;min-width:225px}.account-avatar,.request-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#e5efd9;color:var(--green);font:700 14px Manrope,sans-serif}.account-chip b,.account-chip small{display:block}.account-chip b{font:700 12px Manrope,sans-serif}.account-chip small{font-size:10px;color:#829087;margin-top:3px}.student-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.student-class-card{padding:28px}.student-class-card h2{font:700 24px Manrope,sans-serif;letter-spacing:-.05em;margin:27px 0 7px}.muted-copy{max-width:450px;font-size:12px;color:#748077;line-height:1.65;margin:0 0 20px}.student-class-card>.button{min-width:190px}.request-status{margin-top:14px;font-size:11px;line-height:1.5;color:#627066}.info-card{padding:25px}.info-number{font:700 11px Manrope,sans-serif;color:#78a653}.info-card h3{font:700 18px Manrope,sans-serif;letter-spacing:-.03em;margin:22px 0 8px}.info-card p{font-size:12px;line-height:1.7;color:#758078;margin:0}.info-rule{height:1px;background:var(--line);margin:21px 0}.info-card .tiny-note{font-size:10px}.admin-heading{align-items:center}.admin-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.admin-badge{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--green)}.admin-shield{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e8f1dc}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.stat-card{padding:18px 20px}.stat-card span{display:block;font-size:9px;letter-spacing:.13em;font-weight:700;color:#758178}.stat-card b{display:block;font:800 30px Manrope,sans-serif;color:#183524;margin-top:9px}.admin-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:15px}.admin-panel{padding:21px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.panel-heading .eyebrow{font-size:9px;margin-bottom:6px}.panel-heading h2{font:700 18px Manrope,sans-serif;letter-spacing:-.04em;margin:0}.panel-heading .button{min-height:34px;font-size:10px}.refresh-hint{font-size:9px;color:#87928a}.requests-list,.users-list{max-height:370px;overflow:auto}.empty-state{padding:22px 10px;text-align:center;color:#8a958d;font-size:11px;line-height:1.6}.request-row{padding:14px 0;border-top:1px solid #edf1ec}.request-person{display:flex;align-items:center;gap:10px}.request-avatar{width:32px;height:32px;flex:0 0 32px;font-size:12px}.request-person b,.request-person small,.user-copy b,.user-copy small{display:block;overflow-wrap:anywhere}.request-person b,.user-copy b{font:700 11px Manrope,sans-serif;color:#273a2d}.request-person small,.user-copy small{font-size:9px;line-height:1.45;color:#89948c;margin-top:3px}.request-actions{display:flex;gap:7px;margin:11px 0 0 42px}.request-actions .button{min-height:30px;padding:0 11px;font-size:10px}.approve-btn{background:#176b46;color:#fff}.deny-btn{background:#f5f0eb;color:#805a48}.user-row{display:flex;align-items:center;gap:9px;padding:12px 0;border-top:1px solid #edf1ec}.presence-dot{width:8px;height:8px;border-radius:50%;background:#c2c9c3;flex:0 0 8px}.presence-dot.online{background:#70aa49;box-shadow:0 0 0 3px #edf5e5}.user-copy{min-width:0;flex:1}.presence-label{font-size:9px;color:#89948c}.online-text{color:#54853a;font-weight:700}.meeting-section{scroll-margin-top:14px}.meeting-shell{height:min(65vw,650px)}
@media(max-width:820px){.auth-layout{grid-template-columns:1fr 380px;gap:5vw;padding:48px 22px}.auth-intro h1{font-size:clamp(43px,7vw,60px)}.portal-heading{align-items:flex-start;flex-direction:column}.admin-tools{justify-content:flex-start}.admin-grid{grid-template-columns:1fr}.student-grid{grid-template-columns:1fr}.meeting-shell{height:65vh;min-height:410px}}
@media(max-width:640px){.topbar{padding:0 14px}.topbar-right{gap:8px}.topbar-right>span:nth-child(2){font-size:8px}.auth-layout{min-height:auto;grid-template-columns:1fr;padding:42px 17px 52px;gap:28px}.auth-intro h1{font-size:clamp(44px,12vw,64px)}.auth-intro>p:not(.eyebrow){font-size:13px;margin:14px 0 18px}.auth-points{gap:9px}.auth-card{padding:21px}.portal-screen{padding:37px 16px 54px}.portal-heading h1{font-size:clamp(36px,10vw,50px)}.account-chip{min-width:0;width:100%}.student-class-card{padding:20px}.stats-row{grid-template-columns:1fr 1fr}.stat-card{padding:15px}.stat-card:last-child{grid-column:1/-1}.stat-card span{font-size:8px}.stat-card b{font-size:26px}.admin-panel{padding:17px}.admin-tools{width:100%;align-items:flex-start;flex-direction:column}.meeting-section{padding:35px 12px 42px}.meeting-toolbar{gap:12px}.meeting-actions{display:flex;width:100%}.meeting-shell{height:68vh;min-height:420px}.recording-panel{gap:10px}.portal-heading>div>p:last-child{font-size:12px}footer{padding:18px 16px}}
