@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap");

@font-face {
  font-family: "NHLDucks";
  src: url("../fonts/nhl-ducks.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}


/* Controle de data com ícone claro próprio, estável entre navegadores. */
html body input[type="date"][type="date"][type="date"],
html body input[type="datetime-local"][type="datetime-local"][type="datetime-local"],
html body input[type="month"][type="month"][type="month"],
html body input[type="week"][type="week"][type="week"],
html body input[type="time"][type="time"][type="time"] {
  color-scheme: dark !important;
  padding-right: 42px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23e6e6e6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 19px 19px !important;
}
html body input[type="date"][type="date"][type="date"]::-webkit-calendar-picker-indicator,
html body input[type="datetime-local"][type="datetime-local"][type="datetime-local"]::-webkit-calendar-picker-indicator,
html body input[type="month"][type="month"][type="month"]::-webkit-calendar-picker-indicator,
html body input[type="week"][type="week"][type="week"]::-webkit-calendar-picker-indicator,
html body input[type="time"][type="time"][type="time"]::-webkit-calendar-picker-indicator {
  opacity: 0 !important;
  filter: none !important;
  cursor: pointer !important;
}


/* Indicador próprio: não depende da cor escolhida pelo navegador/sistema operacional. */
html body input[type="date"],
html body input[type="datetime-local"],
html body input[type="month"],
html body input[type="week"],
html body input[type="time"] {
  color-scheme: dark !important;
  padding-right: 42px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23e6e6e6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 19px 19px !important;
}
html body input[type="date"]::-webkit-calendar-picker-indicator,
html body input[type="datetime-local"]::-webkit-calendar-picker-indicator,
html body input[type="month"]::-webkit-calendar-picker-indicator,
html body input[type="week"]::-webkit-calendar-picker-indicator,
html body input[type="time"]::-webkit-calendar-picker-indicator {
  opacity: 0 !important;
  filter: none !important;
  cursor: pointer !important;
}

:root {
  --rizhort-orange: #34d399;
  --rizhort-black: #000000;
  --rizhort-chumbo: #1a1a1b;
  --rizhort-chumbo-light: #252526;
  --status-green: #2ecc71;
  --status-yellow: #f1c40f;
  --status-red: #e74c3c;
  --glass-bg: rgba(26, 26, 27, 0.9);
  --glass-border: rgba(255, 255, 255, 0.05);
}

/* Links e controles devem manter o mesmo acabamento em todas as áreas. */
a,
a:link,
a:visited,
a:hover,
a:focus,
a:active {
  text-decoration: none !important;
}

/* Os indicadores nativos do navegador precisam permanecer visíveis no tema escuro. */
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="time"],
input[type="week"] {
  color-scheme: dark;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator,
input[type="search"]::-webkit-search-cancel-button {
  filter: invert(1) grayscale(1);
  opacity: .82;
  cursor: pointer;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: radial-gradient(
    circle at center,
    var(--rizhort-chumbo) 0%,
    var(--rizhort-black) 100%
  );
  color: #ffffff;
  font-family: "Inter", sans-serif;
  min-height: 100vh;
}

/* Apenas para o nome da Marca */
.rizhort-brand {
  font-family: "NHLDucks", sans-serif;
  color: var(--rizhort-orange);
  text-transform: uppercase;
}

/* Títulos que suportam acentuação */
.sys-title {
  font-family: "Inter", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--rizhort-orange);
  letter-spacing: 1px;
}

.rizhort-block {
  background: var(--glass-bg);
  backdrop-filter: blur(10px);
  border: 1px solid var(--glass-border);
  border-top: 2px solid var(--rizhort-orange);
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.btn-rizhort {
  background: transparent;
  border: 1px solid var(--rizhort-orange);
  color: var(--rizhort-orange);
  padding: 10px 20px;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 4px;
  transition: 0.3s;
}

.btn-rizhort:hover {
  background: var(--rizhort-orange);
  color: #000;
}

.status-indicator {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 5px;
}
.status-green {
  background: var(--status-green);
  box-shadow: 0 0 10px var(--status-green);
}
.status-yellow {
  background: var(--status-yellow);
  box-shadow: 0 0 10px var(--status-yellow);
}
.status-red {
  background: var(--status-red);
  box-shadow: 0 0 10px var(--status-red);
}

input,
select,
textarea {
  background: var(--rizhort-chumbo-light);
  border: 1px solid var(--glass-border);
  color: #fff;
  padding: 12px;
  border-radius: 6px;
  width: 100%;
  font-family: "Inter", sans-serif;
}

/* Rizhort Training Gym - instalação em dispositivo e adaptação celular */
.rt-install-button {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 2500;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid var(--rizhort-orange);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.88);
  color: var(--rizhort-orange);
  font-family: "Inter", sans-serif;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

@media (max-width: 900px) {
  body { overflow-x: hidden; }
  .sidebar {
    width: 100% !important;
    height: auto !important;
    max-height: 42vh;
    position: relative !important;
    left: auto !important;
    top: auto !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--glass-border) !important;
    padding: 16px !important;
  }
  .sidebar .logo-area { margin-bottom: 12px !important; }
  .sidebar nav { max-height: 30vh; overflow-y: auto; }
  .nav-section-title { margin: 16px 0 8px 8px !important; }
  .nav-link { padding: 10px 12px !important; font-size: 0.82rem !important; }
  .main-content {
    margin-left: 0 !important;
    width: 100% !important;
    padding: 18px !important;
  }
  .content, main { padding: 18px !important; }
  .header, header {
    padding: 16px 18px !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
  }
  .rizhort-block { padding: 16px !important; }
  .quick-actions { grid-template-columns: 1fr !important; }
  table { min-width: 720px; }
  input, select, textarea, button, .btn-rizhort { min-height: 42px; }
}

@media (max-width: 520px) {
  .login-card { max-width: calc(100vw - 28px) !important; padding: 28px 20px !important; }
  .login-card img { max-width: 180px !important; }
  .rt-install-button { right: 12px; bottom: 12px; padding: 9px 12px; font-size: 0.68rem; }
  .sys-title { letter-spacing: 0.6px; }
}

/* Rizhort Training Gym - ícones nativos claros em campos escuros */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.8) !important;
  opacity: 1 !important;
  cursor: pointer;
}
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
  filter: invert(1) brightness(1.8) !important;
}
.password-toggle,
.toggle-password,
.mostrar-senha,
.ver-senha,
.eye-icon,
.icone-senha {
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke: #ffffff !important;
}


/* Rizhort Training Gym - ícones de campos escuros sempre claros */
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="password"] {
  color-scheme: dark !important;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(2.2) contrast(1.2) !important;
  opacity: 1 !important;
  cursor: pointer !important;
}
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear,
input[type="search"]::-webkit-search-cancel-button {
  filter: invert(1) brightness(2.2) contrast(1.2) !important;
  opacity: 1 !important;
}
.password-toggle,
.toggle-password,
.mostrar-senha,
.ver-senha,
.eye-icon,
.icone-senha,
.btn-ver-senha,
button[aria-label*="senha" i],
button[title*="senha" i],
button[aria-label*="password" i],
button[title*="password" i] {
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke: #ffffff !important;
}
.password-toggle svg,
.toggle-password svg,
.mostrar-senha svg,
.ver-senha svg,
.eye-icon svg,
.icone-senha svg,
.btn-ver-senha svg {
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke: #ffffff !important;
}


/* Rizhort Training Gym - correção final de ícones escuros e portal do aluno */
input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="password"]{
  color-scheme: dark !important;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator{
  filter: invert(1) brightness(2.8) contrast(1.4) !important;
  opacity: 1 !important;
  cursor: pointer !important;
}
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear{ display:none !important; }
.senha-wrap{ position:relative; width:100%; }
.senha-wrap input{ padding-right:48px !important; }
.btn-ver-senha{ position:absolute; right:10px; top:50%; transform:translateY(-50%); width:34px; height:34px; border:0; background:transparent; color:#fff !important; font-size:1rem; line-height:1; cursor:pointer; opacity:.92; display:flex; align-items:center; justify-content:center; }
.btn-ver-senha:hover{ color:var(--rizhort-orange) !important; opacity:1; }
.rt-portal-page{ background:radial-gradient(circle at top, rgba(52, 211, 153,.10), #070707 44%, #000 100%) !important; color:#fff; min-height:100vh; }
.rt-portal-shell{ max-width:1180px; margin:0 auto; padding:24px 18px 110px; }
.rt-portal-topbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:22px; }
.rt-portal-back{ color:#fff; text-decoration:none; border:1px solid var(--glass-border); border-radius:10px; padding:10px 14px; background:rgba(255,255,255,.04); font-size:.72rem; font-weight:800; text-transform:uppercase; }
.rt-portal-back:hover{ border-color:var(--rizhort-orange); color:var(--rizhort-orange); }
.rt-portal-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; align-items:stretch; }
.rt-portal-card{ background:rgba(26,26,27,.94); border:1px solid var(--glass-border); border-top:2px solid var(--rizhort-orange); border-radius:14px; padding:20px; box-shadow:0 12px 28px rgba(0,0,0,.42); }
.rt-portal-title{ font-size:.82rem; color:var(--rizhort-orange); text-transform:uppercase; letter-spacing:1px; font-weight:900; margin:0 0 16px; }
.rt-portal-nav{ display:flex; justify-content:space-around; background:rgba(10,10,10,.98); backdrop-filter:blur(18px); padding:12px 0; position:fixed; left:0; bottom:0; width:100%; border-top:1px solid var(--glass-border); z-index:1000; }
.rt-portal-nav a{ text-align:center; text-decoration:none; color:#fff; opacity:.55; flex:1; font-size:.58rem; font-weight:800; }
.rt-portal-nav a.active{ color:var(--rizhort-orange); opacity:1; }
@media(max-width:720px){ .rt-portal-topbar{align-items:flex-start; flex-direction:column;} .rt-portal-shell{padding:18px 14px 100px;} }


/* Rizhort Training Gym - ajustes finais do Portal do Aluno */
.btn-ver-senha{background:transparent !important;border:0 !important;box-shadow:none !important;color:#fff !important;right:12px !important;width:28px !important;height:28px !important;padding:0 !important;border-radius:0 !important;}
.btn-ver-senha svg{display:block;fill:none !important;stroke:#fff !important;color:#fff !important;}
.btn-ver-senha:hover svg{stroke:var(--rizhort-orange) !important;}
.rt-portal-page input, .rt-portal-page select, .rt-portal-page textarea,
.portal-dark input, .portal-dark select, .portal-dark textarea{background:rgba(255,255,255,.055) !important;border:1px solid var(--glass-border) !important;color:#fff !important;}
.rt-portal-page .rizhort-block, .portal-dark .rizhort-block{background:rgba(24,24,25,.94) !important;border-color:var(--glass-border) !important;color:#fff !important;}
.rt-portal-nav a .nav-ico{font-size:1.05rem;line-height:1;display:block;margin-bottom:4px;font-family:Arial, sans-serif;}
.rt-portal-nav a{font-size:.6rem;letter-spacing:.3px;}
.rt-portal-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.rt-portal-logout{color:#fff;text-decoration:none;border:1px solid rgba(52, 211, 153,.55);border-radius:10px;padding:10px 14px;background:rgba(52, 211, 153,.08);font-size:.72rem;font-weight:900;text-transform:uppercase;}
.rt-portal-logout:hover{background:rgba(52, 211, 153,.18);}


/* Rizhort Training Gym - correção de produção do Portal do Aluno */
body.rt-portal-page,
body.portal-dark{
  background:radial-gradient(circle at top, rgba(52, 211, 153,.10), #070707 42%, #000 100%) !important;
  color:#fff !important;
}
.rt-portal-shell{
  max-width:1180px !important;
  margin:0 auto !important;
  padding:24px 18px 112px !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.rt-portal-card,
.rt-portal-page .rizhort-block,
.portal-dark .rizhort-block{
  background:rgba(24,24,25,.96) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.07) !important;
  border-top:2px solid var(--rizhort-orange) !important;
  box-shadow:0 14px 32px rgba(0,0,0,.44) !important;
}
.rt-portal-nav{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100% !important;
  z-index:99999 !important;
  display:flex !important;
  align-items:stretch !important;
  justify-content:space-around !important;
  gap:0 !important;
  background:rgba(5,5,5,.98) !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
  padding:10px 0 calc(10px + env(safe-area-inset-bottom)) !important;
  margin:0 !important;
  backdrop-filter:blur(16px) !important;
}
.rt-portal-nav a{
  flex:1 1 0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
  min-width:0 !important;
  text-decoration:none !important;
  color:#fff !important;
  opacity:.68 !important;
  font-size:.60rem !important;
  font-weight:800 !important;
  letter-spacing:.25px !important;
  line-height:1.1 !important;
  padding:2px 4px !important;
  background:transparent !important;
  border:0 !important;
}
.rt-portal-nav a.active,
.rt-portal-nav a:hover{
  color:var(--rizhort-orange) !important;
  opacity:1 !important;
}
.rt-portal-nav .nav-ico{
  display:block !important;
  width:20px !important;
  height:20px !important;
  margin:0 0 2px !important;
  color:currentColor !important;
  line-height:1 !important;
  font-size:0 !important;
  font-family:Arial,sans-serif !important;
  background:none !important;
}
.rt-portal-nav .nav-ico svg{
  width:20px !important;
  height:20px !important;
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  display:block !important;
}
.senha-wrap{
  position:relative !important;
  width:100% !important;
  display:block !important;
}
.senha-wrap input[type="password"],
.senha-wrap input[type="text"]{
  padding-right:44px !important;
}
.senha-wrap .btn-ver-senha,
button.btn-ver-senha{
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:22px !important;
  height:22px !important;
  min-width:0 !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  outline:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  color:#fff !important;
  cursor:pointer !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
  z-index:5 !important;
}
.senha-wrap .btn-ver-senha svg,
button.btn-ver-senha svg{
  width:20px !important;
  height:20px !important;
  display:block !important;
  color:#fff !important;
  stroke:#fff !important;
  fill:none !important;
  background:transparent !important;
}
.senha-wrap .btn-ver-senha:hover svg,
button.btn-ver-senha:hover svg{
  stroke:var(--rizhort-orange) !important;
}
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear{display:none !important;}
input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"], input[type="week"]{color-scheme:dark !important;}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(3) contrast(1.3) !important;opacity:1 !important;}


/* Rizhort: remove ícones nativos escuros e mantém apenas os ícones brancos próprios do sistema */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear,
input[type="password"]::-webkit-credentials-auto-fill-button,
input[type="password"]::-webkit-caps-lock-indicator,
input[type="text"].senha-campo-mascarada::-webkit-credentials-auto-fill-button,
input[type="text"].senha-campo-mascarada::-webkit-caps-lock-indicator { display:none !important; visibility:hidden !important; pointer-events:none !important; opacity:0 !important; }
.senha-campo-mascarada { -webkit-text-security: disc !important; text-security: disc !important; }
.senha-campo-visivel { -webkit-text-security: none !important; text-security: none !important; }
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(3) contrast(1.3) !important;opacity:1 !important;}


/* Rizhort Training Gym - Portal do Aluno: botões alinhados e modalidades em duas colunas */
.rt-portal-grid > .rt-portal-card,
.grid-aluno > .rt-portal-card{
  display:flex !important;
  flex-direction:column !important;
  min-height:100% !important;
}
.rt-portal-grid > .rt-portal-card .btn-rizhort,
.grid-aluno > .rt-portal-card .btn-rizhort{
  align-self:flex-start !important;
  margin-top:auto !important;
}
.rt-portal-card .portal-card-action{
  margin-bottom:16px !important;
}
.rt-modalidades-layout{
  display:grid !important;
  grid-template-columns:minmax(260px, 0.95fr) minmax(300px, 1.55fr) !important;
  gap:18px !important;
  align-items:start !important;
}
.rt-modalidades-col{
  min-width:0 !important;
}
.rt-modalidades-col .sec-title{
  margin:0 0 12px !important;
  font-family:'Syne',sans-serif !important;
  font-size:1.05rem !important;
}
.rt-modalidades-list{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
  gap:16px !important;
  align-items:stretch !important;
}
.rt-modalidades-col:first-child .rt-modalidades-list{
  grid-template-columns:1fr !important;
}
.mod-card{
  display:flex !important;
  flex-direction:column !important;
  min-height:160px !important;
}
.mod-card .btn-rizhort{
  align-self:flex-start !important;
  margin-top:auto !important;
}
@media(max-width:860px){
  .rt-modalidades-layout{
    grid-template-columns:1fr !important;
  }
}

/* Área útil padronizada das telas administrativas do sistema. */
body:not(.rt-portal-page) .main-content > .content,
body:not(.rt-portal-page) .main-content > main {
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Tela física de planos: mantém a mesma área útil das demais telas do sistema. */
.main-wrapper:has(> .sidebar + .main-content) {
  margin-left:300px !important;
  width:calc(100% - 300px) !important;
  padding:40px !important;
  box-sizing:border-box !important;
  min-height:100vh;
}
.main-wrapper:has(> .sidebar + .main-content) > .main-content {
  margin:0 !important;
  width:100% !important;
  max-width:none !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
@media(max-width:900px){
  .main-wrapper:has(> .sidebar + .main-content){margin-left:0 !important;width:100% !important;padding:22px !important}
}
@page { size: auto; margin: 12mm; }
@media print {
  html, body { width: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; background: #fff !important; color: #000 !important; }
  .sidebar, .rt-portal-nav, .btn-rizhort, button[onclick*="print"] { display: none !important; }
  .main-content, .main-wrapper, .rizhort-container, .rt-portal-shell {
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    margin: 0 auto !important; padding: 0 !important; box-sizing: border-box !important;
  }
  .rizhort-block, .rt-card, .rt-portal-card { box-sizing: border-box !important; max-width: 100% !important; break-inside: avoid; }
  table { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  .table-wrap, .medidas-scroll { width: 100% !important; overflow: visible !important; }
}
