:root{
  --bg:#000000;
  --panel:#1a1a1a;
  --text:#ffffff;
  --muted:#cccccc;
  --primary:#03cafe;
  --danger:#dc2626;
  --accent:#2596be;
  --ok:#10b981;
  --border:rgba(255,255,255,.10);
}

/* Otimizações globais de performance para touch */
html{
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  touch-action:manipulation;
}

*{box-sizing:border-box}
html,body{height:100%;width:100%;overflow-x:hidden}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  padding:0;
}

a{color:var(--primary);text-decoration:none;touch-action:manipulation}
a:hover{text-decoration:underline}

.btn, button, input[type="submit"], input[type="button"]{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
}

.app{min-height:100%;display:flex;flex-direction:column}
.topbar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,#2b2b2b, #262626);
  border-radius:0 0 18px 18px;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
  flex-wrap:wrap;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  letter-spacing:.4px;
  color:var(--text);
  flex-shrink:0;
}
.brand:hover{text-decoration:none}
.brand-logo{
  width:28px;
  height:28px;
  border-radius:8px;
  border:1px solid var(--border);
  object-fit:cover;
  background:rgba(255,255,255,.06);
}
.brand-name{line-height:1}

.brand-toggle-icon{
  margin-left:8px;
  color:var(--primary);
  transition:transform 0.15s ease;
  flex-shrink:0;
  will-change:transform;
}

.brand.is-collapsed .brand-toggle-icon{
  transform:rotate(-90deg);
}

#nav-toggle-brand{
  cursor:pointer;
  -webkit-user-select:none;
  user-select:none;
  -webkit-tap-highlight-color:rgba(3,202,254,.15);
  touch-action:manipulation;
  transition:opacity 0.15s ease;
}

#nav-toggle-brand:hover{
  opacity:0.85;
}

#nav-toggle-brand:active{
  opacity:0.7;
  transform:scale(0.98);
}

.nav{
  display:flex;
  flex-wrap:nowrap;
  gap:10px;
  justify-content:center;
  transition:opacity 0.2s ease, transform 0.2s ease;
  max-height:500px;
  overflow:visible;
  width:100%;
  margin:0 auto;
  padding:10px 0;
  will-change:opacity, transform;
}

@media (max-width:768px){
  .nav{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
    padding:8px;
  }
}
.nav.is-hidden{
  opacity:0;
  transform:scaleY(0.95);
  transform-origin:top;
  pointer-events:none;
  max-height:0;
  overflow:hidden;
  padding:0;
  margin:0;
}
.navlink{
  padding:20px 14px;
  border:1px solid rgba(3,202,254,.25);
  border-radius:14px;
  background:
    linear-gradient(145deg, rgba(60,60,60,.95), rgba(35,35,35,.98)),
    linear-gradient(to bottom, rgba(3,202,254,.08), transparent 40%);
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  transition:none;
  text-align:center;
  overflow:visible;
  position:relative;
  min-height:110px;
  flex:0 1 110px;
  width:100%;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
  box-shadow:
    0 4px 12px rgba(0,0,0,.4),
    0 2px 4px rgba(0,0,0,.3),
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -1px 0 rgba(0,0,0,.3);
}

@media (max-width:768px){
  .navlink{
    width:100%;
    min-width:0;
    flex:none;
    padding:16px 10px;
    min-height:100px;
  }
}

.navlink::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at top, rgba(3,202,254,.12), transparent 60%);
  opacity:0;
  transition:opacity 0.35s ease;
  border-radius:14px;
}

.navlink::after{
  content:'';
  position:absolute;
  inset:0;
  background:inherit;
  opacity:0.15;
  -webkit-mask-image:var(--nav-icon-bg);
  -webkit-mask-size:70%;
  -webkit-mask-position:center;
  -webkit-mask-repeat:no-repeat;
  mask-image:var(--nav-icon-bg);
  mask-size:70%;
  mask-position:center;
  mask-repeat:no-repeat;
  pointer-events:none;
  filter:blur(2px);
}

 .navlink.navlink-icon-only{
  min-height:110px;
  padding:20px 14px;
  gap:12px;
 }

.navlink:hover{
  background:
    linear-gradient(145deg, rgba(75,75,75,.98), rgba(45,45,45,.98)),
    linear-gradient(to bottom, rgba(3,202,254,.15), transparent 50%);
  border-color:rgba(3,202,254,.45);
  box-shadow:
    0 0 20px rgba(3,202,254,.25),
    0 4px 12px rgba(0,0,0,.5),
    inset 0 2px 0 rgba(255,255,255,.12),
    inset 0 -2px 0 rgba(0,0,0,.4);
  text-decoration:none;
}

.navlink:hover::before{
  opacity:1;
}

.navlink:hover::after{
  opacity:0.25;
  filter:blur(1px);
}

.navlink:active{
  box-shadow:
    0 2px 8px rgba(0,0,0,.4),
    inset 0 2px 8px rgba(0,0,0,.3),
    inset 0 1px 0 rgba(255,255,255,.05);
}

.navicon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  color:var(--primary);
  flex-shrink:0;
  filter:
    drop-shadow(0 2px 4px rgba(3,202,254,.4))
    drop-shadow(0 0 8px rgba(3,202,254,.3));
  transition:all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  z-index:2;
}

.navlink .navicon{
  transform:scale(2.5);
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:45px;
}

.navlink .navicon svg{
  display:block;
}

.navlink:hover .navicon{
  transform:scale(2.7) translateY(-2px);
  filter:
    drop-shadow(0 4px 8px rgba(3,202,254,.6))
    drop-shadow(0 0 16px rgba(3,202,254,.5))
    drop-shadow(0 0 24px rgba(3,202,254,.3));
}

.navlink.navlink-icon-only .navicon{
  margin:0;
}

.navlabel{
  line-height:1.2;
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
  letter-spacing:0.5px;
  text-shadow:0 1px 2px rgba(0,0,0,.5);
  position:relative;
  z-index:2;
}

.navbadge{
  margin-left:8px;
  min-width:18px;
  height:18px;
  padding:0 6px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  line-height:1;
  background:rgba(255,59,59,.22);
  border:1px solid rgba(255,59,59,.45);
  color:#fff;
}

@media (max-width: 700px){
  .topbar{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .nav{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
  }
  .navlink{
    width:100%;
    min-width:0;
    max-width:none;
    padding:14px 8px;
    font-size:12px;
    min-height:95px;
  }
  .navicon{
    margin-right:6px;
  }
  .navicon svg{
    width:16px;
    height:16px;
  }
}

.container{width:min(1100px, 100%);margin:0 auto;padding:16px;box-sizing:border-box;overflow-x:hidden}

@media (max-width: 600px){
  .container{padding:8px;width:100%}
}

body.role-aluno .container{padding:5px}

body.role-aluno .container{
  position:relative;
}
body.role-aluno .container:before{
  content:'';
  position:fixed;
  inset:0;
  background-image:url('/LOGO.png');
  background-repeat:no-repeat;
  background-position:center 64%;
  background-size:min(520px, 72vw);
  opacity:.08;
  filter:grayscale(1);
  pointer-events:none;
  z-index:0;
  animation:bgFloat 6s ease-in-out infinite,bgPulse 4s ease-in-out infinite;
}
body.role-aluno .container > *:not(.modal):not(.rest-mini){position:relative;z-index:1}

body.role-professor .container{
  position:relative;
}
body.role-professor .container:before{
  content:'';
  position:fixed;
  inset:0;
  background-image:url('/LOGO.png');
  background-repeat:no-repeat;
  background-position:center 64%;
  background-size:min(520px, 72vw);
  opacity:.08;
  filter:grayscale(1);
  pointer-events:none;
  z-index:0;
  animation:bgFloat 6s ease-in-out infinite,bgPulse 4s ease-in-out infinite;
}
body.role-professor .container > *:not(.modal):not(.rest-mini){position:relative;z-index:1}

body.role-professor{overflow-x:hidden}

@keyframes bgFloat{0%,100%{transform:translateY(0px) scale(1)}50%{transform:translateY(-15px) scale(1.02)}}
@keyframes bgPulse{0%,100%{opacity:.08}50%{opacity:.12}}

.chat-thread{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(255,255,255,.03);
  max-height:220px;
  overflow:auto;
}

.chat-line{padding:8px 10px;border-radius:14px;border:1px solid var(--border);max-width:85%}
.chat-meta{font-size:12px;opacity:.85;margin-bottom:4px}
.chat-text{font-size:14px;line-height:1.35}

.chat-line-aluno{color:var(--primary);background:rgba(3,202,254,.10);align-self:flex-end}
.chat-line-prof{color:#ff3b3b;background:rgba(255,59,59,.10);align-self:flex-start}

body.role-professor .chat-line-aluno{align-self:flex-start}
body.role-professor .chat-line-prof{align-self:flex-end}

.chat-compose{position:relative}
.chat-compose textarea{padding-right:46px}
.chat-send-btn{
  position:absolute;
  right:10px;
  bottom:10px;
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(3,202,254,.12);
  color:var(--primary);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.chat-send-btn .icon-inline{margin-right:0}
.chat-send-btn .icon-inline svg{width:18px;height:18px}
.chat-send-btn:hover{background:rgba(3,202,254,.18)}
.chat-send-btn:disabled{opacity:.6;cursor:not-allowed}

body.role-guest .container{
  position:relative;
}
body.role-guest .container:before{
  content:'';
  position:fixed;
  inset:0;
  background-image:url('/LOGO.png');
  background-repeat:no-repeat;
  background-position:center 64%;
  background-size:min(520px, 72vw);
  opacity:.07;
  filter:grayscale(1);
  pointer-events:none;
  z-index:0;
}
body.role-guest .container:after{
  content:'';
  position:fixed;
  inset:0;
  background:linear-gradient(180deg, rgba(43,43,43,.80), rgba(38,38,38,.92));
  pointer-events:none;
  z-index:0;
}

 .olhinho-fab{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:9999;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
 }

 .olhinho-fab-btn{
  border:1px solid var(--border);
  background:rgba(3,202,254,.16);
  color:var(--text);
  padding:10px 12px;
  border-radius:999px;
  cursor:pointer;
  font-weight:600;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  touch-action:manipulation;
 }

 .olhinho-fab-btn:hover{
  background:rgba(3,202,254,.22);
 }

 .olhinho-fab-notify{
  max-width:min(80vw, 360px);
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(0,0,0,.55);
  color:var(--text);
  font-size:14px;
  overflow-wrap:break-word;
  word-wrap:break-word;
  white-space:normal;
 }
body.role-guest .container > *:not(.modal):not(.rest-mini){position:relative;z-index:1}

.card{
  border:1px solid var(--border);
  background:rgba(0,0,0,.18);
  border-radius:14px;
  padding:14px;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  overflow:visible;
}

/* Accordion (Semanas) */
.week-details > summary{
  cursor:pointer;
  list-style:none;
}
.week-details > summary::-webkit-details-marker{display:none}
.week-details > summary:focus{outline:2px solid var(--primary);outline-offset:4px}
.week-summary-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.week-details[open] > summary{margin-bottom:10px}

/* Estilos para tabela de sessões - botões e descrição */
.session-actions-form{display:flex;gap:8px;justify-content:center;width:100%}
.session-btn{flex:1;min-width:110px;height:38px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}

body.role-aluno .card{padding:7px}

.grid{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width: 900px){
  .grid-2{grid-template-columns:1fr 1fr}
}

/* Layout da página inicial - Logo entre os cards */
body.role-guest .container {
  display: flex;
  flex-direction: column;
}

.home-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.home-cards + .home-logo-wrapper {
  order: 0;
  margin: 8px 0;
}

@media (min-width: 701px){
  body.role-guest .topbar{position:relative}
  body.role-guest .nav{position:absolute;left:50%;transform:translateX(-50%)}
}

.home-cards .card{text-align:center;position:relative;z-index:1000;padding:10px}
.home-cards .card h2{display:flex;align-items:center;justify-content:center;font-size:18px;margin:8px 0}
.home-cards .card p{text-align:center;margin:6px 0;font-size:14px}

.home-logo-wrapper{display:flex;justify-content:center;margin:35px 0 20px 0;perspective:1200px;pointer-events:none;position:relative;z-index:0}
.home-logo-container{position:relative;width:63px;height:63px;pointer-events:auto;transform-style:preserve-3d}
.home-logo-circle{position:relative;width:100%;height:100%;border-radius:50%;overflow:visible;border:5px solid var(--primary);box-shadow:0 0 40px rgba(3,202,254,.5),0 0 80px rgba(3,202,254,.3),0 20px 60px rgba(0,0,0,.4),inset 0 0 40px rgba(3,202,254,.15);animation:logoFloatSoft 5s ease-in-out infinite;transform-style:preserve-3d;transition:transform .3s ease-out;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.15),rgba(0,0,0,.2))}
.home-logo-inner{position:absolute;inset:0;border-radius:50%;overflow:hidden;transform-style:preserve-3d;transition:transform .3s ease-out}
.home-logo-img{width:100%;height:100%;object-fit:contain;filter:brightness(1.15) contrast(1.2) saturate(1.1);transform:scale(0.85);padding:10px}
.home-logo-ring{position:absolute;inset:-10px;border-radius:50%;border:3px solid rgba(3,202,254,.25);animation:ringPulseSoft 4s ease-in-out infinite;pointer-events:none;box-shadow:0 0 20px rgba(3,202,254,.3)}
.home-logo-glow{position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(circle,rgba(3,202,254,.4),transparent 65%);animation:glowPulseSoft 3s ease-in-out infinite;filter:blur(25px);z-index:-1}
.home-logo-shine{position:absolute;inset:0;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:2}
.home-logo-container:hover .home-logo-shine{opacity:1}
.home-logo-container:hover .home-logo-circle{box-shadow:0 0 50px rgba(3,202,254,.7),0 0 100px rgba(3,202,254,.4),0 25px 70px rgba(0,0,0,.5),inset 0 0 50px rgba(3,202,254,.2)}

/* Remover animação APENAS da logo da página inicial (entre os dois cards) */
body.role-guest .home-logo-wrapper .home-logo-circle {
  animation: none !important;
}

@keyframes logoFloatSoft{0%,100%{transform:translateY(0px) translateZ(0px) scale(1)}50%{transform:translateY(-12px) translateZ(15px) scale(1.02)}}
@keyframes ringPulseSoft{0%,100%{transform:scale(1);opacity:.25}50%{transform:scale(1.08);opacity:.5}}
@keyframes glowPulseSoft{0%,100%{transform:scale(1);opacity:.4}50%{transform:scale(1.2);opacity:.6}}

.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
label{font-size:13px;color:var(--muted)}
input,select,textarea{
  background:rgba(255,255,255,.06);
  border:1px solid var(--border);
  color:var(--text);
  padding:10px 12px;
  border-radius:12px;
  outline:none;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow-wrap:break-word;
  word-break:break-word;
}

.plan-options{
  display:grid;
  gap:10px;
}

.plan-option{
  display:grid;
  grid-template-columns:20px 1fr;
  align-items:start;
  gap:10px;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

.plan-option input[type="radio"]{
  margin-top:2px;
}

.plan-details{
  min-width:0;
}

.plan-price{
  color:var(--muted);
  font-size:13px;
  margin-top:4px;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.login-card h2{display:flex;align-items:center;justify-content:center}
.login-card .login-actions{display:flex;justify-content:center}

.login-logo-wrapper{display:flex;justify-content:center;margin-bottom:24px;animation:loginLogoFade 0.8s ease-out}
.login-logo{width:98px;height:auto;filter:drop-shadow(0 4px 12px rgba(3,202,254,.4));animation:loginLogoPulse 3s ease-in-out infinite}

@keyframes loginLogoFade{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}
@keyframes loginLogoPulse{0%,100%{filter:drop-shadow(0 4px 12px rgba(3,202,254,.4))}50%{filter:drop-shadow(0 6px 16px rgba(3,202,254,.6))}}

@media (max-width: 900px){
  input,select,textarea{font-size:16px}
}

input[type="checkbox"],
input[type="radio"]{
  width:auto;
  max-width:none;
  padding:0;
  margin:0;
  flex-shrink:0;
  cursor:pointer;
}

/* Corrigir alinhamento de checkboxes em labels flexíveis */
label[style*="display:flex"],
label[style*="display:inline-flex"]{
  align-items:center;
}

/* Melhorar espaçamento de checkboxes em grupos */
.field label input[type="checkbox"],
.field label input[type="radio"]{
  margin-right:8px;
}

/* Corrigir alinhamento de checkboxes dentro de divs flex-wrap */
.field > div[style*="display:flex"][style*="flex-wrap:wrap"] label{
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:8px 0;
}

.field > div[style*="display:flex"][style*="flex-wrap:wrap"] label input[type="checkbox"]{
  margin-right:8px;
  vertical-align:middle;
}

.field > div[style*="display:flex"][style*="flex-wrap:wrap"] label span{
  line-height:1.4;
}

.kpi > *{min-width:0}

/* Estilos específicos para formulários de anamnese e pagamento */
.anamnese-areas-checkbox,
.pagamento-bloqueio-checkbox{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  margin:4px 8px 4px 0 !important;
  padding:8px 0 !important;
  cursor:pointer;
  -webkit-user-select:none;
  user-select:none;
}

.anamnese-areas-checkbox input[type="checkbox"],
.pagamento-bloqueio-checkbox input[type="checkbox"]{
  margin:0 !important;
  flex-shrink:0;
  width:18px;
  height:18px;
  cursor:pointer;
}

.anamnese-areas-checkbox span,
.pagamento-bloqueio-checkbox span{
  line-height:1.3;
  cursor:pointer;
}

/* Container de checkboxes para anamnese */
.field > div[style*="display:flex"][style*="flex-wrap:wrap"]{
  padding:4px 0;
}

/* Melhorar alinhamento de labels com checkboxes inline */
.card label[style*="display:flex"]{
  align-items:center !important;
  gap:8px;
  margin-bottom:8px;
}

.card label[style*="display:flex"] input[type="checkbox"]{
  flex-shrink:0;
  margin:0 !important;
  width:18px;
  height:18px;
}

.card label[style*="display:inline-flex"]{
  align-items:center !important;
  gap:8px;
  margin:4px 8px 4px 0;
}

.card label[style*="display:inline-flex"] input[type="checkbox"]{
  flex-shrink:0;
  margin:0 !important;
  width:18px;
  height:18px;
}

/* Forçar alinhamento correto para todos labels com checkboxes */
label[style*="display:flex"][style*="align-items:center"],
label[style*="display:inline-flex"][style*="align-items:center"]{
  align-items:center !important;
}

label[style*="display:flex"][style*="gap:8px"] input[type="checkbox"],
label[style*="display:inline-flex"][style*="gap:8px"] input[type="checkbox"]{
  flex-shrink:0;
  margin:0 !important;
  vertical-align:middle;
}

.grams-edit{
  color:rgba(16,185,129,.85);
  border-color:rgba(16,185,129,.25);
}
.grams-edit:focus{
  border-color:rgba(16,185,129,.50);
  box-shadow:0 0 0 3px rgba(16,185,129,.10);
}

.icon-inline{display:inline-flex;align-items:center;justify-content:center;color:var(--primary);margin-right:8px;vertical-align:middle;line-height:1}
.icon-inline svg{display:block}
.icon-muted{color:var(--muted)}
.btn-icon{display:inline-flex;align-items:center;gap:8px}
.btn-icon .icon-inline{margin-right:0}
textarea{min-height:110px;resize:vertical}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  color:var(--text);
  cursor:pointer;
}
.btn-primary{background:rgba(3,202,254,.18);border-color:rgba(3,202,254,.35)}
.btn-danger{background:rgba(220,38,38,.35);border-color:rgba(220,38,38,.55)}

.btn-exec-spotlight{
  font-size:18px;
  position:relative;
  overflow:hidden;
  color:var(--primary);
}
.btn-exec-spotlight::after{
  content:"";
  position:absolute;
  inset:-40% auto -40% -60%;
  width:60%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
  animation:exec-spotlight 2.6s linear infinite;
  pointer-events:none;
}
.btn-exec-spotlight{
  box-shadow:0 0 0 0 rgba(3,202,254,.25);
  animation:exec-pulse 2.6s ease-in-out infinite;
}

.btn-save-exec{font-size:18px}

@keyframes exec-spotlight{
  0%{transform:translateX(0)}
  100%{transform:translateX(320%)}
}

@keyframes exec-pulse{
  0%{box-shadow:0 0 0 0 rgba(3,202,254,.18)}
  60%{box-shadow:0 0 0 10px rgba(3,202,254,0)}
  100%{box-shadow:0 0 0 0 rgba(3,202,254,0)}
}

.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}
.table th{color:var(--muted);font-weight:700}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wide{min-width:0}

.plan-meta{display:none}

.table-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.table-actions form{display:inline-flex}
.table-actions .btn{min-width:96px}
.table-actions .btn .icon-inline{margin-right:8px}

body.role-professor .rank-filter .field{margin-bottom:0}
body.role-professor .rank-filter .btn{margin-top:19px}

@media (max-width: 700px){
  .table-wide{min-width:720px}
  .table-actions{justify-content:flex-start}
}

@media (max-width: 700px){
  .planos-wrap{overflow-x:hidden}
  .plans-table{table-layout:auto}
  .plans-table thead{display:none}
  .plans-table,
  .plans-table tbody,
  .plans-table tr,
  .plans-table td{display:block;width:100%}

  .planos-wrap.table-wrap{max-width:100%;overflow-x:hidden !important}
  .planos-wrap .table{width:100% !important;min-width:0 !important}

  .plans-table tr{
    border-bottom:1px solid var(--border);
    padding:10px 0;
  }

  .plans-table td{
    border-bottom:0;
    padding:6px 0;
    font-size:14px;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  .plans-table td::before{
    content:attr(data-label) ": ";
    color:var(--muted);
    font-weight:700;
  }

  .plans-table td[data-label="Plano"]::before{content:""}
  .plans-table td[data-label="Plano"] strong{display:block;font-size:16px}

  .plans-table td[data-label="Ação"] .btn{
    display:block;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    text-align:center;
    white-space:normal;
    line-height:1.2;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  .plans-table td[data-label="Ação"]::before{
    display:block;
    margin-bottom:8px;
  }
}

@media (max-width: 700px){
  body.role-professor .rank-filter{grid-template-columns:minmax(90px,110px) minmax(0,1fr) 96px !important;align-items:end;max-width:100%}
  body.role-professor .rank-filter .field{margin-bottom:0;display:flex;flex-direction:column}
  body.role-professor .rank-filter .field label{font-size:11px;margin-bottom:6px;line-height:1.2}
  body.role-professor .rank-filter > *{min-width:0}
  body.role-professor .rank-filter input,
  body.role-professor .rank-filter select{min-width:0}
  body.role-professor .rank-filter select,
  body.role-professor .rank-filter input[type="date"]{height:44px}
  body.role-professor .rank-filter .btn{height:44px;margin-top:19px}
  body.role-professor .rank-filter input[type="date"]{max-width:100%;padding:10px 10px;font-size:13px}
  body.role-professor .rank-filter .btn-text{font-size:14px}
  body.role-professor .rank-filter .btn{width:100%;max-width:100%;white-space:nowrap;padding:10px 10px}
}

@supports (-webkit-touch-callout: none){
  @media (max-width: 700px){
    body.role-professor .rank-filter select,
    body.role-professor .rank-filter input[type="date"]{
      -webkit-appearance:none;
      appearance:none;
      line-height:44px;
      padding-top:0;
      padding-bottom:0;
    }
    body.role-professor .rank-filter input[type="date"]{padding-right:36px}
  }
}

@media (max-width: 700px){
  body.role-professor .sms-open-form{grid-template-columns:1fr !important;align-items:stretch}
  body.role-professor .sms-open-form .btn{width:100%}
  body.role-professor .prof-contact-line{overflow-wrap:anywhere;word-break:break-word}
}

@media (max-width: 480px){
  .table-wide{min-width:640px}
  .table-actions{flex-direction:column;align-items:stretch}
  .table-actions .btn{width:100%;justify-content:center}
  .table-actions form{width:100%}
  .table-actions form .btn{width:100%}
}

@media (max-width: 480px){
  body.role-professor .rank-filter{grid-template-columns:minmax(90px,1fr) minmax(0,1fr) !important;align-items:end}
  body.role-professor .rank-filter .btn{grid-column:1 / -1;width:100%}
}

@media (max-width: 700px){
  body.role-professor .rank-filter .rank-filter-actions{
    grid-column:1 / -1;
    width:100%;
    justify-content:stretch;
    flex-wrap:wrap;
  }
  body.role-professor .rank-filter .rank-filter-actions .btn{
    flex:1 1 140px;
    width:100%;
  }
}

@media (max-width: 360px){
  body.role-professor .rank-filter .btn{padding:10px;justify-content:center}
  body.role-professor .rank-filter .btn .btn-text{display:none}
}

@media (max-width: 700px){
  body.role-professor .feed-filter{grid-template-columns:1fr !important}
  body.role-professor .feed-filter .btn{width:100%;justify-content:center}

  body.role-professor .feed-compare-form{grid-template-columns:1fr !important}
  body.role-professor .feed-compare-form > *{min-width:0}
  body.role-professor .feed-compare-form .btn{width:100%;justify-content:center}

  body.role-professor .feed-compare-delete{width:100%}
  body.role-professor .feed-compare-delete .btn{width:100%;justify-content:center}
}

@media (max-width: 700px){
  body.role-professor .grid.grid-2{grid-template-columns:1fr !important}
}

/* Melhorar responsividade do formulário de anamnese */
@media (max-width: 900px){
  .grid.grid-2{
    grid-template-columns:1fr !important;
  }
  
  .field > div[style*="display:flex"][style*="flex-wrap:wrap"]{
    gap:8px !important;
  }
  
  .field > div[style*="display:flex"][style*="flex-wrap:wrap"] label{
    flex:1 1 calc(50% - 8px);
    min-width:120px;
  }
}

@media (max-width: 600px){
  .field > div[style*="display:flex"][style*="flex-wrap:wrap"] label{
    flex:1 1 100%;
  }
}

/* Melhorar responsividade do formulário de cadastro em mobile */
@media (max-width: 900px){
  section.card{
    padding:8px !important;
    max-width:100% !important;
    margin:0 !important;
    width:100% !important;
  }
  section.card h2{
    font-size:18px;
    margin:8px 0 12px 0;
  }
  section.card form.grid{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  section.card form.grid > div{
    min-width:0 !important;
    padding:0 !important;
  }
  section.card form.grid > div > .card{
    padding:8px !important;
    gap:6px !important;
  }
  section.card .field{
    gap:4px !important;
    margin-bottom:8px !important;
  }
  section.card label{
    font-size:12px !important;
  }
  section.card input,
  section.card select,
  section.card textarea{
    max-width:100% !important;
    overflow-wrap:break-word;
    padding:8px 10px !important;
    font-size:14px !important;
  }
  section.card .btn{
    padding:8px 12px !important;
    font-size:13px !important;
  }
  section.card .btn-exec-spotlight,
  section.card .btn-save-exec{
    font-size:18px !important;
  }
}

@media (max-width: 600px){
  section.card{
    padding:6px !important;
    margin:4px !important;
    border-radius:8px !important;
  }
  section.card .field{
    margin-bottom:6px !important;
    gap:3px !important;
  }
  section.card .field label{
    font-size:11px !important;
  }
  section.card input,
  section.card select,
  section.card textarea{
    padding:8px 8px !important;
    font-size:14px !important;
    border-radius:8px !important;
  }
  section.card .card{
    padding:6px !important;
    margin:0 !important;
    gap:4px !important;
  }
  section.card .btn{
    padding:6px 10px !important;
    font-size:12px !important;
    flex:1 1 calc(50% - 4px) !important;
  }
  section.card .btn-exec-spotlight,
  section.card .btn-save-exec{
    font-size:18px !important;
  }
  /* Melhorar layout dos radio buttons de plano */
  section.card label[style*="display:flex"][style*="gap:10px"]{
    padding:6px !important;
    gap:6px !important;
  }
  /* Melhorar grid de opções de plano */
  section.card > .card .field > div[style*="display:grid"][style*="gap:10px"]{
    gap:6px !important;
  }
  section.card > .card .field > div[style*="display:grid"] label{
    padding:6px !important;
  }
}

@media (max-width: 700px){
  body.role-professor .dieta-edit-form{grid-template-columns:1fr !important}
  body.role-professor .dieta-add-item-form{grid-template-columns:1fr !important}
  body.role-professor .dieta-grams-row{flex-wrap:wrap}
}

@media (max-width: 480px){
  body.role-professor .avaliacao-comp-grid{grid-template-columns:1fr !important}
}

@media (max-width: 480px){
  body.role-professor .avaliacao-comp-grid > .card{min-width:0}
  body.role-professor .avaliacao-comp-grid .card{min-width:0;max-width:100%}
  body.role-professor .avaliacao-comp-grid .table-wrap{max-width:100%}
  body.role-professor .avaliacao-comp-grid .kpi .pill{width:100%;border-radius:12px;display:block}
  body.role-professor .avaliacao-comp-grid .table{width:100%;table-layout:fixed}
  body.role-professor .avaliacao-comp-grid .table th,
  body.role-professor .avaliacao-comp-grid .table td{overflow-wrap:anywhere;word-break:break-word}
  body.role-professor .avaliacao-comp-grid > .card{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

@media (max-width: 480px){
  body.role-professor .avaliacao-comp-card{min-width:0;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body.role-professor .avaliacao-comp-card .table-wrap{max-width:100%}
  body.role-professor .avaliacao-comp-card .kpi .pill{width:100%;border-radius:12px;display:block}
  body.role-professor .avaliacao-comp-card .table{width:100%;table-layout:fixed}
  body.role-professor .avaliacao-comp-card .table th,
  body.role-professor .avaliacao-comp-card .table td{overflow-wrap:anywhere;word-break:break-word}
}

@media (max-width: 480px){
  body.role-professor details#av-perimetros-details.collapse,
  body.role-professor details#av-dobras-details.collapse,
  body.role-professor details#av-perimetros-details.collapse[open],
  body.role-professor details#av-dobras-details.collapse[open]{
    overflow:hidden !important;
    max-width:100%;
  }
  body.role-professor details#av-perimetros-details.collapse .collapse-body,
  body.role-professor details#av-dobras-details.collapse .collapse-body,
  body.role-professor details#av-perimetros-details.collapse[open] .collapse-body,
  body.role-professor details#av-dobras-details.collapse[open] .collapse-body{
    overflow:hidden !important;
    padding:0 !important;
    max-width:100%;
  }
  body.role-professor details#av-perimetros-details .table-wrap,
  body.role-professor details#av-dobras-details .table-wrap{
    margin:0;
    padding:6px;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:visible;
    -webkit-overflow-scrolling:touch;
    box-sizing:border-box;
  }
  body.role-professor #av-perimetros-details .table,
  body.role-professor #av-dobras-details .table{
    width:max-content;
    min-width:100%;
    margin:0;
    table-layout:auto;
  }
  body.role-professor #av-perimetros-details .table th,
  body.role-professor #av-perimetros-details .table td,
  body.role-professor #av-dobras-details .table th,
  body.role-professor #av-dobras-details .table td{
    padding:6px 4px;
    white-space:nowrap;
    font-size:13px;
  }
  /* Dobras table needs even tighter spacing on mobile */
  body.role-professor #av-dobras-details .table th,
  body.role-professor #av-dobras-details .table td{
    padding:6px 2px;
    font-size:11px;
    text-align:center;
  }
  body.role-professor #av-dobras-details .table th:first-child,
  body.role-professor #av-dobras-details .table td:first-child{
    padding-left:6px;
    text-align:left;
    max-width:80px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  body.role-professor #av-dobras-details .table th:last-child,
  body.role-professor #av-dobras-details .table td:last-child{
    padding-right:6px;
  }
  body.role-professor #av-perimetros-details .table td input,
  body.role-professor #av-dobras-details .table td input{
    width:70px !important;
    max-width:70px !important;
    padding:4px 6px;
    font-size:13px;
  }
  /* Dobras inputs even smaller on mobile */
  body.role-professor #av-dobras-details .table td input{
    width:50px !important;
    max-width:50px !important;
    padding:3px;
    font-size:11px;
  }
}

@media (max-width: 700px){
  details#av-perimetros-details.collapse,
  details#av-dobras-details.collapse,
  details#av-perimetros-details.collapse[open],
  details#av-dobras-details.collapse[open]{
    overflow:hidden !important;
    max-width:100%;
  }
  details#av-perimetros-details.collapse .collapse-body,
  details#av-dobras-details.collapse .collapse-body,
  details#av-perimetros-details.collapse[open] .collapse-body,
  details#av-dobras-details.collapse[open] .collapse-body{
    overflow:hidden !important;
    padding:0 !important;
    max-width:100%;
  }
  details#av-perimetros-details .table-wrap,
  details#av-dobras-details .table-wrap{
    margin:0;
    padding:8px;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:visible;
    box-sizing:border-box;
  }
  details#av-perimetros-details .table,
  details#av-dobras-details .table{
    width:max-content;
    min-width:100%;
    margin:0;
  }
  .table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden}
  .table-wrap .table{width:max-content;min-width:100%}
  .table-actions .btn{min-width:96px;padding:8px 10px}
}

.flash{margin:12px 0;padding:10px 12px;border-radius:12px;border:1px solid var(--border)}
.flash-success{border-color:rgba(16,185,129,.25);background:rgba(16,185,129,.08)}
.flash-danger{border-color:rgba(220,38,38,.45);background:rgba(220,38,38,.22)}
.flash-info{border-color:rgba(3,202,254,.25);background:rgba(3,202,254,.10)}

.kpi{display:flex;gap:10px;flex-wrap:wrap}
.card .kpi + .kpi{margin-top:10px}
.kpi .pill{padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.04);font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:8px;line-height:1.25;max-width:100%;min-width:0;white-space:normal;flex-wrap:wrap;overflow-wrap:anywhere;word-break:break-word}
.kpi .pill a{display:inline-flex;align-items:center;gap:8px;line-height:1.25;max-width:100%;min-width:0;white-space:normal;flex-wrap:wrap;overflow-wrap:anywhere;word-break:break-word}
.kpi .pill .icon-inline{margin-right:0}

details[data-aluno-dieta-collapse="1"] .dieta-back-btn{display:none;background:transparent;border:0;padding:0;margin:0 6px 0 0;color:inherit;cursor:pointer;line-height:1}
details[data-aluno-dieta-collapse="1"][open] .dieta-back-btn{display:inline-flex;align-items:center;justify-content:center}
details[data-aluno-dieta-collapse="1"] .dieta-back-btn .icon-inline svg{width:16px;height:16px}

.professor-dashboard h2{margin-bottom:6px}
.prof-contact{margin-top:2px;color:var(--muted);font-size:13px}
.prof-contact-line{line-height:1.35}
.prof-contact-label{color:var(--text)}
.prof-contact + .kpi{margin-top:16px}
.prof-contact + .prof-kpi-grid{margin-top:16px}

.prof-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.prof-kpi-block{border:1px solid var(--border);background:rgba(255,255,255,.02);border-radius:12px;padding:12px}
.prof-kpi-block-full{grid-column:1 / -1}
.prof-kpi-title{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:8px}
.prof-kpi-block .kpi{gap:8px}

@media (max-width: 700px){
  .prof-kpi-grid{grid-template-columns:1fr}
  .prof-kpi-block-full{grid-column:auto}
}

.badge{padding:5px 8px;border-radius:999px;border:1px solid var(--border);font-size:12px}
.badge-ok{border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.10)}
.badge-warn{border-color:rgba(3,202,254,.35);background:rgba(3,202,254,.12)}
.badge-bad{border-color:rgba(220,38,38,.60);background:rgba(220,38,38,.26)}

.treino-apply-check{display:flex;align-items:center;gap:8px;margin:10px 0 6px 0;color:rgba(16,185,129,.95);font-weight:600;cursor:pointer;line-height:1.25;width:100%}
.treino-apply-check input[type="checkbox"]{width:16px;height:16px;accent-color:rgb(16,185,129)}
.treino-apply-check--inline{margin:0}

.badge-fixed{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  height:22px;
  padding:0 10px;
  text-align:center;
}

.badge-done{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 8px;
  min-width:78px;
  height:40px;
  border-radius:999px;
  line-height:1;
}
.badge-done .icon-inline{margin-right:0}
.badge-done .icon-inline svg{width:18px;height:18px}
.badge-done-date{display:block;font-size:10px;line-height:1.05;color:rgba(255,255,255,.92);text-align:left;margin-left:6px}

.rest-row{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
.rest-row::-webkit-scrollbar{height:6px}
.rest-row::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:999px}

.suggestions{
  display:none;
  position:relative;
  margin-top:8px;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  background:rgba(0,0,0,.18);
}
.suggestion-item{
  width:100%;
  text-align:left;
  padding:10px 12px;
  border:0;
  border-bottom:1px solid var(--border);
  background:transparent;
  color:var(--text);
  cursor:pointer;
  transition:background 0.15s;
}
.suggestion-item:last-child{border-bottom:0}
.suggestion-item:hover{background:rgba(3,202,254,.10)}
.suggestion-item.selected{background:rgba(3,202,254,.20);border-left:3px solid var(--primary)}

.modal{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.55);
  padding:16px;
  z-index:1000;
}
.modal.modal-open{display:flex}
.modal-panel{
  width:min(520px, 100%);
  border:1px solid var(--border);
  background:rgba(30,30,30,.98);
  border-radius:16px;
  padding:14px;
}
.modal-title{font-weight:800;margin:0 0 10px 0}
.modal-actions{display:flex;gap:10px;flex-wrap:wrap}

.accordion{
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(0,0,0,.12);
  padding:0;
  overflow:hidden;
  max-width:100%;
}
.accordion-summary{
  list-style:none;
  cursor:pointer;
  padding:12px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:rgba(255,255,255,.03);
}
.accordion-summary::-webkit-details-marker{display:none}
.accordion-title{font-weight:800;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.day-subtitle{
  display:block;
  font-weight:500;
  color:var(--muted);
  font-size:12px;
  margin-top:4px;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.accordion-meta{color:var(--muted);font-size:12px}
.day-progress{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:140px}
.day-progress-bar{width:140px;height:8px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.10);overflow:hidden}
.day-progress-fill{display:block;height:100%;background:linear-gradient(90deg, rgba(3,202,254,.55), rgba(3,202,254,.95))}
.day-progress-text{font-size:11px;color:var(--muted);line-height:1}
.day-open-label{margin-top:4px;display:block;text-align:right}
.rank-days{display:flex;flex-direction:column;gap:10px}
.rank-day-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.rank-day-label{font-weight:700}
.accordion-body{padding:12px;max-width:100%;overflow:hidden}

.ex-accordion .accordion-title .ex-back{display:none}
.ex-accordion[open] .accordion-title .ex-back{display:inline-flex}

.treino-layer-day-header .accordion-title .day-back{display:none}
.treino-layer-day-header[open] .accordion-title .day-back{display:inline-flex}

body.treino-ex-focus .treino-layer-day-header:not(.exercise-focused){display:none}
body.treino-ex-focus .treino-layer-day-header.exercise-focused details[data-ex-accordion]:not([open]){display:none}

body.treino-ex-focus .treino-layer-week{background:transparent;border:none;padding:0}
body.treino-ex-focus .treino-layer-week > h3{display:none}
body.treino-ex-focus .treino-layer-week > div{display:none}

body.treino-ex-focus .treino-layer-day-header.exercise-focused{background:transparent;border:none;margin-top:0}
body.treino-ex-focus .treino-layer-day-header.exercise-focused > .accordion-body{padding:0}
body.treino-ex-focus .treino-layer-day-header.exercise-focused .ex-list{margin-top:0 !important}

@media (max-width: 700px){
  .rank-day-row{flex-direction:column;align-items:stretch}
  .day-progress{align-items:flex-start;min-width:0}
  .day-progress-bar{width:100%}
  .day-open-label{text-align:left}
  .accordion-summary{align-items:flex-start}
  .accordion-title{min-width:0;overflow-wrap:anywhere}
}

.accordion-hidden{display:none}

.upload-progress{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:rgba(0,0,0,.12)}
.upload-progress-bar{width:100%;height:10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.10);overflow:hidden}
.upload-progress-fill{display:block;height:100%;width:0%;background:linear-gradient(90deg, rgba(3,202,254,.55), rgba(3,202,254,.95))}
.upload-progress-text{margin-top:6px;font-size:12px;color:var(--muted)}

.ex-accordion{background:rgba(255,255,255,.02)}
.ex-accordion .accordion-summary{background:rgba(0,0,0,.10)}

.rest-chip{
  border:1px solid rgba(3,202,254,.35);
  background:rgba(3,202,254,.12);
  color:var(--text);
  padding:6px 7px;
  border-radius:999px;
  cursor:pointer;
  font-size:11px;
  line-height:1.1;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.rest-chip:hover{background:rgba(3,202,254,.18)}
.rest-chip .icon-inline{margin-right:0}
.rest-chip .icon-inline svg{width:14px;height:14px}

.collapse{
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(255,255,255,.03);
  overflow:hidden;
  max-width:100%;
}
.collapse-summary{
  list-style:none;
  cursor:pointer;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:var(--muted);
  font-size:13px;
}

.btn.btn-saving{
  position:relative;
  overflow:hidden;
  pointer-events:none;
}
.btn.btn-saving::before,
.btn.btn-saving::after{
  content:"";
  position:absolute;
  top:0;
  height:100%;
  width:0;
  background:rgba(3,202,254,.55);
  z-index:0;
  transition:width 1.4s ease;
}
.btn.btn-saving::before{left:50%;border-radius:0 999px 999px 0;}
.btn.btn-saving::after{right:50%;border-radius:999px 0 0 999px;}
.btn.btn-saving.btn-saving-anim::before{width:50%;}
.btn.btn-saving.btn-saving-anim::after{width:50%;}
.btn.btn-saving > *{position:relative;z-index:1;}
.collapse-summary.olhinho-summary{font-size:15px;font-weight:700;color:var(--text)}
.collapse-summary::-webkit-details-marker{display:none}
.collapse-body{padding:10px 12px;border-top:1px solid var(--border);max-width:100%;overflow:hidden}

/* Fix overflow for assessment table sections - contain content with scroll */
details#av-perimetros-details.collapse,
details#av-dobras-details.collapse,
details#av-perimetros-details.collapse[open],
details#av-dobras-details.collapse[open]{
  overflow:hidden !important;
  max-width:100%;
}
details#av-perimetros-details.collapse .collapse-body,
details#av-dobras-details.collapse .collapse-body,
details#av-perimetros-details.collapse[open] .collapse-body,
details#av-dobras-details.collapse[open] .collapse-body{
  overflow:hidden !important;
  padding:0 !important;
  max-width:100%;
}
details#av-perimetros-details .table-wrap,
details#av-dobras-details .table-wrap{
  margin:0;
  padding:10px;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
}
details#av-perimetros-details .table,
details#av-dobras-details .table{
  width:max-content;
  min-width:100%;
  margin:0;
}
/* Dobras table needs tighter spacing due to more columns */
details#av-dobras-details .table th,
details#av-dobras-details .table td{
  padding:10px 4px;
  font-size:13px;
  text-align:center;
}
details#av-dobras-details .table th:first-child,
details#av-dobras-details .table td:first-child{
  padding-left:10px;
  text-align:left;
}
details#av-dobras-details .table th:last-child,
details#av-dobras-details .table td:last-child{
  padding-right:10px;
}
.collapse-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}
.collapse-chevron svg{width:18px;height:18px}
.collapse[open] .collapse-chevron{transform:rotate(180deg)}

@media (max-width: 480px){
  .collapse-summary{flex-wrap:wrap;align-items:flex-start;justify-content:flex-start}
  .collapse-summary > span{min-width:0;max-width:100%}
  .collapse-summary > span:first-child{flex:1 1 100%;overflow-wrap:anywhere;word-break:break-word}
  .collapse-summary > .collapse-chevron{margin-left:auto}
}

.timer-panel{
  position:relative;
  overflow:hidden;
}
.timer-panel:before{
  content:'';
  position:absolute;
  inset:0;
  background-image:url('/LOGO.png');
  background-size:160px 160px;
  background-repeat:no-repeat;
  background-position:center;
  opacity:.12;
  filter:grayscale(1);
  pointer-events:none;
}
.timer-panel > *{position:relative;z-index:1}

.timer-value{
  font-size:52px;
  font-weight:900;
  letter-spacing:1px;
  text-align:center;
  padding:14px 0;
}

.rest-mini{
  position:fixed;
  right:16px;
  bottom:16px;
  display:none;
  z-index:1100;
}
.rest-mini[aria-hidden="false"]{display:block}

body.run-mode main.container{padding:0 !important}
body.run-mode .container{max-width:none !important}
body.run-mode header.topbar{position:relative;z-index:1200}
body.run-mode .container:before,
body.post-run .container:before{display:none}
body.run-mode #mapWrap{
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:100vh;
  min-height:100vh;
  bottom:auto;
  z-index:50;
}

body.post-run main.container{padding:0 !important}
body.post-run .container{max-width:none !important}
body.post-run header.topbar{position:relative;z-index:1200}
body.post-run #mapWrap{
  position:fixed;
  left:0;
  right:0;
  top:var(--run-top, 0px);
  height:calc(100vh - var(--run-top, 0px));
  min-height:calc((var(--vh, 1vh) * 100) - var(--run-top, 0px));
  bottom:auto;
  z-index:50;
}

body.run-mode #sessaoCard,
body.run-mode #saveCard,
body.run-mode #configDetails,
body.run-mode #statusBox,
body.run-mode #evolBox,
body.run-mode #runTopControls,
body.run-mode #runKpis{
  display:none !important;
}

body.post-run #sessaoCard,
body.post-run #saveCard,
body.post-run #configDetails,
body.post-run #runTopControls,
body.post-run #runKpis{
  display:none !important;
}

body.post-run #runLeftCol{display:none !important}

#postRunPanel{
  position:fixed;
  left:50%;
  right:auto;
  bottom:12px;
  z-index:1300;
  width:calc(100% - 24px);
  max-width:720px;
  margin:0;
  transform:translateX(-50%);
  display:none;
  background:rgba(0,0,0,.78);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}

body.post-run #postRunPanel{display:block}

#postRunPanel .post-title{font-weight:900;font-size:18px;margin:0 0 8px 0}
#postRunPanel .post-muted{color:var(--muted);font-size:13px}
#postRunPanel .post-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
#postRunPanel .post-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
#postRunPanel .post-row .field{min-width:220px;flex:1}
#postRunPanel .post-actions .btn{font-size:18px}
#postRunPanel #btnSave2{
  background:#f28c18;
  border-color:#f28c18;
  color:#fff;
}
#postRunPanel #btnSave2 .icon-inline,
#postRunPanel #btnSave2 .icon-inline svg,
#postRunPanel #btnSave2 .icon-inline path{
  color:#fff;
  fill:#fff;
  stroke:#fff;
}
#postRunPanel #btnExitRun{
  background:#e54848;
  border-color:#e54848;
  color:#fff;
}
#postRunPanel #btnExitRun .icon-inline,
#postRunPanel #btnExitRun .icon-inline svg,
#postRunPanel #btnExitRun .icon-inline path{
  color:#fff;
  fill:#fff;
  stroke:#fff;
}

body.run-mode #map{
  height:100% !important;
  border-radius:0 !important;
}

body.post-run #map{
  height:100% !important;
  border-radius:0 !important;
}

body.print-mode #mapWrap{
  top:0 !important;
}

#mapWrap{position:relative}

#runOverlay{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  padding-bottom:calc(18px + env(safe-area-inset-bottom));
  background:linear-gradient(to bottom, rgba(0,0,0,.35), rgba(0,0,0,.05), rgba(0,0,0,.35));
  z-index:500;
}
body.run-mode #runOverlay{display:flex}

#runOverlay,
#shareOverlay{
  color:#ffffff;
}

#runOverlay .overlay-inner{
  width:100%;
  max-width:520px;
  text-align:center;
}

#runOverlay .overlay-avatar{
  display:flex;
  justify-content:center;
  margin-bottom:14px;
}

#runOverlay .overlay-avatar img{
  width:64px;
  height:64px;
  border-radius:999px;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
}

#runOverlay .overlay-time{
  font-size:76px;
  font-weight:800;
  letter-spacing:.5px;
  line-height:1.1;
}

#runOverlay .overlay-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:18px;
}

#runOverlay .overlay-stat{
  background:rgba(37,150,190,.38);
  border:1px solid rgba(37,150,190,.7);
  border-radius:16px;
  padding:14px 12px;
}

#runOverlay .overlay-label{
  color:rgba(255,255,255,.85);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
}

#runOverlay .overlay-value{
  font-size:26px;
  font-weight:800;
  margin-top:6px;
}

#runOverlay .overlay-actions{
  margin-top:18px;
  display:flex;
  justify-content:center;
  gap:10px;
}

@media (max-height: 700px){
  #runOverlay{
    align-items:flex-start;
    overflow-y:auto;
  }
  #runOverlay .overlay-inner{
    margin-top:12px;
    margin-bottom:calc(12px + env(safe-area-inset-bottom));
  }
  #runOverlay .overlay-time{font-size:64px;}
  #runOverlay .overlay-actions{margin-top:12px;}
}

#runOverlay .btn-small{
  padding:10px 12px;
  font-size:14px;
}

#btnResume2,
#btnStop2{
  background:#03cafe;
  border:1px solid #2596be;
  color:#fff;
}
#btnResume2 .icon-inline,
#btnStop2 .icon-inline{
  color:#fff;
}
#btnResume2 .icon-inline svg,
#btnStop2 .icon-inline svg{
  fill:currentColor;
  stroke:currentColor;
}
#btnResume2:hover,
#btnStop2:hover{
  background:#b85f00;
}

#shareCard{display:none}
body.share-ready #shareCard{display:block}

#shareBg{
  position:absolute;
  inset:0;
  display:none;
  background-size:cover;
  background-position:center;
  z-index:1;
}

#shareBg::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.04) 40%, rgba(0,0,0,0.15) 100%);
  z-index:2;
  pointer-events:none;
}

#mapWrap.share-has-bg #shareBg{display:block}

#mapWrap.share-layout #map{
  position:relative;
  z-index:2;
  background:transparent !important;
}

#mapWrap.share-has-bg .leaflet-tile-pane{
  opacity:.22;
}

#mapWrap.share-layout .leaflet-overlay-pane,
#mapWrap.share-layout .leaflet-marker-pane{
  opacity:1;
}

#shareOverlay{
  position:absolute;
  inset:0;
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding:16px;
  padding-top:40px;
  z-index:600;
  pointer-events:none;
}

#mapWrap.share-layout #shareOverlay{display:flex}

#shareShade{
  position:absolute;
  inset:0;
  display:none;
  z-index:520;
  pointer-events:none;
  background:linear-gradient(135deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.50) 40%, rgba(0,0,0,0) 75%);
}

#mapWrap.share-layout #shareShade{display:block}

#shareOverlay .share-top{
  width:100%;
  max-width:560px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:20px;
  text-align:center;
}

#shareOverlay .share-avatar img{
  width:80px;
  height:80px;
  border-radius:999px;
  object-fit:cover;
  border:3px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.06);
  box-shadow:0 8px 24px rgba(0,0,0,.45);
}

#shareOverlay .share-title{
  flex:1;
  min-width:0;
  text-align:center;
}

#shareOverlay .share-meta{color:rgba(255,255,255,.88);font-size:14px;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

#shareOverlay .share-kpis{
  margin-left:0;
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:14px;
  margin-top:8px;
}

#shareOverlay .share-kpi-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}

#shareOverlay .share-kpi-label{
  font-size:12px;
  color:rgba(255,255,255,.75);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.05em;
}

#shareOverlay .share-kpi-value{
  background:rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:12px 16px;
  font-size:18px;
  font-weight:700;
  color:#ffffff;
  width:100%;
  text-align:center;
}

@media (max-width: 520px){
  #shareOverlay{padding:14px;padding-top:30px}
  #shareOverlay .share-top{gap:16px;max-width:100%}
  #shareOverlay .share-kpis{margin-left:0;width:100%;grid-template-columns:1fr}
  #shareOverlay .share-title{width:100%}
  #shareOverlay .share-title .t1{font-size:28px}
}

body.print-mode header.topbar{display:none !important}
body.print-mode #postRunPanel{display:none !important}
body.print-mode .leaflet-control-container{display:none !important}

/* Esconder botões e seções não utilizadas apenas da tela inicial de corrida */
#runTopControls #btnStop{display:none !important}
#runKpis{display:none !important}
#saveCard{display:none !important}

#printExit{
  position:fixed;
  right:12px;
  bottom:12px;
  z-index:1400;
  display:none;
}
body.print-mode #printExit{display:block}

body.print-mode #printExit{
  color:var(--brand);
  font-weight:800;
}
body.print-mode #printExit .icon-inline,
body.print-mode #printExit .icon-inline svg{
  color:var(--brand);
}

body.print-mode #printExit .icon-inline svg,
body.print-mode #printExit .icon-inline svg *{
  fill:currentColor !important;
  stroke:currentColor !important;
}

#shareOverlay .share-title .t1{font-weight:900;font-size:32px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.3px}
#shareOverlay .share-title .t2{color:rgba(255,255,255,.88);font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-weight:500}


.rest-mini-inner{
  min-width:180px;
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  background:rgba(30,30,30,.98);
  position:relative;
  overflow:hidden;
}
.rest-mini-inner:before{
  content:'';
  position:absolute;
  inset:0;
  background-image:url('/LOGO.png');
  background-size:80px 80px;
  background-repeat:no-repeat;
  background-position:right 10px center;
  opacity:.10;
  filter:grayscale(1);
  pointer-events:none;
}
.rest-mini-text{position:relative;z-index:1;color:var(--text);font-weight:700;font-size:13px}

/* Olhinho form improvements */
.collapse-body form{max-width:100%;overflow:hidden}
.collapse-body .field{margin-bottom:0}
.collapse-body .field label{font-weight:600;font-size:14px}
.collapse-body .field input,
.collapse-body .field select{width:100%}

.td-exec-bgcard{position:relative;overflow:hidden;border-radius:12px}
.td-exec-bgcard-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.42;filter:saturate(1.05) contrast(1.05);transition:opacity .35s ease}
.td-exec-bgcard-video.is-fading{opacity:.05}
.td-exec-bgcard-gradient{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg, rgba(0, 0, 0, 0.527) 0%, rgba(0,0,0,.48) 45%, rgba(0,0,0,.10) 100%)}
.td-exec-bgcard-content{position:relative;z-index:2}

body.theme-day .td-exec-bgcard-video{opacity:.8;filter:saturate(1.05) contrast(1.02)}
body.theme-day .td-exec-bgcard-gradient{background:linear-gradient(90deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.72) 45%, rgba(255,255,255,.10) 100%)}
body.theme-day .td-exec-bgcard-content,
body.theme-day .td-exec-bgcard-content label{color:var(--text)}
body.theme-day .td-exec-bgcard-content input,
body.theme-day .td-exec-bgcard-content select{color:var(--text)}
body.theme-day .td-exec-bgcard-content input::placeholder{color:rgba(0,0,0,.52)}

.bg-secondary{background:rgba(255,255,255,.04)}
.bg-info{background:rgba(33,150,243,.12);border:1px solid rgba(33,150,243,.25)}
.text-secondary{color:var(--muted)}

/* Professor olhinho improvements */
.kpi{display:flex;flex-wrap:wrap;gap:8px;max-width:100%;overflow:hidden}
.pill{display:inline-flex;align-items:center;white-space:normal;word-break:break-word;max-width:100%}
.field{max-width:100%}
.field input,
.field select{width:100%;max-width:100%}

/* Filtro de pesquisa de alunos */
#search-aluno,
#search-pagamento-aluno {
  transition: border-color 0.2s;
}

#search-aluno:focus,
#search-pagamento-aluno:focus {
  border-color: var(--primary);
  outline: none;
}

/* Linhas clicáveis da tabela */
.table tbody tr {
  transition: background-color 0.2s;
}

.table tbody tr:hover {
  background-color: rgba(255, 133, 0, 0.1);
}

.table tbody tr[data-clickable] {
  cursor: pointer;
}

/* Botões de ação */
.btn-danger {
  transition: opacity 0.2s;
}

.btn-danger:hover {
  opacity: 0.9;
}

/* Layout responsivo dos botões de ação */
.table-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

@media (min-width: 768px) {
  .table-actions {
    flex-wrap: nowrap;
  }
}

/* Modal de confirmação */
.modal-overlay {
  display: none !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: rgba(0, 0, 0, 0.85) !important;
  z-index: 99999 !important;
  align-items: center !important;
  justify-content: center !important;
  overflow-y: auto !important;
  padding: 20px !important;
}

.modal-overlay.active {
  display: flex !important;
}

.modal-content {
  background: var(--panel);
  padding: 24px;
  border-radius: 12px;
  max-width: 500px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
  border: 2px solid var(--border);
  position: relative;
  margin: auto;
}

.modal-option {
  display: block;
  padding: 12px;
  border: 2px solid var(--border);
  border-radius: 6px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s;
}

.modal-option:hover {
  border-color: var(--primary);
  background: rgba(255, 133, 0, 0.1);
}

.modal-option.danger {
  border-color: var(--danger);
}

.modal-option.danger:hover {
  background: rgba(220, 38, 38, 0.15);
}



/* Modais de instalação e tutorial */
.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.85);
  z-index: 99999;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  padding: 20px;
}

.modal[aria-hidden="false"] {
  display: flex !important;
}

.modal-panel {
  background: var(--panel);
  padding: 24px;
  border-radius: 12px;
  max-width: 600px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
  border: 2px solid var(--border);
  position: relative;
}

.modal-title {
  margin: 0 0 12px 0;
  font-size: 20px;
  color: var(--text);
}

.modal-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ====================================================================
   OFFLINE MODE - Indicadores e Estilos
   ==================================================================== */

/* Indicador de status online/offline */
.offline-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  transition: all 0.3s ease;
  white-space: nowrap;
  flex-shrink: 0;
}

.offline-indicator.online {
  background: rgba(40, 167, 69, 0.15);
  color: #28a745;
  border: 1px solid rgba(40, 167, 69, 0.3);
}

.offline-indicator.offline {
  background: rgba(255, 193, 7, 0.15);
  color: #ffc107;
  border: 1px solid rgba(255, 193, 7, 0.3);
  animation: pulse 2s infinite;
}

.offline-indicator::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

/* Badge de execuções pendentes */
.offline-badge {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: #dc3545;
  color: #fff;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
}

/* Botão de sincronização */
.sync-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.sync-button:hover {
  background: var(--primary-dark);
  transform: translateY(-1px);
}

.sync-button:active {
  transform: translateY(0);
}

.sync-button[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none !important;
}

.sync-button .icon-inline {
  animation: none;
}

.sync-button.syncing .icon-inline {
  animation: spin 1s linear infinite;
}

/* Banner de modo offline */
.offline-banner {
  display: none;
  background: rgba(255, 193, 7, 0.15);
  border: 1px solid rgba(255, 193, 7, 0.3);
  color: #ffc107;
  padding: 12px 16px;
  border-radius: 8px;
  margin-bottom: 16px;
  align-items: center;
  gap: 10px;
}

.offline-banner.show {
  display: flex;
}

.offline-banner .icon-inline {
  flex-shrink: 0;
}

/* Notificação de sincronização */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideOutRight {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(100%);
  }
}

/* Animação de pulsação para indicador offline */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}

/* Animação de rotação para ícone de sincronização */
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Estilo para formulários offline */
.form-offline-mode {
  position: relative;
}

.form-offline-mode::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 193, 7, 0.05);
  border: 2px dashed rgba(255, 193, 7, 0.3);
  border-radius: 8px;
  pointer-events: none;
}

/* Cache status indicator */
.cache-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--muted);
  padding: 4px 8px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 4px;
}

.cache-status.cached {
  color: #28a745;
}

.cache-status.cached::before {
  content: '●';
  font-size: 16px;
}

/* Responsivo */
@media (max-width: 640px) {
  .offline-indicator {
    font-size: 10px;
    padding: 4px 8px;
    gap: 3px;
  }
  
  .offline-indicator::before {
    width: 5px;
    height: 5px;
  }
  
  .offline-badge {
    min-width: 16px;
    height: 16px;
    font-size: 9px;
  }
  
  .sync-button {
    font-size: 13px;
    padding: 7px 12px;
  }
}

/* Em telas muito pequenas, esconde o texto e mostra só o ponto */
@media (max-width: 380px) {
  .offline-indicator span {
    display: none;
  }
  
  .offline-indicator {
    padding: 6px;
    gap: 0;
  }
  
  .offline-indicator::before {
    width: 8px;
    height: 8px;
  }
}


#tutorialModal .modal-panel {
  max-width: 95vw;
  width: 95%;
}

#tutorialModal img {
  width: 100%;
  height: auto;
  max-width: 100%;
}

body.td-treino{
  -webkit-user-select:none;
  user-select:none;
}

body.td-treino input,
body.td-treino textarea,
body.td-treino select{
  -webkit-user-select:auto;
  user-select:auto;
}

.td-watermark{
  position:fixed;
  inset:-40vh -40vw;
  z-index:99998;
  pointer-events:none;
  display:flex;
  flex-direction:column;
  justify-content:space-around;
  align-items:center;
  opacity:0.22;
  transform:rotate(-18deg);
  gap:18px;
}

.td-watermark-line{
  width:140vw;
  text-align:center;
  font-size:14px;
  letter-spacing:0.5px;
  color:rgba(255,255,255,0.55);
  text-shadow:0 1px 2px rgba(0,0,0,0.35);
  white-space:nowrap;
}

.td-capture-warning{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  background:rgba(0,0,0,0.88);
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.td-capture-warning-panel{
  background:var(--panel);
  border:2px solid var(--border);
  border-radius:14px;
  max-width:520px;
  width:100%;
  padding:22px;
  box-shadow:0 10px 40px rgba(0,0,0,0.85);
  text-align:center;
}

.td-capture-warning-title{
  font-size:18px;
  font-weight:900;
  margin:0;
}

.td-capture-warning-text{
  margin-top:10px;
  font-size:16px;
  line-height:1.4;
}

.td-capture-warning-sub{
  margin-top:8px;
  font-size:13px;
  color:var(--muted);
}

.td-capture-warning-actions{
  margin-top:14px;
  display:flex;
  justify-content:center;
}

body.theme-day{
  --bg:#ffffff;
  --panel:#ffffff;
  --text:#111111;
  --muted:#4b5563;
  --border:rgba(0,0,0,.12);
  --accent:#2596be;
}

body.theme-day{
  background:var(--bg);
  color:var(--text);
}

body.theme-day .topbar{
  background:linear-gradient(135deg, #1e3a8a 0%, #2596be 100%);
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}

body.theme-day .topbar,
body.theme-day .topbar .brand,
body.theme-day .topbar .brand-name,
body.theme-day .topbar .brand-toggle-icon{
  color:#ffffff;
}

body.theme-day .navlink{
  border:1px solid rgba(37,150,190,.25);
  background:
    linear-gradient(145deg, rgba(255,255,255,.95), rgba(240,248,255,.98)),
    linear-gradient(to bottom, rgba(37,150,190,.10), transparent 45%);
  box-shadow:
    0 4px 12px rgba(0,0,0,.12),
    0 2px 4px rgba(0,0,0,.08),
    inset 0 1px 0 rgba(255,255,255,.85),
    inset 0 -1px 0 rgba(0,0,0,.10);
}

body.theme-day .navlink::before{
  background:radial-gradient(ellipse at top, rgba(37,150,190,.14), transparent 60%);
}

body.theme-day .navlink:hover{
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(230,244,255,.98)),
    linear-gradient(to bottom, rgba(37,150,190,.18), transparent 55%);
  border-color:rgba(37,150,190,.45);
  box-shadow:
    0 0 20px rgba(37,150,190,.18),
    0 4px 12px rgba(0,0,0,.14),
    inset 0 2px 0 rgba(255,255,255,.9),
    inset 0 -2px 0 rgba(0,0,0,.10);
}

body.theme-day .navlabel{
  color:var(--primary);
  text-shadow:none;
}

body.theme-day #postRunPanel{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(37,150,190,.18);
  color:#111111;
}
body.theme-day #postRunPanel .post-muted{color:rgba(0,0,0,.62)}

body.theme-day #shareOverlay,
body.theme-day #runOverlay{
  color:#ffffff;
}

body.theme-day #shareOverlay .share-meta,
body.theme-day #runOverlay .overlay-label{
  color:rgba(255,255,255,.86);
}

body.theme-day #shareOverlay,
body.theme-day #runOverlay{
  text-shadow:0 2px 12px rgba(0, 0, 0, 0.897);
}

body.theme-day #shareOverlay .share-kpis .pill,
body.theme-day #runOverlay .overlay-stat{
  background:rgba(37,150,190,.38);
  border-color:rgba(37,150,190,.7);
}

body.theme-day .card{
  background:rgba(255,255,255,.75);
}

body.theme-day .collapse{
  background:rgba(37,150,190,.04);
  border-color:rgba(37,150,190,.18);
}

body.theme-day .collapse-summary{
  color:var(--text);
}

body.theme-day .kpi .pill{
  background:rgba(37,150,190,.06);
  border-color:rgba(37,150,190,.18);
  color:var(--muted);
}

body.theme-day details.collapse[style*="background-image:linear-gradient(rgba(0,0,0"],
body.theme-day .card[style*="background-image:linear-gradient(rgba(0,0,0"]{
  background-image:none !important;
  background-color:rgba(255,255,255,.92) !important;
  border-color:rgba(37,150,190,.18);
}

body.theme-day details.collapse[style*="/per%C3%ADmetro.png"]{
  background-image:
    linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.86)),
    url('/per%C3%ADmetro.png') !important;
  background-repeat:no-repeat,no-repeat !important;
  background-position:center,center !important;
  background-size:100% 100%,clamp(180px, 40vw, 360px) auto !important;
}

body.theme-day details.collapse[style*="/dobrascutaneas.png"]{
  background-image:
    linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.86)),
    url('/dobrascutaneas.png') !important;
  background-repeat:no-repeat,no-repeat !important;
  background-position:center,center 60% !important;
  background-size:100% 100%,clamp(180px, 22vw, 260px) auto !important;
}

body.theme-day .card[style*="/divis%C3%A3odebobras.png"]{
  background-image:
    linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.86)),
    url('/divis%C3%A3odebobras.png') !important;
  background-repeat:no-repeat,no-repeat !important;
  background-position:center,center 55% !important;
  background-size:100% 100%,clamp(220px, 32vw, 420px) auto !important;
}

body.theme-day .accordion{
  background:rgba(37,150,190,.06);
  border-color:rgba(37,150,190,.18);
}

body.theme-day .accordion-summary{
  background:linear-gradient(145deg, rgba(255,255,255,.96), rgba(230,244,255,.98));
}

body.theme-day .ex-accordion{
  background:rgba(37,150,190,.06);
}

body.theme-day .ex-accordion .accordion-summary{
  background:linear-gradient(145deg, rgba(255,255,255,.96), rgba(230,244,255,.98));
}

body.theme-day .badge-done-date{
  color:var(--primary);
}

body.theme-day .chat-thread{
  background:rgba(0,0,0,.03);
}

body.theme-day .btn-exec-spotlight::after{
  background:linear-gradient(90deg, transparent, rgba(3,202,254,.35), transparent);
}

body.theme-day .btn-exec-spotlight{
  animation:exec-pulse-day 2.6s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(3,202,254,.35);
}

@keyframes exec-pulse-day{
  0%{box-shadow:0 0 0 0 rgba(3,202,254,.28)}
  60%{box-shadow:0 0 0 10px rgba(3,202,254,0)}
  100%{box-shadow:0 0 0 0 rgba(3,202,254,0)}
}

@media print{
  body.td-treino *{
    display:none !important;
  }
}
