/* Site chrome: account bar, auth screens, admin dashboard. Uses tokens from style.css. */
[hidden]{display:none!important}
img{max-width:100%}
/* let wide tables scroll inside their card instead of widening the page */
.card,.tracker,section.grid,.wrap{grid-template-columns:minmax(0,1fr)}
.grid>*,.card>*{min-width:0}
.tracker{display:grid;gap:20px}
.ro .edit-only{display:none!important}
.acct{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:14px;color:var(--ink2)}
.acct b{color:var(--ink)}
.acct a{color:var(--cobalt);font-weight:700;text-decoration:none}
.acct a:hover{text-decoration:underline}
.status{font:500 12px var(--mono);padding:3px 8px;border-radius:99px;background:var(--soft);color:var(--ink2);white-space:nowrap}
.status.ok{background:var(--good-soft);color:var(--good)}
.status.err{background:var(--bad-soft);color:var(--bad)}
.status button{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.boot{padding:40px 0;text-align:center}
.alert{border-radius:10px;padding:10px 12px;font-size:14px}
.alert:empty{display:none}
.alert.err{background:var(--bad-soft);color:var(--bad)}
.alert.ok{background:var(--good-soft);color:var(--good)}

/* auth */
.auth{display:grid;justify-items:center;padding-top:8px}
.auth .card{width:100%;max-width:440px;padding:24px}
.auth h2{font-size:24px}
.auth .switch{font-size:14px;color:var(--ink2)}
.linkbtn{font:inherit;font-weight:700;color:var(--cobalt);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.auth .btn.primary{width:100%;padding:11px 14px}
.privacy{font-size:12.5px;color:var(--ink2);background:var(--soft);border-radius:10px;padding:10px 12px}

/* admin */
.kpis{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.toolbar input{max-width:280px}
.stu-name{font:inherit;font-weight:800;color:var(--ink);background:none;border:0;padding:0;cursor:pointer;text-align:left}
.stu-name:hover{color:var(--cobalt);text-decoration:underline}
.stu-email{display:block;font-size:12.5px;color:var(--ink3)}
.live{display:inline-flex;align-items:center;gap:6px;font:500 12px var(--mono);color:var(--good)}
.live i{width:8px;height:8px;border-radius:50%;background:var(--good);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.stu-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.stu-head h2{font-size:clamp(24px,4vw,32px)}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:var(--soft)}
