/* ICV Portal: Bootstrap 5 presentation layer */
:root{--bs-primary:#245b83;--bs-primary-rgb:36,91,131;--bs-link-color:#245b83;--bs-link-hover-color:#163e5d;--icv-ink:#172c3f;--icv-muted:#607487;--icv-line:#e2e9f0;--icv-bg:#f4f7fa}
body{background:var(--icv-bg)!important;color:var(--icv-ink);font-size:.96rem}
.navbar{background:#fff!important;box-shadow:0 1px 0 rgba(22,44,66,.07)}
.navbar-brand{font-weight:750;letter-spacing:-.025em;color:#173d5a!important}
.nav-link{color:#53677a!important;border-radius:.5rem;padding:.5rem .8rem!important;font-weight:550}
.nav-link:hover,.nav-link.active{color:#17496d!important;background:#edf3f8}
.card{border:1px solid var(--icv-line);border-radius:.85rem;box-shadow:0 3px 16px rgba(18,46,70,.035);overflow:hidden}
.card-header{background:#f9fbfd;border-bottom:1px solid var(--icv-line);padding:1rem 1.2rem}
.card-body{padding:1.3rem}
.btn{font-weight:600;border-radius:.55rem;padding:.55rem .95rem}
.btn-sm{padding:.32rem .65rem}
.btn-primary{--bs-btn-bg:#245b83;--bs-btn-border-color:#245b83;--bs-btn-hover-bg:#194967;--bs-btn-hover-border-color:#194967}
.btn-outline-primary{--bs-btn-color:#245b83;--bs-btn-border-color:#9cb8cc;--bs-btn-hover-bg:#245b83;--bs-btn-hover-border-color:#245b83}
.form-control,.form-select{border-color:#d6e0e9;border-radius:.55rem;min-height:2.65rem}
textarea.form-control{min-height:unset}
.form-control:focus,.form-select:focus{border-color:#6897ba;box-shadow:0 0 0 .22rem rgba(36,91,131,.12)}
.form-label{font-weight:600;color:#344b5e;font-size:.9rem;margin-bottom:.4rem}
.table{--bs-table-bg:transparent;margin-bottom:0}
.table>thead>tr>th{font-size:.75rem;letter-spacing:.045em;text-transform:uppercase;color:#687c8e;background:#f8fafc;border-bottom-color:#dce5ed;padding:.85rem 1rem;white-space:nowrap}
.table>tbody>tr>td{padding:1rem;vertical-align:middle;border-bottom-color:#edf1f5}
.table>tbody>tr:hover{background:#f9fbfd}
.table-responsive{background:#fff;border:1px solid var(--icv-line);border-radius:.85rem;box-shadow:0 3px 16px rgba(18,46,70,.035)}
.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-bg-type:transparent}
.badge{font-weight:650;letter-spacing:.005em;padding:.45em .65em;border-radius:.45rem}
.alert{border-radius:.7rem;border-width:1px}
.page-eyebrow{color:#607b91;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:750;margin-bottom:.3rem}
.page-heading{font-weight:750;letter-spacing:-.035em;margin-bottom:.3rem}
.page-subtitle{color:var(--icv-muted);margin-bottom:0}
.stat-card .card-body{padding:1.45rem}.stat-label{color:var(--icv-muted);font-size:.88rem;font-weight:600}.stat-value{font-size:2.25rem;line-height:1.15;font-weight:750;letter-spacing:-.05em;margin-top:.4rem}
.section-heading{font-size:1.08rem;font-weight:700;letter-spacing:-.015em}
.status-approved{background:#e3f5ea;color:#17653c}.status-submitted{background:#fff2d7;color:#865a0a}.status-draft{background:#eaf1f8;color:#315b7b}.status-changes_requested{background:#fbe9e5;color:#9c4531}.status-not_started{background:#edf0f3;color:#576b7c}
.training-row{transition:background .15s}.training-row:hover{background:#f8fbfd}.training-description{color:#64788a;font-size:.88rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.progress{background:#e5edf3;border-radius:2rem;height:.6rem}.progress-bar{background:#2b8064}
.breadcrumb{font-size:.85rem}.breadcrumb a{text-decoration:none}
.review-narrative{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f9fc;border:1px solid var(--icv-line);border-radius:.65rem;padding:1rem 1.15rem}
.empty-state{border:1px dashed #cbd8e4;border-radius:.85rem;background:#fff;padding:2.5rem 1.5rem;text-align:center;color:var(--icv-muted)}
.login-panel{max-width:440px;margin:9vh auto 2rem}.login-brand{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;background:#eaf2f8;border-radius:.85rem;color:#245b83;font-weight:800;font-size:1.25rem}
@media(max-width:767.98px){.card-body{padding:1rem}.page-heading{font-size:1.65rem}.table>tbody>tr>td{padding:.7rem}.navbar .container{gap:.6rem}.nav-link{padding:.4rem .55rem!important}}
