
:root{font-family:Inter,system-ui,sans-serif;color:#182d39;background:#f2f5f6}*{box-sizing:border-box}body{margin:0}header{background:#122d39;color:white;padding:22px 5%;display:flex;justify-content:space-between;align-items:center}.brand{font-weight:750;font-size:21px}.brand span{color:#65dac6}main{max-width:1060px;margin:48px auto;padding:0 24px}.eyebrow{color:#087f71;font-size:12px;letter-spacing:2px;font-weight:700}h1{font-size:36px;letter-spacing:-1px;margin:12px 0}p{color:#627680;line-height:1.6}.card{background:white;border:1px solid #dce5e8;border-radius:15px;padding:26px;margin-bottom:22px}h2{font-size:19px;margin:0 0 12px}label{display:block;font-size:13px;font-weight:600;margin:20px 0 8px}input{width:100%;padding:13px;border:1px solid #cbd7dc;border-radius:7px;font:inherit}button{background:#087f71;color:white;border:0;border-radius:7px;padding:12px 18px;cursor:pointer;font:inherit}.secondary{background:#eaf0f2;color:#34515d}.row{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.pill{font-size:12px;border-radius:20px;padding:6px 10px;background:#e7f5ef;color:#087f71}.offline,.error{background:#f5e9e7;color:#995342}.busy,.connected{background:#e8eef9;color:#385a99}.muted{font-size:13px;color:#70848d}.login{max-width:440px;margin:70px auto}.login button{width:100%;margin-top:24px}#message{color:#a13434}pre{background:#132e3a;color:#bcebdc;padding:18px;border-radius:8px;overflow:auto;font-size:13px}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:16px 12px;border-bottom:1px solid #e5ecee;font-size:14px}th{font-size:12px;color:#627680}td small{display:block;color:#70848d;margin-top:5px}.table-scroll{overflow:auto}code{font-family:monospace}footer{color:#70848d;font-size:12px;margin-top:28px}[hidden]{display:none!important}@media(max-width:600px){main{margin-top:26px}.card{padding:18px}h1{font-size:28px}}

textarea,select{width:100%;padding:12px;border:1px solid #cbd7dc;border-radius:7px;font:inherit}textarea{min-height:70px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.actions button{padding:8px 12px;font-size:12px}.danger{background:#9a403b}.job{border-top:1px solid #e5ecee;padding:18px 0}.job pre{max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}details{margin:10px 0}summary{cursor:pointer}#notice{background:#fff4da;padding:15px;border-radius:8px}#pairCode{white-space:pre-wrap;overflow-wrap:anywhere}.warning{color:#9b4a20}.fieldrow{display:flex;gap:10px}.fieldrow>*{flex:1}@media(max-width:700px){.admin-grid{grid-template-columns:1fr}}

.download-status{display:flex;gap:8px;align-items:center;margin:8px 0;font-weight:500;white-space:nowrap}.download-status input{width:16px;height:16px;margin:0;accent-color:#087f71}.download-status input:disabled{opacity:1}#connectedStudents>.row{padding:12px 0;border-bottom:1px solid #e5ecee}

.tabs{display:flex;gap:8px;flex-wrap:wrap;padding:8px;background:#e2eaed;border-radius:12px;margin:26px 0 14px}.tabs button{background:transparent;color:#375661;flex:1;min-width:130px}.tabs button[aria-selected="true"]{background:#122d39;color:white;box-shadow:0 2px 5px #102c3920}.tabs button:focus-visible{outline:3px solid #0b9b87;outline-offset:2px}.log-entry{border-top:1px solid #e5ecee;padding:14px 0}header small{font-size:10px;letter-spacing:2px;margin-left:12px;color:#a9c9c8}main{max-width:1320px}.fieldrow>div{min-width:0}@media(max-width:650px){.fieldrow{display:block}header small{display:none}}

.header-link{color:#bcebdc;text-decoration:none;font-size:13px}.download-main{max-width:1000px;margin-top:80px}.download-main>h1{font-size:58px;line-height:1.1}.download-intro{font-size:18px;max-width:630px}.download-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.download-card{padding:34px;display:flex;flex-direction:column;min-height:300px}.download-card h2{font-size:27px;margin-top:20px}.download-card p{flex:1}.download-button{display:block;text-align:center;padding:15px;border-radius:8px;background:#087f71;color:white;text-decoration:none;font-weight:650;margin-top:20px}.download-button:hover{background:#09685e}.download-button.unavailable{background:#e5ecee;color:#748b94;cursor:default}.download-card p.muted{font-size:12px;flex:0}input[type="file"]{background:#f7fafb}#uploadStatus{padding:12px} @media(max-width:700px){.download-grid{grid-template-columns:1fr}.download-main{margin-top:42px}.download-main>h1{font-size:40px}.download-card{min-height:260px}}
