
:root{
  --cp-navy:#0D2144;
  --cp-blue:#1A3A6E;
  --cp-bg:#F5F7FA;
  --cp-card:#FFFFFF;
  --cp-line:#E0E7EF;
  --cp-text:#1F2937;
  --cp-muted:#6B7280;
  --cp-success-bg:#DCFCE7;
  --cp-success-tx:#15803D;
  --cp-warning-bg:#FEF3C7;
  --cp-warning-tx:#B45309;
  --cp-danger-bg:#FEE2E2;
  --cp-danger-tx:#DC2626;
  --cp-info-bg:#DBEAFE;
  --cp-info-tx:#1E40AF;
  --cp-secondary-bg:#F3F4F6;
  --cp-secondary-tx:#6B7280;
}
body{
  font-family: "Segoe UI", Arial, sans-serif;
  background: var(--cp-bg);
  color: var(--cp-text);
}
.navbar-coreplx{
  background: var(--cp-navy);
  min-height: 56px;
}
.navbar-brand,.navbar-coreplx .nav-link,.navbar-coreplx .navbar-text{
  color:#fff !important;
}
.sidebar{
  width:260px;
  min-height:calc(100vh - 56px);
  background:#fff;
  border-right:1px solid var(--cp-line);
  position:sticky;
  top:56px;
}
.sidebar .section-label{
  color:var(--cp-muted);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.72rem;
  font-weight:600;
  padding:.85rem 1rem .35rem;
}
.sidebar .nav-link{
  color:var(--cp-text);
  border-radius:.75rem;
  padding:.7rem .9rem;
  font-size:.95rem;
  font-weight:500;
}
.sidebar .nav-link:hover{
  background:#f0f4ff;
  color:var(--cp-blue);
}
.sidebar .nav-link.active{
  background:#eaf1ff;
  color:var(--cp-blue);
  font-weight:600;
}
.content-wrap{
  max-width:1360px;
}
.page-title{
  color:var(--cp-blue);
  font-weight:700;
  font-size:1.6rem;
}
.page-subtitle{
  color:var(--cp-muted);
  font-size:.95rem;
}
.cp-card{
  border:1px solid var(--cp-line);
  border-radius:.9rem;
  box-shadow:0 .25rem 1rem rgba(13,33,68,.05);
}
.cp-card .card-title{
  color:var(--cp-blue);
  font-size:1rem;
  font-weight:700;
}
.cp-card .card-subtitle{
  color:var(--cp-muted);
  font-size:.88rem;
}
.metric-value{
  color:var(--cp-blue);
  font-weight:700;
  font-size:1.9rem;
  line-height:1;
}
.table thead th{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#555;
  background:#F0F4FF;
  border-bottom:1px solid var(--cp-line);
}
.table td{
  vertical-align:middle;
}
.form-label{
  font-size:.78rem;
  font-weight:600;
  color:#666;
  margin-bottom:.35rem;
}
.form-control,.form-select{
  min-height:38px;
  font-size:.86rem;
}
.form-text{
  font-size:.72rem;
}
.readonly{
  background:#F5F7FA;
  color:#888;
}
.badge-soft-success{background:var(--cp-success-bg);color:var(--cp-success-tx);}
.badge-soft-warning{background:var(--cp-warning-bg);color:var(--cp-warning-tx);}
.badge-soft-danger{background:var(--cp-danger-bg);color:var(--cp-danger-tx);}
.badge-soft-info{background:var(--cp-info-bg);color:var(--cp-info-tx);}
.badge-soft-secondary{background:var(--cp-secondary-bg);color:var(--cp-secondary-tx);}
.badge-dark-soft{background:#1F2937;color:#fff;}
.alert-tile{
  border:1px solid var(--cp-line);
  border-left:4px solid var(--cp-danger-tx);
  border-radius:.8rem;
  background:#fff;
}
.repo-box{
  border:1px solid var(--cp-line);
  border-radius:.85rem;
  background:#fff;
  padding:1.1rem;
  height:100%;
}
.kv{
  background:#F7FAFF;
  border:1px solid #D7E5FA;
  border-radius:.8rem;
}
.tab-pill{
  border-radius:999px;
}
.upload-box{
  border:2px dashed #AFC3DF;
  border-radius:.85rem;
  background:#FAFCFF;
}
.note-list li{
  margin-bottom:.45rem;
}
@media (max-width: 991.98px){
  .sidebar{
    width:100%;
    min-height:auto;
    position:static;
  }
}



/* top navigation standard */
.navbar-coreplx{
  background: var(--cp-navy);
  min-height: 64px;
}
.navbar-coreplx .navbar-brand,
.navbar-coreplx .nav-link,
.navbar-coreplx .dropdown-toggle,
.navbar-coreplx .navbar-text{
  color:#fff !important;
}
.navbar-coreplx .navbar-toggler{
  border:0;
  box-shadow:none !important;
}
.navbar-coreplx .dropdown-menu{
  border:none;
  border-radius:1rem;
  padding:.65rem;
  box-shadow:0 .65rem 1.6rem rgba(13,33,68,.14);
}
.navbar-coreplx .dropdown-item{
  border-radius:.75rem;
  padding:.7rem .95rem;
}
.navbar-coreplx .dropdown-item:hover,
.navbar-coreplx .dropdown-item.active{
  background:#eaf1ff;
  color:var(--cp-blue);
}
.app-shell{
  min-height:calc(100vh - 64px);
}
.content-wrap{
  max-width:1600px;
}

/* dashboard */
.dashboard-user-card{
  border-radius:1.35rem;
}
.user-avatar{
  width:78px;
  height:78px;
  border-radius:50%;
  background:#E7EEF9;
  color:var(--cp-blue);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  font-weight:800;
}
.user-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.user-meta-box{
  border:1px solid var(--cp-line);
  border-radius:1.05rem;
  padding:1rem 1rem;
  min-height:118px;
}
.user-meta-value{
  color:var(--cp-blue);
  font-size:1.95rem;
  line-height:1;
  font-weight:800;
  margin-bottom:.55rem;
}
.user-meta-label{
  color:var(--cp-muted);
  font-size:.9rem;
  line-height:1.25;
}
.section-kicker{
  color:var(--cp-muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  font-weight:700;
}
.dashboard-link-list li{
  margin-bottom:1rem;
}
.dashboard-link-list a{
  color:var(--cp-blue);
  text-decoration:none;
  font-size:1.1rem;
  font-weight:700;
}
.dashboard-link-list a:hover{
  text-decoration:underline;
}
.search-card{
  border-radius:1.35rem;
}
.search-label{
  color:var(--cp-muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  font-weight:700;
}
.search-group .input-group-text,
.search-group .form-control{
  min-height:58px;
  font-size:1.1rem;
  border-color:#d6dee8;
}
.search-group .input-group-text{
  border-radius:1rem 0 0 1rem;
}
.search-group .form-control{
  border-radius:0 1rem 1rem 0;
}
.hero-carousel,
.hero-banner{
  border-radius:1.35rem;
}
.hero-banner{
  min-height:320px;
  padding:2.4rem 2.35rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  color:#fff;
}
.hero-banner-review{
  background:linear-gradient(135deg,#173a76 0%, #3f68ad 100%);
}
.hero-banner-policy{
  background:linear-gradient(135deg,#325b1d 0%, #6ba142 100%);
}
.hero-banner-search{
  background:linear-gradient(135deg,#59420c 0%, #b28626 100%);
}
.hero-eyebrow{
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.95;
}
.hero-title{
  font-size:2rem;
  line-height:1.18;
  font-weight:800;
  margin:.9rem 0 1rem;
}
.hero-copy{
  font-size:1.05rem;
  opacity:.95;
  max-width:780px;
}
.hero-btn{
  align-self:flex-start;
  border-radius:.95rem;
  padding:.85rem 1.25rem;
  font-weight:700;
}
.dashboard-indicators{
  margin-bottom:1.2rem;
}
.dashboard-indicators [data-bs-target]{
  width:10px;
  height:10px;
  border-radius:50%;
}
.stat-card{
  border-radius:1.15rem;
}
.stat-value{
  color:var(--cp-blue);
  font-size:2rem;
  line-height:1;
  font-weight:800;
  margin-bottom:.65rem;
}
.stat-note{
  color:var(--cp-muted);
  font-size:.92rem;
}
.activity-list{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.activity-item{
  display:grid;
  grid-template-columns:62px 1fr;
  gap:12px;
  align-items:start;
}
.activity-time{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:36px;
  border-radius:.75rem;
  background:#eef4ff;
  color:var(--cp-blue);
  font-weight:700;
}
.repo-box{
  border:1px solid var(--cp-line);
  border-radius:1rem;
  background:#fff;
  padding:1rem;
  height:100%;
}

/* role selection and login */
.portal-card{
  max-width:820px;
  background:#fff;
  border:1px solid var(--cp-line);
  border-radius:1.4rem;
  box-shadow:0 .5rem 1.5rem rgba(13,33,68,.08);
}
.portal-option{
  display:block;
  text-decoration:none;
  border:1px solid var(--cp-line);
  border-radius:1.1rem;
  padding:1.5rem 1.3rem;
  background:#fff;
  transition:.2s ease;
}
/* Portal options base styles */
.portal-option {
  display: block;
  text-decoration: none;
  border: 1px solid var(--cp-line);
  border-radius: 1.1rem;
  padding: 1.5rem 1.3rem;
  background: #fff;
  transition: all 0.2s ease;
  color: var(--cp-text);
}

/* Portal option text-muted */
.portal-option .text-muted {
  color: var(--cp-muted);
  transition: color 0.2s ease;
}

/* Admin portal - primary style (navy background) */
.portal-option.primary {
  background: var(--cp-navy);
  border-color: var(--cp-navy);
  color: #fff;
}

.portal-option.primary small {
  color: #d8e4ff !important;
}

.portal-option.primary .text-muted {
  color: #d8e4ff !important;
}

/* Admin - NO hover effect (stays the same) */
.portal-option.primary:hover {
  transform: none;
  background: var(--cp-navy);
  border-color: var(--cp-navy);
  color: #fff;
}

.portal-option.primary:hover small,
.portal-option.primary:hover .text-muted {
  color: #d8e4ff !important;
}

/* Employee hover - becomes navy */
.portal-option:not(.primary):hover {
  transform: translateY(-2px);
  background: var(--cp-navy);
  border-color: var(--cp-navy);
  color: white !important;
}

.portal-option:not(.primary):hover .text-muted,
.portal-option:not(.primary):hover small {
  color: #d8e4ff !important;
}

/* When hovering over Employee, change Admin's text to gray */
.portal-card .row:hover .portal-option.primary small,
.portal-card .row:hover .portal-option.primary .text-muted {
  color: var(--cp-muted) !important;
}

/* But keep Admin's text color when hovering directly over Admin */
.portal-option.primary:hover small,
.portal-option.primary:hover .text-muted {
  color: #d8e4ff !important;
}
.login-card{
  width:100%;
  max-width:430px;
  background:#fff;
  border:1px solid var(--cp-line);
  border-radius:1.2rem;
  box-shadow:0 .5rem 1.5rem rgba(13,33,68,.08);
}
.footer-help{
  color:var(--cp-muted);
  font-size:.86rem;
}

/* helpers */
.sidebar{display:none !important;}
@media (max-width: 1199.98px){
  .page-title{font-size:2.2rem;}
  .hero-title{font-size:1.6rem;}
}
