.ecei-wrapper{
    --brand-blue:#006fba;
    --brand-blue-dark:#00558f;
    --brand-orange:#fb7d0a;
    --brand-orange-light:#fbb039;
    --bg:#f3f6f8;
    --surface:#ffffff;
    --surface-2:#f7f9fb;
    --ink:#29353c;
    --muted:#5e6870;
    --muted-2:#74808a;
    --line:#dae2e7;
    --line-strong:#bdc9d1;
    --accent:#fb7d0a;
    --accent-ink:#ffffff;
    --focus:#006fba;
    --selection-bg:#eef7fc;
    --unknown-bg:#fff7ef;
    --unknown-ink:#9b4c08;
    --control-bg:#ffffff;

    --band-incomplete:#a8a8a8;
    --band-gap:#6c757d;
    --band-structural:#c84c35;
    --band-developing:#fb7d0a;
    --band-competitive:#18869b;
    --band-strong:#006fba;

    --shadow:0 2px 5px rgba(41,53,60,.06),0 16px 36px -24px rgba(41,53,60,.32);
  }
  
  }
  
  *{ box-sizing:border-box; }
  .ecei-wrapper,
.ecei-wrapper *{ margin:0; padding:0; min-width:0; }
  .ecei-wrapper{ scroll-behavior:smooth; }
  .ecei-wrapper{
    background:var(--bg);
    color:var(--ink);
    font-family:"Outfit", ui-sans-serif, system-ui, sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img,svg,canvas{ max-width:100%; }
  button,a,label{ -webkit-tap-highlight-color:transparent; }
  button,label{ touch-action:manipulation; }
  ::selection{ background:var(--accent); color:var(--accent-ink); }

  h1,h2,h3{
    font-family:"Outfit", ui-sans-serif, system-ui, sans-serif;
    font-weight:700;
    line-height:1.15;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }

  .mono{ font-family:"Outfit", ui-sans-serif, system-ui, sans-serif; font-variant-numeric:tabular-nums; }

  a{ color:var(--accent); }

  .page{
    max-width:1240px;
    margin:0 auto;
    padding-top:max(32px,env(safe-area-inset-top));
    padding-right:max(clamp(18px,4vw,48px),env(safe-area-inset-right));
    padding-bottom:max(72px,env(safe-area-inset-bottom));
    padding-left:max(clamp(18px,4vw,48px),env(safe-area-inset-left));
  }
  #assessment,#profile-results,#how-it-works{ scroll-margin-top:16px; }

  /* ---------- Masthead ---------- */
  .masthead{
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:0 0 28px;
    border:0;
    border-bottom:1px solid var(--line-strong);
    border-radius:0;
    background:transparent;
    box-shadow:none;
    margin-bottom:20px;
  }
  .brand-lockup{
    display:flex;
    align-items:center;
    gap:14px;
    padding-bottom:18px;
    margin-bottom:6px;
    border-bottom:3px solid var(--brand-orange);
    background:#fff;
    padding:16px 18px;
  }
  .brand-home{ display:inline-flex; align-items:center; }
  .brand-logo{ display:block; width:168px; height:auto; }
  .brand-divider{ width:3px; height:28px; background:var(--brand-orange); }
  .brand-program{ color:#5e6870; font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
  .eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:"Outfit", sans-serif;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
  }
  .eyebrow .badge{
    display:inline-flex;
    align-items:center;
    padding:0;
    border:0;
    color:var(--brand-orange);
    border-radius:0;
    font-weight:700;
  }
  .masthead h1{
    font-size:clamp(28px, 3.4vw, 40px);
    max-width:24ch;
    color:var(--brand-blue-dark);
  }
  .masthead .lede{
    max-width:66ch;
    color:var(--muted);
    font-size:16px;
  }
  .masthead .lede strong{ color:var(--ink); font-weight:600; }

  .masthead-controls{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    flex-wrap:wrap;
    margin-top:6px;
  }
  .progress-track{
    display:flex;
    align-items:center;
    gap:12px;
    font-family:"Outfit", sans-serif;
    font-size:13px;
    color:var(--muted);
  }
  .progress-bar{
    width:190px;
    height:4px;
    border-radius:0;
    background:var(--line);
    overflow:hidden;
  }
  .progress-fill{
    height:100%;
    background:var(--brand-blue);
    width:0%;
    transition:width .25s ease;
  }
  button.reset-btn{
    font-family:"Outfit", sans-serif;
    font-size:13px;
    font-weight:600;
    color:var(--muted-2);
    background:transparent;
    border:0;
    border-radius:0;
    padding:7px 12px;
    cursor:pointer;
  }
  button.reset-btn:hover{ color:var(--brand-blue); text-decoration:underline; }
  button.reset-btn:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }

  /* ---------- Layout ---------- */
  .layout{
    display:grid;
    grid-template-columns: minmax(0,1fr) 320px;
    gap:36px;
    align-items:start;
  }

  /* ---------- Modules (dimension groups) ---------- */
  .module{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:2px;
    padding:clamp(18px,2.6vw,28px);
    margin-bottom:22px;
    box-shadow:0 4px 18px rgba(41,53,60,.07);
  }
  .module-head{
    display:flex;
    align-items:baseline;
    gap:14px;
    margin-bottom:18px;
    padding-bottom:14px;
    border-bottom:1px solid var(--line);
  }
  .module-num{
    font-family:"Outfit", sans-serif;
    font-size:13px;
    color:var(--muted-2);
    border:1px solid var(--line-strong);
    border-radius:3px;
    padding:2px 6px;
  }
  .module-head h2{ font-size:21px; flex:1; }
  .module-score{
    font-family:"Outfit", sans-serif;
    font-size:14px;
    font-weight:600;
    padding:3px 9px;
    border-radius:2px;
    color:var(--muted);
    background:var(--surface-2);
    white-space:nowrap;
  }
  .module-score[data-band]{ color:#fff; }
  .module-score[data-band="incomplete"]{ background:var(--band-incomplete); color:#fff; }
  .module-score[data-band="gap"]{ background:var(--band-gap); color:#fff; }
  .module-score[data-band="structural"]{ background:var(--band-structural); color:#fff; }
  .module-score[data-band="developing"]{ background:var(--band-developing); color:#fff; }
  .module-score[data-band="competitive"]{ background:var(--band-competitive); color:#fff; }
  .module-score[data-band="strong"]{ background:var(--band-strong); color:#fff; }

  .question{
    padding:16px 0;
  }
  .question + .question{ border-top:1px solid var(--line); }
  .q-text{
    display:flex;
    gap:10px;
    margin:0 0 12px;
    font-size:15.5px;
  }
  .q-num{
    font-family:"Outfit", sans-serif;
    font-size:12px;
    color:var(--muted-2);
    padding-top:3px;
    flex-shrink:0;
  }
  .q-why{
    margin:12px 0 0;
    padding-left:20px;
    border-left:2px solid var(--brand-orange);
    color:var(--muted);
    font-size:13.5px;
    font-style:italic;
  }

  .segmented{
    display:flex;
    gap:8px;
  }
  .seg-option{ position:relative; }
  .seg-option input{
    position:absolute;
    inset:0;
    opacity:0;
    margin:0;
    cursor:pointer;
  }
  .seg-label{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    min-height:40px;
    padding:8px 11px;
    border:1px solid var(--line-strong);
    border-radius:2px;
    font-size:13.5px;
    font-weight:600;
    color:var(--muted);
    background:var(--surface);
    cursor:pointer;
    transition:background .12s ease, color .12s ease, border-color .12s ease;
    user-select:none;
  }
  .seg-label::before{
    content:"";
    width:13px;
    height:13px;
    flex:0 0 13px;
    border:1px solid var(--line-strong);
    border-radius:50%;
    background:var(--control-bg);
  }
  .seg-option input:checked + .seg-label{
    background:var(--selection-bg);
    border-color:var(--brand-blue);
    color:var(--brand-blue-dark);
  }
  .seg-option input:checked + .seg-label::before{
    border-color:var(--brand-blue);
    box-shadow:inset 0 0 0 3px var(--surface);
    background:var(--brand-blue);
  }
  .seg-option[data-val="Unknown"] input:checked + .seg-label{
    background:var(--unknown-bg);
    border-color:var(--brand-orange);
    color:var(--unknown-ink);
  }
  .seg-option[data-val="Unknown"] input:checked + .seg-label::before{
    border-color:var(--brand-orange);
    background:var(--brand-orange);
  }
  .seg-option input:focus-visible + .seg-label{
    outline:2px solid var(--focus);
    outline-offset:2px;
  }
  .seg-option:hover .seg-label{ border-color:var(--muted-2); }

  /* ---------- Profile rail ---------- */
  .profile-rail{
    position:sticky;
    top:24px;
    display:flex;
    flex-direction:column;
    gap:16px;
    max-height:calc(100vh - 48px);
    overflow-y:auto;
    padding-bottom:8px;
  }
  .rail-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:2px;
    padding:20px;
    box-shadow:0 4px 18px rgba(41,53,60,.07);
  }
  .rail-card h3{
    font-family:"Outfit", sans-serif;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted-2);
    font-weight:600;
    margin-bottom:14px;
  }
  canvas#radar{ display:block; width:100%; height:auto; }
  .radar-note{
    font-size:12px;
    color:var(--muted-2);
    text-align:center;
    margin-top:6px;
  }

  .overall-score-row{
    display:flex;
    align-items:baseline;
    gap:10px;
    margin-bottom:6px;
  }
  .overall-score-num{
    font-family:"Outfit", sans-serif;
    font-size:44px;
    font-weight:700;
    color:var(--brand-blue);
    line-height:1;
  }
  .overall-score-max{ color:var(--muted-2); font-size:15px; }
  .overall-band-chip{
    display:inline-block;
    font-family:"Outfit", sans-serif;
    font-size:11.5px;
    font-weight:600;
    letter-spacing:.03em;
    padding:3px 9px;
    border-radius:2px;
    color:#fff;
    margin-bottom:10px;
  }
  .overall-band-chip[data-band="incomplete"]{ background:var(--band-incomplete); }
  .overall-band-chip[data-band="gap"]{ background:var(--band-gap); }
  .overall-band-chip[data-band="structural"]{ background:var(--band-structural); }
  .overall-band-chip[data-band="developing"]{ background:var(--band-developing); }
  .overall-band-chip[data-band="competitive"]{ background:var(--band-competitive); }
  .overall-band-chip[data-band="strong"]{ background:var(--band-strong); }
  .overall-interp{ font-size:13.5px; color:var(--muted); margin-bottom:14px; }

  .mini-dims{ display:flex; flex-direction:column; gap:9px; }
  .mini-dim{ display:flex; align-items:center; gap:8px; }
  .mini-dim-label{ flex:0 0 108px; font-size:12.5px; color:var(--muted); }
  .mini-dim-bar{ flex:1; height:6px; border-radius:3px; background:var(--line); overflow:hidden; }
  .mini-dim-fill{ height:100%; border-radius:3px; background:var(--band-incomplete); width:0%; transition:width .25s ease, background .2s ease; }
  .mini-dim-val{ flex:0 0 30px; text-align:right; font-family:"Outfit", sans-serif; font-size:12px; color:var(--muted-2); }

  .unknown-note{
    display:flex;
    justify-content:space-between;
    font-size:12.5px;
    color:var(--muted-2);
    padding-top:10px;
    margin-top:4px;
    border-top:1px solid var(--line);
  }

  /* Keep this after the base rail rule so narrow screens cannot inherit its
     viewport-height cap or nested scrollbar. */
  @media (max-width:980px){
    .layout{
      grid-template-columns:1fr;
      margin-bottom:22px;
    }
    .profile-rail{
      position:static;
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      max-height:none;
      overflow:visible;
      padding-bottom:0;
    }
  }

  /* ---------- Profile results section ---------- */
  .results-intro{ color:var(--muted); font-size:14px; max-width:70ch; margin-bottom:18px; }
  table.profile-table{
    width:100%;
    border-collapse:collapse;
    font-size:13.5px;
  }
  .table-scroll{ overflow-x:auto; }
  table.profile-table th, table.profile-table td{
    text-align:left;
    padding:10px 12px;
    border-bottom:1px solid var(--line);
    vertical-align:top;
  }
  table.profile-table th{
    font-family:"Outfit", sans-serif;
    font-size:11px;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--muted-2);
    font-weight:600;
  }
  table.profile-table td.num{ font-family:"Outfit", sans-serif; white-space:nowrap; font-variant-numeric:tabular-nums; }
  .band-dot{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:7px; }
  .band-dot[data-band="incomplete"]{ background:var(--band-incomplete); }
  .band-dot[data-band="gap"]{ background:var(--band-gap); }
  .band-dot[data-band="structural"]{ background:var(--band-structural); }
  .band-dot[data-band="developing"]{ background:var(--band-developing); }
  .band-dot[data-band="competitive"]{ background:var(--band-competitive); }
  .band-dot[data-band="strong"]{ background:var(--band-strong); }

  .overall-block{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--line);
    display:grid;
    grid-template-columns: auto 1fr;
    gap:8px 20px;
    font-size:14px;
  }
  .overall-block dt{ color:var(--muted-2); font-family:"Outfit", sans-serif; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; padding-top:2px; }
  .overall-block dd{ margin:0; }
  .important-note{
    grid-column:1 / -1;
    margin-top:8px;
    padding:12px 14px;
    background:var(--surface-2);
    border-left:3px solid var(--accent);
    border-radius:4px;
    font-size:13.5px;
    color:var(--muted);
  }
  .important-note strong{ color:var(--ink); }

  /* ---------- Reference module ---------- */
  .ref-tables{ display:flex; flex-direction:column; gap:26px; }
  .ref-tables h4{
    font-family:"Outfit", sans-serif;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--muted-2);
    margin:0 0 10px;
  }
  table.ref-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
  table.ref-table th, table.ref-table td{ text-align:left; padding:9px 12px; border-bottom:1px solid var(--line); }
  table.ref-table th{ font-size:11.5px; color:var(--muted-2); font-weight:600; }
  table.ref-table td.num{ font-family:"Outfit", sans-serif; font-variant-numeric:tabular-nums; }
  .limitation{
    margin-top:18px;
    font-size:12.5px;
    color:var(--muted-2);
    font-style:italic;
  }

  footer.colophon{
    margin-top:40px;
    padding-top:20px;
    border-top:1px solid var(--line);
    font-size:12.5px;
    color:var(--muted-2);
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:8px;
  }

  
  
  .quick-nav{
    display:flex;
    flex-wrap:wrap;
    gap:28px;
    margin-bottom:28px;
    padding-bottom:12px;
    border-bottom:1px solid var(--line);
  }
  .quick-nav a{
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:var(--muted);
    font-size:13px;
    font-weight:600;
    text-decoration:none;
  }
  .quick-nav a:hover, .quick-nav a:focus-visible{ border-color:var(--accent); color:var(--accent); }
  .action-group{ display:flex; flex-wrap:wrap; gap:8px; }
  .theme-control{
    display:inline-flex;
    align-items:stretch;
    min-height:40px;
    border:1px solid var(--line-strong);
    border-radius:2px;
    background:var(--surface);
    color:var(--muted);
  }
  .theme-control:focus-within{ outline:2px solid var(--focus); outline-offset:2px; }
  .theme-label{
    display:inline-flex;
    align-items:center;
    padding:0 10px;
    border-right:1px solid var(--line);
    color:var(--muted-2);
    font:700 10px "Outfit",sans-serif;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .theme-select{
    min-width:112px;
    border:0;
    outline:0;
    padding:8px 10px;
    background:var(--surface);
    color:var(--ink);
    font:600 13px "Outfit",sans-serif;
    cursor:pointer;
  }
  button.action-btn, a.action-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:9px 16px;
    border:1px solid var(--line-strong);
    border-radius:2px;
    background:var(--surface);
    color:var(--muted);
    font:600 13px "Outfit", sans-serif;
    text-decoration:none;
    cursor:pointer;
  }
  button.action-btn:hover, a.action-btn:hover{ border-color:var(--brand-blue); color:var(--brand-blue); }
  button.action-btn.primary{ background:var(--brand-orange); border-color:var(--brand-orange); color:#fff; }
  button.action-btn.primary:hover{ background:#d96000; border-color:#d96000; color:#fff; }
  button.action-btn:focus-visible, a.action-btn:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }
  [hidden]{ display:none !important; }
  fieldset.question{ min-width:0; margin:0; border:0; }
  fieldset.question legend{ width:100%; padding:0; }
  .progress-block{ display:flex; flex-direction:column; gap:7px; }
  .save-status{ min-height:1.2em; font:12px "Outfit", sans-serif; color:var(--muted-2); }
  .update-banner{
    position:fixed;
    left:50%;
    bottom:20px;
    z-index:50;
    transform:translateX(-50%);
    width:min(92vw, 540px);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    border:1px solid var(--line-strong);
    border-radius:2px;
    background:var(--surface);
    box-shadow:var(--shadow);
    font-size:13px;
  }
  .toast{
    position:fixed;
    right:20px;
    bottom:20px;
    z-index:60;
    max-width:min(90vw, 360px);
    padding:10px 14px;
    border-radius:2px;
    background:var(--ink);
    color:var(--surface);
    font-size:13px;
    box-shadow:var(--shadow);
  }
  .module-num{
    padding:0 0 0 9px;
    border:0;
    border-left:3px solid var(--brand-orange);
    border-radius:0;
    background:transparent;
    color:var(--brand-blue);
    font-weight:700;
  }
  .module-head h2{ color:var(--brand-blue-dark); }
  .rail-card:first-child{ border-top:3px solid var(--brand-orange); }
  .rail-card:nth-child(2){ border-top:3px solid var(--brand-blue); }
  #profile-results{ border-top:3px solid var(--brand-blue); }
  #how-it-works{ border-top:3px solid var(--brand-orange); }
  .quick-nav a:hover, .quick-nav a:focus-visible{ border-color:var(--brand-blue); color:var(--brand-blue); }

  @media (max-width:760px){
    .page{
      padding-top:max(18px,env(safe-area-inset-top));
      padding-right:max(14px,env(safe-area-inset-right));
      padding-bottom:max(48px,env(safe-area-inset-bottom));
      padding-left:max(14px,env(safe-area-inset-left));
    }
    .brand-lockup{
      align-items:flex-start;
      flex-direction:column;
      gap:10px;
      margin-inline:-14px;
      padding:14px;
    }
    .brand-logo{ width:148px; }
    .brand-divider{ width:44px; height:3px; }
    .brand-program{ font-size:11px; line-height:1.35; }
    .eyebrow{ align-items:flex-start; flex-direction:column; gap:4px; line-height:1.35; }
    .masthead{ gap:12px; padding-bottom:22px; }
    .masthead h1{ max-width:none; font-size:clamp(28px,9vw,36px); }
    .masthead .lede{ font-size:15px; }
    .masthead-controls{ align-items:stretch; flex-direction:column; gap:16px; }
    .progress-block,.progress-track{ width:100%; }
    .progress-track{ justify-content:space-between; }
    .progress-bar{ flex:1; width:auto; min-width:96px; }
    .action-group{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:10px; }
    .theme-control{ grid-column:1 / -1; min-height:46px; width:100%; }
    .theme-select{ flex:1; min-width:0; }
    button.action-btn,a.action-btn,button.reset-btn{ min-height:46px; }
    button.reset-btn{ grid-column:1 / -1; padding:9px 16px; }
    .quick-nav{
      flex-wrap:nowrap;
      gap:24px;
      margin-inline:-14px;
      margin-bottom:20px;
      padding:0 14px 10px;
      overflow-x:auto;
      overscroll-behavior-inline:contain;
      scrollbar-width:none;
      -webkit-overflow-scrolling:touch;
    }
    .quick-nav::-webkit-scrollbar{ display:none; }
    .quick-nav a{ display:inline-flex; align-items:center; min-height:44px; white-space:nowrap; }
    .layout{ gap:20px; }
    .questions{ min-width:0; }
    .module{ margin-bottom:14px; padding:18px 16px; box-shadow:0 2px 10px rgba(41,53,60,.06); }
    .module-head{
      display:grid;
      grid-template-columns:auto minmax(0,1fr);
      align-items:start;
      gap:8px 12px;
      margin-bottom:10px;
      padding-bottom:12px;
    }
    .module-head h2{ font-size:19px; overflow-wrap:anywhere; }
    .module-score{ grid-column:2; justify-self:start; margin:0; }
    .question{ padding:20px 0; }
    .q-text{ gap:8px; font-size:16px; line-height:1.45; }
    .q-num{ min-width:28px; font-size:11px; }
    .segmented{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .seg-option,.seg-label{ width:100%; }
    .seg-label{ min-height:48px; padding:10px 12px; font-size:14px; }
    .seg-option[data-val="Unknown"]{ grid-column:1 / -1; }
    .q-why{ margin-top:12px; padding:10px 12px; background:var(--surface-2); font-size:13px; }
    .profile-rail{ grid-template-columns:1fr; gap:14px; }
    .rail-card{ padding:18px 16px; }
    canvas#radar{ width:min(100%,340px); margin-inline:auto; }
    #profile-results,#how-it-works{ padding:20px 16px; }
    .table-scroll{ overflow:visible; }
    table.profile-table,table.profile-table tbody,table.profile-table tr,table.profile-table td{
      display:block;
      width:100%;
    }
    table.profile-table thead{
      position:absolute;
      width:1px;
      height:1px;
      padding:0;
      margin:-1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      white-space:nowrap;
      border:0;
    }
    table.profile-table tr{
      margin-bottom:12px;
      border:1px solid var(--line);
      background:var(--surface);
    }
    table.profile-table td{
      display:grid;
      grid-template-columns:minmax(92px,34%) minmax(0,1fr);
      gap:12px;
      padding:10px 12px;
      border-bottom:1px solid var(--line);
      overflow-wrap:anywhere;
    }
    table.profile-table td:last-child{ border-bottom:0; }
    table.profile-table td::before{ color:var(--muted-2); font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
    table.profile-table td:nth-child(1){ display:block; padding:12px; background:var(--surface-2); color:var(--brand-blue-dark); }
    table.profile-table td:nth-child(1)::before{ content:none; }
    table.profile-table td:nth-child(2)::before{ content:"Score"; }
    table.profile-table td:nth-child(3)::before{ content:"Unknown"; }
    table.profile-table td:nth-child(4)::before{ content:"Interpretation"; }
    table.profile-table td:nth-child(5)::before{ content:"Next step"; }
    table.profile-table td.num{ text-align:left; }
    .overall-block{ grid-template-columns:1fr; gap:3px; }
    .overall-block dt{ margin-top:8px; }
    .important-note{ grid-column:1; }
    .ref-tables>div{ min-width:0; }
    table.scoring-table{ font-size:13px; }
    table.scoring-table th,table.scoring-table td{ padding:9px 8px; }
    table.profile-bands-table,table.profile-bands-table tbody,table.profile-bands-table tr,table.profile-bands-table td{
      display:block;
      width:100%;
    }
    table.profile-bands-table thead{
      position:absolute;
      width:1px;
      height:1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
    }
    table.profile-bands-table tr{ margin-bottom:12px; border:1px solid var(--line); }
    table.profile-bands-table td{ padding:9px 11px; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
    table.profile-bands-table td:last-child{ border-bottom:0; }
    table.profile-bands-table td:first-child{ background:var(--surface-2); color:var(--brand-blue-dark); font-weight:700; }
    footer.colophon{ align-items:flex-start; flex-direction:column; margin-top:28px; }
    footer.colophon span{ max-width:100%; overflow-wrap:anywhere; }
    .update-banner{
      right:max(12px,env(safe-area-inset-right));
      bottom:max(12px,env(safe-area-inset-bottom));
      left:max(12px,env(safe-area-inset-left));
      width:auto;
      transform:none;
    }
    .toast{
      right:max(12px,env(safe-area-inset-right));
      bottom:max(12px,env(safe-area-inset-bottom));
      left:max(12px,env(safe-area-inset-left));
      max-width:none;
      text-align:center;
    }
  }

  @media (max-width:380px){
    .page{
      padding-right:max(10px,env(safe-area-inset-right));
      padding-left:max(10px,env(safe-area-inset-left));
    }
    .brand-lockup,.quick-nav{ margin-inline:-10px; }
    .brand-lockup{ padding-inline:10px; }
    .quick-nav{ padding-inline:10px; }
    .action-group{ grid-template-columns:1fr; }
    .theme-control{ grid-column:1; }
    button.reset-btn{ grid-column:1; }
    .module{ padding-inline:13px; }
    .mini-dim-label{ flex-basis:94px; }
  }

  @media (max-height:520px) and (orientation:landscape){
    .profile-rail{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .rail-card{ min-width:0; }
  }

  @media (pointer:coarse){
    button,a.action-btn,.quick-nav a,.seg-label{ min-height:44px; }
  }

  @media print{
    .ecei-wrapper{ }
    .ecei-wrapper{ background:#fff; color:#111; font-size:11pt; }
    .page{ max-width:none; padding:0; }
    .quick-nav, .masthead-controls, .profile-rail, #questions-root, #how-it-works,
    .colophon, .update-banner, .toast{ display:none !important; }
    .layout{ display:block; }
    #profile-results{ box-shadow:none; border:0; padding:0; }
    table.profile-table{ font-size:9.5pt; }
    .overall-block{ break-inside:avoid; }
  }

  @media (prefers-reduced-motion: reduce){
    .ecei-wrapper{ scroll-behavior:auto; }
    .progress-fill, .mini-dim-fill{ transition:none; }
  }

/* HubSpot table resets */
.ecei-wrapper table { width: 100% !important; border-collapse: collapse !important; max-width: none !important; table-layout: auto !important; border: none !important; }
.ecei-wrapper th, .ecei-wrapper td { text-align: left !important; vertical-align: top !important; padding: 10px 12px !important; border-bottom: 1px solid var(--line) !important; border-top: none !important; border-left: none !important; border-right: none !important; background: none !important; color: inherit !important; font-size: inherit !important; font-weight: inherit !important; }
.ecei-wrapper th { font-size: 11px !important; letter-spacing: .05em !important; text-transform: uppercase !important; color: var(--muted-2) !important; font-weight: 600 !important; }
.ecei-wrapper table tr:first-child th, .ecei-wrapper table tr:first-child td { border-top: none !important; }
.ecei-wrapper table tbody tr:last-child td { border-bottom: none !important; }

/* HubSpot embed overrides — remove standalone page chrome */
.ecei-wrapper { background: transparent !important; }
.ecei-wrapper .page { background: transparent !important; padding-top: 0 !important; padding-bottom: 0 !important; }

/* Prevent HubSpot word-break injection on radio labels */
.ecei-wrapper .seg-label { word-break: normal !important; overflow-wrap: normal !important; hyphens: none !important; width: 100% !important; }
.ecei-wrapper .seg-option { display: block !important; flex-shrink: 0; flex-grow: 1; }