  :root {
    --navy: #050b21;
    --navy-2: #08142f;
    --navy-3: #102544;

    --cyan: #19d8d1;
    --blue: #3487f5;
    --blue-2: #2476df;
    --violet: #9a55f5;
    --magenta: #c954ec;

    --gradient:
      linear-gradient(
        105deg,
        #19d8d1 0%,
        #3487f5 52%,
        #9a55f5 100%
      );

    --button-gradient:
      linear-gradient(
        110deg,
        #278bdc 0%,
        #3c7ff0 52%,
        #8357df 100%
      );

    --text: #18263a;
    --muted: #64758a;
    --muted-light: #8795a7;

    --border: #dce5ef;
    --border-strong: #c9d5e3;

    --background: #f4f7fb;
    --surface: #ffffff;
    --surface-soft: #f8fafc;

    --blue-soft: #edf5ff;
    --violet-soft: #f6f0ff;

    --success: #17785d;
    --success-soft: #edf9f5;

    --warning: #996515;
    --warning-soft: #fff9eb;

    --danger: #b4233f;
    --danger-soft: #fff3f5;

    --shadow:
      0 22px 60px
      rgba(5, 11, 33, .08);
  }


  * {
    box-sizing: border-box;
  }


  html {
    min-height: 100%;
  }


  body {
    min-height: 100vh;

    margin: 0;

    color: var(--text);

    background:
      radial-gradient(
        circle at 15% 0%,
        rgba(25,216,209,.04),
        transparent 26%
      ),
      radial-gradient(
        circle at 85% 0%,
        rgba(154,85,245,.05),
        transparent 30%
      ),
      var(--background);

    font-family:
      Inter,
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      Roboto,
      Arial,
      sans-serif;

    font-size: 15px;
    line-height: 1.55;

    -webkit-font-smoothing: antialiased;
  }


  body.modal-open {
    overflow: hidden;
  }


  button,
  input,
  select,
  textarea {
    font: inherit;
  }


  button {
    cursor: pointer;
  }


  [hidden] {
    display: none !important;
  }


  .page-shell {
    min-height: 100vh;

    display: flex;
    flex-direction: column;
  }


  /* =====================================================================
     HEADER
     ===================================================================== */

  .site-header {
    background:
      linear-gradient(
        100deg,
        var(--navy) 0%,
        #07142d 100%
      );

    border-bottom:
      1px solid
      rgba(255,255,255,.08);
  }


  .header-inner {
    width: 100%;
    max-width: 1180px;

    min-height: 68px;

    margin: 0 auto;
    padding: 0 22px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
  }


  .text-brand {
    display: flex;
    flex-direction: column;

    gap: 1px;
  }


  .text-brand strong {
    color: #fff;

    font-size: 17px;
    font-weight: 800;

    letter-spacing: -.01em;
  }


  .text-brand strong::after {
    content: "";

    display: block;

    width: 35px;
    height: 2px;

    margin-top: 3px;

    background: var(--gradient);

    border-radius: 999px;
  }


  .text-brand span {
    margin-top: 3px;

    color: #b9c6d8;

    font-size: 10px;
    font-weight: 600;
  }


  .account-header {
    display: flex;
    align-items: center;

    gap: 12px;
  }


  .account-email {
    color: #c9d4e2;

    font-size: 12px;
  }


  .header-button {
    padding: 8px 13px;

    color: #fff;

    background:
      rgba(52,135,245,.18);

    border:
      1px solid
      rgba(105,166,255,.35);

    border-radius: 8px;

    font-size: 11px;
    font-weight: 750;

    transition:
      background .15s ease,
      border-color .15s ease;
  }


  .header-button:hover {
    background:
      rgba(52,135,245,.30);

    border-color:
      rgba(105,166,255,.55);
  }


  /* =====================================================================
     MAIN
     ===================================================================== */

  .main-shell {
    width: 100%;
    max-width: 1060px;

    flex: 1;

    margin: 0 auto;

    padding:
      36px 18px 55px;
  }


  .workspace-shell {
    width: 100%;
  }


  /* =====================================================================
     BOOT
     ===================================================================== */

  .center-shell {
    min-height: 460px;

    display: flex;
    align-items: center;
    justify-content: center;
  }


  .boot-card {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 6px;

    color: var(--muted);

    text-align: center;
  }


  .boot-card strong {
    margin-top: 10px;

    color: var(--navy-2);
  }


  .boot-card span {
    font-size: 12px;
  }


  .spinner {
    width: 34px;
    height: 34px;

    border:
      3px solid
      #dde6f0;

    border-top-color:
      var(--blue);

    border-radius: 50%;

    animation:
      spin .75s linear infinite;
  }


  @keyframes spin {
    to {
      transform: rotate(360deg);
    }
  }


  /* =====================================================================
     AUTH
     ===================================================================== */

  .auth-shell {
    min-height: 540px;

    display: flex;
    align-items: center;
    justify-content: center;
  }


  .auth-card {
    width: 100%;
    max-width: 500px;

    overflow: hidden;

    background: #fff;

    border:
      1px solid
      var(--border);

    border-radius: 18px;

    box-shadow: var(--shadow);
  }


  .auth-accent {
    height: 5px;

    background: var(--gradient);
  }


  .auth-content {
    padding:
      39px 40px 34px;
  }


  .eyebrow {
    display: inline-block;

    margin-bottom: 7px;

    color: var(--blue);

    font-size: 10px;
    font-weight: 850;

    letter-spacing: .11em;
    text-transform: uppercase;
  }


  .auth-content h1,
  .portal-hero h1,
  .recovery-heading h1 {
    margin: 0;

    color: var(--navy-2);

    line-height: 1.12;

    letter-spacing: -.03em;
  }


  .auth-content h1 {
    font-size: 30px;
  }


  .auth-description {
    margin:
      12px 0 26px;

    color: var(--muted);

    font-size: 14px;
  }


  .auth-step {
    display: grid;

    gap: 16px;
  }


  .full-button {
    width: 100%;
  }


  .auth-note {
    margin: 0;

    color: var(--muted-light);

    font-size: 11px;

    text-align: center;
  }


  .code-message {
    padding: 12px 13px;

    color: var(--muted);

    background: var(--surface-soft);

    border:
      1px solid
      var(--border);

    border-radius: 9px;

    font-size: 12px;
  }


  .code-message strong {
    display: block;

    margin-top: 2px;

    color: var(--navy-2);
  }


  .code-input {
    text-align: center;

    font-size: 22px !important;
    font-weight: 800;

    letter-spacing: .25em;
  }


  .auth-secondary-actions {
    display: flex;
    justify-content: space-between;

    gap: 12px;
  }


  /* =====================================================================
     APPLICATION
     ===================================================================== */

  .application-card,
  .portal-card {
    background: var(--surface);

    border:
      1px solid
      var(--border);

    border-radius: 18px;

    box-shadow: var(--shadow);
  }


  .application-card {
    overflow: hidden;
  }


  /* =====================================================================
     PROGRESS
     ===================================================================== */

  .progress-area {
    padding:
      20px 42px 19px;

    background:
      linear-gradient(
        180deg,
        #ffffff,
        #fbfcfe
      );

    border-bottom:
      1px solid
      var(--border);
  }


  .progress-meta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 16px;
  }


  .progress-meta div > span {
    display: block;

    color: var(--muted);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .06em;
    text-transform: uppercase;
  }


  .progress-meta div > strong {
    display: block;

    margin-top: 2px;

    color: var(--navy-2);

    font-size: 14px;
  }


  #progress-percent {
    color: var(--blue);

    font-size: 13px;
  }


  .progress-track {
    height: 5px;

    margin-top: 9px;

    overflow: hidden;

    background: #e6ebf2;

    border-radius: 999px;
  }


  .progress-bar {
    width: 14%;

    height: 100%;

    background: var(--gradient);

    border-radius: inherit;

    transition:
      width .2s ease;
  }


  .progress-steps {
    display: grid;

    grid-template-columns:
      repeat(
        7,
        minmax(0, 1fr)
      );

    gap: 6px;

    margin-top: 15px;
  }


  .progress-step {
    appearance: none;

    display: flex;
    flex-direction: column;
    align-items: center;

    min-width: 0;

    gap: 5px;

    padding: 4px;

    color: var(--muted-light);

    background: transparent;

    border: 0;
    border-radius: 9px;

    font-size: 10px;
    font-weight: 500;

    text-align: center;

    transition:
      background .15s ease,
      color .15s ease;
  }


  .progress-step:hover {
    color: var(--navy-2);

    background: #f2f6fb;
  }


  .progress-step > span:last-child {
    max-width: 100%;

    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
  }


  .progress-dot {
    width: 25px;
    height: 25px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #718297;

    background: #eaf0f5;

    border-radius: 50%;

    font-size: 10px;
    font-weight: 850;
  }


  .progress-step.current {
    color: var(--navy-2);

    font-weight: 700;
  }


  .progress-step.current .progress-dot {
    color: #fff;

    background:
      linear-gradient(
        135deg,
        #248fdc,
        #4b78ee
      );

    box-shadow:
      0 0 0 4px
      rgba(52,135,245,.10);
  }


  .progress-step.complete {
    color: var(--success);
  }


  .progress-step.complete .progress-dot {
    color: #fff;

    background: var(--success);
  }


  /* =====================================================================
     STEPS
     ===================================================================== */

  .form-step {
    display: none;

    padding:
      36px 42px;
  }


  .form-step.active {
    display: block;
  }


  .step-heading {
    margin-bottom: 29px;
  }


  .step-kicker {
    display: block;

    margin-bottom: 4px;

    color: var(--blue);

    font-size: 10px;
    font-weight: 850;

    letter-spacing: .08em;
    text-transform: uppercase;
  }


  .step-heading h2 {
    margin: 0;

    color: var(--navy-2);

    font-size: 26px;

    letter-spacing: -.02em;
  }


  .step-heading p {
    max-width: 720px;

    margin: 6px 0 0;

    color: var(--muted);

    font-size: 13px;
  }


  /* =====================================================================
     FORM SECTION
     ===================================================================== */

  .form-section {
    padding:
      0 0 31px;

    border-bottom:
      1px solid
      #edf1f5;
  }


  .section-heading {
    margin-bottom: 18px;
  }


  .section-heading h3,
  .acceptance-heading h3 {
    margin: 0;

    color: var(--navy-2);

    font-size: 18px;
  }


  .section-heading p,
  .acceptance-heading p {
    margin: 4px 0 0;

    color: var(--muted);

    font-size: 12px;
  }


  /* =====================================================================
     FIELDS
     ===================================================================== */

  .field-grid {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    gap: 22px 19px;
  }


  .field {
    min-width: 0;
  }


  .field.full {
    grid-column: 1 / -1;
  }


  label,
  legend {
    color: var(--navy-2);

    font-size: 14px;
    font-weight: 720;

    line-height: 1.45;
  }


  .required-mark {
    color: var(--danger) !important;

    font-weight: 850;
  }


  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  select,
  textarea {
    width: 100%;

    min-height: 48px;

    margin-top: 7px;

    padding: 11px 13px;

    color: var(--text);

    background: #fff;

    border:
      1px solid
      var(--border-strong);

    border-radius: 10px;

    outline: none;

    font-size: 15px;

    transition:
      border-color .15s ease,
      box-shadow .15s ease,
      background .15s ease;
  }


  textarea {
    min-height: 108px;

    resize: vertical;
  }


  input[readonly] {
    color: #4a5b70;

    background: #f7f9fb;
  }


  input::placeholder,
  textarea::placeholder {
    color: #9ba7b5;
  }


  input:focus,
  select:focus,
  textarea:focus {
    border-color: var(--blue);

    box-shadow:
      0 0 0 3px
      rgba(52,135,245,.10);
  }


  input.invalid,
  select.invalid,
  textarea.invalid {
    border-color: var(--danger);

    background: #fffafb;

    box-shadow:
      0 0 0 3px
      rgba(180,35,63,.06);
  }


  small,
  .field-help {
    display: block;

    margin: 6px 0 0;

    color: var(--muted);

    font-size: 12px;

    line-height: 1.5;
  }


  fieldset {
    min-width: 0;

    margin: 0;
    padding: 0;

    border: 0;
  }


  .conditional-field {
    margin-top: 17px;
  }


  /* =====================================================================
     TWO COLUMN GENERAL
     ===================================================================== */

  .two-column-layout {
    display: grid;

    grid-template-columns:
      minmax(0, .95fr)
      minmax(0, 1.05fr);

    gap: 23px;

    align-items: stretch;
  }


  .column-fields,
  .column-document {
    min-width: 0;
  }


  .stacked-fields {
    display: flex;
    flex-direction: column;

    gap: 21px;
  }


  /* =====================================================================
     PROFESSIONAL
     ===================================================================== */

  .professional-top-grid {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    gap: 24px;

    align-items: stretch;
  }


  .professional-left-stack {
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 20px;
  }


  .professional-left-stack .restriction-card {
    flex: 1;
  }


  .professional-document-column {
    min-width: 0;

    display: flex;
    flex-direction: column;
  }


  .file-card-stretch {
    flex: 1;
  }


    .professional-company-grid {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    gap: 28px;

    align-items: stretch;

    margin-top: 26px;
  }


  .professional-company-grid >
  .question-card {
    min-height: 146px;
  }


  .company-question-card,
  .cnpj-inline-card {
    width: 100%;
    height: 100%;
  }


  .cnpj-inline-card {
    padding: 18px;

    background: #fbfcfe;

    border:
      1px solid
      var(--border);

    border-radius: 12px;
  }


  .cnpj-inline-card legend {
    padding:
      0 5px;

    margin-left:
      -5px;
  }


  .cnpj-input-row {
    display: grid;

    grid-template-columns:
      minmax(0, 1fr)
      158px;

    gap: 11px;

    align-items: center;

    margin-top: 12px;
  }


  .cnpj-input-row input {
    margin-top: 0;
  }


  .compact-primary {
    width: 158px;

    min-width: 158px !important;
    min-height: 48px !important;

    margin-top: 0;

    padding-left: 13px;
    padding-right: 13px;

    white-space: nowrap;
  }


  .question-card {
    width: 100%;

    padding: 18px;

    background: #fbfcfe;

    border:
      1px solid
      var(--border);

    border-radius: 12px;
  }


  .question-card.invalid-group {
    background: var(--danger-soft);

    border-color: #dfa0ae;
  }


  .cnpj-inline-card {
    min-height: 100%;

    padding: 18px;

    background: #fbfcfe;

    border:
      1px solid
      var(--border);

    border-radius: 12px;
  }


  .cnpj-input-row {
    display: grid;

    grid-template-columns:
      minmax(0, 1fr)
      auto;

    gap: 9px;

    align-items: end;
  }


  .cnpj-input-row input {
    margin-top: 7px;
  }


  .compact-primary {
    min-width: 136px !important;
    min-height: 48px !important;

    margin-top: 7px;

    white-space: nowrap;
  }


  #cnpj-inline-error {
    margin-top: 10px;
  }


  /* =====================================================================
     FORMATION PAIR
     ===================================================================== */

  .formation-pair-grid {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    gap: 22px;

    align-items: stretch;

    margin-top: 30px;
  }


  .formation-panel {
    min-width: 0;

    padding: 21px;

    background: #fbfcfe;

    border:
      1px solid
      var(--border);

    border-radius: 13px;
  }


    .postgrad-choice-grid {
    display: grid;

    grid-template-columns:
      repeat(
        3,
        minmax(0, 1fr)
      );

    gap: 8px;

    margin-top: 12px;
  }


  .postgrad-choice-grid .choice-option {
    min-width: 0;

    justify-content: flex-start;

    padding:
      11px 10px;

    font-size: 12px;
  }


  .postgrad-expanded-layout {
    margin-top: 22px;

    padding: 22px;

    background: #fbfcfe;

    border:
      1px solid
      var(--border);

    border-radius: 13px;
  }


  .postgrad-file-card {
    height: calc(100% - 27px);
  }


  .postgrad-details {
    display: grid;

    gap: 16px;

    margin-top: 19px;

    padding-top: 18px;

    border-top:
      1px solid
      #e7edf4;
  }


  .postgrad-document-block {
    margin-top: 2px;
  }


  /* =====================================================================
     CHOICES
     ===================================================================== */

  .choice-fieldset.invalid-group,
  .declaration-card.invalid-group {
    padding: 15px;

    background: var(--danger-soft);

    border:
      1px solid
      #e2a2af;

    border-radius: 11px;
  }


  .radio-grid,
  .option-grid {
    display: grid;

    gap: 9px;

    margin-top: 12px;
  }


  .radio-grid.two,
  .option-grid {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }


  .radio-grid.three,
  .option-grid.three {
    grid-template-columns:
      repeat(
        3,
        minmax(0, 1fr)
      );
  }


  .option-grid.four {
    grid-template-columns:
      repeat(
        4,
        minmax(0, 1fr)
      );
  }


  .experience-grid,
  .availability-hours {
    grid-template-columns:
      repeat(
        5,
        minmax(0, 1fr)
      );
  }


  .compact-grid {
    max-width: 430px;
  }


  .choice-option {
    min-height: 49px;

    display: flex;
    align-items: center;

    gap: 10px;

    padding: 11px 13px;

    color: #41536a;

    background: #fff;

    border:
      1px solid
      var(--border);

    border-radius: 10px;

    cursor: pointer;

    font-size: 14px;
    font-weight: 520;

    transition:
      background .15s ease,
      border-color .15s ease,
      box-shadow .15s ease;
  }


  .choice-option:hover {
    border-color: #afc4dc;

    background: #fbfdff;
  }


  .choice-option.selected {
    color: var(--navy-2);

    background:
      linear-gradient(
        120deg,
        rgba(25,216,209,.07),
        rgba(52,135,245,.08)
      );

    border-color: #8cb9ec;

    box-shadow:
      0 0 0 1px
      rgba(52,135,245,.04);
  }


  .choice-option input {
    flex: 0 0 auto;

    width: 18px;
    height: 18px;

    margin: 0;

    accent-color: var(--blue);
  }


  .spaced-fieldset +
  .spaced-fieldset {
    margin-top: 28px;
  }


  /* =====================================================================
     ANSWER SUMMARY
     ===================================================================== */

  .answer-summary,
  .company-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-top: 13px;

    padding: 10px 11px;

    background: var(--success-soft);

    border:
      1px solid
      #b7dece;

    border-radius: 9px;
  }


  .answer-summary div {
    min-width: 0;
  }


  .answer-summary span,
  .company-summary-copy > span {
    display: block;

    color: var(--success);

    font-size: 9px;
    font-weight: 800;

    text-transform: uppercase;
  }


  .answer-summary strong {
    display: block;

    max-width: 330px;

    margin-top: 2px;

    color: var(--navy-2);

    font-size: 12px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }


  .company-summary {
    align-items: flex-start;
  }


  .company-status-icon {
    flex: 0 0 auto;

    width: 27px;
    height: 27px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #fff;

    background: var(--success);

    border-radius: 50%;

    font-size: 12px;
    font-weight: 900;
  }


  .company-summary-copy {
    flex: 1;
    min-width: 0;
  }


  .company-summary-copy strong {
    display: block;

    margin-top: 2px;

    color: var(--navy-2);

    font-size: 13px;
  }


  .company-summary-copy p {
    margin: 1px 0 0;

    color: #42536a;

    font-size: 11px;

    line-height: 1.35;

    overflow-wrap: anywhere;
  }


  .company-summary-copy small {
    margin-top: 2px;

    color: var(--success);

    font-size: 9px;
  }


  /* =====================================================================
     FILES
     ===================================================================== */

  .file-card {
    margin-top: 7px;

    padding: 15px;

    background: #fbfcfe;

    border:
      1px solid
      var(--border);

    border-radius: 11px;

    transition:
      border-color .15s ease,
      background .15s ease;
  }


  .file-card.has-file {
    background: #f7fcfa;

    border-color: #a6d6c3;
  }


  .file-card.server-file {
    background: #f7fcfa;

    border-color: #b8dfcf;
  }


  .file-card.invalid-card {
    background: var(--danger-soft);

    border-color: #df9dab;
  }


  .file-card-heading {
    display: flex;
    align-items: flex-start;

    gap: 12px;
  }


  /* ANTES DO ANEXO: AZUL */

  .file-badge {
    flex: 0 0 auto;

    min-width: 42px;
    height: 42px;

    padding: 0 7px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #fff;

    background:
      linear-gradient(
        135deg,
        #278bdc,
        #4a79ed
      );

    border-radius: 9px;

    box-shadow:
      0 5px 14px
      rgba(52,135,245,.16);

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .02em;
  }


  /* DEPOIS DO ANEXO: VERDE */

  .file-card.has-file .file-badge,
  .file-card.server-file .file-badge {
    background:
      linear-gradient(
        135deg,
        #16866b,
        #1c9c78
      );

    box-shadow:
      0 5px 14px
      rgba(23,120,93,.13);
  }


  .file-card-heading strong {
    display: block;

    color: var(--navy-2);

    font-size: 13px;
  }


  .file-card-heading p {
    margin: 3px 0 0;

    color: var(--muted);

    font-size: 12px;

    line-height: 1.5;
  }


  .compact-file-card .file-card-heading p {
    font-size: 11px;
  }


  .file-state {
    margin-top: 13px;

    padding: 9px 11px;

    background: #fff;

    border:
      1px solid
      var(--border);

    border-radius: 8px;
  }


  .file-state strong {
    display: block;

    color: #44566d;

    font-size: 12px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }


  .file-state span {
    display: block;

    margin-top: 2px;

    color: var(--muted);

    font-size: 11px;
  }


  .file-actions {
    display: flex;
    align-items: center;

    gap: 9px;

    margin-top: 11px;
  }


  .file-actions input[type="file"] {
    flex: 1;

    min-width: 0;

    color: var(--muted);

    font-size: 12px;
  }


  input[type="file"]::file-selector-button {
    margin-right: 9px;

    padding: 8px 11px;

    color: #225fbd;

    background: #fff;

    border:
      1px solid
      #bcd3f0;

    border-radius: 7px;

    cursor: pointer;

    font-weight: 750;
  }


  input[type="file"]::file-selector-button:hover {
    background: var(--blue-soft);
  }


  .file-remove {
    flex: 0 0 auto;

    padding: 7px 9px;

    color: var(--danger);

    background: #fff;

    border:
      1px solid
      #e8b5c0;

    border-radius: 7px;

    font-size: 11px;
    font-weight: 750;
  }


  .file-remove:hover {
    background: var(--danger-soft);
  }


  /* =====================================================================
     AVAILABILITY
     ===================================================================== */

  .availability-fieldset {
    margin-top: 32px;
  }


  .availability-table {
    width: 100%;
    max-width: 810px;

    margin:
      16px auto 0;

    overflow: hidden;

    border:
      1px solid
      var(--border);

    border-radius: 11px;
  }


  .availability-head,
  .availability-row {
    display: grid;

    grid-template-columns:
      minmax(130px, 1.25fr)
      repeat(
        3,
        minmax(86px, .8fr)
      );

    align-items: stretch;
  }


  .availability-head {
    min-height: 43px;

    color: var(--navy-2);

    background: #f2f6fa;

    font-size: 12px;
    font-weight: 800;
  }


  .availability-head span {
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 8px 10px;
  }


  .availability-head span:first-child {
    justify-content: flex-start;

    padding-left: 16px;
  }


  .availability-row {
    min-height: 48px;

    border-top:
      1px solid
      #e9eef4;
  }


  .availability-row strong {
    display: flex;
    align-items: center;

    padding: 0 16px;

    color: #41536a;

    font-size: 13px;
  }


  .availability-cell {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 48px;

    border-left:
      1px solid
      #edf1f5;

    cursor: pointer;

    transition:
      background .12s ease;
  }


  .availability-cell:hover {
    background: #f4f8fe;
  }


  .availability-cell.selected {
    background:
      linear-gradient(
        145deg,
        rgba(52,135,245,.11),
        rgba(25,216,209,.06)
      );
  }


  .availability-cell input {
    width: 19px;
    height: 19px;

    margin: 0;

    accent-color: var(--blue);
  }


  #group-grade.invalid-group .availability-table {
    border-color: var(--danger);
  }


  /* =====================================================================
     DECLARATIONS
     ===================================================================== */

  .declaration-list {
    display: grid;

    gap: 14px;
  }


  .declaration-card {
    display: flex;
    align-items: flex-start;

    gap: 14px;

    padding: 18px;

    background: #fff;

    border:
      1px solid
      var(--border);

    border-radius: 12px;
  }


  .declaration-number {
    flex: 0 0 auto;

    width: 31px;
    height: 31px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--blue);

    background: var(--blue-soft);

    border-radius: 8px;

    font-size: 11px;
    font-weight: 850;
  }


  .declaration-content {
    flex: 1;
    min-width: 0;
  }


  .declaration-content legend {
    width: 100%;

    float: left;
  }


  .declaration-content legend + * {
    clear: both;
  }


  .declaration-title {
    display: block;

    color: var(--navy-2);

    font-size: 14px;
  }


  .declaration-content > p {
    margin: 5px 0 0;

    color: var(--muted);

    font-size: 12px;
  }


  .requirements-button {
    display: inline-block;

    margin:
      18px 0 19px;
  }


  .confirmation-card {
    display: flex;
    align-items: flex-start;

    gap: 9px;

    margin-top: 0;

    padding: 12px;

    color: #42536a;

    background: var(--surface-soft);

    border:
      1px solid
      var(--border);

    border-radius: 9px;

    cursor: pointer;

    font-size: 13px;
    font-weight: 500;
  }


  .confirmation-card.invalid-group {
    background: var(--danger-soft);

    border-color: var(--danger);
  }


  .confirmation-card input {
    flex: 0 0 auto;

    width: 17px;
    height: 17px;

    margin-top: 2px;

    accent-color: var(--blue);
  }


  /* =====================================================================
     REVIEW
     ===================================================================== */

  .review-summary {
    display: grid;

    gap: 12px;
  }


  .review-section {
    overflow: hidden;

    background: #fff;

    border:
      1px solid
      var(--border);

    border-radius: 11px;
  }


  .review-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    padding: 13px 15px;

    background: var(--surface-soft);

    border-bottom:
      1px solid
      var(--border);
  }


  .review-section-header strong {
    color: var(--navy-2);

    font-size: 14px;
  }


  .review-edit {
    padding: 5px 9px;

    color: var(--blue);

    background: #fff;

    border:
      1px solid
      #cadcf2;

    border-radius: 7px;

    font-size: 11px;
    font-weight: 800;
  }


  .review-section-body {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    padding:
      4px 15px 11px;
  }


  .review-item {
    padding:
      10px 12px 10px 0;

    border-bottom:
      1px solid
      #edf1f5;
  }


  .review-item span {
    display: block;

    color: var(--muted);

    font-size: 10px;
    font-weight: 750;

    text-transform: uppercase;
  }


  .review-item strong {
    display: block;

    margin-top: 2px;

    color: var(--navy-2);

    font-size: 13px;
    font-weight: 650;

    overflow-wrap: anywhere;
  }


  .acceptance-heading {
    margin:
      31px 0 13px;
  }


  .acceptance-list {
    display: grid;

    gap: 10px;
  }


  .acceptance-card {
    display: flex;
    align-items: flex-start;

    gap: 11px;

    padding: 15px;

    color: #42536a;

    background: #fff;

    border:
      1px solid
      var(--border);

    border-radius: 10px;

    cursor: pointer;

    font-size: 13px;
  }


  .acceptance-card.invalid-group {
    background: var(--danger-soft);

    border-color: var(--danger);
  }


  .acceptance-card input {
    flex: 0 0 auto;

    width: 18px;
    height: 18px;

    margin-top: 2px;

    accent-color: var(--blue);
  }


  .acceptance-card strong {
    display: block;

    margin-bottom: 3px;

    color: var(--navy-2);

    font-size: 14px;
  }


  /* =====================================================================
     NAVIGATION / BUTTONS
     ===================================================================== */

  .form-navigation {
    display: flex;
    align-items: center;

    gap: 9px;

    padding:
      24px 42px 12px;

    border-top:
      1px solid
      #edf1f5;
  }


  .navigation-spacer {
    flex: 1;
  }


  .btn {
    min-width: 140px;
    min-height: 45px;

    padding: 10px 18px;

    border-radius: 9px;

    font-size: 14px;
    font-weight: 750;

    transition:
      filter .15s ease,
      box-shadow .15s ease,
      border-color .15s ease,
      transform .15s ease;
  }


  /* SEM FUNDO PRETO */

  .btn.primary,
  .btn.submit,
  .btn.compact-primary {
    color: #fff;

    background: var(--button-gradient);

    border:
      1px solid
      transparent;

    box-shadow:
      0 7px 18px
      rgba(52,135,245,.17);
  }


  .btn.primary:hover,
  .btn.submit:hover,
  .btn.compact-primary:hover {
    filter: brightness(.97);

    box-shadow:
      0 9px 22px
      rgba(52,135,245,.23);
  }


  .btn.submit {
    min-width: 190px;
  }


  .btn.secondary {
    color: #286fcf;

    background: #fff;

    border:
      1px solid
      #bfd5f1;
  }


  .btn.secondary:hover {
    background: var(--blue-soft);

    border-color: #9fc1ea;
  }


  .btn:disabled {
    cursor: wait;

    opacity: .58;
  }


  .text-button {
    padding: 0;

    color: var(--blue);

    background: transparent;

    border: 0;

    font-size: 11px;
    font-weight: 750;

    text-decoration: underline;
  }


  .secondary-inline-button {
    padding: 8px 11px;

    color: #2874d4;

    background: #fff;

    border:
      1px solid
      #c7daf2;

    border-radius: 8px;

    font-size: 12px;
    font-weight: 750;
  }


  .secondary-inline-button:hover {
    background: var(--blue-soft);
  }


  #btn-refresh-portal {
    margin-top: 13px;
  }


  .draft-status {
    padding:
      0 42px 26px;

    color: var(--muted-light);

    font-size: 11px;

    text-align: right;
  }


  .draft-status > span:first-child {
    color: var(--success);

    font-weight: 900;
  }


  .draft-status small {
    display: block;

    margin-top: 2px;

    font-size: 10px;
  }


  /* =====================================================================
     ERROR
     ===================================================================== */

  .form-error,
  .inline-error {
    color: #952039;

    background: var(--danger-soft);

    border:
      1px solid
      #efbbc6;

    border-radius: 9px;

    font-size: 12px;
    font-weight: 600;
  }


  .form-error {
    margin:
      17px 42px 0;

    padding: 12px 14px;
  }


  .inline-error {
    padding: 10px 12px;
  }


  /* =====================================================================
     MODAL
     ===================================================================== */

  .modal-backdrop {
    position: fixed;

    inset: 0;

    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background:
      rgba(5,11,33,.72);

    backdrop-filter:
      blur(3px);
  }


  .modal-card {
    width: 100%;

    max-height:
      calc(100vh - 40px);

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background: #fff;

    border:
      1px solid
      rgba(255,255,255,.4);

    border-radius: 15px;

    box-shadow:
      0 28px 80px
      rgba(0,0,0,.25);
  }


  .modal-small {
    max-width: 590px;
  }


  .modal-company,
  .modal-large {
    max-width: 760px;
  }


  .modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 18px;

    padding:
      22px 24px 18px;

    border-bottom:
      1px solid
      var(--border);
  }


  .modal-header h2 {
    margin: 0;

    color: var(--navy-2);

    font-size: 21px;
  }


  .modal-close {
    width: 33px;
    height: 33px;

    flex: 0 0 auto;

    padding: 0;

    color: var(--muted);

    background: var(--surface-soft);

    border:
      1px solid
      var(--border);

    border-radius: 8px;

    font-size: 20px;
  }


  .modal-body {
    overflow-y: auto;

    padding: 21px 24px;
  }


  .modal-footer {
    display: flex;
    justify-content: flex-end;

    gap: 9px;

    padding:
      15px 24px 20px;

    border-top:
      1px solid
      var(--border);
  }


  .modal-stage {
    min-height: 230px;
  }


  .modal-lead {
    margin:
      0 0 19px;

    color: var(--muted);

    font-size: 13px;
  }


  .modal-inline-actions {
    display: flex;
    justify-content: flex-end;

    gap: 9px;

    margin-top: 20px;
  }


  .split-actions {
    justify-content: space-between;
  }


  .modal-question {
    margin-top: 17px;

    color: var(--navy-2);

    font-size: 13px;
  }


  /* =====================================================================
     COMPANY DATA
     ===================================================================== */

  .company-data-card {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    overflow: hidden;

    border:
      1px solid
      var(--border);

    border-radius: 10px;
  }


  .company-data-item {
    min-width: 0;

    padding: 12px 13px;

    border-bottom:
      1px solid
      #edf1f5;
  }


  .company-data-item:nth-child(even) {
    border-left:
      1px solid
      #edf1f5;
  }


  .company-data-item.wide {
    grid-column:
      1 / -1;

    border-left: 0;
  }


  .company-data-item span {
    display: block;

    color: var(--muted);

    font-size: 10px;
    font-weight: 750;

    text-transform: uppercase;
  }


  .company-data-item strong {
    display: block;

    margin-top: 3px;

    color: var(--navy-2);

    font-size: 13px;

    overflow-wrap: anywhere;
  }


  .warning-card {
    margin-top: 14px;

    padding: 11px 13px;

    color: #805916;

    background: var(--warning-soft);

    border:
      1px solid
      #efdba8;

    border-radius: 9px;

    font-size: 12px;
  }


  /* =====================================================================
     REQUIREMENTS
     ===================================================================== */

  .requirements-body {
    display: grid;

    gap: 2px;
  }


  .requirement-section {
    display: flex;
    align-items: flex-start;

    gap: 13px;

    padding: 14px 0;

    border-bottom:
      1px solid
      #edf1f5;
  }


  .requirement-section:last-child {
    border-bottom: 0;
  }


  .requirement-number {
    flex: 0 0 auto;

    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #fff;

    background:
      linear-gradient(
        135deg,
        var(--blue),
        var(--violet)
      );

    border-radius: 8px;

    font-size: 10px;
    font-weight: 900;
  }


  .requirement-section h3 {
    margin: 1px 0 4px;

    color: var(--navy-2);

    font-size: 14px;
  }


  .requirement-section p {
    margin: 3px 0;

    color: var(--muted);

    font-size: 12px;
  }


  /* =====================================================================
     RECOVERY
     ===================================================================== */

  .recovery-card {
    padding:
      36px 40px;
  }


  .recovery-heading h1 {
    font-size: 30px;
  }


  .recovery-heading p {
    max-width: 680px;

    margin: 11px 0 22px;

    color: var(--muted);

    font-size: 13px;
  }


  .recovery-review-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 27px;

    padding: 15px 17px;

    background:
      linear-gradient(
        120deg,
        rgba(52,135,245,.06),
        rgba(154,85,245,.04)
      );

    border:
      1px solid
      #d6e2f1;

    border-radius: 11px;
  }


  .recovery-review-bar strong {
    display: block;

    color: var(--navy-2);

    font-size: 13px;
  }


  .recovery-review-bar span {
    display: block;

    margin-top: 2px;

    color: var(--muted);

    font-size: 11px;
  }


  .recovery-review-bar .btn {
    flex: 0 0 auto;

    min-width: 190px;
  }


  .recovery-documents {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    gap: 20px;

    margin-bottom: 23px;
  }


  .recovery-documents input[type="file"] {
    display: block;

    width: 100%;

    margin-top: 8px;

    padding: 10px;

    background: var(--surface-soft);

    border:
      1px solid
      var(--border);

    border-radius: 9px;
  }


  /* =====================================================================
     PORTAL
     ===================================================================== */

  .portal-shell {
    display: grid;

    gap: 18px;
  }


  .success-banner {
    display: flex;
    align-items: center;

    gap: 12px;

    padding: 14px 16px;

    color: #275c4e;

    background: var(--success-soft);

    border:
      1px solid
      #b8ddcf;

    border-radius: 11px;
  }


  .success-banner > span {
    width: 27px;
    height: 27px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #fff;

    background: var(--success);

    border-radius: 50%;

    font-weight: 900;
  }


  .success-banner strong {
    display: block;

    color: var(--navy-2);

    font-size: 13px;
  }


  .success-banner p {
    margin: 2px 0 0;

    font-size: 11px;
  }


  .portal-hero {
    min-height: 220px;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    padding: 36px 39px;

    color: #fff;

    background:
      radial-gradient(
        circle at 90% 20%,
        rgba(154,85,245,.24),
        transparent 34%
      ),
      radial-gradient(
        circle at 10% 100%,
        rgba(25,216,209,.16),
        transparent 38%
      ),
      linear-gradient(
        110deg,
        var(--navy),
        #0a1734
      );

    border-radius: 18px;

    box-shadow:
      0 22px 60px
      rgba(5,11,33,.13);
  }


  .portal-hero .eyebrow {
    color: var(--cyan);
  }


  .portal-hero h1 {
    color: #fff;

    font-size:
      clamp(
        29px,
        5vw,
        42px
      );
  }


  .portal-hero p {
    max-width: 600px;

    margin: 11px 0 0;

    color: #c8d4e3;

    font-size: 14px;
  }


  .protocol-box {
    flex: 0 0 auto;

    min-width: 210px;

    padding: 15px 17px;

    background:
      rgba(255,255,255,.07);

    border:
      1px solid
      rgba(255,255,255,.13);

    border-radius: 11px;
  }


  .protocol-box span {
    display: block;

    color: #aebed2;

    font-size: 9px;
    font-weight: 750;

    text-transform: uppercase;
  }


  .protocol-box strong {
    display: block;

    margin-top: 3px;

    color: #fff;

    font-size: 17px;

    letter-spacing: .02em;
  }


  .portal-grid {
    display: grid;

    grid-template-columns:
      minmax(0, .8fr)
      minmax(0, 1.2fr);

    gap: 18px;
  }


  .portal-card {
    padding: 23px;
  }


  .next-action-card {
    background:
      linear-gradient(
        145deg,
        #fff,
        #f7fbff
      );
  }


  .portal-card-label {
    display: block;

    margin-bottom: 6px;

    color: var(--blue);

    font-size: 9px;
    font-weight: 850;

    letter-spacing: .09em;
    text-transform: uppercase;
  }


  .portal-card h2 {
    margin: 0;

    color: var(--navy-2);

    font-size: 19px;
  }


  .portal-card > p,
  .next-action-card p {
    margin: 10px 0 0;

    color: var(--muted);

    font-size: 13px;
  }


  .portal-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 15px;
  }


  .timeline {
    display: grid;

    margin-top: 22px;
  }


  .timeline-item {
    position: relative;

    display: grid;

    grid-template-columns:
      28px 1fr;

    gap: 12px;

    min-height: 76px;
  }


  .timeline-item:not(:last-child)::after {
    content: "";

    position: absolute;

    left: 13px;
    top: 27px;
    bottom: 0;

    width: 2px;

    background: #dfe6ee;
  }


  .timeline-marker {
    position: relative;

    z-index: 1;

    width: 28px;
    height: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #8292a4;

    background: #edf1f5;

    border-radius: 50%;

    font-size: 10px;
    font-weight: 900;
  }


  .timeline-item.complete .timeline-marker {
    color: #fff;

    background: var(--success);
  }


  .timeline-item.current .timeline-marker {
    color: #fff;

    background:
      linear-gradient(
        135deg,
        var(--blue),
        var(--violet)
      );

    box-shadow:
      0 0 0 4px
      rgba(52,135,245,.09);
  }


  .timeline-copy strong {
    display: block;

    color: var(--navy-2);

    font-size: 13px;
  }


  .timeline-copy p {
    margin: 2px 0 0;

    color: var(--muted);

    font-size: 11px;
  }


  /* =====================================================================
     FOOTER
     ===================================================================== */

  .footer {
    margin-top: auto;

    padding: 21px;

    color: #8795a8;

    font-size: 10px;

    text-align: center;
  }


  .footer span {
    margin: 0 7px;
  }


  /* =====================================================================
     TABLET
     ===================================================================== */

  @media (
    max-width: 880px
  ) {

    .experience-grid,
    .availability-hours {
      grid-template-columns:
        repeat(
          2,
          minmax(0, 1fr)
        );
    }


    .option-grid.four {
      grid-template-columns:
        repeat(
          2,
          minmax(0, 1fr)
        );
    }


    .portal-grid {
      grid-template-columns: 1fr;
    }

  }


  /* =====================================================================
     MOBILE
     ===================================================================== */

  @media (
    max-width: 700px
  ) {

    body {
      font-size: 14px;
    }


    .header-inner {
      min-height: 59px;

      padding:
        0 15px;
    }


    .text-brand span,
    .account-email {
      display: none;
    }


    .main-shell {
      padding:
        13px 7px 34px;
    }


    .auth-shell {
      min-height: 470px;
    }


    .auth-card {
      border-radius: 13px;
    }


    .auth-content {
      padding:
        31px 20px 27px;
    }


    .application-card {
      border-radius: 12px;
    }


    .progress-area {
      padding:
        15px 20px 13px;
    }


    .progress-steps {
      display: flex;

      gap: 5px;

      margin-top: 12px;

      padding-bottom: 3px;

      overflow-x: auto;

      scrollbar-width: thin;
    }


    .progress-step {
      flex:
        0 0 74px;
    }


    .progress-step > span:last-child {
      display: block;

      font-size: 8px;
    }


    .form-step {
      padding:
        28px 20px;
    }


    .step-heading h2 {
      font-size: 23px;
    }

      .postgrad-choice-grid {
      grid-template-columns: 1fr;
    }


    .professional-company-grid {
      gap: 18px;
    }


    .professional-company-grid >
    .question-card {
      min-height: 0;
    }


    .cnpj-input-row {
      grid-template-columns: 1fr;
    }


    .compact-primary {
      width: 100%;

      min-width: 0 !important;
    }


    .postgrad-expanded-layout {
      padding: 18px;
    }

    .field-grid,
    .two-column-layout,
    .professional-top-grid,
    .professional-company-grid,
    .formation-pair-grid,
    .radio-grid.two,
    .radio-grid.three,
    .experience-grid,
    .availability-hours,
    .option-grid,
    .option-grid.three,
    .option-grid.four,
    .review-section-body,
    .company-data-card,
    .recovery-documents {
      grid-template-columns: 1fr;
    }


    .cnpj-input-row {
      grid-template-columns: 1fr;
    }


    .compact-primary {
      width: 100%;
    }


    .file-actions {
      align-items: flex-start;
      flex-direction: column;
    }


    .file-actions input[type="file"] {
      width: 100%;
    }


    .company-data-item:nth-child(even) {
      border-left: 0;
    }


    .availability-table {
      max-width: none;

      overflow-x: auto;
    }


    .availability-head,
    .availability-row {
      min-width: 470px;
    }


    .form-navigation {
      flex-direction: column-reverse;

      padding:
        20px 20px 10px;
    }


    .navigation-spacer {
      display: none;
    }


    .btn {
      width: 100%;
    }


    .draft-status {
      padding:
        0 20px 22px;

      text-align: center;
    }


    .form-error {
      margin:
        15px 20px 0;
    }


    .modal-backdrop {
      align-items: flex-end;

      padding: 7px;
    }


    .modal-card {
      max-height: 94vh;

      border-radius:
        14px 14px 7px 7px;
    }


    .modal-header,
    .modal-body {
      padding-left: 19px;
      padding-right: 19px;
    }


    .modal-footer,
    .modal-inline-actions,
    .split-actions {
      flex-direction: column-reverse;
    }


    .recovery-review-bar {
      align-items: stretch;
      flex-direction: column;
    }


    .recovery-review-bar .btn {
      width: 100%;
    }


    .portal-hero {
      min-height: 0;

      flex-direction: column;
      align-items: flex-start;

      padding:
        29px 22px;
    }


    .protocol-box {
      width: 100%;
    }


    .portal-card {
      padding: 20px;
    }


    .recovery-card {
      padding:
        29px 20px;
    }

  }