#root{min-height:100vh}header{margin-bottom:32px}header h1,header p{margin-bottom:8px}.lista-turmas{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px;display:grid}.turma-card{border:1px solid var(--color-border);overflow-wrap:anywhere;border-radius:10px;min-width:0;padding:20px}.turma-cabecalho{justify-content:space-between;gap:16px;display:flex}.codigo{font-weight:700}.turma-card h3{margin:12px 0 16px;font-size:1.15rem}.turma-card p{margin:8px 0}.horarios{flex-direction:column;gap:5px;margin-top:14px;display:flex}.horario{font-size:.9rem}.erro{color:var(--color-danger-text)}.meu-horario{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;margin-bottom:40px;padding:24px}.meu-horario h2{margin-top:0;margin-bottom:6px}.meu-horario p{margin:0}.selecionadas{flex-direction:column;gap:10px;margin-top:20px;display:flex}.selecionada{border:1px solid var(--color-selected-border);background:var(--color-selected-surface);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:12px;display:flex}.selecionada div{overflow-wrap:anywhere;flex-direction:column;gap:4px;min-width:0;display:flex}.salas-turma{color:var(--color-text-secondary);overflow-wrap:anywhere;flex-direction:column;gap:5px;margin-top:10px;font-size:.9rem;display:flex}.selecionada span{font-size:.9rem}.turma-card{background:var(--color-surface)}.selecionada-card{border:2px solid var(--color-primary)}.botao-adicionar,.botao-remover{cursor:pointer;border:0;border-radius:8px;margin-top:16px;padding:10px 14px;font-weight:600}.botao-adicionar{background:var(--color-primary);color:var(--color-on-primary)}.botao-remover{background:var(--color-disabled-background);color:var(--color-text-primary)}.selecionada .botao-remover{margin-top:0}.aviso-conflito{border:1px solid var(--color-danger);background:var(--color-danger-background);color:var(--color-danger-text);border-radius:10px;margin-bottom:24px;padding:18px 20px}.aviso-conflito-cabecalho{justify-content:space-between;gap:20px;display:flex}.aviso-conflito-cabecalho strong{font-size:1.05rem}.aviso-conflito-cabecalho p{margin:6px 0 0}.aviso-conflito-cabecalho button{width:32px;height:32px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:1.5rem;line-height:1}.aviso-conflito ul{margin:14px 0 0;padding-left:20px}.aviso-conflito li+li{margin-top:6px}.turma-card.conflito-card{border:2px solid var(--color-danger);background:var(--color-danger-card)}.conflito-card-aviso{border:1px solid var(--color-danger-border);background:var(--color-danger-background);color:var(--color-danger-text);border-radius:8px;margin-top:16px;padding:12px;font-size:.85rem}.conflito-card-aviso>strong{margin-bottom:8px;display:block}.conflito-card-aviso p{margin:5px 0}.botao-bloqueado{border:1px solid var(--color-border);background:var(--color-disabled-background);width:100%;color:var(--color-disabled-text);cursor:not-allowed;border-radius:8px;margin-top:16px;padding:10px 14px;font-weight:600}.botao-adicionar,.botao-remover,.botao-bloqueado{width:100%}.selecionada .botao-remover{width:auto}.grade-wrapper{width:100%;margin-top:24px;padding-bottom:8px;overflow-x:auto}.grade-semanal{grid-template-columns:68px repeat(5,minmax(150px,1fr));min-width:850px;display:grid;position:relative}.grade-canto,.grade-dia{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-surface-hover);justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.grade-canto{border-left:1px solid var(--color-border);border-top:1px solid var(--color-border)}.grade-dia{border-top:1px solid var(--color-border)}.grade-hora{border-right:1px solid var(--color-border);color:var(--color-text-muted);justify-content:flex-end;align-items:flex-start;padding-top:2px;padding-right:8px;font-size:.72rem;display:flex}.grade-celula{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.grade-aula{z-index:2;border:1px solid var(--color-selected-border);background:var(--color-academic-background);min-width:0;color:var(--color-academic-text);text-align:left;cursor:pointer;border-radius:7px;flex-direction:column;margin:2px 4px;padding:7px;font-family:inherit;font-size:.78rem;display:flex;overflow:hidden}.grade-aula:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.grade-aula strong{font-size:.8rem}.grade-aula span{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:100%;margin-top:2px;font-weight:600;overflow:hidden}.grade-aula small{margin-top:auto;font-size:.7rem}.grade-aula .grade-sala{font-size:.7rem}.grade-aula-curta{padding:3px 6px}.grade-aula-curta .grade-disciplina,.grade-aula-muito-curta small{display:none}.grade-aula-muito-curta{padding:0 4px;line-height:1}.grade-detalhes{overflow-wrap:anywhere;border:1px solid var(--color-primary);width:min(480px,90vw);max-height:85vh;color:var(--color-text-primary);background:var(--color-surface);border-radius:10px;padding:24px;overflow:auto}.grade-detalhes::backdrop{background:var(--color-backdrop)}.grade-detalhes h3{margin-top:0}.grade-detalhes p{margin:10px 0}.grade-detalhes button{background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;border:0;border-radius:8px;padding:8px 16px}.turmas-titulo{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.turmas-titulo h2{margin-bottom:4px}.turmas-titulo p{color:var(--color-text-muted);margin:0;font-size:.9rem}.busca-container{margin-bottom:24px}.campo-busca{border:1px solid var(--color-input-border);background:var(--color-input-background);width:100%;color:var(--color-text-strong);border-radius:9px;outline:none;padding:13px 16px;font-size:1rem}.campo-busca:focus{border-color:var(--color-link);box-shadow:0 0 0 3px var(--color-focus-ring)}.campo-busca::placeholder{color:var(--color-text-muted)}.nenhum-resultado{border:1px solid var(--color-border);background:var(--color-surface);text-align:center;border-radius:10px;margin-bottom:24px;padding:24px}.nenhum-resultado p{color:var(--color-text-muted);margin:6px 0 0}.filtros-turmas{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.filtros-turmas button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:999px;padding:8px 14px;font-weight:600}.filtros-turmas button:hover{background:var(--color-surface-hover)}.filtros-turmas .filtro-ativo{border-color:var(--color-link);background:var(--color-primary);color:var(--color-on-primary)}.meu-horario-cabecalho{justify-content:space-between;align-items:center;gap:16px;display:flex}.botao-exportar{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;white-space:nowrap;border-radius:8px;padding:10px 16px;font-weight:600}.botao-exportar:hover{background:var(--color-primary-hover)}.acoes-exportacao{flex-wrap:wrap;gap:10px;display:flex}@media (width<=600px){.meu-horario{padding:16px}.selecionada,.meu-horario-cabecalho{flex-direction:column;align-items:stretch}.botao-exportar,.acoes-exportacao{width:100%}.acoes-exportacao .botao-exportar{flex:1}}.curso-selector{flex-direction:column;gap:.4rem;max-width:520px;margin-top:1rem;display:flex}.curso-selector label{color:var(--color-text-secondary);font-size:.85rem;font-weight:600}.curso-selector select{border:1px solid var(--color-input-border);background:var(--color-input-background);width:100%;font:inherit;color:var(--color-text-strong);cursor:pointer;border-radius:.6rem;padding:.75rem .9rem}.curso-selector select:hover{border-color:var(--color-border-strong)}.curso-selector select:focus{outline:2px solid var(--color-focus);outline-offset:2px}.link-curriculo{border:1px solid var(--color-primary);background:var(--color-surface);width:fit-content;color:var(--color-link);border-radius:8px;justify-content:center;align-items:center;margin-top:14px;padding:10px 16px;font-weight:600;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.link-curriculo:hover{background:var(--color-primary);color:var(--color-on-primary)}.link-curriculo:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.turma-identificacao{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badge-optativa{background:var(--color-warning-badge);color:var(--color-warning-text);border-radius:999px;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.optativa-card{border-color:var(--color-warning);background:var(--color-warning-background)}.optativa-card:hover{border-color:var(--color-warning-hover)}.turma-card.selecionada-card{border-color:var(--color-selected-border);background:var(--color-selected-surface)}.botao-adicionar:hover,.grade-detalhes button:hover,.filtros-turmas .filtro-ativo:hover{background:var(--color-primary-hover);color:var(--color-on-primary)}.botao-remover:hover{background:var(--color-surface-hover)}.campo-busca:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.abas-turmas{border-bottom:1px solid var(--color-border);gap:6px;margin-bottom:20px;display:flex}.abas-turmas button{background:var(--color-surface);min-width:0;color:var(--color-text-secondary);font:inherit;cursor:pointer;border:0;border-bottom:3px solid #0000;flex:1;padding:12px 8px}.abas-turmas button[aria-selected=true]{border-bottom-color:var(--color-primary);color:var(--color-link);font-weight:700}.abas-turmas button:focus-visible,[role=tabpanel]:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.referencia-curricular{background:var(--color-surface);border:1px solid var(--color-border);overflow-wrap:anywhere;border-radius:10px;margin-bottom:20px;padding:16px}[role=tabpanel] .curso-selector{min-width:0;margin-bottom:20px}.selecao-ajuda,.correspondencias-turma small{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:.9rem}.correspondencias-turma small{margin-top:6px;display:block}.correspondencias-turma ul{padding-left:20px}.correspondencias-turma li+li{margin-top:10px}.badge-origem{border:1px solid var(--color-border);color:var(--color-text-secondary);background:var(--color-surface);border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-block}.grupo-equivalencias+.grupo-equivalencias{margin-top:24px}.mostrar-mais{white-space:normal;margin-top:20px}@media (width<=400px){.abas-turmas{gap:2px}.abas-turmas button{padding-inline:4px;font-size:.85rem}}
