.login-wrap{max-width:550px;margin:50px auto;padding:20px}.login-brand{font-size:25px;letter-spacing:2px;color:#cf2338;text-decoration:none;font-weight:bold}.login-panel{background:white;border:1px solid #dce1e8;border-radius:12px;padding:30px;margin-top:25px}.login-panel label{display:grid;gap:6px;margin:18px 0}.login-panel button{width:100%;margin-bottom:16px}.login-panel h1{font-size:29px}.account-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:13px}header{flex-wrap:wrap}.training-panel{background:white;border:1px solid #dce1e8;border-radius:10px;padding:24px;margin-bottom:18px}.training-panel label{display:grid;gap:6px;font-size:14px}.training-panel h2{margin-bottom:8px}.training-panel p{overflow-wrap:anywhere}.training-panel .fields{margin-top:16px}.session-list{display:grid;gap:15px}.session-card{background:white;border:1px solid #dce1e8;border-left:4px solid #df263c;border-radius:8px;padding:23px}.session-card h2{font-size:21px;margin:5px 0 8px}.session-card p{margin:5px 0;color:#657080}.session-card .actions{display:flex;gap:12px;margin-top:17px;flex-wrap:wrap}.session-meta{font-size:13px;color:#657080}.session-card.cancelled{border-left-color:#9099a5}.attendance-row{display:grid;grid-template-columns:58px 1fr 190px;align-items:start;gap:16px;background:white;border:1px solid #dce1e8;border-radius:9px;padding:18px;margin:12px 0}.attendance-row img{width:54px;height:54px;object-fit:cover;border-radius:50%}.student-initial{width:54px;height:54px;display:grid;place-items:center;background:#edf0f5;border-radius:50%;color:#657080}.attendance-row label.note{grid-column:2/-1}.attendance-row textarea{min-height:70px}.attendance-row h3{font-size:17px;margin:6px 0}.attendance-row label{font-size:13px;display:grid;gap:5px}.summary-line{display:flex;gap:18px;flex-wrap:wrap;margin:20px 0;color:#657080}.check-group{display:flex!important;align-items:center;gap:10px!important;margin:10px 0}.check-group input{width:19px;height:19px}.group-choices{grid-column:1/-1}.recap-wrap{overflow-x:auto}.recap-table{width:100%;border-collapse:collapse;font-size:14px}.recap-table th,.recap-table td{padding:13px 12px;text-align:left;border-bottom:1px solid #e2e6eb;white-space:nowrap}.recap-table th{color:#657080;font-weight:normal}.recap-notes{white-space:normal!important;min-width:190px}.recap-notes p{white-space:pre-wrap}.count-help{font-size:13px;color:#657080}.account-inactive{color:#8a5c10}.action-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.all-groups{max-width:340px;margin-bottom:20px}.local-hint{font-size:13px;color:#657080}.training-panel .field-note{font-size:12px;color:#657080}#notice:empty{display:none}@media(max-width:600px){.attendance-row{grid-template-columns:44px 1fr;gap:12px;padding:14px}.attendance-row img,.student-initial{width:42px;height:42px}.attendance-row label{grid-column:1/-1}.attendance-row label.note{grid-column:1/-1}.training-panel{padding:18px}.login-wrap{margin:15px auto}.login-panel{padding:23px}.session-card{padding:18px}.account-controls{gap:10px}}
/* Keep attendance inputs inside the narrow content column on tablets. */
.attendance-row{grid-template-columns:58px minmax(0,1fr) minmax(0,190px)}
.attendance-row>*{min-width:0}.attendance-row :is(select,textarea){width:100%;min-width:0;max-width:100%;box-sizing:border-box}.attendance-row h3{overflow-wrap:anywhere}
@media(max-width:1000px){.attendance-row{grid-template-columns:54px minmax(0,1fr)}.attendance-row label,.attendance-row label.note{grid-column:1/-1}}

/* Compact attendance register with one-tap status choices. */
.attendance-table{width:100%;border-collapse:collapse;table-layout:fixed}.attendance-table th{text-align:left;padding:12px;background:#f0f3f7;color:#526076;font-size:13px}.attendance-table th:first-child{width:40%}.attendance-table td{padding:14px 12px;border-bottom:1px solid #e1e6ed;vertical-align:top;overflow-wrap:anywhere}.attendance-person{display:flex;align-items:center;gap:10px;font-size:14px}.attendance-person img,.attendance-person .student-initial{width:64px;height:64px;flex-shrink:0;border-radius:50%;object-fit:cover}.attendance-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.training-panel .attendance-choice{display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid #ccd4df;border-radius:8px;min-height:44px;padding:5px;background:#fff;color:#465166;cursor:pointer;font-size:13px}.attendance-choice input{width:15px;height:15px;margin:0;accent-color:#215b43}.attendance-choice:has(:checked){background:#e4f4eb;border-color:#33865c;color:#205b3f;font-weight:700}.attendance-choice[data-status=absent]:has(:checked){background:#fff0f1;border-color:#c72e40;color:#aa2333}.attendance-choice:has(:focus-visible){outline:3px solid #447dd0;outline-offset:2px}.attendance-reset{border:0;background:transparent;color:#637085;font-size:11px;padding:7px 0;text-decoration:underline}.attendance-note{margin-top:7px;font-size:12px;color:#637085}.attendance-note summary{cursor:pointer}.attendance-note textarea{width:100%;min-width:0;box-sizing:border-box;margin-top:6px}.attendance-count{font-size:14px;font-weight:600;color:#365846}.attendance-save{display:flex;align-items:center;gap:16px;flex-wrap:wrap;position:sticky;bottom:0;background:white;padding:16px 0 4px}.attendance-save small{color:#637085;font-size:12px}
@media(max-width:1000px){.attendance-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-table th:first-child{width:42%}.attendance-table td{padding:10px 6px}.attendance-person{flex-wrap:wrap;gap:6px}.quick-attendance{padding:14px}.attendance-choice input{width:13px;height:13px}}
