/* readiness — §5 APPLICATION SURFACE stylesheet.
   Generated by tools/gate/app_migrate.py from the live bytes.
   Every rule is a descendant of .ts-app[data-app="readiness"] (§5 rule 3, container scoping —
   NOT a prefix rule: these apps name their classes inside their own JS).
   Every value is a §2 token (§5 rule 2). 2 dark-scheme block(s)
   neutralised per §1.1. */
.ts-app[data-app="readiness"] .hidden{display:none !important}
.ts-app[data-app="readiness"] .fade{animation:fadeUp .4s ease both}
.ts-app[data-app="readiness"]{--bg:var(--surface);--bg2:var(--surface-alt);--panel:var(--surface);--panel2:var(--surface-alt);--line:var(--hairline);--line2:var(--hairline);--faint:var(--muted);--accent:var(--brand);--accent-dim:var(--brand);--biz:var(--heading);--trust:var(--brand);--risk:var(--muted);--good:var(--verdict-positive);--neutral:var(--verdict-caution);--poor:var(--verdict-risk);--pos:var(--verdict-positive);--neg:var(--verdict-risk);--r:var(--radius-card);--track-bg:var(--surface-alt);--mono:var(--font-body);--disp:var(--font-heading);--body:var(--ink);--logo-tile:var(--heading);--logo-check:var(--surface);--logo-step:var(--brand);--logo-word:var(--heading);--logo-accent:var(--brand)}
.ts-app[data-app="readiness"] .brand .mark{width:38px;height:38px;flex:none}
.ts-app[data-app="readiness"] .brand .wm{font-family:var(--font-body);font-weight:700;font-size:var(--text-21);color:var(--logo-word);letter-spacing:0.06em}
.ts-app[data-app="readiness"] .brand .wm .ac{color:var(--logo-word)}
.ts-app[data-app="readiness"] .m-tile{fill:var(--logo-tile)}
.ts-app[data-app="readiness"] .m-check{fill:none;stroke:var(--logo-check);stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
.ts-app[data-app="readiness"] .m-step{fill:var(--logo-step)}
.ts-app[data-app="readiness"] h2.title, .ts-app[data-app="readiness"] .verdict{text-transform:none}
.ts-app[data-app="readiness"] .eyebrow{color:var(--accent)}
.ts-app[data-app="readiness"] .eyebrow::before{background:var(--accent)}
.ts-app[data-app="readiness"], .ts-app[data-app="readiness"] *{box-sizing:border-box}
.ts-app[data-app="readiness"] .wrap{position:relative;z-index:2;max-width:1000px;margin:0 auto;padding:var(--space-32) var(--space-24) var(--space-96)}
.ts-app[data-app="readiness"] .brand{display:flex;align-items:center;gap:var(--space-12);text-decoration:none;color:inherit}
.ts-app[data-app="readiness"] .chevs{display:flex;gap:var(--space-4)}
.ts-app[data-app="readiness"] .chev{width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:11px solid var(--accent)}
.ts-app[data-app="readiness"] .chev:nth-child(2){opacity:.55}
.ts-app[data-app="readiness"] .chev:nth-child(3){opacity:.25}
.ts-app[data-app="readiness"] .brand .name{font-family:var(--font-body);font-size:var(--text-21);letter-spacing:0.06em;text-transform:uppercase;line-height:1}
.ts-app[data-app="readiness"] .brand .name span{color:var(--accent)}
.ts-app[data-app="readiness"] .event-tag{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line2);padding:var(--space-4) var(--space-12);border-radius:var(--radius-pill)}
.ts-app[data-app="readiness"] .stage{animation:fadeUp .5s ease both}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:none}
}
.ts-app[data-app="readiness"] .eyebrow{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--accent-dim);margin:0 0 var(--space-12)}
.ts-app[data-app="readiness"] h2.title{font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:0.06em;line-height:.95;margin:0 0 var(--space-16);font-size:var(--text-51)}
.ts-app[data-app="readiness"] h2.title .lo{color:var(--faint)}
.ts-app[data-app="readiness"] .lede{font-size:var(--text-17);color:var(--muted);max-width:64ch;margin:0 0 var(--space-24)}
.ts-app[data-app="readiness"] .lede strong{color:var(--ink);font-weight:700}
.ts-app[data-app="readiness"] .panel{border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-24)}
.ts-app[data-app="readiness"] .axes{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12);margin:var(--space-24) 0}
@media(max-width:680px){
  .ts-app[data-app="readiness"] .axes{grid-template-columns:1fr}
}
.ts-app[data-app="readiness"] .axe{border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-16) var(--space-16);background:var(--panel)}
.ts-app[data-app="readiness"] .axe .dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:var(--space-8);vertical-align:middle}
.ts-app[data-app="readiness"] .axe h2{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;margin:0 0 var(--space-4);color:var(--ink)}
.ts-app[data-app="readiness"] .axe p{margin:0;font-size:var(--text-14);color:var(--muted);line-height:1.45}
.ts-app[data-app="readiness"] .btn{font-family:var(--font-body);font-weight:700;letter-spacing:0.06em;text-transform:uppercase;font-size:var(--text-14);background:var(--accent);color:var(--surface);border:none;border-radius:var(--radius-pill);padding:var(--space-16) var(--space-32);cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .15s}
.ts-app[data-app="readiness"] .btn:hover{transform:translateY(-2px)}
.ts-app[data-app="readiness"] .btn:active{transform:translateY(0)}
.ts-app[data-app="readiness"] .btn[disabled]{background:var(--line2);color:var(--faint);cursor:not-allowed;transform:none}
.ts-app[data-app="readiness"] .btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line2)}
.ts-app[data-app="readiness"] .actions{display:flex;gap:var(--space-12);align-items:center;flex-wrap:wrap;margin-top:var(--space-8)}
.ts-app[data-app="readiness"] .rail{display:flex;align-items:center;gap:var(--space-8);margin-bottom:var(--space-24);font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint)}
.ts-app[data-app="readiness"] .rail .seg{flex:1;height:4px;border-radius:var(--radius-card);background:var(--line)}
.ts-app[data-app="readiness"] .rail .seg.on{background:var(--accent)}
.ts-app[data-app="readiness"] .rail .lbl{white-space:nowrap}
.ts-app[data-app="readiness"] .board-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-12);flex-wrap:wrap;margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .counter{font-family:var(--font-body);font-size:var(--text-41);line-height:1;letter-spacing:0.06em}
.ts-app[data-app="readiness"] .counter span{color:var(--accent)}
.ts-app[data-app="readiness"] .counter small{font-family:var(--font-body);font-size:var(--text-14);color:var(--muted);letter-spacing:0.06em;display:block;font-weight:600;margin-top:var(--space-4)}
.ts-app[data-app="readiness"] .reqs{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);margin:var(--space-16) 0 var(--space-24)}
@media(max-width:720px){
  .ts-app[data-app="readiness"] .reqs{grid-template-columns:1fr}
}
.ts-app[data-app="readiness"] .req{position:relative;border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-16) var(--space-16) var(--space-16);background:var(--panel);cursor:pointer;transition:border-color .15s, background .15s, transform .12s;overflow:hidden}
.ts-app[data-app="readiness"] .req:hover{border-color:var(--line2);transform:translateY(-2px)}
.ts-app[data-app="readiness"] .req.sel{border-color:var(--accent)}
.ts-app[data-app="readiness"] .req .rank{position:absolute;top:13px;right:13px;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line2);display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:700;font-size:var(--text-14);color:var(--faint);transition:.15s}
.ts-app[data-app="readiness"] .req.sel .rank{background:var(--accent);color:var(--surface);border-color:var(--accent)}
.ts-app[data-app="readiness"] .req .rid{font-family:var(--font-body);font-size:var(--text-14);color:var(--faint);letter-spacing:0.06em}
.ts-app[data-app="readiness"] .req h4{margin:var(--space-4) 0 var(--space-8);font-size:var(--text-17);font-weight:800;letter-spacing:0.06em;max-width:86%}
.ts-app[data-app="readiness"] .meta{display:flex;flex-wrap:wrap;gap:var(--space-8) var(--space-12);font-size:var(--text-14);color:var(--muted);margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .meta b{color:var(--ink);font-weight:600}
.ts-app[data-app="readiness"] .stage-pill{display:inline-block;font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);border:1px solid var(--line2);color:var(--muted)}
.ts-app[data-app="readiness"] .note{font-size:var(--text-14);color:var(--muted);line-height:1.45;border-top:1px dashed var(--line2);padding-top:var(--space-8);margin-top:0}
.ts-app[data-app="readiness"] .badge{display:inline-flex;align-items:center;gap:var(--space-4);font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill)}
.ts-app[data-app="readiness"] .badge::before{content:"";width:7px;height:7px;border-radius:50%}
.ts-app[data-app="readiness"] .b-good{color:var(--good);background:color-mix(in srgb, var(--brand) 10%, transparent)}
.ts-app[data-app="readiness"] .b-good::before{background:var(--good)}
.ts-app[data-app="readiness"] .b-neutral{color:var(--neutral);background:color-mix(in srgb, var(--verdict-caution) 6%, transparent)}
.ts-app[data-app="readiness"] .b-neutral::before{background:var(--neutral)}
.ts-app[data-app="readiness"] .b-poor{color:var(--poor);background:color-mix(in srgb, var(--verdict-risk) 6%, transparent)}
.ts-app[data-app="readiness"] .b-poor::before{background:var(--poor)}
.ts-app[data-app="readiness"] .res{border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-16) var(--space-16);margin-bottom:var(--space-12);background:var(--panel);display:flex;gap:var(--space-16);align-items:flex-start}
.ts-app[data-app="readiness"] .res .tag{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);white-space:nowrap;margin-top:0}
.ts-app[data-app="readiness"] .tag.worked{color:var(--accent);background:color-mix(in srgb, var(--heading) 10%, transparent);border:1px solid color-mix(in srgb, var(--heading) 25%, transparent)}
.ts-app[data-app="readiness"] .tag.skipped{color:var(--faint);background:color-mix(in srgb, var(--heading) 4%, transparent);border:1px solid var(--line2)}
.ts-app[data-app="readiness"] .res .body h5{margin:0 0 var(--space-4);font-size:var(--text-14);font-weight:800}
.ts-app[data-app="readiness"] .res .body p{margin:0 0 var(--space-8);font-size:var(--text-14);color:var(--muted);line-height:1.45}
.ts-app[data-app="readiness"] .chips{display:flex;gap:var(--space-8);flex-wrap:wrap}
.ts-app[data-app="readiness"] .chip{font-family:var(--font-body);font-size:var(--text-14);font-weight:700;padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);letter-spacing:0.06em;display:inline-flex;gap:var(--space-4);align-items:center}
.ts-app[data-app="readiness"] .chip .k{opacity:.6;font-weight:400}
.ts-app[data-app="readiness"] .chip.cp{color:var(--pos);background:color-mix(in srgb, var(--brand) 10%, transparent)}
.ts-app[data-app="readiness"] .chip.cn{color:var(--neg);background:color-mix(in srgb, var(--verdict-risk) 6%, transparent)}
.ts-app[data-app="readiness"] .chip.cz{color:var(--faint);background:color-mix(in srgb, var(--heading) 5%, transparent)}
.ts-app[data-app="readiness"] .scoreboard{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12);margin-bottom:var(--space-24)}
@media(max-width:680px){
  .ts-app[data-app="readiness"] .scoreboard{grid-template-columns:1fr}
}
.ts-app[data-app="readiness"] .sb{border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-12) var(--space-12);background:var(--panel)}
.ts-app[data-app="readiness"] .sb .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .sb .lab{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
.ts-app[data-app="readiness"] .sb .val{font-family:var(--font-body);font-weight:700;font-size:var(--text-17)}
.ts-app[data-app="readiness"] .track{height:7px;border-radius:var(--radius-card);background:var(--track-bg);overflow:hidden;border:1px solid var(--line)}
.ts-app[data-app="readiness"] .fill{height:100%;width:0;border-radius:var(--radius-card);transition:width .8s cubic-bezier(.2,.7,.2,1)}
.ts-app[data-app="readiness"] .sc-num{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--accent-dim);margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .sc-role{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint);text-transform:uppercase;margin-bottom:var(--space-4)}
.ts-app[data-app="readiness"] .sc-prompt{font-size:var(--text-17);color:var(--ink);line-height:1.5;margin:0 0 var(--space-16);font-weight:500}
.ts-app[data-app="readiness"] .opts{display:flex;flex-direction:column;gap:var(--space-12)}
.ts-app[data-app="readiness"] .opt{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius-card);padding:var(--space-16) var(--space-16);cursor:pointer;transition:border-color .15s, background .15s, transform .12s, box-shadow .15s;display:flex;gap:var(--space-12);align-items:flex-start;color:var(--ink);font:inherit}
.ts-app[data-app="readiness"] .opt:hover{border-color:var(--accent);transform:translateX(3px)}
.ts-app[data-app="readiness"] .opt .key{font-family:var(--font-body);font-size:var(--text-17);color:var(--accent);line-height:1.2;min-width:18px}
.ts-app[data-app="readiness"] .opt .txt{font-size:var(--text-14);line-height:1.45}
.ts-app[data-app="readiness"] .opt.picked{border-color:var(--accent);opacity:1}
.ts-app[data-app="readiness"] .opt[disabled]{cursor:default}
.ts-app[data-app="readiness"] .opt[disabled]:not(.picked){opacity:.45}
.ts-app[data-app="readiness"] .opt[disabled]:hover{transform:none;border-color:var(--line)}
.ts-app[data-app="readiness"] .opt.picked:hover{transform:none}
.ts-app[data-app="readiness"] .outcome{margin-top:var(--space-16);border:1px solid var(--line2);border-radius:var(--radius-card);padding:var(--space-16) var(--space-16);background:var(--bg2);animation:fadeUp .35s ease both}
.ts-app[data-app="readiness"] .outcome .oh{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint);margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .outcome p{margin:0 0 var(--space-12);font-size:var(--text-14);color:var(--muted);line-height:1.5}
.ts-app[data-app="readiness"] .card-final{border:1px solid var(--line2);border-radius:var(--radius-card);padding:var(--space-32) var(--space-24);position:relative;overflow:hidden}
.ts-app[data-app="readiness"] .verdict-eyebrow{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--accent-dim);margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .verdict{font-family:var(--font-body);font-weight:700;text-transform:uppercase;line-height:.92;font-size:var(--text-51);margin:0}
.ts-app[data-app="readiness"] .verdict .accent{color:var(--accent)}
.ts-app[data-app="readiness"] .verdict-sub{font-size:var(--text-17);color:var(--muted);margin:var(--space-8) 0 var(--space-4);max-width:56ch}
.ts-app[data-app="readiness"] .overall{display:flex;align-items:baseline;gap:var(--space-8);flex-wrap:wrap;margin:var(--space-16) 0 var(--space-8)}
.ts-app[data-app="readiness"] .overall .pctile{font-family:var(--font-body);font-weight:700;font-size:var(--text-14);letter-spacing:0.06em;color:var(--accent);background:color-mix(in srgb, var(--heading) 10%, transparent);border:1px solid color-mix(in srgb, var(--heading) 32%, transparent);padding:var(--space-4) var(--space-12);border-radius:var(--radius-pill);align-self:center;margin-left:var(--space-4)}
.ts-app[data-app="readiness"] .overall .pctile .est{font-weight:400;font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint);margin-left:var(--space-4);text-transform:uppercase}
.ts-app[data-app="readiness"] .pctcap{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint);margin:var(--space-4) 0 0}
.ts-app[data-app="readiness"] .share{margin-top:var(--space-24);border-top:1px solid var(--line);padding-top:var(--space-24)}
.ts-app[data-app="readiness"] .share h4{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint);margin:0 0 var(--space-12)}
.ts-app[data-app="readiness"] .share-row{display:flex;gap:var(--space-8);flex-wrap:wrap}
.ts-app[data-app="readiness"] .sbtn{display:inline-flex;align-items:center;gap:var(--space-8);font-family:var(--font-body);font-weight:700;font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;padding:var(--space-12) var(--space-16);border-radius:var(--radius-pill);cursor:pointer;border:1px solid var(--line2);background:transparent;color:var(--ink);transition:transform .15s, border-color .15s, box-shadow .15s}
.ts-app[data-app="readiness"] .sbtn:hover{border-color:var(--accent);transform:translateY(-2px)}
.ts-app[data-app="readiness"] .sbtn.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}
.ts-app[data-app="readiness"] .sbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;flex:0 0 auto}
.ts-app[data-app="readiness"] .share-note{font-family:var(--font-body);font-size:var(--text-14);line-height:1.5;color:var(--faint);margin:var(--space-12) 0 0}
.ts-app[data-app="readiness"] .overall .big{font-family:var(--font-body);font-weight:700;font-size:var(--text-41);color:var(--ink)}
.ts-app[data-app="readiness"] .overall .of{font-family:var(--font-body);font-size:var(--text-14);color:var(--faint)}
.ts-app[data-app="readiness"] .bars{display:flex;flex-direction:column;gap:var(--space-16);margin:var(--space-24) 0 var(--space-8)}
.ts-app[data-app="readiness"] .bar .brow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .bar .bname{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;display:flex;align-items:center;gap:var(--space-8)}
.ts-app[data-app="readiness"] .bar .bname i{width:10px;height:10px;border-radius:50%;display:inline-block}
.ts-app[data-app="readiness"] .bar .bval{font-family:var(--font-body);font-weight:700;font-size:var(--text-17)}
.ts-app[data-app="readiness"] .track.lg{height:11px}
.ts-app[data-app="readiness"] .debrief{margin-top:var(--space-24);border-top:1px solid var(--line);padding-top:var(--space-24)}
.ts-app[data-app="readiness"] .debrief h4{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint);margin:0 0 var(--space-12)}
.ts-app[data-app="readiness"] .db-line{display:flex;gap:var(--space-12);align-items:flex-start;margin-bottom:var(--space-12);font-size:var(--text-14);line-height:1.5}
.ts-app[data-app="readiness"] .db-line .pill{flex:none;font-family:var(--font-body);font-size:var(--text-14);font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);white-space:nowrap;margin-top:0;min-width:78px;text-align:center}
.ts-app[data-app="readiness"] .pill.strength{color:var(--pos);background:color-mix(in srgb, var(--brand) 12%, transparent)}
.ts-app[data-app="readiness"] .pill.growth{color:var(--neutral);background:color-mix(in srgb, var(--verdict-caution) 6%, transparent)}
.ts-app[data-app="readiness"] .db-line span b{color:var(--ink);font-weight:700}
.ts-app[data-app="readiness"] .db-line span{color:var(--muted)}
.ts-app[data-app="readiness"] .cta{margin-top:var(--space-24);border:1px dashed var(--line2);border-radius:var(--radius-card);padding:var(--space-16) var(--space-24);background:color-mix(in srgb, var(--heading) 3%, transparent)}
.ts-app[data-app="readiness"] .cta h4{font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:0.06em;font-size:var(--text-21);margin:0 0 var(--space-8)}
.ts-app[data-app="readiness"] .cta p{margin:0 0 var(--space-12);color:var(--muted);font-size:var(--text-14);max-width:60ch}
.ts-app[data-app="readiness"] .cta .roles{display:flex;gap:var(--space-8);flex-wrap:wrap}
.ts-app[data-app="readiness"] .role-chip{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;padding:var(--space-4) var(--space-12);border-radius:var(--radius-pill);border:1px solid var(--line2);color:var(--muted)}
.ts-app[data-app="readiness"] .role-chip.live{color:var(--accent);border-color:var(--accent)}
.ts-app[data-app="readiness"] .cta-side{margin-top:var(--space-12)}
.ts-app[data-app="readiness"] .gd-split .gd-side{margin-top:var(--space-12)}
@media(min-width:820px){
  .ts-app[data-app="readiness"] .cta-split{display:grid;grid-template-columns:1fr minmax(190px,300px);gap:var(--space-24);align-items:start}
  .ts-app[data-app="readiness"] .cta-split .cta-side{margin-top:0}
  .ts-app[data-app="readiness"] .gd-split{display:grid;grid-template-columns:1fr auto;gap:var(--space-24);align-items:center}
  .ts-app[data-app="readiness"] .gd-split .gd-side{margin-top:0;justify-self:end}
}
.ts-app[data-app="readiness"] .foot{margin-top:var(--space-48);padding-top:var(--space-32);border-top:1px solid var(--line2);font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint);text-align:center}
.ts-app[data-app="readiness"] .foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-8) var(--space-24);margin-bottom:var(--space-24)}
.ts-app[data-app="readiness"] .foot-nav a{font-family:var(--font-body);font-size:var(--text-14);font-weight:500;letter-spacing:0.06em;color:var(--muted);text-decoration:none;transition:color .15s}
.ts-app[data-app="readiness"] .foot-nav a:hover{color:var(--ink)}
.ts-app[data-app="readiness"] .foot-tag{margin-bottom:var(--space-4)}
.ts-app[data-app="readiness"] .fineprint{font-size:var(--text-14);color:var(--faint);margin-top:var(--space-8);line-height:1.5;max-width:60ch;margin-left:auto;margin-right:auto}
.ts-app[data-app="readiness"] .foot-legal{word-break:break-word}
.ts-app[data-app="readiness"] .foot-legal a{color:inherit;text-decoration:underline;word-break:break-all}
.ts-app[data-app="readiness"] .foot-legal .sep{opacity:.5;margin:0 var(--space-4)}
@media (prefers-reduced-motion: reduce){
  .ts-app[data-app="readiness"], .ts-app[data-app="readiness"] *, .ts-app[data-app="readiness"] *::before, .ts-app[data-app="readiness"] *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
}
.ts-app[data-app="readiness"] :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-card)}
.ts-app[data-app="readiness"] .opt:focus-visible, .ts-app[data-app="readiness"] .req:focus-visible, .ts-app[data-app="readiness"] .btn:focus-visible, .ts-app[data-app="readiness"] .sbtn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ts-app[data-app="readiness"], .ts-app[data-app="readiness"] *{text-transform:none!important}
.ts-app[data-app="readiness"] .eyebrow, .ts-app[data-app="readiness"] .verdict-eyebrow{text-transform:uppercase!important;color:var(--accent)!important}
.ts-app[data-app="readiness"] .eyebrow::before{background:var(--accent)!important}
.ts-app[data-app="readiness"] /* ---- HR-OS scorecard additions ---- */
  .brand .wm .ac{color:var(--logo-step)!important}
.ts-app[data-app="readiness"] .prog{display:flex;align-items:center;gap:var(--space-12);margin-bottom:var(--space-24);font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint)}
.ts-app[data-app="readiness"] .prog .ptrack{flex:1;height:5px;border-radius:var(--radius-card);background:var(--track-bg);border:1px solid var(--line);overflow:hidden}
.ts-app[data-app="readiness"] .prog .pfill{height:100%;width:0;border-radius:var(--radius-card);background:var(--accent);transition:width .4s cubic-bezier(.2,.7,.2,1)}
.ts-app[data-app="readiness"] .areagrid{display:flex;flex-direction:column;gap:var(--space-12);margin:var(--space-24) 0 var(--space-4)}
.ts-app[data-app="readiness"] .arow{display:grid;grid-template-columns:auto 1fr;gap:var(--space-12);align-items:start;border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-12) var(--space-16);background:var(--panel)}
.ts-app[data-app="readiness"] .arow .aband{font-family:var(--font-body);font-size:var(--text-14);font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);white-space:nowrap;align-self:start;min-width:92px;text-align:center}
.ts-app[data-app="readiness"] .arow .aname{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--ink);font-weight:700;margin:0 0 var(--space-4)}
.ts-app[data-app="readiness"] .arow .aread{font-size:var(--text-14);color:var(--muted);line-height:1.45;margin:0}
.ts-app[data-app="readiness"] .ab-strong{color:var(--good);background:color-mix(in srgb, var(--brand) 12%, transparent)}
.ts-app[data-app="readiness"] .ab-established{color:var(--accent);background:color-mix(in srgb, var(--heading) 12%, transparent)}
.ts-app[data-app="readiness"] .ab-developing{color:var(--neutral);background:color-mix(in srgb, var(--verdict-caution) 6%, transparent)}
.ts-app[data-app="readiness"] .ab-foundational{color:var(--muted);background:color-mix(in srgb, var(--hairline) 14%, transparent)}
.ts-app[data-app="readiness"] h2.title{line-height:1.03;font-size:var(--text-51)}
.ts-app[data-app="readiness"] h2.title .em{color:var(--accent)}
.ts-app[data-app="readiness"] .verdict .accent{color:var(--accent)}
.ts-app[data-app="readiness"] .ladder{display:flex;gap:var(--space-8);margin:var(--space-16) 0 var(--space-4);flex-wrap:wrap}
.ts-app[data-app="readiness"] .lstep{flex:1;min-width:118px;text-align:center;border:1px solid var(--line2);border-radius:var(--radius-card);padding:var(--space-12) var(--space-8);background:var(--panel)}
.ts-app[data-app="readiness"] .lstep .ln{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint);font-weight:700}
.ts-app[data-app="readiness"] .lstep.done{border-color:var(--line2);background:var(--panel2)}
.ts-app[data-app="readiness"] .lstep.done .ln{color:var(--muted)}
.ts-app[data-app="readiness"] .lstep.cur{background:var(--accent);border-color:var(--accent)}
.ts-app[data-app="readiness"] .lstep.cur .ln{color:var(--surface)}
.ts-app[data-app="readiness"] .lcap{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint);margin:0 0 0}
.ts-app[data-app="readiness"] .lcap b{color:var(--ink)}
.ts-app[data-app="readiness"] .pill.opp{color:var(--accent);background:color-mix(in srgb, var(--heading) 12%, transparent)}
.ts-app[data-app="readiness"] /* progress fill: position the fill absolutely so its percentage width resolves against a
     definite containing block (a raw % width on a flex-item child resolves to 0 in some engines) */
  .prog .ptrack{position:relative}
.ts-app[data-app="readiness"] .prog .pfill{position:absolute;left:0;top:0;height:100%;width:0;border-radius:var(--radius-card);background:var(--accent);transition:width .45s cubic-bezier(.2,.7,.2,1)}
.ts-app[data-app="readiness"] .scope{margin-top:var(--space-24);border:1px solid var(--line2);border-radius:var(--radius-card);padding:var(--space-16) var(--space-16);background:var(--bg2)}
.ts-app[data-app="readiness"] .scope .sh{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--faint);margin:0 0 var(--space-8)}
.ts-app[data-app="readiness"] .scope p{margin:0;font-size:var(--text-14);color:var(--muted);line-height:1.5}
.ts-app[data-app="readiness"] .routes{display:flex;flex-direction:column;gap:var(--space-12);margin-top:var(--space-16)}
.ts-app[data-app="readiness"] .route{display:grid;grid-template-columns:1fr auto;gap:var(--space-16);align-items:center;border:1px solid var(--line2);border-radius:var(--radius-card);padding:var(--space-16) var(--space-16)}
.ts-app[data-app="readiness"] .route.lead{border-color:var(--accent)}
.ts-app[data-app="readiness"] .route .rname{font-family:var(--font-body);font-weight:700;font-size:var(--text-17);letter-spacing:0.06em;margin:0 0 var(--space-4);color:var(--ink)}
.ts-app[data-app="readiness"] .route .rwhy{margin:0;font-size:var(--text-14);color:var(--muted);line-height:1.45;max-width:52ch}
.ts-app[data-app="readiness"] .route .rtag{display:inline-block;font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);padding:var(--space-4) var(--space-8);margin-bottom:var(--space-8)}
.ts-app[data-app="readiness"] .route .rside{justify-self:end}
.ts-app[data-app="readiness"] .route .soon{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint);border:1px dashed var(--line2);border-radius:var(--radius-pill);padding:var(--space-12) var(--space-16);white-space:nowrap}
@media(max-width:620px){
  .ts-app[data-app="readiness"] .route{grid-template-columns:1fr}
  .ts-app[data-app="readiness"] .route .rside{justify-self:start;margin-top:var(--space-4)}
}
.ts-app[data-app="readiness"] .brand-link{text-decoration:none;color:inherit;display:inline-flex;align-items:center}
.ts-app[data-app="readiness"] a.btn, .ts-app[data-app="readiness"] .btn{text-decoration:none}
.ts-app[data-app="readiness"] .route-tag{display:inline-block;font-family:var(--font-body);font-weight:700;font-size:var(--text-14);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:var(--space-4)}
.ts-app[data-app="readiness"] .route h5{font-family:var(--font-body);font-size:var(--text-14);margin:0 0 var(--space-4);color:var(--ink)}
@media (forced-colors: active){
  .ts-app[data-app="readiness"] .btn, .ts-app[data-app="readiness"] .sbtn, .ts-app[data-app="readiness"] .opt, .ts-app[data-app="readiness"] .req, .ts-app[data-app="readiness"] .share, .ts-app[data-app="readiness"] button{border:1px solid ButtonText}
  .ts-app[data-app="readiness"] .btn:focus-visible, .ts-app[data-app="readiness"] .sbtn:focus-visible, .ts-app[data-app="readiness"] .opt:focus-visible, .ts-app[data-app="readiness"] .req:focus-visible, .ts-app[data-app="readiness"] button:focus-visible, .ts-app[data-app="readiness"] a:focus-visible, .ts-app[data-app="readiness"] [tabindex]:focus-visible{outline:2px solid Highlight;outline-offset:2px}
  .ts-app[data-app="readiness"] .opt.picked, .ts-app[data-app="readiness"] .req.sel{border:2px solid Highlight}
}
.ts-app[data-app="readiness"] .tshr-share{display:inline-flex;align-items:center;gap:var(--space-8);font-family:var(--font-body);font-weight:600;font-size:var(--text-14);line-height:1;color:var(--surface);background:var(--brand);border:1px solid var(--brand);border-radius:var(--radius-card);padding:var(--space-12) var(--space-16);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.ts-app[data-app="readiness"] .tshr-share:hover{background:var(--brand-press);border-color:var(--brand-press)}
.ts-app[data-app="readiness"] .tshr-share svg{width:15px;height:15px;flex:none}
.ts-app[data-app="readiness"] .tshr-share.is-done{background:var(--brand-press);border-color:var(--brand-press)}
.ts-app[data-app="readiness"] .skip{position:absolute;left:-999px;top:0;background:var(--brand);color:var(--surface);padding:var(--space-8) var(--space-16);border-radius:0 0 8px 0;font-weight:600;z-index:1000;text-decoration:none}
.ts-app[data-app="readiness"] .skip:focus{left:0}
.ts-app[data-app="readiness"] /* v694: a.route cards were painting browser-default link blue+underline (no anchor rule reached them). Scoped reset; tokens flip in dark mode. */
.routes a.route{text-decoration:none;color:var(--ink)}
.ts-app[data-app="readiness"] .routes a.route b{color:var(--ink)}
.ts-app[data-app="readiness"] .routes a.route>span:not(.route-tag){color:var(--muted);text-decoration:none}

/* §5 rule 7: static presentation lifted out of the application's own
   markup strings and given a home. 18 distinct bundle(s).
   These are ADDED class names — no existing class was renamed. */
.ts-app[data-app="readiness"] .tsa-s01{font-size:var(--text-14);color:var(--muted);font-weight:400}
.ts-app[data-app="readiness"] .tsa-s02{background:${s.b.color}}
.ts-app[data-app="readiness"] .tsa-s03{background:transparent;color:${s.b.color}}
.ts-app[data-app="readiness"] .tsa-s04{width:0%;background:${s.b.color}}
.ts-app[data-app="readiness"] .tsa-s05{background:var(--trust);color:var(--surface)}
.ts-app[data-app="readiness"] .tsa-s06{font-size:var(--text-14);color:var(--muted);line-height:1.5;margin:var(--space-4) 0 0}
.ts-app[data-app="readiness"] .tsa-s07{border-style:solid;background:color-mix(in srgb, var(--heading) 3%, transparent)}
.ts-app[data-app="readiness"] .tsa-s08{margin-top:var(--space-24);border:1px solid var(--line2);border-radius:var(--radius-card);padding:var(--space-16) var(--space-24);background:color-mix(in srgb, var(--surface-alt) 4%, transparent)}
.ts-app[data-app="readiness"] .tsa-s09{font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:0.06em;font-size:var(--text-21);margin:0 0 var(--space-4)}
.ts-app[data-app="readiness"] .tsa-s10{margin:0 0 var(--space-12);color:var(--muted);font-size:var(--text-14);max-width:60ch}
.ts-app[data-app="readiness"] .tsa-s11{display:flex;gap:var(--space-8);flex-wrap:wrap;align-items:center}
.ts-app[data-app="readiness"] .tsa-s12{flex:1;min-width:220px;font:inherit;font-size:var(--text-14);padding:var(--space-12) var(--space-16);border-radius:var(--radius-card);border:1px solid var(--line2);background:var(--bg2);color:var(--ink)}
.ts-app[data-app="readiness"] .tsa-s13{display:flex;flex-wrap:wrap;gap:var(--space-8) var(--space-16);margin:var(--space-12) 0 0;font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint);text-transform:uppercase}
.ts-app[data-app="readiness"] .tsa-s14{margin:var(--space-12) 0 0;color:var(--muted);font-size:var(--text-14);line-height:1.45;max-width:60ch}
.ts-app[data-app="readiness"] .tsa-s15{color:var(--accent)}
.ts-app[data-app="readiness"] .tsa-s16{font-family:var(--font-body);font-size:var(--text-14);color:var(--faint);margin:var(--space-8) 0 0}
.ts-app[data-app="readiness"] .tsa-s17{margin-top:var(--space-24)}
.ts-app[data-app="readiness"] .tsa-s18{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-12)}

/* §5 rule 7 / §9.5: static presentation lifted out of the application's own
   STATIC MARKUP (not its JS strings) and given a home. 3 distinct bundle(s).
   Transformed through the same app_migrate.transform_body the JS bundles use, so
   a declaration cannot enter through the HTML door on terms the JS door refuses. */
.ts-app[data-app="readiness"] .tsa-h01{font-family:var(--font-body);font-size:var(--text-14);letter-spacing:0.06em;color:var(--faint)}
.ts-app[data-app="readiness"] .tsa-h02{width:0%}
.ts-app[data-app="readiness"] .tsa-h03{margin-top:var(--space-16)}

/* Runtime custom properties written by the application in place of colour
   literals (§5 rule 7's named mechanism: setProperty, never a literal). */
.ts-app[data-app="readiness"] [style*="--tsa-bg"]{background:var(--tsa-bg)}
.ts-app[data-app="readiness"] [style*="--tsa-fg"]{color:var(--tsa-fg)}
.ts-app[data-app="readiness"] [style*="--tsa-bd"]{border-color:var(--tsa-bd)}

/* -------------------------------------------------------------------------
   §11 / §12 / §13 CONFORMANCE, applied by the GENERATOR (R-WR15).
   These are RULINGS already made and already shipped on the `assessment`
   group, where they were applied by hand. Generating a new group without them
   reproduces the exact defects §11 and §12 were written to end, and no static
   check can see any of it. Bytes copied from assessment.css, scope substituted.
   ------------------------------------------------------------------------- */
/* §12 rule 2 — a nested wrapper may not re-declare the container's job. No
   second margin:0 auto, no second horizontal gutter. It may cap its WIDTH. */
.ts-app[data-app="readiness"] .wrap{margin:0;padding-left:0;padding-right:0}
/* §11 — the app hero is the STANDFIRST and is subordinate to the page h1.
   R-WR11-F4: h1->h2 renamed the selector and carried --text-51 with it, so the
   subordinate heading rendered LARGER than the h1 it sits under. */
.ts-app[data-app="readiness"] h2.title{line-height:1.2;font-size:var(--text-26);text-transform:none;letter-spacing:normal;font-weight:600}
@media(max-width:480px){.ts-app[data-app="readiness"] h2.title{font-size:var(--text-21)}}
/* §11 slot 2 / §12 rule 2 — the dated PROOF STRIP and its .ts-app[data-app="readiness"] STRIP form. */
.ts-app[data-app="readiness"] .facts{display:flex;flex-wrap:wrap;gap:var(--space-24);margin:var(--space-24) 0 var(--space-24);padding:var(--space-24) 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.ts-app[data-app="readiness"] .fact{flex:1 1 200px;min-width:0}
.ts-app[data-app="readiness"] .fact b{display:block;font-family:var(--font-head);font-size:var(--text-33);font-weight:600;line-height:1.2;letter-spacing:-0.01em;color:var(--heading)}
.ts-app[data-app="readiness"] .fact span{display:block;margin-top:var(--space-8);font-size:var(--text-14);line-height:1.55;color:var(--muted)}
/* §11 slot 3 — the single framing line sits tight under the strip. */
.ts-app[data-app="readiness"] .lede-why{margin-top:0}
