:root{font:16px system-ui,sans-serif;color:#172d44;background:#f4f6f9;--blue:#112a4a;--teal:#112a4a;--gold:#e8ad26}*{box-sizing:border-box}body{margin:0}header{background:var(--blue);color:white;display:flex;align-items:center;gap:14px;padding:24px max(20px,calc((100vw - 1000px)/2));padding-top:max(24px,env(safe-area-inset-top))}h1{font-size:25px;margin:3px 0}small{font-size:10px;letter-spacing:2px}.brand{font-size:36px;color:#ffd778}.badge{margin-left:auto;border:1px solid #ffffff66;border-radius:20px;padding:5px 10px;font-size:12px}main{max-width:1040px;margin:auto;padding:18px;padding-bottom:env(safe-area-inset-bottom)}nav{display:flex;gap:7px;overflow:auto;margin-bottom:18px}button{font:inherit;border:1px solid #c8d5df;border-radius:9px;padding:11px 14px;background:white;color:var(--blue);cursor:pointer;min-height:44px}button:hover{border-color:var(--teal)}button.active,button.primary{background:var(--teal);color:white;border-color:var(--teal)}nav button{white-space:nowrap;font-size:14px}input,select,textarea{font:inherit;border:1px solid #bccbd5;border-radius:7px;padding:11px;width:100%;background:white;color:#172d44}label{display:block;font-size:13px;font-weight:600}label input,label select{margin-top:6px}textarea{min-height:100px;margin:8px 0}.card{background:white;border:1px solid #dde5eb;border-radius:15px;padding:20px;margin:0 0 18px;box-shadow:0 3px 12px #18324d05}.selectors{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}h2{font-size:20px;margin:0 0 15px}h3{font-size:16px;margin:16px 0 10px}.muted,footer{color:#60788b;font-size:13px;line-height:1.6}footer{text-align:center;padding:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.days{display:flex;gap:7px;overflow:auto;margin-bottom:14px}.days button{min-width:76px}.pupil{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf0f4;padding:12px 0}.marks{display:flex;gap:5px}.marks button{padding:8px 13px}.marks .P.active{background:#147e65}.marks .A.active{background:#b74848}.marks .L.active{background:#986814}.mark-label{font-size:12px;color:#60788b}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{padding:16px;background:#f0f3f8;border-radius:10px}.metric b{display:block;font-size:28px;margin:6px 0}.warning{background:#fff3d7;padding:12px;border-radius:8px;color:#755200;font-size:14px}#notice:not(:empty){padding:12px;margin-bottom:12px;background:#fff3d7;border-radius:8px}table{border-collapse:collapse;width:100%;font-size:14px}td,th{text-align:left;padding:12px 8px;border-bottom:1px solid #e5ebf0}.scroll{overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid button{align-self:end}.danger{color:#a23e3e}.empty{text-align:center;padding:36px 12px}.pill{background:#eef3f7;padding:5px 10px;border-radius:20px;font-size:12px}details{margin:12px 0}summary{cursor:pointer;font-weight:600}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e6b84e;outline-offset:2px}@media(max-width:600px){main{padding:12px}.card{padding:15px}.selectors{grid-template-columns:1fr 1fr}.selectors label:first-child{grid-column:1/-1}.metrics{grid-template-columns:1fr}.metric{display:flex;align-items:center;justify-content:space-between}.metric b{font-size:24px}.form-grid{grid-template-columns:1fr}.pupil{align-items:flex-start}.pupil>span{padding-top:10px}.marks button{padding:8px 12px}.badge{display:none}}@media print{nav,.selectors,header .badge,button,#notice,footer{display:none}.card{box-shadow:none}body{background:white}}

.session-label{display:block;font-size:12px;font-weight:400;color:#60788b;margin-top:3px}.pending{display:block;font-size:11px;letter-spacing:0;color:#82620c;font-weight:400}.daily-totals th:first-child{min-width:105px}.daily-totals td,.daily-totals th{padding:12px 6px}

.delete-dialog{max-width:460px;width:calc(100% - 32px);border:1px solid #c8d5df;border-radius:15px;padding:24px;color:#172d44;line-height:1.6}.delete-dialog::backdrop{background:#10263b99}.delete-confirm{background:#a23e3e;color:white;border-color:#a23e3e}

.pupil-photo{width:48px;height:56px;object-fit:contain;border:1px solid #c8d5df;border-radius:8px;background:#edf3f7;flex-shrink:0}.placeholder{display:inline-flex;align-items:center;justify-content:center;font-size:24px;color:#60788b}.pupil-identity{display:flex;align-items:center;gap:10px}.photo-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}input[type=checkbox]{width:auto}.photo-controls label{flex:1;min-width:160px}@media(max-width:450px){.pupil-photo{width:32px;height:40px}.pupil-identity{gap:6px;font-size:14px}}

/* Trident Register v2.5 — approved navy, gold and white identity. */
header{background:white;color:var(--blue);border-bottom:4px solid var(--gold)}
.brand{display:block;width:68px;height:68px;object-fit:contain;flex-shrink:0}
header small{color:#526178;letter-spacing:1.5px}h1{font-weight:750;letter-spacing:-.6px}
.badge{border-color:#d8e0e9;background:#f4f6f9;color:var(--blue)}
nav button.active{box-shadow:inset 0 -3px 0 var(--gold)}
button:hover{border-color:#9a6b00}button.primary:hover{background:#1d3c61}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.metric{border-top:3px solid var(--gold)}
@media(max-width:450px){header{gap:10px;padding-left:16px;padding-right:16px}header h1{font-size:24px}.brand{width:56px;height:56px}header small{font-size:9px;letter-spacing:1px}}
@media print{header{border-bottom:2px solid var(--blue);padding:12px 0}.brand{width:48px;height:48px}}

/* Shared school workspace; approved trade dress retained. */
[hidden]{display:none!important}.no-school nav,.no-school .selectors,.no-school #view{display:none}.cloud-card{border-top:3px solid var(--gold)}.cloud-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}.cloud-heading p{margin:5px 0}a{color:var(--blue)}#cloud-status{font-size:14px;font-weight:600;color:#405775;overflow-wrap:anywhere}.sign-in{display:inline-block;background:var(--blue);color:white;padding:12px 18px;border-radius:8px;text-decoration:none}.request-item,.staff-row{padding:14px 0;border-bottom:1px solid #dde5eb}.request-item p{margin:6px 0}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}fieldset{border:1px solid #d5dfe9;border-radius:10px;margin:12px 0;padding:14px}fieldset label{margin:10px 0}#access-panel{margin-top:20px}button:disabled{opacity:.45;cursor:not-allowed}#invitation-result input{font-size:12px}#access-panel h3{margin-top:24px}@media print{#online-shell{display:none}}

/* School-wide daily collection uses the approved Trident palette. */
.school-daily-hidden{display:none!important}.school-daily .metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0}.school-daily .metric .muted{display:block}.school-daily-table{min-width:840px}.school-daily-table caption{text-align:left;font-weight:600;padding:12px 0}.school-daily-table thead{background:#f0f3f8}.school-daily-table thead tr:first-child th{border-bottom:2px solid var(--gold)}.school-daily-table td,.school-daily-table th{vertical-align:top}.school-daily-table tfoot{background:#eef3f7;border-top:2px solid var(--gold)}.daily-total{font-weight:700}.collection-status{display:inline-block;border-radius:6px;padding:4px 6px;font-size:12px;background:#edf1f6}.collection-status.complete{background:#e5f4ec;color:#185e3b}.collection-status.incomplete,.collection-status.not-started{background:#fff3d7;color:#755200}#school-daily-status{font-size:14px;font-weight:600}.report-controls button{align-self:end}.school-daily small.pending{white-space:nowrap}@media(max-width:600px){.school-daily .metrics{grid-template-columns:1fr}.school-daily .metric{display:block}.report-controls label{flex-basis:100%}}@media print{.school-daily-table{min-width:0;font-size:10px}.school-daily-table td,.school-daily-table th{padding:5px 3px}.school-daily .metrics{grid-template-columns:1fr 1fr}.school-daily{padding:10px}.school-daily .report-controls button{display:none}}
