/*
 * professores/portal/assets/ensino.css
 * Extraído/adaptado de docs/prototipos/jet-mockup.html (visual e simbologia
 * já aprovados). Mantém as mesmas classes e cores do protótipo para as
 * telas de cronograma da turma e página da aula.
 */
:root{
  /* JET Design System — paleta unificada (azul / laranja / roxo) */
  --bg:#f4f7fc; --surface:#fff; --surface-2:#f7f9fd; --ink:#172033; --ink-2:#42506b; --ink-3:#8b95a7;
  --line:#e6ebf4; --line-2:#eef2f8; --brand:#1f63d6; --brand-ink:#123f7a; --brand-soft:#eaf2fe;
  --accent:#e07d0e; --purple:#6b46d9; --purple-2:#8f6fe8;   /* acentos de marca */
  --x:#0a8a5a; --x-soft:#e7f7ef;   /* aula ministrada / presente / concluído */
  --o:#c0392b; --o-soft:#fdecec;   /* cancelada / falta / não feito */
  --at:#2f7ef0; --at-soft:#eaf2fe; /* reposição */
  --ac:#d68a12; --ac-soft:#fdf3df; /* AC / incompleto */
  --s:#6b46d9; --s-soft:#f1ecfc;   /* você substituiu outro professor */
  --st:#b5651d; --st-soft:#faf0e6; /* sua aula foi substituída (não conta hora) */
  --radius:16px; --shadow:0 1px 2px rgba(16,32,64,.04),0 10px 30px rgba(16,40,90,.07);
  --shadow-lg:0 24px 54px rgba(16,40,90,.16);
  /* Casca lateral (menu) — tokens nomeados p/ consistência entre apps */
  --side-bg:#12233d; --side-ink:#c8d2e0; --side-muted:#8798b0; --side-hover:#1b3253; --side-active:#2f7ef0;
}
*{box-sizing:border-box}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;margin:0}
a{color:var(--brand);text-decoration:none}

.jet-loadbar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--brand),var(--accent));z-index:9999;opacity:0;transition:width 3s cubic-bezier(.1,.6,.2,1),opacity .2s ease}
.jet-loadbar.active{opacity:1;width:80%}

.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh;transition:grid-template-columns .22s ease}

.side{background:#12233d;color:#c8d2e0;padding:20px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px;min-width:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2a4468 #12233d}
.side::-webkit-scrollbar{width:7px}
.side::-webkit-scrollbar-track{background:#12233d}
.side::-webkit-scrollbar-thumb{background:#2a4468;border-radius:6px}
.side::-webkit-scrollbar-thumb:hover{background:#385a86}
.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}
.brand .logo{width:36px;height:36px;border-radius:10px;object-fit:contain;flex:none}
.brand b{color:#fff;font-size:15px;font-weight:700}
.brand span{display:block;font-size:11px;color:#8798b0;font-weight:500}
.nav-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#6b7d97;padding:14px 10px 4px}
.nav a,.side-nav a{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;color:#c8d2e0;text-decoration:none;font-weight:500;font-size:13.5px;cursor:pointer}
.nav a .ic,.side-nav a .ic{width:18px;height:18px;opacity:.85;flex:none}
.nav a:hover,.side-nav a:hover{background:#1b3253;color:#fff}
.nav a.active,.side-nav a.active{background:#2f7ef0;color:#fff;box-shadow:0 4px 14px rgba(47,126,240,.4)}
.side .spacer{flex:1}
.side .who{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;background:#1a2d4b}
.side .who .av{width:32px;height:32px;border-radius:50%;background:#2f7ef0;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px}
.side .who small{display:block;color:#8798b0;font-size:11px}
.side .who b{color:#fff;font-size:13px;font-weight:600}

/* Menu lateral: fechar/abrir (aditivo) */
.side-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;flex:none}
.side-toggle:hover{background:var(--surface-2)}
.side-toggle .ic{width:19px;height:19px}
html.sidebar-collapsed .app{grid-template-columns:0 1fr}
html.sidebar-collapsed .side{padding:0;overflow:hidden;pointer-events:none}

.main{padding:0 0 70px}
.topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:16px 30px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:20}
.topbar h1{font-size:17px;margin:0;font-weight:700;letter-spacing:-.01em}
.topbar .crumb{color:var(--ink-3);font-size:12.5px;font-weight:500}
.topbar .grow{flex:1}
.content{padding:26px 30px;max-width:1180px;transition:max-width .22s ease}
html.sidebar-collapsed .content{max-width:1416px}
body.full-width .content{max-width:none}

/* Menu lateral em telas pequenas: fechado por padrão, abre como gaveta vertical
   (mesmo layout do desktop) por cima do conteúdo, com fundo escurecido pra fechar. */
.side-backdrop{position:fixed;inset:0;background:rgba(10,18,36,.5);z-index:45;opacity:0;pointer-events:none;transition:opacity .2s ease}
@media (max-width:860px){
  .app,html.sidebar-collapsed .app{grid-template-columns:1fr}
  .side{position:fixed;top:0;left:0;width:min(82vw,300px);height:100vh;z-index:50;transform:translateX(-100%);transition:transform .22s ease;pointer-events:auto}
  html.sidebar-mobile-open .side{transform:translateX(0);box-shadow:16px 0 40px rgba(10,20,40,.35)}
  html.sidebar-mobile-open .side-backdrop{opacity:1;pointer-events:auto}
  .content{padding:18px 16px}
  .topbar{padding:14px 16px}
}

/* Scroll horizontal protegido para tabelas largas (aditivo, mesmo padrão do admin.css) */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius)}

.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 14px;border-radius:9px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;text-decoration:none}
.btn:hover{background:var(--surface-2);border-color:#d7dce6}
.btn.primary,.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.primary:hover,.btn-primary:hover{background:var(--brand-ink)}
.btn.ghost{border-color:transparent;background:transparent}
.btn .ic{width:16px;height:16px}

.tabs{display:flex;gap:4px;margin:22px 0 16px;border-bottom:1px solid var(--line)}
.tab{padding:10px 16px;font-weight:600;font-size:13.5px;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none;display:inline-block}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--brand);border-bottom-color:var(--brand)}
.pane{display:none}
.pane.on{display:block}

.backlink{display:inline-flex;align-items:center;gap:7px;color:var(--brand);font-weight:600;font-size:13px;text-decoration:none;margin-bottom:16px}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card+.card{margin-top:20px}
.card-h{padding:16px 20px;border-bottom:1px solid var(--line-2);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.card-h h2{margin:0;font-size:15px;font-weight:700}
.card-h .sub{color:var(--ink-3);font-size:12.5px}
.card-b{padding:20px}

.turma-hero{background:linear-gradient(120deg,#173a63,#1f5fa8 60%,#2f7ef0);color:#fff;border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.turma-hero::after{content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.06)}
.turma-hero .row1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.turma-hero h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.01em}
.pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);padding:5px 11px;border-radius:999px;font-size:12px;font-weight:600;color:#fff}
.turma-hero .meta{display:flex;gap:26px;flex-wrap:wrap;margin-top:18px}
.turma-hero .meta div{font-size:12px;color:#cfe0f5}
.turma-hero .meta b{display:block;font-size:14px;color:#fff;font-weight:600;margin-top:2px}
.grid2{display:grid;grid-template-columns:2fr 1fr;gap:20px;align-items:start;margin-top:20px}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}

.alist{display:flex;flex-direction:column}
.arow{display:grid;grid-template-columns:44px 58px 1fr auto auto auto;gap:14px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line-2);cursor:pointer;text-decoration:none;color:inherit}
.arow>*{min-width:0}
.arow:last-child{border-bottom:none}
.arow:hover{background:var(--brand-soft)}
.arow .num{width:36px;height:36px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;font-weight:700;color:var(--ink-2);font-size:13px}
.arow .date b{font-weight:700}
.arow .date small{display:block;color:var(--ink-3);font-size:11.5px}
.unit{display:inline-block;background:#eef4fb;color:var(--brand-ink);border:1px solid #d7e6f7;padding:3px 9px;border-radius:7px;font-weight:700;font-size:12px}
.arow .ttl b{font-weight:600;font-size:13.5px}
.arow .chev{color:var(--ink-3)}
.att-mini{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-2);font-weight:600;background:var(--surface-2);border:1px solid var(--line);padding:4px 9px;border-radius:99px}
.badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap;display:inline-block}
.st-done{background:var(--x-soft);color:var(--x)}
.st-plan{background:#eef1f6;color:var(--ink-3)}
.st-canc{background:var(--o-soft);color:var(--o)}
.st-repo{background:var(--at-soft);color:var(--at)}
.st-rmrc{background:var(--ac-soft);color:var(--ac)}
.st-subs{background:var(--s-soft);color:var(--s)}
.addrow{padding:14px 12px;border-top:1px dashed var(--line);text-align:center}

.stud{display:flex;align-items:center;gap:11px;padding:11px 6px;border-bottom:1px solid var(--line-2)}
.stud:last-child{border-bottom:none}
.stud .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;flex:none;background:var(--brand)}
.stud .nm b{font-weight:600;font-size:13.5px}
.stud .nm small{display:block;color:var(--ink-3);font-size:11.5px}
.stud .freq{margin-left:auto;text-align:right}
.stud .freq b{font-size:13px;font-weight:700}
.stud .freq small{display:block;color:var(--ink-3);font-size:11px}

.legend{display:flex;gap:14px;flex-wrap:wrap}
.legend .lg{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2)}
.legend .sym{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:11px}
.legend .sym.st{text-decoration:line-through}
.hw-done{background:var(--x-soft);color:var(--x)}
.hw-inc{background:var(--ac-soft);color:var(--ac)}
.hw-no{background:var(--o-soft);color:var(--o)}
.note{font-size:11.5px;color:var(--ink-3);margin-top:10px}

.alert-evasao{display:flex;gap:10px;align-items:flex-start;background:var(--o-soft);border:1px solid #f6cdd4;color:#8a1f31;border-radius:12px;padding:12px 16px;margin-bottom:20px;font-size:13px}
.alert-evasao b{display:block;margin-bottom:2px}

/* Página da AULA */
.aula-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.aula-head .big{font-size:22px;font-weight:800;margin:0;letter-spacing:-.01em}
.aula-head .subm{color:var(--ink-3);font-size:13px;margin-top:2px}
.field{margin-bottom:20px}
.field label{display:block;font-size:11.5px;font-weight:700;color:var(--ink-2);margin-bottom:7px;text-transform:uppercase;letter-spacing:.03em}
.field .hint{font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink-3);font-size:11.5px}
.inp{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:13.5px;color:var(--ink);background:var(--surface);resize:vertical;line-height:1.55}
.inp:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.inp.plan{background:var(--surface-2)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:720px){.two{grid-template-columns:1fr}}

/* Navegação rápida entre seções da página da aula (sticky, logo abaixo do topbar) */
.page-nav{position:sticky;top:65px;z-index:15;display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:5px;margin-bottom:20px;box-shadow:var(--shadow);flex-wrap:wrap}
.page-nav a{padding:8px 14px;border-radius:8px;font-weight:600;font-size:12.5px;color:var(--ink-2);text-decoration:none;scroll-margin-top:110px}
.page-nav a:hover{background:var(--surface-2);color:var(--ink)}
.page-nav a.active{background:var(--brand-soft);color:var(--brand-ink)}

.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:4px;gap:4px;flex-wrap:wrap}
.seg label{border:none;background:transparent;padding:9px 15px;border-radius:7px;font-weight:600;font-size:13px;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:7px;text-transform:none;margin:0}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg .d{width:9px;height:9px;border-radius:50%;background:var(--ink-3)}
.seg input:checked+label{background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.seg input[value="dada"]:checked+label .d{background:var(--x)}
.seg input[value="cancelada"]:checked+label .d{background:var(--o)}
.seg input[value="planejada"]:checked+label .d{background:var(--ink-3)}
.seg input[value="reposicao"]:checked+label .d{background:var(--at)}
.seg input[value="remarcada"]:checked+label .d{background:var(--ac)}
.seg input[value="substituida"]:checked+label .d{background:var(--s)}

/* Chamada + lição por aluno */
.roll{width:100%;border-collapse:collapse}
.roll th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}
.roll td{padding:11px 8px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.roll tr:last-child td{border-bottom:none}
.roll .who2{display:flex;align-items:center;gap:11px}
.roll .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;flex:none;background:var(--brand)}
.roll .who2 b{font-weight:600;font-size:13.5px}
.roll .who2 small{display:block;color:var(--ink-3);font-size:11.5px}
.ptoggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:3px;gap:2px;flex-wrap:wrap}
.ptoggle input{position:absolute;opacity:0;pointer-events:none}
.ptoggle label{padding:6px 10px;border-radius:6px;font-weight:700;font-size:11.5px;cursor:pointer;text-transform:none;margin:0;color:var(--ink-2)}
.ptoggle input[value="presente"]:checked+label{background:var(--x-soft);color:var(--x)}
.ptoggle input[value="falta"]:checked+label{background:var(--o-soft);color:var(--o)}
.ptoggle input[value="reposicao"]:checked+label{background:var(--at-soft);color:var(--at)}
.hwseg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}
.hwseg input{position:absolute;opacity:0;pointer-events:none}
.hwseg label{border:none;background:transparent;padding:6px 10px;border-radius:6px;font-weight:600;font-size:12px;color:var(--ink-2);cursor:pointer;white-space:nowrap;text-transform:none;margin:0}
.hwseg input[value="concluido"]:checked+label{background:var(--x-soft);color:var(--x);box-shadow:inset 0 0 0 1px #bfe8d3}
.hwseg input[value="incompleto"]:checked+label{background:var(--ac-soft);color:var(--ac);box-shadow:inset 0 0 0 1px #f0dcb0}
.hwseg input[value="nao_feito"]:checked+label{background:var(--o-soft);color:var(--o);box-shadow:inset 0 0 0 1px #f6cdd4}
.psum{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--x);background:var(--x-soft);border:1px solid #bfe8d3;padding:4px 11px;border-radius:99px;margin-left:auto}
.savebar{position:sticky;bottom:0;background:linear-gradient(0deg,var(--surface) 70%,transparent);padding:16px 0 0;display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.alert-error{background:#fef3f2;color:#8a1f31;border:1px solid #fecdca;border-radius:12px;padding:12px 16px;margin-bottom:16px;font-weight:600}
.alert-success{background:#ecfdf3;color:#067647;border:1px solid #abefc6;border-radius:12px;padding:12px 16px;margin-bottom:16px;font-weight:600}

/* Ícone de informação com painel ao passar o mouse (ou foco, via teclado) —
   e, agora, ao CLICAR: o clique fixa o painel aberto (classe .open) até um
   novo clique no ícone ou fora do painel, então rolar a página não some
   mais com o card no meio da leitura (ver _header.php pro toggle em JS).
   Abre sempre pra BAIXO do ícone — evitando o card ficar cortado quando o
   ícone está perto do topo da página, onde não sobra espaço acima. Tem um
   teto de altura com scroll interno, pra nunca ficar cortado pela borda
   da tela mesmo num card grande. Em telas largas (desktop/tablet) o painel
   fica mais largo e as linhas se organizam em 2 colunas, deixando o card
   mais baixo/horizontal em vez de uma coluna comprida. */
.info-tip{position:relative;display:inline-flex;flex:none}
.info-tip-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--line);color:var(--ink-2);font-size:11px;font-weight:800;font-style:normal;cursor:pointer}
.info-tip:hover .info-tip-ico,.info-tip:focus-within .info-tip-ico,.info-tip.open .info-tip-ico{background:var(--brand);color:#fff}
.info-tip-panel{position:absolute;top:calc(100% + 10px);left:0;width:min(320px,calc(100vw - 48px));max-height:min(420px,calc(100vh - 96px));overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease;pointer-events:none;z-index:50}
.info-tip:hover .info-tip-panel,.info-tip:focus-within .info-tip-panel,.info-tip.open .info-tip-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.info-tip-panel::before{content:'';position:absolute;bottom:100%;left:14px;border:6px solid transparent;border-bottom-color:var(--surface)}
.info-tip-row{display:flex;gap:9px;align-items:flex-start;padding:8px 9px;border-radius:9px}
.info-tip-row+.info-tip-row{border-top:1px solid var(--line-2)}
.info-tip-row b{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:2px}
.info-tip-row div{font-size:11.5px;color:var(--ink-2);line-height:1.45;font-weight:500}
.info-tip-dot{width:8px;height:8px;border-radius:50%;flex:none;margin-top:5px}
@media (min-width:700px){
  .info-tip-panel{width:560px;display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:8px}
  .info-tip-row{border-radius:9px}
  .info-tip-row+.info-tip-row{border-top:none}
}

/* Relatório de Aulas */
.banner{display:flex;align-items:center;gap:13px;background:linear-gradient(90deg,#e8f1fe,#eafaf4);border:1px solid #d3e5fb;border-radius:12px;padding:14px 18px;margin-bottom:20px}
.banner b{font-weight:700}
.banner p{margin:2px 0 0;color:var(--ink-2);font-size:12.5px}
.rep-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.rep-toolbar select,.rep-toolbar input{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:7px 12px;font-weight:600;font-size:13px;font-family:inherit;color:var(--ink)}
.rep-toolbar label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);font-weight:600}
.form-stack select{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:7px 12px;font-weight:600;font-size:13px;font-family:inherit;color:var(--ink);cursor:pointer}
.pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:16px;color:var(--ink-3);font-weight:700}
.pagination a{font-weight:800;color:var(--brand);text-decoration:none}
.status-tag{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:99px}
.status-rascunho{background:var(--ac-soft);color:var(--ac)}
.status-enviado{background:var(--at-soft);color:var(--at)}
.status-aprovado{background:var(--x-soft);color:var(--x)}
.turma-rep{border:1px solid var(--line);border-radius:12px;margin-bottom:16px;overflow:hidden;background:var(--surface)}
.turma-rep .th{display:flex;align-items:center;gap:14px;padding:13px 18px;background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap}
.turma-rep .th b{font-size:14.5px;font-weight:700}
.turma-rep .th .chip{font-size:12px;color:var(--ink-2);background:#fff;border:1px solid var(--line);padding:3px 10px;border-radius:99px;font-weight:600}
.turma-rep .th .htotal{margin-left:auto;font-weight:800;font-size:15px;color:var(--brand-ink);text-align:right}
.turma-rep .th .htotal small{color:var(--ink-3);font-weight:600;font-size:11px;display:block}
.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:5px;padding:16px 18px}
.day{height:46px;border-radius:8px;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface-2);position:relative;min-width:0}
.day .dn{font-size:9px;color:var(--ink-3);position:absolute;top:3px;left:4px;font-weight:600}
.day .mk{font-weight:800;font-size:14px;margin-top:5px}
.day.x{background:var(--x-soft);border-color:#bfe8d3}.day.x .mk{color:var(--x)}
.day.o{background:var(--o-soft);border-color:#f6cdd4}.day.o .mk{color:var(--o)}
.day.at{background:var(--at-soft);border-color:#c9dffb}.day.at .mk{color:var(--at)}
.day.s{background:var(--s-soft);border-color:#dccdf7}.day.s .mk{color:var(--s)}
.day.st{background:var(--st-soft);border-color:#ecd5b8}.day.st .mk{color:var(--st);text-decoration:line-through}
.rep-total{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:#12233d;color:#fff;border-radius:12px;margin-top:6px;flex-wrap:wrap;gap:12px}
.rep-total .big{font-size:26px;font-weight:800}
.rep-total small{color:#9fb2cc;font-size:12px}
.rep-total .btn{background:transparent;color:#fff;border-color:#3a4c6b}
.rep-total .btn.primary{background:#2f7ef0;border-color:#2f7ef0}
.decl{margin-top:20px;padding:18px 20px;border:1px dashed var(--line);border-radius:12px;color:var(--ink-2);font-size:12.5px;background:var(--surface-2)}
.sign{display:flex;gap:30px;margin-top:18px;flex-wrap:wrap}
.sign div{flex:1;min-width:180px}
.sign .line{border-top:1.5px solid var(--ink-3);margin-top:34px;padding-top:6px;font-size:12px;color:var(--ink-3);text-align:center}

@media(max-width:900px){.content{padding:18px}.grid2{grid-template-columns:1fr}.days{grid-template-columns:repeat(auto-fill,minmax(28px,1fr))}}

/* Campos de formulário no celular: manter fonte >= 16px. Abaixo disso o Safari/iOS
   força zoom automático ao focar o campo (o teclado "puxa" a tela pra ler o texto),
   o que passa a impressão de responsividade quebrada mesmo com o layout correto. */
@media (max-width:860px){
  .inp,.rep-toolbar select,.rep-toolbar input,.form-stack select,.cal-month-picker select{font-size:16px}
}

/* Cronograma Aula a Aula (Guia) (guia-caa.php) */
.guia-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.guia-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;text-decoration:none;color:inherit;transition:transform .14s ease,box-shadow .14s ease}
.guia-card:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(20,30,50,.07),0 14px 32px rgba(20,30,50,.1);border-color:#d7dce6}
.guia-card-capa{position:relative;aspect-ratio:3/4;background:linear-gradient(150deg,#173a63,#1f5fa8 55%,#2f7ef0);overflow:hidden}
.guia-card-capa img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}
.guia-card-capa-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55)}
.guia-card-capa-fallback svg{width:46px;height:46px}
.guia-card-capa.sem-capa img{display:none}
.guia-card-info{padding:14px 16px 4px;flex:1}
.guia-card-info b{display:block;font-size:14px;font-weight:700;line-height:1.35;margin-bottom:4px}
.guia-card-info span{display:block;color:var(--ink-3);font-size:12px}
.guia-card-cta{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:12px 16px;margin-top:10px;font-size:12.5px;font-weight:700;color:var(--brand);border-top:1px solid var(--line-2)}
.guia-card-cta .chev{color:var(--brand);transition:transform .14s ease}
.guia-card:hover .guia-card-cta .chev{transform:translateX(3px)}

.guia-hero{display:flex;align-items:center;gap:20px;background:linear-gradient(120deg,#173a63,#1f5fa8 60%,#2f7ef0);color:#fff;border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow);margin-bottom:20px}
.guia-hero img{width:72px;height:96px;object-fit:cover;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,0,.28);flex:none;background:rgba(255,255,255,.12)}
.guia-hero h2{margin:6px 0 4px;font-size:19px;font-weight:800;letter-spacing:-.01em}
.guia-hero p{margin:0;font-size:12.5px;color:#cfe0f5}
.guia-hero .pill{margin-bottom:2px}

.guia-tabela{width:100%;border-collapse:collapse;font-size:13px}
.guia-tabela thead th{position:sticky;top:65px;z-index:2;background:var(--surface-2);padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700;border-bottom:1.5px solid var(--line);text-align:left}
.guia-tabela .col-aula{width:64px;text-align:center}
.guia-tabela .col-unid{width:76px;text-align:center}
.guia-tabela tbody td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:top}
.guia-tabela tbody tr:last-child td{border-bottom:none}
.guia-tabela tbody tr:hover td{background:var(--surface-2)}
.guia-tabela td.col-aula{text-align:center;font-weight:700;color:var(--ink-2)}
.guia-tabela td.col-unid{text-align:center;color:var(--ink-3);font-weight:600}
.guia-tabela .unid-especial{background:var(--brand-soft);color:var(--brand-ink)}
.guia-tabela tr.linha-especial td{background:var(--surface-2)}
.guia-tabela tr.linha-especial:hover td{background:#eef1f6}
.conteudo-linha{line-height:1.5}
.conteudo-linha+.conteudo-linha{margin-top:3px;color:var(--ink-2)}
@media(max-width:640px){.guia-hero{flex-direction:column;align-items:flex-start}.guia-tabela thead th{position:static}}

/* Materiais Complementares (materiais.php) */
.materiais-filtro{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.materiais-chip{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12.5px;font-weight:600;text-decoration:none;transition:background .12s ease,color .12s ease,border-color .12s ease}
.materiais-chip:hover{border-color:#d7dce6;color:var(--ink)}
.materiais-chip.active{background:var(--brand);border-color:var(--brand);color:#fff}
.materiais-tabela .empty{text-align:center;color:var(--ink-3)}
.materiais-unidades{display:flex;flex-direction:column}
.materiais-unidade .card-h h3{margin:0;font-size:15px;font-weight:700}
.materiais-tabela{width:100%;border-collapse:collapse;font-size:13px}
.materiais-tabela thead th{position:sticky;top:65px;z-index:2;background:var(--surface-2);padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700;border-bottom:1.5px solid var(--line);text-align:left}
.materiais-tabela .col-n{width:44px;text-align:center}
.materiais-tabela tbody td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:top;line-height:1.5}
.materiais-tabela tbody tr:last-child td{border-bottom:none}
.materiais-tabela tbody tr:hover td{background:var(--surface-2)}
.materiais-tabela td.col-n{text-align:center;font-weight:700;color:var(--ink-3)}
@media(max-width:640px){.materiais-tabela thead th{position:static}}

/* Landing (index.php) */
.page-head{margin-bottom:20px}
.page-head h1{margin:0 0 4px;font-size:19px;font-weight:800;letter-spacing:-.01em}
.page-head p{margin:0;color:var(--ink-3);font-size:13px}
.muted{color:var(--ink-3)}
.trow{display:flex;align-items:center;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line-2);text-decoration:none;color:inherit;flex-wrap:wrap}
.trow:last-child{border-bottom:none}
.trow:hover{background:var(--brand-soft)}
.trow .ttl{flex:1;min-width:140px}
.trow .ttl b{font-weight:600;font-size:13.5px;color:var(--ink)}

/* Grade de horários (horarios.php, admin/turma-form.php) */
.grade-horarios-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.grade-horarios{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;background:var(--surface)}
.grade-horarios thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);padding:10px 8px;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:700;border-bottom:1.5px solid var(--line);text-align:center;white-space:nowrap}
.grade-horarios thead th:first-child{text-align:left;position:sticky;left:0;z-index:3}
.grade-horarios td{border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-2);padding:5px;vertical-align:middle;text-align:center}
.grade-horarios td:last-child{border-right:none}
.grade-horarios tbody tr:last-child td{border-bottom:none}
.grade-horarios td.hora{background:var(--surface-2);font-weight:600;color:var(--ink-2);white-space:nowrap;position:sticky;left:0;z-index:1;border-right:1.5px solid var(--line);padding:5px 10px;text-align:left}
.grade-horarios tbody tr:hover td.hora{background:var(--brand-soft)}
.grade-horarios .slot{padding:8px 6px;border-radius:8px;font-weight:600;font-size:12px;min-height:36px;display:flex;align-items:center;justify-content:center;text-align:center;transition:transform .1s}
.grade-horarios .slot-empty{color:var(--ink-3);background:var(--surface-2)}
.grade-horarios td:not(.hora):hover .slot-empty{background:var(--line-2)}
.grade-horarios .slot-stack{display:flex;flex-direction:column;gap:3px}
.grade-horarios .slot-stack .slot{text-align:left;justify-content:flex-start;min-height:0}
.grade-horarios .slot-btn{width:100%;padding:9px 4px;border:1.5px dashed var(--line);background:var(--surface);color:var(--ink-3);border-radius:8px;cursor:pointer;font-size:12px;font-weight:600}
.grade-horarios .slot-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}

/* Lousa da aula (class note) */
.note-editor{font-size:14.5px;line-height:1.6;color:var(--ink)}
.note-editor p{margin:0 0 10px}
.note-editor p:last-child{margin-bottom:0}
.note-editor ul,.note-editor ol{margin:0 0 10px;padding-left:22px}
.note-editor h2{font-size:22px;font-weight:800;color:var(--brand-ink);margin:20px 0 10px;line-height:1.25;border-bottom:2px solid var(--brand-soft);padding-bottom:6px}
.note-editor h3{font-size:16.5px;font-weight:700;color:var(--ink-2);margin:16px 0 6px;line-height:1.3;text-transform:uppercase;letter-spacing:.03em}
.note-editor h2:first-child,.note-editor h3:first-child{margin-top:0}

.board-preview-box{position:relative;border:1px solid var(--line);border-radius:12px;background:#fffdf6;padding:14px 18px;max-height:130px;overflow:hidden}
.board-preview-box::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(rgba(255,253,246,0),#fffdf6)}
.board-preview-text{font-size:13px}
.board-preview-empty{color:var(--ink-3);font-style:italic}
.board-open-btn{margin-top:14px}

.board-modal{position:fixed;inset:0;z-index:100;display:none;align-items:stretch;justify-content:stretch;padding:0}
.board-modal.is-open{display:flex}
.board-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(2px)}
.board-modal-panel{position:relative;width:100%;height:100%;background:var(--surface);border-radius:0;box-shadow:none;display:flex;flex-direction:column;overflow:hidden}
.board-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line-2);flex:none}
.board-modal-head h3{margin:0;font-size:16px;font-weight:700}
.board-modal-head .sub{display:block;color:var(--ink-3);font-size:12.5px;margin-top:2px}
.board-modal-body{flex:1;display:flex;min-height:0}

.board-toolbar{width:186px;flex:none;border-right:1px solid var(--line-2);padding:16px 12px;overflow-y:auto;background:var(--surface-2);display:flex;flex-direction:column;gap:16px}
.bt-label{display:block;font-size:10.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.bt-row{display:flex;flex-wrap:wrap;gap:6px}
.bt-btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:7px 9px;font-size:12.5px;font-weight:700;color:var(--ink-2);cursor:pointer;line-height:1;min-width:34px;font-family:inherit}
.bt-btn:hover{background:var(--brand-soft);border-color:#cfe0f5;color:var(--brand-ink)}
.bt-btn.bt-btn-wide{width:100%}
.bt-btn.is-active{background:var(--brand);border-color:var(--brand);color:#fff}
.bt-group .bt-row + .bt-fontsize{margin-top:8px}
.bt-fontsize{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.bt-fs-btn{flex:none;width:28px;border:none;background:#fff;color:var(--ink-2);font-size:15px;font-weight:700;line-height:1;cursor:pointer;font-family:inherit}
.bt-fs-btn:hover{background:var(--brand-soft);color:var(--brand-ink)}
.bt-fs-btn:first-child{border-right:1px solid var(--line)}
.bt-fs-btn:last-child{border-left:1px solid var(--line)}
.bt-fs-input{width:100%;min-width:0;border:none;text-align:center;font-size:12.5px;font-weight:700;color:var(--ink-2);font-family:inherit;-moz-appearance:textfield}
.bt-fs-input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--brand-soft)}
.bt-fs-input::-webkit-outer-spin-button,.bt-fs-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bt-swatches{display:flex;flex-wrap:wrap;gap:7px}
.bt-swatch{width:24px;height:24px;border-radius:50%;border:1px solid rgba(0,0,0,.14);cursor:pointer;padding:0}
.bt-swatch:hover{transform:scale(1.14)}
.bt-swatch-none{background:#fff;display:grid;place-items:center;font-size:10px;color:var(--ink-3);line-height:1}
.bt-swatch-custom{position:relative;overflow:hidden;background:conic-gradient(red,yellow,lime,cyan,blue,magenta,red)}
.bt-swatch-custom input{position:absolute;inset:-4px;opacity:0;cursor:pointer;width:calc(100% + 8px);height:calc(100% + 8px);border:none;padding:0}

.board-canvas{flex:1;overflow-y:auto;background:#eef1f6;padding:28px}
.board-canvas .note-editor{max-width:860px;margin:0 auto;min-height:100%;background:#fffdf6;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:32px 40px}
.board-canvas .note-editor:focus{outline:none;box-shadow:var(--shadow),0 0 0 3px var(--brand-soft)}

/* ===== Login (tela sem menu lateral) ===== */
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:linear-gradient(135deg,var(--brand-ink),var(--brand) 60%,#2f7ef0)}
.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);
  width:100%;max-width:400px;padding:38px 34px;text-align:center}
.auth-logo{height:38px;width:auto;margin:0 auto 18px;display:block}
.auth-card h1{margin:0 0 6px;color:var(--brand-ink);font-size:1.35rem;letter-spacing:-.02em;font-weight:800}
.auth-card p{color:var(--ink-3);margin:0 0 24px;font-size:.92rem}
.auth-form{display:grid;text-align:left}
.auth-form .field{margin-bottom:16px}
.auth-form .field:last-of-type{margin-bottom:0}
.auth-form .btn{width:100%;justify-content:center;margin-top:22px;font-weight:700}
.pw-field{position:relative}
.pw-field .inp{padding-right:2.75rem}
.pw-toggle{position:absolute;top:50%;right:.6rem;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.05rem;line-height:1;padding:4px;color:var(--ink-3)}
.pw-toggle:hover{opacity:.75}

/* ===== Calendário (semana por padrão, expande pro mês) ===== */
.cal-nav{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.cal-nav h2{margin:0 6px;font-size:18px;font-weight:800;letter-spacing:-.01em;min-width:170px;text-align:center}
.cal-view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.cal-view-toggle .cal-view-btn{padding:7px 14px;font-size:13px;font-weight:700;background:var(--surface);color:var(--ink-2);text-decoration:none}
.cal-view-toggle .cal-view-btn+.cal-view-btn{border-left:1px solid var(--line)}
.cal-view-toggle .cal-view-btn.active{background:var(--brand);color:#fff}
.cal-week-label{font-weight:800;font-size:14.5px;min-width:190px;text-align:center;text-transform:capitalize}
.cal-month-picker{display:flex;align-items:center;gap:6px;margin:0 6px}
.cal-month-picker select{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:7px 10px;font-weight:800;font-size:14.5px;font-family:inherit;color:var(--ink);cursor:pointer}
.cal-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:18px;font-size:12.5px;color:var(--ink-2)}
.cal-legend span{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.cal-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--line-2);box-shadow:var(--shadow);gap:1px}
.cal-grid .cal-dow{background:var(--surface-2);padding:10px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);text-align:center}
.cal-day{background:var(--surface);min-height:132px;padding:8px;display:flex;flex-direction:column;gap:4px;transition:background .12s ease}
.cal-day:hover{background:var(--surface-2)}
.cal-day.cal-outros{background:var(--surface-2);opacity:.6}
.cal-day.cal-outros:hover{opacity:1}
.cal-day.cal-hoje{box-shadow:inset 0 0 0 2px var(--brand)}
.cal-day .cal-num{font-size:12.5px;font-weight:700;color:var(--ink-2);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.cal-day.cal-hoje .cal-num{background:var(--brand);color:#fff}
.cal-day.cal-outros .cal-num{color:var(--ink-3)}
.cal-feriado{background:var(--o-soft);color:var(--o);border-radius:6px;padding:3px 7px;font-size:10.5px;font-weight:700;line-height:1.3}
.cal-aniversario{display:inline-block;background:#fdf2fa;color:#c11574;border-radius:6px;padding:3px 7px;font-size:10.5px;font-weight:700;line-height:1.3;text-decoration:none}
a.cal-aniversario:hover{background:#c11574;color:#fff}
.cal-turma{display:block;background:var(--brand-soft);color:var(--brand-ink);border-left:3px solid var(--brand-ink);border-radius:5px;padding:3px 7px;font-size:10.5px;font-weight:600;text-decoration:none;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .1s ease}
.cal-turma:hover{background:var(--brand);color:#fff;border-left-color:#fff;transform:translateX(1px)}
.cal-turma.cal-turma-sem-aula{background:var(--surface-2);color:var(--ink-3);border-left-color:var(--ink-3);text-decoration:line-through}
.cal-compromisso{display:flex;flex-direction:column;gap:1px;background:#f4effd;color:var(--purple);border-left:3px solid var(--purple);border-radius:5px;padding:3px 7px;text-decoration:none;transition:transform .1s ease}
.cal-compromisso:hover{background:var(--purple);color:#fff;border-left-color:#fff;transform:translateX(1px)}
.cal-compromisso-linha{font-size:10.5px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-compromisso-etapa{font-size:9px;font-weight:700;line-height:1.2;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.02em}
.cal-compromisso-manual{display:flex;flex-direction:column;gap:1px;background:#fdf1e5;color:var(--accent);border-left:3px solid var(--accent);border-radius:5px;padding:3px 7px;text-decoration:none;transition:transform .1s ease}
.cal-compromisso-manual:hover{background:var(--accent);color:#fff;border-left-color:#fff;transform:translateX(1px)}
@media (max-width:720px){.cal-day{min-height:86px}.cal-day .cal-num{width:20px;height:20px}.cal-turma{font-size:9.5px}.cal-compromisso-linha{font-size:9.5px}.cal-compromisso-etapa{font-size:8px}}

/* ===== Grade de horários da semana (estilo Google Calendar) ===== */
.cal-timegrid{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}
.cal-timegrid-head,.cal-timegrid-allday{display:grid;grid-template-columns:56px repeat(7,1fr);border-bottom:1px solid var(--line)}
.cal-timegrid-gutter-cell{background:var(--surface-2)}
.cal-timegrid-head-day{background:var(--surface-2);padding:10px 6px;text-align:center;border-left:1px solid var(--line)}
.cal-timegrid-head-day .cal-dow{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.cal-timegrid-head-day .cal-num{margin:4px auto 0;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:14px;font-weight:800;color:var(--ink-2)}
.cal-timegrid-head-day.cal-hoje .cal-num{background:var(--brand);color:#fff}
.cal-timegrid-allday-label{font-size:9.5px;font-weight:700;color:var(--ink-3);display:flex;align-items:center;justify-content:center;text-align:center;padding:4px}
.cal-timegrid-allday-day{border-left:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px}
.cal-timegrid-body{position:relative;display:grid;grid-template-columns:56px repeat(7,1fr)}
.cal-timegrid-gutter{position:relative}
.cal-timegrid-gutter span{position:absolute;right:8px;transform:translateY(-50%);font-size:10.5px;font-weight:700;color:var(--ink-3)}
.cal-timegrid-daycol{position:relative;border-left:1px solid var(--line);background-image:linear-gradient(to bottom,var(--line-2) 1px,transparent 1px);background-size:100% 64px;background-repeat:repeat-y}
.cal-tg-evento{position:absolute;box-sizing:border-box;border-radius:6px;border-left:3px solid transparent;padding:3px 6px;text-decoration:none;overflow:hidden;transition:transform .1s ease,box-shadow .1s ease}
.cal-tg-evento:hover{transform:translateX(1px);box-shadow:var(--shadow);z-index:5}
.cal-tg-evento .cal-tg-hora{display:block;font-size:9px;font-weight:700;opacity:.85;line-height:1.2}
.cal-tg-evento .cal-tg-titulo{display:block;font-size:10.5px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-tg-evento .cal-tg-etapa{display:block;font-size:8.5px;font-weight:700;opacity:.8;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-tg-evento.cal-tg-sem-aula{background:var(--surface-2)!important;color:var(--ink-3)!important;border-left-color:var(--ink-3)!important;text-decoration:line-through}
.cal-tg-evento.cal-tg-compromisso{background:#f4effd;color:var(--purple);border-left-color:var(--purple)}
.cal-tg-evento.cal-tg-compromisso:hover{background:var(--purple);color:#fff;border-left-color:#fff}
.cal-tg-evento.cal-tg-compromisso-manual{background:#fdf1e5;color:var(--accent);border-left-color:var(--accent)}
.cal-tg-evento.cal-tg-compromisso-manual:hover{background:var(--accent);color:#fff;border-left-color:#fff}
.cal-tg-agora{position:absolute;left:0;right:0;height:0;border-top:2px solid #e11d48;z-index:6}
.cal-tg-agora::before{content:'';position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:#e11d48}
@media (max-width:720px){.cal-timegrid-head,.cal-timegrid-allday,.cal-timegrid-body{grid-template-columns:40px repeat(7,1fr)}.cal-timegrid-head-day .cal-dow{font-size:9.5px}.cal-timegrid-head-day .cal-num{width:22px;height:22px;font-size:12px}.cal-tg-evento .cal-tg-titulo{font-size:9.5px}.cal-tg-evento .cal-tg-hora,.cal-tg-evento .cal-tg-etapa{font-size:8px}}
