/* Planner grade - CSS extraido do template grade.html (Fase 34 Bloco 6). */

.planner-grade { border-collapse: separate; border-spacing: 2px; width: 100% }
.planner-grade th, .planner-grade td { padding: 2px }
.planner-grade .hora-col { text-align: right; font-size: 12px;
                            background: var(--fundo-fraco); }
.planner-grade .cell { height: 22px; border-radius: var(--raio-sm); }
.planner-grade .livre { background: var(--accent-suave); cursor: pointer;
                         border: 1px solid var(--accent); }
.planner-grade .livre:hover { background: var(--accent-soft, var(--accent-suave));
                                filter: brightness(0.96) }
.planner-grade .livre.over { outline: 2px dashed var(--accent-texto);
                               outline-offset: -2px; background: var(--accent-soft, var(--accent-suave)); }
.planner-grade .fora { background: transparent; border: 1px dashed var(--borda); opacity: 0.35 }
.planner-grade .sessao-chip { font-size: 12px; padding: 4px; position: relative }
.planner-grade .ocupado.sit-realizada { opacity: 0.7 }
.planner-grade .ocupado.sit-perdida { filter: grayscale(0.85); opacity: 0.55 }
.planner-grade .ocupado.revisao { filter: brightness(1.1) saturate(0.7) }

.planner-lateral { border: 1px solid var(--borda); border-radius: var(--raio-sm);
                    padding: 12px; max-height: 80vh; overflow: auto; }

.aval-chip { border: 1px solid var(--borda); border-radius: var(--raio-sm);
             padding: 8px; margin-bottom: 8px; cursor: grab;
             background: var(--fundo); }
.aval-chip:active { cursor: grabbing; }
.aval-meta { margin-top: 2px }
.aval-meta-lbl { display: flex; justify-content: space-between;
                 font-size: 11px; color: var(--texto-fraco); margin-bottom: 3px }
.aval-barra { height: 6px; background: var(--fundo-fraco);
              border-radius: var(--raio-full); overflow: hidden }
.aval-barra-fill { height: 100%; border-radius: var(--raio-full); transition: width .2s }
.aval-barra-fill.f-normal   { background: var(--accent) }
.aval-barra-fill.f-atento   { background: var(--warning) }
.aval-barra-fill.f-vencido  { background: var(--danger) }
.aval-barra-fill.f-ok       { background: var(--success) }
.aval-rev { margin-top: 4px; font-size: 11px; color: var(--texto-fraco) }
.aval-perdidos { margin-top: 6px; display: flex; align-items: center; font-size: 11px }
.aval-perdidos .badge-perd { color: var(--warning-texto, #92400e); background: var(--warning-suave, #fef3c7);
                              padding: 2px 6px; border-radius: var(--raio-sm) }
.aviso-disp { padding: 8px 10px; margin-bottom: 10px; border-radius: var(--raio-sm);
               background: var(--warning-suave, #fef3c7); color: var(--warning-texto, #92400e); font-size: 12px }
.aviso-disp .btn-link { color: var(--warning-texto, #92400e); font-weight: 600; text-decoration: underline;
                         background: none; border: 0; cursor: pointer; padding: 0 }

.dlg-duracao { max-width: 460px; width: 92vw; padding: 0;
                border-radius: var(--raio-lg); overflow: hidden; position: relative }
.dlg-duracao .dlg-x { position: absolute; top: 12px; right: 12px;
                       width: 32px; height: 32px; border-radius: var(--raio-full);
                       border: 0; background: transparent; color: var(--texto-fraco);
                       font-size: 18px; cursor: pointer; display: grid; place-items: center }
.dlg-duracao .dlg-x:hover { background: var(--fundo-fraco); color: var(--texto) }
.dlg-duracao .dlg-head { display: flex; gap: 12px; align-items: center;
                          padding: 22px 24px 14px; border: 0 }
.dlg-duracao .dlg-icone { width: 44px; height: 44px; border-radius: var(--raio-md);
                           background: var(--accent-suave); color: var(--accent-texto);
                           display: grid; place-items: center; font-size: 22px; flex-shrink: 0 }
.dlg-duracao .dlg-titulo { font-family: var(--font-titulo); font-size: 20px;
                            font-weight: 700; margin: 0; line-height: 1.2 }
.dlg-duracao .dlg-sub { font-size: 13px; color: var(--texto-fraco); margin-top: 2px }
.dlg-duracao .dlg-body { padding: 8px 24px 20px; margin: 0 }
.dlg-duracao .dur-opcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px }
.dlg-duracao .dur-opt { display: flex; flex-direction: column;
                         align-items: center; justify-content: center;
                         gap: 2px; padding: 18px 8px;
                         border: 2px solid var(--borda); border-radius: var(--raio-md);
                         background: var(--fundo); cursor: pointer;
                         transition: transform .08s, border-color .12s, background .12s }
.dlg-duracao .dur-opt:hover { border-color: var(--accent);
                                background: var(--accent-soft, var(--accent-suave));
                                transform: translateY(-1px) }
.dlg-duracao .dur-opt.selecionada { border-color: var(--accent);
                                      background: var(--accent-suave);
                                      box-shadow: 0 0 0 3px var(--accent-sombra) }
.dlg-duracao .dur-num { font-family: var(--font-titulo); font-size: 22px;
                         font-weight: 700; color: var(--accent-texto); line-height: 1 }
.dlg-duracao .dur-un { font-size: 12px; color: var(--texto-fraco);
                        text-transform: lowercase }
.dlg-duracao .dur-opt.selecionada .dur-num { color: var(--accent-texto) }
.dlg-duracao .dlg-acoes { display: flex; justify-content: flex-end; gap: 10px;
                            padding: 14px 24px 20px;
                            border-top: 1px solid var(--borda);
                            background: var(--fundo-fraco) }

/* Planner Hoje (aluno/planner/hoje.html - migrado do inline) */
.hoje-lista { display: flex; flex-direction: column; gap: 8px; margin-top: 12px }
.hoje-card { display: grid; grid-template-columns: 80px 1fr auto; align-items: center;
             gap: 12px; padding: 12px; border: 1px solid var(--borda);
             border-radius: var(--raio-sm); background: var(--fundo); }
.hoje-card.feito { opacity: 0.7 }
.hoje-hora { font-size: 15px }
.hoje-hora strong { display: block }
.hoje-hora .hoje-dur { font-size: 11px; color: var(--texto-fraco) }
.hoje-materia { font-size: 14px }
.hoje-titulo { font-size: 13px; color: var(--texto-fraco) }
.badge-ok { display: inline-flex; align-items: center; gap: 4px;
            color: var(--success); font-size: 13px; margin-right: 4px }
.btn-vz { display: inline-flex; align-items: center; gap: 8px;
          padding: 10px 18px; margin-top: 4px; color: var(--texto-sobre-accent) }
.btn-vz i { font-size: 16px; line-height: 1; color: var(--texto-sobre-accent) }
