/* --- Reset e Base --- */ * { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, sans-serif; } body { background-color: #111; padding: 20px; min-height: 100vh; position: relative; overflow-x: hidden; } /* --- O FLUXO ROXO (FUNDO ANIMADO) --- */ .fundo-fluxo { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; } .fundo-fluxo::after { content: ''; position: absolute; bottom: -150vh; left: 10%; width: 80vw; height: 150vh; background: radial-gradient(ellipse at center, rgba(54, 5, 104, 0.8) 0%, transparent 60%); filter: blur(50px); animation: subirFluxo 15s infinite linear; } @keyframes subirFluxo { 0% { transform: translateY(50%); opacity: 0.5; } 50% { opacity: 1; } 100% { transform: translateY(-100%); opacity: 0.5; } } /* --- CONTAINER E TABELA --- */ .container { max-width: 1200px; margin: 0 auto; } .painel-topo { background: rgba(255, 255, 255, 0.95); padding: 15px; border-radius: 8px; margin-bottom: 20px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; box-shadow: 0 4px 10px rgba(0,0,0,0.3); } .tabela-container { background: white; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.3); } /* --- BOTÕES --- */ .btn { padding: 10px 15px; border: none; border-radius: 5px; cursor: pointer; font-weight: bold; font-size: 13px; display: flex; align-items: center; gap: 5px; color: white; transition: 0.2s; } .btn:hover { opacity: 0.9; transform: scale(1.02); } .btn-roxo-escuro { background-color: #360568; } .btn-roxo-medio { background-color: #5B2A86; } .btn-cinza { background-color: #6c757d; } /* Botões de Filtro */ .btn-aba { background: transparent; color: #777; border: none; font-weight: bold; padding: 10px; cursor: pointer; border-bottom: 2px solid transparent; transition: 0.2s; } .btn-aba:hover { color: #360568; } .btn-aba.ativo { color: #360568; border-bottom: 2px solid #360568; } .divisor { width: 1px; height: 30px; background: #ddd; margin: 0 10px; } /* --- A GRID DA TABELA --- */ .grid-row { display: grid; grid-template-columns: 30px 90px 130px 100px 1.5fr 1fr 100px 50px 120px; border-bottom: 1px solid #eee; align-items: center; } .header { background: #f4f4f4; color: #444; font-weight: bold; font-size: 12px; padding: 15px 10px; text-transform: uppercase; border-bottom: 2px solid #ddd; } .item { font-size: 13px; color: #333; padding: 10px; transition: 0.2s; } .item:hover { background-color: #f9f9f9; } /* Item Entregue */ .item.entregue { background-color: #f0fdf4; opacity: 0.8; } .item.entregue .destaque-texto { color: #888; text-decoration: line-through; } .item div { word-wrap: break-word; overflow: hidden; } .destaque-texto { font-weight: bold; color: #360568; } .center { text-align: center; justify-content: center; display: flex; align-items: center; } /* --- AÇÕES NA TABELA --- */ .acoes { display: flex; gap: 8px; align-items: center; justify-content: center; } .btn-icon { background: none; border: none; cursor: pointer; padding: 4px; border-radius: 4px; transition: 0.2s; } .btn-icon:hover { background: #eee; transform: scale(1.1); } .icone-roxo { color: #5B2A86; } .icone-excluir { color: #555; } .icone-excluir:hover { color: #d32f2f; } /* --- MODAL --- */ .modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); justify-content: center; align-items: center; z-index: 999; } .modal-box { background: white; padding: 25px; border-radius: 8px; width: 95%; max-width: 500px; border-top: 5px solid #360568; box-shadow: 0 10px 30px rgba(0,0,0,0.3); } .modal-header { display: flex; justify-content: space-between; margin-bottom: 20px; } .modal-header h2 { color: #360568; font-size: 18px; margin: 0; } .close-btn { font-size: 24px; cursor: pointer; color: #999; } .close-btn:hover { color: #333; } .form-grid { display: flex; flex-direction: column; gap: 12px; } .campo-full { width: 100%; } .campo-duplo { display: flex; gap: 10px; } .campo-duplo div { flex: 1; } label { display: block; font-size: 12px; font-weight: bold; color: #555; margin-bottom: 4px; } .input-form { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; } .input-form:focus { border-color: #360568; outline: none; } .modal-buttons { margin-top: 20px; display: flex; justify-content: flex-end; gap: 10px; } /* ======================================================= VERSÃO MÓVEL (SEM ERROS NO VS CODE) ======================================================= */ .tabela-container.mobile-mode .header { display: none; } .tabela-container.mobile-mode .grid-row { display: flex; flex-direction: column; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 8px; padding: 15px; background: white; } .tabela-container.mobile-mode .item div { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #eee; width: 100%; text-align: right; } .tabela-container.mobile-mode .item div::before { content: attr(data-label); font-weight: bold; color: #360568; text-transform: uppercase; font-size: 11px; margin-right: 10px; text-align: left; } .tabela-container.mobile-mode .item div:last-child { border-bottom: none; } .tabela-container.mobile-mode .acoes { justify-content: flex-end; padding-top: 10px; } /* Regra para celular real (Media Query) */ @media (max-width: 900px) { .header { display: none; } .grid-row { display: flex; flex-direction: column; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 8px; padding: 15px; background: white; } .item div { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #eee; width: 100%; text-align: right; } .item div::before { content: attr(data-label); font-weight: bold; color: #360568; text-transform: uppercase; font-size: 11px; margin-right: 10px; text-align: left; } .item div:last-child { border-bottom: none; } .acoes { justify-content: flex-end; padding-top: 10px; } }