/* Variáveis de Cores inspiradas em Hogwarts Legacy */ :root { --rubygriffin: linear-gradient(135deg, #5a0002 0%, #ad4242 100%); --emeraldsnake: linear-gradient(135deg, #143b22 0%, #2b8148 100%); --sapphirecrown: linear-gradient(135deg, #14214b 0%, #495a96 100%); --goldenpuff: linear-gradient(135deg, #997415 0%, #b99c53 100%); --gold: #515466; --text-color: #ffffff; --ink: #000000; --accent: #d3b665; --glow: 0 0 10px rgba(255, 255, 255, 0.3); --text-glow: 0 0 15px rgba(255, 255, 255, 0.5); --card-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); --font-primary: 'Cinzel', serif; --font-secondary: 'Crimson Text', serif; --bg-texture: url('assets/hl-hogwarts-castle-concept.jpg'); /* Certifique-se de ter esta imagem */ --container-border: 2px solid var(--gold); --border-color: rgba(255, 255, 255, 0.5); --title-color: #ffffff; /* Nova variável para títulos */ } * { margin: 0; padding: 0; box-sizing: border-box; font-family: var(--font-primary); } body { background: transparent; color: var(--text-color); display: none; /* Inicia oculto */ height: 100vh; width: 100vw; font-family: var(--font-secondary); } body.active { display: block; } .overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; opacity: 1; transition: opacity 0.3s ease-in-out; animation: fadeIn 0.3s ease-out; } .overlay.fadeout { opacity: 0; animation: fadeOut 0.3s ease-in; } .container { display: grid; grid-template-columns: 200px 1fr; /* Tamanho normal */ transition: all 0.3s ease; width: 90%; /* Reduzido de 90% */ max-width: 1400px; /* Reduzido de 1400px */ height: 75vh; /* Reduzido de 80vh para 75vh */ background-image: url('assets/hl-hogwarts-castle-concept.jpg'); background-size: cover; background-position: center; border-radius: 12px; overflow: hidden; box-shadow: var(--card-shadow), var(--glow); border: 2px solid var(--gold); position: relative; transition: all 0.3s ease-in-out; animation: fadeIn 0.3s ease-out; min-height: 600px; /* Garantir altura mínima */ } .container.fadeout { transform: scale(0.95) translateY(10px); opacity: 0; } .container .content { transition: margin-left 0.3s ease; padding-top: 40px; /* Adicionar espaço no topo para o botão não sobrepor conteúdo */ padding-left: 40px; /* Aumentar espaço para o botão */ } /* Overlay escuro sobre o background da interface */ .container::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); backdrop-filter: blur(2px); z-index: 1; } /* Garantir que os elementos fiquem sobre o overlay */ .sidebar, .content { position: relative; z-index: 2; } .sidebar { background: rgba(13, 15, 25, 0.87); backdrop-filter: blur(5px); width: 200px; /* Reduzido de 220px */ padding: 20px 15px; /* Ajustado padding */ display: flex; /* Adicionar display flex */ flex-direction: column; /* Organizar elementos verticalmente */ } .sidebar.collapsed { position: absolute; width: 0; min-width: 0; padding: 0; margin: 0; opacity: 0; visibility: hidden; overflow: hidden; } .sidebar.collapsed .logo, .sidebar.collapsed nav, .sidebar.collapsed .nav-rule-top, .sidebar.collapsed .nav-rule-bottom { display: none; } .logo { margin-bottom: 10px; margin-top: 20px; /* Adicionado margem superior */ text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; } .logo h1 { text-align: center; margin-top: 30px; /* Adicionar margem superior para descer o texto */ color: var(--title-color); /* Mudado de var(--gold) para var(--title-color) */ font-size: 22px; text-transform: uppercase; letter-spacing: 1px; text-shadow: var(--glow); } .logo-image { width: 200px; height: auto; margin: 0 auto; margin-left: -10px; /* Adicionar margem negativa para mover para esquerda */ display: block; filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.3)); } nav { flex: 1; /* Ocupar espaço disponível */ display: flex; flex-direction: column; justify-content: center; /* Centralizar verticalmente */ gap: 10px; /* Espaçamento entre botões */ margin: 10px 0; /* Reduzido para dar espaço aos divisores */ transform: translateY(-100px); /* Alterado de -40px para -60px para mover mais para cima */ } .content { flex: 1; padding: 15px; /* Reduzido de 20px */ overflow-y: auto; /* Adicionar scroll vertical */ max-height: 75vh; background: rgba(6, 7, 19, 0.5); backdrop-filter: blur(3px); position: relative; /* Adicionar position relative */ padding-left: 25px; /* Aumentar padding esquerdo para dar espaço ao botão */ width: 100%; height: 100%; max-height: none; /* Remover limite de altura */ overflow-y: auto; padding: 20px 30px; display: flex; flex-direction: column; width: 100%; max-width: none; margin: 0; } /* Estilo unificado para todos os botões de navegação */ .nav-btn { width: 100%; padding: 10px 15px; /* Reduzido de 12px 20px */ margin: 8px 0; background: rgba(0, 0, 0, 0.4); color: var(--text-color); cursor: pointer; transition: all 0.3s ease; font-size: 14px; /* Reduzido de 16px */ letter-spacing: 1px; font-family: var(--font-primary); text-transform: uppercase; border: 1px solid var(--border-color); border-radius: 8px; text-shadow: 0 0 10px rgba(255, 255, 255, 0.2); margin-top: 6px; /* Espaço entre divisória e botões */ } .nav-btn:first-child { margin-top: 0; /* O primeiro botão não precisa de margem extra acima */ } .nav-btn:last-child { margin-bottom: 0; /* Remover espaço extra para evitar sobreposição com nav-toggle */ } .nav-btn:hover, .nav-btn.active { transform: translateY(-2px); background: rgba(255, 255, 255, 0.1); border-color: var(--accent); box-shadow: 0 0 10px rgba(255, 235, 155, 0.3); } .houses-title { text-align: center; color: var(--text-color); font-size: 28px; text-transform: uppercase; letter-spacing: 2px; margin-top: 160px; margin-bottom: 20px; text-shadow: var(--glow); } .houses-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; /* Reduzido de 20px */ padding: 15px; /* Reduzido de 20px */ margin-top: 20px; /* Ajustado de 220px para 20px já que agora temos o título */ width: 100%; margin: 0 auto; } .house-card { padding: 20px; /* Reduzido de 30px */ border-radius: 15px; text-align: center; color: rgba(255, 255, 255, 0.774); border: 1px solid var(--border-color); background: var(--light-bg); background-image: url('assets/house-pattern.png'); background-blend-mode: overlay; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); transition: all 0.3s ease; } .house-card:hover { transform: translateY(-5px); box-shadow: var(--glow); } .house-card h2 { margin-bottom: 20px; } .points { font-size: 42px; /* Reduzido de 52px */ font-weight: bold; text-shadow: 0 0 15px rgba(255, 255, 255, 0.5); font-family: var(--font-primary); } /* Casas */ .rubygriffin { background: var(--rubygriffin); } .emeraldsnake { background: var(--emeraldsnake); } .sapphirecrown { background: var(--sapphirecrown); } .goldenpuff { background: var(--goldenpuff); } .tab-content { display: none; position: relative; padding: 20px; height: 100%; flex: 1; width: 100%; height: auto; min-height: 100%; position: relative; overflow: visible; } .tab-content.active { display: block; animation: fadeIn 0.5s ease-out; } .tab-content > div { max-width: 900px; margin: 0 auto; position: relative; padding: 40px 20px; /* Ajustado padding para dar mais espaço */ min-height: 500px; /* Altura mínima para garantir visibilidade */ width: 100%; max-width: 1200px; margin: 0 auto; padding: 20px; position: relative; height: auto; min-height: 100%; width: 100%; max-width: none; margin: 0 auto; padding: 20px; padding-top: 30px; /* Aumentar padding superior */ margin-top: 15px; /* Adicionar margem superior */ } .profile-corner-image, .profile-corner-image-left { top: -20px; width: 180px; height: 180px; background-size: contain; background-repeat: no-repeat; pointer-events: none; z-index: 5; position: absolute; } .profile-corner-image { right: -40px; /* Aumentado de -20px para -40px */ background-image: url('assets/corner-right.png'); background-position: top right; } .profile-corner-image-left { left: -40px; /* Aumentado de -20px para -40px */ background-image: url('assets/corner-left.png'); background-position: top left; } /* Ajustar os containers principais de cada aba */ .houses-container, .grades-main-container, .teacher-main-container, .mural-main-container { position: relative; width: 100%; padding: 20px; margin-top: 20px; } .profile-corner-image, .profile-corner-image-left { top: -20px; width: 180px; height: 180px; background-size: contain; background-repeat: no-repeat; pointer-events: none; z-index: 5; position: absolute; } .profile-corner-image { right: -20px; background-position: top right; background-image: url('assets/corner-right.png'); } .profile-corner-image-left { left: -20px; background-position: top left; background-image: url('assets/corner-left.png'); } .search-bar input { width: 100%; padding: 10px; margin: 20px 0; border: none; color: white; border-radius: 5px; } .action-btn { padding: 10px 15px; /* Reduzido de 12px 20px */ margin: 5px; background: rgba(255, 255, 255, 0.1); color: var(--dark-bg); border: 1px solid var(--border-color); border-radius: 6px; cursor: pointer; transition: all 0.3s ease; font-weight: bold; text-transform: uppercase; letter-spacing: 1px; font-family: var(--font-primary); font-size: 14px; /* Reduzido de 16px */ } .action-btn:hover { transform: translateY(-2px); box-shadow: var(--glow); background: rgba(255, 255, 255, 0.2); color: var(--text-color); } .student-profile { border-radius: 10px; padding: 20px; margin: 10px; } .profile-grid { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 20px; width: 100%; margin: 0 auto; } .info-group { margin-bottom: 12px; /* Reduzido de 15px para 12px */ display: flex; align-items: center; background: rgba(0, 0, 0, 0.2); padding: 8px; /* Reduzido de 10px para 8px */ border-radius: 6px; } .info-group label { display: block; margin-bottom: 5px; color: #ccc; font-weight: bold; font-size: 14px; min-width: 120px; } .info-group input, .info-group select { width: 100%; padding: 8px; background-color: #3d3d4d; border: 1px solid #4d4d4d; border-radius: 5px; color: white; } .points-section, .grades-section { grid-column: span 2; background-color: #3d3d3d; padding: 15px; border-radius: 8px; } .subjects-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: 15px; width: 100%; margin: 0 auto; } .subject { display: flex; align-items: center; gap: 10px; } .grade-input { width: 60px; padding: 5px; background-color: #4d4d4d; border: 1px solid #5d5d5d; border-radius: 4px; color: white; text-align: center; } .points-grid { display: flex; gap: 15px; margin-top: 15px; } .points-input { display: flex; align-items: center; gap: 10px; } .teacher-only, .student-only { display: none; } .profile-container { padding: 20px; border-radius: 10px; margin: 10px; position: relative; /* Adicionado para posicionamento absoluto da imagem */ height: auto; /* Alterado de calc(100% - 20px) para auto */ min-height: 500px; /* Adicionado altura mínima */ overflow: visible; /* Alterado de hidden para visible */ } .profile-form { max-width: 600px; margin: 0 auto; margin-top: 30px; /* Reduzido de 60px para 30px */ background: rgba(0, 0, 0, 0.3); padding: 25px; /* Reduzido de 30px para 25px */ border-radius: 10px; } .student-view { display: none; position: relative; padding-top: 40px; /* Adicionado espaço para os corners */ padding-bottom: 17px; /* Adicionado espaço para os corners inferiores */ } .student-view.active { display: block; } .student-view h2 { margin-top: 20px; /* Reduzido de 40px para 20px */ margin-bottom: 20px; /* Reduzido de 30px para 20px */ color: var(--text-color); font-size: 24px; text-transform: uppercase; letter-spacing: 2px; text-align: center; } .student-grades { padding: 20px; border-radius: 10px; margin-top: 20px; margin-bottom: 20px; /* Reduzido para evitar scroll */ } .grade-value { background-color: #3d3d3d; padding: 8px 15px; border-radius: 5px; color: white; font-weight: bold; min-width: 40px; display: inline-block; text-align: center; } .subject { display: flex; justify-content: space-between; align-items: center; padding: 10px; border-radius: 5px; margin-bottom: 10px; } .subject label { font-size: 1.1em; color: #fff; } /* Remover classes não utilizadas */ .grades-view, .my-grades-list { display: none; } .students-section { padding: 20px; border-radius: 10px; margin: 40px 0; /* Aumentado de 20px para 40px */ max-height: 60vh; overflow-y: auto; /* Adicionar scroll */ } .students-section h2 { margin-bottom: 30px; color: var(--text-color); text-align: left; /* Alterado de center para left */ font-size: 20px; /* Reduzido de 24px para 20px */ letter-spacing: 1px; /* Reduzido de 2px para 1px */ text-transform: uppercase; padding-left: 15px; /* Adicionado padding à esquerda */ } /* Remover seção de busca */ .search-student, .search-student input { display: none; } .students-list { margin-top: 30px; /* Adicionado margem superior */ padding: 15px; background: rgba(0, 0, 0, 0.2); border-radius: 8px; max-height: 40vh; overflow-y: auto; } .student-item { padding: 15px; margin: 8px 0; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 8px; cursor: pointer; } .student-item.selected { background: rgba(255, 255, 255, 0.1); border-color: var(--accent); } .points-actions { grid-column: span 2; background-color: #3d3d3d; padding: 15px; border-radius: 8px; margin-top: 15px; } .points-controls { display: flex; gap: 10px; align-items: center; margin-top: 15px; flex-wrap: wrap; /* Permite quebrar linha em telas menores */ } .points-controls select, .points-controls input { padding: 10px; background-color: rgba(61, 61, 61, 0.6); border: 1px solid var(--border-color); border-radius: 5px; color: white; } .points-controls select { min-width: 150px; } .points-controls input[type="number"] { width: 100px; } .points-controls .points-reason { flex: 1; /* Faz o input de motivo ocupar espaço disponível */ min-width: 200px; /* Garante um tamanho mínimo */ } .selected-student-profile { display: none; background: rgba(0, 0, 0, 0.4); border-radius: 10px; padding: 20px; margin-top: 20px; border: 1px solid var(--border-color); transition: all 0.3s ease; opacity: 0; transform: translateY(-10px); } .selected-student-profile.visible { display: block; opacity: 1; transform: translateY(0); } .selected-student-profile { max-height: 60vh; /* Reduzido de 70vh */ overflow-y: auto; opacity: 0; transition: opacity 0.3s ease-in-out; } .selected-student-profile.fade-in { opacity: 1; } .profile-content { background: rgba(0, 0, 0, 0.3); padding: 20px; border-radius: 8px; } .student-info-container { background: rgba(0, 0, 0, 0.3); padding: 20px; border-radius: 8px; border: 1px solid var(--border-color); } .info-group { margin-bottom: 12px; /* Reduzido de 15px para 12px */ display: flex; align-items: center; background: rgba(0, 0, 0, 0.2); padding: 8px; /* Reduzido de 10px para 8px */ border-radius: 6px; } .info-group label { min-width: 120px; font-weight: bold; margin-right: 10px; color: var(--text-color); } .info-value { color: #fff; flex: 1; display: inline-block; padding: 5px 10px; background: rgba(255, 255, 255, 0.1); border-radius: 4px; color: var(--text-color); } .grades-section { background: rgba(0, 0, 0, 0.3); padding: 20px; border-radius: 8px; border: 1px solid var(--border-color); } .student-grades-display { margin: 15px 0; } .grade-item { display: flex; justify-content: space-between; align-items: center; padding: 10px; background: rgba(0, 0, 0, 0.2); border-radius: 6px; margin-bottom: 10px; } .grades-controls { display: flex; gap: 10px; margin-top: 20px; } /* Animação para transição */ @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95) translateY(10px); } } /* Adicionando estilo decorativo para botões e inputs */ input, select { background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); /* Mudado de var(--gold) */ color: var(--text-color); padding: 12px; border-radius: 6px; transition: all 0.3s ease; } input:focus, select:focus { outline: none; border-color: var(--accent); box-shadow: var(--glow); } /* Bordas e detalhes decorativos */ .decoration-corner { position: absolute; width: 50px; height: 50px; background: url('assets/decorative-corner.png') no-repeat center; background-size: contain; } .decoration-corner.top-left { top: 0; left: 0; } .decoration-corner.top-right { top: 0; right: 0; } .decoration-corner.bottom-left { bottom: 0; left: 0; } .decoration-corner.bottom-right { bottom: 0; right: 0; } /* Ajustar cores dos elementos para melhor contraste */ .info-value { background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); /* Mudado de var(--gold) */ padding: 12px; border-radius: 6px; color: var(--text-color); } /* Adicionar efeito de brilho dourado */ @keyframes goldGlow { 0% { box-shadow: 0 0 5px var(--gold); } 50% { box-shadow: 0 0 20px var(--gold); } 100% { box-shadow: 0 0 5px var(--gold); } } .house-card:hover { box-shadow: var(--glow); } /* Atualizar animação para brilho branco */ @keyframes whiteGlow { 0% { box-shadow: 0 0 5px rgba(255, 255, 255, 0.3); } 50% { box-shadow: 0 0 20px rgba(255, 255, 255, 0.5); } 100% { box-shadow: 0 0 5px rgba(255, 255, 255, 0.3); } } /* Scrollbar personalizada */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.3); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--accent); opacity: 0.8; } /* Ajustar responsividade */ @media screen and (max-height: 800px) { .container { height: 80vh; } .content { padding: 12px; } .profile-grid { gap: 12px; } } .grades-container { margin-top: 120px; /* Reduzido de 160px */ margin-bottom: 60px; /* Adicionar margem inferior para empurrar o conteúdo para cima */ position: relative; /* Adicionar posicionamento relativo */ } .grades-container h2 { margin-bottom: 40px; color: var(--text-color); font-size: 24px; text-transform: uppercase; letter-spacing: 2px; text-align: center; } .current-grades { background: rgba(0, 0, 0, 0.2); padding: 15px; border-radius: 8px; margin-bottom: 20px; border: 1px solid var(--border-color); } .current-grades h4 { color: var(--text-color); margin-bottom: 15px; font-size: 16px; text-transform: uppercase; letter-spacing: 1px; } .grades-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } .grade-display { display: flex; justify-content: space-between; align-items: center; background: rgba(0, 0, 0, 0.2); padding: 8px 12px; border-radius: 6px; } .subject-label { color: var(--text-color); font-weight: bold; } .grade-value { background: rgba(255, 255, 255, 0.1); padding: 4px 8px; border-radius: 4px; min-width: 40px; text-align: center; } /* Adicionar animação para quando a nota mudar */ @keyframes gradeUpdate { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } .grade-value.updated { animation: gradeUpdate 0.3s ease-in-out; } /* Atualizar para um estilo unificado de corners */ .profile-corner-image { position: absolute; top: -30px; right: -28px; width: 150px; height: 150px; background-image: url('assets/corner-right.png'); background-size: contain; background-repeat: no-repeat; background-position: top right; pointer-events: none; z-index: 5; } /* Ajustar posicionamento do corner image esquerdo */ .profile-corner-image-left { position: absolute; top: -55px; left: -85px; /* Alterado de -75px para -85px */ width: 160px; height: 160px; background-size: contain; background-repeat: no-repeat; background-position: top left; pointer-events: none; z-index: 5; } .profile-corner-bottom-left { position: absolute; bottom: -45px; /* Reduzido de -60px para -45px */ left: -60px; width: 150px; height: 150px; background-image: url('assets/corner-bottom-left.png'); background-size: contain; background-repeat: no-repeat; background-position: bottom left; pointer-events: none; z-index: 1; } .profile-corner-bottom-right { position: absolute; bottom: -45px; /* Reduzido de -60px para -45px */ right: -47px; width: 150px; height: 150px; background-image: url('assets/corner-bottom-right.png'); background-size: contain; background-repeat: no-repeat; background-position: bottom right; pointer-events: none; z-index: 1; } /* Ajustar corners inferiores especificamente para o mural */ .mural-main-container .profile-corner-bottom-left, .mural-main-container .profile-corner-bottom-right { bottom: -35px; /* Reduzido de -265px para -100px */ } .nav-rule-top { width: 100%; height: 16px; /* Altura suficiente para a imagem aparecer */ background: url('assets/rule.png') center center no-repeat; background-size: 100% auto; /* Garante largura total e altura proporcional */ margin-bottom: 100px; /* Espaçamento aumentado para separar mais dos botões */ } nav { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; margin: 10px 0; /* Reduzido para dar espaço aos divisores */ transform: translateY(-100px); /* Alterado de -40px para -60px para mover mais para cima */ } .teacher-panel, .mural-controls, .house-points-manager, .houses-grid { max-width: 800px; margin: 0 auto; padding: 20px; background: rgba(0, 0, 0, 0.3); border-radius: 10px; } .houses-title { margin-top: 60px; /* Ajustado para ficar mais próximo do topo */ margin-bottom: 40px; } /* Estilos para o botão de toggle */ .nav-toggle { position: fixed; width: 40px; height: 40px; background: rgba(0, 0, 0, 0.8); border: 1px solid var(--border-color); border-radius: 8px; cursor: pointer; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; padding: 8px; transition: all 0.3s ease; z-index: 10; left: 65px; top: 90%; /* Alterado de 50% para 80% para descer o botão */ transform: translateY(-50%); margin-top: 56px; /* Espaço maior acima do nav-toggle */ } .nav-toggle:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--accent); } .toggle-line { width: 100%; height: 2px; background-color: var(--text-color); transition: all 0.3s ease; } /* Estado inicial do botão (X) */ .nav-toggle .toggle-line { width: 100%; height: 2px; background-color: var(--text-color); transition: all 0.3s ease; } .nav-toggle .toggle-line:first-child { transform: rotate(45deg) translate(5px, 5px); } .nav-toggle .toggle-line:nth-child(2) { opacity: 0; } .nav-toggle .toggle-line:last-child { transform: rotate(-45deg) translate(5px, -5px); } /* Estado do botão quando a navbar está aberta (X) */ .sidebar:not(.collapsed) .nav-toggle .toggle-line:first-child { transform: rotate(45deg) translate(5px, 5px); } .sidebar:not(.collapsed) .nav-toggle .toggle-line:nth-child(2) { opacity: 0; } .sidebar:not(.collapsed) .nav-toggle .toggle-line:last-child { transform: rotate(-45deg) translate(5px, -5px); } /* Remove as transformações quando a navbar está fechada */ .sidebar.collapsed .nav-toggle .toggle-line { transform: none !important; opacity: 1 !important; } /* Estado do botão quando a sidebar está fechada (3 traços) */ .sidebar.collapsed .nav-toggle .toggle-line { transform: none; opacity: 1; } /* Estado da sidebar quando fechada */ .sidebar.collapsed { width: 60px; /* Mantém espaço para o botão */ min-width: 60px; padding: 10px 5px; background: transparent; /* Remover background quando colapsado */ position: relative; /* Garantir que os elementos filhos mantenham o z-index */ z-index: 5; /* Mesmo z-index dos corners */ } .sidebar.collapsed .logo, .sidebar.collapsed nav, .sidebar.collapsed .nav-rule-top, .sidebar.collapsed .nav-rule-bottom { display: none; } .sidebar.collapsed .nav-toggle { position: fixed; /* Mantém o botão fixo na tela */ left: 20px; /* Distância da esquerda */ top: 50%; /* Centralizar verticalmente */ transform: translateY(-50%); /* Ajuste fino da centralização */ z-index: 5; background: rgba(0, 0, 0, 0.8); } .sidebar.collapsed .nav-toggle .toggle-line { transition: all 0.3s ease; } .sidebar.collapsed .nav-toggle .toggle-line:first-child { transform: rotate(45deg) translate(5px, 5px); } .sidebar.collapsed .nav-toggle .toggle-line:nth-child(2) { opacity: 0; } .sidebar.collapsed .nav-toggle .toggle-line:last-child { transform: rotate(-45deg) translate(5px, -5px); } .nav-toggle.active { position: absolute; left: 60px; transform: translateY(-1050%); /* Manter a centralização vertical */ transition: all 0.3s ease; } .sidebar { transition: width 0.3s ease; } .container.nav-collapsed { grid-template-columns: 0 1fr; /* Removido o espaço da navbar */ width: 75%; max-width: 1100px; margin: 0 auto; /* Manter centralizado */ display: flex; /* Mudar para flex */ justify-content: center; /* Centralizar horizontalmente */ } .sidebar.collapsed + .content { padding-left: 60px; /* Espaço apenas para o botão */ width: calc(100% - 60px); /* Ajustar largura considerando padding */ margin: 0 auto; /* Centralizar conteúdo */ max-width: 1040px; /* 1100px - 60px do padding */ padding: 20px 30px 20px 80px; width: 100%; max-width: none; } /* Ajustar posição dos corners para cobrir toda a largura */ .container.nav-collapsed .profile-corner-image { right: -30px; /* Ajustado para cobrir exatamente o canto */ } .container.nav-collapsed .profile-corner-image-left { left: -30px; /* Ajustado para cobrir exatamente o canto */ } /* Ajustar posição do botão toggle */ .sidebar.collapsed .nav-toggle { position: fixed; left: calc(12.5% + 15px); /* Alinhar com a borda do container */ top: 50%; transform: translateY(-50%); z-index: 10; } /* Estado da sidebar quando fechada */ .sidebar.collapsed { position: absolute; width: 0; min-width: 0; padding: 0; margin: 0; opacity: 0; visibility: hidden; overflow: hidden; } .sidebar.collapsed .logo, .sidebar.collapsed nav, .sidebar.collapsed .nav-rule-top, .sidebar.collapsed .nav-rule-bottom { display: none; } .sidebar.collapsed .nav-toggle { position: fixed; /* Mantém o botão fixo na tela */ left: 15px; /* Distância da esquerda */ top: 50%; /* Centralizar verticalmente */ transform: translateY(-50%); /* Ajuste fino da centralização */ z-index: 10; background: rgba(0, 0, 0, 0.8); } .sidebar.collapsed .nav-toggle .toggle-line { transition: all 0.3s ease; } .sidebar.collapsed .nav-toggle .toggle-line:first-child { transform: rotate(45deg) translate(5px, 5px); } .sidebar.collapsed .nav-toggle .toggle-line:nth-child(2) { opacity: 0; } .sidebar.collapsed .nav-toggle .toggle-line:last-child { transform: rotate(-45deg) translate(5px, -5px); } .nav-toggle.active { position: absolute; left: 60px; transform: translateY(-1050%); /* Manter a centralização vertical */ transition: all 0.3s ease; } .sidebar { transition: width 0.3s ease; } .container.nav-collapsed { grid-template-columns: 0 1fr; /* Removido o espaço da navbar */ } .sidebar.collapsed + .content { padding-left: 70px; /* Aumentado de 60px para 70px */ width: calc(100% - 70px); /* Ajustado também aqui */ margin: 0 auto; max-width: 1040px; } /* Ajustar posição dos corners */ .container.nav-collapsed .profile-corner-image { right: -35px; /* Ajustado de -30px para -35px */ } .container.nav-collapsed .profile-corner-image-left { left: -35px; /* Ajustado de -30px para -35px */ } /* Ajustar container quando navbar colapsada */ .container.nav-collapsed { grid-template-columns: 0 1fr; width: 85%; /* Aumentado de 80% para 85% */ max-width: 1300px; /* Aumentado de 1200px para 1300px */ margin: 0 auto; display: flex; justify-content: center; } /* Ajustar content quando sidebar colapsada */ .sidebar.collapsed + .content { padding-left: 90px; /* Aumentado de 80px para 90px */ padding-right: 30px; /* Aumentado de 20px para 30px */ width: calc(100% - 90px); margin: 0 auto; max-width: 1210px; /* Aumentado proporcionalmente */ } /* Ajustar corners quando navbar colapsada */ .container.nav-collapsed .profile-corner-image { right: -55px; /* Aumentado de -45px para -55px */ } .container.nav-collapsed .profile-corner-image_left { left: -55px; /* Aumentado de -45px para -55px */ } /* Ajustar container quando navbar colapsada */ .container.nav-collapsed { grid-template-columns: 0 1fr; width: 90%; /* Aumentado para 90% */ max-width: 1400px; /* Aumentado para 1400px */ margin: 0 auto; display: grid; /* Mudado de flex para grid */ } /* Ajustar content quando sidebar colapsada */ .sidebar.collapsed + .content { padding-left: 80px; padding-right: 40px; width: 100%; margin: 0 auto; max-width: none; /* Remover max-width para ocupar todo espaço */ } /* Manter mesmas dimensões do container original */ .container { width: 90%; max-width: 1400px; height: 75vh; } /* Ajustar posição do botão toggle quando colapsado */ .sidebar.collapsed .nav-toggle { position: fixed; left: calc(5% + 15px); /* Ajustado para o novo tamanho */ top: 50%; transform: translateY(-50%); z-index: 10; } /* Ajustar corners para nova largura */ .container.nav-collapsed .profile-corner-image { right: -65px; /* Aumentado para cobrir os cantos maiores */ } .container.nav-collapsed .profile-corner-image_left { left: -65px; /* Aumentado para cobrir os cantos maiores */ } /* Ajustes responsivos para diferentes tamanhos de tela */ @media screen and (max-width: 1400px) { .container { width: 95%; } } @media screen and (max-width: 1200px) { .tab-content > div { padding: 15px; } } @media screen and (max-height: 800px) { .container { height: 90vh; } } /* Ajustar layout das abas para seguir o mesmo padrão */ .grades-container, .mural-container { margin-top: 60px; /* Mesmo valor do .houses-title */ margin-bottom: 40px; position: relative; width: 100%; max-width: 800px; margin-left: auto; margin-right: auto; } /* Ajustar títulos para seguir mesmo estilo */ .grades-container h2, .mural-container h2, .student-view h2 { text-align: center; color: var(--text-color); font-size: 28px; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 20px; text-shadow: var(--glow); } /* Ajustar containers principais para seguir mesmo formato */ .student-grades, .mural-messages, .mural-controls, .profile-form { max-width: 800px; margin: 20px auto; padding: 20px; background: rgba(0, 0, 0, 0.3); border-radius: 10px; } /* Unificar posição dos corners para todas as abas */ .profile-corner-image, .profile-corner-image-left, .profile-corner-bottom-left, .profile-corner-bottom-right { width: 150px; height: 150px; position: absolute; background-size: contain; background-repeat: no-repeat; pointer-events: none; z-index: 1; } .profile-corner-image { top: -50px; right: -40px; } .profile-corner-image-left { top: -50px; left: -55px; } /* Ajustar o container quando navbar está fechada */ .container.nav-collapsed { grid-template-columns: 1fr; /* Mudado de 0 1fr para 1fr */ width: 90%; max-width: 1400px; margin: 0 auto; display: flex; /* Mudado para flex */ justify-content: center; } /* Ajustar o content quando a sidebar está fechada */ .sidebar.collapsed + .content { width: 100%; /* Ocupar todo o espaço disponível */ padding: 20px 40px; /* Padding uniforme */ margin: 0 auto; max-width: none; } /* Remover as propriedades que podem estar limitando a largura */ .content { flex: 1; width: 100%; max-width: none; margin: 0; display: flex; flex-direction: column; } /* Ajustar o tab-content para ocupar todo espaço */ .tab-content > div { width: 100%; max-width: none; margin: 0 auto; padding: 20px; padding-top: 30px; /* Aumentar padding superior */ margin-top: 15px; /* Adicionar margem superior */ } /* Ajustar posicionamento dos corners superiores */ .profile-corner-image { position: absolute; top: -45px; /* Ajustado de -50px */ right: -45px; /* Ajustado de -40px */ width: 160px; /* Aumentado de 150px */ height: 160px; /* Aumentado de 150px */ background-size: contain; background-repeat: no-repeat; background-position: top right; pointer-events: none; z-index: 5; } .profile-corner-image-left { position: absolute; top: -55px; left: -85px; /* Alterado de -75px para -85px */ width: 160px; height: 160px; background-size: contain; background-repeat: no-repeat; background-position: top left; pointer-events: none; z-index: 5; } /* Ajuste quando navbar colapsada */ .container.nav-collapsed .profile-corner-image-left { left: -35px; /* Ajustado para quando fechado */ } /* Ajustar container para dar espaço aos corners */ .tab-content > div { padding-top: 30px; /* Aumentar padding superior */ margin-top: 15px; /* Adicionar margem superior */ } /* Ajustar posição base dos corners inferiores */ .profile-corner-bottom-left, .profile-corner-bottom-right { position: absolute; bottom: -21px; /* Reduzido de -25px para -15px */ width: 150px; height: 150px; background-size: contain; background-repeat: no-repeat; pointer-events: none; z-index: 1; } /* Ajustos específicos para cada seção */ .grades-main-container .profile-corner-bottom-left, .grades-main-container .profile-corner-bottom-right, .mural-main-container .profile-corner-bottom-left, .mural-main-container .profile-corner-bottom-right { bottom: -21px; /* Ajustado de -25px para -15px em todas seções */ } /* Ajustar posição dos corners superiores quando navbar fechada */ .container.nav-collapsed .profile-corner-image-left { left: -35px; /* Ajustado para mais próximo quando fechado */ } .container.nav-collapsed .profile-corner-image { right: -35px; /* Ajustado para mais próximo quando fechado */ } /* Ajustar posicionamento dos corner images */ .profile-corner-image { position: absolute; top: -75px; /* Alterado de -65px para -75px */ right: -45px; width: 160px; height: 160px; background-size: contain; background-repeat: no-repeat; background-position: top right; pointer-events: none; z-index: 5; } .profile-corner-image-left { position: absolute; top: -75px; /* Alterado de -65px para -75px */ left: -85px; width: 160px; height: 160px; background-size: contain; background-repeat: no-repeat; background-position: top left; pointer-events: none; z-index: 5; } /* O ajuste para quando está colapsado permanece o mesmo */ .container.nav-collapsed .profile-corner-image-left { left: -55px; top: -51px; } .container.nav-collapsed .profile-corner-image { right: -55px; top: -51px; } /* Ajustar posição dos corners superiores antes de colapsar */ .profile-corner-image { position: absolute; top: -70px; /* Alterado de -45px para -55px */ right: -45px; width: 160px; height: 160px; background-size: contain; background-repeat: no-repeat; background-position: top right; pointer-events: none; z-index: 5; } .profile-corner-image-left { position: absolute; top: -70px; /* Alterado de -45px para -55px */ left: -57px; width: 160px; height: 160px; background-size: contain; background-repeat: no-repeat; background-position: top left; pointer-events: none; z-index: 5; } /* Ajustar visibilidade e posicionamento do nav toggle */ .nav-toggle { position: fixed; /* Mudado para fixed */ width: 40px; height: 40px; background: rgba(0, 0, 0, 0.8); border: 1px solid var(--border-color); border-radius: 8px; cursor: pointer; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; margin: 10px; padding: 8px; transition: all 0.3s ease; z-index: 10; /* Aumentado z-index para garantir visibilidade */ left: 65px; /* Posição padrão */ top: 90%; /* Alterado de 50% para 80% para descer o botão */ transform: translateY(-50%); } .sidebar.collapsed { position: absolute; width: 0; min-width: 0; padding: 0; margin: 0; opacity: 0; visibility: hidden; overflow: hidden; } .sidebar.collapsed .logo, .sidebar.collapsed nav, .sidebar.collapsed .nav-rule-top, .sidebar.collapsed .nav-rule-bottom { display: none; } /* Garantir que o botão permaneça visível quando a sidebar está fechada */ .sidebar.collapsed .nav-toggle { opacity: 1; visibility: visible; display: flex; left: 20px; /* Posição fixa quando colapsado */ } /* Ajustar estado inicial do botão para 3 traços */ .nav-toggle .toggle-line { width: 100%; height: 2px; background-color: var(--text-color); transition: all 0.3s ease; transform: none !important; /* Remover rotação */ opacity: 1 !important; /* Garantir visibilidade */ } /* Remover transformações anteriores */ .nav-toggle .toggle-line:first-child, .sidebar:not(.collapsed) .nav-toggle .toggle-line:first-child { transform: none; } .nav-toggle .toggle-line:nth-child(2), .sidebar:not(.collapsed) .nav-toggle .toggle-line:nth-child(2) { opacity: 1; } .nav-toggle .toggle-line:last-child, .sidebar:not(.collapsed) .nav-toggle .toggle-line:last-child { transform: none; } /* Adicionar hover effect */ .nav-toggle:hover .toggle-line { background-color: var(--accent); } /* Ajustar posicionamento do nav toggle quando colapsado */ .sidebar.collapsed .nav-toggle { position: fixed; left: 20px; top: 90%; /* Posição mais baixa */ transform: translateY(-50%); z-index: 10; background: rgba(0, 0, 0, 0.8); opacity: 1; visibility: visible; display: flex; } /* Atualizar animação da sidebar */ .sidebar { transition: all 0.3s ease-in-out; transform-origin: left center; opacity: 1; visibility: visible; width: 200px; } .sidebar.collapsed { transform: translateX(-20px); opacity: 0; visibility: hidden; width: 0; } /* Animar o botão também */ .nav-toggle { transition: all 0.3s ease-in-out; transform-origin: center; } /* Posição do botão quando navbar fechada */ .sidebar.collapsed .nav-toggle { position: fixed; left: 20px; top: 85%; transform: translateY(-50%); opacity: 1; visibility: visible; } /* Atualizar animações da sidebar */ .sidebar { transition: all 0.3s ease-in-out; transform-origin: left center; opacity: 1; visibility: visible; width: 200px; position: relative; transform: translateX(0); } .sidebar.collapsed { width: 0; opacity: 0; transform: translateX(-20px); visibility: hidden; transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out, width 0.3s ease-in-out; position: absolute; } /* Ajustar visibilidade para acontecer depois da animação */ .sidebar.collapsed .logo, .sidebar.collapsed nav, .sidebar.collapsed .nav-rule-top, .sidebar.collapsed .nav-rule-bottom { opacity: 0; transition: opacity 0.2s ease-in-out; } /* Garantir que o conteúdo também anima suavemente */ .content { transition: padding-left 0.3s ease-in-out, margin-left 0.3s ease-in-out; } .container { transition: grid-template-columns 0.3s ease-in-out; } /* Adicionar animação para atualização de valores */ @keyframes updateField { 0%, 100% { transform: none; background: rgba(0, 0, 0, 0.3); } 50% { background: rgba(255, 255, 255, 0.2); } } .info-value, .grade-value { transition: none; } .info-value.updated, .grade-value.updated { animation: updateField 0.2s ease-out; } .selected-student-profile { opacity: 0; transform: translateY(-10px); transition: all 0.3s ease-in-out; } .selected-student-profile.visible { opacity: 1; transform: translateY(0); display: block; } /* Melhorar estilo dos info-values */ .info-value { background: rgba(0, 0, 0, 0.3); padding: 8px 12px; border-radius: 6px; color: var(--text-color); min-width: 100px; display: inline-block; transition: all 0.3s ease-in-out; border: 1px solid var(--border-color); } .info-value.updated { animation: updateField 0.3s ease-out; border-color: var(--accent); } .xp-section { background: rgba(0, 0, 0, 0.3); padding: 20px; border-radius: 8px; border: 1px solid var(--border-color); margin-top: 20px; } .xp-section h3 { color: var(--text-color); margin-bottom: 15px; font-size: 18px; } .current-xp { background: rgba(0, 0, 0, 0.2); padding: 15px; border-radius: 8px; margin-bottom: 20px; border: 1px solid var(--border-color); } .current-xp h4 { color: var(--text-color); margin-bottom: 15px; font-size: 16px; text-transform: uppercase; letter-spacing: 1px; } .xp-display { display: flex; justify-content: space-between; align-items: center; background: rgba(0, 0, 0, 0.2); padding: 8px 12px; border-radius: 6px; } .xp-label { color: var(--text-color); font-weight: bold; } .xp-value { background: rgba(255, 255, 255, 0.1); padding: 4px 8px; border-radius: 4px; min-width: 40px; text-align: center; } .xp-controls { display: flex; gap: 10px; align-items: center; margin-top: 15px; } .xp-controls input { width: 100px; padding: 8px; background: rgba(0, 0, 0, 0.2); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); } /* Adicionar animação para atualização de XP */ .xp-value.updated { animation: updateField 0.3s ease-out; } .turmas-main-container { position: relative; width: 100%; padding: 20px; margin-top: 60px; } .turmas-controls { max-width: 800px; margin: 0 auto 50px; padding: 20px; border-radius: 10px; text-align: center; } .turmas-controls h2 { margin-bottom: 25px; /* Aumentar espaço após o título */ font-size: 24px; color: var(--text-color); text-transform: uppercase; letter-spacing: 2px; } .turmas-controls select { width: 200px; padding: 10px; margin-bottom: 25px; /* Aumentar espaço após o select */ background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); color: var(--text-color); border-radius: 6px; font-size: 16px; } #turmaPesquisa { width: 100%; padding: 12px 15px; margin-top: 15px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } #turmaPesquisa:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); box-shadow: 0 0 10px rgba(255, 255, 255, 0.1); } .turma-students-list { max-width: 800px; margin: 60px auto 0; /* Ajustado de 80px para 60px para reduzir espaço superior */ padding: 20px; background: rgba(0, 0, 0, 0.3); border-radius: 10px; position: relative; } .turma-students-list h2 { position: relative; margin-top: -60px; /* Mover título para cima */ margin-bottom: 30px; } .turma-title { text-align: center; color: var(--text-color); font-size: 24px; margin-bottom: 20px; /* Reduzido de 30px para 20px */ margin-top: -40px; /* Ajustado de -60px para -40px para aproximar da box */ position: relative; /* Alterado de absolute para relative */ } .students-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 15px; margin-top: 20px; } .student-card { background: rgba(0, 0, 0, 0.3); padding: 15px; border-radius: 8px; border: 1px solid var(--border-color); margin-bottom: 10px; display: block; cursor: pointer; } /* Remover hover e transições */ .student-card:hover { background: rgba(0, 0, 0, 0.3); transform: none; } .student-card .student-name { font-size: 16px; font-weight: bold; color: var(--text-color); padding: 8px 12px; margin-bottom: 8px; border-radius: 4px; background: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.1); } .student-card .student-house { font-size: 14px; color: rgba(255, 255, 255, 0.8); padding: 4px 0; } /* Adicionar animação shake para campo obrigatório */ @keyframes shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); } 20%, 40%, 60%, 80% { transform: translateX(5px); } } .shake-animation { animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both; } .points-reason { transition: border-color 0.3s ease; } .points-reason:focus { border-color: var(--accent) !important; } /* Ajustes na barra de pesquisa de turmas */ #turmaStudentSearch { width: 100%; padding: 12px 15px; margin: 15px 0; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } #turmaStudentSearch:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); box-shadow: 0 0 10px rgba(255, 255, 255, 0.1); } .student-card { /* ...existing card styles... */ transition: opacity 0.3s ease, transform 0.3s ease; } /* Unificar estilo da barra de pesquisa */ #turmaStudentSearch { width: 100%; padding: 12px 15px; background-color: rgba(61, 61, 61, 0.6); border: 1px solid var(--border-color); border-radius: 5px; color: white; font-size: 16px; margin: 20px 0; transition: all 0.3s ease; } #turmaStudentSearch:focus { border-color: var(--accent); outline: none; background-color: rgba(61, 61, 61, 0.8); } /* Remover completamente os estilos de pesquisa */ #turmaStudentSearch, #turmaStudentSearch:focus, .turma-search, .search-bar, .search-bar input, .search-student, .search-student input { display: block; /* Alterar de none para block */ } /* Restaurar estilos da barra de pesquisa */ .search-bar input, #turmaStudentSearch { width: 100%; padding: 12px 15px; margin: 15px 0; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } .search-bar input:focus, #turmaStudentSearch:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); } /* ...existing code... */ .student-card { /* Manter os estilos existentes do cartão de estudante */ background: rgba(0, 0, 0, 0.3); padding: 15px; border-radius: 8px; border: 1px solid var(--border-color); margin-bottom: 10px; cursor: pointer; transition: all 0.3s ease; display: block; } /* Restaurar e melhorar estilos da barra de pesquisa */ .search-student { display: block; margin-bottom: 20px; } .search-student input { width: 100%; padding: 12px 15px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } .search-student input:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); box-shadow: 0 0 10px rgba(255, 255, 255, 0.1); } .search-student input::placeholder { color: rgba(255, 255, 255, 0.5); } /* Estilo para o select de ano letivo */ #student-year { background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); color: var(--text-color); padding: 8px 12px; border-radius: 6px; width: 100%; cursor: pointer; appearance: auto; /* Importante: permite que o select mostre as opções */ -webkit-appearance: auto; /* Para compatibilidade com Safari */ } #student-year:hover { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); } #student-year option { background: rgba(13, 15, 25, 0.95); color: var(--text-color); padding: 8px; } /* Ajuste do select de ano letivo */ #student-year { width: 100%; padding: 8px 12px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); cursor: pointer; -webkit-appearance: menulist; /* Importante para mostrar o dropdown no Chrome/Safari */ -moz-appearance: menulist; /* Para Firefox */ appearance: menulist; /* Padrão */ font-family: var(--font-secondary); font-size: 14px; } #student-year option { background-color: rgb(13, 15, 25); color: var(--text-color); padding: 8px; font-size: 14px; } #student-year:hover { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); } #student-year:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 10px rgba(211, 182, 101, 0.3); } .select-wrapper { position: relative; width: 100%; } #student-year { width: 100%; padding: 8px 12px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); cursor: pointer; -webkit-appearance: menulist; -moz-appearance: menulist; appearance: menulist; font-family: var(--font-secondary); font-size: 14px; transition: all 0.3s ease; z-index: 100; /* Garantir que aparece sobre outros elementos */ } #student-year option { background-color: rgb(13, 15, 25); color: var(--text-color); padding: 8px 12px; font-size: 14px; } #student-year:hover, #student-year:focus { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); outline: none; box-shadow: 0 0 10px rgba(211, 182, 101, 0.3); } /* Ajustar posição do botão toggle quando colapsado */ .sidebar.collapsed .nav-toggle { position: fixed; left: 20px; top: 90%; /* Posição mais baixa */ transform: translateY(-50%); z-index: 10; background: rgba(0, 0, 0, 0.8); opacity: 1; visibility: visible; display: flex; } /* Atualizar animação da sidebar */ .sidebar { transition: all 0.3s ease-in-out; transform-origin: left center; opacity: 1; visibility: visible; width: 200px; } .sidebar.collapsed { transform: translateX(-20px); opacity: 0; visibility: hidden; width: 0; } /* Animar o botão também */ .nav-toggle { transition: all 0.3s ease-in-out; transform-origin: center; } /* Posição do botão quando navbar fechada */ .sidebar.collapsed .nav-toggle { position: fixed; left: 20px; top: 85%; transform: translateY(-50%); opacity: 1; visibility: visible; } /* Atualizar animações da sidebar */ .sidebar { transition: all 0.3s ease-in-out; transform-origin: left center; opacity: 1; visibility: visible; width: 200px; position: relative; transform: translateX(0); } .sidebar.collapsed { width: 0; opacity: 0; transform: translateX(-20px); visibility: hidden; transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out, width 0.3s ease-in-out; position: absolute; } /* Ajustar visibilidade para acontecer depois da animação */ .sidebar.collapsed .logo, .sidebar.collapsed nav, .sidebar.collapsed .nav-rule-top, .sidebar.collapsed .nav-rule-bottom { opacity: 0; transition: opacity 0.2s ease-in-out; } /* Garantir que o conteúdo também anima suavemente */ .content { transition: padding-left 0.3s ease-in-out, margin-left 0.3s ease-in-out; } .container { transition: grid-template-columns 0.3s ease-in-out; } /* Adicionar animação para atualização de valores */ @keyframes updateField { 0%, 100% { transform: none; background: rgba(0, 0, 0, 0.3); } 50% { background: rgba(255, 255, 255, 0.2); } } .info-value, .grade-value { transition: none; } .info-value.updated, .grade-value.updated { animation: updateField 0.2s ease-out; } .selected-student-profile { opacity: 0; transform: translateY(-10px); transition: all 0.3s ease-in-out; } .selected-student-profile.visible { opacity: 1; transform: translateY(0); display: block; } /* Melhorar estilo dos info-values */ .info-value { background: rgba(0, 0, 0, 0.3); padding: 8px 12px; border-radius: 6px; color: var(--text-color); min-width: 100px; display: inline-block; transition: all 0.3s ease-in-out; border: 1px solid var(--border-color); } .info-value.updated { animation: updateField 0.3s ease-out; border-color: var(--accent); } .xp-section { background: rgba(0, 0, 0, 0.3); padding: 20px; border-radius: 8px; border: 1px solid var(--border-color); margin-top: 20px; } .xp-section h3 { color: var(--text-color); margin-bottom: 15px; font-size: 18px; } .current-xp { background: rgba(0, 0, 0, 0.2); padding: 15px; border-radius: 8px; margin-bottom: 20px; border: 1px solid var(--border-color); } .current-xp h4 { color: var(--text-color); margin-bottom: 15px; font-size: 16px; text-transform: uppercase; letter-spacing: 1px; } .xp-display { display: flex; justify-content: space-between; align-items: center; background: rgba(0, 0, 0, 0.2); padding: 8px 12px; border-radius: 6px; } .xp-label { color: var(--text-color); font-weight: bold; } .xp-value { background: rgba(255, 255, 255, 0.1); padding: 4px 8px; border-radius: 4px; min-width: 40px; text-align: center; } .xp-controls { display: flex; gap: 10px; align-items: center; margin-top: 15px; } .xp-controls input { width: 100px; padding: 8px; background: rgba(0, 0, 0, 0.2); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); } /* Adicionar animação para atualização de XP */ .xp-value.updated { animation: updateField 0.3s ease-out; } .turmas-main-container { position: relative; width: 100%; padding: 20px; margin-top: 60px; } .turmas-controls { max-width: 800px; margin: 0 auto 50px; padding: 20px; border-radius: 10px; text-align: center; } .turmas-controls h2 { margin-bottom: 25px; /* Aumentar espaço após o título */ font-size: 24px; color: var(--text-color); text-transform: uppercase; letter-spacing: 2px; } .turmas-controls select { width: 200px; padding: 10px; margin-bottom: 25px; /* Aumentar espaço após o select */ background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); color: var(--text-color); border-radius: 6px; font-size: 16px; } #turmaPesquisa { width: 100%; padding: 12px 15px; margin-top: 15px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } #turmaPesquisa:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); box-shadow: 0 0 10px rgba(255, 255, 255, 0.1); } .turma-students-list { max-width: 800px; margin: 60px auto 0; /* Ajustado de 80px para 60px para reduzir espaço superior */ padding: 20px; background: rgba(0, 0, 0, 0.3); border-radius: 10px; position: relative; } .turma-students-list h2 { position: relative; margin-top: -60px; /* Mover título para cima */ margin-bottom: 30px; } .turma-title { text-align: center; color: var(--text-color); font-size: 24px; margin-bottom: 20px; /* Reduzido de 30px para 20px */ margin-top: -40px; /* Ajustado de -60px para -40px para aproximar da box */ position: relative; /* Alterado de absolute para relative */ } .students-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 15px; margin-top: 20px; } .student-card { background: rgba(0, 0, 0, 0.3); padding: 15px; border-radius: 8px; border: 1px solid var(--border-color); margin-bottom: 10px; display: block; cursor: pointer; } /* Remover hover e transições */ .student-card:hover { background: rgba(0, 0, 0, 0.3); transform: none; } .student-card .student-name { font-size: 16px; font-weight: bold; color: var(--text-color); padding: 8px 12px; margin-bottom: 8px; border-radius: 4px; background: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.1); } .student-card .student-house { font-size: 14px; color: rgba(255, 255, 255, 0.8); padding: 4px 0; } /* Adicionar animação shake para campo obrigatório */ @keyframes shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); } 20%, 40%, 60%, 80% { transform: translateX(5px); } } .shake-animation { animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both; } .points-reason { transition: border-color 0.3s ease; } .points-reason:focus { border-color: var(--accent) !important; } /* Ajustes na barra de pesquisa de turmas */ #turmaStudentSearch { width: 100%; padding: 12px 15px; margin: 15px 0; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } #turmaStudentSearch:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); box-shadow: 0 0 10px rgba(255, 255, 255, 0.1); } .student-card { /* ...existing card styles... */ transition: opacity 0.3s ease, transform 0.3s ease; } /* Unificar estilo da barra de pesquisa */ #turmaStudentSearch { width: 100%; padding: 12px 15px; background-color: rgba(61, 61, 61, 0.6); border: 1px solid var(--border-color); border-radius: 5px; color: white; font-size: 16px; margin: 20px 0; transition: all 0.3s ease; } #turmaStudentSearch:focus { border-color: var(--accent); outline: none; background-color: rgba(61, 61, 61, 0.8); } /* Remover completamente os estilos de pesquisa */ #turmaStudentSearch, #turmaStudentSearch:focus, .turma-search, .search-bar, .search-bar input, .search-student, .search-student input { display: block; /* Alterar de none para block */ } /* Restaurar estilos da barra de pesquisa */ .search-bar input, #turmaStudentSearch { width: 100%; padding: 12px 15px; margin: 15px 0; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } .search-bar input:focus, #turmaStudentSearch:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); } /* ...existing code... */ .student-card { /* Manter os estilos existentes do cartão de estudante */ background: rgba(0, 0, 0, 0.3); padding: 15px; border-radius: 8px; border: 1px solid var(--border-color); margin-bottom: 10px; cursor: pointer; transition: all 0.3s ease; display: block; } /* Restaurar e melhorar estilos da barra de pesquisa */ .search-student { display: block; margin-bottom: 20px; } .search-student input { width: 100%; padding: 12px 15px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); font-size: 14px; transition: all 0.3s ease; } .search-student input:focus { border-color: var(--accent); outline: none; background: rgba(0, 0, 0, 0.4); box-shadow: 0 0 10px rgba(255, 255, 255, 0.1); } .search-student input::placeholder { color: rgba(255, 255, 255, 0.5); } /* Estilo para o select de ano letivo */ #student-year { background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); color: var(--text-color); padding: 8px 12px; border-radius: 6px; width: 100%; cursor: pointer; appearance: auto; /* Importante: permite que o select mostre as opções */ -webkit-appearance: auto; /* Para compatibilidade com Safari */ } #student-year:hover { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); } #student-year option { background: rgba(13, 15, 25, 0.95); color: var(--text-color); padding: 8px; } /* Ajuste do select de ano letivo */ #student-year { width: 100%; padding: 8px 12px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); cursor: pointer; -webkit-appearance: menulist; /* Importante para mostrar o dropdown no Chrome/Safari */ -moz-appearance: menulist; /* Para Firefox */ appearance: menulist; /* Padrão */ font-family: var(--font-secondary); font-size: 14px; } #student-year option { background-color: rgb(13, 15, 25); color: var(--text-color); padding: 8px; font-size: 14px; } #student-year:hover { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); } #student-year:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 10px rgba(211, 182, 101, 0.3); } .select-wrapper { position: relative; width: 100%; } #student-year { width: 100%; padding: 8px 12px; background: rgba(0, 0, 0, 0.3); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-color); cursor: pointer; -webkit-appearance: menulist; -moz-appearance: menulist; appearance: menulist; font-family: var(--font-secondary); font-size: 14px; transition: all 0.3s ease; z-index: 100; /* Garantir que aparece sobre outros elementos */ } #student-year option { background-color: rgb(13, 15, 25); color: var(--text-color); padding: 8px 12px; font-size: 14px; } #student-year:hover, #student-year:focus { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); outline: none; box-shadow: 0 0 10px rgba(211, 182, 101, 0.3); }