/* ============================================================ STYLES.CSS - Estilos para ELABORACAO_MODELOS ============================================================ */ /* ============================================================ LAYOUT GERAL ============================================================ */ :root.dark, :root .dark { /* Force LIGHT backgrounds */ --neutral-950: #ffffff !important; --neutral-900: #ffffff !important; --neutral-800: #ffffff !important; --background-fill-primary: #ffffff !important; --background-fill-secondary: #ffffff !important; --block-background-fill: #ffffff !important; --panel-background-fill: #ffffff !important; --input-background-fill: #ffffff !important; --code-background-fill: #ffffff !important; --block-border-color: #ffffff !important; /* Force readable text */ --body-text-color: #000000 !important; --block-label-text-color: #000000 !important; --body-text-color-subdued: #444444 !important; --block-title-text-color: #000000 !important; } .gradio-container { max-width: 100% !important; padding: 15px !important; background: #f5f5f5 !important; } /* ============================================================ TÍTULOS DE SEÇÃO ============================================================ */ .section-title-orange { font-weight: 600; color: #4a5568; margin: 16px 0 12px 0; padding: 8px 12px; border-left: 4px solid #FF8C00; background: linear-gradient(90deg, #fff8f0 0%, white 100%); font-size: 14px; text-transform: uppercase; letter-spacing: 0.3px; border-radius: 0 6px 6px 0; } /* ============================================================ HEADERS DE SEÇÃO PRINCIPAIS ============================================================ */ .section-header { display: flex; align-items: center; gap: 12px; margin: 36px 0 12px 0; padding: 0; } .section-header:first-of-type { margin-top: 16px; } .section-number { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: #FF8C00; color: white; font-weight: 700; font-size: 16px; border-radius: 50%; flex-shrink: 0; } .section-title { font-size: 16px; font-weight: 600; color: #333; text-transform: uppercase; letter-spacing: 0.5px; margin: 0; padding-bottom: 6px; border-bottom: 2px solid #FF8C00; flex-grow: 1; } /* Container de seção com borda mais definida */ .section-container { background: white !important; border: 2px solid #c0c0c0 !important; border-radius: 12px !important; padding: 16px !important; margin: 0 0 8px 0 !important; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06) !important; } .section-container:hover { border-color: #FF8C00 !important; transition: border-color 0.2s ease; } /* Timestamp inline após título de seção */ .section-timestamp { display: inline-block; margin-left: 8px; font-size: 12px; font-weight: 400; color: #dc3545; font-style: italic; } /* Área de adoção de sugestões */ .adotar-header { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 16px; margin: 0 0 12px 0; background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); border: 2px solid #66bb6a; border-radius: 10px; } .adotar-emoji { font-size: 24px; } .adotar-titulo { font-size: 15px; font-weight: 600; color: #2e7d32; letter-spacing: 0.3px; } .adotar-row { background: linear-gradient(135deg, #f1f8e9 0%, #dcedc8 100%); border: 2px dashed #8bc34a; border-radius: 10px; padding: 16px !important; margin: 0 0 16px 0 !important; display: flex; justify-content: center; gap: 12px; } .adotar-separator { display: flex; align-items: center; text-align: center; margin: 8px 0 16px 0; color: #9e9e9e; font-size: 13px; } .adotar-separator::before, .adotar-separator::after { content: ''; flex: 1; border-bottom: 1px solid #e0e0e0; } .adotar-separator span { padding: 0 16px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 500; } /* Botões de adotar transformação */ .btn-adotar { background: linear-gradient(180deg, #4caf50 0%, #43a047 100%) !important; border: 2px solid #388e3c !important; color: white !important; font-weight: 600 !important; font-size: 14px !important; padding: 10px 20px !important; border-radius: 8px !important; box-shadow: 0 3px 8px rgba(76, 175, 80, 0.4) !important; transition: all 0.2s ease !important; min-width: 100px !important; } .btn-adotar:hover { background: linear-gradient(180deg, #43a047 0%, #388e3c 100%) !important; border-color: #2e7d32 !important; transform: translateY(-2px) !important; box-shadow: 0 5px 15px rgba(76, 175, 80, 0.5) !important; } .btn-adotar:active { transform: translateY(0) !important; box-shadow: 0 2px 4px rgba(76, 175, 80, 0.3) !important; } /* Checkbox para marcar/desmarcar todos */ .checkbox-selecionar-todos { margin-bottom: 12px; padding: 8px 12px; background: #f0f0f0; border-radius: 6px; border: 1px solid #d0d0d0; } .checkbox-selecionar-todos label { font-weight: 600 !important; color: #495057 !important; } /* ============================================================ CARDS E CONTAINERS ============================================================ */ .diagnosticos-container, .dai-card { font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif; background: white; border-radius: 12px; padding: 20px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); line-height: 1.5; } /* ============================================================ STATS GRID (micronumerosidade) ============================================================ */ .stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; padding: 12px 0; } .stat-item { display: flex; justify-content: space-between; padding: 8px 12px; background: #f8f9fa; border-radius: 6px; border: 1px solid #e9ecef; } .stat-label { font-weight: 500; color: #6c757d; } .stat-value { font-weight: 600; font-family: 'Consolas', monospace; color: #495057; } /* ============================================================ TESTES ESTATÍSTICOS (micronumerosidade) ============================================================ */ .teste-item { display: flex; flex-wrap: wrap; gap: 12px; padding: 10px 12px; margin: 4px 0; background: #fafafa; border-radius: 6px; align-items: center; } .teste-nome { font-weight: 600; color: #495057; min-width: 180px; } .teste-valor { font-family: 'Consolas', monospace; color: #6c757d; } .teste-interp { font-style: italic; color: #28a745; font-size: 13px; } /* ============================================================ FIELD ROWS (diagnósticos do modelo) ============================================================ */ .field-row { display: flex; justify-content: space-between; padding: 8px 12px; border-bottom: 1px solid #f0f0f0; background: #fafafa; } .field-row-label { font-weight: 500; color: #495057; } .field-row-value { font-weight: 600; font-family: 'Consolas', monospace; color: #495057; } .field-row-value-italic { font-style: italic; color: #495057; font-size: 13px; } /* ============================================================ INTERPRETAÇÃO COM BULLETS ============================================================ */ .interpretation-label { padding: 8px 12px 4px; font-weight: 500; color: #495057; background: #fafafa; } .interpretation-item { padding: 2px 12px 2px 24px; font-size: 13px; color: #6c757d; background: #fafafa; } .interpretation-item:last-child { padding-bottom: 8px; border-radius: 0 0 6px 6px; } /* ============================================================ EQUAÇÃO DO MODELO ============================================================ */ .equation-box { padding: 16px; margin: 8px 0; font-size: 13px; font-family: 'Consolas', monospace; word-break: break-word; background: #f8f9fa; border-radius: 8px; border-left: 4px solid #FF8C00; line-height: 1.6; } /* ============================================================ BUSCA AUTOMÁTICA ============================================================ */ .busca-container { display: flex; flex-wrap: wrap; gap: 16px; padding: 12px; } .modelo-card { flex: 1; min-width: 200px; max-width: 300px; padding: 16px; background: white; border-radius: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); border: 1px solid #e0e0e0; } .modelo-rank { font-size: 24px; font-weight: 700; color: #FF8C00; margin-bottom: 8px; } .modelo-r2 { font-size: 18px; font-weight: 600; color: #28a745; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid #e9ecef; } .modelo-transf { font-size: 13px; color: #6c757d; line-height: 1.6; } .modelo-transf b { color: #495057; } /* ============================================================ ACCORDIONS E GRUPOS ============================================================ */ .gradio-accordion { border: 2px solid #d0d0d0 !important; border-radius: 10px !important; margin: 8px 0 !important; background: white !important; } .gradio-accordion > .label-wrap { padding: 12px 16px !important; background: #fafafa !important; border-radius: 10px 10px 0 0 !important; } .gradio-group { background: white !important; border-radius: 12px !important; padding: 15px !important; margin-bottom: 15px !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important; border: 2px solid #c0c0c0 !important; } /* ============================================================ BOTÕES ============================================================ */ button.primary { background: #FF8C00 !important; border-color: #FF8C00 !important; } button.primary:hover { background: #e67e00 !important; border-color: #e67e00 !important; } button.secondary { background: #efefef !important; border-color: black !important; font-weight: bold !important; } /* ============================================================ TABELAS ============================================================ */ .gradio-dataframe table { font-size: 13px !important; } .gradio-dataframe th { background: #f8f9fa !important; font-weight: 600 !important; color: #495057 !important; text-transform: uppercase !important; font-size: 12px !important; letter-spacing: 0.3px !important; } .gradio-dataframe td { padding: 8px 12px !important; } .gradio-dataframe tr:hover { background: #fff8f0 !important; cursor: pointer; } /* ============================================================ MAPA ============================================================ */ .map-container iframe { border-radius: 8px !important; border: 1px solid #e0e0e0 !important; } /* ============================================================ INPUTS ============================================================ */ .gradio-dropdown, .gradio-textbox input, .gradio-checkbox-group { border-radius: 6px !important; } .gradio-checkbox-group label { padding: 6px 12px !important; margin: 4px !important; border-radius: 20px !important; background: #f8f9fa !important; border: 1px solid #e0e0e0 !important; transition: all 0.2s !important; } .gradio-checkbox-group label:hover { background: #fff8f0 !important; border-color: #FF8C00 !important; } .gradio-checkbox-group input:checked + label { background: #FF8C00 !important; color: white !important; border-color: #FF8C00 !important; } /* ============================================================ GRÁFICOS PLOTLY ============================================================ */ .gradio-plot { background: white !important; border-radius: 8px !important; padding: 10px !important; border: 1px solid #e0e0e0 !important; } /* ============================================================ SCROLLBARS ============================================================ */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #a1a1a1; } /* ============================================================ RESPONSIVIDADE ============================================================ */ @media (max-width: 768px) { .stats-grid { grid-template-columns: 1fr; } .busca-container { flex-direction: column; } .modelo-card { max-width: 100%; } } /* ============================================================ CARDS DE TRANSFORMAÇÃO ============================================================ */ .transf-card { background: white !important; border: 2px solid #e0e0e0 !important; border-radius: 8px !important; padding: 12px !important; margin: 4px !important; } .transf-card:hover { border-color: #FF8C00 !important; } /* ============================================================ ACCORDIONS DE SEÇÃO (COLAPSÁVEIS) ============================================================ */ /* Accordion de seção - estilo minimalista, label como toggle */ .section-accordion { margin: 0 !important; border: none !important; border-radius: 12px !important; background: transparent !important; box-shadow: none !important; } /* Label do accordion - pequeno toggle */ .section-accordion > .label-wrap { padding: 8px 16px !important; background: #f8f9fa !important; border: 2px solid #c0c0c0 !important; border-radius: 0 0 12px 12px !important; cursor: pointer !important; font-size: 12px !important; color: #6c757d !important; } .section-accordion > .label-wrap:hover { background: #fff8f0 !important; border-color: #FF8C00 !important; } .section-accordion[open] > .label-wrap { border-radius: 0 !important; border-top: none !important; } .section-accordion:not([open]) > .label-wrap { margin-top: -2px !important; } /* Conteúdo da seção */ .section-content { background: white !important; border: 2px solid #c0c0c0 !important; border-bottom: none !important; border-radius: 12px 12px 0 0 !important; padding: 16px !important; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06) !important; } .section-content:hover { border-color: #FF8C00 !important; transition: border-color 0.2s ease; } /* Container wrapper para header + accordion */ .section-wrapper { margin: 24px 0 8px 0 !important; } /* Animação de abertura */ .section-content:not([style*="display: none"]) { animation: sectionFadeIn 0.3s ease-in-out; } @keyframes sectionFadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* ============================================================ BOTÕES DE FILTRO DE OUTLIERS ============================================================ */ .btn-remover-filtro { background: white !important; border: 1px solid #dc3545 !important; color: #dc3545 !important; font-weight: 700 !important; } .btn-adicionar-filtro { background: white !important; border: 1px solid #333 !important; color: #333 !important; font-weight: 700 !important; } .btn-voltar-padrao { background: white !important; border: 1px solid #333 !important; color: #333 !important; font-weight: 700 !important; }