/*
  Padronização institucional completa — Portal IEMA IP Pindaré-Mirim
  Base: iemapindare-pages-central-atendimentos-completa(1).zip
  Escopo: áreas públicas + login + responsável + aluno + professor + gestão + central de atendimentos.
  A lógica do portal não é alterada por este arquivo.
*/

:root{
  --portal-blue:#075f9b;
  --portal-blue-dark:#123d66;
  --portal-blue-deep:#082f52;
  --portal-green:#087b68;
  --portal-red:#d83c47;
  --portal-orange:#eaa13e;
  --portal-ink:#17334b;
  --portal-muted:#617386;
  --portal-bg:#f3f6f8;
  --portal-surface:#ffffff;
  --portal-line:#d5e0e7;
  --portal-line-strong:#bfcfd9;
  --portal-soft-blue:#edf4f8;
  --portal-soft-green:#eef8f4;
  --portal-shadow-soft:0 5px 16px rgba(8,47,82,.07);
  --portal-shadow-title:0 1px 2px rgba(8,47,82,.18);
}

/* Sombras discretas somente onde ajudam a hierarquia. */
.hero h1{
  text-shadow:0 3px 10px rgba(0,0,0,.36)!important;
}
.workspace-body>h1,
.admin-title h1,
.directory-list-page .section-head h1,
.public-detail-card h1,
.enhance-dialog>header h2,
.communication-head h2{
  color:var(--portal-blue-deep)!important;
  text-shadow:var(--portal-shadow-title);
  letter-spacing:-.018em;
}

/* =========================
   ÁREA RESTRITA / ESTRUTURA
   ========================= */
.workspace{
  background:var(--portal-bg)!important;
}
.workspace-shell{
  grid-template-columns:250px minmax(0,1fr)!important;
}
.sidebar{
  position:relative;
  background:var(--portal-blue-deep)!important;
  padding:26px 18px!important;
  box-shadow:4px 0 18px rgba(8,47,82,.08);
}
.sidebar::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:4px;
  background:linear-gradient(180deg,var(--portal-red) 0 32%,var(--portal-orange) 32% 49%,#08a4bb 49% 66%,var(--portal-blue) 66% 100%);
}
.side-brand{
  margin-bottom:28px!important;
  padding:0 4px 18px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.side-brand .mark{
  width:62px!important;
  height:54px!important;
  flex:0 0 62px!important;
  border-radius:4px!important;
  background:#fff!important;
  box-shadow:0 3px 10px rgba(0,0,0,.18)!important;
}
.side-brand strong{font-size:15px;letter-spacing:.02em}
.side-brand span{color:#b9d3e4!important;font-size:11px!important;margin-top:3px}
.side-btn{
  position:relative;
  border-radius:4px!important;
  padding:12px 12px 12px 15px!important;
  margin-bottom:6px!important;
  color:#d2e3ed!important;
  font-size:13px;
  letter-spacing:.005em;
  transition:background .16s ease,color .16s ease!important;
}
.side-btn:hover,.side-btn.active{
  background:#0c4b77!important;
  color:#fff!important;
}
.side-btn.active::before{
  content:"";
  position:absolute;
  left:0;top:7px;bottom:7px;
  width:3px;
  background:var(--portal-orange);
}
.workspace-main{background:var(--portal-bg)!important}
.workspace-top{
  height:68px!important;
  background:#fff!important;
  border-bottom:1px solid var(--portal-line)!important;
  padding:0 30px!important;
  box-shadow:0 2px 8px rgba(8,47,82,.035);
}
.workspace-back{
  color:var(--portal-blue-dark)!important;
  font-size:13px;
  padding:9px 0;
}
.user-badge{
  border:1px solid #cedbe3;
  background:#f8fafb!important;
  color:#36566d;
  border-radius:4px!important;
  padding:8px 11px!important;
  font-size:11px!important;
}
.workspace-body{
  width:100%;
  max-width:1380px!important;
  margin:0 auto;
  padding:34px 38px 60px!important;
}
.workspace-body>h1,.admin-title h1{
  font-size:clamp(28px,3vw,36px)!important;
  margin:0 0 6px!important;
}
.admin-title{
  padding-bottom:17px;
  border-bottom:1px solid var(--portal-line);
}
.sub{
  color:var(--portal-muted)!important;
  line-height:1.55;
}
.workspace-body>h1 + .sub,
.admin-title .sub{
  margin-bottom:22px!important;
}

/* Login/cadastro: aparência de serviço institucional, não de landing page. */
.workspace.workspace-mode-auth .workspace-body{
  max-width:760px!important;
  padding-top:46px!important;
}
.workspace.workspace-mode-auth .workspace-body>h1{
  font-size:34px!important;
}
.workspace.workspace-mode-auth .panel{
  border-top:4px solid var(--portal-blue)!important;
  box-shadow:var(--portal-shadow-soft)!important;
}
.workspace.workspace-mode-auth .note{
  border-left-color:var(--portal-orange)!important;
}

/* =========================
   PAINÉIS, INDICADORES, LISTAS
   ========================= */
.panel{
  background:#fff!important;
  border:1px solid var(--portal-line)!important;
  border-radius:7px!important;
  padding:22px!important;
  box-shadow:none!important;
}
.panel>h3{
  position:relative;
  color:var(--portal-blue-deep)!important;
  font-size:18px;
  margin:0 0 17px!important;
  padding-bottom:9px;
  border-bottom:1px solid #e3eaef;
}
.panel>h3::after{
  content:"";
  position:absolute;
  left:0;bottom:-1px;
  width:38px;height:2px;
  background:var(--portal-blue);
}
.grid3{gap:12px!important}
.stat{
  position:relative;
  border:1px solid var(--portal-line)!important;
  border-radius:6px!important;
  padding:17px 18px 18px!important;
  box-shadow:none!important;
  overflow:hidden;
}
.stat::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:var(--portal-blue);
}
.stat span{font-size:12px!important;color:var(--portal-muted)!important;text-transform:uppercase;letter-spacing:.035em;font-weight:700}
.stat strong{font-size:28px!important;color:var(--portal-blue-deep);font-variant-numeric:tabular-nums}
.empty{
  border-radius:5px!important;
  background:#f8fafb!important;
  border:1px dashed #b9cad5!important;
  padding:19px!important;
}
.note{
  border-radius:5px!important;
  background:#f1f6f9!important;
  border:1px solid #cadce6!important;
  border-left:4px solid var(--portal-blue)!important;
  color:#34536a!important;
}
.list{gap:8px!important}
.list-item{
  border:1px solid var(--portal-line)!important;
  border-radius:5px!important;
  padding:14px 15px!important;
  background:#fff;
  box-shadow:none!important;
}
.list-item:hover{border-color:#bccdd7!important;background:#fcfdfe}
.list-item strong{color:#203f58}
.list-item span{color:var(--portal-muted)!important;line-height:1.42}
.status,
.meeting-type-badge,
.meeting-approval-step,
.directory-role-badge,
.directory-count,
.enhance-status{
  border-radius:999px!important; /* Chips de status são uma exceção deliberada. */
  box-shadow:none!important;
}
.status{border:1px solid rgba(23,107,82,.12)}
.status.pending{border-color:rgba(133,100,4,.14)}
.status.bad{border-color:rgba(154,40,40,.12)}

/* =========================
   AÇÕES RÁPIDAS E NAVEGAÇÃO
   ========================= */
.quick{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
.quick button{
  position:relative;
  border:1px solid var(--portal-line)!important;
  border-left:3px solid var(--portal-blue)!important;
  border-radius:6px!important;
  padding:17px 18px!important;
  gap:13px!important;
  background:#fff!important;
  box-shadow:none!important;
  transform:none!important;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease!important;
}
.quick button:hover{
  background:#fbfdfe!important;
  border-color:#b8cad5!important;
  border-left-color:var(--portal-red)!important;
  box-shadow:var(--portal-shadow-soft)!important;
  transform:none!important;
}
.quick .emoji{
  width:42px;height:42px;
  flex:0 0 42px;
  display:grid!important;
  place-items:center;
  border-radius:5px;
  background:var(--portal-soft-blue);
  color:var(--portal-blue-dark);
  font-size:0!important;
}
.quick .emoji svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.quick strong{font-size:16px!important;color:var(--portal-blue-deep)}
.quick small{font-size:12px!important;line-height:1.45!important}

.mgmt-nav,.role-tabs{
  gap:0!important;
  border-bottom:1px solid var(--portal-line);
  margin:18px 0 22px!important;
  padding:0!important;
}
.mgmt-nav button,.role-tabs button{
  position:relative;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#526c7f!important;
  padding:11px 13px 12px!important;
  box-shadow:none!important;
  transform:none!important;
}
.mgmt-nav button:hover,.role-tabs button:hover{color:var(--portal-blue)!important;background:#f6f9fb!important}
.mgmt-nav button.active,.role-tabs button.active{
  color:var(--portal-blue-deep)!important;
  background:transparent!important;
}
.mgmt-nav button.active::after,.role-tabs button.active::after{
  content:"";
  position:absolute;
  left:8px;right:8px;bottom:-1px;
  height:3px;
  background:var(--portal-blue);
}

/* =========================
   BOTÕES E FORMULÁRIOS
   ========================= */
.login-btn,.primary,.secondary,.danger,
.editor-toolbar button,.calendar-filter,
.enhance-close,.enhance-bell,
.enhance-summary-grid button,
.enhance-complete-options button,
.enhance-attachment-list button,
.enhance-notification{
  border-radius:5px!important;
  box-shadow:none!important;
  transform:none!important;
}
.primary,.login-btn{
  background:var(--portal-blue)!important;
  box-shadow:0 2px 5px rgba(7,95,155,.14)!important;
}
.primary:hover,.login-btn:hover{background:#064f81!important;box-shadow:0 4px 10px rgba(7,95,155,.16)!important}
.secondary{background:#fff!important;border:1px solid #c5d4de!important;color:var(--portal-blue-dark)!important}
.secondary:hover{background:#f5f8fa!important;border-color:#aebfcb!important}
.danger{background:#fff!important;border:1px solid #e0bfc1!important;color:#a22b34!important}
.danger:hover{background:#fff5f5!important;border-color:#d89ca1!important}
button:disabled{opacity:.55;cursor:not-allowed!important}

.field{gap:6px!important}
.field label,.enhance-form label,.enhance-report-tools label{color:#29485f!important;font-weight:750!important}
.field input,.field select,.field textarea,
.directory-tools input,.directory-tools select,
.enhance-center-tools input,.enhance-center-tools select,
.enhance-form input,.enhance-form select,.enhance-form textarea,
.enhance-message-form textarea,.enhance-attachment-form input,.enhance-report-tools input{
  border:1px solid #b9cbd6!important;
  border-radius:5px!important;
  background:#fff!important;
  color:var(--portal-ink)!important;
  box-shadow:none!important;
  padding:13px 15px!important;
}
.field input:focus,.field select:focus,.field textarea:focus,
.directory-tools input:focus,.directory-tools select:focus,
.enhance-center-tools input:focus,.enhance-center-tools select:focus,
.enhance-form input:focus,.enhance-form select:focus,.enhance-form textarea:focus,
.enhance-message-form textarea:focus,.enhance-attachment-form input:focus,.enhance-report-tools input:focus{
  outline:none!important;
  border-color:var(--portal-blue)!important;
  box-shadow:0 0 0 3px rgba(7,95,155,.10)!important;
}
.field small{color:var(--portal-muted);line-height:1.4}
.editor-toolbar{
  border-radius:5px 5px 0 0!important;
  background:#f4f7f9!important;
  border-color:#c9d6df!important;
  box-shadow:none!important;
}
.editor-toolbar select,.editor-color{border-radius:4px!important}
.editor{border-radius:0 0 5px 5px!important;border-color:#c9d6df!important}

/* =========================
   AGENDAMENTOS / TUTORES / MATERIAIS
   ========================= */
.meeting-auto-choice{
  border-radius:5px!important;
  background:#f3f7fa!important;
  border:1px solid #cfdae2!important;
}
.meeting-approval-trail{gap:5px!important}
.meeting-approval-step{padding:5px 8px!important;font-size:11px!important}
.meeting-actions{gap:7px!important}
.tutor-assignment-grid{gap:12px!important}

.material-grid,
.hero-image-manager-list,
.academic-progress-list{
  gap:10px!important;
}
.material-card,
.hero-image-manager-item,
.academic-progress-item,
.student-assignment-row{
  border:1px solid var(--portal-line)!important;
  border-radius:6px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.material-card:hover,.hero-image-manager-item:hover{border-color:#b9cad5!important}
.material-chip{border-radius:999px!important}
.material-meta{color:var(--portal-muted)!important}
.hero-image-manager-item img{border-radius:4px!important}
.hero-image-feedback,.material-feedback,.academic-progress-feedback{
  border-radius:5px!important;
}
.academic-progress-controls{
  padding:16px!important;
  border:1px solid var(--portal-line)!important;
  border-radius:6px!important;
  background:#f8fafb!important;
}
.academic-progress-note{
  border-left:4px solid var(--portal-orange)!important;
  border-radius:4px!important;
  background:#fffaf1!important;
}

/* =========================
   PERFIS, DIRETÓRIO E DETALHES
   ========================= */
.directory-card{
  border-radius:6px!important;
  box-shadow:none!important;
  transform:none!important;
  border-top:3px solid var(--portal-blue)!important;
}
.directory-card:hover{transform:none!important;box-shadow:var(--portal-shadow-soft)!important;border-top-color:var(--portal-red)!important}
.directory-photo,.directory-avatar{border-radius:6px!important;background:#edf4f8!important}
.directory-tools{
  border-radius:6px!important;
  box-shadow:none!important;
  background:#fff!important;
}
.directory-preview-card{
  border-radius:6px!important;
  box-shadow:none!important;
  border-left:4px solid var(--portal-blue)!important;
}
.directory-list-page{background:var(--portal-bg)!important}
.directory-list-page .section-head h1{font-size:34px;margin:0}
.profile-photo-box .directory-photo,.profile-photo-box .directory-avatar{border-radius:7px!important}
.directory-detail-list div{
  border-radius:5px!important;
  background:#f8fafb!important;
}
.public-detail-page{background:var(--portal-bg)!important}
.public-detail-card{
  border-radius:7px!important;
  box-shadow:var(--portal-shadow-soft)!important;
  border-top:4px solid var(--portal-blue)!important;
}
.public-detail-image,.public-pdf-wrap,.public-detail-file{border-radius:5px!important}

/* =========================
   MODAIS, COMUNICAÇÃO E CANCELAMENTO
   ========================= */
.overlay,.enhance-overlay,.communication-modal,.cancel-dialog{
  backdrop-filter:blur(2px);
}
.modal,
.enhance-dialog,
.communication-dialog{
  border-radius:7px!important;
  border:1px solid rgba(8,47,82,.12)!important;
  box-shadow:0 24px 70px rgba(4,24,40,.28)!important;
}
.modal-head,.enhance-dialog>header,.communication-head{
  background:#fff!important;
  border-bottom:1px solid var(--portal-line)!important;
}
.modal-head h2{color:var(--portal-blue-deep)!important;text-shadow:var(--portal-shadow-title)}
.close,.enhance-close,.communication-close{
  border-radius:4px!important;
  background:#f2f5f7!important;
  border:1px solid #d6e0e6!important;
  color:#36556b!important;
}
.close:hover,.enhance-close:hover,.communication-close:hover{background:#e8eef2!important}
.conversation-message,
.enhance-message,
.enhance-detail-summary,
.enhance-proposal,
.enhance-notification,
.enhance-report-grid section,
.enhance-center-stats>div,.enhance-report-stats>div,
.enhance-appointment-card{
  border-radius:5px!important;
  box-shadow:none!important;
}
.conversation-message,.enhance-message{background:#f7f9fa!important}
.enhance-message.own{background:#edf5fa!important}
.enhance-appointment-card{border-left:3px solid var(--portal-blue)!important}
.enhance-summary-grid button{
  border:1px solid var(--portal-line)!important;
  border-left:3px solid var(--portal-blue)!important;
  background:#fff!important;
}
.enhance-summary-grid button:hover{background:#f8fafb!important;border-left-color:var(--portal-red)!important}
.enhance-bell{background:#fff!important;border-color:#c8d7e1!important}
.enhance-bell,.side-btn[data-enhance-notifications]{display:inline-flex;align-items:center;gap:9px}
.enhance-bell-icon{display:inline-grid;place-items:center;color:currentColor;line-height:0}
.enhance-bell-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.enhance-side-icon svg{width:17px;height:17px}
.enhance-side-count[hidden],.enhance-bell [data-notification-count][hidden]{display:none!important}
.directory-detail-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:22px}
.directory-detail-actions:empty{display:none}
.directory-detail-actions .secondary{display:flex!important;align-items:center;justify-content:flex-start;gap:10px;min-height:64px;padding:16px 18px!important;text-align:left;text-decoration:none;line-height:1.35}
.directory-action-link .action-icon{display:inline-grid;place-items:center;min-width:20px;font-size:17px;line-height:1}
.directory-action-link .action-text{display:block}
.phone-public{margin-top:0!important}
@media(max-width:700px){.directory-detail-actions{grid-template-columns:1fr}.directory-detail-actions .secondary{min-height:58px}}
.enhance-dialog>header h2{font-size:23px!important}
.enhance-report-table>div{border-color:#e5ebef!important}

/* =========================
   CALENDÁRIO / GALERIA ADMIN
   ========================= */
.calendar-icon{
  width:28px;height:28px;
  display:inline-grid!important;
  place-items:center;
  color:var(--portal-blue-dark);
  font-size:0!important;
}
.calendar-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.calendar-image-indicator{font-size:12px!important}
.gallery-grid{gap:12px!important}
.gallery-lightbox-inner,.gallery-lightbox-grid img{border-radius:6px!important}
.gallery-lightbox-head{border-bottom:1px solid var(--portal-line)}

/* =========================
   TOASTS / FEEDBACK
   ========================= */
.toast,.enhance-toast{
  border-radius:5px!important;
  box-shadow:0 12px 32px rgba(4,24,40,.22)!important;
  border-left:4px solid rgba(255,255,255,.35);
}

/* Acessibilidade visual */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(7,95,155,.24)!important;
  outline-offset:2px!important;
}

@media(max-width:1024px){
  .workspace-shell{grid-template-columns:1fr!important}
  .sidebar{
    position:relative;
    display:flex!important;
    align-items:center;
    gap:8px;
    padding:10px 14px 10px 18px!important;
    overflow:auto;
    box-shadow:none;
  }
  .sidebar::before{width:100%;height:3px;bottom:auto}
  .side-brand{margin:0 10px 0 0!important;padding:0 14px 0 0;border:0;border-right:1px solid rgba(255,255,255,.16);flex:0 0 auto}
  .side-brand .mark{width:48px!important;height:42px!important;flex-basis:48px!important}
  .side-brand span{display:none!important}
  .side-btn{width:auto!important;white-space:nowrap;margin:0!important;padding:10px 12px!important}
  .side-btn.active::before{left:8px;right:8px;top:auto;bottom:1px;width:auto;height:2px}
  .workspace-top{position:relative!important}
  .workspace-body{padding:28px 22px 48px!important}
  .quick{grid-template-columns:1fr!important}
}

@media(max-width:700px){
  .workspace-body{padding:22px 14px 42px!important}
  .workspace-top{height:60px!important;padding:0 14px!important}
  .user-badge{max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .workspace-body>h1,.admin-title h1{font-size:28px!important}
  .panel{padding:17px!important}
  .grid3{grid-template-columns:1fr!important}
  .form{grid-template-columns:1fr!important}
  .field.full{grid-column:auto!important}
  .list-item{flex-direction:column!important}
  .list-item>div:last-child,.meeting-actions{justify-content:flex-start!important;width:100%}
  .mgmt-nav,.role-tabs{overflow-x:auto;flex-wrap:nowrap!important;scrollbar-width:thin}
  .mgmt-nav button,.role-tabs button{white-space:nowrap}
  .quick button{padding:15px!important}
  .enhance-dialog{border-radius:5px!important}
  .directory-detail-head{align-items:flex-start!important}
}

@media(max-width:460px){
  .sidebar{gap:5px!important}
  .side-brand{display:none!important}
  .side-btn{font-size:12px!important}
  .workspace-back{font-size:12px!important}
  .panel>h3{font-size:17px}
}

/* Reagendamento: resposta visível também na área principal do responsável. */
.toast{z-index:420!important}
.enhance-toast{z-index:430!important;right:22px!important;bottom:22px!important}
.list-item.has-reschedule-proposal{flex-wrap:wrap}
.parent-reschedule-proposal{flex:1 0 100%;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:15px 16px;border:1px solid #b9d5e5;border-left:4px solid var(--portal-blue);background:#f5f9fc;border-radius:5px}
.parent-reschedule-copy{min-width:0}
.parent-reschedule-copy strong,.parent-reschedule-copy span,.parent-reschedule-copy small{display:block}
.parent-reschedule-copy strong{color:var(--portal-blue-deep);margin-bottom:5px}
.parent-reschedule-copy span{color:#35566d;font-size:14px;line-height:1.45}
.parent-reschedule-copy small{color:var(--portal-muted);margin-top:5px;line-height:1.4}
.parent-reschedule-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.parent-reschedule-actions button{white-space:nowrap}
@media(max-width:700px){.parent-reschedule-proposal{align-items:stretch;flex-direction:column}.parent-reschedule-actions{display:grid;grid-template-columns:1fr}.parent-reschedule-actions button{width:100%}}
