/* risks.efsi.com shared styles */

.app-navbar { background-color: var(--accent, #1a3a5c); }
.brand-logo { height: 32px; width: auto; }

/* Matrix cell + classification colors */
.roi-green  { background-color: #2e9e44 !important; color: #fff !important; }
.roi-yellow { background-color: #f5c518 !important; color: #212529 !important; }
.roi-red    { background-color: #d13438 !important; color: #fff !important; }

.matrix-table { border-collapse: separate; border-spacing: 3px; }
.matrix-table td.cell {
    width: 90px; height: 64px; text-align: center; vertical-align: middle;
    border-radius: 6px; font-weight: 600; font-size: 1.05rem;
}
.matrix-table td.cell a { color: inherit; text-decoration: none; display: block; }
.matrix-table td.cell .count { font-size: 1.3rem; }
.matrix-table th { text-align: center; vertical-align: middle; font-size: .85rem; }
.matrix-axis-label { writing-mode: vertical-rl; transform: rotate(180deg); font-weight: 600; }

/* Score badges */
.score-badge {
    display: inline-block; min-width: 3.2em; padding: .3em .5em;
    border-radius: .4rem; text-align: center; font-weight: 700;
}

/* Action item urgency */
.urgency-red    { border-left: 5px solid #d13438; }
.urgency-yellow { border-left: 5px solid #f5c518; }
.urgency-green  { border-left: 5px solid #2e9e44; }

/* Statement builder preview */
.stmt-preview {
    background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px;
    padding: .75rem 1rem; font-style: italic;
}

/* Workflow status badges */
.badge-draft          { background: #6c757d; }
.badge-submitted      { background: #0d6efd; }
.badge-in_review      { background: #6610f2; }
.badge-approved       { background: #0dcaf0; color: #212529; }
.badge-assigned       { background: #fd7e14; }
.badge-plan_requested { background: #d63384; }
.badge-active         { background: #198754; }
.badge-closed         { background: #343a40; }
.badge-archived       { background: #adb5bd; color: #212529; }
.badge-rejected       { background: #d13438; }

.table-sm td, .table-sm th { vertical-align: middle; }
.sortable-link { color: inherit; text-decoration: none; }
.sortable-link:hover { text-decoration: underline; }

/* Print view */
@media print {
    .app-navbar, footer, .no-print, .btn { display: none !important; }
    main { padding: 0 !important; }
}

/* Mini matrix (roi-detail / roi-print position plot) */
.matrix-table.mini td.cell { width: 38px; height: 34px; font-size: .8rem; border-radius: 4px; }
.matrix-table.mini th { font-size: .75rem; }
.pos-marker {
    display: inline-block; min-width: 1.35em; padding: 0 .15em;
    background: #212529; color: #fff; border-radius: .3em;
    font-weight: 700; font-size: .78rem; line-height: 1.45;
}
.mini-matrix-arrow { position: absolute; top: 0; left: 0; pointer-events: none; }

/* Program Review page */
.kpi-tile { padding: .9rem 1rem; text-align: center; height: 100%; }
.kpi-value { font-size: 2.1rem; font-weight: 700; line-height: 1.1; }
.kpi-label { font-size: .8rem; color: #6c757d; }

.dumbbell { position: relative; height: 20px; min-width: 140px;
    background: linear-gradient(to bottom, transparent 8px, #e9ecef 8px, #e9ecef 12px, transparent 12px);
    border-radius: 6px; }
.db-line { position: absolute; top: 9px; height: 2px; background: #6c757d; }
.db-dot { position: absolute; top: 4px; width: 12px; height: 12px; border-radius: 50%;
    margin-left: -6px; box-shadow: 0 0 0 2px #fff; }
.db-dot.db-hollow { background: #fff; border: 2px solid #6c757d; box-shadow: none; }
.db-dot-legend { display: inline-block; width: 11px; height: 11px; border-radius: 50%; vertical-align: -1px; }
.db-dot-legend.db-hollow { background: #fff; border: 2px solid #6c757d; }

.delta-chip { display: inline-block; min-width: 3em; text-align: center; padding: .1em .45em;
    border-radius: .8em; font-weight: 700; font-size: .82rem; }
.delta-good { background: #e6f4ea; color: #1e7e34; }
.delta-bad  { background: #fdeaea; color: #b02a30; }
.delta-flat { background: #f1f3f5; color: #6c757d; }

.timeline-body { max-height: 560px; overflow-y: auto; }
.timeline-day { font-weight: 700; font-size: .82rem; color: #6c757d; text-transform: uppercase;
    border-bottom: 1px solid #e9ecef; margin: .6rem 0 .3rem; padding-bottom: .15rem; }
.timeline-event { display: flex; gap: .55rem; padding: .22rem 0; font-size: .9rem; }
.timeline-icon { color: #6c757d; width: 1.1em; text-align: center; flex-shrink: 0; margin-top: .1em; }
