:root{color-scheme:light;--ink:#183347;--muted:#516877;--teal:#087f83;--purple:#775298;--line:#d9e5e6;--paper:#f4f8f7}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 0,#e9e0f3 0,transparent 45%),var(--paper);color:var(--ink);font:16px/1.6 'Segoe UI',Arial,sans-serif}.shell{max-width:1140px;margin:auto;padding:32px 28px 48px}.brand{color:var(--teal);font-size:23px;font-weight:800;text-decoration:none}.brand span{font-size:15px;font-weight:500;margin-left:12px;color:var(--ink)}.trial{padding:10px 16px;border:1px solid #e5c881;background:#fff8e5;color:#6c5426;border-radius:12px;font-size:13px;font-weight:650}.eyebrow,.step{letter-spacing:.11em;font-size:12px;font-weight:750;color:var(--teal)}header{max-width:720px;margin:44px 0 32px}h1{font-size:clamp(36px,5vw,58px);line-height:1.12;letter-spacing:-.035em;margin:14px 0 20px}h1 span{color:var(--teal)}header>p:last-child{font-size:18px;color:var(--muted)}.columns{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:23px;padding:30px;box-shadow:0 8px 28px #17394806}.login-card{border-top:4px solid var(--purple)}h2{font-size:26px;line-height:1.2;margin:10px 0 16px}h3{font-size:18px}.card>p,.help p,footer{color:var(--muted)}label{display:block;font-weight:650;font-size:14px;margin:17px 0 0}input,select{display:block;width:100%;border:1px solid #b7ccd0;border-radius:10px;background:#fff;color:var(--ink);padding:12px;font:inherit;margin-top:6px;min-height:48px}input:focus,select:focus{outline:3px solid #76c5c94a;border-color:var(--teal)}.names{display:grid;grid-template-columns:1fr 1fr;gap:14px}button,.button{display:inline-block;border:0;border-radius:11px;background:var(--teal);color:#fff;padding:13px 19px;min-height:47px;font:650 15px 'Segoe UI',sans-serif;cursor:pointer;text-decoration:none}form>button{width:100%;margin-top:18px}.login-card button{background:var(--purple)}button:disabled{opacity:.6;cursor:wait}.secondary{color:var(--teal);background:#edf6f5;border:1px solid #bddddc}.muted{font-size:13px;color:var(--muted)}.help{border-top:1px solid var(--line);margin-top:28px;padding-top:10px}.code{font:700 clamp(13px,1.7vw,20px) monospace;overflow-wrap:anywhere;background:#eef8f6;border:1px dashed #76b6b4;border-radius:10px;padding:16px}footer{font-size:13px;margin-top:28px}a{color:var(--teal)}[hidden]{display:none!important}[role=status]:not(:empty){padding:12px;background:#f3f6f9;border-radius:9px;font-size:14px}.admin-head{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.member{border-top:1px solid var(--line);padding:23px 0}.member h3{margin:0}.member-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.member-actions button{font-size:13px;padding:9px 13px;min-height:40px}.badge{display:inline-block;border-radius:99px;padding:4px 12px;background:#ede5f5;color:#61417a;font-size:13px}.badge.approved{background:#e0f3eb;color:#23694d}.admin-columns{display:grid;grid-template-columns:2fr 1fr;gap:24px}.class-list{padding-left:20px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.toolbar select{width:auto}.danger{background:#934f5f}.session-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line);padding:14px;border-radius:12px;background:#fff}.session-bar p{margin:0}@media(max-width:720px){.columns,.admin-columns{grid-template-columns:1fr}.shell{padding:22px 16px}.card{padding:23px}header{margin-top:30px}.brand span{display:block;margin-left:0}.names{grid-template-columns:1fr;gap:0}.code{font-size:14px}.member-actions button{flex:1}.session-bar{align-items:start;flex-direction:column}}

.delete-dialog{width:min(540px,calc(100% - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:20px;padding:28px;color:var(--ink);background:#fff;box-shadow:0 18px 80px #18334733}.delete-dialog::backdrop{background:#18334799}.delete-member{font-weight:750;overflow-wrap:anywhere}.delete-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px}#delete-error:not(:empty){color:#8a2844}@media(max-width:720px){.delete-dialog{padding:22px}.delete-actions button{flex:1}}
