#root :where(main,header,nav,div,section,h1,h2,h3,p,span,strong,small,button,input,select,textarea,label,article,details,summary,ul,li,form,fieldset,legend,img){all:revert}
#root {
  font-family: Arial, sans-serif;
  color: #334650;
  background: #f0f4f5;
  font-synthesis: none;
}

#root * {
  box-sizing: border-box;
}

#root {
  margin: 0;
}

#root button,
#root select,
#root textarea {
  font: inherit;
}

#root button {
  cursor: pointer;
}

/* Application OpenEye */

#root .oe-app {
  min-height: 100vh;
}

#root .oe-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
  padding: 16px 3%;
  background: white;
}

#root .oe-brand {
  font-weight: 800;
}

#root .oe-brand span {
  color: #EF8600;
  font-size: 24px;
}

#root .oe-header nav {
  display: flex;
  gap: 8px;
}

#root .oe-header nav span {
  background: #edf2f4;
  padding: 8px;
  border-radius: 20px;
  font-size: 12px;
}

#root .oe-header nav .active {
  background: #334650;
  color: white;
}

#root .oe-content {
  max-width: 1450px;
  margin: auto;
  padding: 20px;
}

#root .oe-content h1 {
  font-size: clamp(22px, 3vw, 32px);
  margin: 8px 0;
}

#root .oe-muted {
  color: #71828a;
  font-size: 13px;
  line-height: 1.5;
}

/* Sélecteur de sujet */

#root .oe-subject {
  background: #334650;
  border-radius: 12px;
  padding: 17px;
  margin: 20px 0;
  color: white;
}

#root .oe-subject label {
  display: block;
  font-weight: 800;
  margin-bottom: 10px;
}

#root .oe-subject select {
  width: 100%;
  background: #334650;
  color: white;
  font-weight: 700;
  border: 1px solid #b8cbd3;
  border-radius: 8px;
  padding: 13px;
}

/* Structure principale */

#root .oe-layout {
  display: grid;
  grid-template-columns:
    minmax(190px, 1fr)
    minmax(0, 3fr);
  gap: 14px;
  align-items: start;
}

#root .oe-panel {
  min-width: 0;
  background: white;
  border: 1px solid #dce5e8;
  border-radius: 14px;
  overflow: hidden;
}

#root .oe-panel-head {
  padding: 16px;
  border-bottom: 1px solid #e0e6e9;
}

#root .oe-panel-head h2 {
  font-size: 16px;
  margin: 9px 0;
}

#root .oe-panel-head p {
  font-size: 12px;
  color: #74838b;
  margin: 0;
}

#root .oe-eyebrow {
  color: #007b8c;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Contributions */

#root .oe-contributions {
  padding: 12px;
  display: grid;
  gap: 9px;
}

#root .oe-contribution {
  width: 100%;
  text-align: left;
  padding: 12px;
  border: 1px solid;
  border-left: 5px solid;
  border-radius: 9px;
  color: #334650;
  font-size: 13px;
  line-height: 1.5;
}

#root .oe-contribution.inactive {
  opacity: 0.4;
}

#root .oe-contribution strong,
#root .oe-contribution small {
  display: block;
}

#root .oe-contribution strong {
  font-size: 12px;
  margin-bottom: 5px;
}

#root .oe-contribution small {
  margin-top: 7px;
}

#root .oe-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 15px;
}

#root .oe-panel-footer {
  padding: 12px;
  margin: 0;
}

#root .oe-primary,
#root .oe-secondary {
  border-radius: 8px;
  padding: 11px 15px;
}

#root .oe-primary {
  background: #334650;
  border: 0;
  color: white;
  font-weight: 700;
}

#root .oe-primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

#root .oe-secondary {
  background: white;
  color: #334650;
  border: 1px solid #cbd7dc;
}

/* Cadre circulaire */

#root .oe-frame-heading {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 12px 0 0;
  color: #667780;
  font-size: 13px;
  font-weight: 700;
}

#root .oe-frame {
  width: 100%;
  max-width: 850px;
  display: block;
  margin: auto;
}

#root .oe-frame text {
  font-family: Arial, sans-serif;
  pointer-events: none;
}

/* Choix des compréhensions */

#root .oe-controls {
  padding: 16px;
  border-top: 1px solid #e0e6e9;
}

#root .oe-controls h3 {
  font-size: 14px;
  margin: 0 0 12px;
}

#root .oe-choices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

#root .oe-choice {
  background: white;
  border: 1px solid #d8e1e5;
  border-radius: 9px;
  padding: 13px;
  text-align: left;
  color: #334650;
}

#root .oe-choice.active {
  border: 2px solid #EF8600;
  background: #fff5e8;
}

#root .oe-choice:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

#root .oe-choice strong,
#root .oe-choice small {
  display: block;
}

#root .oe-choice strong {
  font-size: 13px;
}

#root .oe-choice small {
  color: #73828b;
  margin-top: 5px;
}

/* Résultats */

#root .oe-results {
  grid-column: 1 / -1;
}

#root .oe-result-list {
  padding: 16px;
}

#root .oe-result {
  border: 1px solid #dce5e8;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 13px;
}

#root .oe-result h3 {
  font-size: 16px;
  margin: 0 0 14px;
}

#root .oe-cross {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    30px
    minmax(0, 1fr);
  gap: 9px;
  align-items: stretch;
}

#root .oe-crossbox {
  border: 1px solid;
  border-left: 5px solid;
  border-radius: 9px;
  padding: 13px;
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

#root .oe-crossbox strong,
#root .oe-crossbox small {
  display: block;
}

#root .oe-crossbox small {
  margin-top: 6px;
}

#root .oe-times {
  display: grid;
  place-items: center;
  font-size: 25px;
  font-weight: 800;
  color: #EF8600;
}

#root .oe-interpretation {
  background: #f1f5f6;
  border-left: 5px solid #EF8600;
  border-radius: 9px;
  padding: 16px;
  margin-top: 13px;
}

#root .oe-interpretation strong {
  display: block;
}

#root .oe-interpretation p {
  margin: 8px 0 0;
  line-height: 1.55;
}

#root .oe-disclaimer {
  color: #71828a;
  font-size: 12px;
  margin-top: 16px;
}

/* =====================================
   CTA OPENEYE — DESIGN VALIDÉ
   ===================================== */

#root .oe-booking {
  max-width: 900px;
  margin: 30px auto 0;
  background: #fffaf1;
  border: 1px solid #edc58c;
  border-radius: 16px;
  padding: 24px;
  color: #243540;
  font-family:
    system-ui,
    -apple-system,
    "Segoe UI",
    sans-serif;
  line-height: 1.5;
}

#root .oe-booking h3 {
  font-size: clamp(19px, 2.5vw, 25px);
  margin: 0 0 9px;
  line-height: 1.3;
}

#root .oe-booking > p {
  margin: 0 0 19px;
  color: #62717a;
  font-size: 14px;
}

#root .oe-booking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

#root .oe-booking-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

#root .oe-booking-field.full {
  grid-column: 1 / -1;
}

#root .oe-booking-field label {
  font-size: 13px;
  font-weight: 650;
}

#root .oe-booking-field select,
#root .oe-booking-field textarea {
  width: 100%;
  border: 1px solid #d4d8d9;
  background: #fff;
  border-radius: 9px;
  padding: 12px;
  color: #23333c;
  font: inherit;
}

#root .oe-booking-field textarea {
  min-height: 90px;
  resize: vertical;
}

#root .oe-booking-primary {
  margin-top: 18px;
  border: 0;
  border-radius: 10px;
  background: #ef8600;
  color: #192b36;
  padding: 12px 18px;
  font-weight: 750;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
}

#root .oe-booking-primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

#root .oe-booking-note {
  display: block;
  font-size: 11px;
  color: #7b817f;
  margin-top: 9px;
}

#root .oe-booking button:focus-visible,
#root .oe-booking select:focus-visible,
#root .oe-booking textarea:focus-visible {
  outline: 3px solid #ef8600;
  outline-offset: 3px;
}

/* =====================================
   RESPONSIVE
   ===================================== */

@media (max-width: 700px) {
  #root .oe-layout {
    grid-template-columns: 1fr;
  }

  #root .oe-results {
    grid-column: 1;
  }

  #root .oe-choices {
    grid-template-columns: 1fr;
  }

  #root .oe-content {
    padding: 12px;
  }
}

@media (max-width: 640px) {
  #root .oe-booking {
    padding: 18px;
  }

  #root .oe-booking-grid {
    grid-template-columns: 1fr;
  }

  #root .oe-booking-primary {
    width: 100%;
  }
}

/* Balanced embedded experience: aligned stages, compact frame and centred headings. */
#root .oe-content { max-width:1120px; margin:auto; padding:24px 20px 36px; }
#root .oe-content > h1, #root .oe-content > .oe-muted { text-align:center; }
#root .oe-content > h1 { max-width:960px; margin:8px auto 12px; line-height:1.3; }
#root .oe-layout { grid-template-columns:minmax(240px,.76fr) minmax(0,1.64fr); gap:20px; }
#root .oe-layout > .oe-panel > .oe-panel-head { min-height:122px; display:flex; flex-direction:column; justify-content:center; text-align:center; }
#root .oe-panel-head h2 { line-height:1.4; }
#root .oe-contributions { padding:40px 16px 16px; gap:12px; }
#root .oe-contribution { min-height:94px; }
#root .oe-frame { max-width:700px; }
#root .oe-controls > h3, #root .oe-controls > .oe-muted { text-align:center; }
#root .oe-results { width:100%; max-width:960px; margin:4px auto 0; }
#root .oe-results .oe-panel-head { min-height:0; padding:22px; }
#root .oe-results .oe-panel-head h2 { max-width:720px; margin:9px auto; }
#root .oe-result h3 { text-align:center; }
@media(max-width:850px) {
 #root .oe-layout { grid-template-columns:minmax(0,1fr); }
 #root .oe-layout > .oe-panel > .oe-panel-head { min-height:0; padding:18px 16px; }
 #root .oe-contributions { padding:16px; }
 #root .oe-contribution { min-height:0; }
 #root .oe-content { padding:18px 12px 28px; }
 #root .oe-results { grid-column:1; }
}

/* Recognisable professional icons and visible interactive affordances. */
#root .oe-business-icon { display:inline-block; vertical-align:-.2em; flex-shrink:0; }
#root .oe-subject select { cursor:pointer; appearance:none; padding-right:46px; border-width:2px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
#root .oe-subject select:hover { border-color:#ef8600; }
#root .oe-contribution,#root .oe-choice { cursor:pointer; transition:box-shadow .15s,border-color .15s,transform .15s; }
#root .oe-contribution:hover,#root .oe-choice:not(:disabled):hover { transform:translateY(-2px); box-shadow:0 5px 14px #33465025; }
#root .oe-choice:not(:disabled):hover { border-color:#ef8600; }
#root .oe-contribution:focus-visible,#root .oe-choice:focus-visible,#root .oe-subject select:focus-visible { outline:3px solid #ef8600; outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { #root .oe-contribution,#root .oe-choice { transition:none; transform:none; } }

/* Clearer stage hierarchy with a discreet projection comment. */
#root .oe-panel-head h2.oe-stage-title { font-size:17px; font-weight:800; color:#007b8c; line-height:1.4; margin:8px 0 12px; }
#root .oe-panel-head .oe-stage-comment { font-size:13px; font-style:italic; line-height:1.5; color:#71828a; }

/* Shared step colour and mobile frame legibility. */
#root .oe-controls h3.oe-stage-title { color:#007b8c; font-size:17px; font-weight:800; line-height:1.4; }
#root .oe-frame-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
#root .oe-frame-scroll:focus-visible { outline:3px solid #ef8600; outline-offset:-3px; }
#root .oe-frame-mobile-hint { display:none; }
@media(max-width:600px) {
 #root .oe-frame-scroll .oe-frame { width:600px; min-width:600px; max-width:none; }
 #root .oe-frame-scroll .oe-frame-heading { min-width:600px; }
 #root .oe-frame-mobile-hint { display:block; color:#62717a; font-size:12px; line-height:1.5; margin:14px 16px 4px; }
}

/* Icon-rich domain selection without platform-dependent option rendering. */
#root .oe-subject-label { display:block; font-weight:800; margin:0 0 10px; }
#root .oe-topic-picker { position:relative; }
#root .oe-topic-picker summary { display:flex; align-items:center; gap:12px; padding:13px; border:2px solid #b8cbd3; border-radius:8px; color:white; cursor:pointer; list-style:none; font-weight:700; }
#root .oe-topic-picker summary::-webkit-details-marker { display:none; }
#root .oe-topic-arrow { margin-left:auto; font-size:22px; }
#root .oe-topic-picker[open] summary { border-color:#ef8600; }
#root .oe-topic-options { list-style:none; padding:8px; margin:6px 0 0; background:white; border:1px solid #d4dfe4; border-radius:10px; }
#root .oe-topic-options li { padding:0; margin:0; }
#root .oe-topic-options button { width:100%; display:flex; align-items:center; gap:12px; text-align:left; border:0; background:white; color:#334650; padding:12px; border-radius:7px; line-height:1.4; min-height:48px; }
#root .oe-topic-options button[aria-pressed=true],#root .oe-topic-options button:hover { background:#fff1dc; }
#root .oe-topic-picker summary:hover { border-color:#ef8600; }
#root .oe-topic-picker summary:focus-visible,#root .oe-topic-options button:focus-visible { outline:3px solid #ef8600; outline-offset:3px; }
#root .oe-frame-heading { padding-top:0; }
#root .oe-frame { margin-top:-6px; }
@media(max-width:600px) { #root .oe-topic-options { padding:5px; } #root .oe-topic-options button { padding:10px 8px; } #root .oe-frame { margin-top:0; } }

/* Continuity between projection and understanding. */
#root .oe-panel { container-type:inline-size; }
#root .oe-results { grid-column:2; max-width:none; margin:0; }
#root .oe-cross { grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr); align-items:center; justify-items:center; gap:10px; }
#root .oe-source-wrap,#root .oe-source-stack { display:flex; flex-direction:column; align-items:center; gap:8px; min-width:0; }
#root .oe-source-card { width:min(21.58cqw,151.05px); max-width:100%; height:auto; overflow:visible; font-family:Arial,sans-serif; }
#root .oe-source-central { width:min(25.79cqw,180.53px); }
#root .oe-source-context { width:min(27.76cqw,194.34px); max-width:100%; height:auto; font-family:Arial,sans-serif; }
#root .oe-derived-note { color:#62717a; font-size:11px; line-height:1.4; text-align:center; max-width:180px; }
#root .oe-interpretation { border-left:0; border-top:4px solid #ef8600; text-align:center; position:relative; margin-top:24px; }
#root .oe-interpretation::before { content:""; position:absolute; width:2px; height:22px; background:#ef8600; left:50%; top:-25px; }
#root .oe-interpretation p { max-width:560px; margin:10px auto 0; }
@media(max-width:850px) { #root .oe-results { grid-column:1; } }
@media(max-width:600px) {
 #root .oe-cross { display:flex; flex-direction:column; gap:10px; }
 #root .oe-source-card { width:129.47px; }
 #root .oe-source-central { width:154.74px; }
 #root .oe-source-context { width:166.58px; }
}

/* Booking reference: six-dimension frame beside eight domain tiles. */
#root .oe-booking { max-width:none; margin:36px auto 0; padding:24px; border:0; border-radius:22px; background:white; color:#09243c; box-shadow:0 10px 40px #3346500d; font-family:Arial,sans-serif; }
#root .oe-booking-layout { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr); gap:28px; align-items:start; }
#root .oe-booking-overview h2 { font-family:Arial,sans-serif; font-size:clamp(30px,3.2vw,42px); line-height:1.12; font-weight:800; margin:0 0 18px; letter-spacing:-.035em; color:#09243c; }
#root .oe-booking-overview h2 span,#root .oe-booking-form h3 span { color:#ef8600; }
#root .oe-booking-overview p { font-size:18px; line-height:1.5; margin:0; color:#143e59; }
#root .oe-booking-frame { display:block; width:100%; height:auto; margin:18px auto 0; font-family:Arial,sans-serif; }
#root .oe-booking-form { margin:0; padding:24px; border:1px solid #edc58c; border-radius:18px; background:#fffaf1; min-width:0; }
#root .oe-booking-form h3 { font-size:clamp(24px,2.4vw,31px); line-height:1.2; margin:0 0 10px; color:#09243c; }
#root .oe-booking-form > p { font-size:15px; line-height:1.5; color:#62778d; margin:0 0 24px; }
#root .oe-booking-domains { border:0; margin:0 0 24px; padding:0; min-width:0; }
#root .oe-booking-domains legend { font-weight:700; font-size:14px; padding:0; margin-bottom:12px; }
#root .oe-booking-domain-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
#root .oe-booking-domain { min-width:0; min-height:86px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:10px 4px; border:1px solid #dce5ec; border-radius:10px; background:white; color:#586e87; position:relative; cursor:pointer; line-height:1.3; font-size:12px; }
#root .oe-booking-domain[aria-pressed=true] { border-color:#ef8600; color:#ef8600; background:#fffdf8; }
#root .oe-booking-domain:hover { border-color:#ef8600; background:#fff7e9; }
#root .oe-booking-check { position:absolute; top:-9px; right:-5px; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#ef8600; color:white; font-size:18px; border:2px solid #fffaf1; }
#root .oe-booking-form .oe-booking-field { margin-top:22px; gap:8px; }
#root .oe-booking-form .oe-booking-field label { font-size:14px; font-weight:700; color:#09243c; }
#root .oe-booking-form textarea { font-size:14px; line-height:1.5; min-height:84px; }
#root .oe-booking-form textarea::placeholder { color:#8c9eb4; opacity:1; }
#root .oe-booking-form .oe-booking-primary { width:100%; display:flex; align-items:center; justify-content:center; gap:12px; min-height:60px; margin-top:20px; background:#ef8600; color:#09243c; border-radius:11px; padding:14px 12px; font-family:Arial,sans-serif; font-size:16px; font-weight:700; }
#root .oe-booking-primary > span { flex:1; }
#root .oe-booking-domain:focus-visible { outline:3px solid #ef8600; outline-offset:3px; }
@media(max-width:960px) { #root .oe-booking-layout { grid-template-columns:1fr; }#root .oe-booking-overview { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:center; }#root .oe-booking-frame { margin:0; }#root .oe-booking-form h3 { font-size:28px; } }
@media(max-width:600px) { #root .oe-booking { padding:16px; }#root .oe-booking-overview { display:block; }#root .oe-booking-overview h2 { font-size:32px; }#root .oe-booking-overview p { font-size:16px; }#root .oe-booking-frame { max-width:340px; margin:12px auto; }#root .oe-booking-form { padding:18px 14px; }#root .oe-booking-domain-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }#root .oe-booking-domain { min-height:80px; font-size:13px; }#root .oe-booking-form h3 { font-size:25px; }#root .oe-booking-form .oe-booking-primary { font-size:14px; gap:8px; }#root .oe-booking-duration { padding:10px 15px; }#root .oe-booking-duration strong { font-size:18px; } }

/* Discreet subject identification and genuine OpenEye mark. */
#root .oe-brand { display:flex; align-items:center; gap:8px; font-size:21px; line-height:1.3; }
#root .oe-brand .oe-brand-logo { height:1em; width:auto; object-fit:contain; flex-shrink:0; }
#root .oe-frame-subject { display:flex; align-items:center; justify-content:center; gap:8px; padding:12px 18px 0; color:#6b7b84; }
#root .oe-frame-subject p { margin:0; max-width:540px; font-size:12px; line-height:1.45; text-align:center; }
#root .oe-frame-subject strong { font-size:11px; font-weight:650; display:block; }
#root .oe-frame-subject span { display:block; margin-top:2px; font-weight:400; }
#root .oe-frame-heading { padding:0 12px 14px; font-size:12px; gap:6px; }
#root .oe-frame-heading img { height:1em; width:auto; object-fit:contain; }
@media(max-width:600px) { #root .oe-brand { font-size:18px; } #root .oe-frame-subject { padding:10px 14px 0; }#root .oe-frame-wrap > .oe-frame-heading { min-width:0; } }

/* Icons stay with their labels, including multiline card headings. */
#root .oe-frame-subject strong { display:flex; align-items:center; justify-content:center; gap:6px; }
#root .oe-booking-primary > span { flex:0 1 auto; }
#root .oe-choice strong > .oe-business-icon,#root .oe-result h3 > .oe-business-icon,#root .oe-interpretation strong > .oe-business-icon { margin-right:3px; }

/* Professional assessment icon beside the page title. */
#root .oe-test-title > .oe-business-icon { display:inline-block; width:1em; height:1em; margin-right:.3em; vertical-align:-.12em; }

/* Full-width invitation with an illustrative consultant portrait. */
#root .oe-booking-banner { display:grid; grid-template-columns:140px minmax(0,1fr); align-items:center; width:100%; margin:0 0 28px; overflow:hidden; border:1px solid #edc58c; border-radius:16px; background:#fffaf1; }
#root .oe-booking-banner img { display:block; width:140px; height:140px; object-fit:cover; object-position:50% 35%; }
#root .oe-booking-banner p { margin:0; padding:22px 28px; color:#3a4950; font-size:clamp(18px,2vw,24px); line-height:1.4; font-weight:600; text-align:center; overflow-wrap:break-word; }
@media(max-width:600px) {
 #root .oe-booking-banner { grid-template-columns:88px minmax(0,1fr); gap:12px; padding:12px; margin-bottom:22px; }
 #root .oe-booking-banner img { width:88px; height:88px; border-radius:10px; }
 #root .oe-booking-banner p { padding:0; font-size:16px; line-height:1.45; text-align:left; }
}

/* Shared typography for the three CTA headings. */
#root .oe-booking-banner p, #root .oe-booking-overview h2, #root .oe-booking-form h3 {
 font-family:Arial,sans-serif; font-size:clamp(22px,2.3vw,28px); font-weight:700; line-height:1.3; letter-spacing:-.01em; color:#3a4950;
}
#root .oe-booking-overview h2, #root .oe-booking-form h3 { margin:0 0 16px; }
@media(max-width:600px) {
 #root .oe-booking-banner p, #root .oe-booking-overview h2, #root .oe-booking-form h3 { font-size:22px; line-height:1.35; }
}

/* Text-only contrast variants; dimension palette and geometry unchanged. */
#root .oe-muted,#root .oe-choice small { color:#52666f; }
#root .oe-booking-overview h2 span,#root .oe-booking-form h3 span,#root .oe-booking-domain[aria-pressed=true] { color:#a85400; }
#root .oe-booking-form textarea::placeholder { color:#586c7c; }
#root .oe-booking-check { color:#09243c; }
#root .oe-business-icon { flex-shrink:0; }

/* Discreet desktop advice, associated with the heading for screen readers. */
#root .oe-test-title sup { font-size:.55em; vertical-align:super; margin-left:.12em; line-height:0; }
#root .oe-desktop-advice { max-width:960px; margin:0 auto 18px; text-align:center; font-size:13px; line-height:1.5; color:#52666f; }

/* Clear reading order: one title, two unchanged sources, one interpretation. */
 #root .oe-results .oe-panel-head { padding:18px 20px 8px; } #root .oe-results .oe-panel-head h2 { display:block; text-wrap:balance; max-width:620px; margin:0 auto; font-size:clamp(18px,2vw,22px); line-height:1.4; letter-spacing:0; color:#3a4950; text-align:center; } #root .oe-results .oe-panel-head h2 > span { min-width:0; } #root .oe-results .oe-result-list { padding:12px 16px 16px; } #root .oe-result h3 { display:flex; align-items:center; justify-content:center; gap:6px; margin:0 0 14px; line-height:1.4; color:#3a4950; } #root .oe-cross { grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr); gap:8px; } #root .oe-times { width:32px; height:32px; border-radius:50%; background:#edf3f4; color:#3a4950; } #root .oe-interpretation p { margin:0 auto; font-size:15px; line-height:1.6; }
@media(max-width:600px) { #root .oe-results .oe-panel-head { padding:16px 14px 6px; } #root .oe-results .oe-result-list { padding:10px; } #root .oe-result { padding:14px 10px; } #root .oe-cross { gap:10px; } }

/* Keep the link icon in the first line of the title, close to its text. */
#root .oe-results .oe-panel-head h2 > .oe-business-icon { display:inline-block; width:1em; height:1em; vertical-align:-.14em; margin:0 .3em 0 0; }
#root .oe-results .oe-panel-head h2 > span { display:inline; }

/* Keep the booking destination below the sticky site navigation. */
#root .oe-booking { scroll-margin-top:96px; }
@media(max-width:760px) { #root .oe-booking { scroll-margin-top:82px; } }

/* Center the aligned viewpoints beneath their shared heading. */
#root .oe-cross { width:100%; max-width:480px; margin-inline:auto; }
#root .oe-choice small { display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; }
#root .oe-choice small > .oe-business-icon { flex:none; margin:0; }
#root .oe-source-wrap,#root .oe-source-stack { text-align:center; justify-self:center; }

/* Agreement symbol beside each resulting understanding. */
#root .oe-interpretation p { display:flex; align-items:center; justify-content:center; gap:10px; }
#root .oe-interpretation p > .oe-business-icon { flex:none; color:#3A4950; margin:0; }
#root .oe-interpretation p > span { min-width:0; }

/* Desktop density matches the compact marketing chapters. */
@media(min-width:1100px){
 #root .oe-content{max-width:1240px;padding:16px 20px}
 #root .oe-content h1{font-size:28px;line-height:1.25}
 #root .oe-subject{padding:12px 16px;margin:14px 0}
 #root .oe-layout>.oe-panel>.oe-panel-head{min-height:82px;padding:12px 14px}
 #root .oe-panel-head h2.oe-stage-title{margin:4px 0 6px}
 #root .oe-contributions{padding:16px 12px 12px;gap:8px}
 #root .oe-contribution{min-height:72px;padding:10px}
 #root .oe-frame{max-width:clamp(420px,calc(100svh - 230px),540px);margin-inline:auto}
 #root .oe-frame-subject{padding-top:8px}
 #root .oe-frame-heading{padding-bottom:8px}
 #root .oe-booking{margin-top:24px;padding:18px}
 #root .oe-booking-banner{grid-template-columns:90px minmax(0,1fr);margin-bottom:16px}
 #root .oe-booking-banner img{width:90px;height:90px}
 #root .oe-booking-banner p{padding:14px 20px}
 #root .oe-booking-banner p,#root .oe-booking-overview h2,#root .oe-booking-form h3{font-size:22px;line-height:1.25}
 #root .oe-booking-overview p{font-size:16px;line-height:1.4}
 #root .oe-booking-frame{max-height:350px;object-fit:contain;margin-top:10px}
 #root .oe-booking-layout{gap:20px}
 #root .oe-booking-form{padding:18px}
 #root .oe-booking-form>p{margin-bottom:14px}
 #root .oe-booking-domains{margin-bottom:14px}
 #root .oe-booking-domain{min-height:64px;padding:7px 4px;gap:5px}
 #root .oe-booking-form textarea{min-height:66px}
 #root .oe-booking-form .oe-booking-primary{min-height:48px;margin-top:12px;padding:10px}
}

/* Keep all five viewpoints beside the frame on desktop. */
@media(min-width:1100px){
 #root .oe-layout{grid-template-columns:minmax(230px,.64fr) minmax(0,1.76fr);gap:18px;align-items:start}
 #root .oe-contributions{padding:10px;gap:6px}
 #root .oe-contribution{min-height:0;padding:8px 9px;font-size:12px;line-height:1.3;border-left-width:4px}
 #root .oe-contribution strong{font-size:11.5px;line-height:1.25;margin-bottom:4px}
 #root .oe-contribution small{font-size:11px;line-height:1.2;margin-top:4px}
 #root .oe-contribution strong .oe-business-icon{width:15px;height:15px;vertical-align:-3px}
 #root .oe-panel-footer{padding:8px 10px;font-size:12px;line-height:1.3}
}

/* Subject picker belongs directly above projection; desktop chapter budget. */
@media(min-width:1100px){
 #root .oe-layout{row-gap:10px}
 #root .oe-layout>.oe-subject{grid-column:2;grid-row:1;margin:0;padding:10px 14px;min-width:0}
 #root .oe-layout>.oe-panel{grid-column:1;grid-row:2}
 #root .oe-layout>#oe-projection{grid-column:2;grid-row:2}
 #root .oe-layout>.oe-subject .oe-subject-label{font-size:13px;margin:0 0 7px;line-height:1.35}
 #root .oe-topic-picker summary{padding:9px 11px;font-size:13px}
 #root .oe-booking{max-width:1120px;padding:14px 18px;margin-top:22px;scroll-margin-top:82px}
 #root .oe-booking-banner{grid-template-columns:64px minmax(0,1fr);margin-bottom:12px;border-radius:12px}
 #root .oe-booking-banner img{width:64px;height:64px}
 #root .oe-booking-banner p{font-size:19px;line-height:1.25;padding:10px 16px}
 #root .oe-booking-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;align-items:center}
 #root .oe-booking-overview h2{font-size:24px;line-height:1.2;margin-bottom:10px}
 #root .oe-booking-overview p{font-size:15px;line-height:1.35}
 #root .oe-booking-frame{max-height:clamp(260px,calc(100svh - 360px),330px);margin-top:10px;object-fit:contain}
 #root .oe-booking-form{padding:14px 16px}
 #root .oe-booking-form h3{font-size:21px;line-height:1.2;margin-bottom:6px}
 #root .oe-booking-form>p{font-size:13px;line-height:1.35;margin-bottom:10px}
 #root .oe-booking-domains{margin-bottom:10px}
 #root .oe-booking-domains legend{font-size:13px;margin-bottom:7px}
 #root .oe-booking-domain-grid{gap:7px}
 #root .oe-booking-domain{min-height:55px;padding:5px 3px;gap:3px;font-size:11px}
 #root .oe-booking-domain>.oe-business-icon{width:22px;height:22px}
 #root .oe-booking-form .oe-booking-field{margin-top:10px;gap:5px}
 #root .oe-booking-form .oe-booking-field label{font-size:13px;line-height:1.3}
 #root .oe-booking-form textarea{min-height:54px;height:54px;padding:8px 10px;font-size:13px;line-height:1.35;resize:vertical}
 #root .oe-booking-form .oe-booking-primary{min-height:44px;margin-top:12px;padding:9px 10px;font-size:15px}
}

/* Enlarge the projected frame by 20%, centred within the right column. */
@media(min-width:1100px){
 #root .oe-frame{width:100%;max-width:clamp(504px,calc(120svh - 276px),648px);margin-inline:auto}
 #root .oe-layout>.oe-panel,#root .oe-layout>#oe-projection{align-self:start}
 #root .oe-frame-scroll{display:flex;flex-direction:column;align-items:center}
}

/* Remove SVG whitespace instead of shifting the frame across other content. */
@media(min-width:1100px){
 #root .oe-layout>.oe-panel>.oe-panel-head{min-height:68px;padding:8px 12px}
 #root .oe-panel-head h2.oe-stage-title{margin:2px 0 4px}
 #root .oe-panel-head .oe-stage-comment{margin:0;line-height:1.3}
 #root .oe-frame-wrap{margin:0;padding:0}
 #root .oe-frame-subject{padding:4px 12px 0}
 #root .oe-frame-subject p{line-height:1.25}
 #root .oe-frame-subject span{margin-top:1px}
 #root .oe-frame{margin-top:0;margin-bottom:0}
 #root .oe-frame-heading{padding:2px 12px 5px;font-size:11px;line-height:1.2}
 #root #oe-projection>.oe-controls{padding:8px 12px 12px}
 #root .oe-controls h3.oe-stage-title{margin:0 0 5px;line-height:1.3}
 #root .oe-controls>.oe-muted{margin:4px 0 9px}
}

/* Topic choices are secondary headings, never inherited oversized buttons. */
#root .oe-topic-picker summary,#root .oe-topic-options button{font-family:Arial,sans-serif;font-size:15px;font-weight:600;line-height:1.4;letter-spacing:normal}
#root .oe-topic-picker summary>span,#root .oe-topic-options button>span{font:inherit;min-width:0;overflow-wrap:break-word}
#root .oe-topic-options .oe-business-icon{flex:none;width:20px;height:20px}
@media(min-width:1100px){
 #root .oe-topic-picker summary,#root .oe-topic-options button{font-size:15px}
}

/* Responsive test and booking panels: apply compact rules below desktop too. */
@media(max-width:1099px){
 #root .oe-content{padding:16px 14px 24px}
 #root .oe-content h1{font-size:clamp(23px,3vw,28px);line-height:1.25}
 #root .oe-subject{padding:12px;margin:0}
 #root .oe-subject-label{font-size:14px;line-height:1.4;margin:0 0 8px}
 #root .oe-layout{gap:12px}
 #root .oe-layout>.oe-panel>.oe-panel-head{min-height:0;padding:10px 12px}
 #root .oe-panel-head h2.oe-stage-title{font-size:16px;margin:2px 0 5px;line-height:1.3}
 #root .oe-contributions{padding:10px;gap:8px}
 #root .oe-contribution{min-height:0;padding:10px;font-size:13px;line-height:1.35}
 #root .oe-contribution strong{font-size:12px;margin-bottom:4px}
 #root .oe-contribution small{font-size:11px;margin-top:5px}
 #root .oe-frame-subject{padding:6px 10px 0}
 #root .oe-frame-subject p{line-height:1.3}
 #root .oe-frame-heading{padding:3px 10px 6px}
 #root .oe-booking{padding:14px;margin:20px auto 0;scroll-margin-top:78px}
 #root .oe-booking-banner{grid-template-columns:64px minmax(0,1fr);gap:0;padding:0;margin-bottom:12px}
 #root .oe-booking-banner img{width:64px;height:72px;border-radius:0}
 #root .oe-booking-banner p{font-size:17px;line-height:1.3;padding:10px 12px;text-align:left}
 #root .oe-booking-layout{gap:14px}
 #root .oe-booking-overview h2,#root .oe-booking-form h3{font-size:21px;line-height:1.25;margin-bottom:8px}
 #root .oe-booking-overview p{font-size:14px;line-height:1.4}
 #root .oe-booking-form{padding:14px}
 #root .oe-booking-form>p{font-size:13px;line-height:1.35;margin:0 0 10px}
 #root .oe-booking-domains{margin-bottom:10px}
 #root .oe-booking-domains legend{font-size:13px;margin-bottom:8px}
 #root .oe-booking-domain-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
 #root .oe-booking-domain{min-height:60px;padding:6px 3px;gap:4px;font-size:11px}
 #root .oe-booking-domain>.oe-business-icon{width:22px;height:22px}
 #root .oe-booking-form .oe-booking-field{margin-top:12px;gap:5px}
 #root .oe-booking-form .oe-booking-field label{font-size:13px;line-height:1.3}
 #root .oe-booking-form textarea{font-size:16px;line-height:1.35;min-height:60px;height:60px;padding:8px}
 #root .oe-booking-form .oe-booking-primary{font-size:15px;line-height:1.3;min-height:48px;margin-top:12px;padding:10px}
}
@media(min-width:851px) and (max-width:1099px){
 #root .oe-layout{grid-template-columns:minmax(220px,.7fr) minmax(0,1.5fr)}
 #root .oe-layout>.oe-subject{grid-column:2;grid-row:1}
 #root .oe-layout>.oe-panel{grid-column:1;grid-row:2}
 #root .oe-layout>#oe-projection{grid-column:2;grid-row:2}
 #root .oe-frame{max-width:560px}
}
@media(max-width:850px){
 #root .oe-layout{grid-template-columns:minmax(0,1fr)}
 #root .oe-layout>.oe-subject,#root .oe-layout>.oe-panel{min-width:0}
 #root .oe-contributions{grid-template-columns:repeat(2,minmax(0,1fr))}
 #root .oe-contribution:last-child{grid-column:1/-1}
 #root .oe-frame-scroll{overflow-x:visible}
 #root .oe-frame-scroll .oe-frame{width:100%;min-width:0;max-width:560px;margin:0 auto}
 #root .oe-frame-scroll .oe-frame-heading{min-width:0}
 #root .oe-frame-mobile-hint{display:none}
 #root .oe-frame-heading{min-width:0}
 #root .oe-booking-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center}
 #root .oe-booking-frame{width:100%;height:auto;max-height:200px;margin:0;object-fit:contain}
 #root .oe-booking-overview h2{font-size:19px}
 #root .oe-controls{padding:10px}
 #root .oe-controls h3.oe-stage-title{font-size:16px;line-height:1.35}
 #root .oe-choice{min-height:64px;padding:8px}
 #root .oe-choice strong{font-size:12px;line-height:1.3}
 #root .oe-desktop-advice{font-size:12px;margin-bottom:12px}
}
@media(max-width:359px){
 #root .oe-booking-domain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #root .oe-content{padding-inline:10px}
}

/* Keep contributions intact; place results beside their step-three controls. */
#root .oe-alignment-row{grid-column:1/-1;display:grid;grid-template-columns:subgrid;gap:18px;align-items:start;min-width:0}
#root .oe-alignment-row>.oe-controls{grid-column:2;grid-row:1;min-width:0;margin:0;padding:14px}
#root .oe-alignment-row>.oe-results{grid-column:1;grid-row:1;min-width:0;width:100%;margin:0;scroll-margin-top:100px}
#root .oe-alignment-arrow{display:inline-block;color:#78909c;font-size:24px;margin-right:8px;vertical-align:-1px}
#root .oe-alignment-row .oe-cross{grid-template-columns:minmax(0,1fr);justify-items:center;gap:8px}
#root .oe-alignment-row .oe-source-wrap{width:100%;max-width:220px}
@supports not (grid-template-columns:subgrid){#root .oe-alignment-row{grid-template-columns:minmax(230px,.64fr) minmax(0,1.76fr)}}
@media(max-width:850px){
 #root .oe-alignment-row{grid-template-columns:minmax(0,1fr);gap:12px}
 #root .oe-alignment-row>.oe-controls{grid-column:1;grid-row:1}
 #root .oe-alignment-row>.oe-results{grid-column:1;grid-row:2}
 #root .oe-alignment-arrow{transform:rotate(-90deg)}
}

#root .oe-alignment-row .oe-source-card{width:164px;max-width:100%;height:auto}
#root .oe-alignment-row .oe-source-context{width:100%;max-width:211px;height:auto}
#root .oe-alignment-row .oe-panel-head h2{font-size:17px;line-height:1.4}

/* All understanding panels follow step 3 with exactly the same outer width. */
#root .oe-alignment-row>.oe-results{grid-column:2;grid-row:2;width:100%;max-width:none;box-sizing:border-box}
#root .oe-alignment-arrow{transform:rotate(-90deg)}
#root .oe-alignment-row .oe-cross{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);max-width:520px;margin-inline:auto}
@media(max-width:850px){#root .oe-alignment-row>.oe-results{grid-column:1;grid-row:2}}
@media(max-width:600px){#root .oe-alignment-row .oe-cross{display:flex;flex-direction:column}}
