/* 4P3X SafeSpark™ UK school-readiness and accessibility layer — 2026-07-22. */
:root{
  --readiness-gold:var(--ss-primary-border);
  --readiness-green:var(--ss-primary-border);
  --readiness-red:#ffb4b4;
  --readiness-panel:#151519;
  --readiness-text:var(--ss-primary-soft);
}
html{scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%;}
:where(h1,h2,h3,h4,h5,h6,[id]){scroll-margin-top:8rem;}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:4px solid var(--readiness-gold)!important;
  outline-offset:4px!important;
  box-shadow:0 0 0 7px rgba(0,0,0,.9)!important;
}
:where(a,button,input,select,textarea){font:inherit;}
:where(input,select,textarea){min-height:44px;}
:where(button,.btn,.roleButton,.linkBtn){min-height:44px;white-space:normal;line-height:1.25;}
:where(p,li,dd,dt,label,small,span){overflow-wrap:anywhere;}
:where(.inlineLink,.policyContactCard a,.siteStatusBanner a,.publicFooter a,.roleFooter a){text-decoration:underline;text-decoration-thickness:.11em;text-underline-offset:.18em;}
.srOnly,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.siteStatusBanner{
  position:relative;z-index:4;width:100%;margin:0;padding:.72rem clamp(.9rem,3vw,2rem);
  display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;
  border-bottom:2px solid rgba(var(--ss-primary-rgb), .55);
  background:linear-gradient(90deg,rgba(var(--ss-primary-rgb), .16),rgba(var(--ss-primary-rgb), .09),rgba(var(--ss-primary-rgb), .12)),#101012;
  color:var(--readiness-text);font-size:.94rem;line-height:1.45;text-align:center;
}
.siteStatusBanner strong{color:var(--ss-primary-soft);}
.siteStatusBanner a{color:#fff;font-weight:850;}
.siteStatusBanner .statusLinks{display:inline-flex;gap:.65rem;flex-wrap:wrap;justify-content:center;}
.policyMeta{
  display:flex;gap:.55rem;flex-wrap:wrap;margin:.9rem 0 0;padding:0;list-style:none;
}
.policyMeta li{padding:.42rem .68rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.055);color:var(--ss-primary-soft);font-size:.86rem;font-weight:750;}
.statusGrid,.roadmapGrid,.testedGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem;}
.statusCard,.roadmapCard,.testedCard,.policyContactCard,.warningPanel,.infoPanel{
  border:1px solid rgba(255,255,255,.15);border-radius:22px;padding:1.1rem;background:rgba(255,255,255,.045);
}
.statusCard h3,.roadmapCard h3,.testedCard h3{margin-top:.1rem;}
.statusCard.operational{border-color:rgba(var(--ss-primary-rgb), .35);}
.statusCard.demo{border-color:rgba(var(--ss-primary-rgb), .38);}
.statusCard.required,.warningPanel{border-color:rgba(255,180,180,.42);background:rgba(255,100,100,.075);}
.statusLabel{display:inline-flex;margin-bottom:.55rem;padding:.28rem .55rem;border-radius:999px;background:rgba(255,255,255,.09);font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;}
.policyContactCard{margin-top:1.2rem;border-color:rgba(var(--ss-primary-rgb), .34);background:linear-gradient(135deg,rgba(var(--ss-primary-rgb), .075),rgba(var(--ss-primary-rgb), .07));}
.policyContactCard h2{margin-top:0;}
.policyContactActions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:.8rem;}
.errorSummary{display:none;margin:1rem 0;padding:1rem;border:3px solid var(--readiness-red);border-radius:18px;background:#2a1114;color:#fff;}
.errorSummary.visible{display:block;}
.errorSummary h2{font-size:1.15rem;margin:0 0 .55rem;}
.errorSummary a{color:#fff;text-decoration:underline;font-weight:800;}
.fieldError{display:block;color:#ffd1d1;font-weight:800;margin-top:.25rem;}
[aria-invalid="true"]{border-color:#ff8e8e!important;box-shadow:0 0 0 2px rgba(255,142,142,.2);}
.dataBoundaryNotice{border-left:5px solid var(--readiness-red);padding:1rem 1.1rem;border-radius:16px;background:rgba(255,100,100,.08);}
.dataBoundaryNotice strong{color:#ffd6d6;}
.roadmapStatus{display:inline-flex;padding:.28rem .55rem;border-radius:999px;background:rgba(var(--ss-primary-rgb), .13);color:var(--ss-primary-soft);font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;}
.policyTable{width:100%;border-collapse:collapse;margin:1rem 0;}
.policyTable th,.policyTable td{padding:.8rem;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.15);text-align:left;}
.policyTable th{color:var(--ss-primary-soft);}
.policyTable caption{text-align:left;font-weight:850;margin-bottom:.5rem;color:#fff;}
@media (max-width:760px){
  .statusGrid,.roadmapGrid,.testedGrid{grid-template-columns:1fr;}
  .siteStatusBanner{align-items:flex-start;text-align:left;justify-content:flex-start;}
  .siteStatusBanner .statusLinks{justify-content:flex-start;}
  .policyTable{display:block;overflow-x:auto;}
}
@media (max-width:420px){
  body>main,.roleMain,main{width:calc(100% - 1rem)!important;}
  .siteStatusBanner{font-size:.88rem;}
}
@media (prefers-contrast:more){
  :root{--muted:var(--ss-primary-soft);--line:rgba(255,255,255,.55);}
  .statusCard,.roadmapCard,.testedCard,.policyContactCard,.investorCard,.rolePanel,.panel{border-width:2px;}
  a{text-decoration:underline;}
}
@media (forced-colors:active){
  .siteStatusBanner,.statusCard,.roadmapCard,.testedCard,.policyContactCard,.warningPanel{border:2px solid CanvasText;background:Canvas;color:CanvasText;}
  :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:4px solid Highlight!important;box-shadow:none!important;}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
@media print{.siteStatusBanner,.policyContactActions,.errorSummary{display:none!important;}}
