/* Accounts: sign-in, setup, profile, teacher dashboard */
#accountHost{max-width:820px}
.hw-panel+.hw-panel{margin-top:30px}
.hw-panel-body h3{font-size:20px;margin:26px 0 12px;text-transform:uppercase}
.hw-note{font:400 12px "Space Mono",monospace;margin:22px 0 0!important}
.acc-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
.hw-panel-body .fb{margin:18px 0 0}
#accountHost>.fb{margin:0 0 22px}
.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:12px;margin:0 0 22px}
.avatar{font-size:30px;line-height:1;padding:10px 0;min-height:60px;background:var(--card);color:var(--ink);border:var(--b);box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.avatar:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.avatar.sel{background:var(--yellow);outline:3px solid var(--ink);outline-offset:2px}
.avatar:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.profile-top{display:flex;align-items:center;gap:20px;margin-bottom:22px}
.big-avatar{display:grid;place-items:center;width:96px;height:96px;font-size:56px;background:var(--yellow);border:var(--b);box-shadow:5px 5px 0 var(--ink);flex-shrink:0}
.profile-top h2{margin:0 0 4px!important;word-break:break-word}
.profile-top p{margin:0!important;font:700 13px "Space Mono",monospace}
.xp-box{display:inline-block;background:var(--mint);color:var(--on);border:var(--b);box-shadow:4px 4px 0 var(--ink);padding:10px 16px;font:700 14px "Space Mono",monospace;margin-bottom:18px}
.xp-box b{font-size:30px;margin-right:8px}
.t-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--ink);background:var(--bg);padding:10px 12px;margin-bottom:10px}
.t-who{display:flex;flex-direction:column;min-width:0;gap:2px;font-weight:700;word-break:break-word}
.t-who small{font:400 11px "Space Mono",monospace;opacity:.8}
.btn-sm{font:700 11px "Space Mono",monospace;text-transform:uppercase;padding:8px 10px;border:2px solid var(--ink);background:var(--card);color:var(--ink);min-height:40px;flex-shrink:0}
.btn-sm:hover{background:#ffb3ae;color:var(--on)}
.t-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:18px}
.t-form label{display:grid;gap:6px;font:700 11px "Space Mono",monospace;text-transform:uppercase}
.t-form .ex-input{width:160px}
.t-area{width:100%;min-height:110px;font:400 14px "Space Mono",monospace;background:var(--bg);color:var(--ink);border:var(--b);padding:10px;resize:vertical}
.t-area:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media (max-width:520px){.profile-top{gap:14px}.big-avatar{width:76px;height:76px;font-size:44px}.t-form label,.t-form .ex-input{width:100%}.acc-actions .btn{width:100%}}

/* Stats, leaderboard, class table, dialog */
.stat-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:8px}
.xp-box.rank{background:var(--yellow)}
.lb-row{display:flex;align-items:center;gap:12px;border:2px solid var(--ink);background:var(--bg);padding:10px 12px;margin-bottom:10px}
.lb-row.me{background:var(--yellow);color:var(--on);box-shadow:4px 4px 0 var(--ink)}
.lb-rank{font:700 16px "Space Mono",monospace;min-width:40px}
.lb-av{font-size:26px;line-height:1}
.lb-name{flex:1;font-weight:700;word-break:break-word}
.lb-xp{font:700 14px "Space Mono",monospace;white-space:nowrap}
.t-actions{display:flex;gap:8px;flex-shrink:0}
a.btn-sm{display:inline-flex;align-items:center}
.t-scroll{overflow-x:auto;margin-top:18px;border:2px solid var(--ink)}
.t-table{border-collapse:collapse;width:100%;min-width:560px;font:400 13px "Space Mono",monospace}
.t-table th,.t-table td{border-bottom:2px solid var(--ink);padding:10px 12px;text-align:left;white-space:nowrap}
.t-table th{background:var(--yellow);color:var(--on);font-weight:700;text-transform:uppercase;font-size:11px}
.t-table tr:last-child td{border-bottom:0}
.t-table td.yes{background:var(--mint);color:var(--on);font-weight:700}
.t-table td.no{background:#ffb3ae;color:var(--on);font-weight:700}
.t-table td.na{opacity:.5}
.pill.done{background:var(--yellow);color:var(--on)}
.modal-back{position:fixed;inset:0;background:rgba(17,17,17,.6);display:grid;place-items:center;padding:20px;z-index:50}
.modal{width:min(440px,100%);background:var(--card);border:var(--b);box-shadow:10px 10px 0 var(--ink)}
.modal-body{padding:clamp(18px,4vw,28px)}
.modal-body p{margin:0;font-size:18px;font-weight:700}
.modal .acc-actions{margin-top:24px}
@media (max-width:520px){.modal .acc-actions .btn{width:100%}.lb-row{gap:8px;padding:10px}}
.t-form h3,.t-form .fb,.t-form .hw-note,.t-form .t-row,.t-form>.btn{flex-basis:100%;width:100%}
.t-form>.btn{width:auto;flex-basis:auto}
.t-form .t-row .ex-input{width:120px}
.t-form>label{flex:1 1 220px}.t-form>label .ex-input{width:100%}
.t-select{font:700 12px "Space Mono",monospace;border:2px solid var(--ink,#111);background:var(--card,#fff);color:inherit;padding:4px 6px}

/* Student flow + teacher tracker additions */
button.hw-card{width:100%;text-align:left;font:inherit;cursor:pointer}
.hw-card.off{opacity:.6;box-shadow:none}
.hw-card.off:hover{transform:none;box-shadow:none}
.linkish{background:none;border:0;padding:0;font:700 14px "Space Mono",monospace;text-decoration:underline;color:inherit;cursor:pointer;min-height:32px}
.who-line{font:700 14px "Space Mono",monospace;margin:0 0 18px}
.t-select.big{display:block;width:100%;max-width:420px;font-size:17px;padding:12px;margin:0 0 14px;min-height:50px}
.hw-panel-body .ex-input{max-width:420px;width:100%;margin:0 0 14px}
.t-head,.t-cell{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left;text-transform:inherit}
.t-head{font-weight:700;text-decoration:underline}
.t-cell{font-weight:700}
.t-table td.no{font-weight:400;font-size:11px;text-transform:uppercase}
.breakdown{margin:12px 0}
.t-student{border:2px solid var(--ink);background:var(--bg);padding:12px;margin-bottom:12px}
.t-sname{font-weight:700;font-size:18px;word-break:break-word}
.t-student small{display:block;font:400 11px "Space Mono",monospace;margin:2px 0 8px}
.t-chips{display:flex;flex-wrap:wrap;gap:8px}
.t-chip{font:700 12px "Space Mono",monospace;border:2px solid var(--ink);padding:6px 10px;min-height:40px;color:var(--on);cursor:pointer;box-shadow:2px 2px 0 var(--ink)}
.t-chip.hi{background:var(--mint)}.t-chip.mid{background:var(--yellow)}.t-chip.lo{background:#ffb3ae}
.t-chip.on{outline:3px solid var(--blue);outline-offset:2px}
.t-row.okrow{background:var(--mint);color:var(--on)}.t-row.badrow{background:#ffb3ae;color:var(--on)}
.t-replay{margin-top:18px}
.t-replay .les-panel{box-shadow:none}
