:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#f6f7f9;--color-surface:#fff;--color-surface-secondary:#f8fafc;--color-surface-hover:#f3f4f6;--color-text-primary:#1a1a1a;--color-text-strong:#0f172a;--color-text-secondary:#475569;--color-text-muted:#5c6675;--color-border:#d1d5db;--color-border-strong:#94a3b8;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-on-primary:#fff;--color-link:#2563eb;--color-focus:#2563eb;--color-focus-ring:#2563eb30;--color-input-background:#fff;--color-input-border:#7a8799;--color-disabled-background:#e5e7eb;--color-disabled-text:#6b7280;--color-selected-border:#2563eb;--color-selected-surface:#eff6ff;--color-academic-background:#dbeafe;--color-academic-text:#1e3a8a;--color-danger:#dc2626;--color-danger-text:#991b1b;--color-danger-background:#fef2f2;--color-danger-card:snow;--color-danger-border:#fecaca;--color-warning:#b45309;--color-warning-background:#fffbeb;--color-warning-badge:#fef3c7;--color-warning-text:#92400e;--color-warning-hover:#92400e;--color-backdrop:#0f172a80;--color-shadow:#0f172a0a}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#101826;--color-surface:#182334;--color-surface-secondary:#202d40;--color-surface-hover:#28364b;--color-text-primary:#e2e8f0;--color-text-strong:#edf2f7;--color-text-secondary:#bac8dc;--color-text-muted:#a6b5ca;--color-border:#39495f;--color-border-strong:#71829a;--color-link:#93c5fd;--color-focus:#93c5fd;--color-focus-ring:#93c5fd40;--color-input-background:#182334;--color-input-border:#71829a;--color-disabled-background:#28364b;--color-disabled-text:#9baabd;--color-selected-border:#60a5fa;--color-selected-surface:#1c3250;--color-academic-background:#19345a;--color-academic-text:#c5dfff;--color-danger:#f87171;--color-danger-text:#fecaca;--color-danger-background:#3b202b;--color-danger-card:#2d202b;--color-danger-border:#aa5364;--color-warning:#dca34b;--color-warning-background:#30291b;--color-warning-badge:#49391c;--color-warning-text:#fde68a;--color-warning-hover:#fbbf24;--color-backdrop:#020617b3;--color-shadow:#02061740}*{box-sizing:border-box}html{background:var(--color-background);color:var(--color-text-primary);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:var(--color-background);min-width:320px;min-height:100vh;color:var(--color-text-primary);margin:0}button,input,select{font:inherit}a{color:var(--color-link)}:where(button,input,select,a):focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}#root{flex-direction:column;min-height:100dvh;display:flex}#root>main{flex:1}.appearance-bar{justify-content:flex-end;width:min(1100px,92%);margin:0 auto;padding-top:16px;display:flex}.theme-selector{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:.875rem;display:flex}.theme-selector label{font-weight:600}.theme-selector select{border:1px solid var(--color-input-border);min-height:40px;color:var(--color-text-primary);background:var(--color-input-background);cursor:pointer;border-radius:8px;padding:7px 10px}.theme-selector select:hover{border-color:var(--color-focus)}.site-footer{border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.8rem;line-height:1.6}.site-footer-content{overflow-wrap:anywhere;width:min(1100px,92%);margin:0 auto;padding:24px 0}.site-footer strong{color:var(--color-text-primary);font-size:.9rem}.site-footer p{margin:5px 0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}#root{min-height:100vh}.container{width:min(1100px,92%);margin:0 auto;padding:40px 0}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 h2{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}.curriculo-page{padding-bottom:64px}.curriculo-page-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:32px;padding-bottom:24px;display:flex}.curriculo-page-header h1{color:var(--color-text-strong);margin:4px 0 6px;font-size:2rem;line-height:1.15}.curriculo-page-eyebrow{color:var(--color-link);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:700}.curriculo-curso-nome{color:var(--color-text-muted);margin:0;font-size:1rem}.link-voltar{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:10px 15px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.link-voltar:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary);color:var(--color-text-strong)}.link-voltar:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.estrutura-curricular{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;padding:28px}.estrutura-curricular-cabecalho{border-bottom:1px solid var(--color-border);margin-bottom:30px;padding-bottom:24px}.estrutura-curricular-cabecalho h2{color:var(--color-text-strong);margin:0 0 18px;font-size:1.3rem}.estrutura-curricular-cabecalho p{color:var(--color-text-muted);margin:7px 0 0;font-size:.9rem}.estrutura-selector{flex-direction:column;gap:6px;max-width:360px;margin-bottom:18px;display:flex}.estrutura-selector label{color:var(--color-text-secondary);font-size:.85rem;font-weight:600}.estrutura-selector select{border:1px solid var(--color-input-border);background:var(--color-input-background);width:100%;color:var(--color-text-strong);font:inherit;cursor:pointer;border-radius:8px;padding:11px 13px}.estrutura-selector select:hover{border-color:var(--color-border-strong)}.estrutura-selector select:focus{border-color:var(--color-link);outline:3px solid var(--color-focus)}.niveis-curriculo{flex-direction:column;gap:32px;display:flex}.nivel-curriculo{margin-top:32px}.niveis-curriculo .nivel-curriculo:first-child{margin-top:0}.nivel-curriculo h3{color:var(--color-academic-text);margin:0 0 14px;font-size:1.05rem}.componentes-curriculo{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:12px;display:grid}.componente-curricular{overflow-wrap:anywhere;border:1px solid var(--color-border);background:var(--color-surface-secondary);border-radius:9px;min-width:0;padding:16px;transition:border-color .15s,box-shadow .15s}.componente-curricular:hover{border-color:var(--color-border);box-shadow:0 2px 8px var(--color-shadow)}.componente-curricular>div{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.componente-curricular strong{color:var(--color-text-strong);font-size:.9rem;line-height:1.4}.componente-curricular span{color:var(--color-text-secondary);flex-shrink:0;font-size:.82rem;font-weight:700}.componente-curricular p{color:var(--color-text-muted);margin:10px 0 0;font-size:.8rem;line-height:1.45}@media (width<=700px){.curriculo-page-header{flex-direction:column}.curriculo-page-header h1{font-size:1.7rem}.link-voltar{width:100%}.estrutura-curricular{padding:20px}.estrutura-selector{max-width:none}.componentes-curriculo{grid-template-columns:1fr}.componente-curricular>div{flex-direction:column;gap:5px}}.componente-curricular-optativa{border-color:var(--color-warning);background:var(--color-warning-background)}.componente-curricular-optativa:hover{border-color:var(--color-warning-hover)}.componente-curricular-optativa strong{color:var(--color-warning-text)}.historico-page{max-width:1100px}.historico-page header{margin-top:24px}.historico-page h1{font-size:clamp(1.65rem,4vw,2.2rem)}.historico-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;margin:24px 0;padding:clamp(18px,3vw,30px)}.historico-card>h2:first-child{margin-top:0}.historico-page p,.historico-page li{overflow-wrap:anywhere;line-height:1.65}.historico-page button{min-height:44px;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-input-border);cursor:pointer;border-radius:8px;padding:10px 16px}.historico-page button:hover{background:var(--color-surface-hover)}.historico-page button.historico-primario{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.historico-page button.historico-primario:hover{background:var(--color-primary-hover)}.historico-page button:disabled{cursor:default;background:var(--color-disabled-background);color:var(--color-disabled-text);border-color:var(--color-border)}.historico-acoes{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.historico-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:20px;margin:20px 0;display:grid}.historico-grid>div>span,.historico-grid>div>strong{margin-bottom:6px;display:block}.historico-campo{overflow-wrap:anywhere;flex-direction:column;gap:8px;display:flex}.historico-campo input,.historico-campo select{border:1px solid var(--color-input-border);background:var(--color-input-background);width:100%;min-width:0;min-height:44px;color:var(--color-text-primary);border-radius:6px;padding:8px}.historico-campo input[type=file]{max-width:100%}.historico-checkbox{align-items:flex-start;gap:10px;margin:20px 0;line-height:1.6;display:flex}.historico-checkbox input{flex-shrink:0;width:20px;height:20px;margin-top:6px}.historico-ajuda{color:var(--color-text-secondary)}.historico-aviso{color:var(--color-warning-text);background:var(--color-warning-background);border:1px solid var(--color-warning);border-radius:8px;margin:20px 0;padding:16px}.historico-erro{color:var(--color-danger-text);background:var(--color-danger-background);border:1px solid var(--color-danger-border);border-radius:8px;padding:16px}.historico-manual{color:var(--color-warning-text);font-size:.85rem;font-weight:600}.historico-indices{flex-wrap:wrap;gap:12px;display:flex}.historico-indices>div{background:var(--color-surface-secondary);overflow-wrap:anywhere;border-radius:8px;flex:165px;min-width:0;padding:16px}.historico-indices dt{font-weight:700}.historico-indices dd{margin:8px 0 0}.historico-tabela{max-width:100%;margin:16px 0;overflow-x:auto}.historico-tabela table{border-collapse:collapse;width:100%}.historico-tabela th,.historico-tabela td{border-bottom:1px solid var(--color-border);text-align:left;padding:12px}.historico-tabela caption{text-align:left;color:var(--color-text-secondary);margin-bottom:10px}.historico-resumo>details{border-top:1px solid var(--color-border);padding:18px 0}.historico-page summary{cursor:pointer;font-weight:600;line-height:1.6}.historico-page summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.historico-registro{border:1px solid var(--color-border);overflow-wrap:anywhere;border-radius:8px;margin-top:16px;padding:16px}.historico-registro h4{margin:0 0 8px}.historico-page progress{width:100%}@media (width<=600px){.historico-acoes{flex-direction:column}.historico-acoes button{width:100%}.historico-tabela th,.historico-tabela td{padding:8px}}.guia-page{max-width:1100px}.guia-page header{max-width:760px;margin-top:30px}.guia-page h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.2}.guia-page h2{font-size:clamp(1.35rem,3vw,1.75rem);line-height:1.35}.guia-page h3{margin-top:26px;font-size:1.05rem}.guia-page p,.guia-page li,.guia-page dd{line-height:1.75}.guia-page p,.guia-page li,.guia-page dd,.guia-page h2,.guia-page h3{overflow-wrap:anywhere}.guia-page [id]{scroll-margin-top:24px}.guia-page [tabindex="-1"]:focus-visible,.guia-page summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px;border-radius:4px}.guia-etiqueta{color:var(--color-text-secondary);font-weight:600}.guia-introducao{background:var(--color-selected-surface);border-left:4px solid var(--color-selected-border);border-radius:0 10px 10px 0;padding:8px 22px}.guia-atalhos{flex-wrap:wrap;gap:12px 24px;margin:28px 0 36px;display:flex}.guia-atalhos a{padding:8px 0}.guia-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin:24px 0 40px;display:grid}.guia-card,.guia-explicacao,.guia-glossario,.guia-fontes{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;min-width:0;padding:clamp(18px,3vw,30px)}.guia-card{flex-direction:column;align-items:flex-start;display:flex}.guia-sigla{background:var(--color-academic-background);color:var(--color-academic-text);border-radius:6px;padding:5px 10px;font-weight:750}.guia-card h3{margin:16px 0 0}.guia-card p{color:var(--color-text-secondary)}.guia-card a{margin-top:auto;padding:10px 0;font-weight:600}.guia-explicacao,.guia-glossario,.guia-fontes{margin:24px 0}.guia-explicacao>h2,.guia-glossario>h2,.guia-fontes>h2{margin-top:0}.guia-exemplo{background:var(--color-surface-secondary);border-radius:8px;margin:24px 0;padding:2px 20px 8px}.guia-page details{border-top:1px solid var(--color-border);padding:16px 0}.guia-page summary{cursor:pointer;padding:6px 0;font-weight:600;line-height:1.6}.guia-notacao{background:var(--color-surface-secondary);overflow-wrap:anywhere;border-radius:8px;padding:16px;font-family:ui-monospace,monospace}.guia-page dt{margin-top:20px;font-weight:650}.guia-page dd{margin:6px 0 0}.guia-fonte{color:var(--color-text-secondary);font-size:.9rem}.guia-page ol,.guia-page ul{padding-left:24px}@media (width<=600px){.guia-atalhos{flex-direction:column;gap:4px}.guia-exemplo{padding-left:14px;padding-right:14px}}
