:root { --app-navy: #12314a; --app-blue: #1f6f9f; --app-bg: #f3f6f8; --app-border: #dce4e9; --app-text: #21313c; }
html { font-size: 14px; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }
body { min-height: 100vh; background: var(--app-bg); color: var(--app-text); }
a { color: #116a9b; }
.app-navbar { background: var(--app-navy); }
.app-navbar .nav-link { color: rgba(255, 255, 255, 0.78); }
.app-navbar .nav-link:hover { color: #fff; }
.app-footer { background: #fff; }
.page-heading h1 { color: var(--app-navy); }
.metric-card, .panel { background: #fff; border: 1px solid var(--app-border); border-radius: 0.75rem; box-shadow: 0 0.25rem 1rem rgba(18, 49, 74, 0.05); }
.metric-card { min-height: 7rem; padding: 1.15rem; display: flex; flex-direction: column; justify-content: space-between; }
.metric-label { color: #657681; font-size: 0.82rem; }
.metric-value { color: var(--app-navy); font-size: 1.65rem; }
.metric-money { font-size: 1.2rem; }
.panel { overflow: hidden; }
.form-panel { max-width: 960px; }
.form-panel-wide { max-width: 1200px; }
.panel-header { padding: 1rem 1.15rem; border-bottom: 1px solid var(--app-border); }
.table > thead th { background: #eaf1f5; color: #445865; border-bottom: 1px solid #ccd8df; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; white-space: nowrap; }
.table > tbody td { border-color: #edf1f3; }
.empty-state { color: #71818b; padding: 2.5rem !important; text-align: center; }
.status-pill { display: inline-block; padding: 0.2rem 0.55rem; border-radius: 999px; background: #e5f0f6; color: #215f80; font-size: 0.78rem; font-weight: 600; white-space: nowrap; }
.search-form { width: min(100%, 34rem); }
.report-year { width: 8rem; }
.master-data-table { max-height: 24rem; overflow-y: auto; }
.currency-input { width: 5.5rem; text-transform: uppercase; }
.financial-editor-table { min-width: 1080px; }
.operation-timeline { padding: 0 1.15rem; }
.operation-entry { padding: 1.15rem 0; border-bottom: 1px solid var(--app-border); }
.operation-entry:last-child { border-bottom: 0; }
.operation-content { white-space: pre-wrap; }
.role-selector { min-height: 7rem; background: #f8fafb; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; padding: 1.15rem; }
.detail-grid div, .financial-summary div { display: flex; flex-direction: column; gap: 0.2rem; }
.detail-grid span, .detail-note span, .financial-summary span { color: #71818b; font-size: 0.78rem; }
.detail-note { margin: 0 1.15rem 1.15rem; padding-top: 1rem; border-top: 1px solid var(--app-border); }
.detail-note p { margin: 0.25rem 0 0; white-space: pre-wrap; }
.financial-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 1.15rem; }
.financial-summary strong { color: var(--app-navy); font-size: 1.2rem; }
.list-group { padding: 0 1.15rem; }
.btn-primary { background: var(--app-blue); border-color: var(--app-blue); }
.form-control:focus, .btn:focus { box-shadow: 0 0 0 0.2rem rgba(31, 111, 159, 0.2); }
@media (max-width: 767px) { .detail-grid { grid-template-columns: 1fr; } .search-form { width: 100%; } }
.audit-json { max-width: 48rem; max-height: 20rem; overflow: auto; padding: 0.75rem; border-radius: 0.5rem; background: #f7f8fa; font-size: 0.78rem; white-space: pre-wrap; word-break: break-word; }
.validation-summary-valid { display: none; }
