mesa-react / frontend /src /styles.css
Guilherme Silberfarb Costa
update a lot of things
de0fbb8
raw
history blame
35.1 kB
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700;800&family=Nunito+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@500;700&display=swap');
:root {
--bg-0: #f4f6f8;
--bg-1: #edf2f6;
--bg-2: #ffffff;
--ink-0: #161c24;
--ink-1: #2f3b4a;
--ink-2: #5a6b7c;
--accent: #ff8c00;
--accent-strong: #e67900;
--accent-soft: #fff2df;
--ok: #1e8e49;
--danger: #b42318;
--border: #d4dde6;
--border-soft: #e6edf3;
--shadow-sm: 0 3px 10px rgba(20, 28, 36, 0.06);
--shadow-md: 0 10px 26px rgba(20, 28, 36, 0.1);
--radius-lg: 16px;
--radius-md: 12px;
--radius-sm: 9px;
}
* {
box-sizing: border-box;
}
html,
body,
#root {
min-height: 100%;
}
body {
margin: 0;
color: var(--ink-0);
font-family: 'Nunito Sans', sans-serif;
overflow-x: hidden;
background:
radial-gradient(1000px 430px at -8% -12%, #ffe8cf 0%, transparent 62%),
radial-gradient(860px 360px at 105% 10%, #dbeaf6 0%, transparent 60%),
linear-gradient(180deg, var(--bg-1) 0%, var(--bg-0) 35%, #f8fafc 100%);
}
button,
input,
select,
textarea {
font: inherit;
}
.app-shell {
width: min(1600px, 95vw);
margin: 18px auto 40px;
display: flex;
flex-direction: column;
gap: 16px;
position: relative;
}
.app-header {
border: 1px solid var(--border);
border-radius: var(--radius-lg);
background: linear-gradient(130deg, #fffdf9 0%, #ffffff 55%, #f6fbff 100%);
box-shadow: var(--shadow-md);
padding: 18px 22px;
display: grid;
grid-template-columns: 130px 1fr;
gap: 16px;
align-items: center;
border-left: 6px solid var(--accent);
}
.app-header.app-header-logo-only {
display: flex;
justify-content: center;
align-items: center;
grid-template-columns: none;
border-left: none;
padding: 12px 18px;
}
.brand-mark {
background: linear-gradient(180deg, #ffffff 0%, #fff6ea 100%);
border-radius: 14px;
border: 1px solid #ffd4a7;
display: grid;
place-items: center;
padding: 10px;
}
.app-header.app-header-logo-only .brand-mark {
width: min(520px, 90vw);
border: none;
background: transparent;
padding: 0;
}
.brand-mark img {
width: 100%;
max-width: 98px;
object-fit: contain;
}
.app-header.app-header-logo-only .brand-mark img {
max-width: 520px;
}
.brand-copy h1 {
margin: 0;
font-family: 'Sora', sans-serif;
font-size: clamp(1.5rem, 1.8vw, 2rem);
letter-spacing: 0.02em;
color: var(--ink-0);
}
.brand-copy p {
margin: 6px 0 10px;
color: var(--ink-2);
font-size: 1.02rem;
}
.session-id {
display: inline-block;
padding: 5px 10px;
border-radius: 999px;
background: #eef5fb;
border: 1px solid #dce8f2;
color: #375067;
font-family: 'JetBrains Mono', monospace;
font-size: 0.78rem;
}
.tabs {
display: grid;
grid-template-columns: repeat(3, minmax(180px, 1fr));
gap: 10px;
}
.tab-pill {
text-align: left;
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: linear-gradient(180deg, #f6f9fc 0%, #edf3f8 100%);
padding: 11px 12px;
color: #2f4359;
cursor: pointer;
transition: all 0.2s ease;
display: flex;
flex-direction: column;
gap: 2px;
}
.tab-pill strong {
font-family: 'Sora', sans-serif;
font-size: 0.93rem;
}
.tab-pill small {
color: #607589;
font-size: 0.76rem;
}
.tab-pill:hover {
border-color: #c5d4e2;
transform: translateY(-1px);
}
.tab-pill.active {
background: linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);
border-color: var(--accent-strong);
color: #fff;
}
.tab-pill.active small {
color: rgba(255, 255, 255, 0.88);
}
.inner-tabs {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 12px;
}
.inner-tab-pill {
border: 1px solid #d2deea;
border-radius: 10px;
background: linear-gradient(180deg, #f7fafd 0%, #edf3f8 100%);
color: #32475d;
font-weight: 700;
font-size: 0.84rem;
padding: 7px 11px;
box-shadow: none;
}
.inner-tab-pill:hover {
transform: translateY(-1px);
}
.inner-tab-pill.active {
background: linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);
border-color: var(--accent-strong);
color: #fff;
}
.inner-tab-panel {
border: 1px solid #dbe5ef;
border-radius: 12px;
background: #fff;
padding: 14px;
}
.tab-content {
display: flex;
flex-direction: column;
gap: 24px;
min-width: 0;
}
.tab-pane[hidden] {
display: none !important;
}
.status-strip {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 2px;
}
.status-pill {
border: 1px dashed #b7c7d8;
color: #5a6f84;
background: #f6fbff;
border-radius: 999px;
padding: 5px 12px;
font-size: 0.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.status-pill.done {
border-style: solid;
border-color: #7fcf98;
background: #eaf8ef;
color: var(--ok);
}
.workflow-section {
border: 1px solid #c9d6e3;
border-radius: var(--radius-lg);
background: var(--bg-2);
min-width: 0;
max-width: 100%;
box-shadow:
0 6px 18px rgba(20, 28, 36, 0.08),
inset 0 0 0 1px #edf3f9;
animation: sectionIn 0.35s ease both;
animation-delay: calc(var(--section-order, 1) * 25ms);
}
.section-head {
display: flex;
gap: 12px;
align-items: center;
padding: 15px 18px 13px;
border-bottom: 1px solid #dde7f1;
background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}
.section-index {
width: 34px;
height: 34px;
border-radius: 50%;
background: linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);
color: #fff;
font-family: 'Sora', sans-serif;
font-weight: 700;
font-size: 0.98rem;
display: grid;
place-items: center;
flex-shrink: 0;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.32);
}
.section-title-wrap {
min-width: 0;
flex: 1;
}
.section-title-wrap h3 {
margin: 0;
font-family: 'Sora', sans-serif;
font-size: 1.02rem;
color: var(--ink-0);
}
.section-title-wrap p {
margin: 4px 0 0;
color: var(--ink-2);
font-size: 0.88rem;
}
.section-head-aside {
margin-left: auto;
}
.section-body {
padding: 18px;
min-width: 0;
max-width: 100%;
overflow-x: hidden;
}
.section-body > * {
min-width: 0;
max-width: 100%;
}
.dados-visualizacao-groups {
display: grid;
gap: 16px;
min-width: 0;
}
.dados-visualizacao-group {
margin: 0;
min-width: 0;
}
.dados-outliers-resumo {
margin-bottom: 14px;
}
.dados-mapa-details {
display: block;
}
.dados-mapa-details > summary {
list-style: none;
display: flex;
align-items: center;
gap: 8px;
font-family: 'Sora', sans-serif;
font-size: 0.92rem;
color: #2d4157;
cursor: pointer;
user-select: none;
margin: -2px 0 10px;
}
.dados-mapa-details > summary::-webkit-details-marker {
display: none;
}
.dados-mapa-details > summary::before {
content: '▾';
color: #5f7489;
font-size: 0.8rem;
transition: transform 0.15s ease;
}
.dados-mapa-details:not([open]) > summary::before {
transform: rotate(-90deg);
}
.dados-mapa-controls {
display: flex;
align-items: center;
flex-wrap: wrap;
column-gap: 14px;
row-gap: 8px;
margin-bottom: 18px;
}
.dados-mapa-controls label {
margin-right: 0;
min-width: 118px;
}
.dados-mapa-controls + .map-frame,
.dados-mapa-controls + .empty-box {
margin-top: 6px;
}
.placeholder-section .empty-box {
border-style: solid;
}
.row {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 12px;
min-width: 0;
}
.row.compact {
margin: 0;
gap: 8px;
}
.row-wrap {
display: flex;
flex-wrap: wrap;
gap: 12px;
min-width: 0;
}
.avaliacao-actions-row {
gap: 12px;
margin-bottom: 16px;
}
.avaliacao-base-row {
gap: 12px;
margin-top: 2px;
margin-bottom: 16px;
}
.avaliacao-resultado-box {
margin-top: 10px;
}
label {
font-weight: 700;
color: #394a5e;
font-size: 0.88rem;
}
input,
select,
textarea {
border: 1px solid #c8d5e2;
border-radius: var(--radius-sm);
background: #fff;
padding: 8px 10px;
min-height: 38px;
color: #223246;
transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
input:focus,
select:focus,
textarea:focus {
outline: none;
border-color: #ffb259;
box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.18);
}
button {
--btn-bg-start: var(--accent);
--btn-bg-end: var(--accent-strong);
--btn-border: var(--accent);
--btn-shadow-soft: rgba(255, 140, 0, 0.2);
--btn-shadow-strong: rgba(255, 140, 0, 0.24);
border: 1px solid var(--btn-border);
border-radius: 10px;
background: linear-gradient(180deg, var(--btn-bg-start) 0%, var(--btn-bg-end) 100%);
color: #fff;
font-weight: 700;
padding: 8px 14px;
cursor: pointer;
transition: transform 0.15s ease, box-shadow 0.15s ease;
box-shadow: 0 3px 8px var(--btn-shadow-soft);
}
button:hover {
transform: translateY(-1px);
box-shadow: 0 6px 14px var(--btn-shadow-strong);
}
button:disabled {
opacity: 0.6;
cursor: not-allowed;
transform: none;
box-shadow: none;
}
.subpanel {
border: 1px solid var(--border-soft);
border-left: 3px solid var(--accent);
border-radius: 12px;
background: #fcfdff;
padding: 14px 15px;
margin-bottom: 12px;
min-width: 0;
max-width: 100%;
}
.subpanel.warning {
border-left-color: #e6a700;
background: #fff9e8;
}
.subpanel h4,
.subpanel h5 {
margin: 0 0 8px;
font-family: 'Sora', sans-serif;
color: #2a3b4d;
}
.section1-groups {
display: grid;
gap: 18px;
}
.section1-group {
margin: 0;
}
.section1-group.subpanel {
border-left: 1px solid var(--border-soft);
background: #fff;
}
.upload-dropzone {
border: 1px dashed #c5d5e5;
border-radius: 12px;
background: linear-gradient(180deg, #f9fcff 0%, #f4f9ff 100%);
padding: 11px 12px;
transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.upload-dropzone.is-dragover {
border-color: #3b7fb8;
background: linear-gradient(180deg, #f3f9ff 0%, #ebf4ff 100%);
box-shadow: 0 0 0 1px rgba(59, 127, 184, 0.12);
}
.upload-hidden-input {
display: none;
}
.upload-dropzone-main {
margin-bottom: 6px;
}
button.btn-upload-select {
--btn-bg-start: #4a90c8;
--btn-bg-end: #3978ab;
--btn-border: #346f9f;
--btn-shadow-soft: rgba(53, 113, 157, 0.2);
--btn-shadow-strong: rgba(53, 113, 157, 0.25);
}
.upload-dropzone-hint {
color: #4d647b;
font-size: 0.83rem;
}
.upload-dropzone-file {
margin-top: 4px;
color: #2f4358;
font-size: 0.84rem;
font-weight: 700;
word-break: break-word;
}
.coords-section-groups {
display: grid;
gap: 14px;
}
.coords-section-group {
margin: 0;
border-left: 1px solid var(--border-soft);
background: #fff;
}
.coords-section-alert {
border-left-color: #e5be8a;
background: #fffaf2;
}
.coords-result-group h5,
.coords-falhas-group h5,
.coords-correcoes-group h5 {
margin-bottom: 10px;
}
.coords-restart-row {
margin-top: 10px;
margin-bottom: 0;
}
.section1-empty-hint {
color: #5b7288;
font-size: 0.86rem;
}
.coords-choice-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.coords-choice-separator {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 32px;
padding: 3px 8px;
border-radius: 999px;
border: 1px solid #dbe5ef;
background: #f5f8fb;
color: #5b6f84;
font-size: 0.72rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.modelo-info-card {
margin-top: 10px;
border: 1px solid #d1deea;
border-radius: 12px;
background: linear-gradient(180deg, #fbfdff 0%, #f6faff 100%);
overflow: hidden;
}
.modelo-info-split {
display: grid;
grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.4fr);
}
.modelo-info-col {
min-width: 0;
padding: 12px 14px;
}
.modelo-info-col + .modelo-info-col {
border-left: 1px solid #dde7f1;
}
.modelo-info-col-vars {
background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}
.elaborador-badge {
padding: 10px 12px;
border-radius: 11px;
border: 1px solid #cddfed;
border-left: 1px solid #cddfed;
background: linear-gradient(180deg, #f7fbff 0%, #eef5fb 100%);
}
.elaborador-badge-title {
font-family: 'Sora', sans-serif;
font-size: 0.74rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: #547089;
}
.elaborador-badge-name {
margin-top: 2px;
font-weight: 800;
color: #23384f;
font-size: 1rem;
}
.elaborador-badge-meta {
margin-top: 2px;
color: #536b82;
font-size: 0.83rem;
}
.modelo-variaveis-box {
padding: 9px 11px;
border-radius: 11px;
border: 1px solid #d7e2ee;
background: linear-gradient(180deg, #fcfdff 0%, #f6faff 100%);
}
.variavel-badge-line {
display: grid;
grid-template-columns: 118px minmax(0, 1fr);
gap: 10px;
align-items: flex-start;
margin-top: 8px;
}
.variavel-badge-label {
min-width: 0;
padding-top: 3px;
color: #556c82;
font-size: 0.83rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.02em;
}
.variavel-chip-wrap {
display: flex;
flex-wrap: wrap;
gap: 6px;
min-width: 0;
}
.variavel-chip {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
border-radius: 8px;
border: 1px solid #dbe5f0;
background: #f3f7fb;
color: #34485e;
font-size: 0.81rem;
font-weight: 700;
max-width: 100%;
white-space: normal;
word-break: break-word;
}
.variavel-chip-y {
border-color: #b6d4f2;
background: #e8f2fc;
color: #1f4e7b;
}
.variavel-chip-inline {
justify-self: start;
width: fit-content;
max-width: 100%;
}
.variavel-chip-transform {
color: #6a7f94;
font-weight: 600;
}
.two-col {
display: grid;
grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
gap: 10px;
}
.pane {
min-width: 0;
}
.stack-block {
margin-top: 10px;
}
.stack-block h4 {
margin: 0 0 7px;
color: #3b4f64;
font-family: 'Sora', sans-serif;
font-size: 0.9rem;
}
.diagnostic-tables {
margin-top: 10px;
}
.diagnostic-tables h4 {
margin: 0 0 7px;
color: #3b4f64;
font-family: 'Sora', sans-serif;
font-size: 0.9rem;
}
.map-frame {
display: block;
width: 100%;
max-width: 100%;
min-height: 560px;
border: 1px solid #d3dfe9;
border-radius: 12px;
background: #fff;
}
.table-wrapper {
overflow: auto;
border: 1px solid #d8e2ec;
border-radius: 12px;
max-height: 360px;
max-width: 100%;
}
.table-wrapper table {
border-collapse: collapse;
min-width: 680px;
width: 100%;
}
.table-wrapper th,
.table-wrapper td {
padding: 7px 9px;
border-bottom: 1px solid #edf2f6;
text-align: left;
font-size: 0.88rem;
}
.table-wrapper th {
position: sticky;
top: 0;
background: #f2f7fb;
color: #354a5f;
font-family: 'Sora', sans-serif;
font-size: 0.76rem;
letter-spacing: 0.04em;
text-transform: uppercase;
z-index: 1;
}
.table-wrapper tr:hover td {
background: #fff8ef;
}
.table-hint {
border-top: 1px solid #edf2f6;
padding: 7px 9px;
color: #66798d;
font-size: 0.8rem;
}
.empty-box {
border: 1px dashed #bfd0e0;
border-radius: 12px;
background: #fbfdff;
color: #5b7288;
padding: 16px;
}
.checkbox-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 7px;
}
.checkbox-grid label,
.multi-group label {
display: flex;
align-items: center;
gap: 7px;
padding: 6px 8px;
border: 1px solid #e4ebf3;
border-radius: 10px;
background: #fbfdff;
}
.multi-group {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 10px;
margin: 10px 0;
}
.multi-group > div {
border: 1px solid #dfe8f1;
border-radius: 12px;
padding: 8px;
background: #fff;
}
.multi-group h4 {
margin: 0 0 8px;
color: #3d4e63;
font-family: 'Sora', sans-serif;
font-size: 0.88rem;
}
.compact-option-group {
margin: 14px 0 18px;
padding: 12px 13px;
border: 1px solid #dbe6f1;
border-radius: 12px;
background: #fbfdff;
}
.compact-option-group + .compact-option-group {
margin-top: 24px;
}
.compact-option-group h4 {
margin: 0 0 9px;
padding-bottom: 6px;
border-bottom: 1px solid #e5edf5;
color: #3a4f64;
font-family: 'Sora', sans-serif;
font-size: 0.84rem;
}
.compact-option-group-x {
border-left: 4px solid #2f80cf;
}
.compact-option-group-dicotomicas {
border-left: 4px solid #269065;
}
.compact-option-group-codigo {
border-left: 4px solid #8f6f42;
}
.compact-option-group-percentuais {
border-left: 4px solid #7c5ba5;
}
.checkbox-inline-wrap {
display: flex;
flex-wrap: wrap;
gap: 8px 10px;
}
.checkbox-inline-wrap-tools {
align-items: center;
margin-bottom: 6px;
}
.compact-checkbox {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 4px 7px;
border: 1px solid #dfe8f1;
border-radius: 8px;
background: #fbfdff;
font-size: 0.83rem;
font-weight: 600;
color: #3a4f64;
line-height: 1.15;
}
.compact-checkbox input[type='checkbox'] {
margin: 0;
}
.compact-checkbox-toggle-all {
background: #eef5ff;
border-color: #c6d8ee;
}
.compact-selection-count {
font-size: 0.79rem;
color: #58708a;
font-weight: 700;
}
.transform-grid,
.avaliacao-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 10px;
margin-bottom: 12px;
}
.transform-card,
.avaliacao-card {
border: 1px solid #dce7f0;
border-radius: 12px;
padding: 9px;
background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
display: flex;
flex-direction: column;
gap: 7px;
}
.transform-card span {
font-weight: 700;
color: #33495f;
}
.transform-suggestions-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 12px;
margin-top: 10px;
}
.transform-suggestion-card {
border: 1px solid #d7e2ee;
border-radius: 12px;
background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
padding: 10px;
display: flex;
flex-direction: column;
gap: 8px;
}
.transform-suggestion-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 8px;
margin-bottom: 16px;
}
.transform-suggestion-metrics {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 7px;
}
.transform-suggestion-rank {
color: var(--accent);
font-family: 'Sora', sans-serif;
font-weight: 800;
}
.transform-suggestion-r2 {
border-radius: 8px;
border: 1px solid #cae0f3;
background: #eaf4fe;
color: #1e4d78;
font-family: 'JetBrains Mono', monospace;
font-size: 0.78rem;
padding: 3px 7px;
font-weight: 700;
}
.transform-suggestion-line {
color: #3f5368;
font-size: 0.85rem;
}
.transform-suggestion-list {
display: grid;
gap: 8px;
margin-top: 2px;
}
.manual-transform-toggle {
margin: 8px 0 10px;
}
.btn-manual-toggle {
min-width: 320px;
}
.btn-manual-toggle.active {
--btn-bg-start: #6b7f93;
--btn-bg-end: #586b7d;
--btn-border: #4a5c6e;
--btn-shadow-soft: rgba(86, 105, 122, 0.18);
--btn-shadow-strong: rgba(86, 105, 122, 0.24);
}
.transform-suggestion-item {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto;
gap: 6px;
align-items: center;
border: 1px solid #e4ebf3;
border-radius: 8px;
padding: 5px 6px;
background: #f9fbfd;
}
.transform-suggestion-item.transform-suggestion-item-y {
border-color: #cfe1f4;
background: #edf5fe;
}
.transform-suggestion-col {
color: #2e4358;
font-weight: 700;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.transform-suggestion-fn {
color: #5d7389;
font-size: 0.81rem;
font-family: 'JetBrains Mono', monospace;
}
.transform-suggestion-item-note {
color: #4f6880;
font-size: 0.74rem;
font-weight: 700;
white-space: nowrap;
}
.transform-suggestion-foot {
padding-top: 3px;
border-top: 1px solid #e9eef4;
}
.grau-badge {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
padding: 2px 8px;
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.02em;
border: 1px solid transparent;
white-space: nowrap;
}
.grau-badge.grau-3 {
background: #e8f7ee;
border-color: #8fd4a5;
color: #1f7a42;
}
.grau-badge.grau-2 {
background: #eaf2fe;
border-color: #a9c8f0;
color: #1f5e9b;
}
.grau-badge.grau-1 {
background: #fff3e6;
border-color: #f6c184;
color: #ab5e00;
}
.grau-badge.grau-0 {
background: #fbeeee;
border-color: #efb7b3;
color: #9d2f2f;
}
.transform-suggestion-card button {
width: 100%;
justify-content: center;
}
.transform-suggestion-card button.btn-adopt-model {
--btn-bg-start: #6b7f93;
--btn-bg-end: #586b7d;
--btn-border: #4a5c6e;
--btn-shadow-soft: rgba(86, 105, 122, 0.19);
--btn-shadow-strong: rgba(86, 105, 122, 0.25);
font-size: 0.84rem;
padding: 7px 12px;
}
.plot-grid-2 {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 12px;
}
.plot-grid-2-fixed {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.plot-card {
border: 1px solid #dbe5ef;
border-radius: 12px;
background: #fff;
min-height: 420px;
padding: 8px;
}
.plot-card h4 {
margin: 4px 4px 8px;
color: #34495d;
font-family: 'Sora', sans-serif;
font-size: 0.9rem;
}
.plot-card.plot-stretch {
min-height: 430px;
}
.plot-full-width {
margin-top: 12px;
}
.plot-card.plot-correlation-card {
min-height: 640px;
}
.filtros-stack {
display: grid;
gap: 10px;
}
.filtro-row-react {
display: grid;
grid-template-columns: minmax(170px, 1.6fr) 120px minmax(120px, 0.9fr) auto;
gap: 8px;
align-items: center;
border: 1px solid #e2e9f1;
border-radius: 10px;
background: #fafbfd;
padding: 8px 10px;
transition: border-color 0.18s ease;
}
.filtro-row-react:hover {
border-color: #ffba66;
}
.outlier-subheader {
display: flex;
align-items: center;
gap: 8px;
font-weight: 700;
font-size: 0.78rem;
color: #42576c;
text-transform: uppercase;
letter-spacing: 0.05em;
padding-bottom: 7px;
margin: 10px 0 8px;
border-bottom: 2px solid #f3c28b;
}
.outlier-subheader:first-child {
margin-top: 0;
}
.outlier-group-card {
border: 1px solid #dbe6f1;
border-radius: 12px;
background: #fbfdff;
padding: 12px 12px 10px;
}
.outlier-group-card-secondary {
border-color: #d3e0ec;
background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}
.outlier-dica {
color: #657a90;
font-size: 0.84rem;
margin-bottom: 10px;
}
.outliers-html-box {
margin-bottom: 10px;
}
.outlier-actions-row {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin: 12px 0;
}
.outlier-divider {
display: flex;
align-items: center;
gap: 8px;
margin: 14px 0;
color: #8ea1b5;
}
.outlier-divider::before,
.outlier-divider::after {
content: '';
flex: 1;
border-bottom: 1px dashed #d7e2ed;
}
.outlier-divider .arrow {
color: #4f657b;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.04em;
font-size: 0.74rem;
border: 1px solid #cfdae5;
border-radius: 999px;
background: #f3f7fb;
padding: 3px 10px;
}
.outlier-inputs-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.outlier-input-card {
border: 1px solid #dce7f2;
border-radius: 11px;
background: #fcfdff;
padding: 9px 10px;
}
.outlier-input-card label {
display: block;
margin-bottom: 6px;
}
.outlier-input-card input {
width: 100%;
}
.btn-reiniciar-iteracao {
--btn-bg-start: #ff8c00;
--btn-bg-end: #e67e00;
--btn-border: #cc6f00;
--btn-shadow-soft: rgba(255, 140, 0, 0.2);
--btn-shadow-strong: rgba(255, 140, 0, 0.28);
}
.row > button:nth-of-type(2),
.row-wrap > button:nth-of-type(2),
.outlier-actions-row > button:nth-of-type(2),
.coords-choice-row > button:nth-of-type(2) {
--btn-bg-start: #2f80cf;
--btn-bg-end: #2368af;
--btn-border: #1f5f9f;
--btn-shadow-soft: rgba(47, 128, 207, 0.2);
--btn-shadow-strong: rgba(47, 128, 207, 0.27);
}
.row > button:nth-of-type(3),
.row-wrap > button:nth-of-type(3),
.outlier-actions-row > button:nth-of-type(3),
.coords-choice-row > button:nth-of-type(3) {
--btn-bg-start: #269065;
--btn-bg-end: #1d7452;
--btn-border: #175d41;
--btn-shadow-soft: rgba(38, 144, 101, 0.2);
--btn-shadow-strong: rgba(38, 144, 101, 0.27);
}
.row > button:nth-of-type(4),
.row-wrap > button:nth-of-type(4),
.outlier-actions-row > button:nth-of-type(4),
.coords-choice-row > button:nth-of-type(4),
.row > button:nth-of-type(n+5),
.row-wrap > button:nth-of-type(n+5),
.outlier-actions-row > button:nth-of-type(n+5),
.coords-choice-row > button:nth-of-type(n+5) {
--btn-bg-start: #6f7f90;
--btn-bg-end: #576574;
--btn-border: #4b5a69;
--btn-shadow-soft: rgba(94, 108, 122, 0.2);
--btn-shadow-strong: rgba(94, 108, 122, 0.27);
}
.geo-correcoes-actions button.btn-geo-fill,
.row button.btn-geo-fill {
--btn-bg-start: #2f80cf;
--btn-bg-end: #2368af;
--btn-border: #1f5f9f;
--btn-shadow-soft: rgba(47, 128, 207, 0.2);
--btn-shadow-strong: rgba(47, 128, 207, 0.27);
}
.geo-correcoes-actions button.btn-geo-clear,
.row button.btn-geo-clear,
.filtro-row-react button.btn-filtro-remove {
--btn-bg-start: #6f7f90;
--btn-bg-end: #576574;
--btn-border: #4b5a69;
--btn-shadow-soft: rgba(94, 108, 122, 0.2);
--btn-shadow-strong: rgba(94, 108, 122, 0.27);
}
.row button.btn-geo-apply {
--btn-bg-start: #ff8c00;
--btn-bg-end: #e67900;
--btn-border: #cf6f00;
--btn-shadow-soft: rgba(255, 140, 0, 0.2);
--btn-shadow-strong: rgba(255, 140, 0, 0.28);
}
.outlier-actions-row button.btn-filtro-add {
--btn-bg-start: #2f80cf;
--btn-bg-end: #2368af;
--btn-border: #1f5f9f;
--btn-shadow-soft: rgba(47, 128, 207, 0.2);
--btn-shadow-strong: rgba(47, 128, 207, 0.27);
}
.resumo-outliers-box {
color: #4d647b;
font-weight: 700;
padding: 8px 10px;
border-radius: 10px;
background: #f4f8fb;
border: 1px solid #dbe6f0;
font-family: 'JetBrains Mono', monospace;
font-size: 0.8rem;
margin-top: 8px;
}
.section-content-toggle {
border: 1px solid #dce7f1;
border-radius: 12px;
background: #fbfdff;
padding: 10px;
}
.section-content-toggle > summary {
list-style: none;
cursor: pointer;
user-select: none;
display: inline-flex;
align-items: center;
gap: 7px;
font-family: 'Sora', sans-serif;
color: #30485f;
font-size: 0.86rem;
}
.section-content-toggle > summary::-webkit-details-marker {
display: none;
}
.section-content-toggle > summary::before {
content: '▸';
color: #5f7489;
font-size: 0.85rem;
transition: transform 0.15s ease;
}
.section-content-toggle[open] > summary::before {
transform: rotate(90deg);
}
.section-content-toggle[open] > summary {
margin-bottom: 10px;
}
.transformacoes-aplicadas-wrap {
margin-top: 12px;
}
.transformacoes-aplicadas-badge-card {
margin-top: 0;
}
.btn-fit-model {
margin-top: 14px;
margin-bottom: 16px;
}
.transformacao-origem-info {
margin-top: 6px;
margin-bottom: 4px;
color: #4e6378;
font-size: 0.83rem;
font-weight: 600;
}
.geo-correcoes {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 10px;
margin: 10px 0;
}
.geo-correcoes-actions {
gap: 10px;
margin-bottom: 10px;
}
.geo-correcoes-apply-row {
margin-top: 4px;
margin-bottom: 0;
}
.geo-correcao-item {
display: grid;
gap: 6px;
border: 1px solid #dce7f2;
border-radius: 10px;
background: #fbfdff;
padding: 8px 9px;
}
.geo-correcao-linha {
font-weight: 800;
font-size: 0.82rem;
color: #46617a;
}
.geo-correcao-sugestoes {
color: #607990;
font-size: 0.78rem;
line-height: 1.3;
}
.geo-auto-toggle {
display: inline-flex;
align-items: center;
gap: 7px;
border: 1px solid #d9e5f0;
border-radius: 9px;
background: #f7fbff;
padding: 7px 10px;
min-height: 38px;
}
.geo-auto-toggle input[type='checkbox'] {
margin: 0;
width: 16px;
height: 16px;
accent-color: #1f7a42;
}
.geo-auto-toggle span {
font-weight: 700;
color: #38516a;
font-size: 0.84rem;
}
.status-line {
color: #516a80;
font-weight: 700;
padding: 8px 10px;
border-radius: 10px;
background: #f4f8fb;
border: 1px solid #dbe6f0;
}
.error-line {
color: var(--danger);
font-weight: 700;
background: #fef0ef;
border: 1px solid #f7c0bc;
border-radius: 11px;
padding: 9px 11px;
}
.inline-error {
margin-top: 8px;
}
.loading-overlay {
position: fixed;
inset: 0;
z-index: 2500;
display: flex;
align-items: center;
justify-content: center;
background: rgba(244, 248, 252, 0.62);
backdrop-filter: blur(2px);
}
.loading-overlay-card {
min-width: 220px;
padding: 16px 20px;
border-radius: 14px;
border: 1px solid #d6e2ee;
background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
box-shadow: 0 14px 30px rgba(18, 38, 58, 0.14);
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
.loading-spinner {
width: 54px;
height: 54px;
border-radius: 50%;
border: 4px solid #d9e6f2;
border-top-color: var(--accent);
border-right-color: var(--accent-strong);
animation: spinLoader 0.85s linear infinite;
}
.loading-overlay-label {
font-family: 'Sora', sans-serif;
font-size: 0.9rem;
color: #3c5369;
letter-spacing: 0.01em;
}
.loading-overlay-elapsed {
font-family: 'JetBrains Mono', monospace;
font-size: 0.78rem;
color: #5a7187;
border: 1px solid #dbe6f1;
border-radius: 999px;
padding: 3px 9px;
background: #f8fbff;
}
.btn-gerar-mapa {
--btn-bg-start: #269065;
--btn-bg-end: #1d7452;
--btn-border: #175d41;
--btn-shadow-soft: rgba(38, 144, 101, 0.2);
--btn-shadow-strong: rgba(38, 144, 101, 0.28);
}
/* HTML gerado pelo backend (formatadores) */
.dai-card,
.diagnosticos-container,
.scrollable-container {
border: 1px solid #dce7f0;
border-radius: 12px;
background: #fff;
padding: 12px;
margin: 8px 0;
}
.section-title-orange,
.section-title-orange-solid {
margin: 14px 0 14px;
padding: 8px 11px;
border-left: 4px solid var(--accent);
background: var(--accent-soft);
border-radius: 0 8px 8px 0;
font-family: 'Sora', sans-serif;
font-size: 0.83rem;
text-transform: uppercase;
letter-spacing: 0.04em;
color: #3a4b60;
}
.field-row {
display: flex;
justify-content: space-between;
gap: 8px;
border-bottom: 1px solid #edf2f6;
padding: 7px 2px;
}
.field-row-label {
color: #586e84;
}
.field-row-value,
.field-row-value-italic {
color: #24384d;
font-family: 'JetBrains Mono', monospace;
font-size: 0.82rem;
}
.field-row-value-italic {
font-style: italic;
}
.interpretation-label {
margin-top: 8px;
font-weight: 700;
color: #3f5468;
}
.interpretation-item {
color: #5f758b;
padding: 2px 0 2px 8px;
}
.equation-box {
margin-top: 8px;
padding: 10px;
border: 1px solid #f0d7b7;
border-left: 4px solid var(--accent);
border-radius: 8px;
background: #fffaf2;
font-family: 'JetBrains Mono', monospace;
font-size: 0.78rem;
word-break: break-word;
}
.busca-container,
.dai-cards-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 10px;
margin-top: 8px;
}
.modelo-card,
.dai-card-light {
border: 1px solid #dbe7f1;
border-radius: 12px;
background: #fff;
padding: 10px;
}
.modelo-rank {
color: var(--accent);
font-family: 'Sora', sans-serif;
font-weight: 800;
}
.modelo-r2 {
color: #1f7a42;
font-family: 'JetBrains Mono', monospace;
}
.modelo-transf {
color: #526a80;
}
.stat-item,
.teste-item {
border: 1px solid #dfe8f1;
border-radius: 10px;
background: #fafcff;
margin: 6px 0;
}
.stat-label,
.teste-nome {
color: #536c82;
}
.stat-value,
.teste-valor {
color: #1f3348;
font-family: 'JetBrains Mono', monospace;
}
.micro-summary-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
padding: 10px 0;
}
.micro-summary-card {
margin: 0;
padding: 12px 10px;
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
}
.micro-summary-wide {
grid-column: span 2;
}
.micro-summary-value {
font-size: 1.18rem;
font-weight: 800;
}
.micro-summary-status {
font-size: 0.9rem;
font-weight: 700;
text-align: center;
}
.micro-grid {
display: flex;
flex-wrap: wrap;
gap: 16px;
margin-top: 12px;
}
.micro-group-title {
margin-top: 22px;
margin-bottom: 18px;
}
.micro-card {
margin: 0;
padding: 10px 11px;
flex: 0 1 300px;
max-width: 360px;
}
.micro-card.micro-ok {
border-left: 4px solid #7fcf98;
}
.micro-card.micro-warn {
border-left: 4px solid #f0b45f;
}
.micro-card-head {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 6px;
margin-bottom: 13px;
}
.micro-title {
font-weight: 800;
max-width: 100%;
word-break: break-word;
}
.micro-status {
font-size: 1.05rem;
line-height: 1;
}
.micro-msg-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 4px 12px;
}
.micro-grid-codigo {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 12px;
}
.micro-card-codigo {
width: 100%;
max-width: none;
flex: none;
}
.micro-msg-grid-codigo {
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 6px 14px;
}
.micro-msg {
color: #495f76;
font-size: 0.82rem;
line-height: 1.35;
word-break: break-word;
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-thumb {
background: #c7d4e2;
border-radius: 999px;
}
::-webkit-scrollbar-track {
background: #eef3f8;
}
@keyframes sectionIn {
from {
opacity: 0;
transform: translateY(8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes spinLoader {
to {
transform: rotate(360deg);
}
}
@media (max-width: 1150px) {
.tabs {
grid-template-columns: 1fr;
}
.app-header {
grid-template-columns: 1fr;
}
.brand-mark {
max-width: 120px;
}
.two-col {
grid-template-columns: 1fr;
}
.modelo-info-split {
grid-template-columns: 1fr;
}
.modelo-info-col + .modelo-info-col {
border-left: none;
border-top: 1px solid #dde7f1;
}
.filtro-row-react {
grid-template-columns: 1.2fr 110px minmax(110px, 0.8fr) auto;
}
.micro-msg-grid-codigo {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 760px) {
.app-shell {
width: 97vw;
margin-top: 10px;
}
.section-head {
align-items: flex-start;
flex-wrap: wrap;
}
.section-head-aside {
width: 100%;
margin-left: 0;
}
.map-frame {
min-height: 430px;
}
.plot-grid-2 {
grid-template-columns: 1fr;
}
.plot-grid-2-fixed {
grid-template-columns: 1fr;
}
.plot-card {
min-height: 340px;
}
.plot-card.plot-stretch {
min-height: 360px;
}
.plot-card.plot-correlation-card {
min-height: 460px;
}
.modelo-info-split,
.outlier-inputs-grid,
.filtro-row-react {
grid-template-columns: 1fr;
}
.variavel-badge-line {
grid-template-columns: 1fr;
gap: 5px;
}
.variavel-badge-label {
padding-top: 0;
}
.micro-summary-grid {
grid-template-columns: 1fr;
}
.micro-summary-wide {
grid-column: span 1;
}
.micro-grid {
grid-template-columns: 1fr;
}
.micro-msg-grid {
grid-template-columns: 1fr;
}
.micro-msg-grid-codigo {
grid-template-columns: 1fr;
}
}