:root{--navy:#062D63;--blue:#0D64C8;--teal:#10AEB5;--orange:#FF9A1F;--ink:#1d344a;--muted:#647789;--line:#d7e1ea;--bg:#f3f7fb;--white:#fff;--danger:#a43131;--ok:#2d6b3d;--warn:#9a6300}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}
.top{min-height:102px;background:var(--navy);display:flex;align-items:center;justify-content:space-between;padding:12px 26px;color:white;gap:18px}.top img{height:76px;width:auto;max-width:340px;object-fit:contain}.dev{font-size:11px;font-weight:800;border:1px solid #88b7e8;background:#0b417e;padding:7px 10px;border-radius:999px;white-space:nowrap}
.wrap{max-width:1320px;margin:auto;padding:20px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 3px 10px #17365d10;margin-bottom:14px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.hero{padding:30px;text-align:center}.hero-logo{width:min(520px,88%);height:auto;margin:4px auto 8px;display:block}.hero h1{font-size:34px;color:var(--navy);margin:5px 0}.hero p{color:var(--muted)}
.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:780px;margin:20px auto}.portal{padding:25px;text-align:left;cursor:pointer}.portal h2{color:var(--navy);margin-top:0}
.btn{border:1px solid #b8c7d5;background:white;color:var(--ink);border-radius:9px;padding:9px 13px;cursor:pointer;font-weight:700}.btn:hover{border-color:#7b99b5}.btn.primary{background:var(--navy);color:white;border-color:var(--navy)}.btn.secondary{background:#edf4fb;color:var(--navy);border-color:#c2d7eb}.btn.danger{color:var(--danger);border-color:#daa1a1}.btn.warn{color:#7a5000;border-color:#d9bd79;background:#fff9eb}.btn.small{padding:6px 9px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}
.field{margin:10px 0}.field label{display:block;font-size:12px;font-weight:800;margin-bottom:4px}.field input,.field select,.field textarea{width:100%;padding:10px;border:1px solid #c9d5df;border-radius:8px;background:white}.field textarea{min-height:105px}.field select[multiple]{min-height:108px}.field-help{font-size:11px;color:var(--muted);margin-top:4px}
.login{max-width:470px;margin:25px auto}.login .login-logo{width:min(360px,85%);display:block;margin:4px auto 20px}.error{background:#fff1f1;border:1px solid #e3a3a3;color:#842626;padding:9px;border-radius:8px;margin:8px 0}.success{background:#effaf1;border:1px solid #a8d8b1;color:#255c31;padding:9px;border-radius:8px;margin:8px 0}
.nav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.nav button.active{background:var(--navy);color:white}.pagehead{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:13px}.pagehead h1{margin:0;color:var(--navy)}.pagehead h2,.card h2,.card h3{color:var(--navy)}.meta{font-size:12px;color:var(--muted)}
.stat b{font-size:29px;color:var(--navy);display:block}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:9px;border-bottom:1px solid #e4ebf1;text-align:left;font-size:13px;vertical-align:middle}.table th{color:#436079;font-size:11px;text-transform:uppercase;letter-spacing:.03em;background:#f9fbfd}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:#f6faff}.table input,.table select{min-width:110px;padding:7px;border:1px solid #ccd8e3;border-radius:7px}
.badge{display:inline-block;padding:4px 7px;background:#edf4fb;color:var(--navy);border-radius:999px;font-size:11px;font-weight:800}.badge.ok{background:#edf8ef;color:#2d6b3d}.badge.warn{background:#fff7df;color:#7a5000}.badge.danger{background:#fff0f0;color:#8b2b2b}.yes{color:var(--ok);font-weight:800}.no{color:var(--danger);font-weight:800}
.offline{position:fixed;inset:0;background:#062d63f2;display:none;place-items:center;z-index:99;color:white;text-align:center;padding:20px}.offline.show{display:grid}.offline .box{max-width:520px}.offline h2{font-size:27px}.reactions button{font-size:22px;padding:8px;border:1px solid #d6e1eb;background:white;border-radius:10px;cursor:pointer}
.setup-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px}.checklist{display:grid;gap:8px}.check-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e0e8ef;border-radius:10px}.check-dot{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-weight:900;background:#eef2f6;color:#75879a;flex:0 0 auto}.check-dot.done{background:#e6f5ea;color:#2d6b3d}.check-item small{display:block;color:var(--muted);margin-top:2px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.formgrid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.actions{display:flex;gap:8px;flex-wrap:wrap}.school-brand{display:flex;gap:18px;align-items:center}.school-logo-box{width:130px;height:130px;border:1px dashed #aebfce;border-radius:14px;background:#f8fbfd;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.school-logo-box img{max-width:100%;max-height:100%;object-fit:contain;padding:8px}.school-logo-box span{font-size:12px;color:var(--muted);padding:8px;text-align:center}
.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.filters .field{min-width:180px;margin:0}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.65fr);gap:14px}.sticky{position:sticky;top:12px}.empty{padding:28px;text-align:center;color:var(--muted)}.muted-box{background:#f7f9fb;border:1px solid #e1e7ec;border-radius:10px;padding:12px}.security-note{background:#fff7df;border:1px solid #ead29a;border-radius:11px;padding:11px 13px;color:#664b08;font-size:12px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.section-title h3{margin:0}.mini-checks{display:flex;gap:8px;flex-wrap:wrap}.mini-check{padding:6px 8px;border-radius:8px;background:#f1f5f9;font-size:11px}
pre{white-space:pre-wrap;background:#f3f6f9;padding:10px;border-radius:8px;font-size:12px;max-height:270px;overflow:auto}
@media(max-width:900px){.setup-grid,.split{grid-template-columns:1fr}.sticky{position:static}.formgrid.three{grid-template-columns:1fr 1fr}.top img{height:66px;max-width:280px}}
@media(max-width:720px){.portal-grid{grid-template-columns:1fr}.top{padding:10px 13px;min-height:88px}.top img{height:58px;max-width:245px}.dev{font-size:9px}.wrap{padding:12px}.pagehead{align-items:flex-start;flex-direction:column}.formgrid,.formgrid.three{grid-template-columns:1fr}.school-brand{align-items:flex-start;flex-direction:column}}

/* Phase 1.1 */
.class-term-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.field.compact{margin:0;min-width:210px}.field.compact select{padding:8px 34px 8px 10px}.mini-check.strong{font-weight:800;background:#f1f6fb;border:1px solid #d9e5ef;padding:10px 12px;border-radius:10px;display:inline-flex;align-items:center;gap:8px}.class-section-head{align-items:flex-end}@media(max-width:820px){.class-section-head{align-items:flex-start;flex-direction:column}.class-term-controls{width:100%}.field.compact{flex:1}}

/* Phase 1.2: explicit role access controls */
.access-choice{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px;margin-top:7px}
.access-radio{display:flex;align-items:flex-start;gap:10px;border:1px solid #cbd9e6;border-radius:12px;padding:13px;background:#f6f9fc;cursor:pointer}
.access-radio input{margin-top:3px;accent-color:var(--navy)}
.access-radio span{display:flex;flex-direction:column;gap:3px}.access-radio small{font-size:11px;color:var(--muted);font-weight:400}
.disabled-area{opacity:.48}.table select,.table input{width:100%;padding:8px;border:1px solid #c7d4df;border-radius:8px;background:white}
@media(max-width:720px){.access-choice{grid-template-columns:1fr}}

.attainly-modal-backdrop{position:fixed;inset:0;background:rgba(10,31,52,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:5000}
.attainly-modal{width:min(560px,100%);background:#fff;border-radius:16px;border:1px solid #d6e1ea;box-shadow:0 24px 70px rgba(8,36,67,.28);padding:22px}
.modal-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.modal-head h2{margin:0 0 4px;color:var(--navy)}.modal-head p{margin:0;color:var(--muted);font-size:13px}
.modal-close{border:0;background:transparent;color:#5c7185;font-size:29px;line-height:1;cursor:pointer;padding:0 4px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;flex-wrap:wrap}
.attainly-modal input[type=date]{font-size:16px;min-height:46px}

/* Phase 6.3 accessibility and tablet usability pass */
html,body{max-width:100%;overflow-x:hidden}
.btn,.field input,.field select,.field textarea{min-height:44px}.btn.small{min-height:40px;padding:8px 10px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
input[type="checkbox"],input[type="radio"]{min-width:20px;min-height:20px;accent-color:var(--navy)}
.pupil-view-tabs{display:flex;gap:8px;flex-wrap:wrap}.pupil-search{flex:1}.pupil-card-list{display:grid;gap:8px}.pupil-list-card{width:100%;border:1px solid #d8e3ec;border-radius:11px;padding:13px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:var(--ink)}button.pupil-list-card{cursor:pointer;min-height:60px}.pupil-list-card span:first-child{display:grid;gap:3px}.pupil-list-card small{color:var(--muted)}.clickable-card:hover{border-color:var(--blue);background:#f5f9fd}
@media(max-width:900px){.wrap{max-width:100%;padding:12px}.nav{flex-wrap:wrap;overflow:visible;padding-bottom:2px}.nav .btn{flex:1 1 128px;min-height:46px;text-align:center}.filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.filters .field{min-width:0}.filters .pupil-search{grid-column:1/-1}.table-wrap{max-width:100%}.top{gap:8px}.dev{white-space:normal;text-align:center}.pupil-list-card{min-height:66px}}
@media(max-width:620px){.nav .btn{flex-basis:46%}.filters{grid-template-columns:1fr}.filters .pupil-search{grid-column:auto}.actions .btn{min-height:44px}.card{padding:14px}.top{flex-direction:column;justify-content:center}.top img{height:52px}.dev{font-size:9px}}

/* Phase 6.5 School Leaver historical record */
.leaver-record-card{display:flex;gap:10px;align-items:center}.leaver-record-main{flex:1;min-width:0;border:0;background:transparent;text-align:left;display:flex;justify-content:space-between;align-items:center;padding:8px;cursor:pointer;color:inherit}.leaver-record-main span:first-child{display:grid;gap:4px}.leaver-record-main small{color:var(--muted)}.leaver-record-main:hover{background:#f4f8fc;border-radius:8px}
.leaver-history-modal{width:min(1180px,96vw);max-width:1180px;max-height:92vh;overflow:auto}.leaver-history-banner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;background:#fff7e8;border:1px solid #ead09a;border-radius:10px;color:#6b531f;margin-bottom:12px}.history-profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.history-profile-grid>div{display:grid;gap:3px;padding:10px;border:1px solid #dce5ed;border-radius:9px;background:#f8fafc}.history-profile-grid b{font-size:10px;text-transform:uppercase;color:#60778d}.history-chip-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.history-chip{padding:5px 8px;border-radius:999px;background:#edf4fb;color:#17365d;font-size:11px;font-weight:800}.history-section{border-top:1px solid #dce5ed;margin-top:12px;padding-top:8px}.history-section>summary{cursor:pointer;font-weight:900;color:#062d63;padding:8px 0}.history-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.history-stat{display:grid;gap:4px;border:1px solid #dce5ed;background:#f8fafc;border-radius:9px;padding:10px}.history-stat span{font-size:11px;color:var(--muted)}.history-evidence-card{border:1px solid #dce5ed;border-radius:11px;padding:12px;margin:9px 0;background:#fff}.history-evidence-card h4{margin:7px 0 2px;color:#17365d}.history-statement-id{font-size:10px;color:#5f7285}.history-judgement{display:inline-block;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900;border:1px solid #cad6e0}.history-judgement.not-yet{background:#fde8e8;border-color:#d94a4a;color:#8f1d1d}.history-judgement.emerging{background:#fff4d8;border-color:#d7a52d;color:#72530b}.history-judgement.secure{background:#e5f5e8;border-color:#64a774;color:#245d31}
@media(max-width:700px){.history-profile-grid{grid-template-columns:1fr}.leaver-record-card{align-items:stretch;flex-direction:column}.leaver-record-card>.btn{width:100%}}


/* Hosted demo - searchable Google Drive pupil archive picker */
.archive-picker-modal{width:min(820px,100%);max-height:min(88vh,820px);display:flex;flex-direction:column}
.archive-search{margin:4px 0 10px}
.archive-picker-count{font-size:13px;color:#607489;margin:0 0 8px}
.archive-picker-list{display:grid;gap:10px;max-height:48vh;overflow:auto;padding:2px 4px 4px 0;margin-bottom:14px}
.archive-picker-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #d9e3ec;border-radius:14px;padding:14px;background:#fff}
.archive-picker-info{display:grid;gap:4px;min-width:0}
.archive-picker-info b{font-size:17px;color:#153657}
.archive-picker-info span{font-size:14px;color:#49647c}
.archive-picker-info small{font-size:12px;color:#76899a;overflow-wrap:anywhere}
.archive-picker-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:680px){.archive-picker-row{align-items:stretch;flex-direction:column}.archive-picker-actions{justify-content:stretch}.archive-picker-actions .btn,.archive-picker-actions a.btn{width:100%;justify-content:center}.archive-picker-list{max-height:52vh}}
.demo-public-guide{display:flex;justify-content:center;margin:4px 0 14px}
.guide-extra-head{margin-top:24px}


/* Hosted-demo security, permissions and feedback polish */
.attainly-toast{position:fixed;top:18px;right:18px;z-index:9000;max-width:min(430px,calc(100vw - 36px));display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border-radius:12px;box-shadow:0 12px 34px rgba(8,36,67,.22);font-weight:700;background:#fff;border:1px solid #cfdbe5}.attainly-toast.ok{border-left:5px solid #3b8b56}.attainly-toast.bad{border-left:5px solid #b93737}.attainly-toast span{flex:1}.attainly-toast button{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:#607489}.idle-warning-backdrop{z-index:9500}.idle-warning-modal{width:min(480px,100%);text-align:center}.idle-warning-modal h2{margin-top:0;color:var(--navy)}.idle-countdown{font-size:34px;font-weight:900;color:var(--navy);margin:18px 0}.three-choice{grid-template-columns:repeat(3,minmax(180px,1fr))}.assessment-access-card{margin:12px 0}.media-permission-meta{margin-top:10px}.permission-pills-stacked{display:grid!important;gap:8px}.media-permission-row{display:grid;gap:5px}.media-restriction-detail{padding:9px 11px;border-left:4px solid #d79b24;background:#fff8e8;border-radius:6px;font-size:12px}.curriculum-field-key{padding:10px 12px;background:#f4f8fc;border:1px solid #dce6ef;border-radius:9px;font-size:12px;margin:12px 0}.field-help b{color:var(--ink)}
@media(max-width:900px){.three-choice{grid-template-columns:1fr}}

/* Fresh-school first-login setup */
.initial-setup-shell{max-width:1040px;margin:28px auto;padding:0 18px 40px}.initial-setup-card{padding:28px}.initial-setup-kicker{font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#617080;margin-top:8px}.initial-setup-intro{max-width:760px;font-size:1.05rem}.initial-setup-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0 22px}.initial-setup-steps span{padding:10px 12px;border:1px solid #d8e1e8;border-radius:10px;background:#f7f9fb;font-weight:700;text-align:center}.initial-setup-steps span.active{background:#eef6f2;border-color:#b9d5c8}.initial-class-row{display:grid;grid-template-columns:1.5fr .8fr 1fr auto;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid #e8edf1}.initial-class-row:last-child{border-bottom:0}.initial-remove-class{margin-bottom:2px}.initial-review{background:#f8fafb}.initial-setup-actions{display:flex;justify-content:space-between;gap:12px;margin-top:18px}@media(max-width:760px){.initial-setup-steps{grid-template-columns:1fr 1fr}.initial-class-row{grid-template-columns:1fr}.initial-remove-class{justify-self:start}.initial-setup-card{padding:18px}}


/* Admin Go Live */
.go-live-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;border-width:2px}.go-live-hero.locked{border-color:#e6b34d;background:#fffaf0}.go-live-hero.live{border-color:#8bc9a8;background:#f1fbf5}.go-live-kicker{font-size:.76rem;font-weight:800;letter-spacing:.12em;color:#5d7086}.go-live-hero h2{margin:.3rem 0}.go-live-score{min-width:150px;text-align:center;padding:16px;border-radius:14px;background:#fff;border:1px solid #dce5ed}.go-live-score b{display:block;font-size:2rem;color:#0b396f}.go-live-score span{font-size:.82rem;color:#66788a}.go-live-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:18px;align-items:start}.go-live-checks{display:grid;gap:10px}.go-live-check{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:12px;border:1px solid #dfe7ee;border-radius:12px;background:#fff}.go-live-check.pass{border-color:#b8dbc7;background:#f6fcf8}.go-live-check.action{border-color:#efd29a;background:#fffaf0}.go-live-check.info{background:#f7f9fb}.go-live-check-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:800;background:#e8eef5;color:#0b396f}.go-live-check.pass .go-live-check-icon{background:#dff3e7;color:#176b3b}.go-live-check.action .go-live-check-icon{background:#fff0cf;color:#805b00}.go-live-check-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.go-live-check small{display:block;color:#66788a;margin-top:3px;line-height:1.4}.go-live-control .mini-check{display:block;margin:12px 0}.go-live-control .actions{display:grid;gap:8px;margin-top:12px}.go-live-control .actions .btn{width:100%}@media(max-width:900px){.go-live-grid{grid-template-columns:1fr}.go-live-hero{align-items:flex-start;flex-direction:column}.go-live-score{width:100%}}
