:root { color-scheme: light; --ink:#172033; --muted:#667085; --line:#d9deea; --panel:#fff; --bg:#f3f5f9; --blue:#2457d6; --blue-dark:#173fa8; --green:#16794a; --red:#b42318; --amber:#a15c00; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--bg); font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:var(--blue); }
.site-header { min-height:64px; padding:0 5vw; background:#101828; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-header a,.link-button { color:#fff; text-decoration:none; }
.brand { font-size:1.05rem; font-weight:750; }
nav { display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.container { width:min(1120px,92vw); margin:36px auto 64px; }
.student-page { width:min(680px,92vw); margin-top:9vh; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:26px; box-shadow:0 4px 14px rgba(16,24,40,.05); }
.hero { text-align:center; padding:48px 28px; }
.hero h1,.assignment-card h1 { font-size:clamp(2rem,7vw,3.25rem); line-height:1.1; margin:.3em 0; }
.narrow { max-width:520px; margin:auto; }
.eyebrow { color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; }
.stack { display:grid; gap:18px; }
label { display:grid; gap:6px; font-weight:650; }
input { width:100%; padding:11px 12px; border:1px solid #aeb7c8; border-radius:8px; font:inherit; }
input[readonly] { background:#eef1f6; color:#596579; }
.check { display:flex; grid-template-columns:auto 1fr; align-items:center; gap:9px; }
.check input { width:auto; }
.hint { color:var(--muted); font-size:.86rem; font-weight:400; }
.button,.link-button { border:0; border-radius:8px; padding:10px 15px; font:inherit; font-weight:700; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.button:disabled { opacity:.45; cursor:not-allowed; }
.button.primary { background:var(--blue); color:#fff; }.button.primary:hover { background:var(--blue-dark); }
.button.secondary { color:var(--ink); background:#eef1f6; border:1px solid #ccd2dd; }
.button.danger { background:#fee4e2; color:var(--red); }.button.warning { background:#fff1d6; color:#7a4500; }
.button.large { font-size:1.12rem; padding:14px 22px; }.button.small { padding:7px 10px; font-size:.9rem; }
.link-button { padding:0; background:none; }.inline { display:inline; }
.button-row,.heading-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.heading-row { justify-content:space-between; }
.alert { padding:12px 14px; border-radius:8px; margin:0 0 20px; background:#edf4ff; }.alert.error { color:#8f1710; background:#fee4e2; }.alert.success { color:#085d38; background:#dcfae6; }.alert.warning { color:#7a4500; background:#fff1d6; }
.status { display:inline-block; border-radius:999px; padding:4px 9px; font-size:.75rem; font-weight:800; letter-spacing:.05em; }.status.active { color:#09633d; background:#d6f6e4; }.status.inactive { color:#5d6675; background:#e8ebf0; }
.capacity-summary { color:var(--muted); font-size:1.1rem; }.capacity-summary strong { color:var(--ink); }
.node-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin:26px 0; }.node-card { padding:20px; }.node-card h2 { margin:0; }.node-card.disabled { opacity:.72; }.node-count { font-size:1.5rem; margin-bottom:8px; }
.meter { height:9px; border-radius:999px; overflow:hidden; background:#e6e9ef; }.meter span { display:block; height:100%; background:var(--blue); }
.admin-grid { display:grid; grid-template-columns:2fr 1fr; gap:18px; margin:26px 0; }.summary-list,.credentials { margin:18px 0; }.summary-list div,.credentials div { display:grid; grid-template-columns:140px 1fr; gap:16px; padding:10px 0; border-bottom:1px solid var(--line); }.summary-list dt,.credentials dt { color:var(--muted); }.summary-list dd,.credentials dd { margin:0; font-weight:650; overflow-wrap:anywhere; }
.qr-card { text-align:center; }.qr-card img { display:block; margin:0 auto 12px; max-width:100%; height:auto; }.danger-zone { border-color:#f0aaa5; }.empty { color:var(--muted); text-align:center; }
.search-form { display:flex; align-items:end; gap:10px; margin:20px 0; }.search-form label { flex:1; }.table-card { overflow-x:auto; } table { width:100%; border-collapse:collapse; } th,td { padding:12px 10px; text-align:left; border-bottom:1px solid var(--line); } th { color:var(--muted); font-size:.85rem; }
.assignment-card .button-row { margin-top:24px; }
@media (max-width:700px) { .site-header { align-items:flex-start; padding-top:16px; padding-bottom:16px; flex-direction:column; } nav { gap:12px; } .container { margin-top:22px; } .admin-grid { grid-template-columns:1fr; } .summary-list div,.credentials div { grid-template-columns:1fr; gap:2px; } .button-row .button,.button-row form { width:100%; } .button-row form .button { width:100%; } .search-form { align-items:stretch; flex-direction:column; } }
