:root {
  --navy: #17324d;
  --navy-2: #214866;
  --teal: #167d78;
  --teal-soft: #e4f4f1;
  --coral: #ef7d5b;
  --gold: #eeb94f;
  --cream: #f7f5ef;
  --paper: #ffffff;
  --ink: #25313c;
  --muted: #72808d;
  --line: #dde5e8;
  --shadow: 0 14px 38px rgba(26, 55, 73, .10);
  --sidebar: 270px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--cream); }
body { min-height: 100vh; margin: 0; background: var(--cream); }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
[hidden] { display: none !important; }

.skip { position: fixed; left: 16px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: 10px; background: var(--navy); color: #fff; transition: top .2s; }
.skip:focus { top: 16px; }

/* Login */
.login-body { background: #edf4f2; }
.login-layout { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, 1.05fr) minmax(420px, .95fr); }
.login-apresentacao { position: relative; overflow: hidden; min-height: 100vh; padding: 54px clamp(42px, 7vw, 110px); display: flex; flex-direction: column; justify-content: space-between; color: #fff; background: linear-gradient(145deg, #153b50 0%, #166862 60%, #29968d 100%); }
.login-apresentacao::after { content: ""; position: absolute; width: 520px; height: 520px; right: -210px; bottom: -230px; border: 80px solid rgba(255,255,255,.08); border-radius: 50%; }
.login-marca { position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; }
.login-simbolo, .sidebar-simbolo { display: block; flex: 0 0 auto; object-fit: contain; }
.login-simbolo { width: 58px; height: 58px; }
.login-marca div { display: grid; gap: 2px; }
.login-marca strong { font-size: 20px; }
.login-marca small { color: #c9e7e1; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.login-texto { position: relative; z-index: 1; max-width: 620px; padding: 80px 0; }
.login-etiqueta { display: inline-flex; padding: 7px 12px; border-radius: 99px; background: rgba(255,255,255,.12); color: #e9faf7; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.login-texto h1 { max-width: 590px; margin: 22px 0 20px; font-size: clamp(42px, 5.2vw, 72px); line-height: 1.02; letter-spacing: -.045em; }
.login-texto p { max-width: 540px; margin: 0; color: #d5ece8; font-size: 18px; line-height: 1.7; }
.formas { position: relative; z-index: 1; display: flex; gap: 10px; }
.formas span { width: 10px; height: 10px; border-radius: 50%; background: var(--gold); }
.formas span:nth-child(2) { width: 44px; border-radius: 99px; background: #fff; opacity: .75; }
.formas span:nth-child(3) { background: var(--coral); }
.login-acesso { min-height: 100vh; display: grid; place-items: center; padding: 36px; background: radial-gradient(circle at 90% 10%, #d4ebe5, transparent 32%), #f8faf8; }
.login-card { width: min(100%, 470px); padding: 48px; border: 1px solid rgba(23,50,77,.09); border-radius: 26px; background: rgba(255,255,255,.93); box-shadow: var(--shadow); }
.login-card-icone { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 24px; border-radius: 14px; background: var(--teal-soft); color: var(--teal); font-size: 22px; }
.login-card h2 { margin: 0 0 8px; color: var(--navy); font-size: 32px; letter-spacing: -.03em; }
.login-card > p { margin: 0 0 28px; color: var(--muted); line-height: 1.6; }
.google-area { min-height: 72px; display: grid; place-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfcfc; }
.login-ajuda { display: block; margin-top: 22px; color: var(--muted); text-align: center; line-height: 1.5; }
.alerta { margin: 0 0 20px; padding: 12px 14px; border: 1px solid #f2c1b5; border-radius: 12px; background: #fff2ee; color: #a63e2c; font-size: 14px; }

/* Estrutura interna */
.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar { position: fixed; z-index: 30; inset: 0 auto 0 0; width: var(--sidebar); display: flex; flex-direction: column; padding: 28px 20px 20px; background: var(--navy); color: #fff; }
.sidebar::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 15% 0, rgba(41,150,141,.34), transparent 29%); }
.sidebar-marca { position: relative; display: flex; align-items: center; gap: 12px; padding: 0 8px 28px; border-bottom: 1px solid rgba(255,255,255,.10); }
.sidebar-simbolo { width: 46px; height: 46px; }
.sidebar-marca div { display: grid; gap: 2px; }
.sidebar-marca strong { font-size: 16px; }
.sidebar-marca small { color: #aebfca; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.menu-lista { position: relative; flex: 1; padding-top: 26px; overflow-y: auto; }
.menu-titulo { display: block; padding: 0 12px 10px; color: #92a9b8; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.menu-item { display: flex; align-items: center; gap: 12px; margin: 4px 0; padding: 12px; border-radius: 12px; color: #c8d4dc; font-size: 14px; font-weight: 600; text-decoration: none; transition: .18s ease; }
.menu-item svg { width: 20px; height: 20px; flex: 0 0 auto; }
.menu-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.menu-item.ativo { background: #fff; color: var(--navy); box-shadow: 0 8px 22px rgba(0,0,0,.14); }
.sidebar-rodape { position: relative; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.10); }
.google-oauth-botao { width: 100%; min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 0 16px; border: 1px solid #dadce0; border-radius: 4px; background: #fff; color: #3c4043; font: 500 14px Arial, sans-serif; cursor: pointer; }
.google-oauth-botao:hover { background: #f8faff; border-color: #c7d2e3; }
.google-oauth-botao:disabled { cursor: wait; opacity: .65; }
.google-oauth-botao svg { width: 18px; height: 18px; flex: 0 0 18px; }
.usuario-resumo { display: flex; align-items: center; gap: 10px; min-width: 0; }
.avatar { position: relative; width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; border-radius: 50%; background: var(--teal); font-weight: 800; }
.avatar img, .mini-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.usuario-resumo div { min-width: 0; display: grid; gap: 1px; }
.usuario-resumo strong, .usuario-resumo small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.usuario-resumo strong { font-size: 12px; }
.usuario-resumo small { color: #98adbb; font-size: 10px; }
.sair { display: inline-block; margin: 13px 0 0 46px; color: #f5b29e; font-size: 12px; font-weight: 700; text-decoration: none; }
.sair:hover { color: #fff; }
.principal { grid-column: 2; min-width: 0; }
.topbar { min-height: 90px; display: flex; align-items: center; gap: 20px; padding: 17px clamp(24px, 4vw, 52px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.86); backdrop-filter: blur(10px); }
.topbar-titulo { min-width: 0; margin-right: auto; }
.topbar-titulo small { display: block; margin-bottom: 3px; color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.topbar-titulo h1 { overflow: hidden; margin: 0; color: var(--navy); font-size: clamp(19px, 2vw, 25px); text-overflow: ellipsis; white-space: nowrap; }
.busca { width: min(36vw, 340px); height: 43px; display: flex; align-items: center; gap: 9px; padding: 0 14px; border: 1px solid var(--line); border-radius: 13px; background: #f8faf9; }
.busca:focus-within { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(22,125,120,.12); }
.busca svg { width: 18px; color: var(--muted); }
.busca input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); }
.icone-botao { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--navy); cursor: pointer; }
.icone-botao svg { width: 21px; }
.menu-mobile { display: none; }
.conteudo { min-height: calc(100vh - 90px); padding: 34px clamp(24px, 4vw, 52px) 46px; }

/* Kanban */
.pagina-cabecalho { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.pagina-selo { color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.pagina-cabecalho h2 { margin: 7px 0 8px; color: var(--navy); font-size: clamp(27px, 3vw, 38px); letter-spacing: -.035em; }
.pagina-cabecalho p { margin: 0; color: var(--muted); }
.resumo-total { min-width: 120px; padding: 14px 18px; border: 1px solid #cce2df; border-radius: 15px; background: var(--teal-soft); text-align: right; }
.resumo-total strong { display: block; color: var(--teal); font-size: 25px; line-height: 1; }
.resumo-total span { color: #517a77; font-size: 11px; }
.kanban-ajuda { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 13px; color: var(--muted); font-size: 12px; }
.kanban-legenda { display: flex; align-items: center; gap: 7px; }
.kanban-legenda i { width: 8px; height: 8px; border-radius: 50%; background: var(--coral); }
.kanban { display: flex; align-items: flex-start; gap: 17px; width: 100%; min-height: 140px; padding: 3px 2px 14px; overflow-x: auto; overflow-y: auto; scroll-snap-type: x proximity; scrollbar-color: #8eaaac #dfe8e7; scrollbar-width: auto; }
.kanban::-webkit-scrollbar { width: 12px; height: 12px; }
.kanban::-webkit-scrollbar-track { border-radius: 99px; background: #dfe8e7; }
.kanban::-webkit-scrollbar-thumb { border: 2px solid #dfe8e7; border-radius: 99px; background: #8eaaac; }
.kanban::-webkit-scrollbar-thumb:hover { background: var(--teal); }
.kanban-coluna { width: 292px; min-width: 292px; min-height: calc(100% - 4px); padding: 13px; border: 1px solid #dfe6e6; border-radius: 18px; background: #edf2f0; scroll-snap-align: start; }
.kanban-coluna-cab { min-height: 45px; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 2px 2px 12px; }
.coluna-identidade { display: flex; align-items: flex-start; gap: 9px; min-width: 0; }
.coluna-titulo { display: grid; gap: 5px; min-width: 0; }
.coluna-titulo a { color: var(--teal); font-size: 9px; font-weight: 800; line-height: 1.2; text-decoration: underline; text-underline-offset: 2px; }
.coluna-titulo a:hover { color: var(--navy); }
.coluna-ponto { width: 9px; height: 9px; flex: 0 0 auto; border: 2px solid #fff; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 1px var(--teal); }
.kanban-coluna:nth-child(3n+2) .coluna-ponto { background: var(--coral); box-shadow: 0 0 0 1px var(--coral); }
.kanban-coluna:nth-child(3n) .coluna-ponto { background: var(--gold); box-shadow: 0 0 0 1px #d79c29; }
.kanban-coluna h3 { overflow: hidden; margin: 0; color: var(--navy); font-size: 12px; letter-spacing: .035em; text-overflow: ellipsis; white-space: nowrap; }
.coluna-contador { min-width: 25px; padding: 4px 7px; border-radius: 99px; background: #fff; color: var(--muted); font-size: 11px; font-weight: 800; text-align: center; }
.coluna-acoes { display: flex; align-items: center; gap: 6px; }
.botao-adicionar-topo { width: 26px; height: 26px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--teal); color: #fff; font-size: 19px; line-height: 1; cursor: pointer; transition: .18s ease; }
.botao-adicionar-topo:hover { background: var(--navy); transform: scale(1.06); }
.kanban-cartoes { display: grid; gap: 11px; }
.agendamento-card { padding: 16px; border: 1px solid rgba(23,50,77,.07); border-radius: 14px; background: #fff; box-shadow: 0 5px 14px rgba(32,55,68,.055); cursor: grab; }
.agendamento-card:hover { border-color: rgba(22,125,120,.28); box-shadow: 0 10px 22px rgba(32,55,68,.10); transform: translateY(-1px); }
.agendamento-card.arrastando { opacity: .42; cursor: grabbing; transform: rotate(1deg) scale(.98); }
.kanban-coluna.destino-arraste { border-color: var(--teal); background: #e3efec; box-shadow: inset 0 0 0 2px rgba(22,125,120,.13); }
.kanban-coluna.destino-arraste .kanban-cartoes { min-height: 180px; }
.card-topo { display: flex; justify-content: space-between; align-items: center; gap: 7px; margin-bottom: 12px; }
.segmento, .status { overflow: hidden; padding: 5px 7px; border-radius: 7px; font-size: 9px; font-weight: 800; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.segmento { background: #e8f4f2; color: #176f6b; }
.segmento-fundamental-ii { background: #fff0e9; color: #a95036; }
.segmento-integral { background: #fff5d8; color: #8b6819; }
.status { background: #edf0f4; color: #526475; }
.agendamento-card h4 { margin: 0 0 11px; color: var(--navy); font-size: 15px; line-height: 1.4; }
.card-data { display: flex; align-items: center; gap: 7px; color: var(--teal); font-size: 12px; font-weight: 700; }
.card-data svg { width: 16px; }
.card-horario { margin-top: 7px; color: var(--navy); }
.agendamento-card p { display: -webkit-box; overflow: hidden; margin: 11px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.agendamento-card footer { display: flex; align-items: center; gap: 7px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #edf0f0; color: var(--muted); font-size: 10px; }
.agendamento-card footer > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-avatar { position: relative; width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; border-radius: 50%; background: var(--navy); color: #fff; font-size: 9px; font-weight: 800; }
.card-acoes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 13px; }
.acao-card { padding: 5px 7px; border: 1px solid #dce5e5; border-radius: 7px; background: #f8faf9; color: var(--navy); font-size: 9px; font-weight: 800; cursor: pointer; }
.acao-card:hover { border-color: var(--teal); color: var(--teal); }
.acao-card.acao-perigo { color: #a84c3b; }
.acao-card.acao-perigo:hover { border-color: #d98d7d; background: #fff4f1; }
.coluna-vazia { min-height: 100px; display: grid; place-items: center; padding: 16px; border: 1px dashed #cbd6d7; border-radius: 13px; color: #96a2a5; font-size: 11px; text-align: center; }
.coluna-vazia[hidden] { display: none; }
.cartao-adicionar { min-height: 70px; display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; padding: 14px; border: 1.5px dashed #a9c2c0; border-radius: 13px; background: rgba(255,255,255,.38); color: var(--teal); cursor: pointer; transition: .18s ease; }
.cartao-adicionar span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--teal-soft); font-size: 20px; line-height: 1; }
.cartao-adicionar strong { font-size: 11px; }
.cartao-adicionar:hover { border-color: var(--teal); background: #fff; transform: translateY(-1px); }
.busca-vazia { margin-top: 15px; padding: 14px; border-radius: 12px; background: #fff; color: var(--muted); text-align: center; }
.estado-vazio { min-height: 350px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 30px; border: 1px dashed #cbd6d7; border-radius: 20px; background: rgba(255,255,255,.56); text-align: center; }
.estado-vazio > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--teal-soft); color: var(--teal); font-size: 24px; }
.estado-vazio h2 { margin: 8px 0 0; color: var(--navy); }
.estado-vazio p { margin: 0; color: var(--muted); }
.estado-erro > span { background: #fff0ec; color: #ad4a36; }

/* Listagens */
.pagina-cabecalho-acoes { align-items: center; }
.botao-novo { min-height: 44px; padding: 0 18px; border: 1px solid var(--teal); border-radius: 11px; background: var(--teal); color: #fff; font-weight: 800; cursor: pointer; white-space: nowrap; }
.botao-novo:hover { background: var(--navy); border-color: var(--navy); }
.tabela-painel { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(26,55,73,.06); }
.tabela-resumo { display: flex; align-items: baseline; gap: 7px; padding: 17px 20px; border-bottom: 1px solid var(--line); background: #f8faf9; }
.tabela-resumo strong { color: var(--teal); font-size: 21px; }
.tabela-resumo span { color: var(--muted); font-size: 11px; }
.tabela-scroll { overflow-x: auto; }
.tabela-dados { width: 100%; min-width: 760px; border-collapse: collapse; }
.tabela-dados th { padding: 13px 16px; border-bottom: 1px solid var(--line); background: #fbfcfc; color: #74828d; font-size: 10px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.tabela-dados td { padding: 15px 16px; border-bottom: 1px solid #edf1f1; color: #526471; font-size: 12px; }
.tabela-dados tbody tr:last-child td { border-bottom: 0; }
.tabela-dados tbody tr:hover td { background: #f8fbfa; }
.tabela-dados td > strong { color: var(--navy); font-size: 13px; }
.tabela-etiqueta { display: inline-flex; padding: 5px 8px; border-radius: 7px; background: var(--teal-soft); color: var(--teal); font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.tabela-acoes-titulo, .tabela-acoes { text-align: right !important; }
.tabela-acoes { white-space: nowrap; }
.acao-tabela { padding: 6px 9px; border: 1px solid #dce5e5; border-radius: 7px; background: #f8faf9; color: var(--navy); font-size: 10px; font-weight: 800; cursor: pointer; }
.acao-tabela:hover { border-color: var(--teal); color: var(--teal); }
.acao-tabela-perigo { margin-left: 4px; color: #a84c3b; }
.acao-tabela-perigo:hover { border-color: #d98d7d; background: #fff4f1; color: #a84c3b; }

/* CRM da Secretaria */
.crm-pagina{display:grid;gap:20px}.crm-cabecalho{display:flex;align-items:center;justify-content:space-between;gap:18px}.crm-cabecalho small{color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.crm-cabecalho h2{margin:4px 0 0;color:var(--navy)}
.botao-primario,.botao-secundario,.crm-filtros button,.crm-observacao button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:11px 16px;font:inherit;font-size:13px;font-weight:800;text-decoration:none;cursor:pointer}.botao-primario,.crm-filtros button,.crm-observacao button{background:var(--teal);color:#fff}.botao-secundario{background:#eef3f2;color:var(--navy)}
.crm-alerta{padding:12px 15px;border-radius:9px;font-weight:700}.crm-alerta.erro{background:#fff0ed;color:#963c2d}.crm-alerta.sucesso{background:#e9f7f2;color:#176658}
.crm-form{display:grid;gap:18px}.crm-form fieldset,.crm-detalhes,.crm-historico,.crm-painel{margin:0;border:1px solid #dfe8e7;border-radius:13px;padding:18px;background:#fff}.crm-form legend{padding:0 8px;color:var(--navy);font-weight:900}.crm-grade{display:grid;gap:14px}.crm-grade.tres{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-form label,.crm-periodo label{display:grid;gap:6px;color:#40525b;font-size:12px;font-weight:800}.crm-form input,.crm-form select,.crm-form textarea,.crm-filtros input,.crm-filtros select,.crm-observacao input{width:100%;border:1px solid #d6e1df;border-radius:8px;padding:10px 11px;background:#fff;color:#173544;font:inherit}.crm-form textarea{resize:vertical}.crm-check{display:flex!important;align-items:center!important;grid-template-columns:auto 1fr;padding-top:24px}.crm-check input{width:auto}.crm-ajuda,.crm-muted{color:#75868d;font-size:12px}.crm-estudantes{display:grid;gap:12px}.crm-estudante-linha{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr .7fr 1.2fr auto;gap:10px;padding:13px;border-radius:10px;background:#f6f9f8;align-items:end}.crm-detalhes summary{cursor:pointer;color:var(--navy);font-weight:900}.crm-detalhes[open] summary{margin-bottom:16px}.crm-acoes{display:flex;gap:10px}
.crm-filtros{display:grid;grid-template-columns:minmax(250px,1fr) 220px auto;gap:10px;padding:14px;border-radius:12px;background:#eef4f3}.crm-periodo{grid-template-columns:180px 180px auto;justify-content:start}.crm-tabela-wrap{overflow:auto;border:1px solid #dfe8e7;border-radius:12px;background:#fff}.crm-tabela{width:100%;border-collapse:collapse;min-width:950px}.crm-tabela th,.crm-tabela td{padding:13px 14px;border-bottom:1px solid #e8eeee;text-align:left;vertical-align:top}.crm-tabela th{background:#f4f8f7;color:#66777d;font-size:11px;text-transform:uppercase}.crm-tabela td{font-size:13px}.crm-tabela td small{display:block;margin-top:4px;color:#75868d}.crm-tag,.crm-status{display:inline-block;margin:0 4px 4px 0;border-radius:99px;padding:4px 8px;background:#edf5f3;color:#1c665e;font-size:11px;font-weight:800}.crm-links{display:flex;gap:8px}.crm-links a{color:var(--teal);font-size:12px;font-weight:800}.crm-vazio{text-align:center!important;color:#75868d}.crm-observacao{display:grid;grid-template-columns:1fr auto;gap:8px}.crm-linha-tempo{display:grid;gap:0;margin-top:14px}.crm-linha-tempo article{position:relative;padding:0 0 16px 22px;border-left:2px solid #dfe9e7}.crm-linha-tempo article:before{content:"";position:absolute;left:-6px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--teal)}.crm-linha-tempo span{color:#7a8a90;font-size:11px}.crm-linha-tempo strong{margin-left:8px;font-size:12px}.crm-linha-tempo p{margin:5px 0}.crm-linha-tempo small{color:#7a8a90}
.crm-paginacao{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 15px;border:1px solid #dfe8e7;border-radius:10px;background:#fff;color:#65777e;font-size:12px}.crm-paginacao div{display:flex;align-items:center;gap:12px}.crm-paginacao a{border-radius:7px;padding:7px 10px;background:#edf5f3;color:var(--teal);font-weight:800;text-decoration:none}.crm-paginacao strong{color:var(--navy)}
.crm-indicadores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.crm-indicadores article{display:grid;gap:8px;padding:17px;border:1px solid #dfe8e7;border-radius:12px;background:#fff}.crm-indicadores small{color:#6d7e84;font-weight:700}.crm-indicadores strong{color:var(--navy);font-size:28px}.crm-paineis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.crm-painel h3{margin-top:0}.crm-barra{margin:13px 0}.crm-barra div{display:flex;justify-content:space-between;gap:10px;font-size:12px}.crm-barra i{display:block;height:7px;margin-top:5px;border-radius:8px;background:linear-gradient(90deg,var(--teal),#76c4ba)}
@media(max-width:1100px){.crm-grade.tres,.crm-paineis{grid-template-columns:1fr 1fr}.crm-estudante-linha{grid-template-columns:1fr 1fr 1fr}.crm-indicadores{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.crm-grade.tres,.crm-paineis,.crm-indicadores,.crm-filtros,.crm-periodo,.crm-estudante-linha{grid-template-columns:1fr}.crm-cabecalho,.crm-paginacao{align-items:flex-start;flex-direction:column}.crm-check{padding-top:0}}
.tabela-vazia { min-height: 260px; display: grid; place-items: center; align-content: center; gap: 7px; padding: 30px; color: var(--muted); text-align: center; }
.tabela-vazia strong { color: var(--navy); }
.tabela-vazia span { font-size: 12px; }

/* Sessão */
.mensagem-body { display: grid; place-items: center; padding: 24px; background: #edf4f2; }
.mensagem-card { width: min(100%, 440px); padding: 42px; border-radius: 24px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.mensagem-icone { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 18px; background: var(--teal-soft); font-size: 25px; }
.mensagem-card h1 { margin: 0 0 10px; color: var(--navy); }
.mensagem-card p { margin: 0 0 24px; color: var(--muted); }
.mensagem-card small { display: block; margin-top: 18px; color: var(--muted); }
.botao-primario { display: inline-flex; padding: 11px 18px; border-radius: 11px; background: var(--teal); color: #fff; font-weight: 700; text-decoration: none; }

/* Avaliação 360º */
.avaliacao360-pagina { display: grid; gap: 22px; }
.avaliacao360-cabecalho { display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.avaliacao360-cabecalho small, .avaliacao360-config-titulo small { color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.avaliacao360-cabecalho h2, .avaliacao360-config-titulo h3 { margin: 4px 0 0; color: var(--navy); }
.avaliacao360-permissao { padding: 8px 11px; border-radius: 999px; background: var(--teal-soft); color: var(--teal); font-size: 11px; font-weight: 800; }
.avaliacao360-introducao, .avaliacao360-etapa, .avaliacao360-config, .avaliacao360-vazio { border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 8px 26px rgba(18,48,61,.05); }
.avaliacao360-introducao { padding: 27px; }
.avaliacao360-introducao h3 { margin: 0 0 12px; color: var(--navy); }
.avaliacao360-introducao p, .avaliacao360-config-titulo p { color: var(--muted); line-height: 1.6; }
.avaliacao360-competencias { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; }
.avaliacao360-competencias span { padding: 15px; border-radius: 12px; background: #f5f9f8; color: var(--muted); font-size: 12px; }
.avaliacao360-competencias strong { display: block; margin-bottom: 5px; color: var(--navy); text-transform: uppercase; }
.avaliacao360-criterios { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; margin-top: 15px; }
.avaliacao360-criterios p { margin: 0; padding: 14px; border-left: 3px solid var(--coral); border-radius: 8px; background: #f8faf9; font-size: 13px; }
.avaliacao360-criterios strong { color: var(--navy); }
.avaliacao360-cronograma small { color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.avaliacao360-cronograma h3 { margin: 5px 0 0; color: var(--navy); }
.avaliacao360-etapas { display: grid; gap: 13px; }
.avaliacao360-etapa { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 24px; }
.avaliacao360-etapa.fechada { background: #fbfcfc; box-shadow: none; }
.avaliacao360-etapa small { color: var(--coral); font-weight: 800; }
.avaliacao360-etapa h3 { margin: 5px 0; color: var(--navy); }
.avaliacao360-etapa p { margin: 0; color: var(--muted); }
.avaliacao360-links { min-width: 240px; display: grid; gap: 8px; }
.avaliacao360-links a { padding: 10px 14px; border-radius: 10px; background: var(--teal); color: #fff; font-size: 12px; font-weight: 800; text-align: center; text-decoration: none; }
.avaliacao360-botao-bloqueado { padding: 10px 14px; border: 1px solid #d9e1e3; border-radius: 10px; background: #eef2f2; color: #859198; font-size: 12px; font-weight: 800; text-align: center; cursor: not-allowed; }
.avaliacao360-sem-link { color: var(--muted); font-size: 12px; text-align: right; }
.avaliacao360-vazio { display: grid; gap: 7px; padding: 30px; text-align: center; color: var(--muted); }
.avaliacao360-vazio strong { color: var(--navy); }
.avaliacao360-alerta { padding: 12px 15px; border-radius: 11px; font-size: 13px; font-weight: 700; }
.avaliacao360-alerta.sucesso { background: #eaf7f1; color: #176846; }
.avaliacao360-alerta.erro { background: #fff0ed; color: #a43c2d; }
.avaliacao360-config { padding: 26px; }
.avaliacao360-config form { display: grid; gap: 18px; margin-top: 20px; }
.avaliacao360-ano { width: 150px; display: grid; gap: 6px; color: var(--navy); font-size: 12px; font-weight: 800; }
.avaliacao360-ano input, .avaliacao360-config fieldset input[type=date] { min-height: 42px; padding: 0 11px; border: 1px solid #d6e0e1; border-radius: 10px; background: #fbfcfc; }
.avaliacao360-config-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.avaliacao360-config fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding: 17px; border: 1px solid var(--line); border-radius: 13px; }
.avaliacao360-config legend { grid-column: 1 / -1; padding: 0 5px; color: var(--navy); font-weight: 800; }
.avaliacao360-config fieldset label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.avaliacao360-switch { grid-column: 1 / -1; display: flex !important; grid-template-columns: auto 1fr; align-items: center; }
.avaliacao360-config .botao-salvar { justify-self: end; }

/* Modais e formulários */
body.modal-aberto { overflow: hidden; }
.modal-fundo { position: fixed; z-index: 80; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(11,31,43,.66); backdrop-filter: blur(4px); }
.modal-card { width: min(100%, 680px); max-height: calc(100vh - 48px); overflow-y: auto; border-radius: 22px; background: #fff; box-shadow: 0 26px 80px rgba(4,19,28,.28); }
.modal-cabecalho { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; padding: 25px 28px 20px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); }
.modal-selo { color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.modal-cabecalho h2 { margin: 5px 0 0; color: var(--navy); font-size: 25px; letter-spacing: -.025em; }
.modal-fechar { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 auto; padding: 0; border: 1px solid var(--line); border-radius: 10px; background: #f8faf9; color: var(--navy); font-size: 24px; line-height: 1; cursor: pointer; }
.formulario { display: grid; grid-template-columns: 1fr 1fr; gap: 19px; padding: 26px 28px 28px; }
.campo { display: grid; align-content: start; gap: 7px; min-width: 0; }
.campo-largo { grid-column: 1 / -1; }
.campo > span { color: var(--navy); font-size: 12px; font-weight: 800; }
.campo input, .campo select, .campo textarea { width: 100%; border: 1px solid #d6e0e1; border-radius: 11px; outline: none; background: #fbfcfc; color: var(--ink); }
.campo input, .campo select { min-height: 45px; padding: 0 13px; }
.campo textarea { resize: vertical; min-height: 112px; padding: 12px 13px; line-height: 1.5; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(22,125,120,.11); background: #fff; }
.campo small { color: var(--muted); font-size: 10px; }
.form-erro { padding: 11px 13px; border: 1px solid #f1c1b6; border-radius: 10px; background: #fff2ee; color: #a63e2c; font-size: 12px; }
.modal-rodape { display: flex; justify-content: flex-end; gap: 9px; padding-top: 5px; }
.botao-secundario, .botao-salvar { min-height: 42px; padding: 0 17px; border-radius: 10px; font-weight: 800; cursor: pointer; }
.botao-secundario { border: 1px solid var(--line); background: #fff; color: var(--navy); }
.botao-salvar { border: 1px solid var(--teal); background: var(--teal); color: #fff; }
.botao-salvar:hover { background: #116963; }
.botao-salvar:disabled { cursor: wait; opacity: .66; }
.modal-historico { width: min(100%, 610px); }
.historico-lista { min-height: 120px; display: grid; gap: 0; padding: 25px 28px 31px; color: var(--muted); }
.historico-item { position: relative; display: grid; grid-template-columns: 16px 1fr; gap: 11px; min-height: 78px; }
.historico-item:not(:last-child)::before { content: ""; position: absolute; top: 15px; bottom: -1px; left: 5px; width: 2px; background: #dbe8e6; }
.historico-marcador { position: relative; z-index: 1; width: 12px; height: 12px; margin-top: 3px; border: 3px solid #e2f3f0; border-radius: 50%; background: var(--teal); }
.historico-item strong { display: block; color: var(--navy); font-size: 13px; }
.historico-item p { margin: 5px 0; color: #526471; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.historico-item small { color: #87949c; font-size: 10px; }

@media (max-width: 900px) {
  .login-layout { grid-template-columns: 1fr; }
  .login-apresentacao { min-height: auto; padding: 32px 28px 42px; }
  .login-texto { padding: 70px 0 20px; }
  .login-texto h1 { font-size: clamp(38px, 10vw, 56px); }
  .login-acesso { min-height: auto; padding: 38px 20px; }
  .app-shell { display: block; }
  .sidebar { transform: translateX(-105%); transition: transform .22s ease; }
  .sidebar.aberta { transform: translateX(0); }
  .principal { width: 100%; }
  .menu-mobile { display: grid; }
  .overlay { position: fixed; z-index: 25; inset: 0; background: rgba(9,25,35,.55); }
  body.menu-aberto { overflow: hidden; }
  .avaliacao360-competencias, .avaliacao360-criterios, .avaliacao360-config-grid { grid-template-columns: 1fr; }
  .avaliacao360-etapa { align-items: stretch; flex-direction: column; }
  .avaliacao360-links { min-width: 0; }
}

@media (max-width: 620px) {
  .login-card { padding: 32px 24px; }
  .topbar { min-height: 78px; padding: 13px 16px; }
  .topbar-titulo small { display: none; }
  .busca { width: 44px; padding: 0 12px; }
  .busca input { width: 0; opacity: 0; }
  .busca:focus-within { position: absolute; z-index: 5; right: 16px; left: 16px; width: auto; background: #fff; }
  .busca:focus-within input { width: 100%; opacity: 1; }
  .conteudo { padding: 25px 16px 38px; }
  .pagina-cabecalho { align-items: flex-start; }
  .pagina-cabecalho-acoes { flex-direction: column; }
  .botao-novo { width: 100%; }
  .resumo-total { min-width: 92px; padding: 12px; }
  .kanban-ajuda > span:first-child { display: none; }
  .kanban-coluna { width: 86vw; min-width: 86vw; }
  .modal-fundo { padding: 10px; }
  .modal-card { max-height: calc(100vh - 20px); border-radius: 17px; }
  .modal-cabecalho { padding: 20px 18px 16px; }
  .formulario { grid-template-columns: 1fr; padding: 20px 18px 22px; }
  .campo-largo { grid-column: auto; }
  .historico-lista { padding: 20px 18px 24px; }
}
