:root{--ink:#17222d;--muted:#687582;--paper:#f6f8f8;--card:#fff;--line:#e4e9e9;--teal:#0f766e;--teal-dark:#0b5d58;--mint:#d9f5ed;--gold:#f1b84b;--shadow:0 18px 45px rgba(26,45,55,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}h1,h2,p{margin-top:0}h1,h2,.brand{font-family:'Space Grotesk',system-ui,sans-serif}h1{font-size:clamp(2.3rem,5vw,4.3rem);letter-spacing:-.06em;line-height:1.02;margin-bottom:14px}h1 span{font-weight:400;color:var(--muted)}h2{letter-spacing:-.04em}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,80px);background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:600;text-decoration:none;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--teal);color:white;font-family:'Space Grotesk';font-weight:700}.topbar nav{display:flex;align-items:center;gap:28px}.topbar nav a:not(.button){color:var(--muted);text-decoration:none;font-size:.9rem}.page-shell{max-width:1180px;margin:0 auto;padding:70px 26px 100px}.hero-row,.detail-header,.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.eyebrow{color:var(--teal);font-size:.73rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;margin-bottom:13px}.lede{font-size:1.08rem;line-height:1.6;color:var(--muted);max-width:600px}.button{border:0;border-radius:12px;background:var(--teal);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:14px 20px;font:600 .92rem 'DM Sans';text-decoration:none;cursor:pointer;transition:.2s ease}.button:hover{background:var(--teal-dark);transform:translateY(-1px)}.button-small{padding:10px 15px;font-size:.82rem}.button-quiet{background:transparent;color:var(--muted)}.button-outline{background:transparent;border:1px solid var(--teal);color:var(--teal)}.button-wide{width:100%;margin-top:24px}.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px;margin-top:52px}.course-card,.empty-state,.form-card,.qr-card,.table-card,.student-card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.course-card{padding:25px;text-decoration:none;color:var(--ink);transition:.2s ease}.course-card:hover{transform:translateY(-3px);box-shadow:0 24px 50px rgba(26,45,55,.13)}.card-top,.card-footer{display:flex;align-items:center;justify-content:space-between}.course-code{font-size:.76rem;letter-spacing:.12em;font-weight:700;color:var(--teal)}.status-dot{font-size:.72rem;color:var(--teal);background:var(--mint);border-radius:99px;padding:6px 9px}.course-card h2{font-size:1.4rem;margin:35px 0 7px}.muted{color:var(--muted);font-size:.9rem}.card-footer{border-top:1px solid var(--line);margin-top:30px;padding-top:18px;font-size:.82rem;color:var(--muted)}.arrow{font-size:1.3rem;color:var(--teal)}.empty-state{text-align:center;padding:75px 25px;margin-top:52px}.empty-state p{max-width:430px;margin:0 auto 24px;color:var(--muted);line-height:1.6}.empty-icon{font-size:2.4rem;color:var(--gold);margin-bottom:10px}.back-link{display:inline-block;color:var(--muted);text-decoration:none;font-size:.86rem;margin-bottom:42px}.form-wrap{max-width:850px;margin:auto}.form-card{margin-top:36px;padding:35px}.form-section{padding:5px 0 32px;margin-bottom:28px;border-bottom:1px solid var(--line)}.form-section h2{font-size:1.2rem;margin-bottom:7px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:22px}label,legend{font-size:.78rem;font-weight:700;color:var(--muted)}input,select{display:block;width:100%;margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:13px 14px;background:#fbfcfc;color:var(--ink);font:inherit}input:focus,select:focus{outline:2px solid var(--mint);border-color:var(--teal)}fieldset{border:0;padding:0;margin:25px 0 0}.day-picker{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.day-option{position:relative}.day-option input{position:absolute;opacity:0}.day-option span{display:block;padding:10px 14px;border:1px solid var(--line);border-radius:9px;color:var(--muted);cursor:pointer}.day-option input:checked+span{background:var(--teal);border-color:var(--teal);color:#fff}.helper{color:var(--muted);font-size:.88rem}.callout{display:flex;gap:14px;background:#f0faf6;border-radius:12px;padding:17px}.callout-icon{font-size:1.5rem;color:var(--teal)}.callout p{margin:4px 0 0;color:var(--muted);font-size:.84rem}.form-actions{display:flex;justify-content:flex-end;gap:12px}.alert{padding:14px;border-radius:10px;margin-top:20px}.alert-error{color:#9b3b32;background:#fff0ee}.detail-header{align-items:center;margin-bottom:44px}.detail-header h1{font-size:3.3rem}.pill,.status-badge{border-radius:99px;padding:8px 12px;font-size:.75rem;font-weight:700}.pill-green,.status-badge{background:var(--mint);color:var(--teal)}.qr-layout{margin-bottom:64px}.qr-card{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:34px}.qr-card h2{font-size:2rem;margin-bottom:10px}.qr-card p{color:var(--muted);max-width:500px;line-height:1.6}.qr-image{width:190px;height:190px;border-radius:12px}.qr-actions{display:flex;align-items:center;gap:20px;margin-top:25px}.text-link{color:var(--teal);font-size:.85rem;text-decoration:none}.section-heading{align-items:center;margin-bottom:18px}.section-heading h2{margin:0;font-size:1.8rem}.table-card{overflow:hidden}table{border-collapse:collapse;width:100%;text-align:left;font-size:.9rem}th,td{padding:17px 22px;border-bottom:1px solid var(--line)}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}tr:last-child td{border-bottom:0}.table-action{color:var(--muted);text-align:right}.footer{text-align:center;color:#9aa5a8;font-size:.75rem;padding:0 20px 35px}.student-shell{max-width:540px;margin:0 auto;text-align:center}.student-brand{display:inline-flex;align-items:center;gap:9px;font-family:'Space Grotesk';font-weight:600;margin-bottom:70px}.student-shell .eyebrow{margin-bottom:11px}.student-card{padding:42px 38px;margin-top:28px;text-align:left}.student-card h1{font-size:2.5rem}.student-card .lede{font-size:1rem}.live-badge{display:inline-flex;align-items:center;gap:8px;color:var(--teal);background:var(--mint);border-radius:99px;padding:7px 11px;font-size:.75rem;font-weight:700;margin-bottom:25px}.live-badge span{width:7px;height:7px;border-radius:50%;background:#23a978}.identity-placeholder{display:flex;gap:14px;align-items:center;padding:17px;background:#f5faf8;border-radius:12px;margin-top:27px}.identity-placeholder p{margin:3px 0 0;color:var(--muted);font-size:.82rem}.identity-icon{font-size:1.9rem;color:var(--teal)}.state-icon{text-align:center;font-size:2.5rem;color:var(--gold);margin-bottom:18px}.state-wait{color:#dd9b2c}.state-closed{color:var(--teal)}.time-callout,.nearby{background:#f5faf8;border-radius:12px;padding:17px;margin-top:25px;color:var(--muted);font-size:.88rem}.time-callout strong,.nearby strong{display:block;color:var(--ink);font-size:1.15rem;margin-top:4px}.meeting-option{width:100%;display:grid;grid-template-columns:1fr auto 25px;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:15px;margin-top:11px;color:var(--ink);cursor:pointer}.meeting-option strong{font-size:.85rem}.meeting-option span:last-child{color:var(--teal);font-size:1.2rem}.student-footnote{color:#9aa5a8;font-size:.75rem;line-height:1.5;margin:22px auto;max-width:360px}@media(max-width:650px){.topbar nav>a:not(.button){display:none}.page-shell{padding-top:42px}.hero-row,.detail-header{display:block}.hero-row .button,.detail-header .pill{margin-top:25px}.form-grid{grid-template-columns:1fr}.form-card,.qr-card,.student-card{padding:25px}.qr-card{display:block}.qr-image{display:block;margin:28px auto 0}.detail-header h1{font-size:2.6rem}.student-brand{margin-bottom:45px}}
:root{font-family:Roboto,"Open Sans",Arial,sans-serif}body,h1,h2,.brand{font-family:Roboto,"Open Sans",Arial,sans-serif}
 .text-button{border:0;background:transparent;color:var(--teal);font:600 .8rem 'DM Sans',system-ui,sans-serif;cursor:pointer;padding:0}.text-button:hover{text-decoration:underline}.status-open{background:#fff2d7;color:#9a6800}.demo-help{margin:14px 2px 0}.meeting-option{font:inherit}
