sipracd / frontend /src /styles /app.css
Guilherme Silberfarb Costa
Deploy current SIPRAC app snapshot
7fabf33
:root {
font-family: "Aptos", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
color: #1f2d3a;
background:
radial-gradient(circle at top left, rgba(210, 231, 247, 0.85), transparent 30%),
radial-gradient(circle at top right, rgba(239, 227, 209, 0.35), transparent 24%),
linear-gradient(180deg, #eef3f5 0%, #f8fafb 48%, #eef2f4 100%);
--bg: #f4f7f8;
--panel: rgba(255, 255, 255, 0.96);
--panel-strong: #ffffff;
--panel-soft: #f8fbfc;
--panel-accent: #eef5f7;
--border: #d7e0e6;
--border-strong: #c4d2db;
--text: #1f2d3a;
--muted: #687a8b;
--title: #10202d;
--accent: #236e83;
--accent-strong: #184f61;
--accent-soft: #e7f1f3;
--warning-bg: #fff3e3;
--warning-text: #9a5600;
--info-bg: #e8f4fb;
--info-text: #12638f;
--ok-bg: #e9f6ef;
--ok-text: #1f6a45;
--shadow: 0 24px 60px rgba(28, 52, 70, 0.08);
--shadow-soft: 0 14px 36px rgba(28, 52, 70, 0.06);
--radius-lg: 24px;
--radius-md: 18px;
--radius-sm: 14px;
}
* {
box-sizing: border-box;
}
html,
body,
#root {
min-height: 100%;
}
body {
margin: 0;
background: var(--bg);
color: var(--text);
}
a {
color: inherit;
text-decoration: none;
}
button,
input,
select,
textarea {
font: inherit;
}
button {
border: 0;
}
.app-shell {
min-height: 100vh;
display: block;
}
.app-header {
position: sticky;
top: 0;
z-index: 20;
padding: 0 24px;
background: rgba(244, 247, 248, 0.92);
border-bottom: 1px solid rgba(199, 212, 221, 0.72);
backdrop-filter: blur(6px);
transition: transform 0.24s ease, opacity 0.24s ease;
will-change: transform;
}
.app-shell-header-collapsed .app-header {
transform: translateY(calc(-100% - 8px));
opacity: 0;
pointer-events: none;
}
.app-header-inner {
width: min(1600px, 100%);
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
padding: 7px 0;
}
.sidebar-brand {
display: flex;
align-items: baseline;
gap: 10px;
min-width: 0;
}
.sidebar h1,
.topbar h2,
.section-header h3,
.timeline-card h4,
.info-card h4,
.stat-card strong,
.form-section h4,
.process-main h4,
.evaluator-card-head h4 {
margin: 0;
color: var(--title);
}
.sidebar h1 {
font-size: 1.05rem;
line-height: 1;
}
.sidebar-copy,
.panel-title,
.cell-subtitle,
.feedback,
.timeline-card p,
.info-card p,
th,
td,
dt,
dd,
label,
.plain-note {
color: var(--muted);
}
.sidebar-copy {
margin: 0;
line-height: 1.3;
font-size: 0.84rem;
white-space: nowrap;
}
.nav {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 6px;
}
.nav-link {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 32px;
padding: 0 11px;
border: 1px solid transparent;
border-radius: 12px;
color: var(--text);
font-size: 0.9rem;
transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease, border-color 0.18s ease;
}
.nav-link:hover,
.nav-link.active {
background: var(--accent-soft);
color: var(--accent-strong);
border-color: rgba(171, 204, 214, 0.7);
font-weight: 700;
transform: translateY(-1px);
}
.main-content {
width: min(1600px, calc(100vw - 48px));
margin: 0 auto;
padding: 18px 0 48px;
}
.topbar {
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
margin-bottom: 30px;
padding: 6px 4px 0;
}
.topbar h2 {
flex: 1 1 auto;
font-size: clamp(1.7rem, 2vw, 2.1rem);
line-height: 1.2;
letter-spacing: -0.02em;
}
.topbar-action {
flex: 0 0 auto;
display: flex;
align-items: center;
}
.page-grid {
display: grid;
gap: 24px;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
gap: 18px;
}
.section-card,
.stat-card,
.timeline-card,
.info-card {
background: var(--panel);
border: 1px solid rgba(216, 227, 235, 0.86);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-soft);
}
.stat-card,
.section-card,
.timeline-card,
.info-card {
padding: 26px;
}
.section-card {
display: grid;
gap: 24px;
align-content: start;
}
.stat-card {
background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 250, 251, 0.96) 100%);
}
.stat-card strong {
display: block;
margin: 8px 0 6px;
font-size: 2rem;
}
.panel-title {
font-size: 0.86rem;
font-weight: 700;
letter-spacing: 0.02em;
}
.eyebrow {
margin: 0 0 8px;
color: var(--accent-strong);
font-size: 0.76rem;
letter-spacing: 0.08em;
text-transform: uppercase;
font-weight: 700;
}
.eyebrow-button {
display: block;
margin: 0 0 8px;
padding: 0;
background: transparent;
color: var(--accent-strong);
font-size: 0.76rem;
letter-spacing: 0.08em;
text-transform: uppercase;
font-weight: 700;
text-align: left;
cursor: pointer;
border-bottom: 1px dashed transparent;
transition: color 0.16s ease, border-color 0.16s ease;
}
.eyebrow-button:hover {
color: var(--accent);
border-color: rgba(35, 110, 131, 0.35);
}
.section-header,
.timeline-head,
.detail-header,
.header-actions,
.timeline-entry-head {
display: flex;
justify-content: space-between;
align-items: start;
gap: 14px;
}
.section-card > .section-header {
padding-bottom: 18px;
border-bottom: 1px solid rgba(216, 227, 235, 0.72);
}
.section-header h3 {
font-size: 1.28rem;
letter-spacing: -0.01em;
}
.detail-header {
margin-bottom: 22px;
}
.detail-header h3 {
margin: 0 0 8px;
color: var(--title);
}
.section-title-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 14px;
margin-bottom: 20px;
}
.section-title-row h4 {
margin: 0;
}
.detail-header p {
margin: 0;
}
.hero-summary-list {
margin-top: 0 !important;
}
.detail-hero {
padding: 28px 30px;
border-radius: var(--radius-md);
border: 1px solid rgba(210, 223, 230, 0.92);
background:
radial-gradient(circle at top right, rgba(255, 234, 208, 0.42), transparent 26%),
linear-gradient(135deg, rgba(231, 243, 247, 0.98) 0%, rgba(255, 255, 255, 0.99) 72%);
}
.detail-hero h3 {
font-size: 1.8rem;
line-height: 1.1;
margin-bottom: 14px;
}
.hero-title-button {
display: block;
margin: 0 0 14px;
padding: 0;
background: transparent;
color: var(--title);
font-size: 1.8rem;
font-weight: 800;
line-height: 1.1;
text-align: left;
cursor: pointer;
border-bottom: 1px dashed transparent;
transition: color 0.16s ease, border-color 0.16s ease;
}
.hero-title-button:hover {
color: var(--accent-strong);
border-color: rgba(35, 110, 131, 0.35);
}
.detail-hero-form {
margin-bottom: 6px;
}
.hero-heading {
display: grid;
gap: 4px;
}
.kanban-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 16px;
}
.timeline-card,
.process-row,
.evaluator-card,
.timeline-entry,
.subform-block {
transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.timeline-card:hover,
.process-row:hover,
.evaluator-card:hover {
transform: translateY(-1px);
box-shadow: var(--shadow);
}
.timeline-card dl,
.info-card dl {
display: grid;
gap: 12px;
margin: 18px 0 0;
}
dl div {
display: grid;
gap: 4px;
}
dt {
font-size: 0.84rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--accent-strong);
}
dd {
margin: 0;
color: var(--text);
font-size: 1rem;
line-height: 1.55;
}
.table-wrap {
overflow-x: auto;
border-radius: var(--radius-md);
border: 1px solid rgba(216, 227, 235, 0.78);
background: rgba(255, 255, 255, 0.84);
}
.property-table-wrap {
overflow-x: visible;
overflow-y: visible;
max-height: none;
border-radius: 0;
}
.property-table-note {
margin: 0;
padding: 12px 14px 0;
}
table {
width: 100%;
border-collapse: collapse;
}
th,
td {
padding: 15px 16px;
border-bottom: 1px solid rgba(216, 227, 235, 0.72);
text-align: left;
vertical-align: top;
line-height: 1.55;
}
th {
font-weight: 700;
color: var(--title);
background: rgba(237, 245, 251, 0.9);
}
tbody tr:last-child td {
border-bottom: 0;
}
.filters,
.form-grid {
display: grid;
gap: 16px;
}
.filters {
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
margin-bottom: 22px;
}
.filters label,
.form-grid label,
.timeline-form label {
display: grid;
gap: 7px;
font-weight: 700;
color: var(--title);
}
.form-inline-note {
align-self: end;
margin: 0;
padding-bottom: 2px;
line-height: 1.55;
}
.inline-note-card {
display: grid;
gap: 6px;
align-content: center;
padding: 12px 14px;
border: 1px dashed rgba(171, 204, 214, 0.9);
border-radius: 14px;
background: rgba(244, 249, 251, 0.72);
}
.inline-note-card strong {
color: var(--title);
}
.scope-status-chip-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.scope-status-chip {
display: inline-flex;
align-items: center;
min-height: 48px;
padding: 10px 14px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 999px;
background: rgba(248, 251, 252, 0.94);
color: var(--title);
text-align: left;
cursor: pointer;
transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease;
}
.scope-status-chip:hover {
transform: translateY(-1px);
border-color: rgba(137, 175, 188, 0.95);
background: #ffffff;
}
.scope-status-chip:disabled {
cursor: default;
opacity: 0.72;
transform: none;
}
.scope-status-chip:disabled:hover {
transform: none;
border-color: rgba(216, 227, 235, 0.82);
background: rgba(248, 251, 252, 0.94);
}
.scope-status-chip-active {
border-color: rgba(35, 110, 131, 0.35);
background: rgba(231, 243, 246, 0.96);
}
.scope-status-chip span {
display: grid;
gap: 3px;
}
.scope-status-chip small {
color: var(--muted);
font-size: 0.8rem;
font-weight: 600;
}
.section-inline-note {
margin: 0 0 12px;
}
input,
select,
textarea {
width: 100%;
background: rgba(255, 255, 255, 0.98);
color: var(--text);
border: 1px solid var(--border);
border-radius: 14px;
padding: 12px 14px;
transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}
select.multi-select {
min-height: 132px;
padding-block: 8px;
}
textarea {
resize: vertical;
line-height: 1.6;
}
input:focus,
select:focus,
textarea:focus {
outline: none;
border-color: #8fb9c6;
box-shadow: 0 0 0 4px rgba(35, 110, 131, 0.12);
background: #ffffff;
}
.status-badge {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 7px 11px;
border-radius: 999px;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.01em;
}
.status-sem_atribuicao,
.status-pendente_revisao,
.status-em_ajuste,
.status-pendente {
background: var(--warning-bg);
color: var(--warning-text);
}
.status-com_avaliador {
background: #eef2f5;
color: #5f6f7d;
}
.status-revisado,
.status-ativa,
.status-planejada {
background: var(--info-bg);
color: var(--info-text);
}
.status-pronto,
.status-enviado,
.status-concluido,
.status-concluida {
background: var(--ok-bg);
color: var(--ok-text);
}
.ghost-link,
.primary-button,
.secondary-button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 42px;
padding: 0 15px;
border-radius: 14px;
cursor: pointer;
transition: transform 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
.ghost-link,
.secondary-button {
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.92);
color: var(--text);
}
.primary-button {
border: 1px solid var(--accent);
background: linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);
color: #fff;
font-weight: 700;
}
.ghost-link:hover,
.secondary-button:hover,
.primary-button:hover {
transform: translateY(-1px);
}
.ghost-link:hover,
.secondary-button:hover {
background: #ffffff;
border-color: var(--border-strong);
}
.primary-button:hover {
background: linear-gradient(180deg, #1d6578 0%, #154f60 100%);
}
.ghost-link:disabled,
.primary-button:disabled,
.secondary-button:disabled {
cursor: default;
opacity: 0.62;
transform: none;
}
.ghost-link:disabled:hover,
.primary-button:disabled:hover,
.secondary-button:disabled:hover {
transform: none;
}
.process-shortcut-button {
box-shadow: 0 10px 24px rgba(24, 79, 97, 0.18);
}
.stat-strip {
display: flex;
gap: 18px;
flex-wrap: wrap;
margin-bottom: 16px;
color: var(--muted);
}
.detail-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 22px;
align-items: start;
}
.detail-grid-stacked {
grid-template-columns: 1fr;
gap: 16px;
}
.stack-row {
display: grid;
gap: 5px;
}
.form-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 22px;
}
.wide {
grid-column: 1 / -1;
}
.form-section {
display: grid;
gap: 16px;
padding: 26px;
border: 1px solid rgba(216, 227, 235, 0.84);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 251, 252, 0.96) 100%);
position: relative;
overflow: hidden;
}
.form-section::before {
content: "";
position: absolute;
inset: 0 auto auto 0;
width: 100%;
height: 4px;
background: linear-gradient(90deg, rgba(35, 110, 131, 0.9) 0%, rgba(134, 191, 205, 0.5) 100%);
}
.form-section h4 {
margin: 0 0 10px;
font-size: 1.1rem;
line-height: 1.25;
font-weight: 800;
letter-spacing: 0.01em;
text-transform: none;
color: var(--title);
}
.form-columns {
display: grid;
gap: 14px;
}
.form-columns.two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.form-columns.one {
grid-template-columns: minmax(0, 1fr);
}
.form-columns.three {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.form-columns.four {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.form-actions {
display: flex;
justify-content: flex-start;
}
.subform-block {
display: grid;
gap: 12px;
padding: 16px;
border: 1px solid rgba(216, 227, 235, 0.8);
border-radius: var(--radius-sm);
background: rgba(255, 255, 255, 0.97);
}
.subform-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.subform-head strong {
color: var(--title);
font-size: 0.98rem;
}
.danger-button {
color: #a43833;
border-color: #edc8c4;
background: #fff6f5;
}
.danger-button:hover {
border-color: #dfaba5;
background: #fff1f0;
}
.feedback {
padding: 14px 16px;
border-radius: 14px;
background: #edf4fb;
border: 1px solid #d7e6f4;
}
.feedback.error {
background: #fff1f0;
color: #a43833;
border-color: #f2d1ce;
}
.loading-state {
display: grid;
justify-items: center;
gap: 14px;
padding: 42px 24px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(248, 251, 252, 0.98) 0%, rgba(243, 248, 250, 0.96) 100%);
}
.loading-spinner {
width: 34px;
height: 34px;
border-radius: 999px;
border: 3px solid rgba(35, 110, 131, 0.18);
border-top-color: var(--accent);
animation: spinner-rotate 0.8s linear infinite;
}
.loading-text {
color: var(--accent-strong);
font-weight: 700;
}
@keyframes spinner-rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.process-list,
.cronogramas-list,
.timeline-list,
.section-list {
display: grid;
gap: 16px;
}
.cronogramas-list {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.process-row {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.95fr);
gap: 22px;
padding: 22px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(249, 251, 252, 0.97) 100%);
}
.cronograma-row {
display: grid;
grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
gap: 22px;
padding: 22px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(249, 251, 252, 0.97) 100%);
transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.process-row:hover,
.cronograma-row:hover,
.evaluator-card:hover {
border-color: #b7cfde;
}
.cronograma-row:hover {
transform: translateY(-1px);
box-shadow: var(--shadow);
}
.process-main {
display: grid;
gap: 7px;
}
.process-heading {
display: grid;
gap: 10px;
}
.cronograma-main {
display: grid;
gap: 7px;
}
.process-main h4 {
margin: 0;
font-size: 1.08rem;
line-height: 1.35;
}
.cronograma-main h4 {
margin: 0;
font-size: 1.08rem;
line-height: 1.35;
color: var(--title);
}
.process-main p,
.timeline-entry p {
margin: 0;
}
.process-meta,
.cronograma-meta,
.evaluator-card-meta {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
gap: 14px 18px;
align-items: start;
}
.process-meta > div,
.cronograma-meta > div,
.evaluator-meta {
display: grid;
gap: 4px;
min-width: 110px;
}
.process-meta strong,
.cronograma-meta strong,
.evaluator-meta strong {
color: var(--title);
}
.gs-row {
cursor: default;
}
.gs-row .timeline-head {
justify-content: flex-start;
align-items: center;
gap: 8px;
}
.gs-row:hover {
transform: none;
box-shadow: var(--shadow-soft);
border-color: rgba(216, 227, 235, 0.82);
}
.gs-meta {
grid-template-columns: repeat(3, minmax(112px, 1fr));
}
.registration-row {
align-items: start;
}
.registration-row-simple {
grid-template-columns: minmax(0, 1fr);
}
.registration-inline-grid {
display: grid;
grid-template-columns: minmax(180px, 1fr) minmax(180px, 0.9fr) minmax(280px, 1.5fr) minmax(180px, 1fr);
gap: 18px;
width: 100%;
align-items: start;
}
.registration-inline-item {
display: grid;
gap: 6px;
min-width: 0;
}
.registration-inline-item .plain-note {
margin: 0;
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.registration-inline-item strong,
.registration-inline-text {
color: var(--title);
font-size: 1rem;
line-height: 1.4;
}
.registration-inline-primary {
font-size: 1.08rem !important;
}
.registration-inline-text {
display: block;
}
.registration-heading {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px 12px;
}
.registration-heading h4 {
margin: 0;
color: var(--title);
font-size: 1.08rem;
line-height: 1.35;
}
.registration-group-chip {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 6px 10px;
border-radius: 999px;
background: rgba(231, 241, 247, 0.92);
color: var(--accent-strong);
font-size: 0.78rem;
font-weight: 700;
}
.registration-process-note {
color: var(--muted);
}
.evaluator-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(210px, 240px));
gap: 16px;
}
.evaluator-card {
display: grid;
gap: 18px;
padding: 20px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 250, 251, 0.96) 100%);
align-content: start;
}
.evaluator-card-head {
display: grid;
justify-items: center;
text-align: center;
}
.evaluator-card-head h4 {
font-size: 1rem;
line-height: 1.3;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.evaluator-card-meta {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.evaluator-meta {
justify-items: center;
text-align: center;
min-width: 0;
}
.team-intro {
margin-top: -6px;
}
.team-intro p {
margin: 0;
}
.team-periods {
display: grid;
gap: 16px;
padding-top: 6px;
}
.team-periods-head {
display: grid;
gap: 6px;
}
.team-periods-head h4 {
margin: 0;
color: var(--title);
font-size: 1.02rem;
}
.team-periods-head p {
margin: 0;
}
.catalog-field {
display: grid;
gap: 10px;
}
.evaluator-card-head {
display: grid;
gap: 6px;
}
.evaluator-card-head h4 {
font-size: 1rem;
}
.timeline-entry {
display: grid;
gap: 10px;
padding: 18px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-sm);
background: rgba(248, 251, 252, 0.95);
}
.timeline-entry-automatic {
border-color: rgba(171, 204, 214, 0.9);
background: linear-gradient(180deg, rgba(238, 247, 249, 0.98) 0%, rgba(248, 251, 252, 0.96) 100%);
}
.timeline-outcome {
color: var(--accent-strong);
}
.timeline-form {
display: grid;
gap: 16px;
margin: 10px 0 20px;
padding: 22px;
border: 1px solid rgba(216, 227, 235, 0.84);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(244, 249, 250, 0.98) 0%, rgba(255, 255, 255, 0.97) 100%);
}
.info-section {
padding: 26px;
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 251, 252, 0.96) 100%);
position: relative;
overflow: hidden;
}
.info-section::before {
content: "";
position: absolute;
inset: 0 auto auto 0;
width: 100%;
height: 4px;
background: linear-gradient(90deg, rgba(35, 110, 131, 0.9) 0%, rgba(134, 191, 205, 0.5) 100%);
}
.info-section h4 {
margin-bottom: 16px;
padding-bottom: 0;
border-bottom: 0;
font-size: 1.1rem;
line-height: 1.25;
font-weight: 800;
letter-spacing: 0.01em;
text-transform: none;
color: var(--title);
}
.info-section-strong {
background:
linear-gradient(180deg, rgba(240, 248, 250, 0.98) 0%, rgba(255, 255, 255, 0.97) 100%);
border-color: rgba(195, 216, 223, 0.9);
}
.process-lock-banner {
border-color: rgba(233, 96, 87, 0.2);
background:
linear-gradient(180deg, rgba(255, 247, 246, 0.98) 0%, rgba(255, 255, 255, 0.97) 100%);
}
.process-lock-banner::before {
background: linear-gradient(90deg, rgba(180, 35, 24, 0.86) 0%, rgba(236, 137, 128, 0.42) 100%);
}
.process-lock-banner p {
margin: 0;
}
.keyword-strip {
padding: 18px 22px;
background: linear-gradient(180deg, rgba(243, 248, 250, 0.98) 0%, rgba(255, 255, 255, 0.97) 100%);
}
.keyword-editor {
gap: 12px;
}
.keyword-pills {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.keyword-pill {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 34px;
padding: 0 12px;
border: 1px solid rgba(189, 214, 222, 0.9);
border-radius: 999px;
background: rgba(255, 255, 255, 0.86);
color: var(--accent-strong);
font-size: 0.92rem;
font-weight: 700;
}
.keyword-pill-remove {
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
padding: 0;
border-radius: 999px;
background: rgba(35, 110, 131, 0.12);
color: var(--accent-strong);
cursor: pointer;
}
.keyword-pill-remove:disabled {
opacity: 0.45;
cursor: default;
}
.keyword-add-row {
display: flex;
gap: 10px;
align-items: center;
}
.keyword-add-button {
min-width: 108px;
}
.keyword-empty {
margin: 0;
}
.field-label {
font-size: 0.8rem;
font-weight: 800;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--accent-strong);
}
.field-label-alert,
.alert-text {
color: #b42318 !important;
}
.field-block {
display: grid;
gap: 8px;
}
.wide-field {
grid-column: 1 / -1;
}
.field-button,
.table-field-button {
width: 100%;
padding: 14px 16px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-sm);
background: linear-gradient(180deg, rgba(248, 251, 252, 0.99) 0%, rgba(243, 248, 250, 0.96) 100%);
color: var(--text);
text-align: left;
line-height: 1.55;
cursor: pointer;
transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}
.field-button:hover,
.table-field-button:hover {
transform: translateY(-1px);
border-color: #aec7d2;
box-shadow: 0 10px 24px rgba(28, 52, 70, 0.08);
}
.field-button:disabled,
.table-field-button:disabled {
cursor: default;
opacity: 0.82;
transform: none;
box-shadow: none;
}
.field-button:disabled:hover,
.table-field-button:disabled:hover {
transform: none;
border-color: rgba(216, 227, 235, 0.82);
box-shadow: none;
}
.field-button-alert {
border-color: rgba(233, 96, 87, 0.45);
background: linear-gradient(180deg, rgba(255, 244, 243, 0.98) 0%, rgba(255, 250, 250, 0.97) 100%);
color: #8f1f17;
}
.field-button-alert:hover {
border-color: rgba(219, 76, 67, 0.62);
box-shadow: 0 10px 24px rgba(180, 35, 24, 0.08);
}
.field-button-large {
min-height: 96px;
align-items: start;
white-space: pre-wrap;
}
.table-field-button {
padding: 10px 12px;
background: rgba(255, 255, 255, 0.92);
}
.property-table {
width: 100%;
table-layout: fixed;
}
.property-col-registration {
width: 12%;
}
.property-col-group {
width: 11%;
}
.property-col-address {
width: 20%;
}
.property-col-evaluator {
width: 11%;
}
.property-col-deadline {
width: 9%;
}
.property-col-model {
width: 17%;
}
.property-col-registration-details {
width: 18%;
}
.property-col-obs {
width: 6%;
}
.property-col-duplicate {
width: 7%;
}
.property-col-delete {
width: 7%;
}
.property-table th,
.property-table td {
padding: 9px 10px;
font-size: 0.86rem;
line-height: 1.35;
text-align: center;
}
.property-table th {
font-size: 0.72rem;
letter-spacing: 0.05em;
text-transform: uppercase;
background: rgba(235, 242, 246, 0.94);
text-align: center;
}
.property-table tbody tr:nth-child(even) td {
background: rgba(248, 251, 252, 0.66);
}
.property-table .table-field-button {
width: 100%;
padding: 4px 6px;
border: 1px solid transparent;
border-radius: 8px;
background: transparent;
font-size: 0.84rem;
line-height: 1.3;
box-shadow: none;
text-align: center;
}
.property-table .table-action-button {
min-height: 30px;
padding: 0 8px;
font-size: 0.8rem;
}
.property-cell-center {
text-align: center;
}
.property-cell-center .table-field-button,
.property-cell-center .secondary-button {
margin-inline: auto;
justify-content: center;
text-align: center;
}
.property-table .table-field-button:hover {
transform: none;
border-color: rgba(174, 199, 210, 0.7);
background: rgba(237, 245, 251, 0.86);
box-shadow: none;
}
.table-field-button.multiline {
display: grid;
gap: 4px;
}
.binary-presence-button {
min-width: 58px;
font-weight: 700;
color: #0d4f8c;
border-color: rgba(122, 174, 217, 0.48);
background: rgba(232, 244, 255, 0.84);
}
.binary-presence-button:hover {
border-color: rgba(85, 148, 205, 0.72) !important;
background: rgba(220, 237, 252, 0.95) !important;
box-shadow: none;
}
.address-button {
white-space: normal;
}
.address-inline {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 8px;
text-align: center;
}
.address-main {
color: var(--title);
}
.address-extra {
font-size: 0.84rem;
color: var(--muted);
}
.table-field-button strong {
color: var(--title);
}
.model-cell {
position: relative;
}
.model-button {
max-width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.model-hover-card {
position: absolute;
top: calc(100% + 8px);
left: 0;
z-index: 8;
width: min(360px, 42vw);
display: grid;
gap: 12px;
padding: 14px 16px;
border: 1px solid rgba(201, 215, 223, 0.92);
border-radius: 16px;
background: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(247, 250, 251, 0.98) 100%);
box-shadow: 0 22px 46px rgba(17, 28, 36, 0.16);
opacity: 0;
visibility: hidden;
transform: translateY(4px);
pointer-events: none;
transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
}
.model-cell:hover .model-hover-card,
.model-cell:focus-within .model-hover-card {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.model-hover-title {
color: var(--title);
font-size: 0.96rem;
font-weight: 800;
}
.model-hover-list {
display: grid;
gap: 12px;
}
.model-hover-list > div {
display: grid;
gap: 4px;
}
.model-hover-label {
color: var(--accent-strong);
font-size: 0.74rem;
font-weight: 800;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.model-hover-value {
color: var(--title);
font-size: 0.92rem;
line-height: 1.45;
}
.model-hover-text {
color: var(--text);
font-size: 0.9rem;
line-height: 1.5;
white-space: pre-wrap;
}
.icon-action-button {
width: 32px;
min-width: 32px;
padding: 0;
}
.trash-icon {
width: 15px;
height: 15px;
}
.property-draft-panel {
display: grid;
gap: 18px;
margin-bottom: 18px;
padding: 22px;
border: 1px solid rgba(216, 227, 235, 0.84);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(247, 250, 251, 0.98) 0%, rgba(255, 255, 255, 0.98) 100%);
}
.property-draft-head {
margin-bottom: 0;
}
.property-draft-head h5 {
margin: 0;
color: var(--title);
font-size: 1rem;
}
.property-draft-panel label {
gap: 9px;
}
.property-draft-panel .form-columns {
gap: 16px;
}
.property-draft-panel textarea,
.property-draft-panel input,
.property-draft-panel select {
margin-top: 0;
}
.property-draft-actions {
align-items: center;
gap: 12px;
padding-top: 6px;
}
.table-pagination-stack {
display: grid;
justify-items: center;
gap: 6px;
margin-top: 14px;
}
.table-pagination {
display: flex;
justify-content: center;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.table-pagination-button {
min-width: 36px;
width: 36px;
min-height: 36px;
padding: 0;
border-radius: 12px;
}
.table-pagination-button:disabled {
opacity: 0.45;
}
.pagination-icon {
width: 16px;
height: 16px;
}
.table-pagination .plain-note {
min-width: 120px;
text-align: center;
font-weight: 700;
color: var(--title);
}
.table-pagination-summary {
min-width: 0 !important;
font-size: 0.82rem;
color: var(--muted);
opacity: 0.96;
}
.activity-entry {
padding: 0;
border: 0;
background: transparent;
}
.activity-fields {
margin: 0 !important;
}
.timeline-entry-strong {
position: relative;
padding: 20px;
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(249, 252, 253, 0.99) 0%, rgba(243, 248, 250, 0.97) 100%);
border-color: rgba(206, 221, 229, 0.9);
box-shadow: 0 10px 24px rgba(28, 52, 70, 0.05);
}
.timeline-entry-strong::before {
content: "";
position: absolute;
inset: 0 auto 0 0;
width: 4px;
border-radius: 999px;
background: linear-gradient(180deg, rgba(35, 110, 131, 0.95) 0%, rgba(127, 188, 201, 0.65) 100%);
}
.timeline-meta {
font-size: 0.9rem;
}
.modal-backdrop {
position: fixed;
inset: 0;
display: grid;
place-items: start center;
padding: clamp(12px, 3vw, 24px);
background: rgba(17, 28, 36, 0.38);
backdrop-filter: blur(6px);
z-index: 50;
overflow-y: auto;
overscroll-behavior: contain;
}
.modal-card {
width: min(680px, 100%);
box-sizing: border-box;
display: grid;
gap: 20px;
padding: 24px;
border: 1px solid rgba(208, 220, 227, 0.92);
border-radius: 24px;
background: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(247, 250, 251, 0.98) 100%);
box-shadow: 0 30px 70px rgba(17, 28, 36, 0.18);
max-height: calc(100vh - 48px);
max-height: calc(100dvh - 24px);
overflow-y: auto;
overscroll-behavior: contain;
align-self: start;
margin: 0;
}
.modal-head,
.modal-actions {
display: flex;
justify-content: space-between;
align-items: start;
gap: 16px;
}
.modal-head h3 {
margin: 0 0 6px;
color: var(--title);
font-size: 1.25rem;
}
.modal-head p {
margin: 0;
}
.modal-form {
display: grid;
gap: 16px;
min-height: 0;
}
@media (max-width: 720px) {
.modal-card {
padding: 20px;
border-radius: 20px;
}
}
.long-note {
margin: 0;
padding: 18px 20px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-sm);
background: linear-gradient(180deg, rgba(248, 251, 252, 0.98) 0%, rgba(243, 248, 250, 0.96) 100%);
line-height: 1.65;
white-space: pre-wrap;
}
.empty-state {
margin: 0;
color: var(--muted);
line-height: 1.6;
padding: 6px 0 2px;
}
.cell-subtitle {
margin-top: 4px;
font-size: 0.92rem;
}
.timeline-entry-head strong {
font-size: 1rem;
color: var(--title);
}
.timeline-entry-title {
display: grid;
gap: 4px;
}
.timeline-entry-title-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.timeline-actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
}
.timeline-entry-head span {
color: var(--muted);
font-size: 0.9rem;
}
.timeline-entry-head .timeline-group-chip {
display: inline-flex;
align-items: center;
min-height: 28px;
padding: 0 10px;
border-radius: 999px;
background: rgba(227, 240, 245, 0.92);
color: var(--accent-strong);
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.work-unit-badge {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 28px;
padding: 0 11px;
border: 1px solid transparent;
border-radius: 999px;
font-size: 0.76rem;
font-weight: 800;
letter-spacing: 0.03em;
text-transform: uppercase;
}
.work-unit-eav {
border-color: #8fb2c0;
background: #deedf3;
color: #365c6d;
}
.work-unit-esjl {
border-color: #d7b59c;
background: #f5e9df;
color: #85583d;
}
.work-unit-epgv {
border-color: #a4bb9b;
background: #e4ecdf;
color: #466342;
}
.work-unit-dai {
border-color: #cfacb7;
background: #f1e2e6;
color: #7d4b58;
}
.table-action-button,
.timeline-action-button {
min-height: 38px;
padding: 0 12px;
white-space: nowrap;
}
.detail-data-list {
display: grid;
grid-template-columns: 1fr;
gap: 0;
margin-top: 0 !important;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-sm);
overflow: hidden;
background: linear-gradient(180deg, rgba(248, 251, 252, 0.98) 0%, rgba(244, 249, 250, 0.96) 100%);
}
.detail-data-list > div,
.detail-list-card {
border-bottom: 1px solid rgba(216, 227, 235, 0.82);
background: transparent;
}
.detail-data-list > div:last-child,
.detail-list-card:last-child {
border-bottom: 0;
}
.field-block-row {
display: grid;
grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
gap: 0;
align-items: stretch;
}
.detail-data-list .field-label {
display: flex;
align-items: center;
padding: 14px 16px;
border-right: 1px solid rgba(216, 227, 235, 0.82);
background: rgba(237, 245, 251, 0.82);
}
.detail-data-list .field-button {
min-height: 100%;
padding: 14px 16px;
border: 0;
border-radius: 0;
background: rgba(255, 255, 255, 0.9);
}
.detail-data-list .field-button:hover {
transform: none;
border-color: transparent;
box-shadow: inset 0 0 0 1px rgba(174, 199, 210, 0.85);
}
.detail-data-list .field-button-alert {
background: linear-gradient(180deg, rgba(255, 244, 243, 0.98) 0%, rgba(255, 250, 250, 0.97) 100%);
}
.detail-data-list .field-button-alert:hover {
box-shadow: inset 0 0 0 1px rgba(219, 76, 67, 0.42);
}
.detail-section-row {
padding-block: 22px;
}
.detail-data-list-inline {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 10px !important;
padding-top: 14px;
border: 0;
border-top: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 0;
overflow: visible;
background: transparent;
}
.detail-data-list-inline > div {
flex: 1 1 220px;
min-width: min(240px, 100%);
border-bottom: 0;
}
.detail-data-list-inline .wide-field {
flex-basis: 100%;
}
.detail-data-list-inline .field-block-row {
grid-template-columns: 1fr;
gap: 8px;
}
.detail-data-list-inline .field-label {
padding: 0;
border-right: 0;
background: transparent;
}
.detail-data-list-inline .field-button {
min-height: auto;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-sm);
background: linear-gradient(180deg, rgba(248, 251, 252, 0.99) 0%, rgba(243, 248, 250, 0.96) 100%);
}
.detail-data-list-inline .field-button:hover {
transform: translateY(-1px);
border-color: #aec7d2;
box-shadow: 0 10px 24px rgba(28, 52, 70, 0.08);
}
.detail-data-list-inline .field-button-alert {
background: linear-gradient(180deg, rgba(255, 244, 243, 0.98) 0%, rgba(255, 250, 250, 0.97) 100%);
}
.detail-data-list-inline .field-button-alert:hover {
box-shadow: 0 10px 24px rgba(219, 76, 67, 0.12);
}
.registration-detail-page {
gap: 20px;
}
.registration-detail-hero {
padding-bottom: 24px;
}
.registration-detail-header {
margin-bottom: 18px;
align-items: flex-start;
}
.registration-static-grid {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 10px;
padding-top: 14px;
border-top: 1px solid rgba(216, 227, 235, 0.82);
}
.registration-static-grid-compact {
margin-top: 0;
}
.registration-static-field {
flex: 1 1 220px;
display: grid;
gap: 8px;
min-width: min(240px, 100%);
}
.registration-static-field-wide {
flex-basis: 100%;
}
.registration-static-label {
color: var(--muted);
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.registration-static-label-alert {
color: var(--warning-text);
}
.registration-static-value {
min-height: 54px;
padding: 14px 16px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: var(--radius-sm);
background: rgba(249, 251, 252, 0.95);
color: var(--title);
line-height: 1.45;
white-space: pre-wrap;
}
.registration-static-field-alert .registration-static-value {
border-color: rgba(240, 208, 201, 0.92);
background: linear-gradient(180deg, rgba(255, 247, 246, 0.98) 0%, rgba(255, 251, 250, 0.97) 100%);
}
.registration-static-field-status .registration-static-value {
display: flex;
align-items: center;
}
.registration-static-field-status .status-badge {
margin: 0;
}
.registration-detail-section {
padding-block: 22px;
}
.registration-detail-section-title {
margin-bottom: 14px;
padding-bottom: 12px;
border-bottom: 1px solid rgba(216, 227, 235, 0.82);
}
.registration-detail-section > h4 {
margin-bottom: 0;
}
.field-button-prominent {
font-size: 1.04rem;
font-weight: 700;
}
.field-button-static {
cursor: default;
}
.field-button-static:hover {
transform: none;
border-color: transparent;
box-shadow: none;
}
.field-button-status {
display: flex;
align-items: center;
}
.detail-data-list .field-button-status .status-badge {
min-height: 32px;
padding: 0 10px;
font-size: 1.04rem;
font-weight: 700;
letter-spacing: 0;
text-transform: uppercase;
}
.detail-list-card strong {
color: var(--title);
font-size: 1rem;
}
.dashboard-page {
align-content: start;
gap: 30px;
}
.entry-dashboard-toolbar {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 14px 18px;
}
.entry-dashboard-subtabs {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: -6px;
}
.entry-dashboard-granularity {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px;
border: 1px solid rgba(203, 216, 225, 0.92);
border-radius: 999px;
background: rgba(247, 251, 252, 0.92);
}
.entry-dashboard-granularity-button {
min-height: 36px;
padding: 0 14px;
border: 1px solid transparent;
border-radius: 999px;
background: transparent;
color: var(--muted);
font-size: 0.84rem;
font-weight: 700;
cursor: pointer;
transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}
.entry-dashboard-granularity-button.active {
border-color: rgba(112, 160, 177, 0.92);
background: linear-gradient(180deg, rgba(235, 246, 249, 0.98) 0%, rgba(227, 239, 243, 0.96) 100%);
color: var(--accent-strong);
}
.entry-dashboard-granularity-button:disabled {
cursor: not-allowed;
opacity: 0.45;
}
.entry-dashboard-subtab {
min-height: 40px;
padding: 0 16px;
border: 1px solid rgba(203, 216, 225, 0.92);
border-radius: 999px;
background: rgba(247, 251, 252, 0.8);
color: var(--muted);
cursor: pointer;
transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease;
}
.entry-dashboard-subtab:hover {
transform: translateY(-1px);
border-color: rgba(159, 189, 202, 0.92);
color: var(--title);
}
.entry-dashboard-subtab.active {
transform: translateY(-1px);
border-color: rgba(112, 160, 177, 0.95);
background: linear-gradient(180deg, rgba(235, 246, 249, 0.98) 0%, rgba(227, 239, 243, 0.96) 100%);
color: var(--accent-strong);
font-weight: 700;
}
.entry-dashboard-intro {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 20px;
align-items: start;
}
.entry-dashboard-intro-main {
display: grid;
gap: 12px;
}
.entry-dashboard-intro-main h3 {
margin: 0;
font-size: clamp(1.4rem, 1.8vw, 1.95rem);
line-height: 1.2;
}
.entry-dashboard-copy {
margin: 0;
color: var(--muted);
line-height: 1.65;
}
.entry-dashboard-source-card {
display: grid;
gap: 8px;
padding: 20px 22px;
border: 1px solid rgba(211, 224, 231, 0.9);
border-radius: var(--radius-md);
background: linear-gradient(180deg, rgba(250, 252, 253, 0.99) 0%, rgba(242, 248, 250, 0.97) 100%);
}
.entry-dashboard-source-card strong {
color: var(--title);
font-size: 2rem;
}
.entry-dashboard-source-card p {
margin: 0;
color: var(--muted);
}
.entry-dashboard-macro .section-card {
border-width: 1.5px;
border-color: rgba(198, 212, 221, 0.96);
box-shadow: 0 16px 34px rgba(28, 52, 70, 0.07);
}
.entry-dashboard-macro .section-card > .section-header {
border-bottom-color: rgba(202, 216, 225, 0.94);
}
.entry-dashboard-general-panel .section-card {
background:
radial-gradient(circle at top right, rgba(215, 234, 240, 0.65), transparent 32%),
linear-gradient(180deg, rgba(249, 252, 253, 0.99) 0%, rgba(243, 248, 250, 0.97) 100%);
}
.entry-dashboard-detail-panel .section-card {
background:
radial-gradient(circle at top right, rgba(243, 231, 214, 0.56), transparent 30%),
linear-gradient(180deg, rgba(252, 251, 249, 0.99) 0%, rgba(247, 244, 240, 0.97) 100%);
}
.entry-dashboard-filter-sticky {
position: sticky;
top: 0;
z-index: 12;
margin-top: 0;
padding-bottom: 12px;
background: var(--bg);
}
.entry-dashboard-filter-dock {
display: grid;
gap: 12px;
padding: 12px 14px;
border: 1.5px solid rgba(198, 212, 221, 0.96);
border-radius: 20px;
background: #f5f8f6;
box-shadow: 0 14px 30px rgba(28, 52, 70, 0.1);
}
.app-shell-header-collapsed .entry-dashboard-filter-sticky {
margin-top: -14px;
}
.app-shell-header-collapsed .entry-dashboard-filter-dock {
border-radius: 0 0 20px 20px;
}
.entry-dashboard-filter-heading h3 {
margin: 0;
color: var(--title);
font-size: 1.28rem;
letter-spacing: -0.01em;
}
.entry-dashboard-highlight-picker {
display: grid;
gap: 12px;
padding-top: 18px;
padding-bottom: 18px;
}
.entry-dashboard-highlight-picker-note {
margin: 0;
}
.entry-filter-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
}
.entry-filter-group {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 8px 12px;
padding: 10px 14px;
border: 1px solid rgba(216, 227, 235, 0.84);
border-radius: 18px;
background: rgba(249, 252, 253, 0.9);
}
.entry-filter-group .panel-title {
min-width: 86px;
font-size: 0.74rem;
letter-spacing: 0.03em;
}
.entry-filter-chip-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.entry-filter-chip {
min-height: 34px;
padding: 6px 10px;
font-size: 0.82rem;
opacity: 0.92;
}
.entry-filter-chip {
border: 1px solid rgba(216, 227, 235, 0.88);
border-radius: 999px;
background: rgba(248, 251, 252, 0.7);
color: var(--muted);
cursor: pointer;
transition:
transform 0.16s ease,
border-color 0.16s ease,
background-color 0.16s ease,
color 0.16s ease,
box-shadow 0.16s ease,
opacity 0.16s ease;
opacity: 0.78;
}
.entry-filter-chip:hover {
transform: translateY(-1px);
border-color: color-mix(in srgb, var(--filter-color) 34%, #d8e3eb);
color: var(--title);
opacity: 1;
}
.entry-filter-chip.active {
transform: translateY(-1px);
color: var(--title);
border-color: color-mix(in srgb, var(--filter-color) 52%, #d8e3eb);
background: color-mix(in srgb, var(--filter-color) 18%, #ffffff);
box-shadow: 0 8px 20px color-mix(in srgb, var(--filter-color) 18%, rgba(28, 52, 70, 0.04));
opacity: 1;
}
.entry-view-picker {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.entry-view-pill {
flex: 1 1 230px;
min-height: 78px;
display: grid;
gap: 6px;
align-content: start;
padding: 16px 18px;
text-align: left;
border: 1px solid rgba(211, 224, 231, 0.9);
border-radius: 20px;
background: rgba(248, 251, 252, 0.96);
color: var(--text);
cursor: pointer;
transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}
.entry-view-pill strong,
.entry-view-pill small {
display: block;
}
.entry-view-pill strong {
color: var(--title);
font-size: 0.98rem;
}
.entry-view-pill small {
color: var(--muted);
line-height: 1.45;
}
.entry-view-pill:hover,
.entry-view-pill.active {
transform: translateY(-1px);
border-color: rgba(153, 194, 206, 0.95);
background: linear-gradient(180deg, rgba(239, 248, 250, 0.98) 0%, rgba(231, 241, 243, 0.96) 100%);
box-shadow: 0 12px 30px rgba(28, 52, 70, 0.08);
}
.entry-dashboard-filters {
margin-bottom: 0;
}
.entry-dashboard-target-filter {
margin-bottom: 0;
}
.entry-dashboard-chart-filter {
margin-bottom: 0;
padding-top: 12px;
border-top: 1px solid rgba(216, 227, 235, 0.78);
}
.entry-dashboard-chart-filter-control {
max-width: 280px;
gap: 6px;
font-weight: 600;
color: var(--muted);
}
.entry-dashboard-chart-filter-label {
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--muted);
}
.entry-dashboard-chart-filter-control select {
font-weight: 600;
color: var(--title);
}
.entry-dashboard-target-filter label {
max-width: 320px;
}
.entry-dashboard-notes {
margin: 0;
padding-left: 20px;
display: grid;
gap: 8px;
}
.entry-dashboard-notes li {
color: var(--muted);
line-height: 1.55;
}
.entry-total-chart-scroll,
.entry-line-chart-scroll {
overflow-x: auto;
padding-bottom: 4px;
}
.entry-line-chart-shell {
position: relative;
width: 100%;
min-width: 0;
}
.entry-line-tooltip {
position: absolute;
top: 14px;
z-index: 3;
min-width: 180px;
max-width: 240px;
padding: 12px 14px;
border: 1px solid rgba(208, 220, 227, 0.94);
border-radius: 16px;
background: rgba(255, 255, 255, 0.96);
box-shadow: 0 16px 34px rgba(28, 52, 70, 0.12);
pointer-events: none;
transform: translateX(10px);
}
.entry-line-tooltip.align-right {
transform: translateX(calc(-100% - 10px));
}
.entry-line-tooltip strong {
display: block;
margin-bottom: 10px;
color: var(--title);
font-size: 0.92rem;
}
.entry-line-tooltip-list {
display: grid;
gap: 8px;
}
.entry-line-tooltip-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
color: var(--title);
font-size: 0.84rem;
}
.entry-line-tooltip-label {
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.entry-line-tooltip-dot {
width: 10px;
height: 10px;
flex: 0 0 auto;
border-radius: 999px;
}
.entry-total-chart {
display: grid;
gap: 12px;
align-items: end;
min-width: max-content;
padding-top: 4px;
}
.entry-total-bar {
display: grid;
gap: 10px;
min-width: 56px;
padding: 12px 10px 14px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 20px;
background: linear-gradient(180deg, rgba(249, 252, 253, 0.99) 0%, rgba(243, 248, 250, 0.96) 100%);
color: var(--title);
cursor: pointer;
box-shadow: 0 8px 18px rgba(28, 52, 70, 0.04);
transition: border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}
.entry-total-bar:hover,
.entry-total-bar.active {
border-color: rgba(154, 194, 205, 0.9);
background: linear-gradient(180deg, rgba(239, 248, 250, 0.98) 0%, rgba(231, 241, 243, 0.95) 100%);
box-shadow: 0 12px 22px rgba(28, 52, 70, 0.08);
}
.entry-total-bar-value {
color: var(--title);
font-size: 0.78rem;
font-weight: 700;
}
.entry-total-bar-track {
height: 160px;
display: flex;
align-items: end;
}
.entry-total-bar-fill {
width: 100%;
border-radius: 14px 14px 8px 8px;
background: linear-gradient(180deg, rgba(35, 110, 131, 0.95) 0%, rgba(122, 183, 198, 0.88) 100%);
transition: height 0.22s ease, background 0.22s ease;
}
.entry-total-bar.active .entry-total-bar-fill {
background: linear-gradient(180deg, rgba(24, 79, 97, 0.98) 0%, rgba(94, 161, 176, 0.92) 100%);
}
.entry-total-bar-label {
color: var(--muted);
font-size: 0.76rem;
}
.entry-dashboard-two-column {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 24px;
}
.entry-dashboard-detail-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
align-items: start;
}
.entry-dashboard-summary {
display: grid;
gap: 8px;
}
.entry-dashboard-summary p {
margin: 0;
color: var(--muted);
line-height: 1.6;
}
.entry-dashboard-summary strong {
color: var(--title);
}
.entry-dashboard-surface {
padding: 20px 22px;
border: 1px solid rgba(210, 222, 229, 0.9);
border-radius: 22px;
background: rgba(255, 255, 255, 0.58);
}
.entry-dashboard-block-copy {
display: grid;
gap: 12px;
}
.entry-dashboard-block-panel {
display: grid;
gap: 18px;
}
.entry-dashboard-block-panel h4 {
margin: 0;
color: var(--title);
font-size: 1rem;
}
.entry-dashboard-block-panel > h4 {
padding-bottom: 12px;
margin-bottom: 2px;
border-bottom: 1px solid rgba(216, 227, 235, 0.78);
}
.entry-dashboard-block-copy h4 {
padding-bottom: 0;
margin-bottom: 0;
border-bottom: 0;
}
.entry-dashboard-detail-top {
display: grid;
grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
gap: 20px;
align-items: end;
}
.entry-dashboard-detail-top .plain-note {
margin: 0;
}
.entry-dashboard-meta-strip {
gap: 10px;
margin-bottom: 0;
}
.entry-dashboard-meta-strip span {
display: inline-flex;
align-items: center;
min-height: 34px;
padding: 0 12px;
border: 1px solid rgba(216, 227, 235, 0.84);
border-radius: 999px;
background: rgba(247, 251, 252, 0.92);
}
.entry-dashboard-metric-list {
display: grid;
gap: 12px;
}
.entry-dashboard-metric-item {
display: grid;
gap: 4px;
padding: 14px 16px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 18px;
background: linear-gradient(180deg, rgba(249, 252, 253, 0.99) 0%, rgba(244, 249, 251, 0.98) 100%);
}
.entry-dashboard-metric-label {
color: var(--muted);
font-size: 0.74rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.entry-dashboard-metric-value {
color: var(--title);
font-size: 1.02rem;
line-height: 1.35;
}
.entry-dashboard-metric-hint {
color: var(--muted);
font-size: 0.82rem;
line-height: 1.45;
}
.entry-dashboard-inline-note {
margin: 0;
}
.entry-series-chip-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.entry-series-chip {
display: inline-flex;
align-items: center;
gap: 10px;
min-height: 42px;
padding: 10px 14px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 999px;
background: rgba(248, 251, 252, 0.96);
color: var(--title);
cursor: pointer;
transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease;
}
.entry-series-chip:hover,
.entry-series-chip.active {
transform: translateY(-1px);
border-color: rgba(154, 194, 205, 0.9);
background: rgba(239, 248, 250, 0.98);
}
.entry-series-chip-dot {
width: 10px;
height: 10px;
flex: 0 0 auto;
border-radius: 999px;
background: var(--series-color);
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.92);
}
.entry-line-chart {
width: 100%;
height: auto;
min-width: 0;
display: block;
overflow: visible;
background: linear-gradient(180deg, rgba(249, 252, 253, 0.99) 0%, rgba(244, 249, 251, 0.98) 100%);
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 20px;
}
.entry-line-grid {
stroke: rgba(173, 190, 200, 0.5);
stroke-width: 1;
}
.entry-line-grid-label,
.entry-line-axis-label {
fill: #708493;
font-size: 11px;
}
.entry-line-axis-label.rotated {
font-size: 10px;
}
.entry-line-marker {
stroke: rgba(16, 32, 45, 0.28);
stroke-width: 1.5;
stroke-dasharray: 5 5;
}
.entry-line-hover-marker {
stroke: rgba(16, 32, 45, 0.22);
stroke-width: 1.5;
stroke-dasharray: 4 4;
}
.entry-line-path {
fill: none;
stroke-width: 3.5;
stroke-linecap: round;
stroke-linejoin: round;
}
.entry-line-dot {
stroke: #ffffff;
stroke-width: 2;
}
.entry-line-hover-dot {
stroke: #ffffff;
stroke-width: 2.5;
}
.entry-line-hitbox {
cursor: crosshair;
}
.entry-breakdown-list {
display: grid;
gap: 14px;
}
.entry-breakdown-row {
display: grid;
gap: 9px;
padding: 16px 18px;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 18px;
background: linear-gradient(180deg, rgba(249, 252, 253, 0.99) 0%, rgba(244, 249, 251, 0.98) 100%);
}
.entry-breakdown-head,
.entry-breakdown-meta {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.entry-breakdown-head strong,
.entry-breakdown-head span {
color: var(--title);
}
.entry-breakdown-head span {
font-weight: 700;
}
.entry-breakdown-bar {
height: 14px;
overflow: hidden;
border-radius: 999px;
background: rgba(227, 236, 241, 0.92);
}
.entry-breakdown-bar-fill {
display: block;
height: 100%;
border-radius: inherit;
transition: width 0.22s ease, background-color 0.22s ease;
}
.entry-breakdown-meta {
color: var(--muted);
font-size: 0.84rem;
}
.entry-breakdown-list-compact .entry-breakdown-meta {
display: none;
}
.entry-dashboard-collapse {
display: grid;
gap: 14px;
}
.entry-dashboard-collapse summary {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
cursor: pointer;
list-style: none;
color: var(--title);
font-weight: 700;
}
.entry-dashboard-collapse summary::-webkit-details-marker {
display: none;
}
.entry-dashboard-collapse summary::after {
content: "▾";
color: var(--muted);
font-size: 0.95rem;
transition: transform 0.16s ease;
}
.entry-dashboard-collapse[open] summary::after {
transform: rotate(180deg);
}
.entry-dashboard-collapse summary span {
color: var(--title);
}
.entry-dashboard-collapse summary small {
color: var(--muted);
font-size: 0.82rem;
font-weight: 600;
}
.entry-dashboard-collapse-body {
display: grid;
gap: 12px;
}
.entry-dashboard-table-wrap {
max-height: calc(11 * 3.25rem);
overflow: auto;
border: 1px solid rgba(216, 227, 235, 0.82);
border-radius: 18px;
background: rgba(255, 255, 255, 0.94);
}
.entry-dashboard-table {
min-width: 820px;
}
.entry-dashboard-table thead th {
position: sticky;
top: 0;
z-index: 1;
background: rgba(237, 245, 251, 0.98);
}
.entry-dashboard-table th:first-child,
.entry-dashboard-table td:first-child {
position: sticky;
left: 0;
}
.entry-dashboard-table th:first-child {
z-index: 3;
background: rgba(237, 245, 251, 0.98);
}
.entry-dashboard-table td:first-child {
z-index: 1;
background: rgba(255, 255, 255, 0.98);
}
.entry-dashboard-table tbody tr.active td {
background: rgba(236, 245, 247, 0.78);
}
.entry-dashboard-table tbody tr.active td:first-child {
background: rgba(227, 240, 244, 0.96);
}
@media (max-width: 1180px) {
.detail-grid,
.form-columns.four {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.registration-inline-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.process-row {
grid-template-columns: minmax(0, 1fr);
}
.cronograma-row {
grid-template-columns: minmax(0, 1fr);
}
.cronogramas-list {
grid-template-columns: 1fr;
}
}
@media (max-width: 920px) {
.app-header {
padding: 0 16px;
}
.app-header-inner {
align-items: flex-start;
flex-direction: column;
gap: 12px;
padding: 9px 0;
}
.main-content {
width: calc(100vw - 32px);
padding: 22px 0 28px;
}
.nav {
width: 100%;
justify-content: flex-start;
}
.sidebar-brand {
flex-direction: column;
align-items: flex-start;
gap: 4px;
}
.sidebar-copy {
white-space: normal;
}
.stats-grid,
.filters,
.detail-grid,
.evaluator-grid,
.form-grid,
.form-columns.two,
.form-columns.three,
.form-columns.four {
grid-template-columns: 1fr;
}
.process-row {
grid-template-columns: 1fr;
gap: 18px;
}
.entry-filter-grid {
grid-template-columns: 1fr;
}
.entry-dashboard-toolbar {
align-items: stretch;
}
.entry-dashboard-granularity {
width: fit-content;
}
.entry-dashboard-filter-sticky {
margin-top: -8px;
}
.entry-filter-group {
grid-template-columns: 1fr;
align-items: start;
}
.entry-filter-group .panel-title {
min-width: 0;
}
.entry-dashboard-detail-top {
grid-template-columns: 1fr;
align-items: start;
}
.entry-dashboard-collapse summary {
flex-direction: column;
align-items: flex-start;
}
.registration-inline-grid {
grid-template-columns: 1fr;
gap: 14px;
}
.cronograma-row {
grid-template-columns: 1fr;
gap: 18px;
}
.process-meta,
.cronograma-meta,
.evaluator-card-meta {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.subform-head {
align-items: flex-start;
flex-direction: column;
}
.section-title-row,
.timeline-entry-head,
.topbar {
align-items: flex-start;
flex-direction: column;
}
}
@media (max-width: 640px) {
.app-header {
padding: 0 12px;
}
.field-block-row {
grid-template-columns: 1fr;
}
.detail-data-list .field-label {
border-right: 0;
border-bottom: 1px solid rgba(216, 227, 235, 0.82);
}
.nav-link {
width: 100%;
}
.main-content {
width: calc(100vw - 24px);
}
.section-card,
.stat-card,
.timeline-card,
.info-card {
padding: 20px;
}
.detail-hero {
padding: 22px 20px;
}
.detail-hero h3 {
font-size: 1.45rem;
}
.hero-title-button {
font-size: 1.45rem;
}
.registration-detail-header,
.registration-detail-section-title {
flex-direction: column;
align-items: stretch;
}
.registration-static-value {
min-height: auto;
}
.process-meta,
.cronograma-meta,
.evaluator-card-meta {
grid-template-columns: 1fr;
}
}