/* =========================================================
   R18 — NOVA INTERFACE
   Grafite neutro + azul apenas como destaque.
   Camada visual: preserva IDs, formulários, eventos e APIs.
   ========================================================= */
:root{
  --r18-bg:#111315;
  --r18-sidebar:#151719;
  --r18-top:#17191c;
  --r18-panel:#1b1e21;
  --r18-panel-2:#202327;
  --r18-input:#141619;
  --r18-line:#2a2e33;
  --r18-line-strong:#353a40;
  --r18-text:#f2f4f6;
  --r18-muted:#9aa2ab;
  --r18-muted-2:#707983;
  --r18-blue:#2d8bd3;
  --r18-blue-hover:#3b98dc;
  --r18-blue-soft:rgba(45,139,211,.10);
  --sidebar-w:232px!important;
  --sidebar-collapsed:68px!important;
  --bg:#111315!important;
  --surface:#151719!important;
  --panel:#1b1e21!important;
  --panel-2:#202327!important;
  --border:#2a2e33!important;
  --border-strong:#353a40!important;
  --text:#f2f4f6!important;
  --muted:#9aa2ab!important;
  --primary:#236fa8!important;
  --primary-2:#2d8bd3!important;
  --primary-soft:#182631!important;
}
html,body{background:var(--r18-bg)!important;color:var(--r18-text)!important}
body{background:var(--r18-bg)!important}
*{scrollbar-color:#42484f transparent}

/* Estrutura */
.sidebar{
  width:var(--sidebar-w)!important;
  padding:14px 12px 12px!important;
  background:var(--r18-sidebar)!important;
  border-right:1px solid var(--r18-line)!important;
  box-shadow:none!important;
}
.brand{min-height:58px!important;padding:5px 7px 13px!important;border-color:var(--r18-line)!important}
.brand img{width:40px!important;height:40px!important}
.brand strong{font-size:11px!important;letter-spacing:1.05px!important}
.brand span{font-size:8px!important;color:var(--r18-muted-2)!important}
.sidebar-toggle{width:27px!important;height:27px!important;border-radius:7px!important;background:#1a1d20!important;border-color:var(--r18-line)!important;color:#8f969e!important}
.sidebar-toggle:hover{background:#22262a!important;color:#fff!important}
nav{padding:10px 2px 8px 0!important;gap:1px!important}
.nav-group-label{padding:12px 9px 5px!important;font-size:7.5px!important;letter-spacing:1.55px!important;color:#69737d!important}
.nav-btn{
  min-height:36px!important;padding:6px 8px!important;border-radius:7px!important;gap:9px!important;
  color:#bcc3ca!important;background:transparent!important;border:1px solid transparent!important;font-size:12px!important
}
.nav-btn:hover{background:#1c1f22!important;color:#fff!important;border-color:transparent!important}
.nav-btn.active{background:#1c2024!important;color:#f4f7fa!important;border:1px solid #2d343b!important;box-shadow:inset 2px 0 0 var(--r18-blue)!important}
.nav-btn.active:before{display:none!important}
.nav-btn .nav-mark{
  width:22px!important;height:22px!important;flex:0 0 22px!important;border:0!important;background:transparent!important;
  border-radius:0!important;color:#919aa3!important;font-size:0!important
}
.nav-btn.active .nav-mark{background:transparent!important;border:0!important;color:#67a9dc!important}
.nav-mark svg{width:16px;height:16px;display:block;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.side-bottom{padding-top:9px!important}
.user-mini{padding:8px!important;background:#181b1e!important;border-color:var(--r18-line)!important;border-radius:8px!important}
.logout{min-height:35px!important;border-radius:7px!important;background:#171a1d!important;border-color:var(--r18-line)!important}
.credit{font-size:7px!important;color:#626a72!important}

main{margin-left:var(--sidebar-w)!important;width:calc(100% - var(--sidebar-w))!important;padding:20px clamp(18px,2.1vw,32px) 36px!important;max-width:none!important}
.app.sidebar-collapsed main{margin-left:var(--sidebar-collapsed)!important;width:calc(100% - var(--sidebar-collapsed))!important}
.topbar{
  min-height:58px!important;margin:-20px calc(clamp(18px,2.1vw,32px)*-1) 18px!important;
  padding:11px clamp(18px,2.1vw,32px)!important;background:rgba(23,25,28,.97)!important;
  border-color:var(--r18-line)!important;backdrop-filter:blur(10px)!important
}
.title-wrap h1{font-size:18px!important;letter-spacing:-.15px!important}
.breadcrumb{font-size:8px!important;margin-bottom:3px!important;color:#6f7882!important}
.top-actions{gap:8px!important}
#global-search{height:36px!important;background:var(--r18-input)!important;border:1px solid var(--r18-line)!important;border-radius:7px!important;padding:0 11px!important}
.notification-btn{width:36px!important;height:36px!important;border-radius:7px!important;background:#181b1e!important;border-color:var(--r18-line)!important;color:#99a3ad!important}
.notification-btn>span{display:grid;place-items:center}.notification-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#top-new{min-height:36px!important;padding:0 12px!important;border-radius:7px!important;background:#236fa8!important;border:1px solid #2d80bd!important;color:#fff!important;font-size:11px!important}
#top-new:hover{background:#2b7fb9!important}

/* Base visual única para todas as abas */
.page{color:var(--r18-text)!important}
.panel,.card,.form-panel,.dashboard-card,.stat-card,.profile-card,.approval-card,.absence-card,.schedule-card,.contestations-card{
  background:var(--r18-panel)!important;border:1px solid var(--r18-line)!important;box-shadow:none!important;border-radius:8px!important
}
.panel{padding:16px!important;margin-bottom:12px!important}
.panel-title{margin-bottom:13px!important;gap:10px!important}
.panel-title h2{font-size:15px!important;margin-bottom:3px!important;color:var(--r18-text)!important}
.panel-title h3{font-size:13px!important;color:var(--r18-text)!important}
.panel-title p,.panel p,.help,.field-help,small,.muted{color:var(--r18-muted)!important}
.panel-title p{font-size:10px!important}

input,textarea,select{
  background:var(--r18-input)!important;border:1px solid var(--r18-line)!important;color:var(--r18-text)!important;
  border-radius:6px!important;padding:9px 10px!important;font-size:11px!important;box-shadow:none!important
}
input:focus,textarea:focus,select:focus{border-color:#3d6f95!important;outline:2px solid rgba(45,139,211,.10)!important}
label{font-size:10px!important;color:#adb4bb!important;gap:5px!important}
.form-grid{gap:12px!important}
.form-actions{margin-top:15px!important;gap:7px!important}
.primary,.discord-send-btn{
  background:#236fa8!important;border:1px solid #2d80bd!important;color:#f6fbff!important;box-shadow:none!important;border-radius:6px!important;
  padding:8px 12px!important;font-size:11px!important
}
.primary:hover,.discord-send-btn:hover{background:#2b7fb9!important}
.ghost{background:#1c2024!important;border:1px solid #343a40!important;color:#cbd1d7!important;border-radius:6px!important;padding:8px 11px!important;font-size:11px!important}
.ghost:hover{background:#24282d!important;border-color:#444a51!important;color:#fff!important}
.ghost.small,.primary.small{padding:6px 9px!important;font-size:9px!important}
.danger{border-radius:6px!important}

.filters,.record-filters{gap:7px!important;margin-bottom:12px!important}
.subpage-tabs,.stable-hierarchy-tabs,.module-tabs{
  background:#171a1d!important;border:1px solid var(--r18-line)!important;border-radius:8px!important;padding:4px!important;margin-bottom:12px!important
}
.subpage-tab,.stable-tab,.module-tab{padding:7px 10px!important;border-radius:6px!important;font-size:10px!important;color:#959da6!important}
.subpage-tab.active,.stable-tab.active,.module-tab.active{background:#22262a!important;color:#f1f4f7!important;box-shadow:inset 0 0 0 1px #343b42!important}

.table-wrap{background:#181b1e!important;border:1px solid var(--r18-line)!important;border-radius:7px!important;overflow:auto!important}
table{background:transparent!important;font-size:10px!important}
thead th{background:#1e2226!important;color:#818b95!important;padding:8px 9px!important;border-color:var(--r18-line)!important;font-size:8px!important}
tbody td{padding:8px 9px!important;border-color:#272b2f!important;color:#d9dde1!important}
tbody tr:hover td{background:#202428!important}
.empty{padding:22px!important;color:#8d959e!important;font-size:10px!important}
.badge,.status-pill,.nav-badge{box-shadow:none!important}

/* Seletores/pesquisas */
.member-search-box{background:var(--r18-input)!important;border-color:var(--r18-line)!important;border-radius:7px!important}
.member-search-box input{background:transparent!important;border:0!important;outline:0!important}
.member-results{background:#171a1d!important;border-color:#353b42!important;border-radius:7px!important;box-shadow:0 14px 35px rgba(0,0,0,.32)!important}
.member-result{background:transparent!important;border-color:#282d32!important;padding:8px!important}
.member-result:hover{background:#202428!important}
.selected-member{background:#1d2328!important;border-color:#303940!important;border-radius:7px!important;color:#e6eaee!important}
.pm-thumb{background:#20262b!important;border-color:#343c44!important;color:#8db8d9!important}

/* Perfis — mais densos e miniaturas reais */
#profiles>.panel{padding:15px!important}
#profiles .filters{grid-template-columns:minmax(260px,1fr) 210px!important;max-width:none!important}
.profile-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))!important;gap:8px!important}
.profile-card{
  min-height:66px!important;padding:10px 11px!important;gap:10px!important;background:#181b1e!important;text-align:left!important
}
.profile-card:hover{background:#202428!important;border-color:#39434b!important;transform:none!important}
.profile-avatar,.pm-thumb--profile{width:40px!important;height:40px!important;flex:0 0 40px!important}
.profile-card-copy{min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important}
.profile-card-copy b{font-size:11px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-card-copy span{font-size:10px!important;color:#a5adb5!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-corr-role{display:inline-flex!important;align-self:flex-start!important;margin-top:2px!important;padding:2px 6px!important;border-radius:999px!important;background:var(--r18-blue-soft)!important;color:#78add4!important;font-size:7.5px!important;font-weight:700!important;letter-spacing:.03em}
#profile-modal .profile-modal-box{background:#171a1d!important;border-color:#343a40!important;border-radius:10px!important;padding:20px!important}

/* Cards/listas de módulos */
.schedule-grid{gap:9px!important}.schedule-card{padding:12px!important;background:#181b1e!important}
.schedule-meta>div{background:#15181b!important;border-color:#292e33!important}
.approval-card,.absence-card{background:#181b1e!important;padding:12px!important}
.history-item,.timeline-row,.notice-row{border-color:#292e33!important}

/* Dashboard R18 */
#dashboard{padding:0!important}
.r18-dashboard{display:grid;gap:10px;max-width:1460px;margin:0 auto}
.r18-dashboard-head h2{font-size:23px;margin:0 0 2px;letter-spacing:-.25px}.r18-dashboard-head p{font-size:11px;color:var(--r18-muted)}
.r18-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.r18-kpi{
  min-height:80px;padding:12px 13px;background:var(--r18-panel);border:1px solid var(--r18-line);border-radius:8px;
  display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px
}
.r18-kpi-icon{width:32px;height:32px;border-radius:7px;display:grid;place-items:center;background:#202428;color:#92a8ba}
.r18-kpi-icon svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.r18-kpi>div>span{display:block;font-size:8.5px;color:#aeb5bc;letter-spacing:.06em}.r18-kpi strong{display:block;font-size:23px;line-height:1.05;margin:2px 0}.r18-kpi small{font-size:8.5px!important;color:#808991!important}
.r18-compat-hidden{display:none!important}
.r18-quick-search{
  background:var(--r18-panel);border:1px solid var(--r18-line);border-radius:8px;padding:9px 10px;
  display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:9px;align-items:center
}
.r18-quick-search>strong{font-size:10px;white-space:nowrap}
.r18-search-field{height:35px;display:flex;align-items:center;gap:7px;background:var(--r18-input);border:1px solid var(--r18-line);border-radius:6px;padding:0 9px}
.r18-search-field>span{color:#7e8993;display:grid;place-items:center}.r18-search-field svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.r18-search-field input{height:31px!important;padding:0!important;border:0!important;background:transparent!important;outline:0!important}
.r18-search-result{grid-column:2/4}.r18-search-result:empty{display:none}
.r18-shortcuts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.r18-shortcut{
  min-width:0;min-height:54px;padding:8px 9px;border:1px solid var(--r18-line);border-radius:8px;background:var(--r18-panel);color:var(--r18-text);
  display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer
}
.r18-shortcut:hover{background:#202428;border-color:#373d43}
.r18-shortcut>span{width:25px;height:25px;flex:0 0 25px;display:grid;place-items:center;color:#68a7d8;background:var(--r18-blue-soft);border-radius:6px}
.r18-shortcut svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.r18-shortcut b{display:block;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.r18-shortcut small{display:block!important;font-size:7.5px!important;margin-top:1px;color:#858e97!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r18-main-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,.75fr);gap:10px}
.r18-box{background:var(--r18-panel);border:1px solid var(--r18-line);border-radius:8px;padding:13px;min-width:0}
.r18-box-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}.r18-box-title h3{font-size:12px;margin:0 0 2px}.r18-box-title p{font-size:8.5px;color:#858e97}.r18-box-title.compact{margin-top:10px;margin-bottom:5px;padding-top:9px;border-top:1px solid #292e33}
#dashboard-alerts .empty{padding:10px!important;background:#181b1e;border:1px dashed #30363c;border-radius:7px}
.r18-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.r18-mini-grid>div{padding:8px;background:#181b1e;border:1px solid #292e33;border-radius:7px}.r18-mini-grid span{display:block;font-size:7.5px;color:#7f8891}.r18-mini-grid b{display:block;font-size:16px;margin-top:2px}
.r18-formation #course-summary{min-height:0!important}.r18-formation .mini-stats{display:grid!important;grid-template-columns:auto 1fr auto 1fr!important;align-items:center!important;gap:5px!important}.r18-formation .mini-stats strong{font-size:15px!important}.r18-formation .mini-stats span{font-size:8px!important}.r18-formation .history-item{display:none!important}.r18-formation .empty{padding:5px!important;text-align:left!important}
.r18-activity{margin-bottom:0}.r18-activity .activity-feed{max-height:230px;overflow:auto}
.r18-box #recent-table .table-wrap{border:0!important;border-radius:0!important;background:transparent!important}.r18-box #recent-table thead th{background:#1e2226!important}.r18-box #recent-table td{padding:7px 8px!important}

/* Remover qualquer resto visual dos gráficos antigos, sem tocar nos dados */
.r9-chart-grid,.r9-unit-chart,.r9-occurrence-layout,.r9-actions,.r9-kpi-grid,.r9-secondary-grid{display:none!important}

/* Documentos oficiais: não recebem o tema R18 */
.ipm-doc,.convocation-paper,.convocation-document,.report-paper{color:initial}

/* Modais */
.modal{background:rgba(5,6,7,.78)!important;backdrop-filter:blur(6px)!important}
.modal-box,.command-box{background:#181b1e!important;border:1px solid #363c42!important;border-radius:9px!important;box-shadow:0 24px 65px rgba(0,0,0,.55)!important}

/* Login no mesmo padrão */
.login-screen{background:#111315!important}.login-card{background:#191c1f!important;border:1px solid var(--r18-line)!important;border-radius:10px!important;box-shadow:0 30px 80px rgba(0,0,0,.32)!important}

@media(max-width:1280px){
  .r18-shortcuts{grid-template-columns:repeat(3,1fr)}
  .r18-main-grid{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}
}
@media(max-width:1050px){
  .r18-kpi-grid{grid-template-columns:repeat(2,1fr)}
  .r18-main-grid{grid-template-columns:1fr}
  .profile-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important}
}
@media(max-width:760px){
  :root{--sidebar-w:68px!important}
  main{padding:16px 12px 28px!important}
  .topbar{margin:-16px -12px 14px!important;padding:9px 12px!important}
  .title-wrap h1{font-size:16px!important}.breadcrumb{display:none!important}
  .legacy-global-search{display:none!important}
  .r18-kpi-grid{grid-template-columns:1fr 1fr}
  .r18-quick-search{grid-template-columns:1fr}.r18-search-result{grid-column:auto}.r18-shortcuts{grid-template-columns:1fr 1fr}
  .r18-mini-grid{grid-template-columns:1fr 1fr}
  #profiles .filters{grid-template-columns:1fr!important}
  .form-grid{grid-template-columns:1fr!important}.full{grid-column:auto!important}
}
@media(max-width:500px){.r18-kpi-grid,.r18-shortcuts{grid-template-columns:1fr}.r18-dashboard-head h2{font-size:20px}}
/* neutraliza cores legadas específicas por módulo na navegação */
#main-nav .nav-btn[data-page] .nav-mark{color:#919aa3!important}
#main-nav .nav-btn.active[data-page]{border:1px solid #2d343b!important;border-left:1px solid #2d343b!important;box-shadow:inset 2px 0 0 var(--r18-blue)!important}
#main-nav .nav-btn.active[data-page] .nav-mark{color:#67a9dc!important}
/* Ações primárias usam um único azul institucional em todas as abas */
#courses .primary,#course-schedule-form .primary,#ipm .primary,#convocations .primary,#exonerations .primary,#promotions .primary,#transfers .primary,#announcements .primary{
  background:#236fa8!important;border-color:#2d80bd!important;color:#f6fbff!important
}
#courses .primary:hover,#course-schedule-form .primary:hover,#ipm .primary:hover,#convocations .primary:hover,#exonerations .primary:hover,#promotions .primary:hover,#transfers .primary:hover,#announcements .primary:hover{background:#2b7fb9!important}
#courses .module-tab.active,#ipm .subpage-tab.active,#transfers .subpage-tab.active,#exonerations .module-tab.active,#promotions .module-tab.active{
  box-shadow:inset 0 0 0 1px #343b42,inset 0 -2px 0 var(--r18-blue)!important
}
