:root{
  --bg:#f4f3f1;
  --bg-soft:#faf9f7;
  --card:#ffffff;
  --text:#18181b;
  --text-2:#303036;
  --muted:#71717a;
  --line:#e8e5e1;
  --line-strong:#d9d4ce;
  --primary:#18181b;
  --primary-2:#2b2b30;
  --accent:#c62828;
  --accent-dark:#981b1b;
  --accent-soft:#fff0f0;
  --success:#19713a;
  --success-bg:#eaf8ef;
  --danger:#a92323;
  --danger-bg:#fff0f0;
  --warning:#906000;
  --warning-bg:#fff7dc;
  --pending:#2859a6;
  --pending-bg:#edf4ff;
  --radius:18px;
  --radius-sm:12px;
  --shadow:0 10px 28px rgba(24,24,27,.055);
  --shadow-hover:0 16px 40px rgba(24,24,27,.10);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 10% 0,rgba(198,40,40,.045),transparent 28rem),
    linear-gradient(180deg,#f8f7f5 0,#f4f3f1 22rem,#f4f3f1 100%);
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.45;
}
a{color:inherit}
button,input,select,textarea{font:inherit}

/* Cabeçalho */
.topbar{
  min-height:78px;
  padding:12px max(18px,calc((100vw - 1220px)/2));
  background:linear-gradient(125deg,#101012 0%,#1d1d21 68%,#251718 100%);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid rgba(255,255,255,.06);
  box-shadow:0 8px 30px rgba(0,0,0,.16);
  position:relative;
  z-index:20;
}
.topbar:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  opacity:.82;
}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-mark{
  width:46px;height:46px;
  border-radius:14px;
  display:grid;place-items:center;
  font-weight:950;
  letter-spacing:-.06em;
  background:linear-gradient(145deg,#e13b3b,#a91919);
  color:#fff;
  box-shadow:0 8px 22px rgba(198,40,40,.30),inset 0 1px rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.13);
}
.brand strong,.brand small{display:block}
.brand strong{font-size:16px;letter-spacing:.01em}
.brand small{color:#aaaab2;margin-top:1px;font-size:12px}
.user-box{text-align:right;font-size:13px;color:#c8c8cf}
.user-box span{display:block;font-weight:800;color:#fff;margin-bottom:2px}
.link-light{color:#c8c8cf;text-decoration:none;transition:.18s ease}
.link-light:hover{color:#fff}

/* Navegação */
.nav{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  display:flex;
  gap:5px;
  overflow:visible;
  flex-wrap:wrap;
  padding:8px max(14px,calc((100vw - 1220px)/2));
  scrollbar-width:none;
  position:sticky;
  top:0;
  z-index:15;
  box-shadow:0 4px 16px rgba(24,24,27,.035);
}
.nav::-webkit-scrollbar{display:none}
.nav a,.nav span{
  white-space:nowrap;
  padding:9px 13px;
  text-decoration:none;
  border-radius:10px;
  font-weight:780;
  font-size:13px;
  border:1px solid transparent;
  transition:.18s ease;
}
.nav a:hover{background:#f2efec;color:#111}
.nav a.active{
  background:#1b1b1f;
  color:#fff;
  box-shadow:0 6px 14px rgba(24,24,27,.14);
}
.nav-disabled{color:#b1acaa;cursor:default}

.container{max-width:1220px;margin:0 auto;padding:30px 18px 48px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.page-head.compact{margin-bottom:22px}
.page-head h1{margin:0;font-size:clamp(27px,4vw,38px);letter-spacing:-.035em;line-height:1.08}
.page-head p{margin:7px 0 0;color:var(--muted);font-size:14px}

/* Cards e indicadores */
.grid-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.grid-cards.five-cards{grid-template-columns:repeat(5,1fr)}
.card{
  background:rgba(255,255,255,.96);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:19px;
  box-shadow:var(--shadow);
}
a.card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
a.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:#ddd6d0}
.stat{position:relative;overflow:hidden;min-height:112px}
.stat:before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--accent),#7d1818);
}
.stat small{color:var(--muted);font-weight:760;font-size:12px;letter-spacing:.01em}
.stat strong{display:block;font-size:34px;line-height:1;margin-top:13px;letter-spacing:-.04em}
.stat strong.stat-date{font-size:22px}
.section-title{margin:32px 0 11px;font-size:20px;letter-spacing:-.02em}
.section-subtitle{margin:-5px 0 14px;color:var(--muted);font-size:13px}

/* Botões */
.btn{
  border:1px solid transparent;
  border-radius:12px;
  min-height:42px;
  padding:10px 16px;
  cursor:pointer;
  font-weight:820;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  background:linear-gradient(180deg,#242429,#151518);
  color:#fff;
  box-shadow:0 6px 14px rgba(24,24,27,.12);
  transition:transform .14s ease,box-shadow .14s ease,filter .14s ease;
}
.btn:hover{filter:brightness(1.08);box-shadow:0 9px 20px rgba(24,24,27,.18)}
.btn:active{transform:translateY(1px)}
.btn-secondary{background:#fff;color:var(--text);border-color:var(--line-strong);box-shadow:none}
.btn-secondary:hover{background:#f8f6f3}
.btn-danger{background:linear-gradient(180deg,#c72e2e,#951b1b);box-shadow:0 6px 14px rgba(169,35,35,.16)}
.btn-sm{min-height:34px;padding:7px 10px;font-size:12px;border-radius:10px}
.actions{display:flex;gap:8px;flex-wrap:wrap}

/* Tabelas */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
table{border-collapse:separate;border-spacing:0;width:100%;min-width:760px}
th,td{padding:14px 15px;border-bottom:1px solid #eeeae6;text-align:left;vertical-align:middle}
th{color:#7a7471;font-size:11px;text-transform:uppercase;letter-spacing:.075em;background:#faf9f7;font-weight:850}
tbody tr{transition:background .12s ease}
tbody tr:hover{background:#fcfbfa}
tr:last-child td{border-bottom:0}

.badge{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850;display:inline-block;border:1px solid transparent}
.badge-ativo{background:var(--success-bg);color:var(--success);border-color:#c9ebd4}
.badge-inativo{background:var(--danger-bg);color:var(--danger);border-color:#f3cece}
.badge-pendente{background:var(--pending-bg);color:var(--pending);border-color:#d7e5fb}

/* Formulários */
.filters{display:grid;grid-template-columns:1fr 180px auto;gap:10px;margin-bottom:14px}
.filters.graduation-filter{grid-template-columns:1fr auto}
input,select,textarea{
  width:100%;
  min-height:43px;
  border:1px solid var(--line-strong);
  background:#fff;
  color:var(--text);
  border-radius:12px;
  padding:10px 12px;
  outline:none;
  box-shadow:inset 0 1px 1px rgba(24,24,27,.02);
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
textarea{min-height:96px;resize:vertical}
input::placeholder,textarea::placeholder{color:#aaa5a1}
input:focus,select:focus,textarea:focus{border-color:#9b7777;box-shadow:0 0 0 4px rgba(198,40,40,.08);background:#fff}
label{display:block;font-weight:800;margin-bottom:6px;font-size:12px;color:#39363a}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.form-grid .full{grid-column:1/-1}
.form-actions{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}
.helper,.field-note{color:var(--muted);font-size:12px;margin-top:8px}.field-note{display:block;margin-top:5px}

/* Alertas */
.alert{padding:13px 15px;border-radius:13px;margin-bottom:17px;font-weight:700;border:1px solid transparent;box-shadow:0 4px 14px rgba(24,24,27,.035)}
.alert-sucesso{background:var(--success-bg);color:var(--success);border-color:#ccebd5}
.alert-erro{background:var(--danger-bg);color:var(--danger);border-color:#f4cccc}
.alert-aviso{background:var(--warning-bg);color:var(--warning);border-color:#efdfac}
.empty{color:var(--muted);text-align:center;padding:28px}
.muted{color:var(--muted)}

/* Login e autocadastro */
.login-shell,.public-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:22px;
  background:
    radial-gradient(circle at 22% 10%,rgba(198,40,40,.22),transparent 26rem),
    radial-gradient(circle at 85% 85%,rgba(255,255,255,.055),transparent 26rem),
    linear-gradient(145deg,#0e0e10,#202024 68%,#181011);
}
.login-card,.public-card{
  background:rgba(255,255,255,.985);
  border:1px solid rgba(255,255,255,.45);
  border-radius:24px;
  padding:28px;
  box-shadow:0 28px 80px rgba(0,0,0,.35);
}
.login-card{width:min(440px,100%)}
.public-card{width:min(900px,100%)}
.login-card h1{margin:0 0 7px;letter-spacing:-.03em}
.login-card p{color:var(--muted);margin:0 0 22px}
.login-card .field{margin-bottom:14px}
.login-card .btn{width:100%;margin-top:5px}
.login-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:18px 0}
.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--line);flex:1}

.list-clean{list-style:none;padding:0;margin:0}
.list-clean li{padding:13px 0;border-bottom:1px solid var(--line)}
.list-clean li:last-child{border-bottom:0}
.footer{max-width:1220px;margin:0 auto;padding:0 18px 30px;color:#8a8581;display:flex;justify-content:space-between;font-size:12px}
.hp-field{position:absolute!important;left:-9999px!important;opacity:0!important}
.section-separator{border-top:1px solid var(--line);padding-top:19px;margin-top:5px}
.section-separator strong,.section-separator small{display:block}
.section-separator small{color:var(--muted);margin-top:4px}
.checkbox-row label{display:flex;align-items:flex-start;gap:10px;font-weight:600}
.checkbox-row input{width:auto;min-height:0;margin-top:3px}

/* Aprovações */
.approval-grid{display:grid;gap:16px}
.approval-card{overflow:hidden}
.approval-card h2{margin:0 0 8px;letter-spacing:-.02em}
.approval-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:17px;border-bottom:1px solid var(--line)}
.approval-head small{color:var(--muted)}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:17px 0}
.detail-grid .full{grid-column:1/-1}
.detail-grid small,.detail-grid strong{display:block}
.detail-grid small{color:var(--muted);margin-bottom:3px;font-size:12px}
.approval-form{border-top:1px solid var(--line);padding-top:17px}

/* Área do aluno */
.student-hero{
  background:
    linear-gradient(115deg,rgba(198,40,40,.13),transparent 38%),
    linear-gradient(135deg,#121214,#28282d);
  color:#fff;
  border-radius:24px;
  padding:26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:16px;
  box-shadow:0 18px 44px rgba(24,24,27,.18);
  border:1px solid rgba(255,255,255,.07);
}
.student-hero h1{font-size:clamp(32px,7vw,54px);margin:3px 0;letter-spacing:-.05em}
.student-hero p{margin:0;color:#c7c7ce}
.student-hero.pending-hero{justify-content:flex-start}
.hero-icon{font-size:42px}
.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:10px;color:#b8b8c0;font-weight:850}
.eyebrow.dark{color:var(--muted)}
.degree-strip,.mini-degree-strip{display:flex;gap:7px}
.degree{width:10px;height:44px;border-radius:3px;background:#55555c;border:1px solid rgba(255,255,255,.16)}
.degree.filled{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.mini-degree-strip{gap:4px;margin-bottom:4px}
.mini-degree-strip .degree{width:8px;height:22px;background:#d6d2cf;border:0;border-radius:2px}
.mini-degree-strip .degree.filled{background:var(--accent)}
.mini-degree-strip.large .degree{height:32px;width:10px}
.student-stats{margin-top:16px}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{display:grid;grid-template-columns:18px 1fr;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}
.timeline li:last-child{border-bottom:0}
.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);margin-top:5px;box-shadow:0 0 0 4px var(--accent-soft)}
.timeline strong,.timeline small{display:block}
.timeline small{color:var(--muted);margin-top:3px}
.timeline p{margin:7px 0 0;color:#49454a}
.rule-card{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#fff5f5;border:1px solid #f2d4d4;color:#7e2626;padding:13px 15px;border-radius:14px;margin-bottom:14px}
.graduation-current{display:flex;align-items:center;justify-content:space-between;gap:14px}
.graduation-current small,.graduation-current strong{display:block}
.graduation-current strong{font-size:20px;margin-top:4px}

/* Turmas */
.class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.class-card h2,.open-class-card h2,.walkin-card h2{margin:0 0 6px;letter-spacing:-.025em}
.class-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}
.class-count{font-size:31px;text-align:right;font-weight:850;letter-spacing:-.04em;color:var(--accent)}
.class-count small{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.class-meta{display:grid;gap:7px;margin:15px 0;color:#4d4845;font-size:14px}
.class-inactive{opacity:.64;filter:grayscale(.2)}
.weekday-grid{display:flex;gap:8px;flex-wrap:wrap}
.check-pill{margin:0}
.check-pill input{position:absolute;opacity:0;pointer-events:none}
.check-pill span{display:inline-flex;padding:9px 12px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;cursor:pointer;font-size:12px;font-weight:760;transition:.15s ease}
.check-pill input:checked+span{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 5px 12px rgba(24,24,27,.13)}
.student-select-tools{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin:14px 0}
.student-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:480px;overflow:auto;padding-right:4px}
.student-check{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff;cursor:pointer;margin:0;transition:.14s ease}
.student-check:hover{border-color:#cfc8c2;background:#fcfbfa}
.student-check input{width:18px;height:18px;min-height:0;flex:none;accent-color:var(--accent)}
.student-check strong,.student-check small{display:block}
.student-check small{color:var(--muted);margin-top:2px}
.open-class-card{display:grid;gap:16px}
.open-class-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end}

/* Chamada */
.attendance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.attendance-summary>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 16px;box-shadow:0 4px 15px rgba(24,24,27,.035)}
.attendance-summary strong{display:block;font-size:29px;letter-spacing:-.04em}
.attendance-summary small{color:var(--muted);font-weight:740;font-size:12px}
.attendance-tip{background:#f2f6fb;color:#29445e;border:1px solid #d9e3ee;padding:12px 14px;border-radius:13px;margin-bottom:14px}
.attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.attendance-form{margin:0}
.attendance-person{
  width:100%;min-height:96px;
  border:1px solid var(--line-strong);
  border-radius:16px;
  padding:12px;
  text-align:left;
  display:grid;
  grid-template-columns:44px 1fr auto;
  align-items:center;
  gap:11px;
  background:#fff;
  color:var(--text);
  font:inherit;
  cursor:pointer;
  box-shadow:0 5px 16px rgba(24,24,27,.035);
  transition:transform .08s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease;
}
.attendance-person:hover{box-shadow:0 9px 22px rgba(24,24,27,.075);border-color:#cbc4be}
.attendance-person:active{transform:scale(.985)}
.attendance-person:disabled{cursor:default}
.attendance-person.is-present{background:linear-gradient(135deg,#f0fbf3,#e5f7eb);border-color:#9edab0}
.attendance-person.is-absent{background:#fff;border-color:var(--line-strong)}
.attendance-avatar{width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#2a2a2f,#161619);color:#fff;display:grid;place-items:center;font-weight:900;font-size:17px;box-shadow:0 5px 13px rgba(24,24,27,.13)}
.is-present .attendance-avatar{background:linear-gradient(145deg,#27864b,#176636)}
.attendance-info strong,.attendance-info small{display:block}
.attendance-info small{color:var(--muted);margin-top:3px}
.attendance-state{font-size:11px;font-weight:900;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
.is-present .attendance-state{color:var(--success)}
.is-absent .attendance-state{color:#918a86}
.walkin-card,.attendance-finish{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.walkin-form{display:flex;gap:8px;min-width:min(520px,100%)}
.attendance-finish p{margin:4px 0 0}
.training-list{list-style:none;padding:0;margin:0}
.training-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.training-list li:last-child{border-bottom:0}
.training-list strong,.training-list small{display:block}
.training-list small{color:var(--muted);margin-top:3px}
.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.quick-class{text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:10px;border-left:3px solid var(--accent)}
.quick-class strong,.quick-class small{display:block}
.quick-class small{color:var(--muted);margin-top:3px}
.quick-class>span{font-weight:820;color:#4c4643;white-space:nowrap}

/* Evolução e graduação */
.evolution-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.evolution-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;box-shadow:0 5px 16px rgba(24,24,27,.035)}
.evolution-card small{display:block;color:var(--muted);font-weight:740;font-size:12px}
.evolution-card strong{display:block;margin-top:7px;font-size:23px;letter-spacing:-.035em}
.evolution-card .sub{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.progress-track{height:7px;background:#ebe7e4;border-radius:999px;overflow:hidden;margin-top:9px}
.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--accent-dark),var(--accent));border-radius:999px}
.radar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.radar-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;position:relative;overflow:hidden}
.radar-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.radar-card h3{margin:0 0 4px;font-size:17px;letter-spacing:-.02em}
.radar-card p{margin:0;color:var(--muted);font-size:13px}
.radar-metric{text-align:right}
.radar-metric strong{display:block;font-size:29px;letter-spacing:-.04em;color:#242126}
.radar-metric small{color:var(--muted);font-weight:740;font-size:11px}
.metric-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.metric-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:#f4f1ee;color:#514b47;font-size:11px;font-weight:760;border:1px solid #ebe5df}
.grade-lock{background:#faf9f7;border:1px dashed #cfc9c4;border-radius:13px;padding:14px}
.grade-lock strong,.grade-lock small{display:block}
.grade-lock small{color:var(--muted);margin-top:4px}
.history-type{display:inline-block;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:#625c58;margin-bottom:3px}
.student-evolution-note{background:#fff5f5;border:1px solid #f1d1d1;color:#7b2a2a;border-radius:13px;padding:12px 14px;margin-top:12px}
.freq-value.good{color:var(--success)}.freq-value.mid{color:var(--warning)}.freq-value.low{color:var(--danger)}
.profile-actions{display:flex;gap:8px;flex-wrap:wrap}
.graduation-table td{vertical-align:top}
.graduation-table .name-cell strong{display:block}
.graduation-table .name-cell small{display:block;color:var(--muted);margin-top:3px}
.current-belt{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.current-belt strong{font-size:15px}
.stat-mini{font-size:12px;color:var(--muted);display:block;margin-top:3px}
.history-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.history-row .badge{flex:none}

/* Pequenos refinamentos */
::selection{background:#f1b9b9;color:#311}
:focus-visible{outline:2px solid rgba(198,40,40,.55);outline-offset:2px}

@media(max-width:1000px){
  .grid-cards.five-cards{grid-template-columns:repeat(3,1fr)}
  .evolution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .radar-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .attendance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .open-class-form{grid-template-columns:1fr 1fr}
  .open-class-form>div:first-of-type{grid-column:1/-1}
  .open-class-form .btn{align-self:end}
  .compact-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .grid-cards{grid-template-columns:repeat(2,1fr)}
  .filters,.filters.graduation-filter{grid-template-columns:1fr}
  .detail-grid{grid-template-columns:1fr}
  .detail-grid .full{grid-column:auto}
  .rule-card{align-items:flex-start;flex-direction:column}
}
@media(max-width:700px){
  .class-grid{grid-template-columns:1fr}
  .student-check-grid{grid-template-columns:1fr}
  .student-select-tools{grid-template-columns:1fr 1fr}
  .student-select-tools input{grid-column:1/-1}
  .attendance-grid{grid-template-columns:1fr}
  .attendance-person{min-height:82px}
  .walkin-card,.attendance-finish{align-items:stretch;flex-direction:column}
  .walkin-form{min-width:0;width:100%;flex-direction:column}
  .attendance-finish form,.attendance-finish .btn{width:100%}
  .compact-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .topbar{min-height:68px;padding-top:10px;padding-bottom:10px}
  .brand-mark{width:42px;height:42px;border-radius:12px}
  .brand small,.user-box span{display:none}
  .user-box{font-size:12px}
  .nav{padding-top:7px;padding-bottom:7px}
  .nav a,.nav span{padding:8px 11px}
  .container{padding:22px 13px 38px}
  .grid-cards,.grid-cards.five-cards{grid-template-columns:1fr 1fr;gap:9px}
  .card{padding:15px;border-radius:15px}
  .stat{min-height:101px}
  .stat strong{font-size:28px}
  .stat strong.stat-date{font-size:18px}
  .page-head{align-items:flex-start;flex-direction:column;margin-bottom:18px}
  .page-head h1{font-size:29px}
  .page-head .actions,.page-head .btn{width:100%}
  .page-head .actions .btn{flex:1}
  .form-grid{grid-template-columns:1fr}
  .form-grid .full{grid-column:auto}
  .form-actions .btn{flex:1}
  .student-hero{align-items:flex-start;flex-direction:column;padding:21px}
  .student-hero h1{font-size:38px}
  .degree-strip .degree{height:32px}
  .graduation-current{align-items:flex-start;flex-direction:column}
  .approval-head{flex-direction:column}
  .public-card{padding:19px}
  .evolution-grid{grid-template-columns:1fr 1fr}
  .evolution-card strong{font-size:20px}
  .radar-card{grid-template-columns:1fr}
  .radar-metric{text-align:left}
  .profile-actions .btn{flex:1}
  .history-row{flex-direction:column}
  .footer{padding-left:13px;padding-right:13px;flex-direction:column;gap:5px}
}
@media(max-width:520px){
  .open-class-form{grid-template-columns:1fr}
  .open-class-form>div:first-of-type{grid-column:auto}
  .attendance-summary strong{font-size:23px}
  .attendance-summary>div{padding:10px}
  .attendance-person{grid-template-columns:40px 1fr auto;padding:10px}
  .attendance-avatar{width:40px;height:40px;border-radius:11px}
  .attendance-state{font-size:10px}
  .weekday-grid{gap:6px}.check-pill span{padding:8px 10px}
  .training-list li{align-items:flex-start}
}
@media(max-width:420px){
  .evolution-grid{grid-template-columns:1fr}
  .grid-cards,.grid-cards.five-cards{grid-template-columns:1fr 1fr}
  .stat small{font-size:11px}
  .stat strong{font-size:26px}
}

/* V1.8 - Materiais e empréstimos */
.grid-cards.four-cards{grid-template-columns:repeat(4,1fr)}
.stat-alert:before{background:linear-gradient(180deg,#d93434,#8f1717)}
.stat-alert strong{color:var(--danger)}
.stat-foot-alert{display:block;margin-top:7px;color:var(--danger);font-size:11px;font-weight:850}
.loan-filters{grid-template-columns:1fr 190px auto}
.table-sub{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.badge-item-disponivel{background:var(--success-bg);color:var(--success);border-color:#c9ebd4}
.badge-item-emprestado{background:var(--pending-bg);color:var(--pending);border-color:#d7e5fb}
.badge-item-manutencao{background:var(--warning-bg);color:var(--warning);border-color:#efdfac}
.badge-item-baixado{background:#f1f0ef;color:#77716d;border-color:#e1ddda}
.section-head-inline{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:4px}
.section-head-inline .section-title{margin-bottom:7px}
.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.inventory-card{position:relative;overflow:hidden}
.inventory-card:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--accent),#7a1616)}
.inventory-disabled{opacity:.6;filter:grayscale(.25)}
.inventory-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.item-category{display:inline-block;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:900;color:var(--muted)}
.inventory-card h3{font-size:23px;letter-spacing:-.035em;margin:12px 0 3px}
.inventory-card p{margin:0;color:#4d4845}
.inventory-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0 12px}
.inventory-meta span{background:#f8f6f4;border:1px solid var(--line);border-radius:11px;padding:9px 10px}
.inventory-meta small,.inventory-meta strong{display:block}
.inventory-meta small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}
.inventory-meta strong{font-size:13px;margin-top:3px}
.inventory-note{display:block;border-left:2px solid var(--line-strong);padding-left:9px;color:var(--muted);margin:10px 0}
.inventory-actions{display:flex;gap:7px;margin-top:14px}
.inventory-actions .btn{flex:1}
.return-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:14px;align-items:start}
.return-summary h2{font-size:30px;margin:6px 0 2px;letter-spacing:-.04em}
.return-summary>p{margin:0 0 16px;color:var(--muted)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.detail-grid>div{background:#f8f6f4;border:1px solid var(--line);border-radius:11px;padding:10px}
.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.detail-grid strong{font-size:13px;margin-top:3px}
.student-loan-grid{display:grid;gap:9px}
.student-loan-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d8e4f4;background:#f4f8fe;border-radius:14px;padding:13px}
.student-loan-item.is-late{border-color:#efc8c8;background:#fff4f4}
.student-loan-item strong,.student-loan-item small{display:block}.student-loan-item strong{margin-top:3px}.student-loan-item small{color:var(--muted);margin-top:3px}
.loan-history-details{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.loan-history-details summary{cursor:pointer;font-weight:800;color:#514b47}
.dashboard-loans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dashboard-loan-card{text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:12px;border-left:3px solid #4f74a8}
.dashboard-loan-card.is-late{border-left-color:var(--danger);background:#fffafa}
.dashboard-loan-card strong,.dashboard-loan-card small{display:block}.dashboard-loan-card small{color:var(--muted);margin-top:3px}
.dashboard-loan-due{text-align:right;flex:none}.dashboard-loan-due span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:850}.dashboard-loan-card.is-late .dashboard-loan-due span{color:var(--danger)}.dashboard-loan-due strong{font-size:13px;margin-top:2px}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
@media(max-width:1000px){.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.loan-filters{grid-template-columns:1fr}.return-layout{grid-template-columns:1fr}.dashboard-loans{grid-template-columns:1fr}}
@media(max-width:700px){.inventory-grid{grid-template-columns:1fr}.section-head-inline{align-items:stretch;flex-direction:column}.section-head-inline .btn{width:100%}.student-loan-item{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.grid-cards.four-cards{grid-template-columns:1fr 1fr}.inventory-actions{flex-direction:column}}

/* V1.9 - Ficha 360º do aluno */
.student-name-link{text-decoration:none}.student-name-link:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.back-link{display:inline-flex;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:800;text-decoration:none}.back-link:hover{color:var(--accent)}
.profile360-page-head{align-items:flex-end}
.profile360-hero{display:grid;grid-template-columns:auto minmax(260px,1fr) minmax(360px,.85fr);gap:20px;align-items:center;position:relative;overflow:hidden;padding:22px}
.profile360-hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--accent),var(--accent-dark))}
.profile360-avatar{width:82px;height:82px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(145deg,#202024,#3a3031);color:#fff;font-size:34px;font-weight:950;box-shadow:0 10px 24px rgba(24,24,27,.16);border:1px solid rgba(255,255,255,.2)}
.profile360-identity{min-width:0}.profile360-identity h2{font-size:29px;line-height:1.08;margin:6px 0 7px;letter-spacing:-.04em}.profile360-identity h2 small{font-size:15px;font-weight:750;color:var(--muted);letter-spacing:0}.profile360-identity>p{margin:9px 0 0;color:var(--muted);font-size:12px}
.profile360-badges{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.profile-degree-strip{max-width:270px}
.activity-chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;border:1px solid var(--line);background:#f6f5f3;color:var(--muted)}
.activity-good{background:var(--success-bg);color:var(--success);border-color:#c9ebd4}.activity-mid{background:var(--warning-bg);color:var(--warning);border-color:#efdfac}.activity-alert{background:var(--danger-bg);color:var(--danger);border-color:#efc8c8}.activity-neutral{background:#f1f0ef;color:#69635f}
.profile360-quickstats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.profile360-quickstats>div{background:#f8f6f4;border:1px solid var(--line);border-radius:13px;padding:11px 12px}.profile360-quickstats small,.profile360-quickstats strong{display:block}.profile360-quickstats small{font-size:10px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:850}.profile360-quickstats strong{margin-top:3px;font-size:21px;letter-spacing:-.03em}.profile360-quickstats .profile-stat-date{font-size:16px;margin-top:6px}
.profile360-layout{display:grid;grid-template-columns:minmax(250px,.34fr) minmax(0,1fr);gap:14px;align-items:start;margin-top:14px}.profile360-sidebar,.profile360-main{display:grid;gap:14px}.profile360-sidebar{position:sticky;top:78px}
.profile-info-card h2{font-size:16px;margin:0 0 12px}.section-head-mini{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.section-head-mini h2{margin:0}.section-head-mini a{font-size:11px;font-weight:850;color:var(--accent);text-decoration:none}
.profile-dl{margin:0;display:grid}.profile-dl>div{padding:9px 0;border-top:1px solid var(--line)}.profile-dl>div:first-child{border-top:0;padding-top:0}.profile-dl dt{font-size:10px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:850}.profile-dl dd{margin:3px 0 0;font-size:13px;font-weight:720;word-break:break-word}.profile-dl dd small{display:block;color:var(--muted);font-size:10px;margin-top:2px;font-weight:650}.profile-address,.profile-note{margin:0;color:#4f4a47;font-size:13px;line-height:1.6}.profile-note{white-space:normal}
.profile-section-head{align-items:center;margin-top:0}.profile-section-head .section-title{margin:0}.profile-section-head .section-subtitle{margin:2px 0 0}
.profile-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.profile-metric-grid>div{border:1px solid var(--line);border-radius:13px;padding:12px;background:#faf9f7}.profile-metric-grid small,.profile-metric-grid strong,.profile-metric-grid span{display:block}.profile-metric-grid small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:850}.profile-metric-grid strong{font-size:19px;margin-top:4px;letter-spacing:-.025em}.profile-metric-grid span{color:var(--muted);font-size:10px;margin-top:3px}
.profile-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.profile-class-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:#faf9f7;border-radius:13px;padding:12px}.profile-class-item strong,.profile-class-item small{display:block}.profile-class-item small{color:var(--muted);font-size:11px;margin-top:2px}.profile-class-item.is-inactive{opacity:.55}.profile-class-time{font-size:12px;font-weight:850;white-space:nowrap;color:#484340}
.profile-training-list,.profile-history-list,.profile-loan-list{display:grid}.profile-training-row,.profile-history-row,.profile-loan-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.profile-training-row:first-child,.profile-history-row:first-child,.profile-loan-row:first-child{border-top:0;padding-top:0}.profile-training-row:last-child,.profile-history-row:last-child,.profile-loan-row:last-child{padding-bottom:0}
.profile-training-date{width:44px;height:44px;border-radius:12px;background:#f2efec;border:1px solid var(--line);display:grid;place-items:center;align-content:center;flex:none}.profile-training-date strong{font-size:17px;line-height:1}.profile-training-date small{font-size:8px;color:var(--muted);font-weight:900;margin-top:2px}.profile-training-main{min-width:0;flex:1}.profile-training-main strong,.profile-training-main small{display:block}.profile-training-main small{color:var(--muted);font-size:11px;margin-top:2px}
.profile-history-row{justify-content:space-between;align-items:flex-start}.profile-history-row>div:first-child{min-width:0;flex:1}.profile-history-row strong,.profile-history-row small{display:block}.profile-history-row small{color:var(--muted);font-size:11px;margin-top:2px}.profile-history-row p{margin:7px 0 0;color:#5c5652;font-size:12px}.profile-history-row .mini-degree-strip{width:140px;flex:none}
.profile-loan-row{justify-content:space-between}.profile-loan-row>div:first-child{min-width:0;flex:1}.profile-loan-row strong,.profile-loan-row small{display:block}.profile-loan-row small{color:var(--muted);font-size:11px;margin-top:2px}.profile-loan-row.is-late{background:#fff7f7;margin:0 -9px;padding-left:9px;padding-right:9px;border-radius:10px}.profile-card-footer{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.profile-card-footer a{font-size:11px;font-weight:850;color:var(--accent);text-decoration:none}
@media(max-width:1000px){.profile360-hero{grid-template-columns:auto 1fr}.profile360-quickstats{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}.profile360-layout{grid-template-columns:1fr}.profile360-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.profile360-sidebar .profile-info-card:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:760px){.profile-metric-grid{grid-template-columns:1fr 1fr}.profile-class-grid{grid-template-columns:1fr}.profile360-sidebar{grid-template-columns:1fr}.profile360-sidebar .profile-info-card:last-child:nth-child(odd){grid-column:auto}}
@media(max-width:620px){.profile360-hero{grid-template-columns:1fr;align-items:start}.profile360-avatar{width:64px;height:64px;border-radius:18px;font-size:27px}.profile360-quickstats{grid-template-columns:1fr 1fr}.profile360-identity h2{font-size:25px}.profile-section-head{align-items:stretch}.profile-history-row{flex-direction:column}.profile-history-row .mini-degree-strip{width:100%;max-width:220px}.profile-training-row{gap:9px}.profile-loan-row{align-items:flex-start;flex-direction:column}.profile360-page-head .profile-actions{width:100%}.profile360-page-head .profile-actions .btn{flex:1}}
@media(max-width:430px){.profile-metric-grid{grid-template-columns:1fr}.profile360-quickstats{grid-template-columns:1fr 1fr}}

/* V2.0 - Central de alertas */
.grid-cards.six-cards{grid-template-columns:repeat(6,minmax(0,1fr))}
.stat-foot{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-weight:760;line-height:1.25}
.alert-section{scroll-margin-top:86px;margin-top:26px}
.alert-section-head{align-items:center}
.alert-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.alert-student-card{position:relative;overflow:hidden;padding-top:18px}
.alert-student-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:#d7a54c}
.alert-student-card.alert-warning:before{background:#d3782d}
.alert-student-card.alert-critical:before{background:var(--danger)}
.alert-student-card.alert-critical{background:#fffafa}
.alert-student-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.alert-student-top strong,.alert-student-top small{display:block}
.alert-student-top small{color:var(--muted);font-size:11px;margin-top:3px}
.alert-days{display:flex;align-items:baseline;gap:3px;flex:none;border-radius:12px;background:#f7f3ee;border:1px solid var(--line);padding:7px 9px}
.alert-days strong{font-size:22px;line-height:1;color:#3f3936}.alert-days span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:900}
.alert-warning .alert-days{background:#fff6ea;border-color:#efd7ba}.alert-critical .alert-days{background:#fff0f0;border-color:#efcaca}.alert-critical .alert-days strong{color:var(--danger)}
.alert-student-card>p{color:var(--muted);font-size:11px;margin:12px 0}
.alert-card-actions,.alert-row-actions{display:flex;gap:7px;flex-wrap:wrap}
.alert-list-card{padding-top:3px;padding-bottom:3px}
.alert-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:15px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.alert-list-row:first-child{border-top:0}
.alert-list-main strong,.alert-list-main small{display:block}.alert-list-main small{color:var(--muted);font-size:11px;margin-top:3px}
.frequency-bubble,.overdue-bubble{min-width:84px;text-align:center;border-radius:12px;padding:8px 10px;background:#fff3f3;border:1px solid #f0d0d0}
.frequency-bubble strong,.frequency-bubble small,.overdue-bubble strong,.overdue-bubble small{display:block}
.frequency-bubble strong,.overdue-bubble strong{font-size:20px;color:var(--danger)}
.frequency-bubble small,.overdue-bubble small{font-size:9px;color:var(--muted);margin-top:2px;font-weight:760}
.birthday-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.birthday-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.birthday-card.is-today{border-color:#e6c975;background:#fffdf5;box-shadow:0 8px 22px rgba(173,130,30,.07)}
.birthday-date{width:48px;height:48px;border-radius:13px;background:#242125;color:#fff;display:grid;place-items:center;align-content:center;flex:none}
.birthday-date strong{font-size:18px;line-height:1}.birthday-date small{font-size:8px;font-weight:900;margin-top:3px;letter-spacing:.08em}
.birthday-main strong,.birthday-main small{display:block}.birthday-main small{color:var(--muted);font-size:11px;margin-top:3px}
.birthday-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.birthday-dashboard-card{text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:12px;border-left:3px solid #c69d3c}
.birthday-dashboard-card strong,.birthday-dashboard-card small{display:block}.birthday-dashboard-card small{color:var(--muted);font-size:11px;margin-top:3px}.birthday-dashboard-card>span{font-weight:900;color:#5d5040}
.dashboard-alert-title{margin-top:27px}.dashboard-alert-title .section-title{margin:0}.dashboard-alert-title .section-subtitle{margin-top:3px}
.dashboard-alert-list li{display:flex;align-items:center;justify-content:space-between;gap:14px}
.overdue-row{background:#fffafa;margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;border-radius:11px}
@media(max-width:1180px){.grid-cards.six-cards{grid-template-columns:repeat(3,1fr)}.alert-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.birthday-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.alert-list-row{grid-template-columns:1fr auto}.alert-row-actions{grid-column:1/-1}.birthday-grid{grid-template-columns:1fr}}
@media(max-width:700px){.alert-student-grid,.birthday-dashboard-grid{grid-template-columns:1fr}.alert-section-head{align-items:stretch}.dashboard-alert-title{align-items:stretch}.dashboard-alert-list li{align-items:flex-start}.dashboard-alert-list .btn{flex:none}}
@media(max-width:620px){.grid-cards.six-cards{grid-template-columns:1fr 1fr}.alert-list-row{grid-template-columns:1fr}.frequency-bubble,.overdue-bubble{width:max-content;min-width:100px;text-align:left}.alert-row-actions{grid-column:auto}.birthday-card{grid-template-columns:auto 1fr}.birthday-card .btn{grid-column:1/-1;width:100%}}

/* V2.1 - cores das faixas */
.belt-neutral{--belt-main:#d9d9dd;--belt-text:#1f1f22;--belt-rank:#222;--belt-accent:#a3a3a9}
.belt-white{--belt-main:#fafafa;--belt-text:#1b1b1e;--belt-rank:#202024;--belt-accent:#d7d7dc}
.belt-gray{--belt-main:#8d9299;--belt-text:#fff;--belt-rank:#202024;--belt-accent:#747980}
.belt-gray-white{--belt-main:linear-gradient(180deg,#f7f7f7 0 32%,#8d9299 32% 68%,#f7f7f7 68%);--belt-text:#161618;--belt-rank:#202024;--belt-accent:#8d9299}
.belt-gray-black{--belt-main:linear-gradient(180deg,#1c1c1f 0 28%,#8d9299 28% 72%,#1c1c1f 72%);--belt-text:#fff;--belt-rank:#111;--belt-accent:#777c82}
.belt-yellow{--belt-main:#f2cb35;--belt-text:#29230a;--belt-rank:#202024;--belt-accent:#d8ae11}
.belt-yellow-white{--belt-main:linear-gradient(180deg,#fff 0 28%,#f2cb35 28% 72%,#fff 72%);--belt-text:#29230a;--belt-rank:#202024;--belt-accent:#d8ae11}
.belt-yellow-black{--belt-main:linear-gradient(180deg,#1a1a1d 0 28%,#f2cb35 28% 72%,#1a1a1d 72%);--belt-text:#17120a;--belt-rank:#111;--belt-accent:#d8ae11}
.belt-orange{--belt-main:#e98523;--belt-text:#fff;--belt-rank:#202024;--belt-accent:#c96d12}
.belt-orange-white{--belt-main:linear-gradient(180deg,#fff 0 28%,#e98523 28% 72%,#fff 72%);--belt-text:#502707;--belt-rank:#202024;--belt-accent:#d87818}
.belt-orange-black{--belt-main:linear-gradient(180deg,#1a1a1d 0 28%,#e98523 28% 72%,#1a1a1d 72%);--belt-text:#fff;--belt-rank:#111;--belt-accent:#d87818}
.belt-green{--belt-main:#23884a;--belt-text:#fff;--belt-rank:#202024;--belt-accent:#19713c}
.belt-green-white{--belt-main:linear-gradient(180deg,#fff 0 28%,#23884a 28% 72%,#fff 72%);--belt-text:#0e3d22;--belt-rank:#202024;--belt-accent:#23884a}
.belt-green-black{--belt-main:linear-gradient(180deg,#171719 0 28%,#23884a 28% 72%,#171719 72%);--belt-text:#fff;--belt-rank:#111;--belt-accent:#23884a}
.belt-blue{--belt-main:#2456b8;--belt-text:#fff;--belt-rank:#171719;--belt-accent:#2456b8}
.belt-purple{--belt-main:#6c38a5;--belt-text:#fff;--belt-rank:#171719;--belt-accent:#6c38a5}
.belt-brown{--belt-main:#704329;--belt-text:#fff;--belt-rank:#171719;--belt-accent:#704329}
.belt-black{--belt-main:#171719;--belt-text:#fff;--belt-rank:#b5262b;--belt-accent:#171719}
.belt-red{--belt-main:#bc2328;--belt-text:#fff;--belt-rank:#171719;--belt-accent:#bc2328}
.belt-coral-black{--belt-main:repeating-linear-gradient(135deg,#bd242a 0 13px,#bd242a 13px 26px,#18181b 26px 39px,#18181b 39px 52px);--belt-text:#fff;--belt-rank:#111;--belt-accent:#bd242a}
.belt-coral-white{--belt-main:repeating-linear-gradient(135deg,#bd242a 0 13px,#bd242a 13px 26px,#f6f6f6 26px 39px,#f6f6f6 39px 52px);--belt-text:#fff;--belt-rank:#171719;--belt-accent:#bd242a}
.belt-badge{
  display:inline-flex;align-items:stretch;overflow:hidden;vertical-align:middle;
  min-height:32px;border-radius:9px;border:1px solid rgba(24,24,27,.18);
  background:var(--belt-main);color:var(--belt-text);box-shadow:0 3px 8px rgba(24,24,27,.08);
  font-weight:900;line-height:1;text-decoration:none;
}
.belt-name{display:flex;align-items:center;padding:8px 10px;min-width:80px;text-shadow:0 1px 2px rgba(0,0,0,.16)}
.belt-white .belt-name,.belt-yellow .belt-name,.belt-yellow-white .belt-name,.belt-orange-white .belt-name,.belt-green-white .belt-name,.belt-gray-white .belt-name{ text-shadow:none }
.belt-rank{display:flex;align-items:center;justify-content:center;gap:3px;padding:0 8px;background:var(--belt-rank);min-width:58px}
.belt-grau{width:4px;height:16px;border-radius:2px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.12)}
.belt-grau.on{background:#fff;border-color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.belt-compact{min-height:27px;border-radius:8px;font-size:11px}.belt-compact .belt-name{padding:6px 8px;min-width:58px}.belt-compact .belt-rank{min-width:48px;padding:0 6px}.belt-compact .belt-grau{height:13px;width:3px}
.belt-accent{--belt-accent:#aaa;border-left:5px solid var(--belt-accent)!important}
.attendance-person.belt-accent{padding-left:17px}
.student-hero .belt-badge{font-size:16px;min-height:42px;border-radius:12px}.student-hero .belt-name{padding:11px 14px;min-width:120px}.student-hero .belt-rank{min-width:76px}.student-hero .belt-grau{height:20px;width:5px}
.profile360-identity .belt-badge{margin:4px 0 5px}
.belt-inline-wrap{margin-top:5px}

/* V2.1 - relatórios e estatísticas */
.report-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:18px}.report-filter>div{min-width:180px}.report-filter label{margin-bottom:5px}
.report-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.report-kpi small{display:block}.report-kpi strong{display:block;font-size:30px;margin-top:9px;letter-spacing:-.035em}.report-kpi span{display:block;color:var(--muted);font-size:10px;margin-top:5px}
.report-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;align-items:start}.report-card h2{margin:0 0 4px;font-size:18px}.report-card>p{margin:0 0 16px;color:var(--muted);font-size:12px}
.report-bars{display:grid;gap:11px}.report-bar-row{display:grid;grid-template-columns:70px minmax(0,1fr) 86px;gap:10px;align-items:center}.report-bar-label{font-size:11px;font-weight:850;color:#4c4744}.report-bar-track{height:12px;background:#eeeae6;border-radius:999px;overflow:hidden}.report-bar-fill{height:100%;min-width:2px;background:linear-gradient(90deg,#202024,#c62828);border-radius:999px}.report-bar-value{text-align:right;font-size:11px;font-weight:850}.report-bar-value small{display:block;font-weight:650;color:var(--muted);font-size:9px}
.rank-list{display:grid}.rank-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.rank-row:first-child{border-top:0;padding-top:0}.rank-number{width:29px;height:29px;border-radius:9px;background:#232327;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.rank-main{min-width:0}.rank-main strong,.rank-main small{display:block}.rank-main small{color:var(--muted);font-size:10px;margin-top:4px}.rank-value{text-align:right}.rank-value strong,.rank-value small{display:block}.rank-value strong{font-size:20px}.rank-value small{color:var(--muted);font-size:9px}.rank-main .belt-badge{margin-top:6px}
.belt-distribution{display:grid;gap:9px}.belt-distribution-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:10px;align-items:center}.belt-distribution-row .belt-badge{width:100%;justify-content:space-between}.belt-distribution-row>strong{text-align:right;font-size:18px}
.report-table td strong,.report-table td small{display:block}.report-table td small{color:var(--muted);font-size:10px;margin-top:2px}
.report-empty{padding:24px;text-align:center;color:var(--muted)}
.report-month-nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.report-month-nav .btn{min-height:38px}
@media(max-width:1080px){.report-kpis{grid-template-columns:repeat(3,1fr)}.report-layout{grid-template-columns:1fr}}
@media(max-width:700px){.report-kpis{grid-template-columns:1fr 1fr}.report-bar-row{grid-template-columns:56px minmax(0,1fr) 70px}.report-filter{align-items:stretch}.report-filter>div{flex:1 1 180px}.report-filter .btn{flex:1}.belt-badge{max-width:100%}}
@media(max-width:430px){.report-kpis{grid-template-columns:1fr}.report-month-nav{width:100%}.report-month-nav .btn{flex:1}.belt-name{min-width:68px}}

/* V2.2 - avaliação técnica */
.setup-needed-v22,.update-card-v22{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.setup-needed-v22 p,.update-card-v22 p{margin:4px 0 0;color:var(--muted)}
.update-status-v22{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border-radius:12px;background:#fff7e8;border:1px solid #efd5a4;min-width:260px}
.update-status-v22.is-ready{background:#eff9f2;border-color:#b9dfc2}.update-status-v22 strong{font-size:14px}.update-status-v22 span{font-size:11px;color:var(--muted)}
.evaluation-grid-v22{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.evaluation-card-v22{display:flex;flex-direction:column;gap:14px}
.evaluation-card-top-v22{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.evaluation-card-top-v22 h2{margin:0;font-size:17px}.evaluation-card-top-v22 h2 a{text-decoration:none;color:inherit}.evaluation-card-top-v22 h2 a:hover{text-decoration:underline}
.evaluation-score-v22{width:72px;height:72px;border-radius:20px;background:#202024;color:#fff;display:grid;place-items:center;align-content:center;flex:none;box-shadow:0 7px 18px rgba(20,20,23,.14)}
.evaluation-score-v22 strong{font-size:25px;line-height:1;letter-spacing:-.04em}.evaluation-score-v22 small{font-size:9px;opacity:.72;margin-top:4px;font-weight:800}.evaluation-score-v22.is-empty{background:#efedeb;color:#8e8782;box-shadow:none}
.evaluation-meta-v22{display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.evaluation-meta-v22 strong{color:#403c39}
.evaluation-highlights-v22{display:grid;grid-template-columns:1fr 1fr;gap:9px}.evaluation-highlights-v22>div{padding:10px 11px;border-radius:11px;background:#f7f5f3;border:1px solid var(--line)}.evaluation-highlights-v22 small,.evaluation-highlights-v22 strong{display:block}.evaluation-highlights-v22 small{font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.evaluation-highlights-v22 strong{font-size:11px;margin-top:4px;line-height:1.35}
.evaluation-empty-text-v22{color:var(--muted);font-size:12px;margin:2px 0}.evaluation-actions-v22{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.evaluation-student-hero-v22{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.evaluation-last-v22{text-align:right}.evaluation-last-v22 small,.evaluation-last-v22 strong,.evaluation-last-v22 span{display:block}.evaluation-last-v22 small{color:var(--muted);font-size:10px;font-weight:800}.evaluation-last-v22 strong{font-size:20px;margin-top:4px}.evaluation-last-v22 span{font-size:10px;color:var(--muted);margin-top:3px}
.evaluation-form-head-v22{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:16px}.evaluation-form-head-v22>div:first-child{min-width:220px}.evaluation-scale-note-v22{text-align:right}.evaluation-scale-note-v22 strong,.evaluation-scale-note-v22 span{display:block}.evaluation-scale-note-v22 strong{font-size:18px}.evaluation-scale-note-v22 span{font-size:10px;color:var(--muted);margin-top:2px}
.evaluation-criteria-grid-v22{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.evaluation-criterion-v22{padding:12px;border:1px solid var(--line);border-radius:12px;background:#faf9f8}.evaluation-criterion-v22 label{font-size:11px;font-weight:900;margin-bottom:7px}.evaluation-criterion-v22 select{min-width:0;width:100%}.evaluation-observation-v22{margin-top:14px}
.evaluation-history-v22{display:grid;gap:14px}.evaluation-history-item-v22{padding-bottom:16px;border-bottom:1px solid var(--line)}.evaluation-history-item-v22:last-child{border-bottom:0;padding-bottom:0}.evaluation-history-head-v22{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.evaluation-history-head-v22>div:first-child strong,.evaluation-history-head-v22>div:first-child small{display:block}.evaluation-history-head-v22>div:first-child small{color:var(--muted);font-size:10px;margin-top:3px}.evaluation-history-head-v22 .evaluation-score-v22{width:58px;height:58px;border-radius:16px}.evaluation-history-head-v22 .evaluation-score-v22 strong{font-size:20px}
.evaluation-mini-grid-v22{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.evaluation-mini-v22{padding:9px 10px;background:#f7f5f3;border-radius:10px;border:1px solid var(--line)}.evaluation-mini-v22 span,.evaluation-mini-v22 strong,.evaluation-mini-v22 small{display:block}.evaluation-mini-v22 span{font-size:9px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.03em}.evaluation-mini-v22 strong{font-size:18px;margin-top:4px}.evaluation-mini-v22 small{font-size:9px;color:var(--muted);margin-top:2px}
.evaluation-history-note-v22,.tech-observation-v22{margin:12px 0 0;padding:11px 12px;border-left:3px solid #b6292e;background:#faf5f5;border-radius:0 9px 9px 0;font-size:11px;line-height:1.55;color:#514b47}
.metric-pill-tech-v22{border-color:#d7c6e8!important;background:#faf7fd!important;color:#684090!important}
.table-actions-v22{display:flex;gap:6px;flex-wrap:wrap}.table-actions-v22 .btn{white-space:nowrap}
.graduation-tech-card-v22{display:grid;gap:14px}.graduation-tech-head-v22{display:flex;align-items:center;justify-content:space-between;gap:14px}.graduation-tech-head-v22>div:first-child strong,.graduation-tech-head-v22>div:first-child small{display:block}.graduation-tech-head-v22>div:first-child strong{font-size:18px;margin-top:4px}.graduation-tech-head-v22>div:first-child small{font-size:10px;color:var(--muted);margin-top:3px}
.tech-bars-v22{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px}.tech-bar-row-v22{display:grid;grid-template-columns:90px minmax(0,1fr) 20px;gap:8px;align-items:center}.tech-bar-row-v22>span{font-size:10px;font-weight:800}.tech-bar-row-v22>strong{font-size:11px;text-align:right}.tech-bar-track-v22{height:8px;border-radius:999px;background:#ebe8e5;overflow:hidden}.tech-bar-track-v22 i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#27272b,#bd272d)}
.profile-tech-summary-v22{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px;align-items:start}.profile-tech-score-v22{padding:14px;border-radius:14px;background:#202024;color:#fff;text-align:center}.profile-tech-score-v22 small,.profile-tech-score-v22 strong,.profile-tech-score-v22 span{display:block}.profile-tech-score-v22 small{font-size:9px;opacity:.68;text-transform:uppercase;font-weight:850}.profile-tech-score-v22 strong{font-size:36px;line-height:1;margin-top:7px}.profile-tech-score-v22 span{font-size:9px;opacity:.7;margin-top:5px}.profile-tech-grid-v22{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.profile-tech-item-v22{padding:9px 10px;border-radius:10px;background:#f7f5f3;border:1px solid var(--line)}.profile-tech-item-v22 span,.profile-tech-item-v22 strong,.profile-tech-item-v22 small{display:block}.profile-tech-item-v22 span{font-size:9px;color:var(--muted);font-weight:850}.profile-tech-item-v22 strong{font-size:18px;margin-top:3px}.profile-tech-item-v22 small{font-size:8px;color:var(--muted);margin-top:2px;line-height:1.25}
@media(max-width:1080px){.evaluation-criteria-grid-v22,.evaluation-mini-grid-v22{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-tech-grid-v22{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.evaluation-grid-v22{grid-template-columns:1fr}.profile-tech-summary-v22{grid-template-columns:1fr}.profile-tech-score-v22{text-align:left}.profile-tech-score-v22 strong{font-size:30px}}
@media(max-width:650px){.evaluation-student-hero-v22{align-items:flex-start;flex-direction:column}.evaluation-last-v22{text-align:left}.evaluation-form-head-v22{align-items:stretch;flex-direction:column}.evaluation-scale-note-v22{text-align:left}.evaluation-criteria-grid-v22,.evaluation-mini-grid-v22,.profile-tech-grid-v22,.tech-bars-v22{grid-template-columns:1fr}.evaluation-highlights-v22{grid-template-columns:1fr}.evaluation-card-top-v22{align-items:center}.tech-bar-row-v22{grid-template-columns:82px minmax(0,1fr) 20px}.setup-needed-v22,.update-card-v22{align-items:stretch}.setup-needed-v22 .btn,.update-card-v22 .btn{width:100%}}

/* V2.3 - Competições e histórico esportivo */
.competition-grid-v23{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.competition-card-v23{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:15px;align-items:center;text-decoration:none;color:inherit;position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.competition-card-v23:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(24,24,27,.09);border-color:#cfc8c3}
.competition-card-v23:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#b8292e}
.competition-card-v23.status-concluida:before{background:#3d7b53}.competition-card-v23.status-cancelada:before{background:#9f9994}
.competition-date-v23{width:68px;height:76px;border-radius:17px;background:#202024;color:#fff;display:grid;place-items:center;align-content:center;text-align:center;line-height:1;box-shadow:0 8px 18px rgba(20,20,23,.12)}
.competition-date-v23 strong{font-size:26px;letter-spacing:-.04em}.competition-date-v23 span{font-size:10px;font-weight:900;margin-top:4px;letter-spacing:.07em}.competition-date-v23 small{font-size:9px;opacity:.65;margin-top:4px}
.competition-main-v23{min-width:0}.competition-title-row-v23{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.competition-title-row-v23 h2{font-size:18px;margin:0;letter-spacing:-.025em}.competition-main-v23>p{margin:5px 0 0;color:var(--muted);font-size:11px}.competition-meta-v23{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.competition-meta-v23 span{background:#f7f5f3;border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:9px;color:var(--muted);font-weight:800}.competition-meta-v23 strong{color:#373330}.competition-arrow-v23{font-size:25px;color:#a59e98;font-weight:500}
.competition-form-v23 .form-grid,.competition-entry-form-v23 .form-grid,.competition-result-form-v23 .form-grid{margin:0}.competition-form-v23{max-width:900px}.competition-entry-form-v23{margin-bottom:18px}.competition-entry-grid-v23{grid-template-columns:repeat(3,minmax(0,1fr))}
.competition-detail-head-v23 .actions{align-items:center}.competition-summary-v23{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.medal-stat-v23:before{background:#202024}.medal-stat-v23.medal-ouro strong{color:#a77a13}.medal-stat-v23.medal-prata strong{color:#74777b}.medal-stat-v23.medal-bronze strong{color:#9a5d35}
.competition-info-v23{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin-bottom:18px}.competition-info-v23 small,.competition-info-v23 strong{display:block}.competition-info-v23 small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:850}.competition-info-v23 strong{margin-top:4px}.competition-info-v23 p{margin:4px 0 0;color:#514b47;line-height:1.55}
.competition-roster-title-v23{margin-top:18px}.competition-roster-v23{display:grid;gap:12px}.competition-athlete-v23{position:relative}.competition-athlete-v23.is-cancelled{opacity:.62}.competition-athlete-head-v23{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.competition-athlete-head-v23 h3{margin:0 0 7px;font-size:17px}.competition-athlete-head-v23 h3 a{text-decoration:none;color:inherit}.competition-athlete-head-v23 h3 a:hover{text-decoration:underline}.competition-athlete-head-v23 small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.competition-result-form-v23{padding-top:13px}.competition-result-grid-v23{grid-template-columns:repeat(3,minmax(0,1fr))}.competition-row-actions-v23{display:flex;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.competition-delete-form-v23{position:static;margin-top:6px;text-align:right}.link-danger-v23{appearance:none;border:0;background:transparent;color:var(--danger);font-size:10px;font-weight:850;cursor:pointer;padding:4px}.link-danger-v23:hover{text-decoration:underline}
.medal-badge-v23{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:950;border:1px solid transparent;white-space:nowrap}.medal-ouro{background:#fff4c9;color:#8a6612;border-color:#ead486}.medal-prata{background:#f0f2f4;color:#666c72;border-color:#d8dde1}.medal-bronze{background:#f7e3d5;color:#87502f;border-color:#e4bd9f}.medal-none{background:#f1f0ef;color:#6f6965;border-color:#dedad7}
.profile-competition-list-v23,.student-competition-list-v23{display:grid;gap:8px}.profile-competition-row-v23,.student-competition-row-v23{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:#faf9f7;color:inherit;text-decoration:none}.profile-competition-row-v23:hover{border-color:#cfc8c3;background:#fff}.profile-competition-date-v23,.student-competition-date-v23{width:48px;height:48px;border-radius:12px;background:#252529;color:#fff;display:grid;place-items:center;align-content:center;text-align:center}.profile-competition-date-v23 strong,.student-competition-date-v23 strong{font-size:18px;line-height:1}.profile-competition-date-v23 small,.student-competition-date-v23 small{font-size:8px;opacity:.7;margin-top:4px}.profile-competition-main-v23 strong,.profile-competition-main-v23 small,.student-competition-main-v23 strong,.student-competition-main-v23 small,.student-competition-main-v23 span{display:block}.profile-competition-main-v23 small,.student-competition-main-v23 small,.student-competition-main-v23 span{font-size:9px;color:var(--muted);margin-top:3px}.student-competition-main-v23 span{margin-top:5px}
.dashboard-competition-grid-v23{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-competition-card-v23{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center;text-decoration:none;color:inherit}.dashboard-comp-date-v23{width:42px;height:42px;border-radius:11px;background:#202024;color:#fff;display:grid;place-items:center;align-content:center}.dashboard-comp-date-v23 strong{font-size:16px;line-height:1}.dashboard-comp-date-v23 small{font-size:8px;opacity:.65;margin-top:3px}.dashboard-competition-card-v23>div:nth-child(2) strong,.dashboard-competition-card-v23>div:nth-child(2) small{display:block}.dashboard-competition-card-v23>div:nth-child(2) small{font-size:9px;color:var(--muted);margin-top:3px}.dashboard-competition-card-v23>span{font-size:10px;color:var(--muted);font-weight:850;white-space:nowrap}
@media(max-width:1000px){.competition-grid-v23{grid-template-columns:1fr}.competition-entry-grid-v23,.competition-result-grid-v23{grid-template-columns:repeat(2,minmax(0,1fr))}.competition-summary-v23{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-competition-grid-v23{grid-template-columns:1fr}.competition-info-v23{grid-template-columns:1fr}.competition-entry-grid-v23,.competition-result-grid-v23{grid-template-columns:1fr}.competition-delete-form-v23{position:static;margin-top:8px;text-align:right}.competition-athlete-head-v23{align-items:flex-start}.competition-title-row-v23{flex-direction:column}.competition-card-v23{grid-template-columns:64px minmax(0,1fr)}.competition-arrow-v23{display:none}.competition-date-v23{width:58px;height:66px}.competition-date-v23 strong{font-size:22px}}
@media(max-width:560px){.competition-summary-v23{grid-template-columns:1fr 1fr}.profile-competition-row-v23,.student-competition-row-v23{grid-template-columns:50px minmax(0,1fr)}.profile-competition-row-v23>div:last-child,.student-competition-row-v23>div:last-child{grid-column:2}.dashboard-competition-card-v23{grid-template-columns:42px minmax(0,1fr)}.dashboard-competition-card-v23>span{grid-column:2}.competition-card-v23{padding:13px}.competition-athlete-head-v23{flex-direction:column}.competition-result-badge-v23{align-self:flex-start}}

/* ================================
   V2.4 - Responsáveis / área infantil
   ================================ */
.v24-stats{margin-bottom:18px}
.stat-alert-v24{border-color:#fecaca;background:#fff7f7}
.stat-alert-v24 strong{color:#b91c1c}
.search-card-v24{padding:14px;margin-bottom:18px}
.search-row-v24{display:flex;gap:10px;align-items:center}
.search-row-v24 input{flex:1;min-width:180px}
.responsible-list-v24{display:grid;gap:12px}
.responsible-row-v24{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:16px;border:1px solid var(--border,#e5e7eb);border-radius:16px;background:#fff}
.responsible-row-v24.is-inactive{opacity:.65}
.responsible-main-v24{min-width:0}
.responsible-title-v24{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.responsible-title-v24 strong{font-size:1rem}
.responsible-main-v24>small{display:block;margin-top:4px;color:var(--muted,#6b7280)}
.responsible-athletes-v24{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.responsible-athletes-v24 span{font-size:.78rem;background:#f3f4f6;border:1px solid #e5e7eb;padding:4px 8px;border-radius:999px}
.responsible-athletes-v24 em{font-size:.82rem;color:#9ca3af}
.responsible-access-v24{display:flex;flex-direction:column;gap:5px;align-items:flex-start;white-space:nowrap}
.responsible-access-v24 small{font-size:.74rem;color:#6b7280}
.responsible-actions-v24{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.field-help-v24{display:block;margin-top:5px;color:#6b7280;font-size:.76rem}
.guardian-filter-v24{margin:14px 0 10px}
.guardian-filter-v24 input{width:100%}
.guardian-link-list-v24{display:grid;gap:8px;max-height:620px;overflow:auto;padding-right:3px}
.guardian-link-row-v24{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(145px,.55fr) auto auto auto;gap:10px;align-items:center;padding:12px;border:1px solid #e5e7eb;border-radius:14px;background:#fafafa}
.guardian-student-v24{display:flex;gap:10px;align-items:center;margin:0;cursor:pointer}
.guardian-student-v24 input{width:auto;margin:0}
.guardian-student-v24 span{display:flex;flex-direction:column;min-width:0}
.guardian-student-v24 small{font-size:.75rem;color:#6b7280;margin-top:2px}
.guardian-link-row-v24 select{min-width:0}
.mini-check-v24{display:flex;align-items:center;gap:5px;font-size:.77rem;white-space:nowrap;margin:0}
.mini-check-v24 input{width:auto;margin:0}
.invite-box-v24{display:flex;gap:10px;align-items:center;margin:18px 0}
.invite-box-v24 input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}
.guardian-activate-v24{max-width:500px}
.guardian-athlete-grid-v24{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.guardian-athlete-card-v24{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:18px;box-shadow:0 8px 30px rgba(15,23,42,.05);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.guardian-athlete-card-v24:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(15,23,42,.08);border-color:#d1d5db}
.guardian-athlete-head-v24{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.guardian-athlete-head-v24>div{display:flex;flex-direction:column}
.guardian-athlete-head-v24 strong{font-size:1.08rem}
.guardian-athlete-head-v24 small{color:#6b7280;margin-top:3px}
.guardian-athlete-metrics-v24{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.guardian-athlete-metrics-v24 div{background:#f7f7f8;border-radius:12px;padding:10px}
.guardian-athlete-metrics-v24 small{display:block;color:#6b7280;font-size:.7rem;margin-bottom:4px}
.guardian-athlete-metrics-v24 strong{font-size:.95rem}
.guardian-card-link-v24{display:block;margin-top:14px;font-size:.82rem;font-weight:700;color:#b91c1c}
.guardian-profile-hero-v24{grid-template-columns:minmax(0,1fr) minmax(360px,.9fr)}
.guardian-parent-note-v24{margin:16px 0;padding:14px 18px;font-size:.9rem}
.guardian-portal-grid-v24{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.guardian-card-v24 .section-head-mini{margin-bottom:10px}
.guardian-warning-v24{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:10px;padding:9px 10px;font-size:.78rem;margin-bottom:10px;font-weight:700}
.guardian-mini-list-v24{display:grid;gap:8px}
.guardian-mini-item-v24{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding:10px;border:1px solid #e5e7eb;border-radius:11px;background:#fafafa}
.guardian-mini-item-v24:hover{border-color:#cbd5e1;background:#fff}
.guardian-mini-item-v24 small{color:#6b7280;margin-top:2px;font-size:.74rem}
.guardian-mini-item-v24 span{color:#475569;margin-top:5px;font-size:.7rem}

@media(max-width:900px){
  .responsible-row-v24{grid-template-columns:1fr auto}
  .responsible-access-v24{grid-column:1/2}
  .responsible-actions-v24{grid-column:2/3;grid-row:1/3}
  .guardian-link-row-v24{grid-template-columns:1fr 160px;align-items:start}
  .mini-check-v24{padding-left:28px}
  .guardian-profile-hero-v24{grid-template-columns:1fr}
  .guardian-portal-grid-v24{grid-template-columns:1fr}
}
@media(max-width:640px){
  .search-row-v24{flex-direction:column;align-items:stretch}
  .responsible-row-v24{grid-template-columns:1fr;gap:12px}
  .responsible-access-v24,.responsible-actions-v24{grid-column:auto;grid-row:auto}
  .responsible-actions-v24{justify-content:flex-start}
  .guardian-link-row-v24{grid-template-columns:1fr;padding:13px}
  .mini-check-v24{padding-left:28px}
  .invite-box-v24{flex-direction:column;align-items:stretch}
  .guardian-athlete-metrics-v24{grid-template-columns:1fr 1fr}
}

/* ================================
   V2.5 - Check-in por QR + PWA
   ================================ */
.user-links-v25{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.install-app-link-v25{appearance:none;border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:999px;padding:4px 9px;font:inherit;font-size:10px;font-weight:850;cursor:pointer;margin-right:4px}
.install-app-link-v25:hover{background:rgba(255,255,255,.2)}
.install-app-btn-v25{width:100%;margin-top:10px}
.update-card-v25{display:flex;align-items:center;justify-content:space-between;gap:18px}.update-card-v25 h2{margin-top:0}

.qr-checkin-card-v25{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:center;background:linear-gradient(135deg,#fff 0%,#fbf8f7 100%);border:1px solid var(--line);border-radius:22px;padding:24px;margin:18px 0;box-shadow:0 12px 34px rgba(24,24,27,.06);position:relative;overflow:hidden}
.qr-checkin-card-v25:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#b91c1c}
.qr-checkin-copy-v25 h2{font-size:24px;letter-spacing:-.035em;margin:5px 0 8px}.qr-checkin-copy-v25 p{max-width:650px;color:var(--muted);line-height:1.55;margin:0 0 14px}
.qr-code-frame-v25{background:#fff;border:1px solid #e7e2de;border-radius:20px;padding:12px;display:grid;place-items:center;box-shadow:0 10px 24px rgba(23,23,23,.07)}
.qr-code-frame-v25 svg{width:100%;height:auto;max-width:290px;display:block}.qr-code-frame-v25>small{font-size:9px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-top:5px}
.qr-link-box-v25{display:flex;gap:8px;align-items:center;max-width:720px}.qr-link-box-v25 input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;background:#f6f4f2}
.qr-actions-v25{margin-top:12px;align-items:center}.qr-actions-v25 form{margin:0}.qr-security-note-v25{display:block;color:#817a75;font-size:10px;line-height:1.45;margin-top:12px;max-width:700px}
.attendance-source-v25{display:block;margin-top:5px;color:#77706b;font-size:9px;font-weight:800}.attendance-person.is-present .attendance-source-v25{color:#2f6b44}

.checkin-shell-v25{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#f7eeed 0,#f3f4f6 38%,#eceeef 100%);padding:24px;box-sizing:border-box}
.checkin-card-v25{width:min(460px,100%);background:#fff;border:1px solid #e7e2de;border-radius:26px;padding:30px;text-align:center;box-shadow:0 24px 60px rgba(20,20,23,.11)}
.checkin-logo-v25{margin:0 auto 18px}.checkin-icon-v25{width:66px;height:66px;border-radius:22px;display:grid;place-items:center;margin:0 auto 16px;font-size:30px;font-weight:950}.checkin-icon-v25.is-success{background:#eaf7ee;color:#277144;border:1px solid #bee1c8}.checkin-icon-v25.is-error{background:#fff0f0;color:#b91c1c;border:1px solid #f3c5c5}
.checkin-card-v25 h1{font-size:27px;margin:8px 0 8px}.checkin-card-v25 p{color:var(--muted);line-height:1.55;margin-bottom:20px}
.checkin-result-wrap-v25{display:grid;place-items:center;min-height:calc(100vh - 190px);padding:18px 0}.checkin-result-card-v25{width:min(680px,100%);text-align:center;background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 18px 48px rgba(20,20,23,.08)}
.checkin-result-card-v25 h1{font-size:30px;letter-spacing:-.04em;margin:6px 0 8px}.checkin-result-card-v25>p{color:var(--muted);margin:0 auto 22px;max-width:540px;line-height:1.55}
.checkin-meta-v25{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:18px}.checkin-meta-v25>div{background:#f7f5f3;border:1px solid var(--line);border-radius:13px;padding:11px}.checkin-meta-v25 small,.checkin-meta-v25 strong{display:block}.checkin-meta-v25 small{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850}.checkin-meta-v25 strong{font-size:14px;margin-top:5px}.checkin-actions-v25{justify-content:center;margin-top:20px}

.qr-screen-body-v25{margin:0;background:#efefef;color:#171717;min-height:100vh}.qr-screen-v25{min-height:100vh;box-sizing:border-box;padding:28px 38px;display:flex;flex-direction:column}.qr-screen-top-v25{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.qr-screen-top-v25 .brand{color:#171717}.qr-screen-top-v25 .brand small{color:#6b7280}
.qr-screen-main-v25{flex:1;display:grid;grid-template-columns:minmax(360px,.85fr) minmax(440px,1.15fr);gap:34px;align-items:center;max-width:1300px;width:100%;margin:0 auto}.qr-screen-copy-v25 h1{font-size:clamp(38px,6vw,76px);letter-spacing:-.055em;line-height:.98;margin:8px 0 10px}.qr-screen-copy-v25>p{font-size:20px;color:#6b7280}.qr-live-stats-v25{display:flex;gap:12px;margin:26px 0 16px}.qr-live-stats-v25>div{min-width:145px;background:#fff;border:1px solid #dedad7;border-radius:18px;padding:16px 18px;box-shadow:0 8px 22px rgba(0,0,0,.05)}.qr-live-stats-v25 strong,.qr-live-stats-v25 small{display:block}.qr-live-stats-v25 strong{font-size:34px;line-height:1}.qr-live-stats-v25 small{font-size:10px;color:#6b7280;font-weight:850;margin-top:6px;text-transform:uppercase}
.qr-live-status-v25{display:inline-flex;padding:8px 12px;border-radius:999px;font-size:11px;font-weight:900}.qr-live-status-v25.is-open{background:#e9f8ee;color:#2f7047}.qr-live-status-v25.is-closed{background:#fff0f0;color:#b91c1c}.qr-screen-instruction-v25{max-width:500px;font-size:15px!important;line-height:1.55;margin-top:22px!important}
.qr-screen-code-v25{background:#fff;border-radius:30px;padding:24px;box-shadow:0 26px 70px rgba(20,20,23,.13);display:grid;place-items:center;text-align:center}.qr-screen-code-v25 svg{display:block;width:min(70vh,100%);height:auto;max-width:560px}.qr-screen-code-v25>strong{font-size:15px;margin-top:8px;text-transform:uppercase;letter-spacing:.06em}

@media(max-width:900px){
  .qr-checkin-card-v25{grid-template-columns:1fr}.qr-code-frame-v25{max-width:340px;width:100%;justify-self:center}.qr-screen-main-v25{grid-template-columns:1fr;text-align:center}.qr-screen-copy-v25{order:2}.qr-screen-code-v25{order:1;max-width:560px;width:100%;justify-self:center;box-sizing:border-box}.qr-live-stats-v25{justify-content:center}.qr-screen-instruction-v25{margin-left:auto;margin-right:auto}.qr-live-status-v25{justify-content:center}
  .checkin-meta-v25{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .user-links-v25{justify-content:flex-end}.install-app-link-v25{font-size:9px;padding:3px 7px}
  .qr-checkin-card-v25{padding:18px 15px;border-radius:17px;gap:16px}.qr-checkin-copy-v25 h2{font-size:21px}.qr-link-box-v25{flex-direction:column;align-items:stretch}.qr-actions-v25{flex-direction:column;align-items:stretch}.qr-actions-v25 .btn,.qr-actions-v25 form,.qr-actions-v25 form .btn{width:100%;box-sizing:border-box}
  .checkin-result-card-v25{padding:24px 16px}.checkin-result-card-v25 h1{font-size:25px}.checkin-meta-v25{grid-template-columns:1fr 1fr}
  .qr-screen-v25{padding:18px 14px}.qr-screen-top-v25{align-items:flex-start}.qr-screen-top-v25 .brand small{display:none}.qr-screen-top-v25 .btn{font-size:10px;padding:9px 10px}.qr-screen-main-v25{gap:18px}.qr-screen-code-v25{padding:14px;border-radius:22px}.qr-screen-copy-v25 h1{font-size:34px}.qr-screen-copy-v25>p{font-size:15px}.qr-live-stats-v25>div{min-width:0;flex:1;padding:12px}.qr-live-stats-v25 strong{font-size:28px}
  .update-card-v25{align-items:stretch;flex-direction:column}
}

/* V2.7 - Comunicação */
.notice-highlight-v27{margin:0 0 24px}.notice-highlight-head-v27{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}.notice-highlight-head-v27 h2{margin:3px 0 0}.notice-highlight-head-v27>a{font-weight:800;text-decoration:none}.notice-highlight-grid-v27{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.notice-card-v27,.notice-public-card-v27{position:relative;display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--border,#e5e7eb);border-left:5px solid #64748b;border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.notice-card-v27:hover,.notice-public-card-v27:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,23,42,.09)}.notice-card-v27 h3,.notice-public-card-v27 h2{margin:9px 0 7px}.notice-card-v27 p,.notice-public-card-v27 p{margin:0 0 9px;color:var(--muted,#64748b);line-height:1.5}.notice-card-top-v27,.notice-public-top-v27{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.notice-info-v27{border-left-color:#2563eb}.notice-important-v27{border-left-color:#dc2626}.notice-event-v27{border-left-color:#7c3aed}.communication-list-v27,.notice-public-list-v27{display:grid;gap:14px}.communication-admin-card-v27{display:flex;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--border,#e5e7eb);border-left:5px solid #64748b;border-radius:16px;padding:18px}.communication-admin-main-v27{min-width:0;flex:1}.communication-admin-main-v27 h2{margin:8px 0}.communication-admin-main-v27 h2 a{text-decoration:none;color:inherit}.communication-admin-main-v27 p{margin:0 0 10px;color:var(--muted,#64748b)}.communication-admin-actions-v27{display:flex;align-items:center;align-content:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.communication-admin-actions-v27 form{margin:0}.communication-meta-v27{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.notice-kind-v27,.notice-pin-v27,.notice-new-v27{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;background:#eef2ff;color:#3730a3}.notice-pin-v27{background:#fef3c7;color:#92400e}.notice-new-v27{background:#dc2626;color:#fff;margin-right:6px}.notice-public-card-v27.is-unread-v27{box-shadow:0 0 0 2px rgba(220,38,38,.12),0 10px 28px rgba(15,23,42,.08)}.notice-detail-v27{border-left:6px solid #64748b}.notice-detail-meta-v27{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:20px;color:var(--muted,#64748b);font-size:13px}.notice-detail-message-v27{font-size:17px;line-height:1.75;white-space:normal}.notice-detail-admin-v27{margin-top:24px;padding-top:14px;border-top:1px solid var(--border,#e5e7eb)}.communication-form-v27 textarea{resize:vertical;min-height:180px}.communication-checks-v27{display:flex;gap:24px;flex-wrap:wrap;margin:18px 0}.communication-checks-v27 label{display:flex;align-items:center;gap:8px;font-weight:700}.whatsapp-summary-v27{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.whatsapp-summary-v27 .card{display:flex;flex-direction:column;gap:4px}.whatsapp-summary-v27 strong{font-size:28px}.whatsapp-message-v27 pre{white-space:pre-wrap;font:inherit;background:#f8fafc;border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:14px;line-height:1.55}.whatsapp-recipient-list-v27{display:grid;gap:8px}.whatsapp-recipient-v27{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--border,#e5e7eb)}.whatsapp-recipient-v27:last-child{border-bottom:0}.whatsapp-recipient-v27>div{min-width:0}.whatsapp-recipient-v27 strong,.whatsapp-recipient-v27 small{display:block}.whatsapp-recipient-v27 small{color:var(--muted,#64748b);margin-top:3px}.btn-danger{background:#991b1b!important;color:#fff!important;border-color:#991b1b!important}
@media(max-width:850px){.notice-highlight-grid-v27{grid-template-columns:1fr}.communication-admin-card-v27{display:block}.communication-admin-actions-v27{justify-content:flex-start;margin-top:14px}.whatsapp-summary-v27{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:560px){.notice-highlight-head-v27{align-items:center}.whatsapp-summary-v27{grid-template-columns:1fr}.whatsapp-recipient-v27{align-items:flex-start;flex-direction:column}.whatsapp-recipient-v27 .btn{width:100%;text-align:center}.communication-admin-actions-v27 .btn,.communication-admin-actions-v27 form,.communication-admin-actions-v27 form button{width:100%}}

/* V2.8 - Eventos e ações do projeto */
.project-event-grid-v28{display:grid;gap:14px}.project-event-card-v28{display:grid;grid-template-columns:78px minmax(0,1fr) 145px;gap:18px;align-items:center;background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:18px;padding:16px;text-decoration:none;color:inherit;box-shadow:0 8px 24px rgba(15,23,42,.05);transition:.18s ease}.project-event-card-v28:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(15,23,42,.09)}.project-event-card-v28.is-past-v28{opacity:.74}.project-event-date-v28{width:68px;min-height:76px;border-radius:16px;background:#171717;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.project-event-date-v28 strong{font-size:28px}.project-event-date-v28 span{font-size:11px;font-weight:900;letter-spacing:.08em;margin-top:5px}.project-event-date-v28 small{font-size:9px;color:#cbd5e1;margin-top:3px}.project-event-main-v28{min-width:0}.project-event-main-v28 h2{margin:6px 0 5px;font-size:20px}.project-event-main-v28 p{margin:0 0 8px;color:var(--muted,#64748b);line-height:1.45}.project-event-main-v28>small{display:block;color:var(--muted,#64748b)}.project-event-meta-v28{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.project-event-meta-v28>span:first-child{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#9b1c1c}.project-event-athlete-v28{margin-top:5px!important;font-weight:800;color:#334155!important}.project-event-side-v28{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.project-event-side-v28>strong{font-size:30px;line-height:1}.project-event-side-v28>small,.project-event-side-v28>span:not(.badge):not(.event-open-chip-v28){font-size:11px;color:var(--muted,#64748b)}.event-open-chip-v28{display:inline-flex;border-radius:999px;background:#eef8f0;color:#25633b;padding:7px 10px;font-size:11px;font-weight:900}
.event-form-v28 textarea{resize:vertical}.event-hero-v28{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:18px;background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:20px;padding:22px;box-shadow:0 10px 30px rgba(15,23,42,.05)}.event-tags-v28{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.event-tag-v28{display:inline-flex;border-radius:999px;background:#f1f5f9;color:#475569;padding:6px 10px;font-size:11px;font-weight:850}.event-description-v28{font-size:16px;line-height:1.65;margin:18px 0;color:#334155}.event-info-grid-v28{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.event-info-grid-v28>div{background:#f8fafc;border:1px solid #edf0f3;border-radius:13px;padding:11px}.event-info-grid-v28 small,.event-info-grid-v28 strong{display:block}.event-info-grid-v28 small{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#64748b);font-weight:900}.event-info-grid-v28 strong{font-size:13px;margin-top:4px;overflow-wrap:anywhere}.event-capacity-v28{background:#171717;color:#fff;border-radius:18px;padding:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.event-capacity-v28 strong{font-size:48px;line-height:1}.event-capacity-v28>span{font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:11px;margin-top:7px}.event-capacity-v28 small{color:#cbd5e1;margin-top:10px}.event-capacity-v28 em{font-style:normal;background:#f59e0b;color:#171717;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;margin-top:10px}
.event-admin-grid-v28{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:14px;margin-top:16px}.event-add-form-v28{display:flex;gap:10px;align-items:end}.event-add-form-v28 select{flex:1}.event-mini-stats-v28{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.event-mini-stats-v28>div{text-align:center;background:#f8fafc;border-radius:12px;padding:12px}.event-mini-stats-v28 small,.event-mini-stats-v28 strong{display:block}.event-mini-stats-v28 small{font-size:9px;color:var(--muted,#64748b);text-transform:uppercase;font-weight:900}.event-mini-stats-v28 strong{font-size:26px;margin-top:4px}.event-attendee-list-v28{display:grid;gap:0}.event-attendee-v28{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--border,#e5e7eb)}.event-attendee-v28:last-child{border-bottom:0}.event-attendee-v28.is-cancelled-v28{opacity:.55}.event-attendee-main-v28>strong,.event-attendee-main-v28>small{display:block}.event-attendee-main-v28>small{color:var(--muted,#64748b);font-size:11px;margin-top:4px}.event-attendee-status-v28,.event-attendee-actions-v28{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.event-attendee-actions-v28 form{margin:0}
.event-user-athletes-v28{display:grid;gap:12px}.event-user-athlete-v28{margin:0}.event-user-athlete-head-v28{display:flex;align-items:center;justify-content:space-between;gap:16px}.event-user-athlete-head-v28>div>strong{display:block;font-size:18px;margin-bottom:6px}.event-confirm-text-v28{background:#edf8f0;color:#2f6944;border-radius:12px;padding:11px 12px}.event-wait-text-v28{background:#fff7e6;color:#8a5a00;border-radius:12px;padding:11px 12px}
.event-home-v28{margin:0 0 24px}.event-home-grid-v28{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.event-home-card-v28{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:16px;padding:13px;text-decoration:none;color:inherit}.event-home-card-v28:hover{box-shadow:0 10px 26px rgba(15,23,42,.08)}.event-home-date-v28{height:58px;border-radius:14px;background:#171717;color:#fff;display:grid;place-items:center;align-content:center}.event-home-date-v28 strong{font-size:23px;line-height:1}.event-home-date-v28 small{font-size:9px;margin-top:4px;color:#d1d5db}.event-home-card-v28 h3{font-size:15px;margin:3px 0}.event-home-card-v28>div:nth-child(2)>span{font-size:9px;text-transform:uppercase;font-weight:900;color:#9b1c1c}.event-home-card-v28>div:nth-child(2)>small{color:var(--muted,#64748b);font-size:10px}
@media(max-width:900px){.project-event-card-v28{grid-template-columns:68px minmax(0,1fr)}.project-event-side-v28{grid-column:2;text-align:left;align-items:flex-start}.event-hero-v28{grid-template-columns:1fr}.event-capacity-v28{min-height:120px}.event-info-grid-v28{grid-template-columns:1fr 1fr}.event-admin-grid-v28{grid-template-columns:1fr}.event-attendee-v28{grid-template-columns:1fr}.event-attendee-status-v28,.event-attendee-actions-v28{justify-content:flex-start}.event-home-grid-v28{grid-template-columns:1fr}}
@media(max-width:600px){.project-event-card-v28{grid-template-columns:58px minmax(0,1fr);gap:11px;padding:13px}.project-event-date-v28{width:58px;min-height:66px}.project-event-date-v28 strong{font-size:24px}.project-event-main-v28 h2{font-size:17px}.event-info-grid-v28{grid-template-columns:1fr}.event-add-form-v28{flex-direction:column;align-items:stretch}.event-add-form-v28 .btn{width:100%}.event-mini-stats-v28{grid-template-columns:1fr 1fr 1fr}.event-user-athlete-head-v28{align-items:flex-start;flex-direction:column}.event-user-athlete-v28 .form-actions{flex-direction:column;align-items:stretch}.event-user-athlete-v28 .form-actions form,.event-user-athlete-v28 .form-actions .btn{width:100%}.event-attendee-actions-v28{flex-direction:column;align-items:stretch}.event-attendee-actions-v28 form,.event-attendee-actions-v28 button{width:100%}.event-home-card-v28{grid-template-columns:52px minmax(0,1fr)}.event-home-card-v28>div:last-child{grid-column:2}}


/* V2.8.1 - correcoes mobile: graduacao unica + cards de eventos */
.student-hero-belt-v281{grid-template-columns:1fr!important}
.student-hero-belt-v281 .belt-inline-wrap{max-width:420px}
.event-home-v28{display:block!important}
.event-home-grid-v28{width:100%}
.event-home-card-v28{overflow:hidden}
.event-home-card-v28>div:nth-child(2){min-width:0}
.event-home-card-v28 h3{overflow-wrap:anywhere}
@media(max-width:600px){
  .event-home-v28{margin-top:4px;margin-bottom:22px}
  .event-home-grid-v28{gap:12px}
  .event-home-card-v28{display:grid!important;grid-template-columns:54px minmax(0,1fr)!important;gap:12px!important;padding:14px!important;border-radius:17px!important;background:#fff!important;border:1px solid var(--border,#e5e7eb)!important;box-shadow:0 7px 22px rgba(15,23,42,.06)!important;text-decoration:none!important}
  .event-home-date-v28{width:54px;height:58px;border-radius:13px}
  .event-home-card-v28>div:last-child{grid-column:2!important;justify-self:start}
  .event-home-card-v28 h3{font-size:16px;line-height:1.25;margin:4px 0 5px}
  .event-home-card-v28>div:nth-child(2)>small{display:block;line-height:1.4}
  .student-hero-belt-v281{padding-bottom:24px}
}

/* =========================================================
   V2.14 - identidade visual Camisa 12
   Mais contraste sem alterar a lógica do sistema.
   ========================================================= */
:root{
  --bg:#f0eeeb;
  --bg-soft:#f8f6f3;
  --card:#ffffff;
  --text:#17171a;
  --muted:#6d6866;
  --line:#ded9d4;
  --line-strong:#cec7c1;
  --accent:#b51f2a;
  --accent-dark:#79151c;
  --accent-soft:#fff0f1;
  --gold:#b78a2f;
  --gold-soft:#fff8e8;
  --purple:#6f42a6;
  --purple-soft:#f6effd;
  --blue:#2c5fb7;
  --blue-soft:#eef5ff;
  --green:#24734a;
  --green-soft:#edf9f2;
  --shadow:0 10px 30px rgba(29,24,22,.075);
  --shadow-hover:0 18px 45px rgba(29,24,22,.13);
}
body{
  background:
    radial-gradient(circle at 8% 0,rgba(181,31,42,.085),transparent 30rem),
    radial-gradient(circle at 94% 12%,rgba(183,138,47,.065),transparent 27rem),
    linear-gradient(180deg,#f9f7f4 0,#f0eeeb 30rem,#f0eeeb 100%);
}
.card,.table-wrap{
  border-color:var(--line);
  box-shadow:var(--shadow);
}
.card{background:linear-gradient(180deg,#fff 0%,#fff 74%,#fdfcfb 100%)}
.section-title{color:#1b1819}
.section-subtitle{color:#756e6a}

/* Dashboard e indicadores: menos branco chapado */
.grid-cards .stat{
  background:linear-gradient(145deg,#fff,#faf8f5);
  border-color:#ddd6d0;
}
.grid-cards .stat:nth-child(4n+1):before{background:linear-gradient(180deg,#b51f2a,#77131a)}
.grid-cards .stat:nth-child(4n+2):before{background:linear-gradient(180deg,#2f64b9,#1b3f83)}
.grid-cards .stat:nth-child(4n+3):before{background:linear-gradient(180deg,#2e8054,#1c5638)}
.grid-cards .stat:nth-child(4n+4):before{background:linear-gradient(180deg,#b78a2f,#7c5b17)}
.grid-cards .stat strong{color:#181619}

/* ---------- Ficha 360 ---------- */
.profile360-page-head h1{color:#181418}
.profile360-hero{
  color:#fff;
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 82% 18%,rgba(183,138,47,.18),transparent 17rem),
    radial-gradient(circle at 25% -20%,rgba(181,31,42,.30),transparent 22rem),
    linear-gradient(135deg,#151316 0%,#211b1d 50%,#171719 100%);
  box-shadow:0 18px 50px rgba(24,18,18,.20);
}
.profile360-hero:before{
  width:6px;
  background:linear-gradient(180deg,#e64a52 0%,#b51f2a 52%,#b78a2f 100%);
}
.profile360-hero:after{
  content:"";
  position:absolute;
  width:210px;height:210px;
  right:-75px;bottom:-125px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:50%;
  box-shadow:0 0 0 28px rgba(255,255,255,.018),0 0 0 60px rgba(255,255,255,.012);
  pointer-events:none;
}
.profile360-avatar{
  background:linear-gradient(145deg,#b51f2a,#64151b);
  box-shadow:0 13px 30px rgba(181,31,42,.30);
  border-color:rgba(255,255,255,.18);
  position:relative;z-index:1;
}
.profile360-identity{position:relative;z-index:1}
.profile360-identity .eyebrow{color:#d8c8c5}
.profile360-identity>p{color:#c9c0bd}
.profile360-identity .badge-ativo{background:rgba(49,159,96,.17);color:#baf1ce;border-color:rgba(130,225,168,.28)}
.profile360-identity .badge-inativo{background:rgba(217,65,65,.15);color:#ffc4c4;border-color:rgba(255,160,160,.22)}
.profile360-identity .badge-pendente{background:rgba(73,124,207,.19);color:#cde0ff;border-color:rgba(142,180,239,.28)}
.profile360-identity .activity-chip{background:rgba(255,255,255,.08);color:#eee8e5;border-color:rgba(255,255,255,.12)}
.profile360-identity .activity-good{background:rgba(50,158,94,.18);color:#c3f2d2;border-color:rgba(109,214,149,.24)}
.profile360-identity .activity-mid{background:rgba(215,161,45,.16);color:#ffe3a1;border-color:rgba(231,191,105,.25)}
.profile360-identity .activity-alert{background:rgba(212,62,62,.17);color:#ffc1c1;border-color:rgba(255,136,136,.22)}
.profile360-quickstats{position:relative;z-index:1}
.profile360-quickstats>div{
  background:rgba(255,255,255,.075);
  border-color:rgba(255,255,255,.105);
  backdrop-filter:blur(4px);
}
.profile360-quickstats>div:nth-child(1){box-shadow:inset 3px 0 #d84950}
.profile360-quickstats>div:nth-child(2){box-shadow:inset 3px 0 #4c83d1}
.profile360-quickstats>div:nth-child(3){box-shadow:inset 3px 0 #c69b42}
.profile360-quickstats>div:nth-child(4){box-shadow:inset 3px 0 #4e9e6d}
.profile360-quickstats small{color:#c9c0bd}
.profile360-quickstats strong{color:#fff}

/* Sidebar com pequenas assinaturas de cor */
.profile360-sidebar .profile-info-card{
  position:relative;
  overflow:hidden;
  border-color:#ddd6d0;
}
.profile360-sidebar .profile-info-card:before{
  content:"";position:absolute;left:0;top:0;right:0;height:3px;background:#b51f2a;
}
.profile360-sidebar .profile-info-card:nth-child(2):before{background:#b78a2f}
.profile360-sidebar .profile-info-card:nth-child(3):before{background:#2c5fb7}
.profile360-sidebar .profile-info-card:nth-child(4):before{background:#6f42a6}
.profile360-sidebar .profile-info-card:nth-child(5):before{background:#2b7950}
.profile360-sidebar .profile-info-card h2{letter-spacing:-.015em}
.profile-dl>div{border-color:#ebe6e1}
.profile-dl dt{color:#817773}
.profile-dl dd{color:#272326}

/* Cards principais da ficha com assinatura por seção */
.profile360-main>.card{
  position:relative;
  overflow:hidden;
  border-color:#ddd6d0;
  padding-top:21px;
}
.profile360-main>.card:before{
  content:"";position:absolute;left:0;top:0;right:0;height:4px;
  background:linear-gradient(90deg,#b51f2a,#db5a61);
}
.profile360-main>.card:nth-child(2):before{background:linear-gradient(90deg,#6f42a6,#a477cf)}
.profile360-main>.card:nth-child(3):before{background:linear-gradient(90deg,#2c5fb7,#67a1ea)}
.profile360-main>.card:nth-child(4):before{background:linear-gradient(90deg,#2b7950,#5bab7a)}
.profile360-main>.card:nth-child(5):before{background:linear-gradient(90deg,#b78a2f,#ddb45c)}
.profile360-main>.card:nth-child(6):before{background:linear-gradient(90deg,#9b5934,#cf8b59)}
.profile360-main>.card:nth-child(7):before{background:linear-gradient(90deg,#4f6c9e,#7da4d9)}
.profile360-main>.card:nth-child(8):before{background:linear-gradient(90deg,#6b5b8d,#9c86c3)}

.profile-metric-grid>div{
  background:#fbfaf8;
  border-color:#e4ded8;
  transition:transform .15s ease,box-shadow .15s ease;
}
.profile-metric-grid>div:nth-child(1){background:linear-gradient(145deg,#fff6f6,#fff);border-color:#f0d8d9}
.profile-metric-grid>div:nth-child(2){background:linear-gradient(145deg,#f7f1fd,#fff);border-color:#e5d8f1}
.profile-metric-grid>div:nth-child(3){background:linear-gradient(145deg,#eef6ff,#fff);border-color:#d7e5f6}
.profile-metric-grid>div:nth-child(4){background:linear-gradient(145deg,#edf8f2,#fff);border-color:#d5ebdf}
.profile-metric-grid>div:nth-child(5){background:linear-gradient(145deg,#fff8e9,#fff);border-color:#eee0ba}
.profile-metric-grid>div:nth-child(6){background:linear-gradient(145deg,#f5f3f1,#fff);border-color:#dfdad5}
.profile-metric-grid strong{color:#211d20}
.profile-metric-grid>div:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(24,20,18,.07)}

.profile-class-item{
  background:linear-gradient(145deg,#faf9f7,#fff);
  border-color:#e1dbd5;
}
.profile-training-row,.profile-history-row,.profile-loan-row{border-color:#ebe5df}
.profile-training-date{
  background:linear-gradient(145deg,#2b282b,#171719);
  border-color:#292629;color:#fff;
  box-shadow:0 5px 12px rgba(24,24,27,.11);
}
.profile-training-date small{color:#bbb3af}
.profile-history-row{padding-left:9px;padding-right:9px;border-radius:11px}
.profile-history-row:hover{background:#fbf8f5}

/* Competições e eventos dentro da ficha */
.profile-competition-row-v23{
  background:linear-gradient(145deg,#fbfaf8,#fff);
  border-color:#dfd8d2;
  box-shadow:0 4px 12px rgba(24,20,18,.035);
}
.profile-competition-row-v23:hover{
  transform:translateY(-1px);
  border-color:#cbbfb7;
  box-shadow:0 9px 22px rgba(24,20,18,.075);
}
.profile-competition-date-v23{
  background:linear-gradient(145deg,#2a2527,#171719);
  box-shadow:0 7px 17px rgba(24,20,18,.15);
}

/* ---------- Meu Tatame ---------- */
.student-hero{
  background:
    radial-gradient(circle at 82% 20%,rgba(183,138,47,.22),transparent 18rem),
    radial-gradient(circle at 10% 0,rgba(181,31,42,.33),transparent 23rem),
    linear-gradient(135deg,#121214 0%,#21191c 52%,#171719 100%);
  box-shadow:0 20px 48px rgba(24,19,19,.22);
  position:relative;overflow:hidden;
}
.student-hero:after{
  content:"C12";
  position:absolute;right:18px;bottom:-24px;
  font-size:92px;font-weight:950;letter-spacing:-.08em;
  color:rgba(255,255,255,.026);pointer-events:none;
}
.student-hero>*{position:relative;z-index:1}
.student-stats .stat{background:linear-gradient(145deg,#fff,#faf8f5)}
.timeline li{border-color:#e8e1dc}
.timeline-dot{background:#b51f2a;box-shadow:0 0 0 4px #fdebec}

/* Avisos em destaque */
.notice-card-v27,.notice-public-card-v27{
  border-color:#ded8d3;
  box-shadow:0 9px 26px rgba(24,20,18,.065);
}
.notice-info-v27{background:linear-gradient(145deg,#eef5ff,#fff);border-left-color:#2c5fb7}
.notice-important-v27{background:linear-gradient(145deg,#fff0f1,#fff);border-left-color:#b51f2a}
.notice-event-v27{background:linear-gradient(145deg,#f6effd,#fff);border-left-color:#6f42a6}
.notice-pin-v27{background:#fff2c9;color:#7f5b12;border:1px solid #eddaa0}

/* Eventos: cards com mais presença visual */
.event-home-card-v28,.project-event-card-v28{
  border-color:#ddd6d0;
  background:linear-gradient(145deg,#fff,#fbf9f6);
  box-shadow:0 9px 26px rgba(24,20,18,.065);
}
.event-home-card-v28:hover,.project-event-card-v28:hover{
  transform:translateY(-2px);
  border-color:#c9bdb5;
  box-shadow:0 14px 34px rgba(24,20,18,.11);
}
.event-home-date-v28,.project-event-date-v28{
  background:linear-gradient(145deg,#761820,#b51f2a);
  box-shadow:0 8px 18px rgba(181,31,42,.20);
}
.event-home-card-v28>div:nth-child(2)>span,.project-event-main-v28>.project-event-meta-v28>span:first-child{color:#9f1822}
.event-open-chip-v28{background:#eaf8ef;color:#22613b;border:1px solid #ccebd7}

/* Competições: medalhas e cards menos neutros */
.competition-card-v23{background:linear-gradient(145deg,#fff,#fbf8f4)}
.competition-date-v23{background:linear-gradient(145deg,#2b2527,#171719)}
.medal-ouro{box-shadow:inset 0 0 0 1px rgba(183,138,47,.08)}
.medal-prata{box-shadow:inset 0 0 0 1px rgba(90,96,103,.05)}
.medal-bronze{box-shadow:inset 0 0 0 1px rgba(145,84,45,.06)}

/* Alertas */
.alert-student-card{background:linear-gradient(145deg,#fff,#fdfaf6)}
.alert-student-card.alert-warning{background:linear-gradient(145deg,#fff8ef,#fff)}
.alert-student-card.alert-critical{background:linear-gradient(145deg,#fff1f1,#fff)}

/* Botões secundários com mais definição */
.btn-secondary{
  border-color:#d5cec8;
  background:linear-gradient(180deg,#fff,#faf7f4);
}
.btn-secondary:hover{background:#f6f1ed;border-color:#c4b8b0}

/* Melhor contraste em tabelas e listas */
.table-wrap{background:#fff}
th{background:#f7f3ef;color:#756d68}
tbody tr:hover{background:#fbf6f3}

/* Mobile: cores sem excesso */
@media(max-width:620px){
  .container{padding-top:22px}
  .profile360-hero{padding:18px}
  .profile360-hero:after{display:none}
  .profile360-avatar{width:62px;height:62px;border-radius:18px}
  .profile360-quickstats>div{padding:10px}
  .profile360-main>.card{padding:17px}
  .profile-metric-grid>div{padding:11px}
  .profile360-sidebar .profile-info-card:before{height:3px}
  .student-hero:after{font-size:68px;right:8px}
  .notice-card-v27,.notice-public-card-v27{padding:15px}
  .event-home-card-v28{box-shadow:0 8px 22px rgba(24,20,18,.075)!important}
}

/* V2.15 — Foto do aluno */
.photo-upload-v215{margin-top:4px}
.photo-upload-box-v215{display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;border:1px dashed var(--line-strong);background:linear-gradient(145deg,#fff,#faf8f6);padding:14px;border-radius:16px}
.photo-preview-v215{width:92px;height:92px;border-radius:18px;background:linear-gradient(145deg,#29282b,#17171a);display:grid;place-items:center;color:#fff;font-size:29px;font-weight:900;overflow:hidden;box-shadow:0 7px 18px rgba(24,24,27,.12)}
.photo-preview-v215 img,.student-list-avatar-v215 img,.approval-avatar-v215 img,.profile360-avatar-photo-v215 img,.attendance-avatar-photo-v215 img,.student-hero-photo-wrap-v215 img,.student-mini-photo-v215 img,.self-photo-current-v215 img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.photo-remove-v215{display:flex!important;align-items:center;gap:8px;margin-top:9px!important;font-size:12px!important;color:var(--danger)!important;font-weight:750!important}
.photo-remove-v215 input{width:auto;min-height:0}
.student-list-person-v215{display:flex;align-items:center;gap:11px;min-width:220px}
.student-list-avatar-v215{width:42px;height:42px;border-radius:13px;overflow:hidden;background:linear-gradient(145deg,#29282b,#151518);color:#fff;display:grid;place-items:center;text-decoration:none;font-weight:900;flex:none;box-shadow:0 4px 12px rgba(24,24,27,.1)}
.approval-person-v215{display:flex;align-items:center;gap:12px}
.approval-avatar-v215{width:58px;height:58px;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#2b292d,#151518);color:#fff;display:grid;place-items:center;font-size:21px;font-weight:900;flex:none}
.profile360-avatar-photo-v215{overflow:hidden;padding:0!important}
.profile360-avatar-photo-v215 img{border-radius:inherit}
.attendance-avatar-photo-v215{overflow:hidden;padding:0}
.attendance-avatar-photo-v215 img{border-radius:inherit}
.is-present .attendance-avatar-photo-v215 img{filter:saturate(1.05)}
.student-hero-photo-v215{display:grid!important;grid-template-columns:104px 1fr;align-items:center;gap:20px}
.student-hero-photo-wrap-v215{width:104px;height:104px;border-radius:24px;overflow:hidden;background:linear-gradient(145deg,#2c2a2e,#151518);color:#fff;display:grid;place-items:center;font-size:36px;font-weight:900;border:3px solid rgba(255,255,255,.22);box-shadow:0 10px 28px rgba(0,0,0,.18)}
.student-hero-main-v215 h1{margin:2px 0 4px;font-size:28px;letter-spacing:-.035em}
.student-hero-main-v215>small{display:block;opacity:.75;margin-bottom:10px}
.student-photo-link-v215{display:inline-flex;margin-top:8px;color:inherit;text-decoration:none;font-size:12px;font-weight:800;border-bottom:1px solid currentColor;opacity:.8}
.student-mini-profile-v215{display:flex;align-items:center;gap:16px}
.student-mini-profile-v215 h2{margin:0 0 4px}
.student-mini-profile-v215 p{margin:0 0 10px;color:var(--muted)}
.student-mini-photo-v215{width:74px;height:74px;border-radius:19px;overflow:hidden;background:linear-gradient(145deg,#2c2a2e,#151518);color:#fff;display:grid;place-items:center;font-size:27px;font-weight:900;flex:none}
.self-photo-card-v215{display:grid;grid-template-columns:190px 1fr;gap:28px;align-items:center;max-width:760px}
.self-photo-current-v215{width:190px;height:190px;border-radius:30px;overflow:hidden;background:linear-gradient(145deg,#2b292d,#151518);color:#fff;display:grid;place-items:center;font-size:64px;font-weight:900;box-shadow:0 14px 35px rgba(24,24,27,.16)}
.self-photo-form-v215 h2{margin:0 0 15px}
.self-photo-form-v215 .form-actions{margin-top:18px}
.update-results-v215{display:grid;gap:8px;background:#f5fbf6;border:1px solid #d5ead9;padding:14px;border-radius:14px;color:#285b35}

@media(max-width:720px){
  .photo-upload-box-v215{grid-template-columns:72px 1fr;gap:12px}
  .photo-preview-v215{width:72px;height:72px;border-radius:16px}
  .student-hero-photo-v215{grid-template-columns:76px 1fr;gap:14px}
  .student-hero-photo-wrap-v215{width:76px;height:76px;border-radius:19px;font-size:28px}
  .student-hero-main-v215 h1{font-size:22px}
  .self-photo-card-v215{grid-template-columns:1fr;text-align:center}
  .self-photo-current-v215{width:160px;height:160px;margin:0 auto}
  .self-photo-form-v215{text-align:left}
}

/* V2.16 — Professores, responsáveis por turma e substituições */
.teacher-info-strip-v216{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.teacher-info-strip-v216>div{padding:14px 16px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#fff,#faf7f4);display:flex;flex-direction:column;gap:3px}
.teacher-info-strip-v216 strong{font-size:14px}.teacher-info-strip-v216 span{font-size:12px;color:var(--muted)}
.teacher-grid-v216{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.teacher-card-v216{position:relative;overflow:hidden;border-top:3px solid #8b1e27}
.teacher-card-v216:after{content:"C12";position:absolute;right:-7px;bottom:-24px;font-size:74px;font-weight:950;letter-spacing:-.08em;color:rgba(139,30,39,.035);pointer-events:none}
.teacher-inactive-v216{opacity:.68;filter:saturate(.55)}
.teacher-card-head-v216{display:flex;align-items:center;gap:13px;position:relative;z-index:1}
.teacher-avatar-v216{width:56px;height:56px;border-radius:17px;background:linear-gradient(145deg,#2d292c,#171719);display:grid;place-items:center;color:#fff;font-size:22px;font-weight:900;box-shadow:0 7px 18px rgba(24,20,18,.14);flex:none}
.teacher-card-title-v216 h2{margin:0;font-size:19px}.teacher-card-title-v216 p{margin:2px 0 7px;color:var(--muted);font-size:13px}.teacher-badges-v216{display:flex;flex-wrap:wrap;gap:6px}
.teacher-belt-v216{margin:14px 0 12px}.teacher-stats-v216{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative;z-index:1}.teacher-stats-v216>div{padding:10px;border:1px solid var(--line);border-radius:12px;background:#fbf9f7;display:flex;flex-direction:column}.teacher-stats-v216 strong{font-size:15px}.teacher-stats-v216 small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.teacher-contact-v216{display:grid;gap:5px;margin-top:12px;font-size:12px;color:var(--muted);position:relative;z-index:1}
.teacher-account-choice-v216{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}.teacher-account-option-v216{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:14px!important;border:1px solid var(--line-strong)!important;border-radius:15px;background:#fbf9f7;cursor:pointer}.teacher-account-option-v216 input{width:auto!important;min-height:0!important;margin-top:4px}.teacher-account-option-v216 span{display:flex;flex-direction:column;gap:3px}.teacher-account-option-v216 strong{font-size:13px}.teacher-account-option-v216 small{font-size:11px;color:var(--muted);font-weight:500}
.readonly-box-v216{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#f8f6f4;display:flex;flex-direction:column;gap:3px}.readonly-box-v216 small,.field-help-v216{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
.class-teacher-v216{font-weight:750;color:#5f2630!important}
.attendance-teacher-v216{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:7px}.attendance-teacher-v216 strong{font-size:13px}.attendance-teacher-v216 small{width:100%;font-size:11px;color:var(--muted)}
.attendance-teacher-change-v216{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin-bottom:14px;border-left:3px solid #8b1e27}.attendance-teacher-change-v216 p{margin:3px 0 0;font-size:12px}.teacher-change-form-v216{display:flex;align-items:center;gap:8px;min-width:min(100%,430px)}.teacher-change-form-v216 select{min-width:220px}
.open-class-form{align-items:end}.open-class-form .field-help-v216{max-width:260px}

@media(max-width:720px){
  .teacher-info-strip-v216,.teacher-account-choice-v216{grid-template-columns:1fr}
  .teacher-grid-v216{grid-template-columns:1fr}
  .attendance-teacher-change-v216{align-items:stretch;flex-direction:column}
  .teacher-change-form-v216{min-width:0;flex-direction:column;align-items:stretch}.teacher-change-form-v216 select{min-width:0;width:100%}
  .teacher-stats-v216{grid-template-columns:repeat(3,1fr)}
}

/* V2.17 — Afastamentos justificados */
.badge-leave-v217{display:inline-flex;align-items:center;gap:5px;background:#fff1da!important;color:#7b4a08!important;border:1px solid #efcf9a!important}
.activity-leave-v217{background:#fff0d7!important;color:#7b4a08!important;border-color:#ebca91!important}
.text-leave-v217{color:#9a5b08}
.leave-grid-v217{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:15px}
.leave-card-v217{border-top:3px solid #d69a35;display:flex;flex-direction:column;gap:14px}
.leave-card-v217.is-active{background:linear-gradient(145deg,#fffdf9,#fff7e8);box-shadow:0 10px 28px rgba(131,84,13,.09)}
.leave-card-head-v217{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.leave-card-head-v217>div{display:flex;align-items:center;gap:11px}.leave-card-head-v217 small{display:block;color:var(--muted);margin-top:2px}
.leave-icon-v217{width:42px;height:42px;border-radius:13px;background:#fff0d4;display:grid;place-items:center;font-size:20px;flex:none;border:1px solid #f0d19b}
.leave-card-body-v217{display:flex;flex-direction:column;gap:4px;padding:12px 13px;border-radius:13px;background:rgba(255,255,255,.72);border:1px solid #f0dfbf}
.leave-card-body-v217 span{font-size:12px;color:var(--muted)}.leave-card-body-v217 p{margin:4px 0 0;font-size:12px;color:#5f5549}
.leave-inline-return-v217,.leave-return-form-v217{display:flex;align-items:center;gap:8px}.leave-inline-return-v217 input,.leave-return-form-v217 input{min-height:36px;padding:7px 9px;font-size:12px;width:auto}
.leave-form-card-v217{max-width:900px}.leave-rule-box-v217{padding:14px 16px;border:1px solid #efd7aa;border-radius:14px;background:#fff8e9}.leave-rule-box-v217 p{margin:4px 0 0;color:#6d604d;font-size:12px}
.update-ready-v217{padding:14px 16px;border-radius:13px;background:#edf8ef;border:1px solid #cce7d1;color:#2b6b38;font-weight:800}.update-card-v217{max-width:820px}
.leave-section-v217{border-left:4px solid #d69a35!important}.leave-section-v217.is-active{background:linear-gradient(145deg,#fff,#fffaf0)}
.leave-current-v217{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid #efd7aa;background:#fff8e9;border-radius:15px}.leave-current-v217>div{display:flex;align-items:flex-start;gap:12px}.leave-current-v217 strong{display:block}.leave-current-v217 small{display:block;color:#806b4d;margin-top:2px}.leave-current-v217 p{margin:6px 0 0;font-size:12px;color:#6d604d}
.leave-history-v217{margin-top:13px}.leave-history-v217 summary{cursor:pointer;font-weight:800;font-size:12px;color:var(--muted)}.leave-history-list-v217{display:grid;gap:7px;margin-top:10px}.leave-history-list-v217>div{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fbfaf8}.leave-history-list-v217 span,.leave-history-list-v217 small{font-size:11px;color:var(--muted)}
.student-leave-notice-v217{display:flex;align-items:flex-start;gap:13px;padding:15px 17px;margin-bottom:15px;border:1px solid #edcf98;border-left:4px solid #d69a35;border-radius:15px;background:linear-gradient(145deg,#fffaf0,#fff4dd);color:#66460f}.student-leave-notice-v217>span{font-size:22px}.student-leave-notice-v217 strong{display:block;font-size:14px}.student-leave-notice-v217 p{margin:3px 0 0;font-size:12px;line-height:1.5;color:#795b28}

@media(max-width:720px){
 .leave-grid-v217{grid-template-columns:1fr}.leave-current-v217{align-items:stretch;flex-direction:column}.leave-return-form-v217,.leave-inline-return-v217{align-items:stretch;flex-direction:column}.leave-return-form-v217 input,.leave-inline-return-v217 input{width:100%}.leave-history-list-v217>div{grid-template-columns:1fr}.leave-card-head-v217{align-items:flex-start}.student-leave-notice-v217{padding:13px}
}
\n\n/* V2.18 — Menu administrativo compacto */
.nav-dropdown-v218{position:relative;flex:none}
.nav-dropdown-v218>summary{list-style:none;white-space:nowrap;padding:9px 13px;border-radius:10px;font-weight:780;font-size:13px;border:1px solid transparent;cursor:pointer;color:var(--text);display:flex;align-items:center;gap:6px;user-select:none;transition:.18s ease}
.nav-dropdown-v218>summary::-webkit-details-marker{display:none}
.nav-dropdown-v218>summary:hover{background:#f2efec;color:#111}
.nav-dropdown-v218.is-active>summary,.nav-dropdown-v218[open]>summary{background:#1b1b1f;color:#fff;box-shadow:0 6px 14px rgba(24,24,27,.14)}
.nav-caret-v218{padding:0!important;border:0!important;font-size:15px!important;line-height:1;opacity:.72;transition:transform .18s ease;color:inherit!important}
.nav-dropdown-v218[open] .nav-caret-v218{transform:rotate(180deg)}
.nav-dropdown-panel-v218{position:absolute;top:calc(100% + 8px);left:0;min-width:230px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 42px rgba(24,24,27,.16);display:grid;gap:3px;z-index:80}
.nav-dropdown-panel-wide-v218{min-width:245px}
.nav-dropdown-panel-v218:before{content:"";position:absolute;left:18px;top:-6px;width:10px;height:10px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.nav-dropdown-panel-v218 a{display:flex!important;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:10px 11px!important;border-radius:10px!important;font-size:12px!important;font-weight:760!important;color:#272326!important;box-shadow:none!important;background:transparent!important}
.nav-dropdown-panel-v218 a:hover{background:#f5f1ee!important;color:#111!important}
.nav-dropdown-panel-v218 a.active{background:#241f22!important;color:#fff!important}
.nav-dropdown-panel-v218 a span{padding:0!important;border:0!important;font-size:inherit!important;font-weight:inherit!important;color:inherit!important}
.nav-dropdown-panel-v218 a b{min-width:23px;height:23px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:#8b1e27;color:#fff;font-size:10px;line-height:1}
.nav-dropdown-panel-v218 a.active b{background:#fff;color:#8b1e27}

@media(max-width:760px){
  .nav{gap:4px;padding:7px 10px;flex-wrap:wrap;align-items:center}
  .nav>a,.nav-dropdown-v218>summary{padding:8px 10px!important;font-size:12px!important}
  .nav-dropdown-panel-v218{position:fixed;left:10px;right:10px;top:auto;min-width:0;width:auto;max-height:min(62vh,470px);overflow:auto;margin-top:7px}
  .nav-dropdown-panel-v218:before{display:none}
}

@media(max-width:430px){
  .nav{justify-content:flex-start}
  .nav>a,.nav-dropdown-v218>summary{padding:7px 9px!important;font-size:11px!important}
  .nav-dropdown-panel-v218 a{font-size:12px!important;padding:11px!important}
}

/* V2.19 — Passkeys / biometria */
.passkey-login-btn-v219{width:100%;margin:10px 0 2px;background:linear-gradient(135deg,#7f1822,#b51f2a);box-shadow:0 10px 24px rgba(181,31,42,.22);display:flex;align-items:center;justify-content:center;gap:9px}
.passkey-login-btn-v219:hover{transform:translateY(-1px);box-shadow:0 13px 28px rgba(181,31,42,.27)}
.passkey-icon-v219{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.75);font-size:13px;line-height:1}
.passkey-msg-v219{margin-top:10px;padding:10px 12px;border-radius:11px;font-size:12px;font-weight:750}
.passkey-msg-v219.is-ok{background:#edf8ef;color:#27663a;border:1px solid #c9e7d1}.passkey-msg-v219.is-error{background:#fff0f0;color:#8d1e27;border:1px solid #f0c5c9}
.account-grid-v219{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:18px;align-items:start}
.passkey-card-v219{border-top:4px solid #8b1e27;background:linear-gradient(145deg,#fff,#fbf8f6)}
.section-head-v219{display:flex;align-items:center;gap:14px;margin-bottom:14px}.section-head-v219 h2{margin:0 0 3px}.section-head-v219 p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.passkey-big-icon-v219{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,#251e21,#151518);color:#fff;font-size:27px;font-weight:900;box-shadow:0 9px 22px rgba(24,20,18,.15);flex:none}
.passkey-privacy-v219{padding:12px 14px;border-radius:13px;background:#f2f7ff;border:1px solid #d9e5f7;color:#43556c;font-size:12px;line-height:1.5}.passkey-privacy-v219 strong{color:#25364b}
.passkey-register-v219{margin-top:8px}.passkey-list-v219{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.passkey-list-v219 h3{font-size:13px;margin:0 0 10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.passkey-device-v219{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.passkey-device-v219:last-child{border-bottom:0}
.passkey-device-icon-v219{width:42px;height:42px;border-radius:13px;background:#f3efec;display:grid;place-items:center;font-size:18px}.passkey-device-info-v219{min-width:0}.passkey-device-info-v219 strong{display:block;font-size:13px}.passkey-device-info-v219 small{display:block;color:var(--muted);font-size:10px;margin-top:2px;line-height:1.45}
.empty-mini-v219{padding:13px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted);font-size:12px;background:#fbfaf8}
@media(max-width:850px){.account-grid-v219{grid-template-columns:1fr}}
@media(max-width:520px){.passkey-device-v219{grid-template-columns:40px 1fr}.passkey-device-v219 form{grid-column:2}.section-head-v219{align-items:flex-start}.passkey-big-icon-v219{width:48px;height:48px}}

/* ===============================================
   Arena Camisa 12 - Identidade dos mascotes V3.7
   =============================================== */
.brand-mark--img{padding:0;overflow:hidden;flex:0 0 46px;background:#111;border:1px solid rgba(255,255,255,.18);box-shadow:0 7px 20px rgba(0,0,0,.2)}
.brand-mark--img img{display:block;width:100%;height:100%;object-fit:cover}
.arena-modalidade-info-v37{min-width:0;display:flex;gap:12px;align-items:center;flex:1}
.arena-modalidade-icone-v37,.arena-modalidade-destaque-v37{object-fit:cover;display:block;border-radius:13px;border:1px solid rgba(0,0,0,.10);background:#131313;flex-shrink:0}
.arena-modalidade-icone-v37{width:46px;height:46px}
.arena-modalidade-emoji-v37{width:46px;height:46px;flex-shrink:0;display:grid;place-items:center;font-size:25px;background:#181818;color:#fff;border-radius:13px}
.arena-modalidade-destaque-v37{width:64px;height:64px;border-radius:16px}
.arena-mod-icon{overflow:hidden;flex-shrink:0}
.arena-mod-icon img{width:100%;height:100%;display:block;object-fit:cover}
.mod-choice-v34 .ico{overflow:hidden;flex-shrink:0}
.mod-choice-v34 .ico img{width:100%;height:100%;display:block;object-fit:cover}
.arena-professor-titulo-v37{display:flex;gap:14px;align-items:center;min-width:0}
.arena-professor-mascote-v37{display:block;width:68px;height:68px;object-fit:cover;border-radius:18px;border:2px solid #fff;box-shadow:0 7px 18px rgba(0,0,0,.15);flex-shrink:0}
.arena-professor-mini-v37{width:26px;height:26px;display:inline-block;vertical-align:middle;border-radius:7px;object-fit:cover;margin-right:5px}
@media(max-width:600px){
  .brand{gap:9px}
  .brand strong{font-size:14px}
  .brand-mark--img{width:42px;height:42px;flex-basis:42px}
  .arena-professor-mascote-v37{width:55px;height:55px;border-radius:14px}
  .arena-professor-titulo-v37{gap:10px}
  .arena-professor-titulo-v37 h1{font-size:clamp(24px,6vw,34px)}
}
