
/* ============================================================
   R7 — GRAFITE FUNCIONAL
   Base cinza escura + cores por funcionalidade.
   ============================================================ */

:root{
  --bg:#171a1f;
  --sidebar:#1b1f24;
  --topbar:#1d2127;
  --panel:#22272e;
  --panel-soft:#1f242a;
  --panel-deep:#1b2026;
  --border:#343b44;
  --border-soft:#2c333b;
  --text:#f2f4f6;
  --muted:#a1aab4;
  --muted-2:#76818c;

  --blue:#4d86b7;
  --green:#3f9a6b;
  --amber:#c58a32;
  --red:#b95159;
  --cyan:#4d9baa;
  --purple:#8b6eb5;
  --orange:#b97643;
  --pink:#b85f83;
  --teal:#4a998a;
}

/* Estrutura geral */
html,body{
  background:var(--bg)!important;
  color:var(--text)!important;
}

body{
  background:
    radial-gradient(circle at 90% 0%,rgba(255,255,255,.025),transparent 28%),
    var(--bg)!important;
}

#app,.app,.main,.main-content,.content,.page,.page-content{
  background:transparent!important;
}

.sidebar,
aside.sidebar,
#sidebar{
  background:var(--sidebar)!important;
  border-right:1px solid var(--border)!important;
  box-shadow:none!important;
}

.topbar,
.app-header,
header.topbar,
header.app-header{
  background:var(--topbar)!important;
  border-bottom:1px solid var(--border)!important;
  box-shadow:none!important;
}

.brand,
.sidebar-brand{
  border-color:var(--border)!important;
}

/* Painéis e cards */
.panel,
.form-panel,
.dashboard-hero,
.dashboard-card,
.stat-card,
.card,
.profile-card,
.history-card,
.case-card,
.tool-card,
.report-card,
.approval-card,
.absence-card,
.schedule-card,
.detail,
.history-item,
.discord-unlinked-panel{
  background:var(--panel)!important;
  border:1px solid var(--border)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.08)!important;
  background-image:none!important;
}

.dashboard-hero{
  background:linear-gradient(135deg,#242a31,#20252b)!important;
}

/* Textos */
h1,h2,h3,h4,h5,h6,
.panel-title h2,
.panel-title h3,
.dashboard-hero h2,
strong,b{
  color:var(--text)!important;
}

p,small,.field-help,.help,.muted,
.panel-title p,.dashboard-hero p,.stat-card p{
  color:var(--muted)!important;
}

.eyebrow,.nav-group-label,.breadcrumb{
  color:var(--muted-2)!important;
}

/* Navegação */
.nav-btn{
  background:transparent!important;
  color:#c4cbd2!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
}

.nav-btn:hover{
  background:#242a30!important;
  color:#fff!important;
}

.nav-btn.active{
  background:#272d34!important;
  color:#fff!important;
  border-color:#3c4650!important;
  box-shadow:none!important;
}

.nav-mark{
  background:#20262c!important;
  border-color:#333d46!important;
  color:#9ba6b0!important;
}

/* Cores por módulo — lateral */
.nav-btn[data-page="dashboard"] .nav-mark{color:var(--blue)!important}
.nav-btn[data-page="records"] .nav-mark,
.nav-btn[data-page="new"] .nav-mark{color:var(--orange)!important}
.nav-btn[data-page="hierarchy"] .nav-mark,
.nav-btn[data-page="profiles"] .nav-mark{color:var(--blue)!important}
.nav-btn[data-page="promotions"] .nav-mark{color:var(--green)!important}
.nav-btn[data-page="transfers"] .nav-mark{color:var(--cyan)!important}
.nav-btn[data-page="exonerations"] .nav-mark{color:var(--red)!important}
.nav-btn[data-page="absences"] .nav-mark{color:var(--purple)!important}
.nav-btn[data-page="courses"] .nav-mark{color:var(--green)!important}
.nav-btn[data-page="cases"] .nav-mark{color:var(--orange)!important}
.nav-btn[data-page="denuncias"] .nav-mark{color:var(--pink)!important}
.nav-btn[data-page="convocations"] .nav-mark{color:var(--amber)!important}
.nav-btn[data-page="ipm"] .nav-mark{color:var(--red)!important}
.nav-btn[data-page="meetings"] .nav-mark{color:var(--teal)!important}
.nav-btn[data-page="reports"] .nav-mark{color:var(--purple)!important}
.nav-btn[data-page="audit"] .nav-mark{color:#9aa4ae!important}
.nav-btn[data-page="announcements"] .nav-mark{color:var(--amber)!important}

/* Active mantém a cor funcional */
.nav-btn.active[data-page="promotions"]{border-left:3px solid var(--green)!important}
.nav-btn.active[data-page="transfers"]{border-left:3px solid var(--cyan)!important}
.nav-btn.active[data-page="exonerations"]{border-left:3px solid var(--red)!important}
.nav-btn.active[data-page="absences"]{border-left:3px solid var(--purple)!important}
.nav-btn.active[data-page="courses"]{border-left:3px solid var(--green)!important}
.nav-btn.active[data-page="ipm"]{border-left:3px solid var(--red)!important}
.nav-btn.active[data-page="convocations"]{border-left:3px solid var(--amber)!important}
.nav-btn.active[data-page="records"]{border-left:3px solid var(--orange)!important}

/* Inputs */
input,textarea,select,
.global-search input,#global-search{
  background:var(--panel-deep)!important;
  border:1px solid var(--border)!important;
  color:var(--text)!important;
  box-shadow:none!important;
}

input::placeholder,textarea::placeholder{
  color:#808b95!important;
}

input:focus,textarea:focus,select:focus{
  border-color:#566471!important;
  outline:2px solid rgba(255,255,255,.04)!important;
  box-shadow:none!important;
}

/* Botões: neutros por padrão */
.primary,
button.primary,
#top-new{
  background:#37414b!important;
  border:1px solid #4c5965!important;
  color:#fff!important;
  box-shadow:none!important;
}

.primary:hover,
button.primary:hover,
#top-new:hover{
  background:#414d58!important;
}

.ghost,
button.ghost{
  background:#20262c!important;
  border:1px solid var(--border)!important;
  color:#d1d6db!important;
  box-shadow:none!important;
}

.ghost:hover,
button.ghost:hover{
  background:#292f36!important;
  border-color:#48535d!important;
  color:#fff!important;
}

/* Botões funcionais */
#courses .primary,
#course-schedule-form .primary{background:#347f59!important;border-color:#469b70!important}
#courses .primary:hover,
#course-schedule-form .primary:hover{background:#3d9166!important}

#ipm .primary{background:#8d3d43!important;border-color:#ad5259!important}
#ipm .primary:hover{background:#9c464d!important}

#convocations .primary{background:#8d6629!important;border-color:#b0833d!important}
#convocations .primary:hover{background:#9d742f!important}

#exonerations .primary{background:#8f3d44!important;border-color:#ac5158!important}
#exonerations .primary:hover{background:#9e474e!important}

#promotions .primary{background:#347f59!important;border-color:#469b70!important}
#promotions .primary:hover{background:#3d9166!important}

#transfers .primary{background:#347886!important;border-color:#4796a5!important}
#transfers .primary:hover{background:#3e8998!important}

#announcements .primary{background:#8f682a!important;border-color:#b0833d!important}

/* Discord buttons */
.discord-send-btn{
  background:#3f5363!important;
  border-color:#576d7d!important;
  color:#fff!important;
}
.discord-send-btn:hover{background:#4a6071!important}

/* Dashboard principal: aparência tipo mockup */
#dashboard .dashboard-hero{
  border-left:3px solid #5c6a76!important;
}

#dashboard .quick-actions button{
  background:#20252b!important;
  border:1px solid var(--border)!important;
  box-shadow:none!important;
}

#dashboard .quick-actions button:hover{
  background:#282e35!important;
}

/* Quick actions com cores funcionais */
#dashboard .quick-actions button:nth-child(1){border-left:3px solid var(--blue)!important}
#dashboard .quick-actions button:nth-child(2){border-left:3px solid var(--orange)!important}
#dashboard .quick-actions button:nth-child(3){border-left:3px solid var(--pink)!important}
#dashboard .quick-actions button:nth-child(4){border-left:3px solid var(--purple)!important}

/* KPI cards — cor só na lateral */
#dashboard .stat-card{
  background:#23282f!important;
  border:1px solid var(--border)!important;
  border-left-width:3px!important;
}
#dashboard .stat-card:nth-child(1){border-left-color:var(--blue)!important}
#dashboard .stat-card:nth-child(2){border-left-color:var(--amber)!important}
#dashboard .stat-card:nth-child(3){border-left-color:var(--red)!important}
#dashboard .stat-card:nth-child(4){border-left-color:var(--blue)!important}
#dashboard .stat-card:nth-child(5){border-left-color:var(--red)!important}
#dashboard .stat-card:nth-child(6){border-left-color:var(--green)!important}

/* Se houver cards da versão resumida */
.kpi-accent{border-left:3px solid var(--blue)!important}
.kpi-green{border-left:3px solid var(--green)!important}
.kpi-amber{border-left:3px solid var(--amber)!important}
.kpi-red{border-left:3px solid var(--red)!important}

/* Tabelas */
.table-wrap,table{
  background:var(--panel-soft)!important;
  border-color:var(--border)!important;
}

thead th{
  background:#252b31!important;
  color:#aab3bc!important;
  border-color:var(--border)!important;
}

tbody td{
  color:#dde2e6!important;
  border-color:var(--border-soft)!important;
}

tbody tr:hover td{
  background:#282e35!important;
}

/* Subabas */
.subpage-tabs,
.stable-hierarchy-tabs,
.module-tabs{
  background:#1d2228!important;
  border:1px solid var(--border)!important;
}

.subpage-tab,
.stable-tab,
.module-tab{
  background:transparent!important;
  color:#939da7!important;
  border:0!important;
}

.subpage-tab.active,
.stable-tab.active,
.module-tab.active{
  background:#2a3037!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px #414b55!important;
}

/* Subabas por módulo */
#courses .module-tab.active{box-shadow:inset 0 -2px 0 var(--green)!important}
#ipm .subpage-tab.active{box-shadow:inset 0 -2px 0 var(--red)!important}
#transfers .subpage-tab.active{box-shadow:inset 0 -2px 0 var(--cyan)!important}
#exonerations .module-tab.active{box-shadow:inset 0 -2px 0 var(--red)!important}
#promotions .module-tab.active{box-shadow:inset 0 -2px 0 var(--green)!important}

/* Status */
.status-success,.badge-success{
  background:#233b30!important;
  color:#9fd6b6!important;
  border-color:#365c49!important;
}

.status-warning,.badge-warning{
  background:#3a3123!important;
  color:#dfbd7a!important;
  border-color:#665231!important;
}

.status-danger,.badge-danger{
  background:#3a2528!important;
  color:#e2a5ab!important;
  border-color:#674046!important;
}

/* Barras e gráficos */
.track,progress{
  background:#1b2025!important;
}

.fill,
progress::-webkit-progress-value{
  background:var(--blue)!important;
}

/* Situação das ocorrências com cores distintas */
#dashboard .status-bar:nth-of-type(1) .fill{background:var(--amber)!important}
#dashboard .status-bar:nth-of-type(2) .fill{background:var(--orange)!important}
#dashboard .status-bar:nth-of-type(3) .fill{background:var(--green)!important}
#dashboard .status-bar:nth-of-type(4) .fill{background:#77818b!important}

/* Modal / busca */
.modal-box,.command-box,.global-search-results,
.presentation-search-results,.quick-create-menu{
  background:#1f242a!important;
  border-color:#414951!important;
  box-shadow:0 22px 60px rgba(0,0,0,.35)!important;
}

/* Cards de aula */
.schedule-card{border-left:3px solid var(--green)!important}
.schedule-status{background:#29333b!important;color:#c7d2db!important}
.schedule-status.closed{background:#3a3123!important;color:#dfbd7a!important}
.schedule-status.finished{background:#233b30!important;color:#9fd6b6!important}
.schedule-status.cancelled{background:#3a2528!important;color:#e2a5ab!important}

/* Scroll */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#181c21}
::-webkit-scrollbar-thumb{background:#454d56;border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:#59636d}

/* Evita qualquer azul antigo dominando cards */
[class*="accent"],
[class*="blue"]{
  box-shadow:none!important;
}

/* Links */
a{color:#8eb0c9!important}
