/* ============================================================================
 *  cv-estilo-base — extraido do index.html em 14/08/2026.
 *
 *  Nao e estilo novo: e o bloco <style> que morava dentro do index.html,
 *  movido para fora SEM UMA LINHA ALTERADA (144,606 bytes). E os tokens de design (:root) e o estilo geral da pagina.
 *
 *  ⚠️ A TAG <link> FICOU NA MESMA POSICAO do <style> original. A cascata do CSS
 *  depende da ORDEM no documento: mover a tag muda qual regra vence, mesmo com
 *  o conteudo identico.
 *
 *  ⚠️ Se um dia entrar url(...) com caminho RELATIVO aqui, ele passa a resolver
 *  contra ESTE arquivo (assets/), e nao contra o documento — a mesma armadilha
 *  que o import() causou na primeira extracao de script. Medido em 14/08: os 13
 *  blocos <style> tinham ZERO url() relativo e ZERO @import.
 * ============================================================================ */

    :root {
      --blue: #0036d8;
      --footer-blue: #002a9e;
      --footer-logo-optical-shift: 5mm;
      --ink: #000;
      --field: #eef3ff;
      --page-w: 210mm;
      --page-h: 297mm;
      --cv-scrollbar-size: 6px;
      --cv-scrollbar-track: transparent;
      --cv-scrollbar-thumb: rgba(18, 50, 96, 0.55);
      --cv-scrollbar-thumb-hover: #123260;
    }

    * {
      box-sizing: border-box;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
      scrollbar-width: thin !important;
      scrollbar-color: var(--cv-scrollbar-thumb) var(--cv-scrollbar-track) !important;
    }

    /* Scrollbar padrao do formulario: replica o visual do Grau de instrucao em todas as areas rolaveis. */
    *::-webkit-scrollbar {
      width: var(--cv-scrollbar-size) !important;
      height: var(--cv-scrollbar-size) !important;
    }

    *::-webkit-scrollbar-track {
      background: var(--cv-scrollbar-track) !important;
      border-radius: 999px !important;
      margin: 4px 0 !important;
    }

    *::-webkit-scrollbar-thumb {
      background: var(--cv-scrollbar-thumb) !important;
      border: 0 !important;
      border-radius: 999px !important;
      min-height: 24px !important;
    }

    *::-webkit-scrollbar-thumb:hover {
      background: var(--cv-scrollbar-thumb-hover) !important;
    }

    *::-webkit-scrollbar-button {
      display: none !important;
      width: 0 !important;
      height: 0 !important;
      min-width: 0 !important;
      min-height: 0 !important;
      background: transparent !important;
      background-image: none !important;
      border: 0 !important;
      -webkit-appearance: none !important;
      appearance: none !important;
    }

    *::-webkit-scrollbar-corner {
      background: transparent !important;
    }

    body {
      margin: 0;
      background: #e6e6e6;
      color: var(--ink);
      font-family: Arial, Helvetica, sans-serif;
    }

    .toolbar {
      display: flex;
      gap: 8px;
      justify-content: center;
      padding: 12px 18px;
      /* camada SÓLIDA: nada do documento transparece atrás da barra no scroll */
      background: linear-gradient(180deg, #ffffff 0%, #f3f6fb 100%);
      border: 1px solid #d3dcea;
      border-radius: 18px;
      margin: 10px 14px 4px;
      position: sticky;
      top: 8px;
      z-index: 950;
      box-shadow: 0 12px 28px rgba(16, 28, 53, 0.14);
    }

    button {
      border: 1px solid #1d2d50;
      border-radius: 7px;
      background: linear-gradient(180deg, #ffffff 0%, #f5f7fb 100%);
      color: #111827;
      font: 700 13px Arial, Helvetica, sans-serif;
      padding: 8px 14px;
      cursor: pointer;
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.10);
      transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
    }

    /* r29 — PADRAO GLOBAL DE BOTAO: o hover NAO muda cor (antes pintava tudo de
       branco e cada botao novo precisava se blindar). Efeito padrao para TODO
       botao, atual e futuro: manter a coloracao propria + levantar + brilho. */
    button:hover {
      box-shadow: 0 6px 14px rgba(15, 23, 42, 0.22);
      transform: translateY(-1px);
      filter: saturate(1.05) brightness(1.04);
    }

    button:active {
      transform: translateY(1px) scale(0.99);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
      filter: brightness(0.96);
    }

    /* r29b — base para o BRILHO VARREDOR global (span .cv-shine injetado em
       runtime pelo cv-ui-consistencia; pseudo-elemento global conflitaria com
       os ::after existentes, ex.: seta dos seletores). */
    button {
      position: relative;
    }

    .download-button {
      border: 0.20px solid #555;
      border-radius: 999px;
      background: linear-gradient(135deg, #0036d8 0%, #001f8f 100%);
      color: #fff;
      padding: 10px 22px;
      letter-spacing: 0.02em;
      box-shadow: 0 8px 18px rgba(0, 54, 216, 0.24);
    }

    .download-button:hover {
      background: linear-gradient(135deg, #0a46ff 0%, #002bb0 100%);
      box-shadow: 0 10px 22px rgba(0, 54, 216, 0.30);
    }

    .preview-button {
      background: linear-gradient(135deg, #243b67 0%, #101c35 100%);
      color: #fff;
      box-shadow: 0 8px 18px rgba(16, 28, 53, 0.20);
    }

    .preview-button:hover {
      background: linear-gradient(135deg, #314f85 0%, #172746 100%);
      box-shadow: 0 10px 22px rgba(16, 28, 53, 0.26);
    }

    .pdf-button {
      background: linear-gradient(135deg, #4f9f72 0%, #2f6f4a 100%);
      box-shadow: 0 8px 18px rgba(47, 111, 74, 0.20);
    }

    .pdf-button:hover {
      background: linear-gradient(135deg, #5ead80 0%, #397c55 100%);
      box-shadow: 0 10px 22px rgba(47, 111, 74, 0.26);
    }

    .settings-button {
      width: 42px;
      height: 42px;
      min-width: 42px;
      display: inline-grid;
      place-items: center;
      padding: 0;
      border: 0.20px solid #555;
      border-radius: 50%;
      background: linear-gradient(135deg, #243b67 0%, #101c35 100%);
      color: #fff;
      font-size: 18px;
      line-height: 1;
      box-shadow: 0 8px 18px rgba(16, 28, 53, 0.20);
    }

    .settings-button:hover,
    .settings-button:focus,
    .settings-button:focus-visible,
    .settings-button:active {
      background: linear-gradient(135deg, #314f85 0%, #172746 100%);
      box-shadow: 0 10px 22px rgba(16, 28, 53, 0.26);
      transform: translateY(-1px);
      filter: saturate(1.04);
    }

    .preview-launch-button {
      width: 42px;
      height: 42px;
      min-width: 42px;
      display: inline-grid;
      place-items: center;
      border: 0.20px solid #555;
      border-radius: 50%;
      padding: 0;
      background: linear-gradient(135deg, #243b67 0%, #101c35 100%);
      color: #fff;
      box-shadow: 0 8px 18px rgba(16, 28, 53, 0.20);
    }

    .preview-launch-button:hover,
    .preview-launch-button:focus,
    .preview-launch-button:focus-visible,
    .preview-launch-button:active {
      background: linear-gradient(135deg, #314f85 0%, #172746 100%);
      box-shadow: 0 10px 22px rgba(16, 28, 53, 0.26);
      transform: translateY(-1px);
      filter: saturate(1.04);
    }

    .preview-launch-button svg {
      width: 21px;
      height: 21px;
      stroke: currentColor;
      stroke-width: 2.45px;
    }

    .settings-panel[hidden] {
      display: none;
    }

    .settings-panel {
      position: fixed;
      top: 76px;
      right: 18px;
      z-index: 40;
      width: min(360px, calc(100vw - 24px));
      padding: 14px;
      border: 1px solid #d6ddea;
      border-radius: 16px;
      background: #ffffff;
      box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
      color: #000;
      font-size: 12px;
    }

    .settings-panel-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 12px;
      color: #000;
      font-weight: 700;
      opacity: 1;
    }

    .settings-close {
      min-width: 0;
      padding: 5px 10px;
      border-radius: 999px;
      font-size: 12px;
    }

    .settings-group {
      display: grid;
      gap: 6px;
      padding: 8px 0;
      border-top: 1px solid #e4e9f3;
    }

    .settings-group-title {
      color: #000;
      font-weight: 700;
      font-size: 12px;
      opacity: 1;
    }

    .settings-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 7px;
    }

    .settings-field {
      width: 100%;
      height: 30px;
      border-radius: 8px;
      padding: 0 8px;
      border: 1px solid #d6ddea;
      background: #f7faff;
      color: #000 !important;
      font-weight: 600;
      font-size: 12px;
      opacity: 1;
      text-overflow: ellipsis;
    }

    .settings-hint {
      font-size: 11px;
      line-height: 1.25;
      color: #000;
      font-weight: 600;
      opacity: 1;
    }

    .settings-panel input::placeholder {
      color: #111827 !important;
      opacity: 1 !important;
    }

    .settings-toggle {
      display: flex;
      align-items: center;
      gap: 10px;
      color: #000;
      font-size: 12px;
      font-weight: 700;
      line-height: 1.25;
      cursor: pointer;
      user-select: none;
    }

    .settings-toggle input {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }

    .toggle-slider {
      width: 40px;
      height: 22px;
      border-radius: 999px;
      background: #d7dde7;
      border: 1px solid #b7c0cc;
      position: relative;
      flex: 0 0 auto;
      box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12);
      transition: background 160ms ease, border-color 160ms ease;
    }

    .toggle-slider::before {
      content: "";
      position: absolute;
      width: 16px;
      height: 16px;
      top: 2px;
      left: 2px;
      border-radius: 50%;
      background: #fff;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.22);
      transition: transform 160ms ease;
    }

    .settings-toggle input:checked + .toggle-slider {
      background: #0036d8;
      border-color: #002bb0;
    }

    .settings-toggle input:checked + .toggle-slider::before {
      transform: translateX(18px);
    }

    .photo-file-input {
      display: none !important;
    }

    .profile-photo-status {
      color: #000;
      font-size: 12px;
      font-weight: 700;
      line-height: 1.25;
      opacity: 1;
      overflow-wrap: anywhere;
    }

    .profile-photo-file-name {
      color: #0036d8;
      font-weight: 800;
    }

    .settings-add {
      border: 0.20px solid #555;
      border-radius: 999px;
      background: linear-gradient(135deg, #4f9f72 0%, #2f6f4a 100%);
      color: #fff !important;
      opacity: 1 !important;
      filter: none !important;
      min-height: 32px;
      padding: 7px 10px;
      font-size: 12px;
      font-weight: 800;
      line-height: 1.05;
      box-shadow: 0 6px 14px rgba(47, 111, 74, 0.16);
    }

    .settings-remove {
      border: 0.20px solid #555;
      border-radius: 999px;
      background: linear-gradient(135deg, #b85b5b 0%, #7c3838 100%);
      color: #fff !important;
      opacity: 1 !important;
      filter: none !important;
      min-height: 32px;
      padding: 7px 10px;
      font-size: 12px;
      font-weight: 800;
      line-height: 1.05;
      box-shadow: 0 6px 14px rgba(124, 56, 56, 0.16);
    }

    .settings-add:hover,
    .settings-add:focus,
    .settings-add:active {
      background: linear-gradient(135deg, #5ead80 0%, #397c55 100%) !important;
      color: #fff !important;
      opacity: 1 !important;
      filter: none !important;
      box-shadow: 0 8px 18px rgba(47, 111, 74, 0.22);
    }

    .settings-remove:hover,
    .settings-remove:focus,
    .settings-remove:active {
      background: linear-gradient(135deg, #c46b6b 0%, #8d4242 100%) !important;
      color: #fff !important;
      opacity: 1 !important;
      filter: none !important;
      box-shadow: 0 8px 18px rgba(124, 56, 56, 0.22);
    }

    .photo-preview-overlay[hidden] {
      display: none !important;
    }

    .photo-preview-overlay {
      position: fixed;
      inset: 0;
      /* acima de TUDO (Configurações usa 1200; cabeçalho/menus usam menos) */
      z-index: 4000;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      background: rgba(15, 23, 42, 0.42);
    }

    .photo-preview-card {
      width: min(420px, calc(100vw - 28px));
      max-height: calc(100vh - 32px);
      overflow-y: auto;
      border: 1px solid #d6ddea;
      border-radius: 20px;
      background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
      box-shadow: 0 24px 56px rgba(15, 23, 42, 0.30);
      padding: 18px;
      color: #000;
      box-sizing: border-box;
      scrollbar-width: thin;
      scrollbar-color: #123260 #eef4ff;
    }

    .photo-preview-title {
      color: #071a3a;
      font-size: 15px;
      font-weight: 900;
      letter-spacing: -0.02em;
      margin-bottom: 6px;
    }

    .photo-preview-text {
      color: #1f2f49;
      font-size: 12px;
      line-height: 1.35;
      font-weight: 650;
      margin-bottom: 12px;
      max-width: 35rem;
    }

    .photo-preview-frame {
      width: 42mm;
      height: 56mm;
      margin: 0 auto 14px;
      border: 1px solid #c5d2e6;
      border-radius: 8px;
      background: #f8faff;
      display: flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      padding: 0;
      overflow: hidden;
      position: relative;
      flex: 0 0 auto;
      box-shadow: 0 10px 26px rgba(10, 24, 48, 0.18);
    }

    .photo-preview-frame img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transform-origin: center center;
      will-change: transform;
      flex: 0 0 auto;
    }

    .photo-processing-box {
      display: none;
      min-height: 218px;
      place-items: center;
      align-content: center;
      gap: 8px;
      text-align: center;
      color: #10264e;
      font-size: 12px;
      font-weight: 800;
      border: 1px solid #d8e1ef;
      border-radius: 18px;
      background:
        radial-gradient(circle at top left, rgba(11, 69, 217, 0.08), transparent 34%),
        linear-gradient(180deg, #f9fbff 0%, #eef5ff 100%);
      margin: 8px 0 2px;
      padding: 16px;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
    }

    .photo-processing-spinner {
      width: 28px;
      height: 28px;
      border: 3px solid #d6ddea;
      border-top-color: #0036d8;
      border-radius: 50%;
      animation: photoSpin 900ms linear infinite;
    }

    @keyframes photoSpin {
      to { transform: rotate(360deg); }
    }

    .photo-preview-overlay.is-processing .photo-preview-frame,
    .photo-preview-overlay.is-processing .photo-preview-actions,
    .photo-preview-overlay.is-processing #profilePhotoAdjustPanel {
      display: none !important;
    }

    .photo-preview-overlay.is-processing .photo-processing-box {
      display: grid;
    }

    .photo-preview-actions {
      display: flex !important;
      flex-wrap: nowrap !important;
      align-items: center;
      justify-content: center;
      gap: 7px;
      width: 100%;
      min-width: 0;
    }

    .photo-preview-actions button {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      width: auto;
      min-width: 76px;
      max-width: none;
      height: 36px;
      padding: 7px 12px 7px 8px !important;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 900;
      line-height: 1;
      letter-spacing: 0.01em;
      white-space: nowrap !important;
      display: inline-flex !important;
      align-items: center;
      justify-content: center;
      gap: 6px;
      border: 0 !important;
      color: #fff !important;
      box-shadow: 0 12px 24px rgba(20, 35, 60, 0.18);
      cursor: pointer;
      flex: 0 0 auto;
      opacity: 1 !important;
      transform: translateY(0);
      transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    }

    .photo-preview-actions button::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, 0.18) 42%, transparent 70%);
      transform: translateX(-82%);
      transition: transform 0.45s ease;
    }

    .photo-preview-actions button:hover,
    .photo-preview-actions button:focus {
      transform: translateY(-1px);
      filter: saturate(1.05) !important;
    }

    .photo-preview-actions button:hover::after,
    .photo-preview-actions button:focus::after {
      transform: translateX(82%);
    }

    .photo-preview-actions button:focus-visible {
      outline: 2px solid rgba(18, 50, 96, 0.22);
      outline-offset: 3px;
    }

    .photo-preview-actions button:active {
      transform: translateY(0);
      filter: none !important;
    }

    .photo-preview-icon {
      display: inline-grid;
      place-items: center;
      width: 22px;
      height: 22px;
      min-width: 22px;
      min-height: 22px;
      flex: 0 0 auto;
      border-radius: 999px;
      background: linear-gradient(135deg, #ffffff 0%, rgba(255, 255, 255, 0.82) 100%);
      box-shadow: inset 0 0 0 1px rgba(10, 30, 58, 0.10), 0 6px 12px rgba(10, 30, 58, 0.14);
      font-size: 11px;
      line-height: 1;
      text-align: center;
      font-weight: 950;
      box-sizing: border-box;
    }

    .photo-preview-icon > svg {
      width: 13px;
      height: 13px;
      display: block;
      place-self: center;
      margin: auto;
      fill: none;
      stroke: currentColor;
      stroke-width: 2.2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .photo-preview-folder-icon > svg {
      width: 16px !important;
      height: 16px !important;
      fill: currentColor !important;
      stroke: none !important;
    }

    #profilePhotoChooseButton .photo-preview-folder-icon,
    .photo-preview-overlay .photo-preview-change .photo-preview-folder-icon {
      position: relative;
      left: -2px;
    }

    .photo-preview-folder-icon.cv-svg-icon::before,
    .photo-preview-folder-icon.cv-svg-icon::after {
      display: none;
    }

    .photo-preview-folder-icon {
      position: relative;
      width: 22px;
      height: 22px;
      border: 0;
      border-radius: 999px;
      margin-top: 0;
    }

    .photo-preview-folder-icon::before {
      content: "";
      position: absolute;
      left: 6px;
      top: 7px;
      width: 8px;
      height: 4px;
      border: 0;
      border-radius: 2px 2px 0 0;
      background: currentColor;
    }

    .photo-preview-folder-icon::after {
      content: "";
      position: absolute;
      left: 5px;
      top: 9px;
      width: 12px;
      height: 8px;
      border: 0;
      border-radius: 2px;
      background: currentColor;
      box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.18);
    }

    .photo-preview-actions .settings-add {
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.28), transparent 27%),
        linear-gradient(135deg, #3f9368 0%, #2f704b 52%, #54af7a 100%) !important;
      box-shadow: 0 12px 24px rgba(47, 112, 75, 0.24);
    }

    .photo-preview-actions .settings-add:hover,
    .photo-preview-actions .settings-add:focus {
      box-shadow: 0 14px 28px rgba(47, 112, 75, 0.32);
    }

    .photo-preview-actions .settings-add .photo-preview-icon {
      color: #2f704b;
      background: linear-gradient(135deg, #ffffff 0%, #e4f6eb 100%);
    }

    .photo-preview-change {
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.30), transparent 27%),
        linear-gradient(135deg, #8a5a06 0%, #c98b19 52%, #e7ae2e 100%) !important;
      box-shadow: 0 12px 24px rgba(138, 90, 6, 0.26);
    }

    .photo-preview-change:hover,
    .photo-preview-change:focus {
      box-shadow: 0 14px 28px rgba(138, 90, 6, 0.34);
    }

    .photo-preview-change .photo-preview-icon {
      color: #7a4d03;
      background: linear-gradient(135deg, #ffffff 0%, #ffedc4 100%);
    }

    .photo-preview-restore {
      min-width: 98px;
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.28), transparent 27%),
        linear-gradient(135deg, #193a70 0%, #10264e 54%, #2d568a 100%) !important;
      box-shadow: 0 12px 24px rgba(16, 38, 78, 0.24);
    }

    .photo-preview-restore:hover,
    .photo-preview-restore:focus {
      box-shadow: 0 14px 28px rgba(16, 38, 78, 0.33);
    }

    .photo-preview-restore .photo-preview-icon {
      color: #10264e;
      background: linear-gradient(135deg, #ffffff 0%, #e3ecff 100%);
    }

    .photo-preview-actions .settings-remove {
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.25), transparent 27%),
        linear-gradient(135deg, #8d383d 0%, #7c3838 52%, #b85b5b 100%) !important;
      box-shadow: 0 12px 24px rgba(124, 56, 56, 0.24);
    }

    .photo-preview-actions .settings-remove:hover,
    .photo-preview-actions .settings-remove:focus {
      box-shadow: 0 14px 28px rgba(124, 56, 56, 0.32);
    }

    .photo-preview-actions .settings-remove .photo-preview-icon {
      color: #7c3838;
      background: linear-gradient(135deg, #ffffff 0%, #ffe5e5 100%);
    }

    @media (max-width: 420px) {
      .photo-preview-actions {
        gap: 4px;
      }

      .photo-preview-actions button {
        min-width: 62px;
        height: 34px;
        padding: 6px 7px 6px 6px !important;
        gap: 4px;
        font-size: 9.5px;
      }

      .photo-preview-restore {
        min-width: 86px;
      }

      .photo-preview-icon,
      .photo-preview-folder-icon {
        width: 19px;
        height: 19px;
        min-width: 19px;
        min-height: 19px;
      }

      .photo-preview-folder-icon > svg {
        width: 15px !important;
        height: 15px !important;
      }

      #profilePhotoChooseButton .photo-preview-folder-icon,
      .photo-preview-overlay .photo-preview-change .photo-preview-folder-icon {
        left: -1px;
      }
    }

    .custom-sections-list {
      display: grid;
      gap: 12px;
      margin-left: 0;
    }

    .custom-section {
      display: grid;
      gap: 8px;
    }

    .custom-section-title {
      width: auto;
      min-width: 1ch;
      max-width: 100%;
      border: 0.20px solid #555;
      background: var(--field);
      color: #000;
      font-family: Arial, Helvetica, sans-serif;
      font-size: 14pt;
      font-weight: 700;
      line-height: 1.2;
      text-transform: uppercase;
      padding: 0 2px;
      outline: 0;
    }

    .custom-section-body {
      width: 100%;
      min-height: 24px;
      padding: 0;
      background: var(--field);
      color: #000;
      font-family: Arial, Helvetica, sans-serif;
      font-size: 12pt;
      line-height: 1.28;
      text-align: justify;
      text-align-last: left;
      white-space: pre-wrap;
      overflow-wrap: normal;
      word-break: normal;
      hyphens: none;
      outline: 0;
    }

    .print-footer-runtime,
    .print-pages {
      display: none;
    }

    .preview-overlay[hidden] {
      display: none;
    }

    .preview-overlay {
      position: fixed;
      inset: 0;
      /* acima do painel de Configurações (1200) e da barra (950); abaixo do modal da foto (4000) */
      z-index: 2500;
      background: #dfe3ea;
      overflow: hidden;
      padding: 0;
    }

    html.cv-preview-open,
    html.cv-preview-open body {
      overflow: hidden !important;
      overscroll-behavior: none;
    }

    .preview-scroll-shell {
      width: min(100%, calc(210mm + 64px));
      height: 100%;
      margin: 0 auto;
      padding: 16px;
      box-sizing: border-box;
      overflow: auto;
      overscroll-behavior: contain;
      scrollbar-gutter: stable;
      scrollbar-width: thin;
      scrollbar-color: rgba(46, 82, 133, .78) rgba(46, 82, 133, .10);
    }

    .preview-scroll-shell::-webkit-scrollbar {
      width: 8px;
      height: 8px;
    }

    .preview-scroll-shell::-webkit-scrollbar-track {
      margin: 8px 0;
      background: rgba(46, 82, 133, .10);
      border-radius: 999px;
    }

    .preview-scroll-shell::-webkit-scrollbar-thumb {
      min-height: 36px;
      border: 2px solid transparent;
      border-radius: 999px;
      background: rgba(46, 82, 133, .78);
      background-clip: padding-box;
    }

    .preview-scroll-shell::-webkit-scrollbar-thumb:hover {
      background: rgba(28, 64, 116, .92);
      background-clip: padding-box;
    }

    .preview-scroll-shell::-webkit-scrollbar-button {
      display: none !important;
      width: 0 !important;
      height: 0 !important;
    }

    .preview-toolbar {
      position: sticky;
      top: 8px;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      max-width: min(100%, 1120px);
      /* mesmo layout da barra principal, com paleta própria (azul) p/ diferenciar visualização de edição */
      margin: 0 auto 12px;
      padding: 12px 18px;
      background: linear-gradient(180deg, #dfeafa 0%, #c9dbf3 100%);
      border: 1px solid #9db8dd;
      border-radius: 18px;
      box-shadow: 0 12px 28px rgba(16, 40, 80, 0.18);
    }

    .preview-toolbar button {
      border-radius: 999px;
      min-height: 40px;
      font-weight: 900;
      font-size: 13px;
    }

    .preview-zoom-controls {
      display: flex;
      align-items: center;
      gap: 8px;
      flex: 0 0 auto;
    }

    .preview-fit-action,
    .preview-zoom-main,
    .preview-zoom-button {
      min-height: 34px;
      border: 1px solid #b8c7e6;
      border-radius: 999px;
      background: #fff;
      color: #102e60;
      box-shadow: none;
    }

    .preview-fit-action {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 7px 14px;
    }

    .preview-fit-action svg {
      width: 15px;
      height: 15px;
      stroke: currentColor;
    }

    .preview-zoom-pop-wrap {
      position: relative;
      display: inline-flex;
    }

    .preview-zoom-main {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 7px 12px;
    }

    .preview-zoom-main svg {
      width: 15px;
      height: 15px;
      stroke: currentColor;
    }

    .preview-zoom-main .preview-zoom-caret {
      width: 12px;
      height: 12px;
    }

    .preview-zoom-main[aria-expanded="true"] {
      background: #eef4ff;
      color: #001f8f;
    }

    .preview-zoom-pop {
      position: absolute;
      top: calc(100% + 8px);
      left: 0;
      z-index: 30;
      display: flex;
      align-items: center;
      gap: 8px;
      width: min(320px, calc(100vw - 36px));
      padding: 10px 12px;
      background: #fff;
      border: 1px solid #b8c7e6;
      border-radius: 18px;
      box-shadow: 0 14px 30px rgba(16, 40, 80, 0.22);
    }

    .preview-zoom-pop[hidden] {
      display: none;
    }

    .preview-zoom-pop input[type="range"] {
      flex: 1 1 auto;
      min-width: 90px;
      min-height: 22px;
      accent-color: #102e60;
    }

    .preview-zoom-button {
      width: 32px;
      min-width: 32px;
      height: 32px;
      min-height: 32px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      flex: 0 0 auto;
    }

    .preview-zoom-button svg {
      width: 16px;
      height: 16px;
      stroke: currentColor;
    }

    .preview-fit-action:hover,
    .preview-zoom-main:hover,
    .preview-zoom-button:hover {
      background: #eef4ff;
      color: #001f8f;
      transform: none;
      box-shadow: none;
    }

    .preview-zoom-value {
      min-width: 42px;
      color: #001f8f;
      font: 800 13px Arial, Helvetica, sans-serif;
      text-align: center;
    }

    .preview-zoom-edit {
      display: inline-flex;
      align-items: center;
      gap: 2px;
      color: #001f8f;
      font: 800 13px Arial, Helvetica, sans-serif;
    }

    .preview-zoom-edit input[type="number"] {
      width: 52px;
      min-height: 30px;
      padding: 2px 6px;
      border: 1px solid #b8c7e6;
      border-radius: 10px;
      background: #f7faff;
      color: #001f8f;
      font: 800 13px Arial, Helvetica, sans-serif;
      text-align: center;
      -moz-appearance: textfield;
      appearance: textfield;
    }

    .preview-zoom-edit input::-webkit-outer-spin-button,
    .preview-zoom-edit input::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }

    .preview-toolbar-title {
      flex: 1 1 auto;
      min-width: 140px;
    }

    .preview-toolbar-actions {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 8px;
    }

    .preview-toolbar .preview-print-action,
    .preview-toolbar .preview-download-action {
      border: 0;
      border-radius: 999px;
      padding: 8px 18px;
      background: #102e60;
      color: #fff;
      font-weight: 700;
      cursor: pointer;
      box-shadow: 0 6px 14px rgba(16, 46, 96, 0.22);
    }

    .preview-toolbar .preview-print-action:hover {
      background: #194a92;
    }

    .preview-toolbar .preview-download-action {
      background: #2f6f4a;
      box-shadow: 0 6px 14px rgba(47, 111, 74, 0.22);
    }

    .preview-toolbar .preview-download-action:hover {
      background: #397c55;
    }

    .preview-content {
      display: grid;
      gap: 14px;
      justify-content: center;
      width: max-content;
      min-width: min-content;
      margin: 0 auto;
      padding: 0 20px 20px;
      zoom: var(--preview-zoom, 1);
    }

    .preview-content .print-pages {
      display: grid !important;
      gap: 14px;
    }

    .preview-content .print-page {
      box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
    }

    .preview-content .preview-print-pages {
      display: grid !important;
      gap: 14px;
      position: static !important;
      left: auto !important;
      top: auto !important;
      width: auto !important;
      height: auto !important;
      visibility: visible !important;
    }

    .preview-content .preview-print-pages .print-page {
      background: #fff !important;
      box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
      pointer-events: none;
    }

    .preview-content .preview-missing-line {
      display: block;
      margin: 8px 0 0;
      color: #000;
      font-size: 12pt;
      font-style: italic;
      line-height: 1.25;
    }

    .preview-content .preview-missing-name {
      display: block;
      margin: 0 0 8px;
      color: #000;
      font-size: 16pt;
      font-weight: 700;
      line-height: 1.15;
      text-transform: uppercase;
    }

    .preview-content input,
    .preview-content textarea,
    .preview-content select,
    .preview-content .summary,
    .preview-content .period-box,
    .preview-content [contenteditable="true"],
    .preview-content .is-empty {
      background: #fff !important;
      color: #000 !important;
    }

    .preview-content .period-box.is-empty::before,
    .preview-content .summary.is-empty::before {
      color: #000 !important;
      opacity: 1 !important;
    }

    .preview-content select {
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      background-image: none !important;
    }

    .preview-content .experience-block {
      grid-template-columns: 50mm 1fr !important;
      gap: 6px 16mm !important;
      align-items: start !important;
    }

    .pdf-render-stage .experience-block {
      grid-template-columns: 64mm 1fr !important;
      gap: 6px 10mm !important;
      align-items: start !important;
    }

    .preview-content .experience .line,
    .pdf-render-stage .experience .line {
      width: 100% !important;
      margin-bottom: 4px !important;
      gap: 2px !important;
    }

    .preview-content .experience .line:last-child,
    .pdf-render-stage .experience .line:last-child {
      margin-bottom: 0 !important;
    }

    .preview-content .experience .line strong,
    .pdf-render-stage .experience .line strong {
      flex: 0 0 auto !important;
    }

    /* O periodo ocupa SO a linha 1, como na tela. O "1 / span 2" antigo criava
       uma linha fantasma: .responsibilities tem grid-column 1/-1 e caia para a
       linha 3, a linha 2 ficava vazia e o periodo descia meio row-gap abaixo
       do centro de Empresa/Cargo. E o translateX(8mm) volta para as tres
       saidas: sem ele o periodo colava na margem esquerda, longe dos 58mm em
       que a tela e o PDF direto o centram. */
    .preview-content .period-range {
      grid-row: 1 / 2 !important;
      align-self: center !important;
      justify-self: stretch !important;
      margin-top: 0 !important;
      transform: translateX(8mm) !important;
    }

    .pdf-render-stage .period-range {
      grid-row: 1 / 2 !important;
      align-self: center !important;
      justify-self: stretch !important;
      margin-top: 0 !important;
      transform: translateX(8mm) !important;
    }

    .print-pages .period-range {
      grid-row: 1 / 2 !important;
      align-self: center !important;
      justify-self: stretch !important;
      margin-top: 0 !important;
      transform: translateX(8mm) !important;
    }

    .preview-content .summary,
    .preview-content .responsibility-field,
    .print-pages .summary,
    .print-pages .responsibility-field,
    .pdf-render-stage .summary,
    .pdf-render-stage .responsibility-field {
      text-align: justify !important;
      text-align-last: left !important;
      text-justify: inter-word !important;
    }

    .preview-content .formation-paren,
    .pdf-render-stage .formation-paren,
    .preview-content .period-paren,
    .pdf-render-stage .period-paren {
      padding-left: 0 !important;
      padding-right: 0 !important;
      width: auto !important;
      min-width: 0 !important;
    }

    .preview-content .address-group,
    .pdf-render-stage .address-group,
    .preview-content .formation-line.course-degree,
    .pdf-render-stage .formation-line.course-degree,
    .preview-content .course,
    .pdf-render-stage .course {
      display: inline-flex !important;
      align-items: baseline !important;
      gap: 0 !important;
      column-gap: 0 !important;
      width: auto !important;
    }

    /* Address text must wrap inside the official document margin in preview and print. */
    .preview-content .address-group,
    .pdf-render-stage .address-group,
    .print-pages .address-group {
      display: inline !important;
      max-width: 100% !important;
      overflow-wrap: break-word !important;
      word-break: normal !important;
    }

    /* Preview, print and PDF are final output. Their header values use one
       text flow per row, while the editable document keeps its original
       independent fields and separators. */
    .preview-content .preview-header-row,
    .pdf-render-stage .preview-header-row,
    .print-pages .preview-header-row {
      display: grid !important;
      grid-template-columns: max-content minmax(0, 1fr) !important;
      align-items: start !important;
      column-gap: 4px !important;
      width: 100% !important;
      min-width: 0 !important;
    }

    .preview-content .preview-header-row > strong,
    .pdf-render-stage .preview-header-row > strong,
    .print-pages .preview-header-row > strong {
      grid-column: 1 !important;
      white-space: nowrap !important;
    }

    .preview-content .preview-header-row .preview-header-value,
    .pdf-render-stage .preview-header-row .preview-header-value,
    .print-pages .preview-header-row .preview-header-value {
      grid-column: 2 !important;
      display: block !important;
      width: 100% !important;
      min-width: 0 !important;
      max-width: 100% !important;
      overflow-wrap: anywhere !important;
      word-break: normal !important;
      white-space: normal !important;
    }

    /* Keep the address as one inline flow. The non-breaking separators stay
       attached to the following segment, but a pasted long token can still
       continue safely inside the document margin. */
    .preview-content .preview-header-row .address-flow-text,
    .pdf-render-stage .preview-header-row .address-flow-text,
    .print-pages .preview-header-row .address-flow-text,
    .preview-content .preview-header-row .address-flow-primary,
    .pdf-render-stage .preview-header-row .address-flow-primary,
    .print-pages .preview-header-row .address-flow-primary,
    .preview-content .preview-header-row .address-flow-city,
    .pdf-render-stage .preview-header-row .address-flow-city,
    .print-pages .preview-header-row .address-flow-city {
      display: inline !important;
      min-width: 0 !important;
      max-width: 100% !important;
      overflow-wrap: anywhere !important;
      word-break: normal !important;
      white-space: normal !important;
    }

    .preview-content .preview-header-row .address-flow-city-prefix,
    .pdf-render-stage .preview-header-row .address-flow-city-prefix,
    .print-pages .preview-header-row .address-flow-city-prefix {
      white-space: nowrap !important;
    }

    .preview-content .preview-header-row .address-flow-city-tail,
    .pdf-render-stage .preview-header-row .address-flow-city-tail,
    .print-pages .preview-header-row .address-flow-city-tail {
      overflow-wrap: anywhere !important;
      word-break: normal !important;
    }

    /* Only output-only tokens that exceed a normal word length may split
       character by character. This keeps ordinary Portuguese words intact
       while pasted continuous strings use the remaining line width safely. */
    .preview-content .cv-output-breakable,
    .pdf-render-stage .cv-output-breakable,
    .print-pages .cv-output-breakable {
      overflow-wrap: anywhere !important;
      word-break: break-all !important;
    }

    /* Output-only field values share one safe reading flow. The editor keeps
       the original textarea/input geometry and is intentionally excluded. */
    .preview-content .cv-output-field-value,
    .pdf-render-stage .cv-output-field-value,
    .print-pages .cv-output-field-value {
      display: inline !important;
      min-width: 0 !important;
      max-width: 100% !important;
      overflow-wrap: anywhere !important;
      word-break: normal !important;
    }

    .preview-content .experience-block .line .cv-output-field-value,
    .pdf-render-stage .experience-block .line .cv-output-field-value,
    .print-pages .experience-block .line .cv-output-field-value {
      flex: 1 1 auto !important;
      min-width: 0 !important;
      width: auto !important;
    }

    .preview-content .address-separator,
    .pdf-render-stage .address-separator {
      display: inline-flex !important;
      align-items: baseline !important;
      justify-content: flex-start !important;
      width: auto !important;
      min-width: 0 !important;
      padding: 0 !important;
      margin: 0 4px 0 0 !important;
      line-height: inherit !important;
    }

    .preview-content .formation-line.course-degree .formation-paren:first-of-type,
    .pdf-render-stage .formation-line.course-degree .formation-paren:first-of-type {
      margin-left: 6px !important;
    }

    .preview-content .course-separator,
    .pdf-render-stage .course-separator,
    .preview-content .formation-separator,
    .pdf-render-stage .formation-separator {
      display: inline-flex !important;
      align-items: baseline !important;
      justify-content: center !important;
      width: auto !important;
      min-width: 0 !important;
      height: auto !important;
      line-height: inherit !important;
      padding: 0 !important;
      margin: 0 7px !important;
    }

    .preview-content .degree-field,
    .pdf-render-stage .degree-field,
    .preview-content .modality-field,
    .pdf-render-stage .modality-field {
      text-align: left !important;
      text-align-last: left !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }

    .preview-content .period-range,
    .pdf-render-stage .period-range,
    .print-pages .period-range {
      display: inline-flex !important;
      grid-template-columns: none !important;
      align-items: baseline !important;
      justify-content: center !important;
      gap: 0 !important;
      column-gap: 0 !important;
      width: 100% !important;
    }

    .preview-content .period-box,
    .pdf-render-stage .period-box {
      display: inline !important;
      width: auto !important;
      min-width: 0 !important;
      height: auto !important;
      min-height: 0 !important;
      line-height: inherit !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }

    .preview-content .period-separator,
    .pdf-render-stage .period-separator {
      width: auto !important;
      min-width: 0 !important;
      height: auto !important;
      line-height: inherit !important;
      margin: 0 7px !important;
      padding: 0 !important;
    }

    .preview-content .responsibilities,
    .pdf-render-stage .responsibilities {
      margin-top: 4px !important;
    }

    .pdf-render-stage {
      position: fixed;
      left: 0;
      top: 0;
      width: 210mm;
      height: 297mm;
      overflow: hidden;
      background: #fff;
      pointer-events: none;
      z-index: -1;
    }

    .pdf-render-stage .toolbar,
    .pdf-render-stage .formation-controls,
    .pdf-render-stage .summary-controls,
    .pdf-render-stage .responsibility-controls {
      display: none !important;
    }

    .pdf-render-stage .print-page {
      box-shadow: none !important;
      width: 210mm !important;
      height: 297mm !important;
      min-height: 297mm !important;
      margin: 0 !important;
      overflow: hidden !important;
      padding: 25mm 25mm 0 25mm !important;
      display: flex !important;
      flex-direction: column !important;
      background: #fff !important;
    }

    .pdf-render-stage .print-content {
      flex: 1 1 auto !important;
      min-height: 0 !important;
      overflow: hidden !important;
      padding-bottom: 6mm !important;
      --left-axis: 0;
    }

    .pdf-render-stage input,
    .pdf-render-stage textarea,
    .pdf-render-stage select,
    .pdf-render-stage .summary,
    .pdf-render-stage .period-box,
    .pdf-render-stage [contenteditable="true"],
    .pdf-render-stage .is-empty {
      background: #fff !important;
      color: #000 !important;
    }

    .pdf-render-stage .period-box.is-empty::before,
    .pdf-render-stage .summary.is-empty::before {
      color: #000 !important;
      opacity: 1 !important;
    }

    .pdf-render-stage select {
      appearance: none !important;
      -webkit-appearance: none !important;
      -moz-appearance: none !important;
      background-image: none !important;
    }

    .pdf-render-stage .footer {
      position: static !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      flex: 0 0 17mm !important;
      height: 17mm !important;
      margin: 0 -25mm !important;
      background: var(--footer-blue) !important;
    }

    .pdf-render-stage .footer img {
      width: 181px !important;
      height: auto !important;
    }

    .pdf-busy {
      position: fixed;
      inset: 0;
      z-index: 100;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: transparent;
      color: #102a62;
      font: 700 18px Arial, Helvetica, sans-serif;
      pointer-events: auto;
    }

    .pdf-busy[hidden] {
      display: none;
    }

    .pdf-busy-box {
      width: min(420px, calc(100vw - 40px));
      border: 1px solid rgba(0, 31, 143, 0.16);
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.94);
      box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
      padding: 18px 20px;
      text-align: center;
    }

    .pdf-busy-title,
    .pdf-busy-detail {
      display: block;
    }

    .pdf-busy-title {
      color: #001f8f;
      font-size: 18px;
      line-height: 1.25;
    }

    .pdf-busy-detail {
      margin-top: 6px;
      color: #405170;
      font-size: 13px;
      font-weight: 600;
      line-height: 1.4;
    }

    .pdf-busy-progress {
      position: relative;
      overflow: hidden;
      height: 4px;
      margin-top: 14px;
      border-radius: 999px;
      background: #dbe6ff;
    }

    .pdf-busy-progress::before {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      left: -42%;
      width: 42%;
      border-radius: inherit;
      background: #001f8f;
      animation: horusBusySweep 1.25s ease-in-out infinite;
    }

    body.horus-guard-active {
      cursor: progress;
    }

    body.horus-guard-active #sourcePage {
      pointer-events: none;
      user-select: none;
    }

    button[data-horus-guard-disabled="1"] {
      cursor: progress !important;
      pointer-events: none !important;
      transform: none !important;
    }

    @keyframes horusBusySweep {
      0% { left: -42%; }
      52% { left: 100%; }
      100% { left: 100%; }
    }

    @media print {
      .pdf-busy {
        display: none !important;
      }
    }

    .page {
      width: var(--page-w);
      min-height: var(--page-h);
      margin: 18px auto;
      background: #fff;
      position: relative;
      padding: 25mm 25mm 24mm 25mm;
      box-shadow: 0 0 12px rgba(0, 0, 0, 0.18);
      display: flex;
      flex-direction: column;
    }

    .content {
      flex: 1;
      padding-bottom: 14mm;
      --left-axis: 0;
      position: relative;
    }

    .profile-photo-slot {
      position: absolute;
      top: 0;
      right: 0;
      width: 24mm;
      height: 32mm;
      border: 0.20px solid #555;
      outline: 0;
      outline-offset: 0;
      box-shadow: none;
      background: #fff;
      overflow: visible;
      display: flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      padding: 0;
    }

    .profile-photo-slot[hidden] {
      display: none !important;
    }

    .profile-photo-slot img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
      background: #fff;
    }

    .profile-photo-slot img:not([src]),
    .profile-photo-slot img[src=""] {
      display: none;
    }

    .profile-photo-slot:has(img:not([src]))::before,
    .profile-photo-slot:has(img[src=""])::before {
      content: "Foto 3x4";
      font-family: Arial, Helvetica, sans-serif;
      font-size: 9pt;
      font-weight: 700;
      letter-spacing: 0.2px;
      color: #555;
    }

    .content.has-profile-photo > .name,
    .content.has-profile-photo > .row {
      max-width: calc(100% - 30mm);
    }

    .content.has-profile-photo > .row {
      margin-top: 7.8px;
    }

    .content.has-profile-photo > .header-job-row {
      margin-top: 7.8px;
    }

    input,
    textarea,
    select,
    .period-box,
    .summary {
      border: 0.20px solid #555;
      background: var(--field);
      color: #000;
      font-family: Arial, Helvetica, sans-serif;
      font-size: 12pt;
      line-height: 22px;
      height: 24px;
      padding: 1px 3px;
      outline: 0;
      vertical-align: baseline;
    }

    input:not(.summary-lines):not(.responsibility-lines),
    select {
      width: auto;
      min-width: 0;
      max-width: 100%;
      field-sizing: content;
      display: inline-block;
    }

    .auto-sized-field {
      width: var(--auto-field-width) !important;
      flex: 0 0 auto !important;
      min-width: 0 !important;
    }

    .name.auto-sized-field {
      display: inline-block !important;
      width: var(--auto-field-width) !important;
      max-width: 100% !important;
    }


    input[type="number"]::-webkit-outer-spin-button,
    input[type="number"]::-webkit-inner-spin-button {
      margin: 0;
      -webkit-appearance: none;
    }

    input[type="number"] {
      appearance: textfield;
      -moz-appearance: textfield;
    }

    .align-box {
      margin-left: 0;
      padding-left: 0;
      padding-right: 0;
    }

    input::placeholder,
    textarea::placeholder {
      color: #4f4f4f;
      opacity: 1;
    }

    .period-box.is-empty::before {
      content: attr(data-placeholder);
      color: #000;
      opacity: 1;
      white-space: pre-line;
    }

    .is-placeholder {
      color: #555;
    }

    .summary.is-empty::before {
      content: attr(data-placeholder);
      color: #4f4f4f;
      white-space: pre-wrap;
      pointer-events: none;
      display: block;
    }

    .measure {
      position: absolute;
      left: -9999px;
      top: -9999px;
      visibility: hidden;
      white-space: pre-wrap;
      overflow-wrap: anywhere;
      word-break: normal;
      font-family: Arial, Helvetica, sans-serif;
      font-size: 12pt;
      line-height: 1.25;
      padding: 3px 4px;
      border: 0.20px solid #555;
    }

    .name {
      width: auto;
      max-width: 100%;
      height: 36px;
      line-height: 36px;
      font-size: 18pt;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.3px;
      padding-left: 0;
      padding-right: 0;
      display: inline-block;
    }

    .row {
      display: flex;
      align-items: center;
      gap: 3px;
      margin-top: 7.8px;
      font-size: 12pt;
      margin-left: var(--left-axis);
    }

    .row strong {
      font-weight: 700;
    }

    .address {
      width: auto;
    }

    .address-group {
      display: grid;
      grid-template-columns: minmax(0, max-content) max-content minmax(0, max-content) max-content minmax(0, max-content);
      gap: 0;
      align-items: center;
      width: auto;
      min-width: 0;
      max-width: 100%;
    }

    .address-separator {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 24px;
      color: #000;
      font-weight: 700;
      font-size: 12pt;
      line-height: 24px;
      padding: 0 1.5px;
    }

    .address-separator.comma {
      justify-content: flex-start;
      padding-left: 0;
      padding-right: 3px;
    }

    .address-city {
      text-align: center;
    }

    .phone {
      width: auto;
    }

    .email {
      width: auto;
    }

    .job {
      width: auto;
    }

    .divider {
      height: 0;
      border: 0.20px solid #555;
      border-top: 0.7px solid #222;
      margin: 12px 0;
      width: 100%;
      display: block;
      flex: 0 0 auto;
      margin-left: 0;
    }

    h2 {
      font-size: 14pt;
      margin: 0 0 12px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.2px;
      margin-left: 0;
    }

    .summary {
      width: 100%;
      min-height: 0;
      overflow: hidden;
      resize: none;
      text-align: left;
      text-justify: auto;
      hyphens: none;
      white-space: pre-wrap;
      overflow-wrap: break-word;
      word-break: normal;
      line-height: 1.28;
      height: auto;
      padding: 2px 0 3px;
      margin-left: var(--left-axis);
    }

    #summaryBox {
      min-height: 0;
    }

    #summaryBox.has-user-content,
    .responsibility-field.has-user-content {
      padding-top: 0;
      padding-bottom: 0;
      text-align: justify;
      text-align-last: left;
      text-justify: inter-word;
    }

    .summary-controls {
      display: none;
      gap: 8px;
      margin: 8px 0 0;
      align-items: center;
      font-size: 10pt;
      margin-left: var(--left-axis);
    }

    .summary-lines {
      width: 20mm;
      text-align: center;
    }

    .formation-list {
      display: grid;
      gap: 12px;
      margin-left: var(--left-axis);
    }

    .course-list {
      display: grid;
      gap: 8px;
      margin-left: 0;
    }

    .formation {
      display: grid;
      gap: 3px;
      align-items: start;
    }

    .formation-line {
      display: grid;
      grid-template-columns: max-content 16px max-content;
      gap: 0;
      align-items: center;
    }

    .formation-line.course-degree {
      /* flex (era grid de 6 colunas): aceita o seletor de modalidade condicional
         sem quebrar em segunda linha; visual idêntico com itens em linha e gap 0 */
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0;
    }

    .formation-period-group {
      display: contents;
    }

    .formation-period-group[hidden] {
      display: none;
    }

    .formation-period {
      text-align: left;
      padding-left: 0;
      padding-right: 0;
    }

    .formation-paren {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 24px;
      color: #000;
      font-weight: 700;
      font-size: 12pt;
      line-height: 24px;
      padding: 0 2px;
    }

    .formation-separator {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 24px;
      color: #000;
      font-weight: 700;
      font-size: 12pt;
      line-height: 24px;
      width: 16px;
      padding: 0;
    }

    .course {
      /* flex com quebra (era grid de colunas fixas): texto longo do curso continua
         na linha até a margem e o restante (instituição/carga) desce alinhado */
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0;
    }

    .course > input,
    .course > textarea {
      max-width: 100%;
    }

    .course-separator {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 16px;
      height: 24px;
      line-height: 24px;
      padding: 0;
      color: #000;
      font-weight: 700;
      font-size: 12pt;
      vertical-align: middle;
    }

    .formation input {
      width: auto;
      justify-self: start;
      text-align: left;
      padding-left: 0;
      padding-right: 0;
    }

    .formation select {
      justify-self: start;
      padding-left: 0;
    }

    .course input {
      width: auto;
      text-align: left;
      justify-self: start;
      padding-left: 0;
      padding-right: 0;
    }

    .year-field,
    .address-city {
      text-align: center !important;
      text-align-last: center !important;
      justify-self: start !important;
    }

    .formation input.year-field,
    .course input.year-field,
    input.address-city {
      text-align: center !important;
      text-align-last: center !important;
    }

    /* O ano da formação virou seletor; o dos cursos complementares segue campo
       de digitação. Estas regras dão ao seletor a mesma aparência do vizinho
       "Grau de Instrução", para a linha continuar lendo como texto do currículo
       e não como formulário. */
    .formation select.year-field {
      text-align: center !important;
      text-align-last: center !important;
    }

    .degree-field {
      text-align: center;
      text-align-last: center;
      justify-self: center;
    }

    .modality-field {
      text-align: center;
      text-align-last: center;
      justify-self: center;
    }

    .modality-group {
      display: contents;
    }

    .modality-group[hidden] {
      display: none !important;
    }

    .modality-group[hidden] .modality-field {
      display: none !important;
    }

    .formation-controls {
      display: flex;
      gap: 10px;
      margin-top: 14px;
      margin-left: var(--left-axis);
    }

    .formation-controls button,
    .summary-controls button,
    .responsibility-controls button {
      min-width: 34mm;
      border: 0.20px solid #555;
      border-radius: 999px;
      color: #fff;
      box-shadow: 0 6px 14px rgba(15, 23, 42, 0.14);
    }

    .formation-controls button:first-child,
    .summary-controls button:first-of-type,
    .responsibility-controls button:first-of-type {
      background: linear-gradient(135deg, #4f9f72 0%, #2f6f4a 100%);
      box-shadow: 0 7px 16px rgba(47, 111, 74, 0.18);
    }

    .formation-controls button:first-child:hover,
    .summary-controls button:first-of-type:hover,
    .responsibility-controls button:first-of-type:hover {
      background: linear-gradient(135deg, #5ead80 0%, #397c55 100%);
      box-shadow: 0 9px 20px rgba(47, 111, 74, 0.22);
    }

    .formation-controls button:last-child,
    .summary-controls button:last-of-type,
    .responsibility-controls button:last-of-type {
      background: linear-gradient(135deg, #b85b5b 0%, #7c3838 100%);
      box-shadow: 0 7px 16px rgba(124, 56, 56, 0.18);
    }

    .formation-controls button:last-child:hover,
    .summary-controls button:last-of-type:hover,
    .responsibility-controls button:last-of-type:hover {
      background: linear-gradient(135deg, #c46b6b 0%, #8d4242 100%);
      box-shadow: 0 9px 20px rgba(124, 56, 56, 0.22);
    }

    .experience {
      display: grid;
      gap: 12px;
      margin-left: var(--left-axis);
    }

    .experience-block {
      display: grid;
      grid-template-columns: 50mm 1fr;
      gap: 7px 16mm;
      align-items: center;
    }

    .experience-block > * {
      min-width: 0;
    }

    .experience-block > .period-range {
      grid-row: 1 / 2;
      align-self: center;
      justify-self: center;
      transform: translateX(8mm);
    }

    .experience .line {
      display: flex;
      align-items: baseline;
      gap: 2px;
      margin-bottom: 8px;
      width: 100%;
    }

    .experience .line:last-child {
      margin-bottom: 0;
    }

    .experience .line strong {
      flex: 0 0 auto;
    }

    .experience .company,
    .experience .role {
      flex: 1;
      width: auto;
    }

    .period-range {
      display: grid;
      grid-template-columns: max-content 20mm 3mm 20mm max-content;
      align-items: center;
      gap: 0.5mm;
      width: auto;
    }

    .period {
      width: 20mm;
      text-align: center;
      white-space: nowrap;
      padding-left: 0;
      padding-right: 0;
      font-size: 12pt;
    }

    .period-box {
      width: 20mm;
      height: 34px;
      min-height: 34px;
      line-height: 15px;
      padding: 0;
      text-align: center;
      white-space: pre-line;
      overflow: hidden;
      font-size: 12pt;
      color: #000;
      font-weight: 500;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .period-separator {
      align-self: center;
      height: 22px;
      line-height: 22px;
      text-align: center;
      font-weight: 700;
    }

    .period-paren {
      align-self: center;
      height: 22px;
      line-height: 22px;
      font-weight: 700;
    }

    .responsibilities {
      grid-column: 1 / -1;
      margin-top: 2px;
    }

    .responsibilities strong {
      display: block;
      margin-bottom: 6px;
      font-size: 12pt;
    }

    .responsibility-field {
      width: 100%;
      min-height: 0;
      resize: none;
      overflow-wrap: break-word;
      word-break: normal;
      text-align: left;
      text-justify: auto;
      hyphens: none;
      padding-left: 0;
      padding-right: 0;
      line-height: 1.28;
      padding-top: 2px;
      padding-bottom: 4px;
    }

    .responsibility-controls {
      display: none;
      gap: 8px;
      align-items: center;
      margin: 8px 0 0;
      font-size: 10pt;
    }

    .responsibility-lines {
      width: 20mm;
      text-align: center;
    }

    .footer {
      margin-left: -25mm;
      margin-right: -25mm;
      margin-bottom: -24mm;
      height: 17mm;
      background: var(--footer-blue);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .footer img {
      width: 190px;
      height: auto;
      display: block;
      margin-inline: auto;
      object-position: 50% 50%;
    }

    .footer.cv-footer-foundation {
      position: relative;
      flex-direction: column;
      align-items: stretch;
      justify-content: flex-start;
      overflow: hidden;
    }

    .footer.cv-footer-foundation.cv-footer-has-addon {
      height: 27mm;
      background: transparent;
    }

    .cv-footer-addon-layer {
      display: none;
      flex: 0 0 10mm;
      width: 100%;
      min-height: 0;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      background: #fff;
      border-top: 1px solid #d7e0f0;
    }

    .cv-footer-has-addon > .cv-footer-addon-layer {
      display: flex;
    }

    .cv-footer-addon-layer .cv-footer-addon-image {
      width: auto !important;
      height: auto !important;
      max-width: calc(100% - 20mm) !important;
      max-height: 8mm !important;
      object-fit: contain !important;
    }

    .cv-footer-official-band {
      position: relative;
      flex: 0 0 17mm;
      width: 100%;
      min-height: 17mm;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--footer-blue);
    }

    .cv-footer-official-band .cv-footer-official-image {
      position: absolute !important;
      left: calc(50% + var(--footer-logo-optical-shift)) !important;
      top: 50% !important;
      width: 190px !important;
      height: auto !important;
      max-height: 13mm !important;
      object-fit: contain !important;
      object-position: 50% 50% !important;
      margin-inline: auto !important;
      transform: translate(-50%, -50%) !important;
    }

    @media print {
      @page {
        size: A4 portrait;
        margin: 0;
      }

      html,
      body {
        width: 210mm;
        min-height: 0;
        margin: 0;
        padding: 0;
      }

      body {
        background: #fff !important;
        background-image: none !important;
      }

      html::after {
        display: none;
      }

      .toolbar,
      .settings-panel,
      .formation-controls,
      .summary-controls,
      .responsibility-controls,
      .print-footer-runtime {
        display: none !important;
      }

      #sourcePage {
        display: none !important;
      }

      .print-pages {
        display: block !important;
      }

      .print-page {
        box-shadow: none;
        width: 210mm;
        height: 297mm;
        min-height: 297mm;
        margin: 0;
        overflow: hidden;
        padding: 25mm 25mm 0 25mm;
        display: flex;
        flex-direction: column;
        background: #fff;
        break-after: page;
        page-break-after: always;
      }

      .print-page:last-child {
        break-after: auto;
        page-break-after: auto;
      }

      .print-content {
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
        padding-bottom: 6mm;
        --left-axis: 0;
      }

      .print-page .footer {
        position: static;
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 17mm;
        height: 17mm;
        margin: 0 -25mm;
        background: var(--footer-blue) !important;
        z-index: auto;
      }

      .print-page .footer img {
        width: 181px;
        height: auto;
      }

      h2,
      .divider {
        break-after: avoid;
        page-break-after: avoid;
      }

      .formation,
      .course,
      .experience-block {
        break-inside: avoid;
        page-break-inside: avoid;
      }

      .experience-block,
      .formation,
      .course {
        break-before: auto;
        page-break-before: auto;
      }

      .experience-block {
        grid-template-columns: 50mm 1fr !important;
        gap: 6px 16mm !important;
        align-items: start !important;
      }

      .experience .line {
        width: 100% !important;
        margin-bottom: 4px !important;
        gap: 2px !important;
      }

      .experience .line:last-child {
        margin-bottom: 0 !important;
      }

      .experience .line strong {
        flex: 0 0 auto !important;
      }

      .period-range {
        align-self: start !important;
        justify-self: center !important;
        margin-top: 0 !important;
        transform: translateX(8mm) !important;
      }

      .responsibilities {
        margin-top: 4px !important;
      }

      input,
      textarea,
      select,
      .summary,
      .footer {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }

      input,
      select,
      textarea,
      .summary,
      .period-box,
      [contenteditable="true"],
      .is-empty {
        border-radius: 0;
        background: #fff !important;
        color: #000 !important;
      }

      .period-box.is-empty::before,
      .summary.is-empty::before {
        color: #000 !important;
        opacity: 1 !important;
      }

      select {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background-image: none !important;
      }

      input::placeholder,
      textarea::placeholder,
      .summary.is-empty::before {
        color: #000 !important;
      }

      select.is-placeholder {
        color: transparent !important;
      }
    }
    .pdf-exporting input,
    .pdf-exporting textarea,
    .pdf-exporting select,
    .pdf-exporting .summary,
    .pdf-exporting .period-box,
    .pdf-exporting [contenteditable="true"],
    .pdf-exporting .is-empty {
      background: #fff !important;
      color: #000 !important;
    }

    .pdf-exporting .period-box.is-empty::before,
    .pdf-exporting .summary.is-empty::before {
      color: #000 !important;
      opacity: 1 !important;
    }

    .pdf-exporting select {
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      background-image: none !important;
    }
    /* Forca preto vivo em todos os campos editaveis e textos visuais. */
    input,
    textarea,
    select,
    option,
    .summary,
    .period-box,
    .is-placeholder {
      color: #000 !important;
      opacity: 1 !important;
    }

    input::placeholder,
    textarea::placeholder,
    .summary.is-empty::before,
    .period-box.is-empty::before {
      color: #000 !important;
      opacity: 1 !important;
    }
    /* Responsividade de tela: preserva o PDF A4, mas adapta a edicao em PC, tablet e celular. */
    @media screen and (max-width: 820px) {
      body {
        overflow-x: hidden;
      }

      .toolbar {
        flex-wrap: wrap;
        padding: 12px;
      }

      .download-button {
        width: min(100%, 320px);
      }

      .page {
        width: calc(100vw - 20px);
        min-height: auto;
        margin: 10px auto;
        padding: 18mm 8mm 18mm 8mm;
      }

      .content {
        --left-axis: 0;
        padding-bottom: 8mm;
      }

      input,
      textarea,
      select,
      .summary,
      .period-box {
        max-width: 100%;
        min-width: 0;
      }

      .name {
        width: 100%;
      }

      .row {
        display: grid;
        grid-template-columns: max-content minmax(0, 1fr);
        column-gap: 4px;
        align-items: baseline;
      }

      .address,
      .email,
      .job {
        width: auto;
      }

      .address-group {
        width: auto;
        grid-template-columns: max-content max-content max-content max-content max-content;
      }

      .formation {
        gap: 4px 0;
      }

      .formation-line {
        grid-template-columns: max-content 16px max-content;
      }

      .course {
        grid-template-columns: max-content 16px max-content 16px max-content;
        gap: 0;
      }

      .experience-block {
        grid-template-columns: 1fr;
        gap: 6px;
      }

      .experience-block > .period-range {
        justify-self: center;
        transform: translateX(0);
      }

      .experience .line {
        width: 100%;
      }

      .formation-controls,
      .summary-controls,
      .responsibility-controls {
        flex-wrap: wrap;
      }
    }

    @media screen and (max-width: 560px) {
      .page {
        width: calc(100vw - 12px);
        margin: 6px auto;
        padding: 14mm 5mm 16mm 5mm;
      }

      .name {
        font-size: 17pt;
        height: auto;
        line-height: 1.05;
      }

      h2 {
      font-size: 14pt;
      }

      .row {
        grid-template-columns: 1fr;
        gap: 1px;
        margin-bottom: 3px;
      }

      .row strong {
        line-height: 1.15;
      }

      .formation,
      .course {
        grid-template-columns: 1fr;
      }

      .course-separator {
        display: none;
      }

      .degree-field,
      .modality-field,
      .year-field,
      .course input {
        width: auto;
      }

      .experience .line {
        display: grid;
        grid-template-columns: max-content minmax(0, 1fr);
        gap: 2px;
      }

      .experience .line strong {
        flex: none;
      }

      .period-range {
        width: auto;
        grid-template-columns: max-content minmax(0, 1fr) 5mm minmax(0, 1fr) max-content;
      }

      .period-box {
        width: 100%;
      }

      .formation-controls button,
      .summary-controls button,
      .responsibility-controls button {
        min-width: 0;
        flex: 1 1 145px;
      }

      .footer {
        margin-left: -5mm;
        margin-right: -5mm;
        margin-bottom: -16mm;
      }
    }
    body.pdf-exporting .toolbar,
    body.pdf-exporting .formation-controls,
    body.pdf-exporting .summary-controls,
    body.pdf-exporting .responsibility-controls {
      display: none !important;
    }

    /* Regra final: campos compactos devem ocupar apenas o tamanho do texto. */
    #sourcePage input.auto-sized-field:not(.summary-lines):not(.responsibility-lines),
    #sourcePage select.auto-sized-field,
    #sourcePage input.name.align-box,
    #sourcePage input.name.align-box:focus,
    #sourcePage input.name.align-box.auto-sized-field {
      display: inline-block !important;
      width: var(--auto-field-width, fit-content) !important;
      min-width: 0 !important;
      max-width: 100% !important;
      flex: 0 0 auto !important;
    }
  
    .preview-page .name.preview-missing {
      font-size: 16pt !important;
      font-weight: 700 !important;
      text-transform: uppercase !important;
    }
    .preview-page .preview-single-line {
      display: block !important;
      width: max-content !important;
      max-width: none !important;
      white-space: nowrap !important;
      overflow: visible !important;
    }
    .preview-page .preview-block-note {
      display: block !important;
      width: 100% !important;
      max-width: 100% !important;
      margin: 2mm 0 4mm;
    }    /* Campo do nome: nunca deve ocupar a linha inteira; acompanha o texto digitado. */
    #sourcePage input.name.name-fit,
    #sourcePage input.name.name-fit:focus,
    #sourcePage input.name.name-fit.auto-sized-field {
      display: inline-block !important;
      width: var(--name-fit-width, 1.6ch) !important;
      min-width: 1.6ch !important;
      max-width: 100% !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
      flex: 0 0 auto !important;
    }
  
    /* Correcao final: a moldura 3x4 nao pode contaminar campos, botoes ou divisorias. */
    #sourcePage input,
    #sourcePage textarea,
    #sourcePage select,
    #sourcePage .period-box,
    #sourcePage .summary,
    #sourcePage .responsibility-field,
    .preview-content input,
    .preview-content textarea,
    .preview-content select,
    .preview-content .period-box,
    .preview-content .summary,
    .preview-content .responsibility-field,
    .print-pages input,
    .print-pages textarea,
    .print-pages select,
    .print-pages .period-box,
    .print-pages .summary,
    .print-pages .responsibility-field,
    .pdf-render-stage input,
    .pdf-render-stage textarea,
    .pdf-render-stage select,
    .pdf-render-stage .period-box,
    .pdf-render-stage .summary,
    .pdf-render-stage .responsibility-field {
      border: 0 !important;
      outline: 0 !important;
      box-shadow: none !important;
    }

    /* O campo mede somente o texto. O host reserva separadamente a faixa da IA,
       evitando que o rodape gere uma area branca dentro do conteudo editavel. */
    #sourcePage #summaryBox,
    #sourcePage .responsibilities .responsibility-field {
      padding-bottom: 3px !important;
    }
    .preview-content .summary,
    .preview-page .summary,
    .print-pages .summary,
    .pdf-render-stage .summary,
    .preview-content .responsibility-field,
    .preview-page .responsibility-field,
    .print-pages .responsibility-field,
    .pdf-render-stage .responsibility-field {
      box-shadow: none !important;
      padding-bottom: 3px !important;
      height: auto !important;
    }

    #sourcePage .divider,
    .preview-content .divider,
    .print-pages .divider,
    .pdf-render-stage .divider {
      border: 0 !important;
      /* 1px inteiro sobrevive ao CSS zoom fracionario (0.7px * zoom arredondava a 0 -> a linha sumia) */
      border-top: 1px solid #222 !important;
    }

    #sourcePage .profile-photo-slot,
    .preview-content .profile-photo-slot,
    .print-pages .profile-photo-slot,
    .pdf-render-stage .profile-photo-slot {
      border: 0 !important;
      outline: 0 !important;
      box-shadow: inset 0 0 0 0.5px #555 !important;
      overflow: visible !important;
      background: #fff !important;
    }

    .download-button,
    .settings-button,
    .settings-add,
    .settings-remove,
    .photo-preview-change,
    .formation-controls button,
    .summary-controls button,
    .responsibility-controls button {
      border: 0 !important;
    }
  
    #sourcePage .profile-photo-slot::after,
    .preview-content .profile-photo-slot::after,
    .print-pages .profile-photo-slot::after,
    .pdf-render-stage .profile-photo-slot::after {
      content: "";
      position: absolute;
      inset: 0;
      border: 0.25px solid #555;
      box-sizing: border-box;
      pointer-events: none;
      z-index: 2;
    }

    #sourcePage .profile-photo-slot img,
    .preview-content .profile-photo-slot img,
    .print-pages .profile-photo-slot img,
    .pdf-render-stage .profile-photo-slot img {
      position: relative;
      z-index: 1;
    }
  
    /* Correcao final reforcada: campos sem moldura e foto com moldura propria. */
    #sourcePage input:not([type="file"]),
    #sourcePage textarea,
    #sourcePage select,
    #sourcePage [contenteditable="true"],
    #sourcePage .align-box,
    #sourcePage .auto-sized-field,
    #sourcePage .summary,
    #sourcePage .responsibility-field,
    #sourcePage .period-box,
    .preview-content input:not([type="file"]),
    .preview-content textarea,
    .preview-content select,
    .preview-content [contenteditable="true"],
    .preview-content .align-box,
    .preview-content .auto-sized-field,
    .preview-content .summary,
    .preview-content .responsibility-field,
    .preview-content .period-box,
    .preview-page input:not([type="file"]),
    .preview-page textarea,
    .preview-page select,
    .preview-page [contenteditable="true"],
    .preview-page .align-box,
    .preview-page .auto-sized-field,
    .preview-page .summary,
    .preview-page .responsibility-field,
    .preview-page .period-box,
    .print-pages input:not([type="file"]),
    .print-pages textarea,
    .print-pages select,
    .print-pages [contenteditable="true"],
    .print-pages .align-box,
    .print-pages .auto-sized-field,
    .print-pages .summary,
    .print-pages .responsibility-field,
    .print-pages .period-box,
    .pdf-render-stage input:not([type="file"]),
    .pdf-render-stage textarea,
    .pdf-render-stage select,
    .pdf-render-stage [contenteditable="true"],
    .pdf-render-stage .align-box,
    .pdf-render-stage .auto-sized-field,
    .pdf-render-stage .summary,
    .pdf-render-stage .responsibility-field,
    .pdf-render-stage .period-box {
      border: 0 !important;
      outline: 0 !important;
      box-shadow: none !important;
      -webkit-appearance: none !important;
      appearance: none !important;
    }

    #sourcePage .profile-photo-slot,
    .preview-content .profile-photo-slot,
    .preview-page .profile-photo-slot,
    .print-pages .profile-photo-slot,
    .pdf-render-stage .profile-photo-slot {
      border: 0 !important;
      outline: 0 !important;
      box-shadow: none !important;
      overflow: visible !important;
      background: #fff !important;
      position: relative !important;
    }

    #sourcePage .profile-photo-slot::after,
    .preview-content .profile-photo-slot::after,
    .preview-page .profile-photo-slot::after,
    .print-pages .profile-photo-slot::after,
    .pdf-render-stage .profile-photo-slot::after {
      content: "" !important;
      position: absolute !important;
      inset: 0 !important;
      border: 0.25px solid #555 !important;
      box-sizing: border-box !important;
      pointer-events: none !important;
      z-index: 5 !important;
    }

    #sourcePage .profile-photo-slot img,
    .preview-content .profile-photo-slot img,
    .preview-page .profile-photo-slot img,
    .print-pages .profile-photo-slot img,
    .pdf-render-stage .profile-photo-slot img {
      position: relative !important;
      z-index: 1 !important;
    }

    @media print {
      input:not([type="file"]),
      textarea,
      select,
      [contenteditable="true"],
      .align-box,
      .auto-sized-field,
      .summary,
      .responsibility-field,
      .period-box {
        border: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
        -webkit-appearance: none !important;
        appearance: none !important;
      }

      .profile-photo-slot {
        border: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
        position: relative !important;
      }

      .profile-photo-slot::after {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        border: 0.25px solid #555 !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
        z-index: 5 !important;
      }
    }
  
    /* Correcao final da posicao da foto 3x4: manter no canto superior direito do cabecalho. */
    #sourcePage .profile-photo-slot,
    .preview-content .profile-photo-slot,
    .preview-page .profile-photo-slot,
    .print-pages .profile-photo-slot,
    .pdf-render-stage .profile-photo-slot {
      position: absolute !important;
      top: 0 !important;
      right: 0 !important;
      width: 24mm !important;
      height: 32mm !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      padding: 0 !important;
      margin: 0 !important;
      box-sizing: border-box !important;
      border: 0 !important;
      outline: 0 !important;
      box-shadow: none !important;
      overflow: hidden !important;
      background: #fff !important;
    }

    #sourcePage .profile-photo-slot[hidden],
    .preview-content .profile-photo-slot[hidden],
    .preview-page .profile-photo-slot[hidden],
    .print-pages .profile-photo-slot[hidden],
    .pdf-render-stage .profile-photo-slot[hidden] {
      display: none !important;
    }

    @media print {
      .profile-photo-slot {
        position: absolute !important;
        top: 0 !important;
        right: 0 !important;
        width: 24mm !important;
        height: 32mm !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        border: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
        overflow: hidden !important;
        background: #fff !important;
      }
    }

    #sourcePage .profile-photo-slot::after,
    .preview-content .profile-photo-slot::after,
    .preview-page .profile-photo-slot::after,
    .print-pages .profile-photo-slot::after,
    .pdf-render-stage .profile-photo-slot::after {
      display: block !important;
      content: "" !important;
      position: absolute !important;
      inset: 0 !important;
      border: 0.6px solid #111 !important;
      box-sizing: border-box !important;
      pointer-events: none !important;
      z-index: 5 !important;
    }

    #sourcePage .profile-photo-slot img,
    .preview-content .profile-photo-slot img,
    .preview-page .profile-photo-slot img,
    .print-pages .profile-photo-slot img,
    .pdf-render-stage .profile-photo-slot img {
      position: absolute !important;
      inset: 0 !important;
      width: 100% !important;
      height: 100% !important;
      object-fit: cover !important;
      object-position: center center !important;
      display: block !important;
      background: #fff !important;
    }

    #sourcePage .profile-photo-slot img:not([src]),
    #sourcePage .profile-photo-slot img[src=""],
    .preview-content .profile-photo-slot img:not([src]),
    .preview-content .profile-photo-slot img[src=""],
    .preview-page .profile-photo-slot img:not([src]),
    .preview-page .profile-photo-slot img[src=""],
    .print-pages .profile-photo-slot img:not([src]),
    .print-pages .profile-photo-slot img[src=""],
    .pdf-render-stage .profile-photo-slot img:not([src]),
    .pdf-render-stage .profile-photo-slot img[src=""] {
      display: none !important;
    }

    #sourcePage .profile-photo-slot::before,
    .preview-content .profile-photo-slot::before,
    .preview-page .profile-photo-slot::before,
    .print-pages .profile-photo-slot::before,
    .pdf-render-stage .profile-photo-slot::before {
      position: relative;
      z-index: 1;
      color: #111;
    }
  
    /* Refinamento profissional dos controles da foto 3x4. */
    .photo-adjust-panel {
      display: grid !important;
      grid-template-columns: 1fr !important;
      gap: 6px !important;
      margin: 0 0 11px !important;
      padding: 9px 11px !important;
      border: 1px solid #d7deea !important;
      border-radius: 13px !important;
      background: #f8fbff !important;
      font-size: 10.5px !important;
      font-weight: 800 !important;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
    }

    .photo-adjust-panel label {
      display: grid !important;
      grid-template-columns: 72px 1fr !important;
      align-items: center !important;
      gap: 10px !important;
      margin: 0 !important;
    }

    .photo-adjust-panel input[type="range"] {
      width: 100% !important;
      height: 18px !important;
      margin: 0 !important;
      accent-color: #1f4fd6 !important;
      cursor: pointer !important;
    }

    .photo-adjust-panel input[type="range"]::-webkit-slider-runnable-track {
      height: 4px !important;
      border-radius: 999px !important;
      background: #d8e0ef !important;
    }

    .photo-adjust-panel input[type="range"]::-webkit-slider-thumb {
      margin-top: -5px !important;
    }
  
    
    .photo-preview-frame {
      position: relative;
      overflow: hidden;
    }

    .profile-photo-center-guide {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 50%;
      width: 1px;
      transform: translateX(-50%);
      background: linear-gradient(to bottom, transparent 0%, rgba(12, 38, 78, 0.20) 16%, rgba(12, 38, 78, 0.20) 84%, transparent 100%);
      pointer-events: none;
      z-index: 4;
    }
  
    .photo-processing-main {
      color: #071a3a;
      font-size: 0.88rem;
      font-weight: 900;
      margin-top: 0.2rem;
    }

    .photo-processing-detail {
      color: #263f66;
      font-size: 0.74rem;
      font-weight: 750;
      line-height: 1.25;
      margin: 0 auto;
      max-width: 285px;
      text-align: center;
    }

    .photo-processing-track {
      display: grid;
      gap: 0.35rem;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      margin-top: 0.65rem;
      width: min(100%, 310px);
    }

    .photo-processing-step {
      align-items: center;
      background: rgba(255, 255, 255, 0.72);
      border: 1px solid rgba(214, 221, 234, 0.84);
      border-radius: 999px;
      color: #64748b;
      display: grid;
      font-size: 0.61rem;
      font-weight: 850;
      gap: 0.3rem;
      grid-template-columns: 0.55rem 1fr;
      letter-spacing: -0.01em;
      line-height: 1.05;
      min-height: 1.45rem;
      padding: 0.22rem 0.42rem;
      text-align: left;
    }

    .photo-processing-step::before {
      background: #dbe5f3;
      border-radius: 999px;
      content: "";
      height: 0.42rem;
      width: 0.42rem;
    }

    .photo-processing-step.is-active {
      background: #ffffff;
      border-color: rgba(11, 69, 217, 0.28);
      color: #102b57;
      box-shadow: 0 5px 12px rgba(11, 69, 217, 0.10);
    }

    .photo-processing-step.is-active::before {
      background: #0b45d9;
      box-shadow: 0 0 0 3px rgba(11, 69, 217, 0.14);
    }

    .photo-processing-step.is-done {
      color: #2f7e58;
    }

    .photo-processing-step.is-done::before {
      background: #3f9468;
    }

    .prompt-import-button {
      position: relative;
      isolation: isolate;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      min-height: 42px;
      border: 1px solid rgba(255, 255, 255, 0.24);
      border-radius: 999px;
      padding: 11px 20px 11px 14px;
      color: #ffffff;
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.26), transparent 26%),
        linear-gradient(135deg, #081f3f 0%, #124c78 52%, #2d86a8 100%);
      box-shadow: 0 12px 24px rgba(8, 31, 63, 0.28);
      font-size: 13px;
      font-weight: 900;
      letter-spacing: 0.01em;
      white-space: nowrap;
      cursor: pointer;
      overflow: hidden;
      transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    }

    .prompt-import-button::before {
      content: "IA";
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 24px;
      border-radius: 999px;
      color: #08203e;
      background: linear-gradient(135deg, #ffffff 0%, #dcecff 100%);
      box-shadow: inset 0 0 0 1px rgba(8, 31, 63, 0.08);
      font-size: 11px;
      font-weight: 950;
    }

    .prompt-import-button::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, 0.18) 42%, transparent 70%);
      transform: translateX(-80%);
      transition: transform 0.45s ease;
    }

    .prompt-import-button:hover {
      transform: translateY(-1px);
      filter: saturate(1.05);
      box-shadow: 0 14px 28px rgba(8, 31, 63, 0.34);
    }

    .prompt-import-button:hover::after {
      transform: translateX(80%);
    }

    .prompt-import-overlay[hidden] {
      display: none;
    }

    .prompt-import-overlay {
      position: fixed;
      inset: 0;
      z-index: 1200;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(9, 23, 44, 0.48);
      backdrop-filter: blur(5px);
    }

    .prompt-import-card {
      width: min(720px, calc(100vw - 32px));
      max-height: calc(100vh - 48px);
      overflow: auto;
      border-radius: 22px;
      padding: 22px;
      background: #ffffff;
      border: 1px solid #d7e0ee;
      box-shadow: 0 24px 60px rgba(9, 23, 44, 0.28);
      color: #0b1d3a;
    }

    .prompt-import-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      border-bottom: 1px solid #d8e1ef;
      padding-bottom: 12px;
      margin-bottom: 14px;
    }

    .prompt-import-title {
      font-size: 18px;
      font-weight: 900;
      letter-spacing: -0.01em;
    }

    .prompt-import-close {
      border: 1px solid #0b1d3a;
      border-radius: 12px;
      background: #ffffff;
      color: #0b1d3a;
      padding: 8px 14px;
      font-weight: 800;
      cursor: pointer;
    }

    .prompt-import-text {
      margin: 0 0 12px;
      line-height: 1.45;
      font-weight: 700;
      color: #203756;
    }

    .prompt-import-textarea {
      width: 100%;
      min-height: 180px;
      resize: vertical;
      border: 1px solid #c9d5e6;
      border-radius: 16px;
      padding: 14px;
      font: 700 14px/1.45 Arial, sans-serif;
      color: #061426;
      background: #f8fbff;
      outline: none;
    }

    .prompt-import-textarea:focus {
      border-color: #1f5f93;
      box-shadow: 0 0 0 4px rgba(31, 95, 147, 0.12);
    }

    .prompt-import-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 14px 0;
    }

    .prompt-import-actions button {
      border: 0;
      border-radius: 999px;
      padding: 10px 16px;
      color: #ffffff;
      font-weight: 900;
      cursor: pointer;
      box-shadow: 0 10px 20px rgba(9, 23, 44, 0.14);
    }

    .prompt-import-analyze {
      background: #12325f;
    }

    .prompt-import-apply {
      background: #3f9368;
    }

    .prompt-import-replace {
      background: #c18a1d;
    }

    .prompt-import-cancel {
      background: #9c4548;
    }

    .prompt-import-preview {
      display: grid;
      gap: 10px;
      border: 1px dashed #c2cfe0;
      border-radius: 16px;
      padding: 12px;
      background: #fbfdff;
    }

    .prompt-import-empty {
      color: #526783;
      font-weight: 800;
      text-align: center;
      padding: 18px 8px;
    }

    .prompt-import-item {
      display: grid;
      grid-template-columns: auto 1fr auto;
      gap: 10px;
      align-items: start;
      padding: 10px;
      border-radius: 14px;
      border: 1px solid #dce5f2;
      background: #ffffff;
    }

    .prompt-import-item strong {
      display: block;
      font-size: 13px;
      margin-bottom: 4px;
      color: #0b1d3a;
    }

    .prompt-import-value {
      font-size: 13px;
      line-height: 1.35;
      color: #142a47;
      word-break: break-word;
    }

    .prompt-import-confidence {
      border-radius: 999px;
      padding: 4px 8px;
      font-size: 11px;
      font-weight: 900;
      color: #ffffff;
      background: #6b7890;
    }

    .prompt-import-confidence.high {
      background: #3f9368;
    }

    .prompt-import-confidence.medium {
      background: #c18a1d;
    }

    .toolbar .prompt-import-button,
    .prompt-import-button {
      flex: 0 0 auto !important;
      border: 0 !important;
      color: #ffffff !important;
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.26), transparent 26%),
        linear-gradient(135deg, #081f3f 0%, #124c78 52%, #2d86a8 100%) !important;
      opacity: 1 !important;
    }

    .toolbar .prompt-import-button::before,
    .prompt-import-button::before {
      color: #08203e !important;
      background: linear-gradient(135deg, #ffffff 0%, #dcecff 100%) !important;
    }

    .prompt-import-actions .prompt-import-analyze {
      background: #12325f !important;
      color: #ffffff !important;
      opacity: 1 !important;
    }

    .prompt-import-actions .prompt-import-apply {
      background: #3f9368 !important;
      color: #ffffff !important;
      opacity: 1 !important;
    }

    .prompt-import-actions .prompt-import-replace {
      background: #c18a1d !important;
      color: #ffffff !important;
      opacity: 1 !important;
    }

    .prompt-import-actions .prompt-import-cancel {
      background: #9c4548 !important;
      color: #ffffff !important;
      opacity: 1 !important;
    }
  
    /* Prompt import and action button refinement - Horus */
    .prompt-import-button {
      min-width: 108px;
      min-height: 40px;
      gap: 7px;
      padding: 9px 16px 9px 11px !important;
      letter-spacing: .01em;
    }

    .prompt-import-button::before {
      width: 24px;
      height: 22px;
      margin-right: 0;
      font-size: 10px;
      box-shadow: inset 0 0 0 1px rgba(6, 36, 78, .1), 0 6px 12px rgba(6, 36, 78, .18);
    }

    .prompt-import-card {
      border: 1px solid rgba(10, 39, 82, .13);
      background: radial-gradient(circle at 15% 0%, rgba(28, 83, 164, .08), transparent 30%), linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
      box-shadow: 0 22px 60px rgba(9, 23, 44, .2);
    }

    .prompt-import-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
    }

    .prompt-import-actions button {
      display: inline-flex !important;
      align-items: center;
      justify-content: center;
      min-height: 38px;
      border-radius: 999px !important;
      padding: 9px 16px !important;
      font-size: 12px !important;
      font-weight: 900 !important;
      line-height: 1 !important;
      white-space: nowrap !important;
      opacity: 1 !important;
      box-shadow: 0 10px 22px rgba(9, 23, 44, .14);
    }

    .formation-controls button,
    .summary-controls button,
    .responsibility-controls button {
      position: relative;
      isolation: isolate;
      display: inline-flex !important;
      align-items: center;
      justify-content: center;
      gap: 6px;
      min-height: 32px;
      border: 0 !important;
      border-radius: 999px !important;
      padding: 8px 14px !important;
      color: #fff !important;
      font-size: 12px !important;
      font-weight: 900 !important;
      line-height: 1 !important;
      white-space: nowrap !important;
      opacity: 1 !important;
      cursor: pointer;
      overflow: hidden;
      box-shadow: 0 10px 20px rgba(9, 23, 44, .14);
      transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
    }

    .formation-controls button::after,
    .summary-controls button::after,
    .responsibility-controls button::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(120deg, rgba(255,255,255,.22), transparent 44%, rgba(255,255,255,.12));
      opacity: .85;
    }

    .formation-controls button:hover,
    .summary-controls button:hover,
    .responsibility-controls button:hover {
      transform: translateY(-1px);
      filter: saturate(1.03);
      box-shadow: 0 14px 26px rgba(9, 23, 44, .18);
    }

    .formation-controls button:first-child,
    .summary-controls button:first-child,
    .responsibility-controls button:first-child {
      background: radial-gradient(circle at 20% 15%, rgba(255,255,255,.22), transparent 32%), linear-gradient(135deg, #4aa06f, #28744f) !important;
    }

    .formation-controls button:last-child,
    .summary-controls button:last-child,
    .responsibility-controls button:last-child {
      background: radial-gradient(circle at 20% 15%, rgba(255,255,255,.2), transparent 32%), linear-gradient(135deg, #b55d5d, #893838) !important;
    }
  
    /* Horus final action button polish */
    .formation-controls button,
    .responsibility-controls button {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      border: 0;
      border-radius: 999px;
      font-weight: 800;
      letter-spacing: -0.01em;
      box-shadow: 0 10px 20px rgba(17, 35, 64, 0.14);
      transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
    }

    .formation-controls button::before,
    .responsibility-controls button::before {
      content: "";
      position: absolute;
      inset: 1px 1px auto 1px;
      height: 44%;
      border-radius: 999px;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.26), rgba(255, 255, 255, 0));
      pointer-events: none;
      z-index: -1;
    }

    .formation-controls button:hover,
    .responsibility-controls button:hover {
      transform: translateY(-1px);
      box-shadow: 0 13px 24px rgba(17, 35, 64, 0.18);
      filter: saturate(1.04);
    }

    .prompt-import-actions button:disabled {
      opacity: 0.74;
      color: rgba(255, 255, 255, 0.92);
      cursor: not-allowed;
      filter: grayscale(0.12);
    }
  
    .settings-manager {
      gap: 7px;
    }

    .settings-manager-type {
      background: linear-gradient(135deg, #f8fbff 0%, #eef5ff 100%);
      border-color: #bfcbe0;
      font-weight: 700;
    }

    .settings-manager-hidden {
      display: none !important;
    }
    /* Refinamento visual: configuracoes e controles de secao com acabamento premium. */
    .settings-panel-header {
      padding: 9px 10px;
      margin-bottom: 10px;
      border: 1px solid #d6e0ee;
      border-radius: 13px;
      background: linear-gradient(135deg, #ffffff 0%, #f6f9ff 100%);
      box-shadow: 0 8px 20px rgba(8, 31, 63, 0.08);
    }

    .settings-panel-header span {
      color: #0b1f3f;
      font-size: 12px;
      font-weight: 900;
      letter-spacing: 0.01em;
    }

    .settings-group {
      padding: 10px;
      margin-top: 10px;
      border: 1px solid #d8e2ef;
      border-radius: 14px;
      background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
      box-shadow: 0 10px 24px rgba(8, 31, 63, 0.07);
    }

    .settings-group-title {
      color: #0b1f3f;
      font-size: 11px;
      font-weight: 950;
      letter-spacing: 0.01em;
    }

    .section-heading-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      width: 100%;
      margin: 0 0 3mm;
    }

    .section-heading-row h2 {
      margin: 0;
      min-width: 0;
      flex: 1 1 auto;
    }

    .section-inline-controls {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      margin: 0;
      flex: 0 1 auto;
      max-width: 46%;
    }

    .settings-add,
    .settings-remove,
    .formation-controls button {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 0;
      min-height: 34px;
      border: 1px solid rgba(255, 255, 255, 0.22) !important;
      border-radius: 999px;
      padding: 8px 15px;
      color: #ffffff !important;
      font-size: 11px;
      font-weight: 900;
      line-height: 1;
      letter-spacing: 0.01em;
      white-space: nowrap;
      cursor: pointer;
      opacity: 1 !important;
      filter: none !important;
      transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    }

    .settings-add,
    .formation-controls button:first-child {
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.26), transparent 26%),
        linear-gradient(135deg, #4d9b70 0%, #2f704b 100%) !important;
      box-shadow: 0 12px 24px rgba(47, 112, 75, 0.23);
    }

    .settings-remove,
    .formation-controls button:last-child {
      background:
        radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.24), transparent 26%),
        linear-gradient(135deg, #b45c5c 0%, #813b3f 100%) !important;
      box-shadow: 0 12px 24px rgba(129, 59, 63, 0.22);
    }

    .settings-add::after,
    .settings-remove::after,
    .formation-controls button::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, 0.18) 42%, transparent 70%);
      transform: translateX(-82%);
      transition: transform 0.45s ease;
    }

    .settings-add:hover,
    .settings-add:focus,
    .settings-remove:hover,
    .settings-remove:focus,
    .formation-controls button:hover,
    .formation-controls button:focus {
      transform: translateY(-1px);
      filter: saturate(1.04) !important;
    }

      .settings-add:hover::after,
      .settings-add:focus::after,
      .settings-remove:hover::after,
      .settings-remove:focus::after,
      .formation-controls button:hover::after,
      .formation-controls button:focus::after {
        transform: translateX(82%);
      }

      #sourcePage .formation-controls .section-add-button,
      .resume .formation-controls .section-add-button {
        background:
          radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.26), transparent 26%),
          linear-gradient(135deg, #4d9b70 0%, #2f704b 100%) !important;
        box-shadow: 0 12px 24px rgba(47, 112, 75, 0.23) !important;
      }

      #sourcePage .formation-controls .section-remove-button,
      .resume .formation-controls .section-remove-button {
        background:
          radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.24), transparent 26%),
          linear-gradient(135deg, #b45c5c 0%, #813b3f 100%) !important;
        box-shadow: 0 12px 24px rgba(129, 59, 63, 0.22) !important;
      }

      #sourcePage .formation-controls .section-undo-button,
      .resume .formation-controls .section-undo-button {
        width: 34px !important;
        min-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        display: inline-grid !important;
        place-items: center !important;
        padding: 0 !important;
        border-radius: 999px !important;
        background:
          radial-gradient(circle at 24% 18%, rgba(255, 255, 255, 0.34), transparent 30%),
          linear-gradient(135deg, #8f67d6 0%, #6f4ab8 52%, #4d317e 100%) !important;
        box-shadow: 0 12px 24px rgba(93, 64, 154, 0.25) !important;
        color: #ffffff !important;
        font-size: 16px !important;
        font-weight: 950 !important;
        line-height: 1 !important;
        text-align: center !important;
      }

      #sourcePage .formation-controls .section-undo-button[aria-disabled="true"],
      .resume .formation-controls .section-undo-button[aria-disabled="true"] {
        opacity: 0.4 !important;
        filter: grayscale(0.55) !important;
        cursor: default !important;
        pointer-events: none !important;
      }

      #sourcePage .header-data-controls {
        position: absolute !important;
        top: 34mm !important;
        right: 0 !important;
        z-index: 12 !important;
        justify-content: flex-end !important;
        gap: 6px !important;
        margin: 0 !important;
        width: auto !important;
        max-width: none !important;
        pointer-events: auto !important;
      }

      #sourcePage .summary-heading-row {
        margin-bottom: 2mm !important;
      }

      @media (max-width: 640px) {
        .section-heading-row {
          align-items: flex-start;
        flex-wrap: wrap;
      }

      .section-inline-controls {
        max-width: 100%;
        margin-left: auto;
      }
    }
    body.footer-hidden #sourcePage .footer,
    body.footer-hidden #printFooterRuntime,
    #printPages.footer-hidden .footer,
    #printPages .print-page.footer-hidden .footer,
    .preview-print-pages.footer-hidden .footer,
    .preview-print-pages .print-page.footer-hidden .footer,
    .pdf-render-stage.footer-hidden .footer,
    .pdf-render-stage .print-page.footer-hidden .footer {
      display: none !important;
    }

    body.footer-hidden #sourcePage .content {
      padding-bottom: 0;
    }

    #printPages .print-page.footer-hidden .print-content,
    .preview-print-pages .print-page.footer-hidden .print-content,
    .pdf-render-stage .print-page.footer-hidden .print-content {
      padding-bottom: 0 !important;
    }
    /* Custom select UI - visual layer only, native select keeps the data contract */
    .custom-select-shell {
      overflow: visible;
      --select-accent: #102e60;
      --select-bg: #eef4ff;
      --select-border: rgba(16, 46, 96, .22);
      display: inline-flex;
      align-items: center;
      position: relative;
      vertical-align: baseline;
      max-width: 100%;
      isolation: isolate;
    }

    .custom-select-shell select.custom-select-native {
      position: absolute !important;
      inset: 0 !important;
      width: 100% !important;
      height: 100% !important;
      margin: 0 !important;
      border: 0 !important;
      opacity: 0 !important;
      pointer-events: none !important;
      appearance: none !important;
      -webkit-appearance: none !important;
    }

    .custom-select-trigger {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      position: relative;
      min-height: 1.45em;
      max-width: 100%;
      padding: 1px 22px 1px 5px;
      border: 1px solid transparent;
      border-radius: 7px;
      background: linear-gradient(180deg, rgba(242,247,255,.96), rgba(232,240,253,.96));
      color: #000;
      font: inherit;
      line-height: 1.18;
      white-space: nowrap;
      cursor: pointer;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.42);
    }

    .custom-select-trigger:hover,
    .custom-select-shell.is-open .custom-select-trigger {
      border-color: var(--select-border);
      box-shadow: 0 8px 20px rgba(15,45,92,.12), inset 0 0 0 1px rgba(255,255,255,.86);
    }

    .custom-select-trigger::after {
      content: "";
      position: absolute;
      right: 7px;
      top: 50%;
      width: 7px;
      height: 7px;
      border-right: 2px solid var(--select-accent);
      border-bottom: 2px solid var(--select-accent);
      transform: translateY(-65%) rotate(45deg);
      opacity: .9;
      pointer-events: none;
    }

    .custom-select-label {
      display: inline-block;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 100%;
    }

    .custom-select-menu {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      position: absolute;
      z-index: 99999;
      display: none;
      min-width: 180px;
      max-width: min(420px, calc(100vw - 24px));
      max-height: 109px;
      overflow: auto;
      padding: 4px;
      border: 1px solid rgba(16,46,96,.20);
      border-radius: 11px;
      background: rgba(255,255,255,.98);
      box-shadow: 0 18px 40px rgba(10,31,68,.20), 0 0 0 1px rgba(255,255,255,.75) inset;
      backdrop-filter: blur(8px);
    }

    /* Custom select stability: one-line options and safe internal scrolling */
    .custom-select-menu {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      overscroll-behavior: contain;
    }

    .custom-select-option {
      white-space: nowrap;
      text-align: left;
    }
    .custom-select-shell.is-open .custom-select-menu {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      display: block;
    }

    .custom-select-option {
      display: block;
      width: 100%;
      margin: 0;
      padding: 4px 9px;
      border: 0;
      border-radius: 7px;
      background: transparent;
      color: #0a1830;
      font: inherit;
      line-height: 1.2;
      text-align: left;
      cursor: pointer;
      white-space: normal;
    }

    .custom-select-option:hover,
    .custom-select-option:focus {
      outline: none;
      background: #eef4ff;
    }

    .custom-select-option.is-selected {
      color: #fff;
      background: linear-gradient(135deg, #102e60, #194a92);
      box-shadow: 0 8px 16px rgba(15,45,92,.18);
    }

    .settings-panel .custom-select-shell {
      width: 100%;
    }

    .settings-panel .custom-select-trigger {
      width: 100%;
      justify-content: flex-start;
      min-height: 34px;
      padding-left: 10px;
      text-align: left;
    }

    @media print {
      .custom-select-menu,
      .custom-select-trigger {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
        display: none !important;
      }
      .custom-select-shell {
        display: inline !important;
      }
      .custom-select-shell select.custom-select-native {
        position: static !important;
        width: auto !important;
        height: auto !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        appearance: auto !important;
        -webkit-appearance: auto !important;
      }
    }
    /* Custom select final behavior patch: one-line options without breaking outside click */
    .custom-select-menu {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      width: max-content !important;
      min-width: 180px !important;
      max-width: calc(100vw - 24px) !important;
      overflow-x: auto !important;
      overscroll-behavior: contain;
    }

    .custom-select-menu .custom-select-option {
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      display: block !important;
      width: max-content !important;
      min-width: 100% !important;
      max-width: none !important;
      white-space: nowrap !important;
      overflow: visible !important;
      text-overflow: clip !important;
      text-align: left !important;
    }
/* CV custom select stability patch start */
.custom-select-shell {
  position: relative;
}

.custom-select-trigger,
.custom-select-label,
.custom-select-native,
.custom-select-option,
.custom-select-menu {
  white-space: nowrap !important;
}

.custom-select-trigger {
  max-width: 100%;
  overflow: visible !important;
}

.custom-select-shell[data-cv-long-options="1"] .custom-select-trigger {
  min-width: 0 !important;
}

.custom-select-shell[data-cv-long-options="1"] .custom-select-label {
  min-width: 0 !important;
}

.custom-select-label {
  display: inline-block;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.15;
}

.custom-select-menu {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
  position: absolute !important;
  z-index: 2147483600 !important;
  display: none;
  min-width: 0;
  max-width: calc(100vw - 16px);
  max-height: min(109px, calc(100vh - 24px));
  overflow-y: auto !important;
  overflow-x: hidden !important;
  box-sizing: border-box;
  overscroll-behavior: contain;
  isolation: isolate;
  background: #ffffff;
  border: 1px solid #c7d2e4;
  border-radius: 12px;
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.18), 0 4px 12px rgba(15, 23, 42, 0.12);
  padding: 4px;
}

.custom-select-menu.cv-select-open {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
  display: block !important;
}

.custom-select-menu::-webkit-scrollbar {
  width: 6px;
}

.custom-select-menu::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 999px;
  margin: 4px 0;
}

.custom-select-menu::-webkit-scrollbar-thumb {
  background: rgba(18, 50, 96, 0.55);
  border-radius: 999px;
}

.custom-select-menu::-webkit-scrollbar-thumb:hover {
  background: #123260;
}

.custom-select-option {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: none !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  line-height: 1.2 !important;
  box-sizing: border-box;
  border-radius: 9px;
}
/* CV custom select stability patch end */

/* CV vacancy scalable select patch start */
.custom-select-menu[data-cv-vacancy-select="1"],
.custom-select-menu[data-cv-long-options="1"] {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
  z-index: 999999 !important;
  max-height: 109px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
.custom-select-menu[data-cv-vacancy-select="1"] {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
  min-width: max(100%, 274px) !important;
  max-width: min(410px, calc(100vw - 32px)) !important;
  max-height: 200px !important;
}
.custom-select-menu[data-cv-long-options="1"] {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
  min-width: max(100%, 150px) !important;
  max-width: min(360px, calc(100vw - 32px)) !important;
}
.custom-select-menu[data-cv-vacancy-select="1"]::-webkit-scrollbar,
.custom-select-menu[data-cv-long-options="1"]::-webkit-scrollbar {
  width: 6px;
}
.custom-select-menu[data-cv-vacancy-select="1"]::-webkit-scrollbar-track,
.custom-select-menu[data-cv-long-options="1"]::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 999px;
  margin: 4px 0;
}
.custom-select-menu[data-cv-vacancy-select="1"]::-webkit-scrollbar-thumb,
.custom-select-menu[data-cv-long-options="1"]::-webkit-scrollbar-thumb {
  background: rgba(18, 50, 96, 0.55);
  border-radius: 999px;
}
.custom-select-menu[data-cv-vacancy-select="1"]::-webkit-scrollbar-thumb:hover,
.custom-select-menu[data-cv-long-options="1"]::-webkit-scrollbar-thumb:hover {
  background: #123260;
}
.custom-select-menu[data-cv-vacancy-select="1"] .custom-select-option,
.custom-select-menu[data-cv-long-options="1"] .custom-select-option {
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.25 !important;
}
.cv-vacancy-search-wrap {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  gap: 5px;
  padding: 8px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%);
  border-bottom: 1px solid rgba(18, 50, 96, 0.16);
}
.cv-vacancy-search-title {
  font-size: 10px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .02em;
  color: #123260;
  text-transform: uppercase;
}
.cv-vacancy-search {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 32px;
  box-sizing: border-box;
  border: 1px solid rgba(18, 50, 96, .26);
  border-radius: 9px;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 700;
  color: #07172f;
  background: #fff;
  outline: none;
}
.cv-vacancy-search:focus {
  border-color: #0f47a6;
  box-shadow: 0 0 0 3px rgba(15, 71, 166, .13);
}
.cv-vacancy-empty {
  display: none;
  padding: 9px 10px;
  font-size: 11px;
  font-weight: 800;
  color: #7a2f35;
  background: #fff7f7;
}
.cv-vacancy-empty.is-visible {
  display: block;
}
.cv-vacancy-feedback {
  display: none;
  margin-top: 6px;
  padding: 7px 9px;
  border-radius: 9px;
  background: #fff7e8;
  color: #713f00;
  border: 1px solid rgba(201, 139, 25, .35);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
}
.cv-vacancy-feedback.is-visible {
  display: block;
}
/* CV vacancy scalable select patch end */

/* CV v150: master resume workspace and stable top-layer selectors */
.custom-select-menu[data-cv-searchable-select="1"] {
  grid-template-rows: auto minmax(0, 1fr) !important;
  overflow: hidden !important;
  padding: 0 !important;
}
/* A calha da barra de rolagem é RESERVADA desde o nascimento do rolo.

   Sem isto, a barra só aparece depois que o posicionador trava a altura do
   menu; ela rouba a largura de um arranjo que já tinha sido conferido sem ela,
   e o nome do cargo passa a quebrar e ser cortado sem ninguém medir de novo.
   A roda do ano fica de fora: a barra dela é por proximidade e o bloco fecha
   em anos inteiros, medido por pixel. */
.custom-select-menu[data-cv-searchable-select="1"]:not([data-cv-roda="1"]) .cv-select-options-scroll {
  scrollbar-gutter: stable;
}
/* O polegar precisa EXISTIR aos olhos: sem estilo proprio, o rolo usava a
   barra do sistema que some no fundo branco e a pessoa jurava que nao havia
   rolagem (relato do dono com o catalogo cheio). A roda do ano fica de fora:
   a barra dela e por proximidade, com estilo proprio. */
.custom-select-menu[data-cv-searchable-select="1"]:not([data-cv-roda="1"]) .cv-select-options-scroll::-webkit-scrollbar {
  width: 10px;
}
.custom-select-menu[data-cv-searchable-select="1"]:not([data-cv-roda="1"]) .cv-select-options-scroll::-webkit-scrollbar-track {
  background: #eef2f8;
  border-radius: 8px;
}
.custom-select-menu[data-cv-searchable-select="1"]:not([data-cv-roda="1"]) .cv-select-options-scroll::-webkit-scrollbar-thumb {
  background: #94a6c2;
  border-radius: 8px;
  border: 2px solid #eef2f8;
}
.custom-select-menu[data-cv-searchable-select="1"]:not([data-cv-roda="1"]) .cv-select-options-scroll::-webkit-scrollbar-thumb:hover {
  background: #5f7699;
}
.custom-select-menu[data-cv-searchable-select="1"].cv-select-open {
  display: grid !important;
}
html body .custom-select-shell.is-open > .custom-select-menu[data-cv-searchable-select="1"].cv-select-open {
  display: grid !important;
}
.custom-select-menu[data-cv-searchable-select="1"] .cv-vacancy-search-wrap {
  position: relative !important;
  inset: auto !important;
  z-index: 2 !important;
  flex: none !important;
  width: 100% !important;
  padding: 9px 10px 10px !important;
  border-bottom: 1px solid #cad6e8 !important;
  background: #fff !important;
  box-shadow: 0 2px 5px rgba(18, 50, 96, .06) !important;
}
.custom-select-menu[data-cv-searchable-select="1"] .cv-vacancy-search-wrap,
.custom-select-menu[data-cv-searchable-select="1"] .cv-vacancy-search {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* ============================================================================
   RODA DO ANO

   São mais de setenta anos. Em lista comum, a pessoa desce um paredão de itens
   iguais e perde a referência de onde está. A roda resolve o mesmo problema que
   o seletor de data do celular resolve: um item no centro, em foco, e os
   vizinhos esmaecendo para as pontas, então o olho sempre sabe onde parou.

   O esmaecido é uma máscara em degradê, não opacidade item a item. Assim quem
   está no centro fica nítido sozinho, sem precisar recalcular nada a cada
   rolagem. O encaixe (`scroll-snap`) impede parar no meio de dois anos.

   A busca continua onde estava, acima da roda: quem sabe o ano digita, quem não
   lembra rola até achar.
   ========================================================================== */
/* A largura do menu nasce da largura do gatilho, e o gatilho do ano é curto.
   Sem um mínimo, "Ano de conclusão" quebrava em duas linhas, estourava a altura
   fixa do item e desencontrava tudo da faixa central: era o menu quebrado.
   O `!important` é necessário porque a largura é escrita direto no elemento na
   hora de posicionar. */
/* A largura precisa vencer `[data-cv-top-layer="1"] { min-width: 0 !important }`,
   que tem a mesma especificidade e vem depois na folha. Por isso o seletor
   composto: sem ele o campo de busca nascia estreito e cortava o texto. */
.custom-select-menu[data-cv-roda="1"],
.custom-select-menu[data-cv-roda="1"][data-cv-top-layer="1"] {
  --cv-roda-item: 34px;
  /* A folga do bloco, numa medida só. Vale por dentro (o ano da faixa não
     encosta na borda de cima nem na de baixo) e por fora (a divisória acima
     ganha o mesmo respiro que já tem em cima dela, e fica no meio do vão em vez
     de servir de encosto para o bloco). Uma medida só porque as duas precisam
     concordar: o JavaScript deriva o respiro e o corte em anos inteiros dela. */
  --cv-roda-folga: 5px;
  min-width: 244px !important;
  /* Busca e atalhos ficam do tamanho do conteúdo; só a roda cede espaço. Sem
     declarar isto, o grid espremia a faixa dos atalhos a 8px e os dois itens
     vazavam por cima da roda.

     `minmax(0, 1fr)` e não `1fr`: `1fr` sozinho vale `minmax(auto, 1fr)`, e o
     mínimo `auto` impede a linha de encolher abaixo do conteúdo dela. Com
     pouco espaço abaixo do gatilho o menu ficava com 168px, as três linhas
     somavam 284px e a roda vazava para FORA da caixa: aparecia um ano solto
     embaixo de um retângulo branco vazio. Com o mínimo em zero a roda encolhe
     e rola dentro do próprio recorte. */
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  overflow: hidden !important;   /* nada escapa da caixa, nem por engano */
}

/* ATALHOS FIXOS, FORA DA RODA

   "Ano de conclusão" (limpar) e "Cursando" não são anos, e dentro da roda
   atrapalhavam duas vezes. Quebravam o ritmo de uma coluna que deveria ser só
   de números, e por serem os dois primeiros itens obrigavam a rolar para trás
   para alcançá-los depois de descer a lista.

   Fixos aqui, ficam sempre a um clique, e a roda vira o que precisava ser: uma
   coluna de anos. A divisória abaixo deles separa o que é atalho do que é
   rolagem, do mesmo jeito que o menu do Grau de Instrução já separa a busca do
   conteúdo. */
.custom-select-menu[data-cv-roda="1"] .cv-select-roda-fixos {
  display: grid;
  /* Os dois atalhos ficam no meio da faixa, e o que sobrar se reparte igual em
     cima e embaixo. Sem dizer isto, a sobra ia toda para o pé: o padrão da
     grade estica as linhas, e quando elas não podem esticar o vão fica de um
     lado só. É sobre o conteúdo DENTRO das divisórias; o vão que existe fora
     delas pertence a quem está do outro lado, e não entra nesta conta. */
  align-content: center;
  /* Piso, e não altura travada: em menu estreito "Ano de conclusão" quebra em
     duas linhas, e altura fixa faria o texto vazar para fora da linha. */
  grid-auto-rows: minmax(var(--cv-roda-item, 34px), auto);
  gap: 2px;
  /* O respiro debaixo é o mesmo que o bloco da roda guarda por cima de si, para
     a divisória ficar no meio do vão e não encostada em nada. */
  padding: 5px 5px var(--cv-roda-folga, 5px);
  background: #fff;
  border-bottom: 1px solid #cad6e8;
  /* Piso explícito: dois itens, o vão entre eles e o respiro. Sem isto o bloco
     aceitava ser espremido e a conta de altura, que o mede, se realimentava. */
  min-height: calc(var(--cv-roda-item, 34px) * 2 + 7px + var(--cv-roda-folga, 5px));
}

/* `#sourcePage .custom-select-menu .custom-select-option` trava 30px com
   !important, então aqui precisa de !important também para valer. */
.custom-select-menu[data-cv-roda="1"] .cv-select-roda-fixos .custom-select-option {
  min-height: var(--cv-roda-item, 34px) !important;   /* alvo de toque confortável */
  display: flex !important;
  align-items: center;
  justify-content: flex-start !important;
  text-align: left !important;
  /* Aqui pode quebrar linha: fora da roda o item não está preso a uma altura
     fixa, então texto longo se acomoda em vez de virar reticências. */
  white-space: normal !important;
}

.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll {
  --cv-roda-item: 34px;
  /* Encolher a LINHA do grid nao bastava: o rolador ignorava a linha, ficava do
     tamanho que quisesse e escapava da caixa. Amarrar a altura a linha, que
     agora e definida, faz a rolagem acontecer dentro do proprio recorte.

     O desconto e a soma dos recuos de cima e de baixo: sem ele o bloco passa da
     linha do grid e o menu corta o canto arredondado fora. */
  height: calc(100% - var(--cv-roda-folga, 5px) * 2) !important;
  /* Sem `border-box` a altura dimensiona so o conteudo e o respiro entra POR
     FORA: o rolador media respiro puro dentro de uma linha bem menor, e
     escapava. */
  box-sizing: border-box !important;
  /* O PISO DO BLOCO NÃO MORA AQUI, e sim no orçamento, escrito direto no
     elemento.

     Toda folha do projeto zera o mínimo de qualquer rolador com `!important`, e
     essa regra vence esta aqui. Tentar declarar o piso neste bloco não pega, e
     o pior é que não pega em silêncio.

     O piso importa porque, sem ele, o bloco colapsa justamente quando o menu é
     medido sem altura para descobrir de que tamanho quer ser: a medida sai
     curta, o menu nasce baixo, e o bloco nunca volta a crescer, porque a conta
     seguinte mede o menu já encolhido e se dá por satisfeita. */
  min-height: 0 !important;
  /* TRÊS anos inteiros mais a folga de cima e de baixo. Três, e não cinco, para
     o visor não precisar de quatro marcas de fim quando a pessoa chega em 1900
     ou em 2100: com um vizinho de cada lado, uma marca em cada ponta basta e a
     roda fica mais limpa. Sem somar a folga aqui o teto engoliria parte de um
     ano. */
  max-height: calc(var(--cv-roda-item) * 3 + var(--cv-roda-folga, 5px) * 2) !important;
  /* Folga por dentro, para o ano da faixa não encostar na borda do bloco. É só
     respiro: o valor exato quem escreve é o JavaScript, junto com o corte em
     anos inteiros, porque os dois saem da mesma medida. */
  padding-block: var(--cv-roda-folga, 5px) !important;
  /* O bloco é uma peça, então tem cantos de peça, e não encosta em nada.

     Em cima, a folga tira o bloco de cima da divisória: a linha passa a ter o
     mesmo respiro dos dois lados e fica no meio do vão, em vez de servir de
     encosto. Nos lados, o recuo alinha com os atalhos logo acima, que já têm
     o mesmo. */
  margin: var(--cv-roda-folga, 5px) 5px !important;
  border-radius: 12px;
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  overscroll-behavior: contain;   /* girar a roda não arrasta a página junto */
  /* O FUNDO ESCURO É DO BLOCO, e não de um ano.

     Abaixo da divisória mora um bloco só, que guarda todos os anos, do mesmo
     jeito que o painel do histórico é um bloco só que guarda os itens dele. O
     escuro pertence a esse bloco inteiro. Quem diz qual ano está escolhido é a
     faixa mais clara, de uma linha só, que corre por baixo dos anos.

     Antes o escuro era essa tarja de um item só, e ela dizia a coisa errada.
     Por morar dentro do rolador ela ainda saía do lugar: o deslocamento de um
     elemento grudado conta a partir da caixa de conteúdo, então o respiro de
     cima era somado ao `top` e a tarja pintava um ano abaixo do que a conta
     dizia. */
  background: linear-gradient(180deg, #16407f 0%, #0d2a5c 100%);
  /* Barra fina, e a cor dela entra e sai conforme a pessoa chega perto: a regra
     que faz isso está mais abaixo, junto com o resto do acabamento dela. */
  scrollbar-width: thin;
}

/* Só o que está DENTRO do rolador é item de roda. Sem este escopo a regra caía
   também nos atalhos fixos acima, e eles herdavam altura travada, centralização
   e encaixe de rolagem, que não fazem sentido fora da roda. */
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option {
  height: var(--cv-roda-item, 34px);
  display: flex !important;
  align-items: center;
  justify-content: center;
  /* Uma linha por item, sempre. Se o texto quebrar, ele passa da altura fixa e
     a roda inteira sai do prumo em relação à faixa. */
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
  /* `start` e não `center`: o encaixe centralizado mira o meio do rolador por
     conta própria, e a faixa não mora no meio. Com `start`, o ponto de parada é
     a primeira linha do bloco, que é exatamente onde a faixa está. */
  scroll-snap-align: start;
  font-variant-numeric: tabular-nums; /* anos alinhados, sem dança de largura */
  /* Sobre o bloco escuro, a pílula clara de item comum não cabe. */
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, .38) !important;
  /* Só a cor faz transição. Animar o tamanho da letra obrigaria a recalcular o
     desenho a cada quadro, e a roda muda de linha a cada giro. */
  transition: color .12s linear;
}

/* A MARCA DE FIM DA LISTA.

   Uma linha em cada ponta, com um traço no lugar do ano. Ela existe por dois
   motivos que são o mesmo: dá ao primeiro e ao último ano o espaço que eles
   precisam para alcançar a faixa do meio, e diz que ali acabou, em vez de
   deixar um vazio que a pessoa lê como defeito.

   Não recebe clique nem foco, e não entra na leitura de tela: é acabamento, não
   escolha. */
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option.cv-roda-fim {
  pointer-events: none !important;
  color: rgba(255, 255, 255, .30) !important;
  font-weight: 400 !important;
  letter-spacing: 2px;
}

/* Quanto mais longe da faixa, mais apagado o ano fica. Antes isto era uma
   máscara, que apagava o próprio bloco e deixava o branco do menu vazar por
   baixo dele. Apagar o texto, e não o bloco, mantém o bloco inteiro. */
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option[data-cv-roda-dist="1"] {
  color: rgba(255, 255, 255, .62) !important;
}

.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option[data-cv-roda-dist="2"] {
  color: rgba(255, 255, 255, .48) !important;
}

/* O ano que está na faixa é o escolhido, então é o único em branco cheio. */
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option.cv-roda-na-faixa,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option.cv-roda-na-faixa:hover,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option.cv-roda-na-faixa:focus {
  color: #ffffff !important;
  font-weight: 800 !important;
  font-size: 1.07em !important;
  letter-spacing: .3px;
}

/* Passar o rato acende o ano, e nunca pinta a pílula clara de menu comum. */
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option:hover,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option:focus,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option:focus-visible,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll .custom-select-option.is-selected {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, .88) !important;
  transform: none !important;
}

/* A MARCA DA LINHA ESCOLHIDA.

   Uma faixa mais clara, sobre o escuro do bloco, na linha onde a roda para. Ela
   fica no MEIO, com anos acima e abaixo, que é o que faz a coisa girar como
   roleta. Só dá para ficar no meio porque a lista passou a ter anos acima do
   vigente; antes disso, centralizar deixava um vazio escuro em cima.

   O deslocamento sai do JavaScript, em pixel, e conta a partir da caixa de
   CONTEÚDO do rolador, que já começa depois do respiro. Por isso o valor é a
   distância da faixa até o primeiro ano, e não até a borda do bloco: somar o
   respiro de novo faria a faixa descer um ano.

   Fica atrás dos anos e não recebe clique, senão roubaria o toque de quem quer
   escolher. */
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll::before {
  content: "";
  position: sticky;
  display: block;
  top: var(--cv-roda-topo-faixa, 0px);
  height: var(--cv-roda-item, 34px);
  margin-bottom: calc(var(--cv-roda-item, 34px) * -1);
  pointer-events: none;
  border-radius: 9px;
  background: rgba(255, 255, 255, .13);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}

/* BUSCANDO, A RODA VIRA LISTA.

   Com um filtro ativo não existe giro, existe resultado. A faixa sai de cena
   porque ela marcaria uma posição, e posição não quer dizer nada numa lista
   filtrada: o que a pessoa quer é ler o que sobrou. Todos os resultados ficam
   legíveis por igual, sem apagar por distância. Apagando a busca, a roda volta
   inteira. */
.custom-select-menu[data-cv-roda="1"][data-cv-roda-buscando="1"] .cv-select-options-scroll::before {
  display: none;
}

/* Buscando, o bloco se ajusta ao QUE SOBROU, com teto de três linhas.

   Sem isto, um resultado só deixava duas faixas de escuro vazio embaixo dele.

   Quem decide a altura é o CONTEÚDO, e não uma conta sobre quantos resultados
   passaram pelo filtro. A conta dependia de um número colhido no meio da
   filtragem, e esse número não era o mesmo em todo sistema: no Linux dava dois
   onde aqui dava um, e o bloco abria com uma linha vazia. Deixando o conteúdo
   mandar, não sobra número para divergir. */
.custom-select-menu[data-cv-roda="1"][data-cv-roda-buscando="1"] .cv-select-options-scroll {
  scroll-snap-type: none;
  /* O bloco para de esticar com a linha do grid. A altura exata quem escreve e o
     filtro, contando o que ficou VISIVEL no documento depois de ele rodar. */
  align-self: start;
}

.custom-select-menu[data-cv-roda="1"][data-cv-roda-buscando="1"] .cv-select-options-scroll .custom-select-option {
  color: rgba(255, 255, 255, .92) !important;
  font-weight: 600 !important;
  font-size: 1em !important;
  letter-spacing: normal;
}

/* A BARRA DE ROLAGEM APARECE QUANDO A PESSOA CHEGA PERTO.

   Escondida o tempo todo, ela some para quem não adivinha que ali rola. Visível
   o tempo todo, corta o bloco escuro de cima a baixo. Então ela mora no meio do
   caminho: o espaço dela fica sempre reservado, e só a cor entra e sai.

   `both-edges` é o que mantém o ano no centro: reservando de um lado só, o
   número inteiro se desloca. E reservar sempre é o que evita o pulo, porque a
   largura útil não muda quando a barra acende. */
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll {
  scrollbar-gutter: stable both-edges;
  /* O `!important` nao e capricho: uma regra global do projeto declara a cor da
     barra com `!important`, e sem ele a barra deste bloco continuava com o azul
     escuro de sempre, invisivel sobre o fundo escuro. Perdia calada. */
  scrollbar-color: transparent transparent !important;
}

.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll:hover,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll:focus,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll:focus-within {
  scrollbar-color: rgba(255, 255, 255, .55) rgba(255, 255, 255, .10) !important;
}

.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll::-webkit-scrollbar {
  width: 8px !important;
  height: 0 !important;
}

.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll::-webkit-scrollbar-track,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll::-webkit-scrollbar-thumb {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll:hover::-webkit-scrollbar-track,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll:focus-within::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, .10) !important;
}

.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll:hover::-webkit-scrollbar-thumb,
.custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll:focus-within::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .55) !important;
  border-radius: 999px !important;
}

@media (prefers-reduced-motion: reduce) {
  .custom-select-menu[data-cv-roda="1"] .cv-select-options-scroll { scroll-behavior: auto; }
}

.cv-select-options-scroll {
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  padding: 5px !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(18, 50, 96, .58) transparent;
}
.cv-select-options-scroll::-webkit-scrollbar {
  width: 6px;
}
.cv-select-options-scroll::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 999px;
  margin: 4px 0;
}
.cv-select-options-scroll::-webkit-scrollbar-thumb {
  background: rgba(18, 50, 96, .58);
  border-radius: 999px;
}
.cv-select-options-scroll::-webkit-scrollbar-button {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}
#settingsPanel .settings-manager,
#settingsPanel .settings-manager .cv-settings-accordion-body,
#settingsPanel .settings-manager .cv-settings-accordion-content,
#settingsPanel .settings-manager .settings-field,
#settingsPanel .settings-manager .custom-select-shell,
#settingsPanel .settings-manager .settings-actions,
#settingsPanel .settings-manager .settings-hint,
#settingsPanel .settings-modality-degree,
#settingsPanel .settings-modality-degree .settings-field,
#settingsPanel .settings-modality-degree .custom-select-shell {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
#settingsPanel.cv-standard-panel-shell {
  grid-template-columns: minmax(0, 1fr) !important;
}
#settingsPanel.cv-standard-panel-shell > .cv-standard-panel-header,
#settingsPanel.cv-standard-panel-shell > .cv-standard-panel-scroll {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
#settingsPanel.cv-standard-panel-shell > .cv-standard-panel-header > span {
  min-width: 0 !important;
}
@media (max-width: 310px) {
  html body.cvx-on #settingsPanel.cv-standard-panel-shell > .cv-standard-panel-header {
    gap: 6px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  html body.cvx-on #settingsPanel.cv-standard-panel-shell > .cv-standard-panel-header > span {
    font-size: 16px !important;
  }
}
#settingsPanel .settings-manager .cv-settings-accordion-content {
  grid-template-columns: minmax(0, 1fr) !important;
}
#settingsPanel .settings-manager .custom-select-shell,
#settingsPanel .settings-modality-degree .custom-select-shell {
  display: block !important;
}
#settingsPanel .settings-manager .custom-select-trigger {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
#settingsPanel .settings-manager .custom-select-label {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
#settingsPanel .settings-modality-degree[hidden] {
  display: none !important;
}
#settingsPanel .settings-modality-degree {
  display: grid;
  gap: 5px;
}
#settingsPanel .settings-modality-degree > label {
  color: #0b1f3f;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
}
#settingsPanel .settings-hint {
  max-width: 100% !important;
  overflow-wrap: anywhere;
}
.custom-select-menu[data-cv-searchable-select="1"] .custom-select-option {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
}
#settingsPanel .custom-select-trigger,
.settings-panel .custom-select-trigger {
  border: 1px solid #c5d2e5 !important;
  background: linear-gradient(180deg, #f7faff 0%, #edf3fb 100%) !important;
  color: #0a1830 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.68) !important;
  box-sizing: border-box !important;
  transform: none !important;
  filter: none !important;
}
#settingsPanel .custom-select-trigger:hover,
#settingsPanel .custom-select-trigger:focus,
#settingsPanel .custom-select-trigger:focus-visible,
#settingsPanel .custom-select-trigger:active,
#settingsPanel .custom-select-shell.is-open > .custom-select-trigger,
.settings-panel .custom-select-trigger:hover,
.settings-panel .custom-select-trigger:focus,
.settings-panel .custom-select-trigger:focus-visible,
.settings-panel .custom-select-trigger:active,
.settings-panel .custom-select-shell.is-open > .custom-select-trigger {
  border-color: #2d67b3 !important;
  background: linear-gradient(180deg, #eef5ff 0%, #ddeafd 100%) !important;
  color: #07172f !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(31, 94, 178, .14), 0 7px 15px rgba(18, 50, 96, .12) !important;
  transform: none !important;
  filter: none !important;
}
#settingsPanel .custom-select-menu .custom-select-option,
.settings-panel .custom-select-menu .custom-select-option {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 36px !important;
  margin: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #0a1830 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  transform: none !important;
  filter: none !important;
}
#settingsPanel .custom-select-menu .custom-select-option:hover,
#settingsPanel .custom-select-menu .custom-select-option:focus,
#settingsPanel .custom-select-menu .custom-select-option:focus-visible,
.settings-panel .custom-select-menu .custom-select-option:hover,
.settings-panel .custom-select-menu .custom-select-option:focus,
.settings-panel .custom-select-menu .custom-select-option:focus-visible {
  border-color: #c4d4ea !important;
  background: #edf4ff !important;
  color: #0a1830 !important;
  outline: none !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}
#settingsPanel .custom-select-menu .custom-select-option.is-selected,
#settingsPanel .custom-select-menu .custom-select-option.is-selected:hover,
#settingsPanel .custom-select-menu .custom-select-option.is-selected:focus,
#settingsPanel .custom-select-menu .custom-select-option.is-selected:focus-visible,
#settingsPanel .custom-select-menu .custom-select-option.is-selected:active,
.settings-panel .custom-select-menu .custom-select-option.is-selected,
.settings-panel .custom-select-menu .custom-select-option.is-selected:hover,
.settings-panel .custom-select-menu .custom-select-option.is-selected:focus,
.settings-panel .custom-select-menu .custom-select-option.is-selected:focus-visible,
.settings-panel .custom-select-menu .custom-select-option.is-selected:active {
  border-color: #123f7d !important;
  background: linear-gradient(135deg, #123260 0%, #1d5aa5 100%) !important;
  color: #fff !important;
  outline: none !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 7px 14px rgba(18, 50, 96, .18) !important;
  transform: none !important;
  filter: none !important;
}

    /* CV degree select surgical stability fix */
    .custom-select-shell.cv-select-degree-shell .custom-select-trigger {
      min-width: 0 !important;
      max-width: 100% !important;
    }

    .custom-select-shell.is-open > .custom-select-menu,
    .custom-select-menu.cv-select-open {
      white-space: nowrap;
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      display: block !important;
    }

    .custom-select-menu[data-cv-degree-select="1"] {
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      position: absolute !important;
      z-index: 2147483647 !important;
      width: min(176px, calc(100vw - 24px)) !important;
      min-width: min(176px, calc(100vw - 24px)) !important;
      max-width: calc(100vw - 24px) !important;
      max-height: min(109px, calc(100vh - 24px)) !important;
      overflow-y: auto !important;
      overflow-x: hidden !important;
      white-space: nowrap !important;
    }

    .custom-select-menu[data-cv-degree-select="1"]::-webkit-scrollbar {
      width: 6px;
    }

    .custom-select-menu[data-cv-degree-select="1"]::-webkit-scrollbar-track {
      background: transparent;
      border-radius: 999px;
      margin: 4px 0;
    }

    .custom-select-menu[data-cv-degree-select="1"]::-webkit-scrollbar-thumb {
      background: rgba(18, 50, 96, 0.55);
      border-radius: 999px;
    }

    .custom-select-menu[data-cv-degree-select="1"]::-webkit-scrollbar-thumb:hover {
      background: #123260;
    }

    .custom-select-menu[data-cv-degree-select="1"] .custom-select-option {
      top: calc(100% + 4px);
      left: 0;
      right: auto;
      bottom: auto;
      display: block !important;
      width: 100% !important;
      min-width: 0 !important;
      white-space: nowrap !important;
      overflow: hidden !important;
      text-overflow: clip !important;
      font-size: 11px !important;
      line-height: 1.25 !important;
    }
  
  /* CV_SELECT_LOCAL_ANCHOR_FIX */
  .custom-select-shell {
    position: relative !important;
  }
  .custom-select-shell.is-open {
    z-index: 999999 !important;
  }
  .cv-settings-accordion-body.cv-select-overflow-open {
    overflow: visible !important;
    position: relative !important;
    z-index: 1000000 !important;
  }
  .settings-group.cv-settings-accordion:has(.custom-select-menu[data-cv-persist-on-select="1"].cv-select-open) {
    overflow: visible !important;
    position: relative !important;
    z-index: 1000000 !important;
    isolation: isolate !important;
  }
  .settings-group.cv-settings-accordion:has(.custom-select-menu[data-cv-persist-on-select="1"].cv-select-open) > .cv-settings-accordion-trigger {
    position: relative !important;
    z-index: 1 !important;
  }
  .settings-group.cv-settings-accordion:has(.custom-select-menu[data-cv-persist-on-select="1"].cv-select-open) > .cv-settings-accordion-body {
    position: relative !important;
    z-index: 3 !important;
  }
  .custom-select-shell > .custom-select-menu.cv-select-open-above,
  .custom-select-shell.is-open > .custom-select-menu.cv-select-open-above {
    top: auto !important;
    bottom: calc(100% + 4px) !important;
  }
  .custom-select-menu[data-cv-top-layer="1"] {
    position: fixed !important;
    inset: auto !important;
    margin: 0 !important;
    min-width: 0 !important;
    max-width: calc(100vw - 24px) !important;
  }
  .custom-select-shell > .custom-select-menu,
  .custom-select-shell.is-open > .custom-select-menu {
    position: absolute !important;
    left: 0 !important;
    top: calc(100% + 4px) !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    z-index: 999999 !important;
  }

/* HORUS_HIDE_NATIVE_CHECKBOXES_20260701_START */
.settings-panel input[type="checkbox"],
.config-panel input[type="checkbox"],
.settings-popover input[type="checkbox"],
.config-popover input[type="checkbox"],
#settingsPanel input[type="checkbox"],
#configPanel input[type="checkbox"],
#settings-panel input[type="checkbox"],
#config-panel input[type="checkbox"] {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  pointer-events: none !important;
}
/* HORUS_HIDE_NATIVE_CHECKBOXES_20260701_END */
