:root{--ink:#172033;--muted:#697386;--line:#e7eaf0;--accent:#173f73;--gold:#c89b3c;--bg:#f5f7fb;--ok:#0a7a4b;--warn:#a46200}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--ink)}aside{position:fixed;left:0;top:0;bottom:0;width:220px;background:#0f284b;color:white;padding:24px 18px;overflow-y:auto}.brand{font-weight:800;letter-spacing:1.1px;font-size:18px;margin-bottom:28px}.brand:after{content:"";display:block;width:38px;height:3px;background:var(--gold);margin-top:8px}nav{display:grid;gap:6px}nav a{padding:11px 12px;border-radius:8px;color:#cdd8e8}nav a.active,nav a:hover{background:#173f73;color:white}main{margin-left:220px;padding:30px;max-width:1500px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}h1{margin:0;font-size:28px}header p{margin:5px 0 0;color:var(--muted)}.pill{background:#eef2f8;border:1px solid #dce2ec;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.card,.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px rgba(20,33,61,.04)}.card{padding:18px}.card span{display:block;color:var(--muted);font-size:13px}.card strong{display:block;font-size:30px;margin-top:8px}.card.warn{border-left:4px solid #d68a18}.panel{padding:20px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel-head span{color:var(--muted);font-size:13px}h2{font-size:18px;margin:0 0 14px}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.status{display:inline-block;background:#edf4ff;color:#1f4f91;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:700}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid2 .panel{margin-bottom:0}code{background:#f2f4f8;padding:8px 10px;border-radius:7px}.verify-page{display:grid;place-items:center;min-height:100vh}.verify-card{background:white;border:1px solid var(--line);border-radius:18px;width:min(92vw,460px);padding:34px;text-align:center;box-shadow:0 18px 60px rgba(21,35,62,.12)}.brand.dark{color:#173f73}.avatar{width:90px;height:90px;border-radius:50%;background:#eaf0f8;margin:20px auto;display:grid;place-items:center;font-size:30px;font-weight:800;color:#173f73}.valid{display:inline-block;background:#e7f7ef;color:var(--ok);padding:8px 15px;border-radius:999px;font-weight:800}.valid.bad{background:#fdecec;color:#9f2f2f}.small{font-size:12px;color:var(--muted);line-height:1.5;margin-top:20px}@media(max-width:1000px){aside{display:none}main{margin:0}.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:600px){main{padding:16px}.cards{grid-template-columns:1fr 1fr}.card strong{font-size:24px}table{font-size:12px}}
.loginbody{display:grid;place-items:center;min-height:100vh;background:#f3f5f7}.loginbox{width:min(420px,90vw);background:white;padding:34px;border-radius:14px;box-shadow:0 10px 35px #0002}.loginbox form{display:grid;gap:10px}.loginbox input{padding:12px;border:1px solid #ccd3da;border-radius:8px}.loginbox button{padding:12px;border:0;border-radius:8px;background:#0d2d4d;color:#fff;font-weight:700;margin-top:8px}.error{background:#fee;padding:10px;border-radius:8px;color:#900}header a{margin-left:12px;color:#53677a}td small{color:#657786}
.actions{margin:0 0 18px}.gridform{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}.stackform{display:grid;gap:10px}.inline{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.inline input,.inline select{min-width:120px}.secondary{background:#334155}.danger{background:#991b1b}.publicbody{background:#f4f6f8;display:flex;justify-content:center;padding:40px 18px}.publicbox{background:white;max-width:720px;width:100%;padding:28px;border-radius:14px;box-shadow:0 12px 36px #0001}.publicbox form{display:grid;gap:10px}.publicbox input,.publicbox select,.publicbox textarea,.gridform input,.gridform select,.stackform input,.stackform select,.stackform textarea,.inline input,.inline select{padding:10px;border:1px solid #cbd5e1;border-radius:8px}.success{padding:12px;background:#dcfce7;border-radius:8px}.panel small{color:#64748b}
button{padding:10px 14px;border:0;border-radius:8px;background:#173f73;color:#fff;font-weight:700;cursor:pointer}button:disabled{opacity:.6;cursor:wait}textarea{min-height:90px}.shift-card h3{margin:4px 0 8px;font-size:15px}.compact{margin-top:14px}.training-content,.document-body{white-space:pre-wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:14px;margin:12px 0;line-height:1.55}.id-wrap{display:grid;place-items:center}.id-card{width:min(420px,94vw);background:white;border:1px solid var(--line);border-radius:20px;padding:30px;text-align:center;box-shadow:0 18px 60px rgba(21,35,62,.12)}.qr{display:block;width:170px;height:170px;margin:18px auto 4px;border:8px solid white}.shift-card form{margin:4px 0}
/* v0.6 mobile/PWA additions */
.kv{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:10px 18px;margin-top:16px}.kv span{color:#64748b}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.tablewrap{overflow:auto}.btn{display:inline-block;text-decoration:none;padding:8px 12px;border-radius:8px;background:#17324d;color:#fff}.small{font-size:.85rem;padding:6px 10px}textarea{min-height:88px}
@media(max-width:760px){aside{position:relative;width:auto;min-height:auto}body{display:block}aside nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:8px}aside nav a{white-space:nowrap}main{margin-left:0;padding:14px}header{align-items:flex-start;gap:8px}.grid2{grid-template-columns:1fr}.card{padding:14px}.kv{grid-template-columns:1fr 1fr}table{min-width:680px}}

.override-hours { width: 70px; }

/* R3.2.3 shared operational layout. Native controls and form semantics retained. */
:root{--muted:#526176;--line:#dce3ec;--focus:#9b6500}
body{font-size:14px;line-height:1.5}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}p{margin:0 0 14px;overflow-wrap:anywhere}h1{font-size:26px;line-height:1.25}h2{line-height:1.35}h3{font-size:16px}main{width:calc(100% - 220px);padding:26px;min-width:0}main>*{min-width:0}aside nav a{text-decoration:none}header{gap:20px;align-items:flex-start}header p{font-size:12px}.account-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;max-width:320px;flex-shrink:0}.account-actions a{margin:0}.account-actions form{margin:0}.pill{display:inline-block;white-space:normal;overflow-wrap:anywhere}.brand{line-height:1.4}
.card,.panel{border-radius:10px;box-shadow:0 2px 5px #17203305;padding:20px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.cards .card{padding:16px}.cards .card span{font-size:12px}.cards .card strong{font-size:28px;margin-top:6px}.card>p,.panel>p{color:var(--muted)}.row,.panel-head{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.between,.panel-head{justify-content:space-between}.row>div{min-width:0}.row .pill{margin-top:8px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}/* Let grid cards shrink; wide records scroll inside .tablewrap. */
.grid2>*{min-width:0}.profile-grid{grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr)}.kv{grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);font-size:13px}.kv b,.kv span{overflow-wrap:anywhere}.status{border-radius:5px;line-height:1.4;max-width:100%;overflow-wrap:anywhere;font-size:11px}.back-link{display:inline-block;margin-bottom:16px;font-weight:600}
form{margin:0}label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;min-width:0;color:var(--ink)}label:has(input[type=checkbox]),label:has(input[type=radio]){flex-direction:row;align-items:center;gap:9px;font-weight:400;min-height:42px}label:has([required]):not(:has([type=checkbox]))::after{content:"Required";font-size:11px;font-weight:400;color:var(--muted);order:1}label>input,label>select,label>textarea{order:2}label:has([type=checkbox])>input,label:has([type=radio])>input{order:0}.gridform{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:16px;align-items:end}.stackform{gap:18px}.gridform>p,.gridform>label:has(textarea),.gridform>.form-actions{grid-column:1/-1}.gridform>button{justify-self:start}.gridform>input[type=hidden],.stackform>input[type=hidden]{display:none}fieldset{border:1px solid var(--line);border-radius:8px;margin:0;padding:18px;min-width:0}legend{font-size:15px;font-weight:700;padding:0 7px}.form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;font-weight:400;color:var(--ink);background:white;width:100%;min-width:0;max-width:100%;min-height:42px;padding:9px 11px;border:1px solid #aab8ca;border-radius:6px;line-height:1.4}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-width:18px;min-height:18px;flex:0 0 18px;accent-color:var(--accent);margin:0}textarea{min-height:110px;resize:vertical}input[type=file]{padding:6px!important;font-size:12px!important}input::file-selector-button{border:0;border-radius:4px;padding:6px 8px;margin-right:7px;background:#eaf0f8;color:var(--ink)}input::placeholder,textarea::placeholder{color:#66758a;opacity:1}.inline{gap:10px}.inline label{flex:1 1 150px}.inline input,.inline select{min-width:0}.notice{padding:14px;border-left:3px solid var(--gold);background:#fff8e7;color:#604400!important}.error{border:1px solid #edb0b0;line-height:1.5}.success{color:#125b35;border:1px solid #94cfb0}
button,.btn{display:inline-flex;justify-content:center;align-items:center;min-height:40px;padding:9px 13px;gap:6px;font:inherit;font-size:13px;font-weight:600;line-height:1.4;text-align:center;text-decoration:none;border:1px solid transparent;border-radius:6px;background:var(--accent);color:white;white-space:normal;max-width:100%;overflow-wrap:anywhere}button:hover,.btn:hover{background:#102f58;color:white}.secondary{background:#edf2f8;color:#173f73;border-color:#becbdd}.secondary:hover{background:#dce6f2;color:#173f73}.danger{background:#991b1b;color:white}.danger:hover{background:#731515}.btn.small,button.small{font-size:12px;padding:7px 10px;min-height:36px}.panel small{line-height:1.5;display:inline-block}button:disabled{cursor:not-allowed}.small{line-height:1.5}form:has(>label):not(.gridform):not(.inline){display:grid;gap:14px}form:has(>label):not(.gridform)>button{justify-self:start}td form+form{margin-top:8px}
.tablewrap,.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin-top:16px;border:1px solid var(--line);border-radius:7px}table{min-width:580px;width:100%;border-collapse:collapse}th{background:#f3f6fa;color:#48576b;line-height:1.4}th,td{padding:12px;vertical-align:top;font-size:13px}th{font-size:11px}td{overflow-wrap:anywhere;max-width:360px}td:has(form){min-width:180px}td:has(textarea){min-width:280px}td form{display:grid;gap:10px}td form.inline{display:flex}td form button{justify-self:start}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}td[colspan]{padding:22px;color:var(--muted)}td input.override-hours{width:90px}.tablewrap:focus-visible{outline-offset:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{position:fixed;top:-100px;left:12px;padding:12px;background:white;z-index:10;border:2px solid var(--accent)}.skip-link:focus{top:12px}.loginbox{margin:0;width:min(440px,92vw);padding:28px}.loginbox .brand{color:var(--accent)}.loginbox h1{margin-bottom:18px}.loginbox img{max-width:100%}.loginbox code{overflow-wrap:anywhere}.publicbox{min-width:0}.publicbox form{gap:16px}
@media(max-width:1100px){.grid2,.profile-grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){aside{display:block;position:relative;width:100%;padding:14px 18px;max-width:100vw}.brand{margin-bottom:12px;font-size:16px}.brand:after{display:none}aside nav{display:flex;overflow-x:auto;gap:5px;padding-bottom:7px}aside nav a{flex:0 0 auto;white-space:nowrap;padding:9px 10px}main{width:100%;margin:0;padding:22px}header{margin-bottom:20px}}
@media(max-width:600px){main{padding:14px}header{flex-direction:column;gap:14px}h1{font-size:23px}.account-actions{justify-content:flex-start;max-width:100%;gap:12px}.card,.panel{padding:16px}.cards{gap:10px}.cards .card{padding:13px}.gridform{grid-template-columns:1fr}.grid2{gap:14px}.panel-head{gap:8px}.panel-head span{font-size:12px}.tablewrap{margin-top:14px}fieldset{padding:14px}.kv{gap:10px}.publicbody{padding:20px 12px}.publicbox{padding:20px}.form-actions{align-items:stretch}.form-actions>*{flex:1 1 auto}.id-card{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
input[type=checkbox],input[type=radio]{padding:0;border:initial;border-radius:initial}
label:has(input[type=date]),label:has(input[type=time]){max-width:24rem}

/* R3.2.3 MOBILE-NAV1: compact disclosure; desktop navigation is unchanged. */
.nav-toggle{display:none}
.primary-nav[hidden]{display:none!important}
@media(max-width:1000px){
  aside .nav-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
  aside .nav-header .brand{margin-bottom:0;min-width:0;overflow-wrap:anywhere}
  .nav-toggle:not([hidden]){display:inline-flex;flex:0 0 auto;background:#fff;color:#173f73;min-height:44px}
  aside nav.primary-nav{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible;max-width:100%;gap:4px;padding:12px 0 0}
  aside nav.primary-nav a{white-space:normal;overflow-wrap:anywhere;min-width:0;min-height:44px;flex:initial}
}

/* Consolidated workflow forms. Mobile disclosure behaviour above is preserved. */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.form-grid>*{min-width:0}.form-grid .field-wide,.form-grid>fieldset{grid-column:1/-1}
.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.workflow-grid>.panel{min-width:0}.checkline{display:flex!important;align-items:flex-start;gap:10px;line-height:1.5}
.checkline input{width:18px!important;min-width:18px;height:18px;margin-top:3px}
.retained-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin:16px 0;max-width:80ch}
.hash-text{overflow-wrap:anywhere;font-size:12px}.record-row,.diary-entry{padding:18px 0;border-bottom:1px solid var(--line)}
.record-row>span{display:block;margin:8px 0}.panel details{padding:14px 0;border-bottom:1px solid var(--line)}
.panel summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600;overflow-wrap:anywhere}
.panel details form{margin-top:18px}.workflow-steps{padding-left:24px}.workflow-steps li{padding:8px 0;line-height:1.6}
.invoice-totals{text-align:right;padding:20px 0}.invoice-compact{font-size:13px}.invoice-compact th,.invoice-compact td{padding:8px}
.workflow-error main{margin:0 auto;max-width:760px;width:100%;padding:24px}
@media(max-width:900px){.workflow-grid{grid-template-columns:1fr}}
@media(max-width:600px){.form-grid{grid-template-columns:1fr;gap:16px}.form-grid label:has(input[type=date]){max-width:none}.invoice-totals{text-align:left}}
@media print{aside,.account-actions,.skip-link{display:none!important}main{margin:0;width:100%}.invoice-sheet{box-shadow:none;border:0}.invoice-sheet table{min-width:0}}

/* RC2 forward fix: shared form alignment without changing control semantics. */
.gridform,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:20px;row-gap:18px}
.gridform>*,.form-grid>*,.stackform>*{min-width:0}
.gridform>button,.form-grid>button,.form-grid>.form-actions{grid-column:1/-1;justify-self:start}
.gridform>label:not(:has(input[type=checkbox],input[type=radio])),.form-grid>label:not(:has(input[type=checkbox],input[type=radio])){display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;align-items:baseline;gap:7px 8px}
.gridform>label::after,.form-grid>label::after{grid-column:2;grid-row:1;order:initial!important}
.gridform>label>input,.gridform>label>select,.gridform>label>textarea,.form-grid>label>input,.form-grid>label>select,.form-grid>label>textarea{grid-column:1/-1;grid-row:2;order:initial}
.gridform>label>small,.form-grid>label>small{grid-column:1/-1;grid-row:3}
label:has(input[type=checkbox],input[type=radio]){align-items:flex-start;line-height:1.5;padding-top:3px}
label:has(input[type=checkbox],input[type=radio])>input{margin-top:1px}
.field-help{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.6;max-width:80ch}
.employee-entry .personal-names{grid-template-columns:repeat(3,minmax(0,1fr))}
.employee-entry .contact-fields{margin-top:18px}
.employee-entry .licence-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.employee-entry .personal-names{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-entry .personal-names>label:last-child{grid-column:1/-1}}
@media(max-width:600px){.gridform,.form-grid,.employee-entry .personal-names,.employee-entry .licence-fields{grid-template-columns:minmax(0,1fr);gap:16px}.employee-entry .personal-names>label:last-child{grid-column:auto}}
.gridform>.field-wide,.gridform>fieldset{grid-column:1/-1}

/* Phase A final visual fix: usable reflow at genuine 200% browser zoom.
   Preserve intentional horizontal scrolling inside wide record tables. */
@media(max-width:760px){
  header{
    flex-direction:column;
    gap:14px;
  }

  .account-actions{
    justify-content:flex-start;
    max-width:100%;
    width:100%;
  }

  .gridform,
  .form-grid,
  .employee-entry .personal-names,
  .employee-entry .licence-fields{
    grid-template-columns:minmax(0,1fr);
  }

  .employee-entry .personal-names>label:last-child{
    grid-column:auto;
  }

  .kv{
    grid-template-columns:minmax(0,1fr);
  }

  .card,
  .panel,
  fieldset{
    min-width:0;
    max-width:100%;
  }

  h1,h2,h3,
  p,li,dt,dd,
  article,details,summary{
    overflow-wrap:anywhere;
  }

  .actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }

  .actions a{
    min-width:0;
    overflow-wrap:anywhere;
  }
}

/* Only the Operations Dashboard shift summary stacks on narrow screens.
   Keep native headings available to assistive technology and all values visible. */
@media(max-width:760px){
  .dashboard-shifts{display:block;min-width:0;width:100%}
  .dashboard-shifts thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}
  .dashboard-shifts tbody{display:block;width:100%}
  .dashboard-shifts tbody tr{display:block;border-bottom:1px solid var(--line)}
  .dashboard-shifts tbody tr:last-child{border-bottom:0}
  .dashboard-shifts td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:10px;min-width:0;max-width:none;width:100%;border-bottom:0;overflow-wrap:anywhere}
  .dashboard-shifts td::before{content:attr(data-label);font-weight:600;color:var(--muted)}
  .dashboard-shifts td[colspan]{display:block}
  .dashboard-shifts td[colspan]::before{content:none}
}

/* Stage 1 recruitment: long applicant identity values must wrap without inline styles. */
.stage1-review h2,
.stage1-review p{
  overflow-wrap:anywhere;
  word-break:break-word;
}

.stage3-training{min-width:0;overflow-wrap:anywhere}.stage3-training input,.stage3-training select,.stage3-training textarea{max-width:100%;min-width:0}.stage3-training fieldset{min-width:0}

/* Stage 4 operational forms: contain long synthetic/real names and notes. */
.stage4-operations { min-width:0; overflow-wrap:anywhere; }
.stage4-operations .gridform > *, .stage4-operations label { min-width:0; }
.stage4-operations input, .stage4-operations select, .stage4-operations textarea { max-width:100%; min-width:0; box-sizing:border-box; }
.stage4-operations td { white-space:normal; overflow-wrap:anywhere; max-width:28rem; }
.stage4-operations nav { padding:1rem 0; }

/* Stage 4 Control Room: preserve readable operational columns and scroll horizontally. */
.stage4-operations .control-shifts-table{min-width:1120px;table-layout:auto}
.stage4-operations .control-events-table{min-width:760px;table-layout:auto}
.stage4-operations .control-shifts-table th,
.stage4-operations .control-shifts-table td,
.stage4-operations .control-events-table th,
.stage4-operations .control-events-table td{overflow-wrap:normal;word-break:normal}
.stage4-operations .control-shifts-table td:nth-child(1),
.stage4-operations .control-shifts-table td:nth-child(4),
.stage4-operations .control-shifts-table td:nth-child(5),
.stage4-operations .control-shifts-table td:nth-child(6),
.stage4-operations .control-shifts-table td:nth-child(7),
.stage4-operations .control-events-table td:nth-child(1),
.stage4-operations .control-events-table td:nth-child(3),
.stage4-operations .control-events-table td:nth-child(5),
.stage4-operations .control-events-table td:nth-child(6){white-space:nowrap}
.stage4-operations .control-shifts-table td:nth-child(8){min-width:300px}
.stage4-operations .control-shifts-table td:nth-child(9){min-width:230px}

/* Stage 4 Control Room: long identity/content values wrap inside their own cells. */
.stage4-operations .control-shifts-table td:nth-child(2),
.stage4-operations .control-shifts-table td:nth-child(3),
.stage4-operations .control-events-table td:nth-child(2),
.stage4-operations .control-events-table td:nth-child(4){
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}
.stage4-operations .control-shifts-table td:nth-child(2),
.stage4-operations .control-shifts-table td:nth-child(3){
  min-width:150px;
  max-width:220px;
}
.stage4-operations .control-events-table td:nth-child(2){
  min-width:150px;
  max-width:220px;
}
.stage4-operations .control-events-table td:nth-child(4){
  min-width:180px;
  max-width:280px;
}
/* Programme screens retain the established panels and form controls. */
.programme-links{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.programme-record{border-bottom:1px solid #d4dce7;padding:1rem 0;min-width:0;overflow-wrap:anywhere}
.programme-text{white-space:pre-wrap;overflow-wrap:anywhere;max-width:75ch;line-height:1.6}
.gridform label{min-width:0}.gridform textarea{min-height:8rem;max-width:100%}
@media(max-width:600px){.programme-links{gap:.75rem}.programme-record h3{font-size:1.1rem}}
main nav a{color:#173f73;background:transparent}
main nav a:hover,main nav a:focus-visible{color:white;background:#173f73}
main nav:not(.programme-links){display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.programme-table{min-width:820px;table-layout:auto}
.programme-table td,.programme-table th{min-width:100px}
.programme-table td{overflow-wrap:break-word;word-break:normal}
.personnel-sections{display:grid;gap:24px;min-width:0}
.personnel-documents-table{min-width:680px;table-layout:fixed;width:100%}
.personnel-documents-table th:nth-child(2){width:30%}
.personnel-documents-table td{vertical-align:top;overflow-wrap:anywhere}
.document-record{display:block;margin-top:8px;color:var(--muted)}
.otp-input{font-size:1.4rem;letter-spacing:.2em;font-variant-numeric:tabular-nums}
.loginbox p{overflow-wrap:anywhere;line-height:1.55}

/* Control Room responsive operational tables */
.table-scroll-hint{display:none}
.stage4-operations,
.stage4-operations .panel,
.stage4-operations .control-table-wrap{
  min-width:0;
  max-width:100%;
}
@media(max-width:760px){
  .stage4-operations .control-table-wrap{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    box-sizing:border-box;
  }
  .control-table-wrap .table-scroll-hint{
    display:block;
    position:sticky;
    left:0;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin:0;
    padding:7px 9px;
    background:#f3f6fa;
    color:#48576b;
    font-size:11px;
    font-weight:600;
    line-height:1.3;
    z-index:2;
  }
  .control-table-wrap table{
    margin-top:4px;
  }
}

/* Secondary governance/privacy links sit on the light page background. */
.programme-links a { color: #17324d; }

/* Keep secondary links outside the fixed desktop sidebar and readable on hover. */
body > .programme-links { padding-inline: 14px; }
.programme-links a:hover,
.programme-links a:focus-visible { color: #fff; background: #173f73; }
@media (min-width: 1001px) {
  body > .programme-links { margin-left: 220px; padding-inline: 30px; }
}
