/* =========================================================
   IBV TECH — PORTAL DO CANDIDATO
   candidate.css
========================================================= */

:root{
  --candidate-green:#4f9d16;
  --candidate-lime:#8fe33e;
  --candidate-dark:#052d1d;
  --candidate-deep:#031d14;
  --candidate-ink:#16301f;
  --candidate-muted:#78847c;
  --candidate-line:#dde8de;
  --candidate-soft:#f7faf6;
  --candidate-white:#ffffff;
  --candidate-shadow:0 22px 60px rgba(20,55,29,.09);
}


/* =========================================================
   RESET LOCAL
========================================================= */

.candidate-onboarding,
.candidate-onboarding *{
  box-sizing:border-box;
}

.candidate-onboarding{
  min-height:100vh;

  color:var(--candidate-ink);

  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(128,205,58,.10),
      transparent 26%
    ),
    linear-gradient(
      180deg,
      #fbfdf9 0%,
      #f4f8f2 100%
    );

  font-family:
    "DM Sans",
    Arial,
    sans-serif;
}


/* =========================================================
   HEADER
========================================================= */

.candidate-onboarding-header{
  min-height:76px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:30px;

  padding:12px 5vw;

  background:rgba(255,255,255,.94);

  border-bottom:
    1px solid
    var(--candidate-line);

  backdrop-filter:blur(14px);

  position:sticky;
  top:0;
  z-index:50;
}

.candidate-onboarding-logo{
  display:flex;
  align-items:center;
}

.candidate-onboarding-logo img{
  width:150px;
  height:50px;
  object-fit:contain;
}

.candidate-job-context{
  display:flex;
  align-items:center;
  gap:7px;

  color:#76837a;

  font-size:11px;
}

.candidate-job-context strong{
  color:#1b3524;
}

.candidate-job-context a{
  margin-left:8px;

  padding:7px 11px;

  border-radius:20px;

  background:#eff7e9;

  color:#55981d;

  font-weight:700;
}


/* =========================================================
   TIPOGRAFIA
========================================================= */

.candidate-kicker{
  display:block;

  margin-bottom:9px;

  color:#5aa21e;

  font-size:9px;
  font-weight:800;

  letter-spacing:1.6px;
}

.candidate-step-card h1,
.candidate-auth-card h2,
.candidate-success-page h1{
  margin:0;

  color:#122b1b;

  font-family:
    "Space Grotesk",
    "DM Sans",
    sans-serif;

  letter-spacing:-1px;
}

.candidate-step-card > p,
.candidate-auth-card p,
.candidate-success-page p{
  color:#7a877f;

  font-size:13px;
  line-height:1.65;
}


/* =========================================================
   LOGIN / CADASTRO
========================================================= */

.candidate-auth-layout{
  width:min(1180px,calc(100% - 40px));

  min-height:calc(100vh - 76px);

  margin:auto;

  display:grid;

  grid-template-columns:
    minmax(0,1.05fr)
    minmax(390px,.75fr);

  align-items:stretch;

  overflow:hidden;

  border-radius:24px;

  background:#fff;

  box-shadow:
    0 30px 80px
    rgba(12,47,25,.10);
}

.candidate-auth-visual{
  min-height:690px;

  position:relative;

  overflow:hidden;

  display:flex;
  align-items:flex-end;

  padding:60px;

  color:#fff;

  background:
    radial-gradient(
      circle at 75% 15%,
      rgba(136,225,66,.25),
      transparent 27%
    ),
    linear-gradient(
      135deg,
      rgba(3,35,23,.92),
      rgba(8,94,48,.78)
    ),
    url("../assets/Candidatos.png")
    center / cover no-repeat;
}

.candidate-auth-visual::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      90deg,
      rgba(3,28,19,.96) 0%,
      rgba(3,41,25,.76) 45%,
      rgba(3,41,25,.18) 100%
    );
}

.candidate-auth-visual::after{
  content:"";

  position:absolute;

  width:420px;
  height:420px;

  right:-180px;
  bottom:-190px;

  border:
    1px solid
    rgba(160,230,100,.18);

  border-radius:50%;
}

.candidate-auth-copy{
  position:relative;
  z-index:2;

  max-width:500px;
}

.candidate-auth-copy .candidate-kicker{
  color:#a8ec66;
}

.candidate-auth-copy h1{
  margin:0 0 18px;

  font-family:
    "Space Grotesk",
    sans-serif;

  font-size:clamp(44px,5vw,68px);

  line-height:.98;

  letter-spacing:-2.6px;
}

.candidate-auth-copy > p{
  max-width:400px;

  color:#d8e6dc;

  font-size:15px;
  line-height:1.65;
}

.candidate-auth-benefits{
  margin-top:34px;

  display:flex;
  flex-wrap:wrap;

  gap:10px;
}

.candidate-auth-benefits span{
  padding:9px 12px;

  border:
    1px solid
    rgba(255,255,255,.14);

  border-radius:30px;

  background:
    rgba(255,255,255,.07);

  color:#eef6f0;

  font-size:10px;
}

.candidate-auth-card{
  min-height:690px;

  padding:60px 55px;

  display:flex;
  flex-direction:column;
  justify-content:center;

  background:#fff;
}

.candidate-auth-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;

  margin-bottom:34px;

  border-bottom:
    1px solid
    var(--candidate-line);
}

.candidate-auth-tabs button{
  position:relative;

  border:0;

  padding:13px;

  background:none;

  color:#879189;

  font-size:12px;
  font-weight:700;
}

.candidate-auth-tabs button.active{
  color:#1a3523;
}

.candidate-auth-tabs button.active::after{
  content:"";

  position:absolute;

  left:0;
  right:0;
  bottom:-1px;

  height:2px;

  border-radius:3px;

  background:var(--candidate-green);
}

.candidate-auth-form{
  display:grid;
  gap:16px;
}

.candidate-auth-form h2{
  font-size:29px;
}

.candidate-auth-form > p{
  margin:-5px 0 7px;
}

.candidate-auth-form label{
  display:grid;
  gap:7px;

  color:#34483b;

  font-size:11px;
  font-weight:700;
}

.candidate-auth-form input{
  width:100%;
  height:48px;

  border:
    1px solid
    #d4e0d4;

  border-radius:10px;

  padding:0 14px;

  background:#fff;

  color:#24372b;

  outline:none;

  transition:
    border-color .2s,
    box-shadow .2s;
}

.candidate-auth-form input:focus{
  border-color:#85bf61;

  box-shadow:
    0 0 0 4px
    rgba(113,184,66,.09);
}

.candidate-auth-message{
  min-height:16px;

  color:#a35757;

  font-size:10px;
}


/* =========================================================
   BOTÕES
========================================================= */

.candidate-primary-button,
.candidate-secondary-button,
.candidate-back-button{
  min-height:48px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  gap:10px;

  border-radius:11px;

  padding:0 20px;

  text-decoration:none;

  font-weight:700;
  font-size:12px;

  transition:
    transform .2s,
    box-shadow .2s,
    background .2s;
}

.candidate-primary-button{
  border:
    1px solid
    var(--candidate-green);

  background:
    linear-gradient(
      135deg,
      #67b622,
      #4d9715
    );

  color:#fff;

  box-shadow:
    0 12px 28px
    rgba(83,157,25,.22);
}

.candidate-primary-button:hover{
  transform:translateY(-2px);

  box-shadow:
    0 16px 34px
    rgba(83,157,25,.28);
}

.candidate-primary-button:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
}

.candidate-secondary-button,
.candidate-back-button{
  border:
    1px solid
    #ccd9cc;

  background:#fff;

  color:#38513f;
}

.candidate-back-button:hover,
.candidate-secondary-button:hover{
  background:#f6faf4;
}


/* =========================================================
   CANDIDATURA
========================================================= */

.candidate-application{
  width:min(1180px,calc(100% - 40px));

  margin:0 auto;

  padding:38px 0 70px;
}


/* =========================================================
   STEPPER
========================================================= */

.candidate-stepper{
  display:grid;

  grid-template-columns:
    repeat(6,1fr);

  margin-bottom:32px;

  position:relative;
}

.candidate-stepper::before{
  content:"";

  position:absolute;

  left:4%;
  right:4%;
  top:15px;

  height:1px;

  background:#dfe7df;

  z-index:0;
}

.candidate-step{
  position:relative;
  z-index:2;

  display:grid;
  justify-items:center;

  gap:7px;

  color:#9aa59d;

  text-align:center;
}

.candidate-step > span{
  width:30px;
  height:30px;

  display:grid;
  place-items:center;

  border:
    1px solid
    #cbd8cb;

  border-radius:50%;

  background:#fff;

  font-size:10px;
  font-weight:800;
}

.candidate-step small{
  font-size:9px;
}

.candidate-step.active > span{
  background:var(--candidate-green);

  border-color:
    var(--candidate-green);

  color:#fff;

  box-shadow:
    0 0 0 5px
    rgba(98,178,32,.10);
}

.candidate-step.active small{
  color:#2a4b34;

  font-weight:700;
}

.candidate-step.done > span{
  background:#e7f5dc;

  border-color:#9ac978;

  color:#4f9419;
}

.candidate-step.done small{
  color:#55715d;
}


/* =========================================================
   GRID DA ETAPA
========================================================= */

.candidate-application-grid{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    250px;

  gap:22px;

  align-items:start;
}

.candidate-step-card{
  min-height:520px;

  padding:38px;

  border:
    1px solid
    var(--candidate-line);

  border-radius:20px;

  background:#fff;

  box-shadow:
    var(--candidate-shadow);
}

.candidate-step-card h1{
  font-size:32px;

  margin-bottom:8px;
}

.candidate-step-card > p{
  max-width:620px;

  margin:
    0 0 30px;
}


/* =========================================================
   AJUDA LATERAL
========================================================= */

.candidate-step-help{
  position:sticky;
  top:105px;

  padding:25px;

  border:
    1px solid
    #dfe8dc;

  border-radius:18px;

  background:
    linear-gradient(
      145deg,
      #f4faef,
      #fff
    );

  box-shadow:
    0 18px 40px
    rgba(24,65,30,.05);
}

.candidate-help-icon{
  width:44px;
  height:44px;

  display:grid;
  place-items:center;

  margin-bottom:17px;

  border-radius:13px;

  background:#e5f4d9;

  color:#579a20;

  font-size:20px;
}

.candidate-step-help strong{
  display:block;

  color:#203b28;

  font-size:15px;
}

.candidate-step-help p{
  color:#7b877f;

  font-size:11px;
  line-height:1.6;
}

.candidate-progress-label{
  margin-top:25px;

  color:#5c6c61;

  font-size:9px;
  font-weight:700;
}

.candidate-progress-bar{
  height:5px;

  margin-top:7px;

  overflow:hidden;

  border-radius:10px;

  background:#e3ebe1;
}

.candidate-progress-bar i{
  display:block;

  height:100%;

  border-radius:10px;

  background:
    linear-gradient(
      90deg,
      #5aab1c,
      #8ddd3e
    );

  transition:width .3s;
}


/* =========================================================
   FORMULÁRIOS DAS ETAPAS
========================================================= */

.candidate-step-form{
  display:block;
}

.candidate-fields{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:17px;
}

.candidate-field{
  display:grid;
  gap:7px;
}

.candidate-field-full{
  grid-column:1 / -1;
}

.candidate-field > span{
  color:#344b3b;

  font-size:10px;
  font-weight:700;
}

.candidate-field > span b{
  color:#67ad25;
}

.candidate-field input,
.candidate-field select,
.candidate-field textarea{
  width:100%;

  border:
    1px solid
    #d4e1d4;

  border-radius:10px;

  background:#fff;

  color:#2a3d30;

  outline:none;
}

.candidate-field input,
.candidate-field select{
  height:47px;

  padding:0 13px;
}

.candidate-field textarea{
  min-height:130px;

  padding:13px;

  resize:vertical;

  line-height:1.55;
}

.candidate-field input:focus,
.candidate-field select:focus,
.candidate-field textarea:focus{
  border-color:#83bf5e;

  box-shadow:
    0 0 0 4px
    rgba(118,190,69,.08);
}

.candidate-step-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:15px;

  margin-top:32px;
}


/* =========================================================
   QUIZ
========================================================= */

.candidate-quiz-question{
  margin-top:24px;

  padding-top:24px;

  border-top:
    1px solid
    #edf1ed;
}

.candidate-quiz-question:first-of-type{
  margin-top:0;
}

.candidate-quiz-question > strong{
  display:block;

  margin-bottom:13px;

  color:#203a27;

  font-size:12px;
}

.candidate-quiz-question textarea{
  width:100%;

  min-height:115px;

  padding:14px;

  border:
    1px solid
    #d5e1d5;

  border-radius:11px;

  resize:vertical;

  outline:none;

  color:#2c3f31;
}

.candidate-choice-list{
  display:grid;
  gap:8px;
}

.candidate-choice-list label{
  cursor:pointer;
}

.candidate-choice-list input{
  position:absolute;
  opacity:0;
}

.candidate-choice-list span{
  min-height:42px;

  display:flex;
  align-items:center;

  padding:0 14px;

  border:
    1px solid
    #dbe5db;

  border-radius:9px;

  background:#fff;

  color:#58665d;

  font-size:11px;

  transition:.2s;
}

.candidate-choice-list input:checked + span{
  border-color:#76b94b;

  background:#f1f9ec;

  color:#32631c;

  box-shadow:
    inset 3px 0 0
    #71b839;
}

.candidate-strengths{
  display:flex;
  flex-wrap:wrap;

  gap:8px;
}

.candidate-strengths label{
  cursor:pointer;
}

.candidate-strengths input{
  position:absolute;
  opacity:0;
}

.candidate-strengths span{
  display:inline-flex;
  align-items:center;

  min-height:36px;

  padding:0 12px;

  border:
    1px solid
    #d9e4d9;

  border-radius:30px;

  background:#fff;

  color:#66726a;

  font-size:10px;

  transition:.2s;
}

.candidate-strengths input:checked + span{
  border-color:#70b543;

  background:#eaf6e1;

  color:#40771f;

  font-weight:700;
}


/* =========================================================
   UPLOAD
========================================================= */

.candidate-upload{
  min-height:230px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  gap:6px;

  margin-top:25px;

  border:
    1.5px dashed
    #a7c5a0;

  border-radius:16px;

  background:
    linear-gradient(
      180deg,
      #fbfdf9,
      #f7faf5
    );

  cursor:pointer;

  transition:.2s;
}

.candidate-upload:hover{
  border-color:#67a93a;

  background:#f5faef;
}

.candidate-upload input{
  display:none;
}

.candidate-upload-icon{
  width:48px;
  height:48px;

  display:grid;
  place-items:center;

  margin-bottom:7px;

  border-radius:14px;

  background:#eaf6e0;

  color:#589a20;

  font-size:23px;
  font-weight:800;
}

.candidate-upload strong{
  color:#233b2a;

  font-size:13px;
}

.candidate-upload small{
  color:#7c897f;

  font-size:10px;
}

.candidate-upload em{
  margin-top:7px;

  color:#9aa39c;

  font-style:normal;

  font-size:9px;
}

.candidate-file-selected{
  display:flex;
  align-items:center;

  gap:13px;

  margin-top:15px;

  padding:13px 15px;

  border:
    1px solid
    #dce6da;

  border-radius:11px;

  background:#fff;
}

.candidate-file-selected > span{
  width:35px;
  height:35px;

  display:grid;
  place-items:center;

  border-radius:9px;

  background:#f0f6ed;

  color:#5a971f;
}

.candidate-file-selected div{
  flex:1;
}

.candidate-file-selected strong,
.candidate-file-selected small{
  display:block;
}

.candidate-file-selected strong{
  color:#294031;

  font-size:11px;
}

.candidate-file-selected small{
  margin-top:2px;

  color:#909a92;

  font-size:9px;
}

.candidate-file-selected b{
  color:#5aa222;
}


/* =========================================================
   REVISÃO
========================================================= */

.candidate-review > h1{
  margin:0 0 7px;

  font-family:
    "Space Grotesk",
    sans-serif;

  font-size:32px;

  color:#17301f;
}

.candidate-review > p{
  color:#7a877e;

  font-size:13px;
}

.candidate-review-grid{
  display:grid;

  grid-template-columns:
    repeat(2,1fr);

  gap:12px;

  margin-top:27px;
}

.candidate-review-card{
  min-height:130px;

  padding:18px;

  border:
    1px solid
    #dce6dc;

  border-radius:13px;

  background:
    linear-gradient(
      145deg,
      #fff,
      #fafcf9
    );
}

.candidate-review-card > div:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:15px;

  margin-bottom:13px;
}

.candidate-review-card > div:first-child strong{
  color:#27432f;

  font-size:11px;
}

.candidate-review-card button{
  border:0;

  background:none;

  color:#57991f;

  font-size:9px;
  font-weight:700;
}

.candidate-review-card > b,
.candidate-review-card > span{
  display:block;
}

.candidate-review-card > b{
  color:#344a3b;

  font-size:12px;
}

.candidate-review-card > span{
  margin-top:5px;

  color:#7b887e;

  font-size:10px;
}

.candidate-consent{
  display:flex;
  align-items:flex-start;

  gap:10px;

  margin-top:25px;

  padding:15px;

  border-radius:11px;

  background:#f7faf5;

  color:#68756c;

  font-size:10px;
  line-height:1.5;
}

.candidate-consent input{
  margin-top:2px;

  accent-color:
    var(--candidate-green);
}


/* =========================================================
   SUCESSO
========================================================= */

.candidate-success-page,
.candidate-confirm-email,
.candidate-not-available{
  min-height:calc(100vh - 76px);

  display:flex;
  flex-direction:column;

  align-items:center;
  justify-content:center;

  padding:40px;

  text-align:center;
}

.candidate-success-icon{
  width:72px;
  height:72px;

  display:grid;
  place-items:center;

  margin-bottom:18px;

  border-radius:50%;

  background:
    linear-gradient(
      145deg,
      #ddf4ce,
      #f2faed
    );

  color:#55a01d;

  font-size:34px;

  box-shadow:
    0 12px 30px
    rgba(75,150,24,.12);
}

.candidate-success-page h1,
.candidate-confirm-email h1,
.candidate-not-available h1{
  max-width:650px;

  margin:0 0 16px;

  font-family:
    "Space Grotesk",
    sans-serif;

  font-size:38px;

  line-height:1.08;

  color:#16301e;
}

.candidate-success-page p,
.candidate-confirm-email p{
  max-width:540px;

  margin:5px auto;

  color:#758179;

  font-size:12px;
  line-height:1.65;
}

.candidate-success-actions{
  display:flex;
  gap:10px;

  margin-top:25px;
}


/* =========================================================
   LOADING
========================================================= */

.candidate-loading{
  min-height:100vh;

  display:grid;
  place-items:center;

  color:#728078;

  background:#f7faf5;

  font-size:12px;
}


/* =========================================================
   RESPONSIVO
========================================================= */

@media(max-width:980px){

  .candidate-auth-layout{
    grid-template-columns:1fr;
  }

  .candidate-auth-visual{
    min-height:420px;
  }

  .candidate-auth-card{
    min-height:auto;
  }

  .candidate-application-grid{
    grid-template-columns:1fr;
  }

  .candidate-step-help{
    position:static;
  }

}


@media(max-width:760px){

  .candidate-onboarding-header{
    min-height:66px;

    padding:
      9px 18px;
  }

  .candidate-onboarding-logo img{
    width:125px;
    height:43px;
  }

  .candidate-job-context{
    display:none;
  }

  .candidate-auth-layout{
    width:100%;

    min-height:
      calc(100vh - 66px);

    border-radius:0;
  }

  .candidate-auth-visual{
    min-height:350px;

    padding:35px 25px;
  }

  .candidate-auth-copy h1{
    font-size:44px;
  }

  .candidate-auth-card{
    padding:40px 24px;
  }

  .candidate-application{
    width:
      calc(100% - 28px);

    padding:
      25px 0 55px;
  }

  .candidate-stepper{
    grid-template-columns:
      repeat(6,85px);

    overflow-x:auto;

    justify-content:start;

    padding-bottom:7px;
  }

  .candidate-stepper::before{
    display:none;
  }

  .candidate-step-card{
    padding:25px 20px;
  }

  .candidate-fields{
    grid-template-columns:1fr;
  }

  .candidate-field-full{
    grid-column:auto;
  }

  .candidate-review-grid{
    grid-template-columns:1fr;
  }

}


@media(max-width:480px){

  .candidate-auth-visual{
    min-height:310px;
  }

  .candidate-auth-copy h1{
    font-size:38px;
  }

  .candidate-step-card h1,
  .candidate-review > h1{
    font-size:27px;
  }

  .candidate-step-actions,
  .candidate-success-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .candidate-step-actions .candidate-primary-button,
  .candidate-step-actions .candidate-back-button,
  .candidate-success-actions a{
    width:100%;
  }

}
/* =========================================================
   DASHBOARD PREMIUM DO CANDIDATO
========================================================= */

.candidate-dashboard-app{
  min-height:100vh;
  display:grid;
  grid-template-columns:255px minmax(0,1fr);
  background:#f4f8f5;
}

.candidate-dashboard-sidebar{
  min-height:100vh;
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  padding:26px 20px 22px;
  color:#fff;
  background:
    radial-gradient(circle at 10% 80%,rgba(71,160,50,.18),transparent 28%),
    linear-gradient(180deg,#032719,#043a24 55%,#022a1b);
}

.candidate-dashboard-brand img{
  width:175px;
  height:58px;
  object-fit:contain;
  filter:brightness(1.2);
}

.candidate-dashboard-label{
  display:block;
  margin:24px 8px 12px;
  color:#a8c7b2;
  font-size:9px;
  font-weight:800;
  letter-spacing:1.4px;
}

.candidate-dashboard-nav{
  display:grid;
  gap:5px;
}

.candidate-dashboard-nav a{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 14px;
  border-radius:11px;
  color:#d5e6da;
  font-size:12px;
  transition:.2s;
}

.candidate-dashboard-nav a:hover,
.candidate-dashboard-nav a.active{
  background:linear-gradient(90deg,#086535,#07562f);
  color:#fff;
  transform:translateX(2px);
}

.candidate-nav-icon{
  width:23px;
  font-size:17px;
}

.candidate-nav-badge{
  margin-left:auto;
  min-width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#0b7a41;
  color:#fff;
  font-size:9px;
}

.candidate-dashboard-motto{
  margin-top:auto;
  padding:22px;
  border:1px solid rgba(126,220,83,.25);
  border-radius:18px;
  background:
    linear-gradient(145deg,rgba(15,85,45,.55),rgba(4,44,28,.30));
}

.candidate-dashboard-motto > span{
  display:block;
  margin-bottom:10px;
  color:#8fe64a;
}

.candidate-dashboard-motto strong{
  display:block;
  font-size:20px;
  line-height:1.1;
}

.candidate-dashboard-motto p{
  margin:14px 0 0;
  color:#aac0b0;
  font-size:10px;
  line-height:1.55;
}

.candidate-dashboard-user{
  margin-top:18px;
  display:flex;
  align-items:center;
  gap:10px;
}

.candidate-dashboard-avatar{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e6f4df;
  color:#1e6133;
  font-weight:800;
  font-size:11px;
}

.candidate-dashboard-user strong,
.candidate-dashboard-user small{
  display:block;
}

.candidate-dashboard-user strong{
  font-size:11px;
}

.candidate-dashboard-user small{
  margin-top:2px;
  color:#92ab99;
  font-size:9px;
}

.candidate-dashboard-logout{
  margin-top:16px;
  min-height:42px;
  border:0;
  text-align:left;
  background:none;
  color:#d7e5da;
  font-size:11px;
}

.candidate-dashboard-main{
  min-width:0;
}

.candidate-dashboard-topbar{
  height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:0 28px;
  background:#fff;
  border-bottom:1px solid #e2ebe3;
}

.candidate-dashboard-search{
  width:min(650px,65%);
  height:45px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 14px;
  border:1px solid #dce5dd;
  border-radius:12px;
  background:#f8faf8;
}

.candidate-dashboard-search input{
  flex:1;
  border:0;
  outline:none;
  background:transparent;
  font-size:11px;
  color:#425148;
}

.candidate-dashboard-search kbd{
  padding:5px 8px;
  border-radius:15px;
  background:#eef3ee;
  color:#89948d;
  font-size:8px;
}

.candidate-dashboard-top-actions{
  display:flex;
  align-items:center;
  gap:18px;
}

.candidate-notification-button{
  position:relative;
  border:0;
  background:none;
  font-size:20px;
}

.candidate-notification-button b{
  position:absolute;
  top:-5px;
  right:-6px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e33;
  color:#fff;
  font-size:8px;
}

.candidate-top-user{
  display:flex;
  align-items:center;
  gap:10px;
}

.candidate-top-user > span{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e9f6e4;
  color:#226439;
  font-size:11px;
  font-weight:800;
}

.candidate-top-user strong,
.candidate-top-user small{
  display:block;
}

.candidate-top-user strong{
  font-size:11px;
}

.candidate-top-user small{
  color:#7d8980;
  font-size:9px;
}

.candidate-dashboard-content{
  padding:34px 30px 45px;
}

.candidate-welcome{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:30px;
  margin-bottom:24px;
}

.candidate-welcome h1{
  margin:0;
  color:#172d1e;
  font-family:"Space Grotesk",sans-serif;
  font-size:38px;
  letter-spacing:-1.5px;
}

.candidate-welcome p{
  margin:5px 0 0;
  color:#738078;
  font-size:13px;
}

.candidate-welcome-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}

.candidate-welcome-tags span{
  padding:8px 11px;
  border-radius:20px;
  background:#edf6e9;
  color:#58705e;
  font-size:9px;
}

.candidate-welcome-quote{
  max-width:320px;
  text-align:right;
}

.candidate-welcome-quote blockquote{
  margin:0;
  color:#526259;
  font-size:14px;
  line-height:1.5;
}

.candidate-welcome-quote span{
  display:block;
  margin-top:10px;
  color:#3e8c26;
  font-size:10px;
  font-weight:800;
}

.candidate-profile-banner{
  display:grid;
  grid-template-columns:130px minmax(0,1fr) 260px 190px;
  gap:24px;
  align-items:center;
  margin-bottom:20px;
  padding:22px 28px;
  border:1px solid #d9e7d8;
  border-radius:18px;
  background:
    radial-gradient(circle at 90% 10%,rgba(130,205,60,.10),transparent 25%),
    #fafff8;
  box-shadow:0 12px 35px rgba(20,55,29,.04);
}

.candidate-profile-ring{
  width:104px;
  height:104px;
  display:grid;
  place-items:center;
  align-content:center;
  border-radius:50%;
  background:
    radial-gradient(circle at center,#fff 56%,transparent 58%),
    conic-gradient(#0b9149 0 80%,#dce9dd 80% 100%);
}

.candidate-profile-ring strong{
  font-size:24px;
  color:#0e7f42;
}

.candidate-profile-ring span{
  font-size:8px;
  color:#738078;
}

.candidate-profile-copy h2{
  margin:6px 0;
  color:#243a2b;
  font-size:18px;
}

.candidate-profile-copy p{
  margin:0;
  color:#7a867e;
  font-size:11px;
}

.candidate-profile-progress{
  height:7px;
  margin-top:18px;
  overflow:hidden;
  border-radius:10px;
  background:#dfe9df;
}

.candidate-profile-progress i{
  display:block;
  height:100%;
  border-radius:10px;
  background:linear-gradient(90deg,#0d8b48,#29a34e);
}

.candidate-profile-checklist{
  display:grid;
  gap:8px;
  padding:13px 16px;
  border-radius:12px;
  background:rgba(255,255,255,.65);
}

.candidate-profile-checklist span{
  color:#647168;
  font-size:10px;
}

.candidate-profile-checklist span.done{
  color:#2e743b;
}

.candidate-profile-action{
  display:grid;
  gap:10px;
}

.candidate-dashboard-primary,
.candidate-dashboard-secondary{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  padding:0 16px;
  text-decoration:none;
  font-size:11px;
  font-weight:700;
}

.candidate-dashboard-primary{
  border:0;
  background:linear-gradient(135deg,#078a45,#056f38);
  color:#fff;
  box-shadow:0 10px 25px rgba(6,120,60,.15);
}

.candidate-dashboard-secondary{
  border:1px solid #dfe8df;
  background:#f7faf7;
  color:#2f6840;
}

.candidate-dashboard-secondary.full{
  width:100%;
  margin-top:18px;
}

.candidate-profile-missing{
  text-align:center;
  color:#3f8248;
  font-size:9px;
  text-decoration:underline;
}

.candidate-dashboard-upper-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) .65fr .65fr;
  gap:16px;
  margin-bottom:16px;
}

.candidate-dashboard-lower-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:16px;
  margin-bottom:16px;
}

.candidate-widget{
  min-width:0;
  padding:18px;
  border:1px solid #e0e9e0;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 28px rgba(18,55,25,.045);
}

.candidate-widget-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:18px;
}

.candidate-widget-head > div{
  display:flex;
  align-items:center;
  gap:10px;
}

.candidate-widget-head strong{
  font-size:13px;
  color:#263d2e;
}

.candidate-widget-head a{
  color:#2f873e;
  font-size:9px;
  font-weight:700;
}

.candidate-widget-head button{
  border:0;
  background:none;
}

.candidate-widget-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#eaf6e6;
  color:#2b8e3d;
}

.candidate-interview-job{
  display:flex;
  align-items:center;
  gap:14px;
}

.candidate-job-logo{
  width:48px;
  height:48px;
  flex:0 0 48px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#062b1d;
  color:#8ee34a;
  font-size:9px;
  font-weight:800;
}

.candidate-interview-job h3{
  margin:0;
  font-size:16px;
  color:#24392b;
}

.candidate-interview-job p{
  margin:4px 0 0;
  color:#7b877f;
  font-size:10px;
}

.candidate-interview-job .candidate-status{
  margin-left:auto;
}

.candidate-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 12px;
  border-radius:20px;
  font-size:9px;
}

.candidate-status.analysis{
  background:#fff2c9;
  color:#a26b0a;
}

.candidate-status.interview{
  background:#dcebff;
  color:#2967bf;
}

.candidate-status.approved{
  background:#e0f5e5;
  color:#21843a;
}

.candidate-interview-meta{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin:16px 0;
  color:#67746c;
  font-size:10px;
}

.candidate-widget-actions{
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:10px;
}

.candidate-resume-preview{
  display:flex;
  gap:12px;
  align-items:flex-start;
}

.candidate-pdf-icon{
  width:44px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#ef3b32;
  color:#fff;
  font-size:10px;
  font-weight:800;
}

.candidate-resume-preview strong,
.candidate-resume-preview small{
  display:block;
}

.candidate-resume-preview strong{
  font-size:11px;
}

.candidate-resume-preview small{
  margin:4px 0 8px;
  color:#7d8981;
  font-size:9px;
}

.candidate-widget-description{
  min-height:88px;
  color:#6e7b73;
  font-size:11px;
  line-height:1.6;
}

.candidate-list-clean{
  display:grid;
  gap:0;
}

.candidate-list-row{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:62px;
  padding:8px 6px;
  border-top:1px solid #edf1ed;
}

.candidate-list-row:first-child{
  border-top:0;
}

.candidate-list-row > div{
  flex:1;
}

.candidate-list-row strong,
.candidate-list-row small{
  display:block;
}

.candidate-list-row strong{
  color:#243a2b;
  font-size:11px;
}

.candidate-list-row small{
  margin-top:3px;
  color:#7b877f;
  font-size:9px;
}

.candidate-list-row time{
  color:#77847c;
  font-size:9px;
}

.candidate-list-row > b{
  color:#4e6755;
}

.candidate-list-row.recommended .candidate-job-logo{
  width:40px;
  height:40px;
  flex-basis:40px;
}

.candidate-weekly-tip{
  min-height:74px;
  display:flex;
  align-items:center;
  gap:18px;
  padding:16px 18px;
  border:1px solid #d5e9d4;
  border-radius:15px;
  background:
    radial-gradient(circle at 85% 50%,rgba(112,190,55,.08),transparent 25%),
    #f6fcf3;
}

.candidate-tip-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e7f6df;
  color:#309342;
  font-size:20px;
}

.candidate-weekly-tip > div:nth-child(2){
  flex:1;
}

.candidate-weekly-tip span{
  display:block;
  color:#25823a;
  font-size:9px;
  font-weight:800;
}

.candidate-weekly-tip strong{
  display:block;
  margin:2px 0;
  color:#2c4332;
  font-size:11px;
}

.candidate-weekly-tip p{
  margin:0;
  color:#748077;
  font-size:9px;
}

.candidate-weekly-tip a{
  min-height:38px;
  display:flex;
  align-items:center;
  padding:0 16px;
  border:1px solid #dbe7db;
  border-radius:9px;
  background:#fff;
  color:#3c7147;
  font-size:9px;
  font-weight:700;
}

.candidate-page-title{
  margin-bottom:25px;
}

.candidate-page-title h1{
  margin:4px 0;
  color:#1b3322;
  font-size:34px;
}

.candidate-page-title p{
  color:#7b877f;
  font-size:12px;
}


/* RESPONSIVO */

@media(max-width:1100px){

  .candidate-profile-banner{
    grid-template-columns:110px 1fr 220px;
  }

  .candidate-profile-action{
    grid-column:2 / -1;
  }

  .candidate-dashboard-upper-grid{
    grid-template-columns:1fr 1fr;
  }

  .candidate-interview-card{
    grid-column:1 / -1;
  }

}

@media(max-width:850px){

  .candidate-dashboard-app{
    grid-template-columns:1fr;
  }

  .candidate-dashboard-sidebar{
    position:static;
    min-height:auto;
    height:auto;
  }

  .candidate-dashboard-motto{
    display:none;
  }

  .candidate-dashboard-nav{
    display:flex;
    overflow:auto;
  }

  .candidate-dashboard-nav a{
    white-space:nowrap;
  }

  .candidate-dashboard-user,
  .candidate-dashboard-logout{
    display:none;
  }

  .candidate-dashboard-upper-grid,
  .candidate-dashboard-lower-grid,
  .candidate-profile-banner{
    grid-template-columns:1fr;
  }

  .candidate-profile-action{
    grid-column:auto;
  }

}

@media(max-width:600px){

  .candidate-dashboard-topbar{
    padding:0 16px;
  }

  .candidate-dashboard-search{
    width:100%;
  }

  .candidate-dashboard-top-actions{
    display:none;
  }

  .candidate-dashboard-content{
    padding:25px 16px;
  }

  .candidate-welcome{
    display:block;
  }

  .candidate-welcome-quote{
    display:none;
  }

  .candidate-welcome h1{
    font-size:31px;
  }

  .candidate-widget-actions{
    grid-template-columns:1fr;
  }

}/* =========================================================
   DASHBOARD PREMIUM DO CANDIDATO
========================================================= */

.candidate-dashboard-app{
  min-height:100vh;
  display:grid;
  grid-template-columns:255px minmax(0,1fr);
  background:#f4f8f5;
}

.candidate-dashboard-sidebar{
  min-height:100vh;
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  padding:26px 20px 22px;
  color:#fff;
  background:
    radial-gradient(circle at 10% 80%,rgba(71,160,50,.18),transparent 28%),
    linear-gradient(180deg,#032719,#043a24 55%,#022a1b);
}

.candidate-dashboard-brand img{
  width:175px;
  height:58px;
  object-fit:contain;
  filter:brightness(1.2);
}

.candidate-dashboard-label{
  display:block;
  margin:24px 8px 12px;
  color:#a8c7b2;
  font-size:9px;
  font-weight:800;
  letter-spacing:1.4px;
}

.candidate-dashboard-nav{
  display:grid;
  gap:5px;
}

.candidate-dashboard-nav a{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 14px;
  border-radius:11px;
  color:#d5e6da;
  font-size:12px;
  transition:.2s;
}

.candidate-dashboard-nav a:hover,
.candidate-dashboard-nav a.active{
  background:linear-gradient(90deg,#086535,#07562f);
  color:#fff;
  transform:translateX(2px);
}

.candidate-nav-icon{
  width:23px;
  font-size:17px;
}

.candidate-nav-badge{
  margin-left:auto;
  min-width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#0b7a41;
  color:#fff;
  font-size:9px;
}

.candidate-dashboard-motto{
  margin-top:auto;
  padding:22px;
  border:1px solid rgba(126,220,83,.25);
  border-radius:18px;
  background:
    linear-gradient(145deg,rgba(15,85,45,.55),rgba(4,44,28,.30));
}

.candidate-dashboard-motto > span{
  display:block;
  margin-bottom:10px;
  color:#8fe64a;
}

.candidate-dashboard-motto strong{
  display:block;
  font-size:20px;
  line-height:1.1;
}

.candidate-dashboard-motto p{
  margin:14px 0 0;
  color:#aac0b0;
  font-size:10px;
  line-height:1.55;
}

.candidate-dashboard-user{
  margin-top:18px;
  display:flex;
  align-items:center;
  gap:10px;
}

.candidate-dashboard-avatar{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e6f4df;
  color:#1e6133;
  font-weight:800;
  font-size:11px;
}

.candidate-dashboard-user strong,
.candidate-dashboard-user small{
  display:block;
}

.candidate-dashboard-user strong{
  font-size:11px;
}

.candidate-dashboard-user small{
  margin-top:2px;
  color:#92ab99;
  font-size:9px;
}

.candidate-dashboard-logout{
  margin-top:16px;
  min-height:42px;
  border:0;
  text-align:left;
  background:none;
  color:#d7e5da;
  font-size:11px;
}

.candidate-dashboard-main{
  min-width:0;
}

.candidate-dashboard-topbar{
  height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:0 28px;
  background:#fff;
  border-bottom:1px solid #e2ebe3;
}

.candidate-dashboard-search{
  width:min(650px,65%);
  height:45px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 14px;
  border:1px solid #dce5dd;
  border-radius:12px;
  background:#f8faf8;
}

.candidate-dashboard-search input{
  flex:1;
  border:0;
  outline:none;
  background:transparent;
  font-size:11px;
  color:#425148;
}

.candidate-dashboard-search kbd{
  padding:5px 8px;
  border-radius:15px;
  background:#eef3ee;
  color:#89948d;
  font-size:8px;
}

.candidate-dashboard-top-actions{
  display:flex;
  align-items:center;
  gap:18px;
}

.candidate-notification-button{
  position:relative;
  border:0;
  background:none;
  font-size:20px;
}

.candidate-notification-button b{
  position:absolute;
  top:-5px;
  right:-6px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e33;
  color:#fff;
  font-size:8px;
}

.candidate-top-user{
  display:flex;
  align-items:center;
  gap:10px;
}

.candidate-top-user > span{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e9f6e4;
  color:#226439;
  font-size:11px;
  font-weight:800;
}

.candidate-top-user strong,
.candidate-top-user small{
  display:block;
}

.candidate-top-user strong{
  font-size:11px;
}

.candidate-top-user small{
  color:#7d8980;
  font-size:9px;
}

.candidate-dashboard-content{
  padding:34px 30px 45px;
}

.candidate-welcome{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:30px;
  margin-bottom:24px;
}

.candidate-welcome h1{
  margin:0;
  color:#172d1e;
  font-family:"Space Grotesk",sans-serif;
  font-size:38px;
  letter-spacing:-1.5px;
}

.candidate-welcome p{
  margin:5px 0 0;
  color:#738078;
  font-size:13px;
}

.candidate-welcome-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}

.candidate-welcome-tags span{
  padding:8px 11px;
  border-radius:20px;
  background:#edf6e9;
  color:#58705e;
  font-size:9px;
}

.candidate-welcome-quote{
  max-width:320px;
  text-align:right;
}

.candidate-welcome-quote blockquote{
  margin:0;
  color:#526259;
  font-size:14px;
  line-height:1.5;
}

.candidate-welcome-quote span{
  display:block;
  margin-top:10px;
  color:#3e8c26;
  font-size:10px;
  font-weight:800;
}

.candidate-profile-banner{
  display:grid;
  grid-template-columns:130px minmax(0,1fr) 260px 190px;
  gap:24px;
  align-items:center;
  margin-bottom:20px;
  padding:22px 28px;
  border:1px solid #d9e7d8;
  border-radius:18px;
  background:
    radial-gradient(circle at 90% 10%,rgba(130,205,60,.10),transparent 25%),
    #fafff8;
  box-shadow:0 12px 35px rgba(20,55,29,.04);
}

.candidate-profile-ring{
  width:104px;
  height:104px;
  display:grid;
  place-items:center;
  align-content:center;
  border-radius:50%;
  background:
    radial-gradient(circle at center,#fff 56%,transparent 58%),
    conic-gradient(#0b9149 0 80%,#dce9dd 80% 100%);
}

.candidate-profile-ring strong{
  font-size:24px;
  color:#0e7f42;
}

.candidate-profile-ring span{
  font-size:8px;
  color:#738078;
}

.candidate-profile-copy h2{
  margin:6px 0;
  color:#243a2b;
  font-size:18px;
}

.candidate-profile-copy p{
  margin:0;
  color:#7a867e;
  font-size:11px;
}

.candidate-profile-progress{
  height:7px;
  margin-top:18px;
  overflow:hidden;
  border-radius:10px;
  background:#dfe9df;
}

.candidate-profile-progress i{
  display:block;
  height:100%;
  border-radius:10px;
  background:linear-gradient(90deg,#0d8b48,#29a34e);
}

.candidate-profile-checklist{
  display:grid;
  gap:8px;
  padding:13px 16px;
  border-radius:12px;
  background:rgba(255,255,255,.65);
}

.candidate-profile-checklist span{
  color:#647168;
  font-size:10px;
}

.candidate-profile-checklist span.done{
  color:#2e743b;
}

.candidate-profile-action{
  display:grid;
  gap:10px;
}

.candidate-dashboard-primary,
.candidate-dashboard-secondary{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  padding:0 16px;
  text-decoration:none;
  font-size:11px;
  font-weight:700;
}

.candidate-dashboard-primary{
  border:0;
  background:linear-gradient(135deg,#078a45,#056f38);
  color:#fff;
  box-shadow:0 10px 25px rgba(6,120,60,.15);
}

.candidate-dashboard-secondary{
  border:1px solid #dfe8df;
  background:#f7faf7;
  color:#2f6840;
}

.candidate-dashboard-secondary.full{
  width:100%;
  margin-top:18px;
}

.candidate-profile-missing{
  text-align:center;
  color:#3f8248;
  font-size:9px;
  text-decoration:underline;
}

.candidate-dashboard-upper-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) .65fr .65fr;
  gap:16px;
  margin-bottom:16px;
}

.candidate-dashboard-lower-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:16px;
  margin-bottom:16px;
}

.candidate-widget{
  min-width:0;
  padding:18px;
  border:1px solid #e0e9e0;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 28px rgba(18,55,25,.045);
}

.candidate-widget-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:18px;
}

.candidate-widget-head > div{
  display:flex;
  align-items:center;
  gap:10px;
}

.candidate-widget-head strong{
  font-size:13px;
  color:#263d2e;
}

.candidate-widget-head a{
  color:#2f873e;
  font-size:9px;
  font-weight:700;
}

.candidate-widget-head button{
  border:0;
  background:none;
}

.candidate-widget-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#eaf6e6;
  color:#2b8e3d;
}

.candidate-interview-job{
  display:flex;
  align-items:center;
  gap:14px;
}

.candidate-job-logo{
  width:48px;
  height:48px;
  flex:0 0 48px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#062b1d;
  color:#8ee34a;
  font-size:9px;
  font-weight:800;
}

.candidate-interview-job h3{
  margin:0;
  font-size:16px;
  color:#24392b;
}

.candidate-interview-job p{
  margin:4px 0 0;
  color:#7b877f;
  font-size:10px;
}

.candidate-interview-job .candidate-status{
  margin-left:auto;
}

.candidate-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 12px;
  border-radius:20px;
  font-size:9px;
}

.candidate-status.analysis{
  background:#fff2c9;
  color:#a26b0a;
}

.candidate-status.interview{
  background:#dcebff;
  color:#2967bf;
}

.candidate-status.approved{
  background:#e0f5e5;
  color:#21843a;
}

.candidate-interview-meta{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin:16px 0;
  color:#67746c;
  font-size:10px;
}

.candidate-widget-actions{
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:10px;
}

.candidate-resume-preview{
  display:flex;
  gap:12px;
  align-items:flex-start;
}

.candidate-pdf-icon{
  width:44px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#ef3b32;
  color:#fff;
  font-size:10px;
  font-weight:800;
}

.candidate-resume-preview strong,
.candidate-resume-preview small{
  display:block;
}

.candidate-resume-preview strong{
  font-size:11px;
}

.candidate-resume-preview small{
  margin:4px 0 8px;
  color:#7d8981;
  font-size:9px;
}

.candidate-widget-description{
  min-height:88px;
  color:#6e7b73;
  font-size:11px;
  line-height:1.6;
}

.candidate-list-clean{
  display:grid;
  gap:0;
}

.candidate-list-row{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:62px;
  padding:8px 6px;
  border-top:1px solid #edf1ed;
}

.candidate-list-row:first-child{
  border-top:0;
}

.candidate-list-row > div{
  flex:1;
}

.candidate-list-row strong,
.candidate-list-row small{
  display:block;
}

.candidate-list-row strong{
  color:#243a2b;
  font-size:11px;
}

.candidate-list-row small{
  margin-top:3px;
  color:#7b877f;
  font-size:9px;
}

.candidate-list-row time{
  color:#77847c;
  font-size:9px;
}

.candidate-list-row > b{
  color:#4e6755;
}

.candidate-list-row.recommended .candidate-job-logo{
  width:40px;
  height:40px;
  flex-basis:40px;
}

.candidate-weekly-tip{
  min-height:74px;
  display:flex;
  align-items:center;
  gap:18px;
  padding:16px 18px;
  border:1px solid #d5e9d4;
  border-radius:15px;
  background:
    radial-gradient(circle at 85% 50%,rgba(112,190,55,.08),transparent 25%),
    #f6fcf3;
}

.candidate-tip-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e7f6df;
  color:#309342;
  font-size:20px;
}

.candidate-weekly-tip > div:nth-child(2){
  flex:1;
}

.candidate-weekly-tip span{
  display:block;
  color:#25823a;
  font-size:9px;
  font-weight:800;
}

.candidate-weekly-tip strong{
  display:block;
  margin:2px 0;
  color:#2c4332;
  font-size:11px;
}

.candidate-weekly-tip p{
  margin:0;
  color:#748077;
  font-size:9px;
}

.candidate-weekly-tip a{
  min-height:38px;
  display:flex;
  align-items:center;
  padding:0 16px;
  border:1px solid #dbe7db;
  border-radius:9px;
  background:#fff;
  color:#3c7147;
  font-size:9px;
  font-weight:700;
}

.candidate-page-title{
  margin-bottom:25px;
}

.candidate-page-title h1{
  margin:4px 0;
  color:#1b3322;
  font-size:34px;
}

.candidate-page-title p{
  color:#7b877f;
  font-size:12px;
}


/* RESPONSIVO */

@media(max-width:1100px){

  .candidate-profile-banner{
    grid-template-columns:110px 1fr 220px;
  }

  .candidate-profile-action{
    grid-column:2 / -1;
  }

  .candidate-dashboard-upper-grid{
    grid-template-columns:1fr 1fr;
  }

  .candidate-interview-card{
    grid-column:1 / -1;
  }

}

@media(max-width:850px){

  .candidate-dashboard-app{
    grid-template-columns:1fr;
  }

  .candidate-dashboard-sidebar{
    position:static;
    min-height:auto;
    height:auto;
  }

  .candidate-dashboard-motto{
    display:none;
  }

  .candidate-dashboard-nav{
    display:flex;
    overflow:auto;
  }

  .candidate-dashboard-nav a{
    white-space:nowrap;
  }

  .candidate-dashboard-user,
  .candidate-dashboard-logout{
    display:none;
  }

  .candidate-dashboard-upper-grid,
  .candidate-dashboard-lower-grid,
  .candidate-profile-banner{
    grid-template-columns:1fr;
  }

  .candidate-profile-action{
    grid-column:auto;
  }

}

@media(max-width:600px){

  .candidate-dashboard-topbar{
    padding:0 16px;
  }

  .candidate-dashboard-search{
    width:100%;
  }

  .candidate-dashboard-top-actions{
    display:none;
  }

  .candidate-dashboard-content{
    padding:25px 16px;
  }

  .candidate-welcome{
    display:block;
  }

  .candidate-welcome-quote{
    display:none;
  }

  .candidate-welcome h1{
    font-size:31px;
  }

  .candidate-widget-actions{
    grid-template-columns:1fr;
  }

}
.candidate-dashboard-avatar-image,
.candidate-top-avatar-image{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:block;
  object-fit:cover;
  border-radius:50%;
  border:2px solid #e4f1df;
}

.candidate-top-avatar-image{
  width:40px;
  height:40px;
  flex-basis:40px;
}

/* =========================================================
   PORTAL REAL — COMPLEMENTOS
========================================================= */

.candidate-widget-empty{
  min-height:145px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:20px;
}

.candidate-widget-empty > span{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  margin-bottom:11px;
  border-radius:50%;
  background:#edf7e8;
  color:#479326;
  font-size:18px;
}

.candidate-widget-empty strong{
  color:#294031;
  font-size:12px;
}

.candidate-widget-empty p{
  max-width:280px;
  margin:7px 0 15px;
  color:#7a877f;
  font-size:10px;
  line-height:1.55;
}

.candidate-dashboard-primary.full{
  width:100%;
  margin-top:18px;
}

.candidate-profile-summary{
  display:grid;
  gap:5px;
}

.candidate-profile-summary strong{
  color:#294031;
  font-size:12px;
}

.candidate-profile-summary span{
  color:#758178;
  font-size:10px;
}

.candidate-profile-page-card{
  padding:28px;
}

.candidate-profile-page-head{
  display:flex;
  align-items:center;
  gap:15px;
  padding-bottom:25px;
  border-bottom:1px solid #e8eee8;
}

.candidate-profile-page-head h2{
  margin:0;
  color:#1e3827;
  font-size:21px;
}

.candidate-profile-page-head p{
  margin:4px 0 0;
  color:#7a867e;
  font-size:10px;
}

.candidate-profile-data-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:24px;
}

.candidate-profile-data-grid > div{
  padding:16px;
  border:1px solid #e1e9e1;
  border-radius:12px;
  background:#fafcf9;
}

.candidate-profile-data-grid small,
.candidate-profile-data-grid strong{
  display:block;
}

.candidate-profile-data-grid small{
  margin-bottom:5px;
  color:#89938c;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.6px;
}

.candidate-profile-data-grid strong{
  color:#344b3b;
  font-size:11px;
  overflow-wrap:anywhere;
}

@media(max-width:700px){

  .candidate-profile-data-grid{
    grid-template-columns:1fr 1fr;
  }

}

@media(max-width:450px){

  .candidate-profile-data-grid{
    grid-template-columns:1fr;
  }

}
/* =========================================================
   MODAL — EDITAR PERFIL
========================================================= */

.modal-backdrop{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(8,28,18,.72);
  backdrop-filter:blur(8px);
}

.modal-backdrop.open{
  display:flex;
}

.modal{
  width:min(560px,100%);
  max-height:90vh;
  overflow:auto;
  border-radius:22px;
  background:#fff;
  box-shadow:
    0 30px 80px rgba(0,0,0,.28);
}


/* CONTEÚDO */

.candidate-profile-modal{
  padding:28px;
}

.candidate-profile-modal-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
}

.candidate-profile-modal-top h2{
  margin:0;
  color:#1f3327;
  font-size:23px;
  font-weight:800;
}

.candidate-profile-modal-close{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#f1f5f2;
  color:#68766e;
  cursor:pointer;
  font-size:20px;
  transition:.2s ease;
}

.candidate-profile-modal-close:hover{
  background:#e5eee7;
  color:#196c38;
}


/* USUÁRIO */

.candidate-profile-modal-user{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:26px;
}

.candidate-profile-modal-user .candidate-dashboard-avatar-image,
.candidate-profile-modal-user .candidate-dashboard-avatar{
  width:52px;
  height:52px;
  flex:0 0 52px;
}

.candidate-profile-modal-user > div{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}

.candidate-profile-modal-user strong{
  color:#22352a;
  font-size:15px;
  line-height:1.3;
}

.candidate-avatar-change-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 13px;
  border:1px solid #b9d9c2;
  border-radius:9px;
  background:#fff;
  color:#168b45;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
  transition:.2s ease;
}

.candidate-avatar-change-button:hover{
  background:#eff9f2;
  border-color:#17954b;
}


/* FORM */

#candidate-profile-form{
  display:grid;
  gap:16px;
}

.candidate-form-field{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.candidate-form-field label{
  color:#44554b;
  font-size:11px;
  font-weight:700;
}

.candidate-form-field input,
.candidate-form-field select{
  width:100%;
  min-height:44px;
  padding:0 13px;
  border:1px solid #d0ddd3;
  border-radius:10px;
  outline:none;
  background:#fff;
  color:#27382e;
  font:inherit;
  font-size:13px;
  transition:.2s ease;
  box-sizing:border-box;
}

.candidate-form-field input::placeholder{
  color:#9aa59e;
}

.candidate-form-field input:focus,
.candidate-form-field select:focus{
  border-color:#17974b;
  box-shadow:
    0 0 0 3px rgba(23,151,75,.10);
}

.candidate-form-field input:disabled{
  background:#f5f7f5;
  color:#748078;
  cursor:not-allowed;
}

.candidate-form-field small{
  color:#89948d;
  font-size:10px;
  line-height:1.4;
}

.candidate-form-row{
  display:grid;
  grid-template-columns:1fr 110px;
  gap:12px;
}


/* BOTÕES */

.candidate-profile-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:8px;
  padding-top:18px;
  border-top:1px solid #edf1ee;
}

.candidate-profile-modal-actions
.candidate-dashboard-secondary,
.candidate-profile-modal-actions
.candidate-dashboard-primary{
  min-height:42px;
  padding:0 18px;
  border-radius:10px;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}

.candidate-profile-modal-actions
.candidate-dashboard-secondary{
  border:1px solid #bcd7c3;
  background:#fff;
  color:#168942;
}

.candidate-profile-modal-actions
.candidate-dashboard-primary{
  border:0;
  background:#0b9144;
  color:#fff;
  box-shadow:
    0 8px 20px rgba(11,145,68,.18);
}

.candidate-profile-modal-actions
.candidate-dashboard-primary:hover{
  background:#087c3a;
}

.candidate-profile-modal-actions
.candidate-dashboard-primary:disabled{
  opacity:.65;
  cursor:wait;
}


/* RESPONSIVO */

@media(max-width:600px){

  .modal-backdrop{
    padding:10px;
  }

  .modal{
    border-radius:18px;
  }

  .candidate-profile-modal{
    padding:20px;
  }

  .candidate-form-row{
    grid-template-columns:1fr;
  }

  .candidate-profile-modal-actions{
    flex-direction:column-reverse;
  }

  .candidate-profile-modal-actions button{
    width:100%;
  }

}
/* =========================================================
   CORREÇÃO DOS BOTÕES DO CURRÍCULO
========================================================= */

button.candidate-dashboard-primary.full,
button.candidate-dashboard-secondary.full {
  width: 100%;
  min-height: 44px;
  height: auto;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 12px 20px;

  border-radius: 10px;
  cursor: pointer;

  font-family: inherit;
  font-size: 12px;
  font-weight: 700;

  box-sizing: border-box;
}


/* ADICIONAR CURRÍCULO */

button.candidate-dashboard-primary.full {
  border: 0;
  background: #078b43;
  color: #fff;
}


/* ATUALIZAR CURRÍCULO */

button.candidate-dashboard-secondary.full {
  border: 1px solid #b8d7c0;
  background: #fff;
  color: #078b43;
}


/* impede botão escondido/input de criar espaço */

#candidate-resume-input {
  display: none !important;
}

/* =========================================================
   PROTEÇÃO CONTRA CSS GLOBAL DE BUTTON
========================================================= */

.candidate-dashboard-logout {
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.candidate-profile-missing {
  width: auto !important;
}


/* input de arquivo nunca ocupa espaço */

input[type="file"][hidden] {
  display: none !important;
}

.candidate-onboarding button:disabled {
  cursor: wait;
  opacity: .65;
}

.candidate-auth-link {
  display: block;
  margin: 10px auto 0;
  border: 0;
  background: transparent;
  color: var(--candidate-green);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
}

.candidate-history {
  margin-top: 24px;
}

.candidate-history-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.candidate-history-grid > div {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--candidate-line);
  border-radius: 14px;
  background: var(--candidate-white);
}

.candidate-history-grid h3 {
  margin: 0 0 14px;
  color: var(--candidate-ink);
}

.candidate-history-form {
  display: grid;
  gap: 10px;
}

.candidate-history-form label {
  display: grid;
  gap: 5px;
  color: var(--candidate-ink);
  font-size: 12px;
  font-weight: 700;
}

.candidate-history-form input,
.candidate-history-form textarea {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--candidate-line);
  border-radius: 8px;
  font: inherit;
}

.candidate-history-form textarea {
  min-height: 72px;
  resize: vertical;
}

.candidate-history-form .candidate-history-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
}

.candidate-history-form .candidate-history-checkbox input {
  width: auto;
  min-height: auto;
}

.candidate-history-upload {
  display: grid;
  gap: 8px;
  color: var(--candidate-ink);
  font-size: 12px;
  font-weight: 700;
}

.candidate-history-upload input {
  max-width: 100%;
  font: inherit;
}

.candidate-history-form button,
.candidate-history-grid li button,
.candidate-resume-actions button {
  padding: 8px 11px;
  border: 1px solid var(--candidate-line);
  border-radius: 8px;
  background: #fff;
  color: var(--candidate-green);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}

.candidate-history-form button[type="submit"] {
  border-color: var(--candidate-green);
  background: var(--candidate-green);
  color: #fff;
}

.candidate-history-grid ul {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.candidate-history-grid li {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 9px 0;
  border-top: 1px solid var(--candidate-line);
  font-size: 12px;
}

.candidate-history-grid li span {
  flex: 1 1 100%;
}

.candidate-resume-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.candidate-application-item {
  display: grid;
  gap: 6px;
}

.candidate-application-withdraw {
  justify-self: end;
  padding: 6px 10px;
  border: 1px solid var(--candidate-line);
  border-radius: 7px;
  background: #fff;
  color: #8a3b30;
  cursor: pointer;
}

.candidate-loading-error {
  width: min(620px, calc(100% - 32px));
  margin: 12vh auto;
  padding: 28px;
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--candidate-shadow);
  text-align: center;
}

.candidate-loading-error button {
  padding: 10px 16px;
  border: 0;
  border-radius: 8px;
  background: var(--candidate-green);
  color: #fff;
  cursor: pointer;
}

@media (max-width: 850px) {
  .candidate-history-grid {
    grid-template-columns: 1fr;
  }
}