:root{
  --v21-navy:#0A1625;
  --v21-ink:#0D1B2A;
  --v21-component:#162A45;
  --v21-slate:#345275;
  --v21-teal:#0D7377;
  --v21-gold:#CF9D2A;
  --v21-paper:#F4F6F9;
  --v21-pale:#E8EDF2;
  --v21-iris:#7244C4;
  --v21-red:#B94A48;
}

#sosSafetySimulationLab{
  max-width:1480px;
  margin:0 auto;
}

#sosV21Lab,
#sosV21Lab *{
  box-sizing:border-box;
}

#sosV21Lab{
  color:var(--v21-ink);
}

.v21-intro{
  margin:24px 0;
  border-radius:34px;
  border:1px solid rgba(13,115,119,.32);
  background:
    radial-gradient(circle at 7% 0%,rgba(114,68,196,.18),transparent 28rem),
    radial-gradient(circle at 92% 14%,rgba(207,157,42,.16),transparent 24rem),
    linear-gradient(145deg,var(--v21-navy),var(--v21-ink));
  color:var(--v21-paper);
  box-shadow:0 30px 90px rgba(10,22,37,.30);
  overflow:hidden;
}

.v21-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);
  gap:20px;
  padding:24px;
}

.v21-kicker{
  color:var(--v21-gold);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  font-weight:1000;
}

.v21-intro h2{
  margin:8px 0;
  font-size:clamp(2rem,5vw,4.8rem);
  line-height:.9;
  letter-spacing:-.065em;
}

.v21-intro p,
.v21-intro li{
  color:rgba(244,246,249,.78);
  line-height:1.55;
}

.v21-access{
  border:1px solid rgba(207,157,42,.34);
  border-left:6px solid var(--v21-gold);
  border-radius:22px;
  background:rgba(207,157,42,.10);
  padding:16px;
}

.v21-access label{
  display:flex;
  align-items:flex-start;
  gap:9px;
  color:#fff;
  font-weight:950;
}

.v21-access input{
  margin-top:4px;
  accent-color:var(--v21-gold);
}

.v21-limit-row{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

.v21-limit{
  border:1px solid rgba(232,237,242,.12);
  border-radius:16px;
  padding:10px;
  background:rgba(6,17,31,.35);
}

.v21-limit span{
  display:block;
  color:rgba(244,246,249,.58);
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:.62rem;
  font-weight:1000;
}

.v21-limit b{
  display:block;
  color:#fff;
  margin-top:4px;
}

.v21-review-access{
  margin-top:12px;
  border:1px solid rgba(114,68,196,.28);
  border-radius:18px;
  background:rgba(114,68,196,.12);
  padding:12px;
}

.v21-mode-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0;
}

.v21-mode-tabs button{
  border:1px solid rgba(13,115,119,.24);
  border-radius:999px;
  padding:10px 13px;
  background:#fff;
  color:var(--v21-slate);
  cursor:pointer;
  font-weight:1000;
  font-size:.78rem;
}

.v21-mode-tabs button.active{
  background:rgba(114,68,196,.16);
  border-color:rgba(114,68,196,.58);
  color:var(--v21-ink);
  box-shadow:0 0 0 3px rgba(114,68,196,.10);
}

.v21-mode-body{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  align-items:start;
  gap:16px;
  margin-bottom:18px;
}

.v21-runboard{
  display:grid;
  grid-template-columns:minmax(280px,.8fr) minmax(620px,1.55fr) minmax(300px,.85fr);
  gap:16px;
  align-items:start;
}

.v21-panel{
  border:1px solid rgba(13,115,119,.22);
  border-radius:28px;
  background:#fff;
  color:var(--v21-ink);
  padding:16px;
  box-shadow:0 18px 46px rgba(10,22,37,.10);
  overflow:hidden;
}

.v21-panel.dark{
  background:linear-gradient(145deg,var(--v21-navy),var(--v21-component));
  color:var(--v21-paper);
  border-color:rgba(232,237,242,.12);
}

.v21-panel h3,
.v21-panel h4{
  margin:0 0 10px;
  letter-spacing:-.035em;
}

.v21-panel p,
.v21-panel li{
  color:#526173;
  line-height:1.52;
}

.v21-panel.dark p,
.v21-panel.dark li{
  color:rgba(244,246,249,.76);
}

.v21-select{
  width:100%;
  border:1px solid rgba(13,115,119,.24);
  border-radius:16px;
  background:#fff;
  padding:11px 12px;
  color:var(--v21-ink);
  font-weight:800;
}

.v21-group{
  border:1px solid rgba(13,115,119,.20);
  border-radius:20px;
  margin:12px 0;
  background:rgba(244,246,249,.86);
  overflow:hidden;
}

.v21-group summary{
  cursor:pointer;
  padding:12px 13px;
  list-style:none;
  font-weight:1000;
  color:var(--v21-ink);
}

.v21-group summary::-webkit-details-marker{
  display:none;
}

.v21-group summary small{
  display:block;
  color:#617086;
  line-height:1.35;
  margin-top:4px;
  font-weight:700;
}

.v21-control-body{
  padding:0 13px 13px;
}

.v21-control{
  margin:12px 0;
}

.v21-control label{
  display:flex;
  justify-content:space-between;
  gap:8px;
  color:var(--v21-slate);
  font-size:.72rem;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.v21-control output{
  color:var(--v21-teal);
  white-space:nowrap;
}

.v21-control input[type=range]{
  width:100%;
  margin-top:8px;
  accent-color:var(--v21-teal);
}

.v21-help{
  margin-top:5px;
  color:#617086;
  font-size:.76rem;
  line-height:1.35;
}

.v21-action{
  width:100%;
  border:0;
  border-radius:999px;
  padding:13px 16px;
  background:linear-gradient(90deg,var(--v21-gold),#F2CB66);
  color:#06111F;
  font-weight:1000;
  cursor:pointer;
  margin-top:12px;
}

.v21-action[disabled]{
  opacity:.5;
  cursor:not-allowed;
}

/* ---------- Run Path State strip ----------
   Compact replacement for the old static "SOS route / custody graph"
   canvas: one row on desktop, wraps on mobile, capped well under the
   180px ceiling since content is short labels + values, not a graph. */
.v21-run-path-strip{
  display:flex;
  align-items:stretch;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid rgba(13,115,119,.22);
  background:#FCFEFF;
  max-height:180px;
  overflow:auto;
}

.v21-path-node{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:120px;
  flex:1 1 120px;
  padding:6px 10px;
  border-radius:10px;
  background:#fff;
  border:1px solid rgba(13,115,119,.18);
}

.v21-path-label{
  font-size:.62rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#526173;
}

.v21-path-value{
  font-size:.78rem;
  font-weight:900;
  color:#081322;
}

.v21-path-ok .v21-path-value{color:#0D7377;}
.v21-path-warn .v21-path-value{color:#CF9D2A;}
.v21-path-bad .v21-path-value{color:#B94A48;}
.v21-path-neutral .v21-path-value{color:#526173;}

.v21-path-arrow{
  display:flex;
  align-items:center;
  color:#A9B4C4;
  font-weight:900;
  font-size:.9rem;
}

@media(max-width:760px){
  .v21-run-path-strip{flex-direction:column;max-height:none;}
  .v21-path-arrow{display:none;}
  .v21-path-node{min-width:auto;}
}

.v21-visual-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.v21-visual{
  border-radius:22px;
  border:1px solid rgba(13,115,119,.22);
  background:
    linear-gradient(rgba(13,115,119,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,115,119,.055) 1px,transparent 1px),
    #FCFEFF;
  background-size:36px 36px;
  min-height:250px;
  overflow:hidden;
}

.v21-visual.large{
  grid-column:1 / -1;
  min-height:350px;
}

.v21-visual canvas{
  width:100%;
  height:250px;
  display:block;
}

.v21-visual.large canvas{
  height:350px;
}

.v21-visual-caption{
  margin-top:12px;
  border-left:5px solid var(--v21-gold);
  border-radius:14px;
  background:rgba(207,157,42,.10);
  padding:11px;
  color:#526173;
  line-height:1.45;
}

/* ---------- Decision-state graph console ----------
   Desktop: large graph on the left, interpretation rail on the right, so
   the black space next to a tall canvas becomes legend/interpretation
   instead of empty margin. Collapses to a single column at the same
   breakpoint the runboard itself collapses at, so mobile gets the graph,
   then legend, then interpretation, then run-delta, then consent boundary,
   stacked in reading order. */
.v22-graph-console{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(260px,.9fr);
  gap:14px;
  margin-top:12px;
}

.v22-graph-main{
  border-radius:22px;
  border:1px solid rgba(13,115,119,.22);
  background:
    linear-gradient(rgba(13,115,119,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,115,119,.055) 1px,transparent 1px),
    #FCFEFF;
  background-size:36px 36px;
  padding:14px;
}

.v22-graph-chip{ margin-bottom:8px; }

.v22-graph-canvas-wrap canvas{
  width:100%;
  height:340px;
  display:block;
  border-radius:14px;
}

.v22-graph-legend{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(13,115,119,.16);
}

.v22-legend-title{
  font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;
  color:var(--v21-teal);margin-bottom:8px;
}

.v22-legend-list{
  margin:0 0 12px;padding-left:18px;
  display:grid;gap:5px;
  font-size:.8rem;line-height:1.5;color:#345275;
}

.v22-legend-colors{
  display:flex;flex-wrap:wrap;gap:8px 16px;
}

.v22-legend-colors span{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.74rem;font-weight:700;color:#345275;
}

.v22-legend-colors i{
  width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;
}

.v22-graph-purpose{
  margin:12px 0 0;
  font-size:.8rem;
  line-height:1.5;
  color:#526173;
  border-left:4px solid var(--v21-slate);
  padding:8px 12px;
  background:rgba(52,82,117,.06);
  border-radius:0 12px 12px 0;
}

.v22-graph-rail{
  display:grid;
  gap:12px;
  align-content:start;
}

.v22-rail-card{
  border-radius:18px;
  border:1px solid rgba(13,115,119,.20);
  background:#fff;
  padding:14px;
}

.v22-rail-card p{
  margin:6px 0 0;
  font-size:.82rem;
  line-height:1.5;
  color:#345275;
}

.v22-rail-micro{
  background:rgba(114,68,196,.05);
  border-color:rgba(114,68,196,.22);
}

.v22-delta-rows{ display:grid; gap:6px; margin-top:8px; }

.v22-delta-row{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:.76rem;
  border:1px solid rgba(52,82,117,.14);
  border-radius:10px;
  padding:6px 9px;
  background:rgba(52,82,117,.04);
}

.v22-delta-row > span:first-child{ color:#526173; font-weight:700; }

.v22-delta-values{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}

.v22-delta-values b{ color:#081322; word-break:break-word; }
.v22-delta-values i{ color:#A9B4C4; font-style:normal; flex:none; }

.v22-delta-note{ margin-top:10px !important; font-size:.72rem !important; color:#7A8798 !important; }

.v22-consent-line{
  display:flex;justify-content:space-between;gap:10px;
  font-size:.82rem;padding:6px 0;
  border-bottom:1px solid rgba(52,82,117,.10);
}
.v22-consent-line span{ color:#526173; font-weight:700; }
.v22-consent-line b{ color:#081322; }

.v22-consent-caveat{
  margin:8px 0 !important;
  font-size:.76rem !important;
  font-weight:700;
  color:var(--v21-iris) !important;
}

.v22-consent-list{
  margin:8px 0 0;
  padding-left:18px;
  display:grid;
  gap:4px;
  font-size:.78rem;
  color:#345275;
}

.v22-outcome-card{
  border-radius:22px;
  border:1px solid rgba(13,115,119,.22);
  background:
    linear-gradient(rgba(13,115,119,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,115,119,.055) 1px,transparent 1px),
    #FCFEFF;
  background-size:36px 36px;
  padding:14px;
}

.v22-outcome-card canvas{
  width:100%;
  height:230px;
  display:block;
}

.v22-outcome-caption{
  margin:10px 0 0;
  font-size:.78rem;
  line-height:1.5;
  color:#526173;
}

.v22-outcome-caption .v22-source-badge{ margin:0 6px 0 0; vertical-align:middle; }

@media(max-width:1120px){
  .v22-graph-console{ grid-template-columns:1fr; }
  .v22-graph-canvas-wrap canvas{ height:300px; }
}

.v21-kv{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:10px;
  padding:8px 0;
  border-bottom:1px solid rgba(232,237,242,.10);
}

.v21-kv span{
  color:rgba(244,246,249,.65);
}

.v21-kv b{
  color:#fff;
  text-align:right;
}

.v21-battery{
  border:1px solid rgba(207,157,42,.30);
  border-radius:20px;
  background:rgba(207,157,42,.10);
  padding:14px;
  margin-top:12px;
}

.v21-battery-shell{
  margin-top:9px;
  height:38px;
  border:3px solid rgba(244,246,249,.86);
  border-radius:12px;
  padding:4px;
  position:relative;
}

.v21-battery-shell:after{
  content:"";
  position:absolute;
  right:-12px;
  top:10px;
  width:9px;
  height:14px;
  border-radius:0 4px 4px 0;
  background:rgba(244,246,249,.86);
}

#v21BatteryFill{
  display:block;
  height:100%;
  width:55%;
  border-radius:7px;
  background:linear-gradient(90deg,var(--v21-teal),var(--v21-gold));
  transition:width .25s ease;
}

.v21-post{
  margin-top:16px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  align-items:start;
  gap:16px;
}

.v21-out-wide{
  grid-column:1/-1;
}

.v21-out-card{
  border-left:4px solid rgba(207,157,42,.5) !important;
}

.v21-out-gold{ border-left-color:var(--SOVEREIGN_GOLD,#CF9D2A) !important; }
.v21-out-teal{ border-left-color:var(--SOVEREIGN_TEAL,#0D7377) !important; }
.v21-out-iris{ border-left-color:var(--SOVEREIGN_IRIS,#7244C4) !important; }
.v21-out-red{ border-left-color:#B94A48 !important; }

.v21-code{
  white-space:pre-wrap;
  word-break:break-word;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.78rem;
  line-height:1.45;
  border:1px solid rgba(114,68,196,.25);
  border-radius:16px;
  padding:12px;
  background:rgba(114,68,196,.10);
  color:rgba(244,246,249,.86);
  max-height:420px;
  overflow:auto;
}

.v21-warning{
  border-left:5px solid var(--v21-gold);
  border-radius:14px;
  background:rgba(207,157,42,.12);
  padding:11px;
  color:rgba(244,246,249,.84);
  line-height:1.45;
}

@media(max-width:1120px){
  .v21-intro-grid,
  .v21-runboard,
  .v21-mode-body,
  .v21-post{
    grid-template-columns:1fr;
  }

  .v21-limit-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v21-visual-grid{
    grid-template-columns:1fr;
  }

  .v21-intro{
    border-radius:24px;
  }

  .v21-panel{
    border-radius:22px;
  }

  .v21-visual,
  .v21-visual.large{
    min-height:280px;
  }

  .v21-visual canvas,
  .v21-visual.large canvas{
    height:280px;
  }

  .v21-mode-tabs{
    position:sticky;
    top:0;
    z-index:5;
    background:rgba(244,246,249,.94);
    padding:8px;
    border-radius:18px;
  }
}

/* v22 foundation, terms, and readability upgrades */
.v22-foundation{
  margin:24px 0;
  display:grid;
  gap:16px;
}

.v22-foundation-head{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);
  gap:16px;
  align-items:stretch;
}

.v22-foundation-head > div,
.v22-doctrine-card,
.v22-role-grid article,
.v22-release-matrix > div{
  border:1px solid rgba(13,115,119,.22);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  padding:18px;
  box-shadow:0 16px 42px rgba(10,22,37,.08);
}

.v22-foundation h3{
  margin:.2rem 0 .7rem;
  font-size:clamp(1.7rem,3vw,2.7rem);
  line-height:1;
  letter-spacing:-.055em;
  color:var(--v21-ink);
}

.v22-foundation h4{
  margin:0 0 10px;
  color:var(--v21-ink);
}

.v22-foundation p,
.v22-foundation li{
  color:#526173;
  line-height:1.55;
}

.v22-doctrine-card{
  border-left:6px solid var(--v21-gold);
  background:linear-gradient(145deg,rgba(207,157,42,.12),#fff);
}

.v22-doctrine-card b{
  display:block;
  color:var(--v21-ink);
  font-size:1.12rem;
  margin-bottom:8px;
}

.v22-role-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.v22-role-grid article span{
  display:inline-flex;
  border-radius:999px;
  padding:6px 9px;
  background:rgba(13,115,119,.10);
  color:var(--v21-teal);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:1000;
  margin-bottom:10px;
}

.v22-role-grid article b{
  display:block;
  color:var(--v21-ink);
  margin-bottom:8px;
}

.v22-release-matrix{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.v22-terms-link{
  margin:8px 0 12px;
  border:1px solid rgba(207,157,42,.55);
  border-radius:999px;
  padding:9px 12px;
  background:rgba(207,157,42,.16);
  color:#fff;
  cursor:pointer;
  font-weight:1000;
}

.v22-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  place-items:center;
  padding:18px;
  background:rgba(3,10,18,.72);
  backdrop-filter:blur(8px);
}

.v22-modal.open{
  display:grid;
}

.v22-modal-card{
  position:relative;
  width:min(920px,96vw);
  max-height:86vh;
  overflow:auto;
  border-radius:28px;
  border:1px solid rgba(232,237,242,.18);
  background:linear-gradient(145deg,#0A1625,#162A45);
  color:var(--v21-paper);
  padding:24px;
  box-shadow:0 34px 90px rgba(0,0,0,.38);
}

.v22-modal-card h3{
  margin:8px 0 12px;
  font-size:clamp(1.7rem,3vw,2.7rem);
  line-height:1;
  letter-spacing:-.045em;
  color:#fff;
}

.v22-modal-card h4{
  margin:20px 0 6px;
  color:var(--v21-gold);
}

.v22-modal-card p{
  color:rgba(244,246,249,.78);
  line-height:1.62;
}

.v22-modal-final{
  border-left:5px solid var(--v21-gold);
  border-radius:16px;
  background:rgba(207,157,42,.12);
  padding:12px;
}

.v22-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border:1px solid rgba(244,246,249,.22);
  border-radius:999px;
  background:rgba(244,246,249,.08);
  color:#fff;
  cursor:pointer;
  font-size:1.4rem;
  line-height:1;
}

.v21-mode-tabs button{
  color:var(--v21-teal);
  background:#ffffff;
  border-color:rgba(13,115,119,.45);
  box-shadow:0 8px 18px rgba(10,22,37,.07);
}

.v21-mode-tabs button.active{
  color:#fff;
  background:linear-gradient(90deg,var(--v21-iris),var(--v21-teal));
  border-color:rgba(114,68,196,.72);
}

@media(max-width:1120px){
  .v22-foundation-head,
  .v22-role-grid,
  .v22-release-matrix{
    grid-template-columns:1fr;
  }

  .v22-modal-card{
    max-height:90vh;
    padding:20px;
  }
}


/* v22 official protocol foundation styles */
.v22-foundation{
  margin:24px 0;
  display:grid;
  gap:16px;
}

.v22-foundation-head{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);
  gap:16px;
  align-items:stretch;
}

.v22-foundation-head > div,
.v22-doctrine-card,
.v22-role-grid article,
.v22-release-matrix > div{
  border:1px solid rgba(13,115,119,.22);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  padding:18px;
  box-shadow:0 16px 42px rgba(10,22,37,.08);
}

.v22-foundation h3{
  margin:.2rem 0 .7rem;
  font-size:clamp(1.7rem,3vw,2.7rem);
  line-height:1;
  letter-spacing:-.055em;
  color:var(--v21-ink);
}

.v22-foundation h4{
  margin:0 0 10px;
  color:var(--v21-ink);
}

.v22-foundation p,
.v22-foundation li{
  color:#526173;
  line-height:1.55;
}

.v22-doctrine-card{
  border-left:6px solid var(--v21-gold);
  background:linear-gradient(145deg,rgba(207,157,42,.12),#fff);
}

.v22-doctrine-card b{
  display:block;
  color:var(--v21-ink);
  font-size:1.12rem;
  margin-bottom:8px;
}

.v22-role-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.v22-role-grid article span{
  display:inline-flex;
  border-radius:999px;
  padding:6px 9px;
  background:rgba(13,115,119,.10);
  color:var(--v21-teal);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:1000;
  margin-bottom:10px;
}

.v22-role-grid article b{
  display:block;
  color:var(--v21-ink);
  margin-bottom:8px;
}

.v22-release-matrix{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.v22-terms-link{
  margin:8px 0 12px;
  border:1px solid rgba(207,157,42,.55);
  border-radius:999px;
  padding:9px 12px;
  background:rgba(207,157,42,.16);
  color:#fff;
  cursor:pointer;
  font-weight:1000;
}

.v22-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  place-items:center;
  padding:18px;
  background:rgba(3,10,18,.72);
  backdrop-filter:blur(8px);
}

.v22-modal.open{
  display:grid;
}

.v22-modal-card{
  position:relative;
  width:min(920px,96vw);
  max-height:86vh;
  overflow:auto;
  border-radius:28px;
  border:1px solid rgba(232,237,242,.18);
  background:linear-gradient(145deg,#0A1625,#162A45);
  color:var(--v21-paper);
  padding:24px;
  box-shadow:0 34px 90px rgba(0,0,0,.38);
}

.v22-modal-card h3{
  margin:8px 0 12px;
  font-size:clamp(1.7rem,3vw,2.7rem);
  line-height:1;
  letter-spacing:-.045em;
  color:#fff;
}

.v22-modal-card h4{
  margin:20px 0 6px;
  color:var(--v21-gold);
}

.v22-modal-card p{
  color:rgba(244,246,249,.78);
  line-height:1.62;
}

.v22-modal-final{
  border-left:5px solid var(--v21-gold);
  border-radius:16px;
  background:rgba(207,157,42,.12);
  padding:12px;
}

.v22-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border:1px solid rgba(244,246,249,.22);
  border-radius:999px;
  background:rgba(244,246,249,.08);
  color:#fff;
  cursor:pointer;
  font-size:1.4rem;
  line-height:1;
}

.v21-mode-tabs button{
  color:var(--v21-teal);
  background:#ffffff;
  border-color:rgba(13,115,119,.45);
  box-shadow:0 8px 18px rgba(10,22,37,.07);
}

.v21-mode-tabs button.active{
  color:#fff;
  background:linear-gradient(90deg,var(--v21-iris),var(--v21-teal));
  border-color:rgba(114,68,196,.72);
}

@media(max-width:1120px){
  .v22-foundation-head,
  .v22-role-grid,
  .v22-release-matrix{
    grid-template-columns:1fr;
  }

  .v22-modal-card{
    max-height:90vh;
    padding:20px;
  }
}


/* v22 APEX protocol consoles */
.v22-apex-consoles{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.v22-apex-card{
  border:1px solid rgba(13,115,119,.22);
  border-radius:22px;
  background:linear-gradient(145deg,#FFFFFF,#F4F6F9);
  padding:14px;
  box-shadow:0 14px 34px rgba(10,22,37,.08);
}

.v22-apex-card h4{
  margin:5px 0 10px;
  color:var(--v21-ink);
  letter-spacing:-.03em;
}

.v22-apex-card p{
  color:#526173;
  line-height:1.48;
  margin:10px 0 0;
}

.v22-source-badge{
  display:inline-block;
  margin:2px 0 8px;
  padding:3px 10px;
  border-radius:999px;
  font-size:.66rem;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.v22-badge-ok{ background:rgba(13,115,119,.14); color:#0D7377; }
.v22-badge-warn{ background:rgba(207,157,42,.16); color:#8A6412; }
.v22-badge-neutral{ background:rgba(52,82,117,.12); color:#345275; }
.v22-badge-bad{ background:rgba(185,74,72,.14); color:#B94A48; }
.v22-badge-iris{ background:rgba(114,68,196,.14); color:#7244C4; }

.v22-battery-apex{
  display:grid;
  gap:10px;
  margin:10px 0;
}

.v22-battery-segments{
  display:grid;
  grid-template-columns:repeat(8,1fr);
  gap:5px;
}

.v22-battery-segments i{
  display:block;
  height:18px;
  border-radius:8px;
  background:#D9E1EA;
}

.v22-battery-segments i.on{
  background:linear-gradient(90deg,var(--v21-teal),var(--v21-gold));
}

.v22-battery-meter{
  position:relative;
  height:34px;
  border-radius:999px;
  background:#E8EDF2;
  overflow:hidden;
  border:1px solid rgba(13,115,119,.18);
}

.v22-battery-meter i{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  background:linear-gradient(90deg,var(--v21-teal),var(--v21-gold));
}

.v22-battery-meter span{
  position:relative;
  z-index:1;
  display:flex;
  height:100%;
  align-items:center;
  justify-content:center;
  color:#06111F;
  font-weight:1000;
  font-size:.78rem;
}

.v22-mini-grid,
.v22-bfb-packet{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}

.v22-mini-grid div,
.v22-bfb-packet div{
  border:1px solid rgba(13,115,119,.16);
  border-radius:14px;
  background:#fff;
  padding:9px;
}

.v22-mini-grid span,
.v22-bfb-packet span,
.v22-state-line span{
  display:block;
  color:#617086;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.62rem;
  font-weight:1000;
}

.v22-mini-grid b,
.v22-bfb-packet b,
.v22-state-line b{
  display:block;
  color:#0D1B2A;
  margin-top:3px;
}

.v22-state-line{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:8px;
  border-bottom:1px solid rgba(13,115,119,.12);
  padding:8px 0;
}

.v22-survival-strip,
.v22-nicole-stack,
.v22-tab-flow{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:10px 0;
}

.v22-survival-strip span,
.v22-nicole-stack span,
.v22-tab-flow span{
  border-radius:999px;
  background:rgba(13,115,119,.09);
  color:var(--v21-teal);
  padding:6px 8px;
  font-size:.68rem;
  font-weight:1000;
}

.v22-tab-flow span.on{
  background:rgba(114,68,196,.14);
  color:var(--v21-iris);
  box-shadow:0 0 0 2px rgba(114,68,196,.08);
}

.v22-connect-audio{
  width:100%;
  border:0;
  border-radius:999px;
  padding:12px 14px;
  background:linear-gradient(90deg,var(--v21-iris),var(--v21-teal));
  color:#fff;
  font-weight:1000;
  cursor:pointer;
  margin:10px 0;
}

.v22-connect-audio[disabled]{
  opacity:.55;
  cursor:not-allowed;
}

@media(max-width:1120px){
  .v22-apex-consoles,
  .v22-mini-grid,
  .v22-bfb-packet{
    grid-template-columns:1fr;
  }
}


/* v22 readable post-run report */
.v22-readable-report{
  max-width:1480px;
  margin:18px auto 0;
}

.v22-readable-report summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 16px;
  border:1px solid rgba(13,115,119,.22);
  border-radius:20px;
  background:linear-gradient(145deg,#FFFFFF,#F4F6F9);
}

.v22-readable-report summary::-webkit-details-marker{
  display:none;
}

.v22-readable-report > div{
  display:grid;
  gap:14px;
  margin-top:14px;
}

.v22-readable-head{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr);
  gap:14px;
  border:1px solid rgba(13,115,119,.22);
  border-radius:28px;
  background:linear-gradient(145deg,#FFFFFF,#F4F6F9);
  padding:18px;
  box-shadow:0 18px 46px rgba(10,22,37,.10);
}

.v22-readable-head h3{
  margin:.2rem 0 .5rem;
  font-size:clamp(1.6rem,3vw,2.5rem);
  line-height:1;
  letter-spacing:-.05em;
  color:var(--v21-ink);
}

.v22-readable-head p{
  color:#526173;
  line-height:1.55;
}

.v22-readable-receipt{
  border-left:5px solid var(--v21-gold);
  border-radius:18px;
  background:rgba(207,157,42,.10);
  padding:12px;
}

.v22-readable-receipt span{
  display:block;
  color:#617086;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.62rem;
  font-weight:1000;
  margin-top:6px;
}

.v22-readable-receipt b{
  display:block;
  color:var(--v21-ink);
  margin-top:2px;
}

.v22-readable-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.v22-readable-grid article{
  border:1px solid rgba(13,115,119,.22);
  border-radius:24px;
  background:#fff;
  padding:15px;
  box-shadow:0 14px 34px rgba(10,22,37,.08);
}

.v22-readable-grid article > span{
  display:inline-flex;
  border-radius:999px;
  padding:6px 9px;
  background:rgba(114,68,196,.10);
  color:var(--v21-iris);
  font-size:.64rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:1000;
}

.v22-readable-grid h4{
  margin:10px 0 7px;
  color:var(--v21-ink);
  letter-spacing:-.03em;
}

.v22-readable-grid p,
.v22-readable-grid li{
  color:#526173;
  line-height:1.48;
}

.v22-readable-grid ul{
  margin:10px 0 0;
  padding-left:18px;
}

@media(max-width:1120px){
  .v22-readable-head,
  .v22-readable-grid{
    grid-template-columns:1fr;
  }
}


/* v22 final polish */
.v22-hero-subtitle{
  max-width:720px;
  margin:14px 0 0;
  color:rgba(244,246,249,.78);
  font-size:clamp(1rem,1.6vw,1.2rem);
  line-height:1.55;
}

.v21-intro{
  margin-top:34px;
}

.v21-mode-tabs{
  align-items:center;
  padding:8px;
  border:1px solid rgba(13,115,119,.18);
  border-radius:20px;
  background:rgba(244,246,249,.92);
  box-shadow:0 16px 36px rgba(10,22,37,.08);
}

.v21-mode-tabs button{
  min-height:40px;
  color:var(--v21-teal);
  font-size:.82rem;
  letter-spacing:.01em;
}

.v21-mode-tabs button.active{
  color:#fff;
  text-shadow:0 1px 1px rgba(0,0,0,.18);
}

.v21-runboard{
  grid-template-columns:minmax(230px,.72fr) minmax(550px,1.72fr) minmax(240px,.86fr);
}

#v21Center{
  min-height:100%;
}

.v21-visual.large{
  min-height:390px;
}

.v21-visual.large canvas{
  height:390px;
}

.v22-apex-consoles{
  grid-template-columns:repeat(6,minmax(0,1fr));
}

#v22SurvivalPowerConsole{
  grid-column:span 6;
}

#v22TsaroConsole,
#v22NicoleConsole{
  grid-column:span 3;
}

#v22TabConsole,
#v22BfbConsole{
  grid-column:span 3;
}

#v22TabConsole{
  border-color:rgba(114,68,196,.32);
  background:linear-gradient(145deg,#fff,rgba(114,68,196,.07));
}

#v22BfbConsole{
  border-color:rgba(207,157,42,.32);
  background:linear-gradient(145deg,#fff,rgba(207,157,42,.08));
}

.v22-readable-report{
  padding-bottom:20px;
}

.v22-readable-grid article{
  min-height:265px;
}

@media(max-width:1120px){
  #sosSafetySimulationLab{
    max-width:100%;
    padding:0 12px;
  }

  .v22-hero-subtitle{
    font-size:1rem;
  }

  .v21-intro{
    margin-top:20px;
  }

  .v21-mode-tabs{
    overflow-x:auto;
    flex-wrap:nowrap;
    justify-content:flex-start;
    scrollbar-width:thin;
  }

  .v21-mode-tabs button{
    flex:0 0 auto;
    white-space:nowrap;
  }

  .v21-runboard{
    display:flex;
    flex-direction:column;
    gap:14px;
  }

  #v21Left{order:1;}
  #v21Center{order:2;}
  #v21Right{order:3;}

  .v21-panel{
    padding:14px;
  }

  .v21-visual,
  .v21-visual.large{
    min-height:300px;
  }

  .v21-visual canvas,
  .v21-visual.large canvas{
    height:300px;
  }

  .v22-apex-consoles{
    grid-template-columns:1fr;
  }

  #v22SurvivalPowerConsole,
  #v22TsaroConsole,
  #v22NicoleConsole,
  #v22TabConsole,
  #v22BfbConsole{
    grid-column:auto;
  }

  .v22-state-line{
    grid-template-columns:1fr;
  }

  .v22-readable-grid article{
    min-height:auto;
  }

  .v22-foundation{
    margin-top:16px;
  }

  .v22-release-matrix,
  .v22-role-grid{
    gap:10px;
  }
}

/* Desktop shell width is owned by lakana-sos-page-shell.css. Rails remain
   content-height so an unpopulated side card cannot create a blank column. */
@media(min-width:1121px){
  .v21-runboard{
    align-items:start;
  }
}

@media(max-width:640px){
  .v21-intro-grid{
    padding:18px;
  }

  .v21-intro h2{
    font-size:clamp(2rem,12vw,3.2rem);
  }

  .v21-limit-row{
    grid-template-columns:1fr 1fr;
  }

  .v21-visual,
  .v21-visual.large{
    min-height:260px;
  }

  .v21-visual canvas,
  .v21-visual.large canvas{
    height:260px;
  }

  .v22-modal-card{
    width:96vw;
    padding:18px;
    border-radius:22px;
  }

  .v22-readable-head{
    padding:15px;
  }

  .v22-battery-segments{
    grid-template-columns:repeat(4,1fr);
  }
}


/* v23 LAKANA proprietary palette cleanup */
:root{
  --SOVEREIGN_NAVY:#0A1625;
  --COMPONENT_NAVY:#162A45;
  --TECHNICAL_SLATE:#345275;
  --DEEP_INK:#0D1B2A;
  --SOVEREIGN_TEAL:#0D7377;
  --SOVEREIGN_GOLD:#CF9D2A;
  --SOFT_PAPER_BASE:#F4F6F9;
  --PALE_BLUE_GRAY:#E8EDF2;
  --WHITE:#FFFFFF;
}

.v23-hero-subtitle{
  max-width:760px;
  margin:14px 0 0;
  color:rgba(244,246,249,.82);
  font-size:clamp(1rem,1.7vw,1.22rem);
  line-height:1.55;
}

.v23-top-doctrine{
  max-width:1480px;
  margin:28px auto 18px;
  padding:0 16px;
  display:grid;
  gap:18px;
}

.v23-protocol-key{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.v23-protocol-key div,
.v23-extended-protocol,
.v23-extended-grid article{
  border:1px solid rgba(52,82,117,.42);
  border-radius:24px;
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY));
  box-shadow:0 18px 46px rgba(3,10,18,.16);
}

.v23-protocol-key div{
  padding:16px;
}

.v23-protocol-key span,
.v23-extended-grid article span{
  display:inline-flex;
  border-radius:999px;
  padding:6px 9px;
  background:rgba(13,115,119,.12);
  color:var(--SOVEREIGN_TEAL);
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:.62rem;
  font-weight:1000;
}

.v23-protocol-key b{
  display:block;
  margin:10px 0 6px;
  color:var(--DEEP_INK);
}

.v23-protocol-key p{
  color:#526173;
  line-height:1.45;
}

.v23-top-doctrine section,
.v23-top-doctrine .section,
.v23-top-doctrine article{
  border-color:rgba(52,82,117,.34);
}

#v22Foundation{
  display:none !important;
}

#sosV21Lab .v21-intro-grid,
#sosV21Lab .v21-panel,
#sosV21Lab .v21-visual,
#sosV21Lab .v22-apex-card,
#sosV21Lab .v22-readable-head,
#sosV21Lab .v22-readable-grid article,
#sosV21Lab .v21-limit-card,
#sosV21Lab .v21-output-card{
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY)) !important;
  border-color:rgba(52,82,117,.34) !important;
}

#sosV21Lab .v21-side-card,
#sosV21Lab .v21-terms-card,
#sosV21Lab .v21-warning-card{
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY)) !important;
  border-color:rgba(207,157,42,.34) !important;
  color:var(--SOFT_PAPER_BASE);
}

#sosV21Lab .v21-side-card p,
#sosV21Lab .v21-terms-card p,
#sosV21Lab .v21-warning-card p{
  color:rgba(244,246,249,.78);
}

#sosV21Lab .v21-mode-tabs{
  background:linear-gradient(145deg,var(--PALE_BLUE_GRAY),var(--SOFT_PAPER_BASE)) !important;
  border-color:rgba(52,82,117,.42) !important;
}

#sosV21Lab .v21-mode-tabs button{
  background:var(--PALE_BLUE_GRAY);
  color:var(--SOVEREIGN_TEAL);
  border-color:rgba(13,115,119,.42);
}

#sosV21Lab .v21-mode-tabs button.active{
  background:linear-gradient(90deg,var(--SOVEREIGN_TEAL),var(--TECHNICAL_SLATE));
  color:var(--WHITE);
  border-color:rgba(207,157,42,.55);
}

#sosV21Lab canvas{
  background:var(--SOFT_PAPER_BASE);
  border-radius:18px;
}

.v23-extended-protocol{
  max-width:1480px;
  margin:28px auto;
  padding:22px;
}

.v23-extended-protocol h2{
  color:var(--WHITE);
  margin:.25rem 0 1rem;
  font-size:clamp(1.8rem,3vw,2.9rem);
  letter-spacing:-.05em;
}

.v23-extended-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.v23-extended-grid article{
  padding:16px;
}

.v23-extended-grid h3{
  color:var(--DEEP_INK);
  margin:10px 0 8px;
  letter-spacing:-.035em;
}

.v23-extended-grid p{
  color:#526173;
  line-height:1.52;
}

@media(max-width:1120px){
  .v23-protocol-key,
  .v23-extended-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:640px){
  .v23-protocol-key,
  .v23-extended-grid{
    grid-template-columns:1fr;
  }

  .v23-top-doctrine{
    padding:0 10px;
  }
}


/* v24 structural readability fix */
:root{
  --SOVEREIGN_IRIS:#7244C4;
}

/* Hero stays first and readable */
.v24-hero-subtitle{
  max-width:760px;
  margin:14px 0 0;
  color:rgba(244,246,249,.86);
  font-size:clamp(1rem,1.7vw,1.22rem);
  line-height:1.55;
}

.v24-top-doctrine{
  max-width:1480px;
  margin:22px auto 18px;
  padding:0 16px;
  display:grid;
  gap:18px;
}

/* Top doctrine uses light LAKANA paper with deep ink, not white-on-white */
.v24-top-doctrine .sos-info-card,
.v24-top-doctrine .sos-flow-step{
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY)) !important;
  color:var(--DEEP_INK) !important;
  border-color:rgba(52,82,117,.38) !important;
}

.v24-top-doctrine .sos-section-title,
.v24-top-doctrine h2,
.v24-top-doctrine h3,
.v24-top-doctrine strong{
  color:var(--DEEP_INK) !important;
}

.v24-top-doctrine p,
.v24-top-doctrine span,
.v24-top-doctrine li{
  color:#526173 !important;
}

.v24-how-sos .sos-flow-step::before{
  color:var(--SOVEREIGN_GOLD);
}

.v24-how-sos .sos-flow-step.nicole-step{
  border-color:rgba(114,68,196,.42) !important;
  box-shadow:0 16px 34px rgba(114,68,196,.12);
}

.v24-how-sos .sos-flow-step.nicole-step::before{
  color:var(--SOVEREIGN_IRIS);
}

.nicole-iris{
  border-color:rgba(114,68,196,.45) !important;
  color:#fff !important;
  background:linear-gradient(90deg,var(--SOVEREIGN_IRIS),var(--SOVEREIGN_TEAL)) !important;
}

/* Remove the hidden old foundation completely if any stale instance remains */
#v22Foundation,
.v22-foundation{
  display:none !important;
}

/* Main lab light panels: deep ink on paper */
#sosV21Lab .v21-intro-grid,
#sosV21Lab .v21-panel:not(.dark),
#sosV21Lab .v21-visual,
#sosV21Lab .v22-apex-card,
#sosV21Lab .v22-readable-head,
#sosV21Lab .v22-readable-grid article{
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY)) !important;
  color:var(--DEEP_INK) !important;
  border-color:rgba(52,82,117,.38) !important;
}

#sosV21Lab .v21-panel:not(.dark) h3,
#sosV21Lab .v22-apex-card h4,
#sosV21Lab .v22-readable-grid h4,
#sosV21Lab .v22-readable-head h3{
  color:var(--DEEP_INK) !important;
}

#sosV21Lab .v21-panel:not(.dark) p,
#sosV21Lab .v22-apex-card p,
#sosV21Lab .v22-readable-grid p,
#sosV21Lab .v22-readable-grid li{
  color:#526173 !important;
}

/* Dark panels stay dark with pale text. This fixes the live run state. */
#sosV21Lab .v21-panel.dark,
#sosV21Lab #v21Right,
#sosV21Lab #v21PostA,
#sosV21Lab #v21PostB,
#sosV21Lab #v21PostC{
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY)) !important;
  color:var(--SOFT_PAPER_BASE) !important;
  border-color:rgba(207,157,42,.34) !important;
}

#sosV21Lab .v21-panel.dark h3,
#sosV21Lab #v21Right h3,
#sosV21Lab .v21-panel.dark b,
#sosV21Lab #v21Right b{
  color:var(--WHITE) !important;
}

#sosV21Lab .v21-panel.dark p,
#sosV21Lab #v21Right p,
#sosV21Lab .v21-panel.dark li,
#sosV21Lab #v21Right li{
  color:rgba(244,246,249,.78) !important;
}

#sosV21Lab #v21Right .v21-kv,
#sosV21Lab .v21-panel.dark .v21-kv{
  background:rgba(244,246,249,.06);
  border:1px solid rgba(232,237,242,.14);
  border-radius:14px;
  padding:9px;
  margin:8px 0;
}

#sosV21Lab #v21Right .v21-kv span,
#sosV21Lab .v21-panel.dark .v21-kv span{
  color:var(--PALE_BLUE_GRAY) !important;
}

#sosV21Lab #v21Right .v21-kv b,
#sosV21Lab .v21-panel.dark .v21-kv b{
  color:var(--WHITE) !important;
}

#sosV21Lab .v21-battery{
  color:var(--WHITE) !important;
}

#sosV21Lab .v21-battery-shell{
  background:rgba(232,237,242,.16) !important;
  border:1px solid rgba(232,237,242,.22);
}

/* Extended definitions near bottom: dark shell, light cards */
.v23-extended-protocol{
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY)) !important;
  color:var(--SOFT_PAPER_BASE) !important;
  border-color:rgba(114,68,196,.36) !important;
}

.v23-extended-protocol h2{
  color:var(--WHITE) !important;
}

.v23-extended-protocol .v21-kicker{
  color:var(--SOVEREIGN_GOLD) !important;
}

.v23-extended-grid article{
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY)) !important;
  color:var(--DEEP_INK) !important;
  border-color:rgba(52,82,117,.36) !important;
}

.v23-extended-grid article h3{
  color:var(--DEEP_INK) !important;
}

.v23-extended-grid article p{
  color:#526173 !important;
}

.v23-extended-grid article span{
  background:rgba(114,68,196,.10) !important;
  color:var(--SOVEREIGN_IRIS) !important;
}

/* Mode tabs: teal/iris/gold with readable states */
#sosV21Lab .v21-mode-tabs{
  background:linear-gradient(145deg,var(--PALE_BLUE_GRAY),var(--SOFT_PAPER_BASE)) !important;
  border-color:rgba(52,82,117,.42) !important;
}

#sosV21Lab .v21-mode-tabs button{
  background:var(--PALE_BLUE_GRAY) !important;
  color:var(--SOVEREIGN_TEAL) !important;
  border-color:rgba(13,115,119,.42) !important;
}

#sosV21Lab .v21-mode-tabs button.active{
  background:linear-gradient(90deg,var(--SOVEREIGN_IRIS),var(--SOVEREIGN_TEAL)) !important;
  color:var(--WHITE) !important;
  border-color:rgba(207,157,42,.60) !important;
}

@media(max-width:1120px){
  .v24-top-doctrine{
    padding:0 10px;
  }
}


/* v25 hierarchy custody doctrine */
.v25-hero-subtitle{
  max-width:820px;
  margin:14px 0 0;
  color:rgba(244,246,249,.88);
  font-size:clamp(1rem,1.7vw,1.22rem);
  line-height:1.55;
}

.v25-bounded-card{
  border-color:rgba(207,157,42,.42) !important;
  background:
    radial-gradient(circle at 28% 18%, rgba(207,157,42,.16), transparent 28%),
    linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY)) !important;
  color:var(--SOFT_PAPER_BASE) !important;
}

.v25-bounded-card h2{
  color:var(--WHITE) !important;
}

.v25-bounded-card p{
  color:rgba(244,246,249,.78) !important;
}

.v25-top-doctrine{
  max-width:1480px;
  margin:22px auto 18px;
  padding:0 16px;
  display:grid;
  gap:18px;
}

.v25-section-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(207,157,42,.12);
  border:1px solid rgba(207,157,42,.35);
  color:var(--SOVEREIGN_GOLD);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.v25-top-doctrine .sos-info-card,
.v25-top-doctrine .sos-flow-step{
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY)) !important;
  color:var(--DEEP_INK) !important;
  border-color:rgba(52,82,117,.38) !important;
}

.v25-top-doctrine .sos-section-title,
.v25-top-doctrine h2,
.v25-top-doctrine h3,
.v25-top-doctrine strong{
  color:var(--DEEP_INK) !important;
}

.v25-top-doctrine p,
.v25-top-doctrine span,
.v25-top-doctrine li{
  color:#526173 !important;
}

.v25-how-sos .sos-flow-step.nicole-step{
  border-color:rgba(114,68,196,.45) !important;
  box-shadow:0 16px 34px rgba(114,68,196,.13);
}

.v25-how-sos .sos-flow-step.nicole-step::before{
  color:var(--SOVEREIGN_IRIS);
}

.v25-custody-doctrine{
  max-width:1480px;
  margin:24px auto;
  padding:0 16px;
}

.v25-custody-doctrine > .lakana-shell{
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY));
  border:1px solid rgba(52,82,117,.35);
  border-radius:28px;
  padding:clamp(22px,3vw,34px);
  box-shadow:0 22px 60px rgba(10,22,37,.13);
}

.v25-custody-doctrine .sos-section-title{
  color:var(--DEEP_INK) !important;
}

.v25-custody-doctrine .sos-section-lead{
  color:#526173 !important;
}

.v25-custody-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}

.v25-custody-card{
  padding:18px;
  border-radius:22px;
  border:1px solid rgba(52,82,117,.28);
  background:rgba(255,255,255,.72);
  color:var(--DEEP_INK);
}

.v25-custody-card h3{
  color:var(--DEEP_INK);
  margin:6px 0 10px;
  font-size:1.02rem;
}

.v25-custody-card p,
.v25-custody-card li{
  color:#526173;
  font-size:.9rem;
  line-height:1.55;
}

.v25-custody-card ul{
  padding-left:18px;
  margin:12px 0 0;
}

.v25-card-kicker{
  color:var(--SOVEREIGN_TEAL);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.v25-dark-card{
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY)) !important;
  border-color:rgba(207,157,42,.38) !important;
}

.v25-dark-card h3,
.v25-dark-card .v25-card-kicker{
  color:var(--WHITE) !important;
}

.v25-dark-card p,
.v25-dark-card li{
  color:rgba(244,246,249,.78) !important;
}

.v25-iris-card{
  background:
    radial-gradient(circle at 85% 15%, rgba(114,68,196,.20), transparent 32%),
    linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY)) !important;
  border-color:rgba(114,68,196,.40) !important;
}

.v25-iris-card .v25-card-kicker{
  color:var(--SOVEREIGN_IRIS) !important;
}

.v25-release-board{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}

.v25-release-board div{
  padding:16px;
  border-radius:20px;
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY));
  border:1px solid rgba(207,157,42,.30);
}

.v25-release-board h3{
  color:var(--WHITE);
  margin:0 0 8px;
}

.v25-release-board p{
  color:rgba(244,246,249,.76);
  margin:0;
  line-height:1.55;
}

.v25-extended-protocol{
  max-width:1480px;
  margin:28px auto 18px;
  padding:0 16px;
}

.v25-extended-protocol > .lakana-shell{
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY));
  border:1px solid rgba(114,68,196,.36);
  border-radius:28px;
  padding:clamp(22px,3vw,34px);
}

.v25-extended-protocol .sos-section-title{
  color:var(--WHITE) !important;
}

.v25-extended-protocol .sos-section-lead{
  color:rgba(244,246,249,.76) !important;
}

.v25-extended-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}

.v25-extended-grid article{
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY));
  border:1px solid rgba(52,82,117,.34);
  border-radius:20px;
  padding:16px;
  color:var(--DEEP_INK);
}

.v25-extended-grid span{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(114,68,196,.10);
  color:var(--SOVEREIGN_IRIS);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.08em;
}

.v25-extended-grid h3{
  color:var(--DEEP_INK);
  margin:10px 0 8px;
}

.v25-extended-grid p{
  color:#526173;
  margin:0;
  line-height:1.55;
}

@media(max-width:1120px){
  .v25-custody-grid,
  .v25-release-board,
  .v25-extended-grid{
    grid-template-columns:1fr;
  }

  .v25-top-doctrine,
  .v25-custody-doctrine,
  .v25-extended-protocol{
    padding:0 10px;
  }
}






/* v27 custody board contrast replacement */
.v27-custody-board{
  margin:18px 0 22px;
  border-radius:24px;
  overflow:hidden;
  border:1px solid rgba(52,82,117,.42);
  box-shadow:0 24px 56px rgba(10,22,37,.16);
}

.v27-board-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding:18px;
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY));
  border-bottom:1px solid rgba(207,157,42,.24);
}

.v27-board-head h3{
  margin:6px 0 8px;
  color:var(--WHITE);
  font-size:1.22rem;
}

.v27-board-head p{
  margin:0;
  max-width:900px;
  color:rgba(244,246,249,.82);
  line-height:1.55;
}

.v27-reset{
  border:1px solid rgba(207,157,42,.55);
  border-radius:999px;
  background:rgba(207,157,42,.16);
  color:var(--SOVEREIGN_GOLD);
  padding:10px 14px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}

.v27-board-grid{
  display:grid;
  grid-template-columns:1.08fr 1fr 1fr .9fr;
  gap:12px;
  padding:14px;
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY));
}

.v27-board-card{
  min-height:250px;
  padding:16px;
  border-radius:20px;
  border:1px solid rgba(52,82,117,.32);
  background:var(--WHITE);
  color:var(--DEEP_INK);
}

.v27-board-card h4{
  color:var(--DEEP_INK);
  margin:8px 0 9px;
  font-size:1rem;
}

.v27-board-card p,
.v27-board-card li{
  color:var(--TECHNICAL_SLATE);
  line-height:1.5;
  font-size:.88rem;
}

.v27-board-card ul{
  margin:8px 0 0;
  padding-left:18px;
}

.v27-card-label{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(13,115,119,.10);
  color:var(--SOVEREIGN_TEAL);
  border:1px solid rgba(13,115,119,.26);
  font-size:.68rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.09em;
}

.v27-device-state{
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY));
  border-color:rgba(207,157,42,.38);
}

.v27-device-state h4,
.v27-device-state .v27-card-label{
  color:var(--WHITE);
}

.v27-device-state .v27-card-label{
  background:rgba(207,157,42,.16);
  border-color:rgba(207,157,42,.36);
}

.v27-device-state p{
  color:rgba(244,246,249,.82);
}

.v27-state-pills{
  display:grid;
  gap:8px;
  margin-top:14px;
}

.v27-state-pills span{
  border-radius:999px;
  padding:8px 10px;
  background:rgba(244,246,249,.08);
  border:1px solid rgba(232,237,242,.16);
  color:var(--PALE_BLUE_GRAY);
  font-size:.76rem;
  font-weight:800;
}

.v27-node-row{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:7px;
  margin:14px 0;
}

.v27-node-row.shards{
  grid-template-columns:repeat(7,1fr);
}

.v27-node{
  min-height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:var(--PALE_BLUE_GRAY);
  border:1px solid rgba(52,82,117,.32);
  color:var(--DEEP_INK);
  font-weight:900;
}

.v27-node.human.active{
  background:linear-gradient(145deg,var(--SOVEREIGN_GOLD),#f2d276);
  color:#0A1625;
  border-color:rgba(207,157,42,.65);
}

.v27-node.shard{
  border-color:rgba(114,68,196,.34);
}

.v27-node.shard.active{
  background:linear-gradient(145deg,var(--SOVEREIGN_IRIS),var(--SOVEREIGN_TEAL));
  color:var(--WHITE);
  border-color:rgba(114,68,196,.65);
}

.v27-threshold{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
}

.v27-threshold b{
  display:inline-flex;
  min-width:48px;
  justify-content:center;
  padding:7px 9px;
  border-radius:999px;
  background:rgba(207,157,42,.16);
  border:1px solid rgba(207,157,42,.34);
  color:#6f5011;
}

.v27-threshold.iris b{
  background:rgba(114,68,196,.14);
  border-color:rgba(114,68,196,.36);
  color:var(--SOVEREIGN_IRIS);
}

.v27-threshold span{
  color:var(--TECHNICAL_SLATE);
  font-size:.74rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.v27-denied-title{
  margin-top:16px !important;
}

.v27-mobile-ladder{
  display:none;
  background:linear-gradient(145deg,var(--SOFT_PAPER_BASE),var(--PALE_BLUE_GRAY));
  padding:12px;
  gap:8px;
}

.v27-mobile-ladder div{
  display:grid;
  gap:4px;
  padding:12px;
  border-radius:15px;
  background:var(--WHITE);
  border:1px solid rgba(52,82,117,.28);
}

.v27-mobile-ladder b{
  color:var(--DEEP_INK);
}

.v27-mobile-ladder span{
  color:var(--TECHNICAL_SLATE);
  font-size:.86rem;
}

/* v27 strict contrast pass for pale panels and chips */
#sosV21Lab .v21-panel:not(.dark),
#sosV21Lab .v21-visual,
#sosV21Lab .v22-apex-card,
#sosV21Lab .v22-readable-grid article,
#sosV21Lab .v22-readable-head,
.v25-custody-card,
.v25-extended-grid article,
.v25-top-doctrine .sos-info-card,
.v25-top-doctrine .sos-flow-step,
.sos-info-card,
.sos-flow-step{
  color:var(--DEEP_INK) !important;
}

#sosV21Lab .v21-panel:not(.dark) h1,
#sosV21Lab .v21-panel:not(.dark) h2,
#sosV21Lab .v21-panel:not(.dark) h3,
#sosV21Lab .v21-panel:not(.dark) h4,
#sosV21Lab .v21-visual h3,
#sosV21Lab .v22-apex-card h4,
#sosV21Lab .v22-readable-grid h4,
.v25-custody-card h3,
.v25-extended-grid h3,
.v25-top-doctrine h3,
.sos-info-card h3,
.sos-flow-step strong{
  color:var(--DEEP_INK) !important;
}

#sosV21Lab .v21-panel:not(.dark) p,
#sosV21Lab .v21-panel:not(.dark) span,
#sosV21Lab .v21-panel:not(.dark) li,
#sosV21Lab .v21-visual p,
#sosV21Lab .v21-visual span,
#sosV21Lab .v22-apex-card p,
#sosV21Lab .v22-readable-grid p,
#sosV21Lab .v22-readable-grid li,
.v25-custody-card p,
.v25-custody-card li,
.v25-extended-grid p,
.v25-top-doctrine p,
.v25-top-doctrine span,
.sos-info-card p,
.sos-flow-step span{
  color:var(--TECHNICAL_SLATE) !important;
}

#sosV21Lab .v21-panel.dark,
#sosV21Lab #v21Right,
#sosV21Lab #v21PostA,
#sosV21Lab #v21PostB,
#sosV21Lab #v21PostC,
.v25-release-board div,
.v25-extended-protocol > .lakana-shell{
  background:linear-gradient(145deg,var(--COMPONENT_NAVY),var(--SOVEREIGN_NAVY)) !important;
  color:var(--SOFT_PAPER_BASE) !important;
}

#sosV21Lab .v21-panel.dark h1,
#sosV21Lab .v21-panel.dark h2,
#sosV21Lab .v21-panel.dark h3,
#sosV21Lab .v21-panel.dark h4,
#sosV21Lab #v21Right h3,
#sosV21Lab #v21Right h4,
.v25-release-board h3,
.v25-extended-protocol .sos-section-title{
  color:var(--WHITE) !important;
}

#sosV21Lab .v21-panel.dark p,
#sosV21Lab .v21-panel.dark span,
#sosV21Lab .v21-panel.dark li,
#sosV21Lab #v21Right p,
#sosV21Lab #v21Right span,
#sosV21Lab #v21Right li,
.v25-release-board p,
.v25-extended-protocol .sos-section-lead{
  color:rgba(244,246,249,.82) !important;
}

#sosV21Lab .v21-kicker,
.v25-section-label,
.v27-card-label{
  text-shadow:none !important;
}

@media(max-width:1100px){
  .v27-board-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:760px){
  .v27-board-head{
    display:block;
  }

  .v27-reset{
    margin-top:12px;
  }

  .v27-board-grid{
    display:none;
  }

  .v27-mobile-ladder{
    display:grid;
  }
}


/* v29b agreement palette refine
   Keep the light agreement card background.
   Fix text readability and align to LAKANA proprietary colors. */

:root{
  --SOVEREIGN_NAVY:#0A1625;
  --COMPONENT_NAVY:#162A45;
  --TECHNICAL_SLATE:#345275;
  --DEEP_INK:#0D1B2A;
  --SOVEREIGN_TEAL:#0D7377;
  --SOVEREIGN_GOLD:#CF9D2A;
  --SOFT_PAPER_BASE:#F4F6F9;
  --PALE_BLUE_GRAY:#E8EDF2;
  --SOVEREIGN_IRIS:#7244C4;
  --WHITE:#FFFFFF;
}

/* Keep the card light */
#sosV21Lab .v21-terms-card,
#sosV21Lab .v21-agreement-card,
#sosSafetySimulationLab .v21-terms-card,
#sosSafetySimulationLab .v21-agreement-card,
.v21-terms-card,
.v21-agreement-card{
  background:linear-gradient(180deg, #F3EFE6 0%, #ECE7DD 100%) !important;
  border:1px solid rgba(207,157,42,.48) !important;
  color:var(--DEEP_INK) !important;
  box-shadow:0 18px 44px rgba(10,22,37,.10) !important;
}

/* All text defaults dark/readable */
#sosV21Lab .v21-terms-card *,
#sosV21Lab .v21-agreement-card *,
#sosSafetySimulationLab .v21-terms-card *,
#sosSafetySimulationLab .v21-agreement-card *,
.v21-terms-card *,
.v21-agreement-card *{
  color:var(--DEEP_INK) !important;
  text-shadow:none !important;
}

/* Kicker / section label */
#sosV21Lab .v21-terms-card .v21-kicker,
#sosV21Lab .v21-agreement-card .v21-kicker,
#sosSafetySimulationLab .v21-terms-card .v21-kicker,
#sosSafetySimulationLab .v21-agreement-card .v21-kicker,
.v21-terms-card .v21-kicker,
.v21-agreement-card .v21-kicker{
  color:var(--SOVEREIGN_GOLD) !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
}

/* Main agreement statement */
#sosV21Lab .v21-terms-card h1,
#sosV21Lab .v21-terms-card h2,
#sosV21Lab .v21-terms-card h3,
#sosV21Lab .v21-terms-card h4,
#sosV21Lab .v21-agreement-card h1,
#sosV21Lab .v21-agreement-card h2,
#sosV21Lab .v21-agreement-card h3,
#sosV21Lab .v21-agreement-card h4,
#sosSafetySimulationLab .v21-terms-card h1,
#sosSafetySimulationLab .v21-terms-card h2,
#sosSafetySimulationLab .v21-terms-card h3,
#sosSafetySimulationLab .v21-terms-card h4,
#sosSafetySimulationLab .v21-agreement-card h1,
#sosSafetySimulationLab .v21-agreement-card h2,
#sosSafetySimulationLab .v21-agreement-card h3,
#sosSafetySimulationLab .v21-agreement-card h4,
.v21-terms-card h1,
.v21-terms-card h2,
.v21-terms-card h3,
.v21-terms-card h4,
.v21-agreement-card h1,
.v21-agreement-card h2,
.v21-agreement-card h3,
.v21-agreement-card h4{
  color:var(--COMPONENT_NAVY) !important;
  font-weight:900 !important;
}

/* Paragraphs, bullets, helper copy */
#sosV21Lab .v21-terms-card p,
#sosV21Lab .v21-terms-card li,
#sosV21Lab .v21-agreement-card p,
#sosV21Lab .v21-agreement-card li,
#sosSafetySimulationLab .v21-terms-card p,
#sosSafetySimulationLab .v21-terms-card li,
#sosSafetySimulationLab .v21-agreement-card p,
#sosSafetySimulationLab .v21-agreement-card li,
.v21-terms-card p,
.v21-terms-card li,
.v21-agreement-card p,
.v21-agreement-card li{
  color:var(--TECHNICAL_SLATE) !important;
  opacity:1 !important;
}

/* Read full access agreement button */
#sosV21Lab .v21-terms-card button,
#sosV21Lab .v21-terms-card a,
#sosV21Lab .v21-agreement-card button,
#sosV21Lab .v21-agreement-card a,
#sosSafetySimulationLab .v21-terms-card button,
#sosSafetySimulationLab .v21-terms-card a,
#sosSafetySimulationLab .v21-agreement-card button,
#sosSafetySimulationLab .v21-agreement-card a,
.v21-terms-card button,
.v21-terms-card a,
.v21-agreement-card button,
.v21-agreement-card a{
  background:linear-gradient(135deg, rgba(13,115,119,.14), rgba(114,68,196,.10)) !important;
  color:var(--COMPONENT_NAVY) !important;
  border:1px solid rgba(207,157,42,.55) !important;
  font-weight:800 !important;
  text-decoration:none !important;
}

/* Stat / limit boxes stay darker so they read clearly */
#sosV21Lab .v21-terms-card [class*="limit" i],
#sosV21Lab .v21-terms-card [class*="stat" i],
#sosV21Lab .v21-terms-card [class*="metric" i],
#sosV21Lab .v21-agreement-card [class*="limit" i],
#sosV21Lab .v21-agreement-card [class*="stat" i],
#sosSafetySimulationLab .v21-terms-card [class*="limit" i],
#sosSafetySimulationLab .v21-terms-card [class*="stat" i],
#sosSafetySimulationLab .v21-agreement-card [class*="limit" i],
#sosSafetySimulationLab .v21-agreement-card [class*="stat" i],
.v21-terms-card [class*="limit" i],
.v21-terms-card [class*="stat" i],
.v21-terms-card [class*="metric" i],
.v21-agreement-card [class*="limit" i],
.v21-agreement-card [class*="stat" i]{
  background:#9EA4AA !important;
  border:1px solid rgba(22,42,69,.10) !important;
  color:var(--WHITE) !important;
}

/* Labels inside stat boxes */
#sosV21Lab .v21-terms-card [class*="limit" i] span,
#sosV21Lab .v21-terms-card [class*="limit" i] small,
#sosV21Lab .v21-terms-card [class*="stat" i] span,
#sosV21Lab .v21-terms-card [class*="stat" i] small,
#sosV21Lab .v21-agreement-card [class*="limit" i] span,
#sosV21Lab .v21-agreement-card [class*="stat" i] span,
.v21-terms-card [class*="limit" i] span,
.v21-terms-card [class*="limit" i] small,
.v21-terms-card [class*="stat" i] span,
.v21-terms-card [class*="stat" i] small,
.v21-agreement-card [class*="limit" i] span,
.v21-agreement-card [class*="stat" i] span{
  color:rgba(255,255,255,.92) !important;
}

/* Values inside stat boxes */
#sosV21Lab .v21-terms-card [class*="limit" i] b,
#sosV21Lab .v21-terms-card [class*="limit" i] strong,
#sosV21Lab .v21-terms-card [class*="stat" i] b,
#sosV21Lab .v21-terms-card [class*="stat" i] strong,
#sosV21Lab .v21-agreement-card [class*="limit" i] b,
#sosV21Lab .v21-agreement-card [class*="stat" i] b,
.v21-terms-card [class*="limit" i] b,
.v21-terms-card [class*="limit" i] strong,
.v21-terms-card [class*="stat" i] b,
.v21-terms-card [class*="stat" i] strong,
.v21-agreement-card [class*="limit" i] b,
.v21-agreement-card [class*="stat" i] b{
  color:#FFFFFF !important;
}

/* Checkbox box + check color */
#sosV21Lab .v21-terms-card input[type="checkbox"],
#sosV21Lab .v21-agreement-card input[type="checkbox"],
#sosSafetySimulationLab .v21-terms-card input[type="checkbox"],
#sosSafetySimulationLab .v21-agreement-card input[type="checkbox"],
.v21-terms-card input[type="checkbox"],
.v21-agreement-card input[type="checkbox"]{
  accent-color:var(--SOVEREIGN_TEAL) !important;
}

/* Custom checkbox/icon support */
#sosV21Lab .v21-terms-card .checkbox,
#sosV21Lab .v21-terms-card .checkmark,
#sosV21Lab .v21-terms-card [class*="checkbox" i],
#sosV21Lab .v21-terms-card [class*="check" i],
#sosV21Lab .v21-agreement-card .checkbox,
#sosV21Lab .v21-agreement-card .checkmark,
#sosSafetySimulationLab .v21-terms-card .checkbox,
#sosSafetySimulationLab .v21-terms-card .checkmark,
#sosSafetySimulationLab .v21-agreement-card .checkbox,
#sosSafetySimulationLab .v21-agreement-card .checkmark,
.v21-terms-card .checkbox,
.v21-terms-card .checkmark,
.v21-agreement-card .checkbox,
.v21-agreement-card .checkmark{
  background:linear-gradient(135deg, var(--SOVEREIGN_TEAL), var(--SOVEREIGN_IRIS)) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  color:var(--SOVEREIGN_IRIS) !important;
  fill:var(--SOVEREIGN_IRIS) !important;
}

/* SVG / icon check stroke */
#sosV21Lab .v21-terms-card svg,
#sosV21Lab .v21-agreement-card svg,
#sosSafetySimulationLab .v21-terms-card svg,
#sosSafetySimulationLab .v21-agreement-card svg,
.v21-terms-card svg,
.v21-agreement-card svg{
  color:var(--SOVEREIGN_IRIS) !important;
  fill:var(--SOVEREIGN_IRIS) !important;
  stroke:var(--SOVEREIGN_IRIS) !important;
}



/* v30 exact run access agreement marker palette fix
   This targets the actual rendered agreement card after JS marks it. */

.v30-run-access-agreement-card{
  background:linear-gradient(180deg,#F3EFE6 0%,#ECE7DD 100%) !important;
  color:#0D1B2A !important;
  border:1px solid rgba(207,157,42,.58) !important;
  box-shadow:0 22px 52px rgba(10,22,37,.14) !important;
}

.v30-run-access-agreement-card *{
  color:#0D1B2A !important;
  text-shadow:none !important;
  opacity:1 !important;
}

.v30-run-access-kicker{
  color:#CF9D2A !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
}

.v30-run-access-title,
.v30-run-access-title *{
  color:#162A45 !important;
  font-weight:900 !important;
}

.v30-run-access-body,
.v30-run-access-body *,
.v30-run-access-agreement-card p,
.v30-run-access-agreement-card li{
  color:#345275 !important;
}

.v30-run-access-button,
.v30-run-access-button *,
.v30-run-access-agreement-card button,
.v30-run-access-agreement-card a{
  background:linear-gradient(135deg,rgba(13,115,119,.16),rgba(114,68,196,.10)) !important;
  color:#162A45 !important;
  border:1px solid rgba(207,157,42,.62) !important;
  font-weight:900 !important;
  text-decoration:none !important;
}

.v30-run-access-limit{
  background:#9EA4AA !important;
  color:#FFFFFF !important;
  border:1px solid rgba(22,42,69,.12) !important;
}

.v30-run-access-limit *,
.v30-run-access-limit span,
.v30-run-access-limit small{
  color:#F4F6F9 !important;
}

.v30-run-access-limit b,
.v30-run-access-limit strong{
  color:#FFFFFF !important;
}

.v30-run-access-check{
  accent-color:#0D7377 !important;
  background:linear-gradient(135deg,#0D7377,#7244C4) !important;
  color:#7244C4 !important;
  fill:#7244C4 !important;
  stroke:#7244C4 !important;
  border-color:rgba(114,68,196,.55) !important;
}

/* Last-resort child icon rule for SVG/polyline checkmarks */
.v30-run-access-check *,
.v30-run-access-agreement-card svg *,
.v30-run-access-agreement-card [class*="check" i] *{
  fill:#7244C4 !important;
  stroke:#7244C4 !important;
  color:#7244C4 !important;
}

/* Undo earlier dark-card override if it caught this exact card */
.v30-run-access-agreement-card.v21-terms-card,
.v30-run-access-agreement-card.v22-terms-card,
.v30-run-access-agreement-card[class*="term" i],
.v30-run-access-agreement-card[class*="agreement" i]{
  background:linear-gradient(180deg,#F3EFE6 0%,#ECE7DD 100%) !important;
  color:#0D1B2A !important;
}



/* v33 exact terms and doctrine contrast fix
   Source-audited selectors:
   - Run Access Agreement card is .v21-terms-card
   - broad v28 rule #sosV21Lab [class*="term" i] * was forcing white text
   - What SOS section headings sit on dark page background and must be light
*/

/* --- RUN ACCESS AGREEMENT: keep light card, force dark readable text --- */
#sosV21Lab .v21-terms-card,
#sosSafetySimulationLab .v21-terms-card,
.v21-terms-card{
  background:linear-gradient(180deg,#F3EFE6 0%,#ECE7DD 100%) !important;
  color:#0D1B2A !important;
  border:1px solid rgba(207,157,42,.58) !important;
  box-shadow:0 22px 52px rgba(10,22,37,.14) !important;
}

/* This is the important override: same/higher specificity than the bad broad v28 selector. */
#sosV21Lab .v21-terms-card *,
#sosSafetySimulationLab .v21-terms-card *,
.v21-terms-card *{
  color:#0D1B2A !important;
  text-shadow:none !important;
  opacity:1 !important;
}

#sosV21Lab .v21-terms-card .v21-kicker,
#sosSafetySimulationLab .v21-terms-card .v21-kicker,
.v21-terms-card .v21-kicker{
  color:#CF9D2A !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
}

/* Main agreement sentence */
#sosV21Lab .v21-terms-card h1,
#sosV21Lab .v21-terms-card h2,
#sosV21Lab .v21-terms-card h3,
#sosV21Lab .v21-terms-card h4,
#sosSafetySimulationLab .v21-terms-card h1,
#sosSafetySimulationLab .v21-terms-card h2,
#sosSafetySimulationLab .v21-terms-card h3,
#sosSafetySimulationLab .v21-terms-card h4,
.v21-terms-card h1,
.v21-terms-card h2,
.v21-terms-card h3,
.v21-terms-card h4{
  color:#162A45 !important;
  font-weight:900 !important;
}

/* Body copy and bullet copy */
#sosV21Lab .v21-terms-card p,
#sosV21Lab .v21-terms-card li,
#sosV21Lab .v21-terms-card span,
#sosSafetySimulationLab .v21-terms-card p,
#sosSafetySimulationLab .v21-terms-card li,
#sosSafetySimulationLab .v21-terms-card span,
.v21-terms-card p,
.v21-terms-card li,
.v21-terms-card span{
  color:#345275 !important;
}

/* Read full access agreement button */
#sosV21Lab .v21-terms-card .v22-terms-link,
#sosV21Lab .v21-terms-card button,
#sosV21Lab .v21-terms-card a,
#sosSafetySimulationLab .v21-terms-card .v22-terms-link,
#sosSafetySimulationLab .v21-terms-card button,
#sosSafetySimulationLab .v21-terms-card a,
.v21-terms-card .v22-terms-link,
.v21-terms-card button,
.v21-terms-card a{
  background:linear-gradient(135deg,rgba(13,115,119,.16),rgba(114,68,196,.12)) !important;
  color:#162A45 !important;
  border:1px solid rgba(207,157,42,.62) !important;
  font-weight:900 !important;
  text-decoration:none !important;
}

/* Limit/stat blocks inside agreement card */
#sosV21Lab .v21-terms-card [class*="limit" i],
#sosV21Lab .v21-terms-card [class*="stat" i],
#sosV21Lab .v21-terms-card [class*="metric" i],
#sosSafetySimulationLab .v21-terms-card [class*="limit" i],
#sosSafetySimulationLab .v21-terms-card [class*="stat" i],
#sosSafetySimulationLab .v21-terms-card [class*="metric" i],
.v21-terms-card [class*="limit" i],
.v21-terms-card [class*="stat" i],
.v21-terms-card [class*="metric" i]{
  background:#9EA4AA !important;
  color:#FFFFFF !important;
  border:1px solid rgba(22,42,69,.12) !important;
}

/* Preserve readable stat labels and numbers */
#sosV21Lab .v21-terms-card [class*="limit" i] *,
#sosV21Lab .v21-terms-card [class*="stat" i] *,
#sosV21Lab .v21-terms-card [class*="metric" i] *,
#sosSafetySimulationLab .v21-terms-card [class*="limit" i] *,
#sosSafetySimulationLab .v21-terms-card [class*="stat" i] *,
#sosSafetySimulationLab .v21-terms-card [class*="metric" i] *,
.v21-terms-card [class*="limit" i] *,
.v21-terms-card [class*="stat" i] *,
.v21-terms-card [class*="metric" i] *{
  color:#FFFFFF !important;
}

/* Checkbox: teal box / iris check support */
#sosV21Lab .v21-terms-card input[type="checkbox"],
#sosSafetySimulationLab .v21-terms-card input[type="checkbox"],
.v21-terms-card input[type="checkbox"]{
  accent-color:#0D7377 !important;
}

#sosV21Lab .v21-terms-card [class*="check" i],
#sosV21Lab .v21-terms-card [class*="checkbox" i],
#sosV21Lab .v21-terms-card svg,
#sosV21Lab .v21-terms-card path,
#sosV21Lab .v21-terms-card polyline,
#sosSafetySimulationLab .v21-terms-card [class*="check" i],
#sosSafetySimulationLab .v21-terms-card [class*="checkbox" i],
#sosSafetySimulationLab .v21-terms-card svg,
#sosSafetySimulationLab .v21-terms-card path,
#sosSafetySimulationLab .v21-terms-card polyline,
.v21-terms-card [class*="check" i],
.v21-terms-card [class*="checkbox" i],
.v21-terms-card svg,
.v21-terms-card path,
.v21-terms-card polyline{
  color:#7244C4 !important;
  fill:#7244C4 !important;
  stroke:#7244C4 !important;
}

/* --- WHAT SOS IS / HOW SOS ACTS: headings live on dark page background --- */
.v25-top-doctrine .v25-what-sos .sos-section-title,
.v25-top-doctrine .v25-how-sos .sos-section-title,
.v25-what-sos .sos-section-title,
.v25-how-sos .sos-section-title{
  color:#FFFFFF !important;
}

.v25-top-doctrine .v25-what-sos .sos-section-lead,
.v25-top-doctrine .v25-how-sos .sos-section-lead,
.v25-what-sos .sos-section-lead,
.v25-how-sos .sos-section-lead{
  color:#E8EDF2 !important;
}

/* Section labels stay gold on dark background */
.v25-top-doctrine .v25-what-sos .v25-section-label,
.v25-top-doctrine .v25-how-sos .v25-section-label,
.v25-what-sos .v25-section-label,
.v25-how-sos .v25-section-label{
  color:#CF9D2A !important;
  background:rgba(207,157,42,.12) !important;
  border-color:rgba(207,157,42,.42) !important;
}

/* Cards inside those sections stay light with dark text */
.v25-top-doctrine .v25-what-sos .sos-info-card,
.v25-top-doctrine .v25-how-sos .sos-flow-step,
.v25-what-sos .sos-info-card,
.v25-how-sos .sos-flow-step{
  background:linear-gradient(145deg,#F4F6F9,#E8EDF2) !important;
  color:#0D1B2A !important;
}

.v25-top-doctrine .v25-what-sos .sos-info-card h3,
.v25-top-doctrine .v25-how-sos .sos-flow-step strong,
.v25-what-sos .sos-info-card h3,
.v25-how-sos .sos-flow-step strong{
  color:#0D1B2A !important;
}

.v25-top-doctrine .v25-what-sos .sos-info-card p,
.v25-top-doctrine .v25-how-sos .sos-flow-step span,
.v25-what-sos .sos-info-card p,
.v25-how-sos .sos-flow-step span{
  color:#345275 !important;
}


/* v34 source-tagged terms card and doctrine heading fix
   This is source-tagged onto the actual JS component:
   .v21-terms-card.lakana-terms-force
*/

/* Actual Run Access Agreement card */
html body #sosV21Lab .v21-terms-card.lakana-terms-force,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force,
html body .v21-terms-card.lakana-terms-force{
  background:linear-gradient(180deg,#F3EFE6 0%,#ECE7DD 100%) !important;
  color:#0D1B2A !important;
  border:1px solid rgba(207,157,42,.58) !important;
  box-shadow:0 22px 52px rgba(10,22,37,.14) !important;
}

/* Override the broad bad rule: #sosV21Lab [class*="term" i] * */
html body #sosV21Lab .v21-terms-card.lakana-terms-force *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force *,
html body .v21-terms-card.lakana-terms-force *{
  color:#0D1B2A !important;
  text-shadow:none !important;
  opacity:1 !important;
}

/* Kicker */
html body #sosV21Lab .v21-terms-card.lakana-terms-force .v21-kicker,
html body #sosV21Lab .v21-terms-card.lakana-terms-force .lakana-terms-kicker,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force .v21-kicker,
html body .v21-terms-card.lakana-terms-force .v21-kicker,
html body .v21-terms-card.lakana-terms-force .lakana-terms-kicker{
  color:#CF9D2A !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
}

/* Main sentence */
html body #sosV21Lab .v21-terms-card.lakana-terms-force h1,
html body #sosV21Lab .v21-terms-card.lakana-terms-force h2,
html body #sosV21Lab .v21-terms-card.lakana-terms-force h3,
html body #sosV21Lab .v21-terms-card.lakana-terms-force h4,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h1,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h2,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h3,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h4,
html body .v21-terms-card.lakana-terms-force h1,
html body .v21-terms-card.lakana-terms-force h2,
html body .v21-terms-card.lakana-terms-force h3,
html body .v21-terms-card.lakana-terms-force h4{
  color:#162A45 !important;
  font-weight:900 !important;
}

/* Body text */
html body #sosV21Lab .v21-terms-card.lakana-terms-force p,
html body #sosV21Lab .v21-terms-card.lakana-terms-force li,
html body #sosV21Lab .v21-terms-card.lakana-terms-force span,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force p,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force li,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force span,
html body .v21-terms-card.lakana-terms-force p,
html body .v21-terms-card.lakana-terms-force li,
html body .v21-terms-card.lakana-terms-force span{
  color:#345275 !important;
}

/* Button */
html body #sosV21Lab .v21-terms-card.lakana-terms-force .v22-terms-link,
html body #sosV21Lab .v21-terms-card.lakana-terms-force .lakana-terms-button,
html body #sosV21Lab .v21-terms-card.lakana-terms-force button,
html body #sosV21Lab .v21-terms-card.lakana-terms-force a,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force .v22-terms-link,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force button,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force a,
html body .v21-terms-card.lakana-terms-force .v22-terms-link,
html body .v21-terms-card.lakana-terms-force .lakana-terms-button,
html body .v21-terms-card.lakana-terms-force button,
html body .v21-terms-card.lakana-terms-force a{
  background:linear-gradient(135deg,rgba(13,115,119,.16),rgba(114,68,196,.12)) !important;
  color:#162A45 !important;
  border:1px solid rgba(207,157,42,.62) !important;
  font-weight:900 !important;
  text-decoration:none !important;
}

/* Limit boxes */
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="limit" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="stat" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="metric" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="limit" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="stat" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="metric" i],
html body .v21-terms-card.lakana-terms-force [class*="limit" i],
html body .v21-terms-card.lakana-terms-force [class*="stat" i],
html body .v21-terms-card.lakana-terms-force [class*="metric" i]{
  background:#9EA4AA !important;
  color:#FFFFFF !important;
  border:1px solid rgba(22,42,69,.12) !important;
}

/* Limit box children */
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="limit" i] *,
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="stat" i] *,
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="metric" i] *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="limit" i] *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="stat" i] *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="metric" i] *,
html body .v21-terms-card.lakana-terms-force [class*="limit" i] *,
html body .v21-terms-card.lakana-terms-force [class*="stat" i] *,
html body .v21-terms-card.lakana-terms-force [class*="metric" i] *{
  color:#FFFFFF !important;
}

/* Checkbox / check icon */
html body #sosV21Lab .v21-terms-card.lakana-terms-force input[type="checkbox"],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force input[type="checkbox"],
html body .v21-terms-card.lakana-terms-force input[type="checkbox"]{
  accent-color:#0D7377 !important;
}

html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="check" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="checkbox" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force svg,
html body #sosV21Lab .v21-terms-card.lakana-terms-force path,
html body #sosV21Lab .v21-terms-card.lakana-terms-force polyline,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="check" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="checkbox" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force svg,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force path,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force polyline,
html body .v21-terms-card.lakana-terms-force [class*="check" i],
html body .v21-terms-card.lakana-terms-force [class*="checkbox" i],
html body .v21-terms-card.lakana-terms-force svg,
html body .v21-terms-card.lakana-terms-force path,
html body .v21-terms-card.lakana-terms-force polyline{
  color:#7244C4 !important;
  fill:#7244C4 !important;
  stroke:#7244C4 !important;
}

/* What SOS is / How SOS acts headings on dark background */
html body .v25-top-doctrine .v25-what-sos > .lakana-shell > .sos-section-title,
html body .v25-top-doctrine .v25-how-sos > .lakana-shell > .sos-section-title,
html body .v25-what-sos > .lakana-shell > .sos-section-title,
html body .v25-how-sos > .lakana-shell > .sos-section-title{
  color:#FFFFFF !important;
}

html body .v25-top-doctrine .v25-what-sos > .lakana-shell > .sos-section-lead,
html body .v25-top-doctrine .v25-how-sos > .lakana-shell > .sos-section-lead,
html body .v25-what-sos > .lakana-shell > .sos-section-lead,
html body .v25-how-sos > .lakana-shell > .sos-section-lead{
  color:#E8EDF2 !important;
}

html body .v25-top-doctrine .v25-what-sos > .lakana-shell > .v25-section-label,
html body .v25-top-doctrine .v25-how-sos > .lakana-shell > .v25-section-label,
html body .v25-what-sos > .lakana-shell > .v25-section-label,
html body .v25-how-sos > .lakana-shell > .v25-section-label{
  color:#CF9D2A !important;
  background:rgba(207,157,42,.12) !important;
  border-color:rgba(207,157,42,.42) !important;
}


/* v35 terms card dark sovereign override
   Only the source-tagged Run Access Agreement / terms card is changed.
   What SOS / doctrine sections are untouched.
*/

html body #sosV21Lab .v21-terms-card.lakana-terms-force,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force,
html body .v21-terms-card.lakana-terms-force{
  background:
    radial-gradient(circle at 92% 8%, rgba(114,68,196,.20), transparent 28%),
    linear-gradient(145deg,#162A45 0%,#0A1625 100%) !important;
  color:#F4F6F9 !important;
  border:1px solid rgba(207,157,42,.45) !important;
  box-shadow:0 24px 64px rgba(10,22,37,.42) !important;
}

html body #sosV21Lab .v21-terms-card.lakana-terms-force *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force *,
html body .v21-terms-card.lakana-terms-force *{
  color:#F4F6F9 !important;
  text-shadow:none !important;
  opacity:1 !important;
}

/* Kicker: gold authority label */
html body #sosV21Lab .v21-terms-card.lakana-terms-force .v21-kicker,
html body #sosV21Lab .v21-terms-card.lakana-terms-force .lakana-terms-kicker,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force .v21-kicker,
html body .v21-terms-card.lakana-terms-force .v21-kicker,
html body .v21-terms-card.lakana-terms-force .lakana-terms-kicker{
  color:#CF9D2A !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
}

/* Main agreement sentence */
html body #sosV21Lab .v21-terms-card.lakana-terms-force h1,
html body #sosV21Lab .v21-terms-card.lakana-terms-force h2,
html body #sosV21Lab .v21-terms-card.lakana-terms-force h3,
html body #sosV21Lab .v21-terms-card.lakana-terms-force h4,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h1,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h2,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h3,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force h4,
html body .v21-terms-card.lakana-terms-force h1,
html body .v21-terms-card.lakana-terms-force h2,
html body .v21-terms-card.lakana-terms-force h3,
html body .v21-terms-card.lakana-terms-force h4{
  color:#FFFFFF !important;
  font-weight:900 !important;
}

/* Body / bullet copy */
html body #sosV21Lab .v21-terms-card.lakana-terms-force p,
html body #sosV21Lab .v21-terms-card.lakana-terms-force li,
html body #sosV21Lab .v21-terms-card.lakana-terms-force span,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force p,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force li,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force span,
html body .v21-terms-card.lakana-terms-force p,
html body .v21-terms-card.lakana-terms-force li,
html body .v21-terms-card.lakana-terms-force span{
  color:#E8EDF2 !important;
}

/* Read full access agreement button */
html body #sosV21Lab .v21-terms-card.lakana-terms-force .v22-terms-link,
html body #sosV21Lab .v21-terms-card.lakana-terms-force .lakana-terms-button,
html body #sosV21Lab .v21-terms-card.lakana-terms-force button,
html body #sosV21Lab .v21-terms-card.lakana-terms-force a,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force .v22-terms-link,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force button,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force a,
html body .v21-terms-card.lakana-terms-force .v22-terms-link,
html body .v21-terms-card.lakana-terms-force .lakana-terms-button,
html body .v21-terms-card.lakana-terms-force button,
html body .v21-terms-card.lakana-terms-force a{
  background:linear-gradient(135deg,#0D7377,#7244C4) !important;
  color:#FFFFFF !important;
  border:1px solid rgba(207,157,42,.55) !important;
  font-weight:900 !important;
  text-decoration:none !important;
}

/* Limit boxes inside terms card */
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="limit" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="stat" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="metric" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="limit" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="stat" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="metric" i],
html body .v21-terms-card.lakana-terms-force [class*="limit" i],
html body .v21-terms-card.lakana-terms-force [class*="stat" i],
html body .v21-terms-card.lakana-terms-force [class*="metric" i]{
  background:rgba(232,237,242,.10) !important;
  color:#FFFFFF !important;
  border:1px solid rgba(232,237,242,.18) !important;
}

/* Limit box text */
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="limit" i] *,
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="stat" i] *,
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="metric" i] *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="limit" i] *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="stat" i] *,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="metric" i] *,
html body .v21-terms-card.lakana-terms-force [class*="limit" i] *,
html body .v21-terms-card.lakana-terms-force [class*="stat" i] *,
html body .v21-terms-card.lakana-terms-force [class*="metric" i] *{
  color:#FFFFFF !important;
}

/* Checkbox / check icon: teal box and NICOLE iris check */
html body #sosV21Lab .v21-terms-card.lakana-terms-force input[type="checkbox"],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force input[type="checkbox"],
html body .v21-terms-card.lakana-terms-force input[type="checkbox"]{
  accent-color:#0D7377 !important;
}

html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="check" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force [class*="checkbox" i],
html body #sosV21Lab .v21-terms-card.lakana-terms-force svg,
html body #sosV21Lab .v21-terms-card.lakana-terms-force path,
html body #sosV21Lab .v21-terms-card.lakana-terms-force polyline,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="check" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force [class*="checkbox" i],
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force svg,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force path,
html body #sosSafetySimulationLab .v21-terms-card.lakana-terms-force polyline,
html body .v21-terms-card.lakana-terms-force [class*="check" i],
html body .v21-terms-card.lakana-terms-force [class*="checkbox" i],
html body .v21-terms-card.lakana-terms-force svg,
html body .v21-terms-card.lakana-terms-force path,
html body .v21-terms-card.lakana-terms-force polyline{
  color:#7244C4 !important;
  fill:#7244C4 !important;
  stroke:#7244C4 !important;
}


/* v36 mobile menu unstick override
   Mobile navigation should not stay pinned over SOS content.
   Desktop behavior is untouched.
*/
@media (max-width: 820px){
  header,
  nav,
  .site-header,
  .lakana-header,
  .lakana-nav,
  .topbar,
  .navbar,
  .mobile-header,
  .mobile-nav,
  .menu-shell,
  .menu-panel,
  .sos-header,
  .sos-nav,
  [class*="header" i],
  [class*="navbar" i],
  [class*="topbar" i],
  [class*="mobile-menu" i],
  [class*="mobile-nav" i]{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    transform:none !important;
    max-height:none !important;
  }

  /* The menu overlay/panel should not behave like a permanent fixed bar. */
  [class*="menu" i][class*="open" i],
  [class*="nav" i][class*="open" i],
  [id*="menu" i],
  [id*="nav" i]{
    position:relative !important;
    top:auto !important;
    max-height:none !important;
  }

  /* Remove leftover sticky-header spacing if any page injected it. */
  body,
  main,
  .page,
  .site-main,
  .lakana-page,
  #sosV21Lab,
  #sosSafetySimulationLab{
    scroll-padding-top:0 !important;
  }

  /* Keep mobile menu readable but let it scroll away with the page. */
  .lakana-mobile-menu,
  .mobile-menu,
  .menu-drawer,
  .nav-drawer{
    position:relative !important;
    inset:auto !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}


/* v37 force actual v21 terms card dark sovereign
   The live card is rendering as .v21-terms-card, not reliably as .lakana-terms-force.
   This targets only the actual Run Access Agreement card class.
*/

html body #sosV21Lab .v21-terms-card,
html body #sosSafetySimulationLab .v21-terms-card,
html body .v21-terms-card{
  background:
    radial-gradient(circle at 92% 8%, rgba(114,68,196,.20), transparent 28%),
    linear-gradient(145deg,#162A45 0%,#0A1625 100%) !important;
  color:#F4F6F9 !important;
  border:1px solid rgba(207,157,42,.48) !important;
  box-shadow:0 24px 64px rgba(10,22,37,.42) !important;
}

html body #sosV21Lab .v21-terms-card *,
html body #sosSafetySimulationLab .v21-terms-card *,
html body .v21-terms-card *{
  color:#F4F6F9 !important;
  text-shadow:none !important;
  opacity:1 !important;
}

html body #sosV21Lab .v21-terms-card .v21-kicker,
html body #sosSafetySimulationLab .v21-terms-card .v21-kicker,
html body .v21-terms-card .v21-kicker{
  color:#CF9D2A !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
}

html body #sosV21Lab .v21-terms-card h1,
html body #sosV21Lab .v21-terms-card h2,
html body #sosV21Lab .v21-terms-card h3,
html body #sosV21Lab .v21-terms-card h4,
html body #sosSafetySimulationLab .v21-terms-card h1,
html body #sosSafetySimulationLab .v21-terms-card h2,
html body #sosSafetySimulationLab .v21-terms-card h3,
html body #sosSafetySimulationLab .v21-terms-card h4,
html body .v21-terms-card h1,
html body .v21-terms-card h2,
html body .v21-terms-card h3,
html body .v21-terms-card h4{
  color:#FFFFFF !important;
  font-weight:900 !important;
}

html body #sosV21Lab .v21-terms-card p,
html body #sosV21Lab .v21-terms-card li,
html body #sosV21Lab .v21-terms-card span,
html body #sosSafetySimulationLab .v21-terms-card p,
html body #sosSafetySimulationLab .v21-terms-card li,
html body #sosSafetySimulationLab .v21-terms-card span,
html body .v21-terms-card p,
html body .v21-terms-card li,
html body .v21-terms-card span{
  color:#E8EDF2 !important;
}

html body #sosV21Lab .v21-terms-card .v22-terms-link,
html body #sosV21Lab .v21-terms-card button,
html body #sosV21Lab .v21-terms-card a,
html body #sosSafetySimulationLab .v21-terms-card .v22-terms-link,
html body #sosSafetySimulationLab .v21-terms-card button,
html body #sosSafetySimulationLab .v21-terms-card a,
html body .v21-terms-card .v22-terms-link,
html body .v21-terms-card button,
html body .v21-terms-card a{
  background:linear-gradient(135deg,#0D7377,#7244C4) !important;
  color:#FFFFFF !important;
  border:1px solid rgba(207,157,42,.55) !important;
  font-weight:900 !important;
  text-decoration:none !important;
}

html body #sosV21Lab .v21-terms-card [class*="limit" i],
html body #sosV21Lab .v21-terms-card [class*="stat" i],
html body #sosV21Lab .v21-terms-card [class*="metric" i],
html body #sosSafetySimulationLab .v21-terms-card [class*="limit" i],
html body #sosSafetySimulationLab .v21-terms-card [class*="stat" i],
html body #sosSafetySimulationLab .v21-terms-card [class*="metric" i],
html body .v21-terms-card [class*="limit" i],
html body .v21-terms-card [class*="stat" i],
html body .v21-terms-card [class*="metric" i]{
  background:rgba(232,237,242,.10) !important;
  color:#FFFFFF !important;
  border:1px solid rgba(232,237,242,.18) !important;
}

html body #sosV21Lab .v21-terms-card [class*="limit" i] *,
html body #sosV21Lab .v21-terms-card [class*="stat" i] *,
html body #sosV21Lab .v21-terms-card [class*="metric" i] *,
html body #sosSafetySimulationLab .v21-terms-card [class*="limit" i] *,
html body #sosSafetySimulationLab .v21-terms-card [class*="stat" i] *,
html body #sosSafetySimulationLab .v21-terms-card [class*="metric" i] *,
html body .v21-terms-card [class*="limit" i] *,
html body .v21-terms-card [class*="stat" i] *,
html body .v21-terms-card [class*="metric" i] *{
  color:#FFFFFF !important;
}

html body #sosV21Lab .v21-terms-card input[type="checkbox"],
html body #sosSafetySimulationLab .v21-terms-card input[type="checkbox"],
html body .v21-terms-card input[type="checkbox"]{
  accent-color:#0D7377 !important;
}

html body #sosV21Lab .v21-terms-card [class*="check" i],
html body #sosV21Lab .v21-terms-card [class*="checkbox" i],
html body #sosV21Lab .v21-terms-card svg,
html body #sosV21Lab .v21-terms-card path,
html body #sosV21Lab .v21-terms-card polyline,
html body #sosSafetySimulationLab .v21-terms-card [class*="check" i],
html body #sosSafetySimulationLab .v21-terms-card [class*="checkbox" i],
html body #sosSafetySimulationLab .v21-terms-card svg,
html body #sosSafetySimulationLab .v21-terms-card path,
html body #sosSafetySimulationLab .v21-terms-card polyline,
html body .v21-terms-card [class*="check" i],
html body .v21-terms-card [class*="checkbox" i],
html body .v21-terms-card svg,
html body .v21-terms-card path,
html body .v21-terms-card polyline{
  color:#7244C4 !important;
  fill:#7244C4 !important;
  stroke:#7244C4 !important;
}


/* v38 replacement Run Access Agreement card
   Replaces the old .v21-terms-card in the same DOM position.
   Class names intentionally avoid term/access/limit so old broad rules cannot catch it.
*/
.lakana-run-rules-card{
  width:100% !important;
  box-sizing:border-box !important;
  padding:clamp(20px,4vw,34px) !important;
  border-radius:28px !important;
  background:
    radial-gradient(circle at 92% 8%, rgba(114,68,196,.20), transparent 30%),
    linear-gradient(145deg,#162A45 0%,#0A1625 100%) !important;
  border:1px solid rgba(207,157,42,.48) !important;
  box-shadow:0 24px 64px rgba(10,22,37,.42) !important;
  color:#F4F6F9 !important;
}

.lakana-run-rules-card *{
  box-sizing:border-box !important;
  text-shadow:none !important;
  opacity:1 !important;
}

.lakana-run-rules-kicker{
  color:#CF9D2A !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
  font-size:.86rem !important;
  margin-bottom:14px !important;
}

.lakana-run-rules-agree{
  display:grid !important;
  grid-template-columns:38px 1fr !important;
  align-items:start !important;
  gap:14px !important;
  margin:0 0 22px !important;
}

.lakana-run-rules-agree strong{
  color:#FFFFFF !important;
  font-weight:900 !important;
  line-height:1.18 !important;
  font-size:clamp(1.28rem,4.2vw,2rem) !important;
}

.lakana-run-rules-checkbox{
  width:26px !important;
  height:26px !important;
  margin-top:3px !important;
  accent-color:#0D7377 !important;
}

.lakana-run-rules-copy{
  color:#E8EDF2 !important;
  line-height:1.55 !important;
  font-size:clamp(1.02rem,3.6vw,1.45rem) !important;
  margin:0 0 24px !important;
}

.lakana-run-rules-button-slot{
  margin:0 0 26px !important;
}

.lakana-run-rules-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  padding:12px 18px !important;
  background:linear-gradient(135deg,#0D7377,#7244C4) !important;
  color:#FFFFFF !important;
  border:1px solid rgba(207,157,42,.55) !important;
  font-weight:900 !important;
  text-decoration:none !important;
}

.lakana-run-rules-list{
  margin:0 0 26px !important;
  padding-left:24px !important;
}

.lakana-run-rules-list li{
  color:#E8EDF2 !important;
  line-height:1.55 !important;
  font-size:clamp(.98rem,3.2vw,1.22rem) !important;
  margin:0 0 10px !important;
}

.lakana-run-rules-quota-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
}

.lakana-run-quota-box{
  border-radius:18px !important;
  padding:14px 16px !important;
  background:rgba(232,237,242,.12) !important;
  border:1px solid rgba(232,237,242,.18) !important;
}

.lakana-run-quota-box span{
  display:block !important;
  color:rgba(244,246,249,.82) !important;
  font-size:.78rem !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  margin-bottom:6px !important;
}

.lakana-run-quota-box b{
  color:#FFFFFF !important;
  font-size:1.42rem !important;
  font-weight:900 !important;
}

@media(max-width:760px){
  .lakana-run-rules-card{
    border-radius:24px !important;
    padding:22px !important;
  }

  .lakana-run-rules-quota-grid{
    grid-template-columns:1fr 1fr !important;
  }
}


/* v41 hard terms card CSS fallback */
html body .v21-terms-card{
  background:
    radial-gradient(circle at 92% 8%, rgba(114,68,196,.20), transparent 28%),
    linear-gradient(145deg,#162A45 0%,#0A1625 100%) !important;
  color:#F4F6F9 !important;
  border:1px solid rgba(207,157,42,.48) !important;
  box-shadow:0 24px 64px rgba(10,22,37,.42) !important;
}

html body .v21-terms-card *{
  color:#F4F6F9 !important;
  text-shadow:none !important;
  opacity:1 !important;
}

html body .v21-terms-card .v21-kicker{
  color:#CF9D2A !important;
}

html body .v21-terms-card button,
html body .v21-terms-card a,
html body .v21-terms-card .v22-terms-link{
  background:linear-gradient(135deg,#0D7377,#7244C4) !important;
  color:#FFFFFF !important;
  border:1px solid rgba(207,157,42,.55) !important;
}


/* v42 real v21-access agreement card fix
   The visible Run Access Agreement card is <aside class="v21-access">.
   Previous fixes targeted the wrong .v21-terms-card class.
*/
html body #sosV21Lab aside.v21-access,
html body #sosSafetySimulationLab #sosV21Lab aside.v21-access,
html body aside.v21-access[data-v42-real-access-card="true"]{
  background:
    radial-gradient(circle at 92% 8%, rgba(114,68,196,.20), transparent 28%),
    linear-gradient(145deg,#162A45 0%,#0A1625 100%) !important;
  color:#F4F6F9 !important;
  border:1px solid rgba(207,157,42,.48) !important;
  border-left:6px solid #CF9D2A !important;
  box-shadow:0 24px 64px rgba(10,22,37,.42) !important;
}

html body #sosV21Lab aside.v21-access *,
html body #sosSafetySimulationLab #sosV21Lab aside.v21-access *,
html body aside.v21-access[data-v42-real-access-card="true"] *{
  color:#F4F6F9 !important;
  text-shadow:none !important;
  opacity:1 !important;
}

html body #sosV21Lab aside.v21-access .v21-kicker,
html body #sosSafetySimulationLab #sosV21Lab aside.v21-access .v21-kicker,
html body aside.v21-access[data-v42-real-access-card="true"] .v21-kicker{
  color:#CF9D2A !important;
}

html body #sosV21Lab aside.v21-access .v22-terms-link,
html body #sosV21Lab aside.v21-access button,
html body #sosSafetySimulationLab #sosV21Lab aside.v21-access .v22-terms-link,
html body aside.v21-access[data-v42-real-access-card="true"] .v22-terms-link{
  background:linear-gradient(135deg,#0D7377,#7244C4) !important;
  color:#FFFFFF !important;
  border:1px solid rgba(207,157,42,.55) !important;
  font-weight:900 !important;
}

html body #sosV21Lab aside.v21-access input[type="checkbox"],
html body aside.v21-access[data-v42-real-access-card="true"] input[type="checkbox"]{
  accent-color:#0D7377 !important;
}

/* PR5 Proof Theater structural authority.
   Shell width/gutters remain in lakana-sos-page-shell.css; BFB/TAB component
   internals remain in lakana-sos-v55-bfb-tab-controls.css. */
#sosSafetySimulationLab,
#sosV21Lab,
#sosV21Lab > *,
.v21-runboard > *,
.v21-mode-body > *,
.v21-post > *,
.v22-graph-console > *,
.v21-visual-grid > *{
  min-width:0;
}

#sosSafetySimulationLab{
  width:100%;
  max-width:none;
}

.v21-intro .v21-identity{
  margin:8px 0 10px;
  color:#45d7d5;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.sos-lab-workspace{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:18px;
  align-items:start;
}

.sos-lab-main{
  min-width:0;
}

.sos-lab-mission-rail{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.sos-operations-brief{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);
  gap:18px;
}

.v21-runboard{
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.72fr) minmax(220px,.86fr);
  align-items:start;
}

#v21Center,
.v21-visual,
.v21-visual.large,
.v22-readable-grid article{
  min-height:0;
}

.v21-visual.large,
.v22-graph-canvas-wrap{
  min-height:clamp(230px,24vw,350px);
}

.v21-visual.large canvas,
.v22-graph-canvas-wrap canvas{
  height:clamp(230px,24vw,350px);
  max-width:100%;
}

.v21-run-path-strip{
  max-height:none;
  overflow:visible;
}

.v21-mode-tabs{
  overflow:visible;
}

.v21-mode-tabs button,
.v21-group summary,
.v21-panel h2,
.v21-panel h3,
.v21-panel h4,
.v22-readable-report summary{
  min-width:0;
  max-width:100%;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
}

.v21-control label > :first-child{
  min-width:0;
  overflow-wrap:break-word;
}

.v21-control output{
  flex:0 0 auto;
}

#v21PostBody:empty{
  display:none;
}

.v22-readable-report{
  margin-block:12px;
}

.v22-readable-report:not([open]) > :not(summary){
  display:none;
}

#sosQuickSensitivity[hidden],
#sosArchitectureComparison[hidden],
#sosRunEvidenceRecord[hidden]{
  display:none;
}

#sosRunEvidenceRecord{
  scroll-margin-top:96px;
}

@media(min-width:1121px) and (max-width:1499px){
  .v21-runboard{
    grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);
  }
  #v21Right{
    grid-column:1 / -1;
  }
}

@media(max-width:1120px){
  .v21-runboard{
    display:grid;
    grid-template-columns:minmax(0,1fr);
  }
  .v21-mode-tabs{
    flex-wrap:wrap;
  }
  .v21-mode-tabs button{
    flex:1 1 150px;
  }
  .sos-operations-brief{
    grid-template-columns:minmax(0,1fr);
  }
  .sos-lab-mission-rail{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:640px){
  .sos-lab-mission-rail{
    grid-template-columns:minmax(0,1fr);
  }
  .v21-visual.large,
  .v22-graph-canvas-wrap{
    min-height:220px;
  }
  .v21-visual.large canvas,
  .v22-graph-canvas-wrap canvas{
    height:220px;
  }
}
