:root{
  --sidebar-bg:#0f172a;
  --sidebar-bg-2:#111c34;
  --sidebar-text:#d8e1ef;
  --sidebar-muted:#8ea0ba;
  --primary:#1f4db8;
  --primary-soft:#eaf1ff;
  --danger-soft:#fff1f2;
  --warning-soft:#fff8e6;
  --success-soft:#ecfdf3;
  --border:#e6ebf2;
  --page:#f4f7fb;
  --card:#ffffff;
  --text:#213047;
}
html,body{ background:var(--page); color:var(--text); }

.cadastro-periodo {
    font-size: 0.85rem;
}

.cadastro-periodo .datas-periodo {
    font-size: 0.8rem;
    color: #6b7280; /* cinza leve */
}

.app {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-height: 100vh;
}

.app .sidebar {
  background: linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-2) 100%);
  color: #fff; padding: 18px 14px 22px; box-shadow: inset -1px 0 0 rgba(255,255,255,.04);
}
.brand-main{ align-items:flex-start !important; gap:12px !important; padding:10px 10px 16px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:14px !important; }
.brand-title{ font-weight:800; font-size:18px; line-height:1.1; }
.brand-subtitle{ font-size:12px; color:var(--sidebar-muted); margin-top:3px; letter-spacing:.03em; }
.brand.brand-main img {
    max-height: 100px !important;
    width: auto !important;
    height: auto !important;
}
.app .sidebar .brand img { height: 34px; }
.app .sidebar .menu .menu-label{ margin:16px 10px 8px; font-size:11px; letter-spacing:.12em; color:var(--sidebar-muted); text-transform:uppercase; font-weight:700; }
.app .sidebar .menu a { display:flex; align-items:center; gap:10px; color: var(--sidebar-text); text-decoration: none; padding: 11px 12px; border-radius: 12px; margin-bottom: 6px; transition:.18s ease; border:1px solid transparent; }
.app .sidebar .menu a .icon{ width:20px; justify-content:center; }
.app .sidebar .menu a:hover, .app .sidebar .menu a.active { background: rgba(255,255,255,0.09); color: #fff; border-color: rgba(255,255,255,.05); transform: translateX(2px); }

.app .main {
  background: var(--page);
  min-width: 0;
  overflow-x: auto;
}

.topbar { background: rgba(255,255,255,.96); border-bottom: 1px solid var(--border); padding: 14px 22px; display: flex; justify-content: space-between; align-items: center; }
.topbar-title{ font-size:20px; font-weight:800; color:#10213a; }
.topbar-date{ color:#6f7f95; font-size:13px; margin-top:2px; }
.user-pill{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border); border-radius:999px; padding:6px 8px 6px 12px; box-shadow:0 8px 18px rgba(16,24,40,.04); }
.user-pill .icon{ color:var(--primary); }

.content {
  padding: 22px;
  min-width: 0;
}

.sys-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px; }
.sys-card { background:var(--card); border:1px solid var(--border); border-radius:18px; padding:16px 18px; box-shadow:0 10px 24px rgba(15,23,42,.04); }
.sys-card .sys-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.sys-card .sys-icon{ width:42px; height:42px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--primary-soft); color:var(--primary); font-size:18px; }
.sys-card .k{ font-size:30px; font-weight:800; color:#10213a; line-height:1; }
.sys-card .lbl{ color:#667085; font-size:13px; margin-top:6px; }
.sys-card .meta{ color:#90a0b6; font-size:12px; margin-top:10px; }
.panel-soft{ background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:0 10px 24px rgba(15,23,42,.04); }
.filter-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.status-chip{ display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.status-chip.is-warning{ background:var(--warning-soft); color:#8a6400; }
.status-chip.is-danger{ background:var(--danger-soft); color:#b42318; }
.status-chip.is-success{ background:var(--success-soft); color:#067647; }
.status-chip.is-info{ background:#eef4ff; color:#1d4ed8; }
.note-list{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.note-list .tag{ border-radius:999px; }
.table-wrap{ overflow:auto; background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:0 10px 24px rgba(15,23,42,.04); }
.table-wrap table{ margin-bottom:0; }
.table thead th{ background:#f8fafc; color:#344054; border-color:var(--border); }
.table td, .table th{ vertical-align:top; }

@media (max-width: 960px){
  .app{
    grid-template-columns:1fr;
  }

  .app .sidebar{
    padding-bottom:10px;
  }

  .app .main{
    min-width:0;
    overflow-x:auto;
  }

  .topbar{
    padding:12px 16px;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .content{
    padding:16px;
    min-width:0;
  }
}

/* ===== AJUSTE GLOBAL DE DENSIDADE (TABELAS / LISTAS) ===== */

.table {
  font-size: 0.9rem;
}

.table td {
  font-size: 0.88rem;
}

.table th {
  font-size: 0.8rem;
}

.table td strong {
  font-size: 0.92rem;
  line-height: 1.2;
}

/* TAGS (status das disciplinas) */
.note-list .tag {
  font-size: 0.72rem;
  padding: 4px 8px;
}

/* BOTÕES (ações) */
.acoes-avaliacao .button {
  font-size: 0.72rem;
  padding: 6px 8px;
}

/* STATUS CHIP (janela aberta) */
.status-chip {
  font-size: 0.7rem;
  padding: 3px 8px;
}
/* =========================================================
   MENU SUPERIOR RESPONSIVO - Sistema de Provas
   Substitui visualmente o antigo sidebar sem alterar as telas.
========================================================= */
.app{
  display:block !important;
  min-height:100vh;
}

.app .main{
  width:100% !important;
  min-width:0;
  overflow-x:hidden;
}

.app .sidebar.top-menu{
  position:sticky;
  top:0;
  z-index:1000;
  width:100%;
  min-height:0;
  padding:0 !important;
  color:#fff;
  background:linear-gradient(90deg, var(--sidebar-bg) 0%, var(--sidebar-bg-2) 100%) !important;
  box-shadow:0 8px 22px rgba(15,23,42,.14);
}

.top-menu-inner{
  min-height:72px;
  display:flex;
  align-items:center;
  gap:18px;
  padding:8px 22px;
}

.top-menu-brand{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:230px;
  color:#fff !important;
  text-decoration:none !important;
}

.top-menu-brand img{
  width:auto !important;
  height:52px !important;
  max-width:76px;
  object-fit:contain;
  display:block;
}

.top-menu-brand .brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.12;
}

.top-menu-brand strong{
  color:#fff;
  font-size:15px;
  font-weight:800;
  white-space:nowrap;
}

.top-menu-brand small{
  color:rgba(255,255,255,.72);
  font-size:11px;
  margin-top:3px;
}

.top-menu-nav{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
}

.top-menu-link,
.top-menu-dropbtn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid transparent;
  background:transparent;
  color:var(--sidebar-text) !important;
  font-size:14px;
  font-weight:700;
  line-height:1;
  text-decoration:none !important;
  cursor:pointer;
  transition:.18s ease;
  font-family:inherit;
  white-space:nowrap;
}

.top-menu-link i,
.top-menu-dropbtn i{
  font-size:15px;
  width:18px;
  text-align:center;
}

.top-menu-dropbtn .arrow{
  width:auto;
  margin-left:2px;
  font-size:11px;
  opacity:.75;
}

.top-menu-link:hover,
.top-menu-link.active,
.top-menu-dropdown:hover > .top-menu-dropbtn,
.top-menu-dropdown.active > .top-menu-dropbtn{
  background:rgba(255,255,255,.11);
  color:#fff !important;
  border-color:rgba(255,255,255,.08);
}

.top-menu-dropdown{
  position:relative;
  display:inline-flex;
}

.top-menu-dropdown-content{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  z-index:1002;
  min-width:230px;
  display:none;
  padding:8px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:0 18px 45px rgba(15,23,42,.22);
}

.top-menu-dropdown-right{
  left:auto;
  right:0;
}

.top-menu-dropdown:hover .top-menu-dropdown-content,
.top-menu-dropdown:focus-within .top-menu-dropdown-content{
  display:block;
}

.top-menu-dropdown-content::before{
  content:"";
  position:absolute;
  top:-11px;
  left:0;
  right:0;
  height:11px;
}

.top-menu-dropdown-content a{
  display:flex !important;
  align-items:center;
  gap:10px;
  width:100%;
  padding:10px 12px;
  margin:0 !important;
  border-radius:12px !important;
  color:#26364f !important;
  text-decoration:none !important;
  font-size:14px;
  font-weight:650;
  border:0 !important;
  background:transparent !important;
  transform:none !important;
}

.top-menu-dropdown-content a i{
  width:18px;
  text-align:center;
  color:var(--primary);
}

.top-menu-dropdown-content a:hover{
  background:var(--primary-soft) !important;
  color:var(--primary) !important;
}

.top-menu-logout{
  background:rgba(239,68,68,.14) !important;
  border-color:rgba(248,113,113,.28) !important;
  color:#fff !important;
}

.top-menu-logout:hover{
  background:#dc2626 !important;
  border-color:#dc2626 !important;
  color:#fff !important;
}

.top-menu-logout i{
  color:#fff !important;
}

.top-menu-burger{
  display:none;
  margin-left:auto;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:rgba(255,255,255,.08);
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
}

.top-menu-burger span{
  display:block;
  width:22px;
  height:2px;
  border-radius:999px;
  background:#fff;
  transition:.18s ease;
}

.top-menu-burger.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.top-menu-burger.is-active span:nth-child(2){ opacity:0; }
.top-menu-burger.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:1180px){
  .top-menu-inner{ gap:10px; padding-left:16px; padding-right:16px; }
  .top-menu-brand{ min-width:auto; }
  .top-menu-brand strong{ font-size:14px; }
  .top-menu-link,
  .top-menu-dropbtn{ padding-left:9px; padding-right:9px; font-size:13px; }
}

@media (max-width:980px){
  .app .sidebar.top-menu{ position:relative; }
  .top-menu-inner{ min-height:64px; flex-wrap:wrap; padding:8px 14px; }
  .top-menu-brand img{ height:44px !important; max-width:64px; }
  .top-menu-brand small{ display:none; }
  .top-menu-burger{ display:flex; }
  .top-menu-nav{
    display:none;
    flex:0 0 100%;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:6px;
    padding:8px 0 12px;
  }
  .top-menu-nav.is-open{ display:flex; }
  .top-menu-link,
  .top-menu-dropbtn{
    width:100%;
    justify-content:flex-start;
    min-height:44px;
    padding:11px 12px;
  }
  .top-menu-dropdown{ display:block; width:100%; }
  .top-menu-dropbtn .arrow{ margin-left:auto; }
  .top-menu-dropdown-content,
  .top-menu-dropdown-right{
    position:static;
    display:none;
    min-width:0;
    width:100%;
    margin:4px 0 8px;
    padding:6px;
    border-radius:14px;
    box-shadow:none;
  }
  .top-menu-dropdown:hover .top-menu-dropdown-content,
  .top-menu-dropdown:focus-within .top-menu-dropdown-content{
    display:none;
  }
  .top-menu-dropdown.is-open .top-menu-dropdown-content{ display:block; }
  .top-menu-dropdown-content::before{ display:none; }
}

@media (max-width:520px){
  .top-menu-brand strong{ font-size:13px; }
  .top-menu-brand img{ height:38px !important; max-width:56px; }
  .topbar{ padding:12px 14px; }
  .content{ padding:14px; }
  .user-pill{ width:100%; justify-content:space-between; }
}

/* =========================================================
   REFINAMENTO GLOBAL DE LAYOUT - 2026-05-29
   Conteúdo em largura total, menos sombra e visual mais limpo.
========================================================= */
body{
  background:#f6f8fc;
}

.content{
  width:100%;
  max-width:none;
  padding:24px clamp(16px, 2.2vw, 34px);
}

.content > .section,
.section{
  padding:0 !important;
  width:100%;
}

.container,
.section > .container,
.content .container{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

.box,
.panel-soft,
.table-wrap,
.sys-card,
.message,
.card{
  border:1px solid #e7edf5 !important;
  border-radius:14px !important;
  box-shadow:none !important;
}

.box,
.panel-soft,
.card{
  background:#fff;
}

.box{
  padding:18px !important;
}

.table-wrap{
  width:100%;
  overflow:auto;
}

.table{
  background:#fff;
  border-radius:14px;
}

.table.is-fullwidth{
  width:100% !important;
}

.table thead th{
  background:#f3f6fb;
  border-bottom:1px solid #e2e8f0;
  color:#26364f;
}

.table.is-striped tbody tr:not(.is-selected):nth-child(even){
  background:#fafcff;
}

.button{
  border-radius:10px;
  box-shadow:none !important;
}

.input,
.textarea,
.select select,
.file-cta,
.file-name{
  border-radius:10px;
  box-shadow:none !important;
}

.topbar{
  box-shadow:none !important;
  background:#fff;
}

.sys-cards{
  width:100%;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}

@media (max-width:768px){
  .content{ padding:16px 12px; }
  .box{ padding:14px !important; }
  .columns{ margin-left:0; margin-right:0; }
}
