/* BIP v2 - Pixel-perfect screenshot matching */

/* ===== Fonts ===== */
@font-face {
  font-family: 'Roboto';
  src: url('/assets/Roboto-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: 'Roboto';
  src: url('/assets/Roboto-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: 'Roboto';
  src: url('/assets/Roboto-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

/* ===== Reset ===== */
html { font-size: 100%; }
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}
body {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  background-color: #F3F8FB;
  color: #1E293B;
}
*, *::before, *::after { box-sizing: border-box; }
p { margin: 0; padding: 0; }

/* ===== App shell ===== */
.bip-v2-app {
  display: flex;
  min-height: 100vh;
}
.v2-main-content {
  margin-left: 64px;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* ===== Sidebar buttons ===== */
.v2-sidebar-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 43px;
  height: 48px;
  border-radius: 4px;
  background-color: transparent;
  cursor: pointer;
  margin-bottom: 0;
  text-decoration: none;
  transition: background-color 0.15s;
}

.v2-sidebar-btn i {
  color: rgba(255, 255, 255, 0.6);
  font-size: 16px;
  margin-bottom: 4px;
}

.v2-sidebar-btn span {
  color: rgba(255, 255, 255, 0.6);
  font-size: 10px;
  font-weight: 400;
  font-family: Roboto, sans-serif;
  line-height: 10px;
}

/* Hover: light blue tint */
.v2-sidebar-btn:hover {
  background-color: rgba(100, 180, 255, 0.25);
}
.v2-sidebar-btn:hover i,
.v2-sidebar-btn:hover span {
  color: #FFFFFF;
}

/* Active/click: stronger light blue */
.v2-sidebar-btn:active {
  background-color: rgba(100, 180, 255, 0.4);
}
.v2-sidebar-btn:active i,
.v2-sidebar-btn:active span {
  color: #FFFFFF;
}

/* Currently selected sidebar item */
.v2-sidebar-btn-active {
  background-color: rgba(255, 255, 255, 0.15);
}
.v2-sidebar-btn-active i,
.v2-sidebar-btn-active span {
  color: #FFFFFF;
}

/* BIP button specific styling (matches Figma design) */
#sidebar-bip {
  width: 43px;
  height: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 0;
}

#sidebar-bip .v2-sidebar-btn {
  width: 32px;
  height: 32px;
  background-color: #3F73B9;
  border-radius: 4px;
  margin-bottom: 4px;
  padding: 8px;
}

#sidebar-bip i {
  color: #FFFFFF;
  font-size: 16px;
  margin-bottom: 0;
}

#sidebar-bip span {
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 400;
  line-height: 10px;
}

/* Specific spacing for sidebar items to match Figma */
#sidebar-search {
  margin-bottom: 8px;
}

#sidebar-bip {
  margin-bottom: 24px;
}

#sidebar-qirin {
  margin-bottom: 24px;
}

#sidebar-jade {
  margin-bottom: 0;
}

/* ===== Tab styling (Figma-matching) ===== */
/* Tab bar container: border-top separator, full width spread */
/* dbc 1.x uses .nav-tabs, dbc 2.x uses .nav[role="tablist"] */
.nav-tabs,
.nav.nav-tabs,
.nav[role="tablist"] {
  border-bottom: none !important;
  border-top: 1px solid #E2E8F0 !important;
  gap: 0 !important;
  flex-wrap: nowrap !important;
  padding: 12px 24px !important;
  justify-content: space-between !important;
  width: 100% !important;
  display: flex !important;
  overflow-x: auto !important;
}

/* All tab links: plain gray text, no borders, no background */
.nav-tabs .nav-item .nav-link,
.nav-tabs .v2-tab .nav-link,
.nav-tabs .nav-link,
.nav[role="tablist"] .nav-item .nav-link {
  font-family: Roboto, sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #4F5053 !important;
  line-height: 24px !important;
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  padding: 0 8px !important;
  border-radius: 4px !important;
  background: transparent !important;
  background-color: transparent !important;
  white-space: nowrap !important;
  margin: 0 !important;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-item .nav-link:hover,
.nav[role="tablist"] .nav-item .nav-link:hover {
  color: #007AB3 !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
}

/* Active tab = blue pill */
.nav-tabs .nav-item .nav-link.active,
.nav-tabs .v2-tab-active .nav-link,
.nav-tabs .nav-link.active,
.nav[role="tablist"] .nav-item .nav-link.active {
  background-color: #007AB3 !important;
  background: #007AB3 !important;
  color: #F3F8FB !important;
  border-radius: 4px !important;
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  font-weight: 500 !important;
  padding: 0 8px !important;
}

/* Disabled tabs: lighter gray */
.nav-tabs .nav-link.disabled,
.nav-tabs .nav-item .nav-link.disabled,
.nav[role="tablist"] .nav-item .nav-link.disabled {
  color: #C4C8CC !important;
  font-style: normal !important;
  background: transparent !important;
  border: none !important;
}

/* ===== AgGrid (reused from v1) ===== */
.ag-theme-alpine {
  border-radius: 12px !important;
  overflow: hidden;
}

/* ===== Radio group (financial tabs) ===== */
.radio-group .form-check { padding-left: 0; }
.radio-group .btn-group > .form-check:not(:last-child) > .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border: 1px solid #007AB3;
  font: 400 14px Roboto, sans-serif;
  padding: 10px 16px;
  color: #49454F;
}
.radio-group .btn-group > .form-check:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  margin-left: -1px;
  border: 1px solid #007AB3;
  font: 400 14px Roboto, sans-serif;
  padding: 10px 16px;
  color: #49454F;
}
.radio-group .btn-group > .form-check > .btn.active {
  background-color: #007AB3 !important;
  border-color: #007AB3 !important;
  color: white !important;
}

/* ===== Dropdown styling ===== */
.Select-value-label { color: #007AB3 !important; font-weight: 500; }
.Select-control, .Select-control:hover {
  border: none !important; box-shadow: none !important; color: #007AB3 !important;
}
.is-focused .Select-control {
  border: none !important; box-shadow: none !important;
}

/* ===== Card styles (summary/newsfeed tabs) ===== */
.custom-card {
  border-radius: 8px;
  box-shadow: 0px 2px 8px 0px rgba(160, 174, 192, 0.20);
  margin-top: 20px;
  border: none;
}
.custom-card-body {
  color: #003781;
  font-weight: 700;
  font-family: Roboto, sans-serif;
  font-size: 20px;
  padding: 16px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.custom-card-body-sub {
  color: #003781;
  font-weight: 700;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  padding: 12px 12px 8px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.card-body { padding-left: 16px; }
.card-body p {
  font-family: Roboto, sans-serif;
  font-weight: 400;
  font-size: 14px;
  padding-left: 12px;
  color: #49454F;
  line-height: 1.6;
  margin-bottom: 0.5em;
}

/* ===== Markdown (match v1 report text styles) ===== */
.markdown {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  max-width: 100%;
  color: #003781;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 400;
}
.markdown * {
  max-width: 100%;
  box-sizing: border-box;
}
.markdown p {
  margin-top: 0;
  margin-bottom: 1em;
  line-height: 1.6;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  font-size: 14px !important;
  padding-left: 0;
  color: #49454F;
}
.markdown h1, .markdown h2, .markdown h3,
.markdown h4, .markdown h5, .markdown h6 {
  font-family: Roboto, sans-serif !important;
  font-weight: 700 !important;
  font-style: normal;
  color: #003781 !important;
  font-size: 20px !important;
  letter-spacing: 1.1px;
  padding-left: 0;
  padding-bottom: 8px;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  border-bottom: 1px solid #e0e0e0;
}
.markdown h4 { font-size: 14px !important; border-bottom: none; }
.markdown ul {
  list-style-type: "• ";
  margin-top: 0;
  padding-left: 14px;
}
.markdown ul li {
  margin-bottom: 4px;
  line-height: 1.4;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  font-size: 14px;
  padding-left: 0;
  color: #49454F;
}
.markdown ol {
  list-style: decimal inside;
  padding-left: 0;
  margin-top: 0;
}
.markdown hr {
  border: none;
  border-top: 2px solid #e0e0e0;
  margin: 1.5em 0;
}

/* ===== Highlights ===== */
mark { background-color: transparent; font-style: italic; color: #7C14CE; }

/* ===== Sources styling ===== */
.markdown p em {
  color: #007AB3 !important;
}

/* Ensure all sources text is blue, regardless of container */
.markdown em {
  color: #007AB3 !important;
}

/* Additional rule for any em tags in markdown content */
.markdown * em {
  color: #007AB3 !important;
}

/* ===== Error message ===== */
#error-message { color: #FF3B30 !important; font-weight: 400; font-size: 12px; }

/* ===== Modal ===== */
.my-modal-header {
  color: #4F5053; font-size: 20px; font-weight: 700; font-family: Roboto, sans-serif;
}
#close-info {
  background-color: #003781; color: white; border: 1px solid #003781; font-size: 14px;
}

/* ===== Disclaimer ===== */
.v2-disclaimer { padding: 10px 24px; background-color: #F9F9F9; border-top: 1px solid #DDD; }
.v2-disclaimer p { font-size: 12px; color: gray; text-align: center; }

/* ===== Landing page ===== */
.landing-page {
  width: 496px;
  margin: 0;
  padding: 0;
  font-family: Roboto, sans-serif;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Input wrapper (floating-label style) ── */
.landing-input-wrapper {
  width: 369px;
  height: 48px;
  position: relative;
  border-radius: 4px;
  background: #FFFFFF;
  outline: 1px solid #E2E8F0;
  outline-offset: -1px;
  display: flex;
  align-items: center;
}
.landing-input-wrapper .landing-input {
  width: 100%;
  height: 100%;
  padding: 4px 40px 4px 12px;
  font-size: 14px;
  font-family: Roboto, sans-serif;
  border: none;
  border-radius: 4px;
  color: #4F5053;
  background: transparent;
}
.landing-input-wrapper .landing-input:focus {
  border-color: #007AB3;
  box-shadow: 0 0 0 2px rgba(0, 122, 179, 0.15);
  outline: none;
}
.landing-input-icon {
  position: absolute;
  right: 0;
  top: 0;
  width: 40px;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ── Search button ── */
.landing-search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 24px 10px 16px;
  height: 40px;
  font-size: 14px;
  font-weight: 500;
  font-family: Roboto, sans-serif;
  line-height: 18.2px;
  background-color: #007AB3 !important;
  border: none !important;
  border-radius: 8px !important;
  color: #FFFFFF !important;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s;
}
.landing-search-btn:hover {
  background-color: #006199 !important;
}

/* ── Recent research list ── */
.landing-recent-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px;
  border-radius: 8px;
  font-family: Roboto, sans-serif;
  background-color: #F3F8FB;
}

/* ===== Sidebar ===== */
.v2-sidebar {
  width: 64px;
  min-width: 64px;
  background-color: #003781;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 16px;
  padding-bottom: 12px;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  z-index: 1001;
}
.v2-sidebar-logo {
  width: 32px;
  height: 32px;
  margin-bottom: 24px;
  object-fit: cover;
  background-color: #FFFFFF;
  border-radius: 50%;
  padding: 2px;
}
.v2-sidebar-divider {
  width: 40px;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.2);
  margin: 16px 0;
}
.v2-sidebar-spacer { flex: 1; }
.v2-sidebar-avatar {
  width: 32px;
  height: 32px;
  border-radius: 4px;
  background-color: #F3F8FB;
  color: #003781;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  font-family: Roboto, sans-serif;
}

/* ===== Header ===== */
.v2-header {
  background-color: #003781;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 24px;
  height: 56px;
  min-height: 56px;
}
.v2-header-breadcrumb {
  display: flex;
  align-items: center;
  gap: 5px;
}
.v2-header-back {
  cursor: pointer;
  display: flex;
  align-items: center;
  width: 24px;
  height: 24px;
  justify-content: center;
}
.v2-header-back i {
  color: #FFFFFF;
  font-size: 18px;
}
.v2-header-label {
  color: white;
  font-size: 14px;
  font-weight: 500;
  font-family: Roboto, sans-serif;
  line-height: 18.2px;
}
.v2-header-chevron {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.v2-header-chevron i {
  color: #FFFFFF;
  font-size: 12px;
}
#header-ehid-badge {
  background-color: #3F73B9;
  color: white;
  padding: 2px 16px;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 500;
  font-family: Roboto, sans-serif;
  line-height: 20px;
  letter-spacing: 0.25px;
}
.v2-header-actions {
  display: flex;
  align-items: center;
  gap: 24px;
}
#download-button {
  width: 30px;
  height: 30px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100px;
}
#download-button i {
  color: white;
  font-size: 20px;
}
.v2-hidden { display: none; }

/* ===== Buyer banner ===== */
.v2-banner-top-row {
  display: flex;
  align-items: center;
  gap: 17px;
}
.v2-banner-logo {
  width: 54px;
  height: 54px;
  padding: 4px;
  border-radius: 50%;
  background-color: white;
  border: 1px solid #E2E8F0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}
.v2-banner-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.v2-banner-details {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.v2-banner-name-row {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 30px;
}
#buyer-name {
  font-size: 24px;
  font-weight: 700;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 33.6px;
}
.v2-banner-insured-dot {
  width: 4px;
  height: 4px;
  border-radius: 9999px;
  background-color: #64D3A4;
  display: inline-block;
  margin-right: 8px;
}
#output-insured {
  height: 20px;
  background-color: white;
  color: #64D3A4;
  outline: 1px solid #64D3A4;
  outline-offset: -0.5px;
  padding: 8px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 400;
  font-family: Roboto, sans-serif;
  line-height: 15.6px;
  display: inline-flex;
  align-items: center;
  overflow: hidden;
}
.v2-banner-metrics {
  display: flex;
  align-items: center;
  gap: 24px;
}
.v2-metric {
  display: flex;
  align-items: center;
  gap: 4px;
}
.v2-metric-label {
  color: #8D8F93;
  font-size: 12px;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.1px;
}
.v2-metric-value {
  color: #4F5053;
  font-size: 12px;
  font-weight: 700;
  font-family: Roboto, sans-serif;
  line-height: 20px;
  letter-spacing: 0.1px;
}
.v2-metric-flag {
  width: 18px;
  height: 12px;
  object-fit: cover;
}
.v2-metric-flag-text {
  color: #4F5053;
  font-size: 12px;
  font-weight: 400;
  font-family: Roboto, sans-serif;
  line-height: 20px;
  letter-spacing: 0.1px;
}

/* ===== Landing page sections ===== */
.landing-title-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 40px;
}
.landing-title {
  color: #4F5053;
  font-size: 20px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0.1px;
}
.landing-subtitle {
  color: #8D8F93;
  font-size: 14px;
  font-weight: 500;
  line-height: 18.2px;
}
.landing-section-label {
  color: #4F5053;
  font-size: 14px;
  font-weight: 700;
  line-height: 19.6px;
  margin-bottom: 8px;
}
.landing-input-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.landing-input-info-icon {
  color: #003781;
  font-size: 20px;
}
.landing-search-icon {
  margin-right: 8px;
  font-size: 14px;
}
#landing-error {
  color: #FF3B30;
  font-size: 12px;
  margin-top: 8px;
  min-height: 18px;
}
.landing-recent-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 40px;
}
.landing-recent-title {
  color: #4F5053;
  font-size: 14px;
  font-weight: 700;
  line-height: 19.6px;
}
.landing-recent-label {
  font-size: 14px;
  font-weight: 700;
  color: #4F5053;
  line-height: 19.6px;
}
.landing-recent-date {
  font-size: 14px;
  font-weight: 400;
  color: #A0AEC0;
  line-height: 19.6px;
}
.landing-recent-left {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* ===== Layout ===== */
.v2-landing-panel {
  background: #FFFFFF;
  padding: 40px 80px 80px 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 40px;
  min-height: 100vh;
  margin: 0 auto;
}
#version {
  color: gray;
  font-size: 12px;
  padding: 8px 24px;
}

/* ===== Tab content (shared centering for all tabs) ===== */
.v2-tab-content {
  width: 100%;
  max-width: 984px;
  margin-left: auto;
  margin-right: auto;
  padding: 32px 24px;
}

/* ===== Tab General ===== */
.v2-tab-general {
  background-color: #F3F8FB;
}
.v2-tab-general-inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.v2-section-header {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  margin-bottom: 8px;
}
.v2-section-header i {
  color: #007AB3;
  font-size: 20px;
}
.v2-section-header span {
  font-size: 16px;
  font-weight: 700;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  text-transform: uppercase;
  line-height: 22.4px;
}
.v2-card {
  background-color: #FFFFFF;
  border-radius: 8px;
  box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.08);
  padding: 24px;
}
.v2-card-content {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.v2-card-row {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
.v2-grade-badge {
  width: 50px;
  height: 50px;
  padding: 4px 8px;
  background-color: #F5F5F5;  /* Default gray background for loading state */
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.v2-grade-badge-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.v2-grade-badge-label {
  font-size: 12px;
  color: #8D8F93;  /* Default gray text for loading state */
  font-weight: 400;
  font-family: Roboto, sans-serif;
  line-height: 20px;
  letter-spacing: 0.1px;
}
.v2-grade-badge-value {
  font-size: 18px;
  color: #8D8F93;  /* Default gray text for loading state */
  font-weight: 700;
  font-family: Roboto, sans-serif;
  line-height: 20px;
  letter-spacing: 0.1px;
}
.v2-company-details {
  width: 489px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.v2-company-name {
  font-size: 16px;
  font-weight: 700;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
}
.v2-detail-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: nowrap;
}
.v2-detail-item {
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}
.v2-detail-icon {
  color: #8D8F93;
  font-size: 16px;
}
.v2-detail-text {
  color: #8D8F93;
  font-size: 12px;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.1px;
}
.v2-detail-link {
  color: #8D8F93;
  font-size: 12px;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.1px;
  text-decoration: none;
}
.v2-group-info-icon {
  color: #003781;
  font-size: 16px;
}
.v2-group-info-text {
  color: #003781;
  font-size: 12px;
  font-weight: 600;
  font-family: Roboto, sans-serif;
  line-height: 20px;
  letter-spacing: 0.1px;
  cursor: pointer;
}
.v2-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.v2-tag {
  height: 20px;
  border-radius: 4px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  padding: 8px;
}
.v2-tag span {
  font-size: 12px;
  font-weight: 400;
  font-family: Roboto, sans-serif;
  line-height: 15.6px;
}
.v2-company-desc {
  font-size: 14px;
  color: #4F5053;
  line-height: 22.4px;
  font-weight: 400;
  margin: 0;
  padding: 0;
  font-family: Roboto, sans-serif;
}
.v2-key-metrics-row {
  display: flex;
  gap: 24px;
}
.v2-key-metric {
  display: flex;
  flex-direction: column;
}
.v2-key-metric-label {
  font-size: 14px;
  font-weight: 600;
  color: #8D8F93;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
}
.v2-key-metric-value {
  font-size: 14px;
  font-weight: 600;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
}
.v2-section-label {
  font-size: 14px;
  font-weight: 600;
  color: #8D8F93;
  line-height: 22.4px;
  margin-bottom: 4px;
  font-family: Roboto, sans-serif;
}
.v2-shareholders-grid {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.v2-shareholder {
  flex: 1 1 0;
  min-width: 0;
  padding: 8px;
  background-color: #F3F8FB;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.v2-shareholder-icon {
  padding: 8px;
  background-color: white;
  border-radius: 2px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.v2-shareholder-icon i {
  color: #4F5053;
  font-size: 16px;
}
.v2-shareholder-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.v2-shareholder-name {
  font-size: 14px;
  font-weight: 600;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.v2-shareholder-type {
  font-size: 12px;
  color: #8D8F93;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 19.2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.v2-shareholder-pct {
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 600;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
}

/* ── KPI cards ── */
.v2-kpi-cards-row {
  display: flex;
  justify-content: space-between;
}
.v2-kpi-card {
  width: 280px;
  padding: 16px;
  background-color: white;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.v2-kpi-card-left {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.v2-kpi-label {
  font-size: 12px;
  font-weight: 600;
  color: #8D8F93;
  font-family: Roboto, sans-serif;
  line-height: 19.2px;
  margin-bottom: 4px;
}

.v2-kpi-source-badge {
  font-size: 11px;
  font-weight: 500;
  color: #007bff;
  font-family: Roboto, sans-serif;
  line-height: 1;
  display: inline-block;
  margin-bottom: 8px;
}
.v2-kpi-value {
  font-size: 24px;
  font-weight: 600;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 38.4px;
}
.v2-kpi-meta-row {
  display: flex;
  align-items: center;
  gap: 4px;
}
.v2-kpi-meta {
  font-size: 12px;
  font-weight: 600;
  color: #8D8F93;
  font-family: Roboto, sans-serif;
  line-height: 19.2px;
}
.v2-kpi-dot {
  width: 4px;
  height: 4px;
  background-color: #D9D9D9;
  border-radius: 9999px;
}
.v2-kpi-yoy-row {
  display: flex;
  gap: 4px;
}
.v2-kpi-inner {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.v2-trend-badge {
  height: 20px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  padding: 8px;
  gap: 8px;
  overflow: hidden;
}
.v2-trend-badge span {
  font-size: 12px;
  font-weight: 600;
  font-family: Roboto, sans-serif;
  line-height: 15.6px;
}

/* ── 3-years trend ── */
.v2-years-trend {
  background-color: #F3F8FB;
  border-radius: 8px;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.v2-years-trend-title {
  font-size: 12px;
  font-weight: 600;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 19.2px;
}
.v2-years-trend-text {
  font-size: 14px;
  color: #4F5053;
  line-height: 22.4px;
  font-weight: 400;
  font-family: Roboto, sans-serif;
}

/* ── Risk drivers ── */
.v2-risk-card {
  display: flex;
  justify-content: space-between;
}
.v2-risk-column { width: 400px; }
.v2-risk-positive-title {
  font-size: 14px;
  font-weight: 600;
  color: #64D3A4;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
  margin-bottom: 24px;
}
.v2-risk-negative-title {
  font-size: 14px;
  font-weight: 600;
  color: #DF5253;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
  margin-bottom: 24px;
}
.v2-risk-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.v2-risk-item {
  display: flex;
  align-items: center;
  gap: 22px;
}
.v2-risk-item-icon {
  color: #4F5053;
  font-size: 24px;
  flex-shrink: 0;
}
.v2-risk-item-text-col {
  width: 255px;
  display: flex;
  flex-direction: column;
}
.v2-risk-item-text {
  font-size: 14px;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 22.4px;
}
.v2-risk-item-impact {
  font-size: 12px;
  font-family: Roboto, sans-serif;
  font-weight: 600;
  line-height: 19.2px;
}

/* ── Grade explanation ── */
.v2-grade-card {
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 32px;
  width: 100%;
}
.v2-grade-column {
  flex: 1;
  max-width: 400px;
  min-width: 350px;
}
.v2-grade-bip-title {
  font-size: 14px;
  font-weight: 600;
  color: #1E3A8A; /* Deep blue */
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
  margin-bottom: 24px;
}
.v2-grade-manual-title {
  font-size: 14px;
  font-weight: 600;
  color: #3B82F6; /* Light blue */
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
  margin-bottom: 24px;
}
.v2-grade-bip-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
  background-color: rgba(30, 58, 138, 0.05); /* Light deep blue background */
  padding: 16px;
  border-radius: 8px;
}
.v2-grade-bip-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
}
.v2-grade-summary-text {
  font-size: 14px;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 22.4px;
  margin: 0;
  padding: 0;
}
.v2-grade-manual-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
  background-color: rgba(59, 130, 246, 0.05); /* Light blue background */
  padding: 16px;
  border-radius: 8px;
}
.v2-grade-manual-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
}

/* ── Alerts timeline ── */
.v2-alerts-timeline {
  display: flex;
  flex-direction: column;
}
.v2-alert-row {
  display: flex;
  align-items: stretch;
  gap: 16px;
}
.v2-alert-line-col {
  width: 8px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.v2-alert-line {
  width: 1px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.v2-alert-line-inner {
  width: 1px;
  background-color: #E2E8F0;
}
.v2-alert-dot {
  width: 8px;
  height: 8px;
  min-height: 8px;
  background-color: #007AB3;
  border-radius: 1px;
  flex-shrink: 0;
}
.v2-alert-card-col { flex: 1; }
.v2-alert-card {
  background-color: #FFFFFF;
  border-radius: 8px;
  box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.08);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.v2-alert-badge-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.v2-alert-badge {
  height: 20px;
  background-color: rgba(141, 143, 147, 0.10);
  color: #8D8F93;
  padding: 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  font-family: Roboto, sans-serif;
  line-height: 15.6px;
  display: inline-flex;
  align-items: center;
  overflow: hidden;
}
.v2-alert-date {
  color: #8D8F93;
  font-size: 12px;
  font-weight: 400;
  font-family: Roboto, sans-serif;
  line-height: 15.6px;
}
.v2-alert-text-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.v2-alert-title {
  font-size: 14px;
  font-weight: 600;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  line-height: 22.4px;
}
.v2-alert-desc {
  font-size: 14px;
  font-weight: 400;
  color: #4F5053;
  line-height: 22.4px;
  font-family: Roboto, sans-serif;
}

/* ===== Financials tab ===== */
.v2-fin-controls-card {
  margin: 16px 16px 0;
  padding: 16px;
  background: #FFFFFF;
  box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.v2-fin-row {
  display: flex;
  align-items: center;
  gap: 24px;
}
.v2-fin-label {
  color: #8D8F93;
  font-size: 12px;
  font-family: Roboto, sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 19.2px;
  flex-shrink: 0;
}
.v2-fin-pills-container {
  height: 40px;
  padding: 5px 8px;
  background: #F3F8FB;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.v2-fin-pill {
  height: 30px;
  padding: 0 8px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 24px;
  color: #4F5053;
  cursor: pointer;
  white-space: nowrap;
  user-select: none;
  transition: background-color 0.15s, color 0.15s;
}
.v2-fin-pill:hover {
  background-color: rgba(0, 55, 129, 0.08);
}
.v2-fin-pill-active {
  background-color: #003781 !important;
  color: white !important;
  font-weight: 500;
}
.v2-fin-divider {
  height: 1px;
  background-color: #E2E8F0;
}
.v2-fin-toggle-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.v2-fin-toggle-text {
  font-size: 14px;
  font-family: Roboto, sans-serif;
  line-height: 26px;
}
.v2-fin-toggle-active {
  color: #007AB3;
  font-weight: 500;
}
.v2-fin-toggle-inactive {
  color: #A0AEC0;
  font-weight: 400;
}

/* Switch styling */
.v2-fin-switch .form-check-input {
  width: 36px;
  height: 20px;
  background-color: #007AB3;
  border: none;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e") !important;
}
.v2-fin-switch .form-check-input:checked {
  background-color: #007AB3;
}
.v2-fin-switch .form-check-input:focus {
  box-shadow: none;
  border: none;
}
.v2-fin-switch {
  margin-bottom: 0;
  padding-left: 0;
}
.v2-fin-switch .form-check-input {
  margin-left: 0;
  float: none;
}

/* Sort by row */
.v2-fin-sort-row {
  display: flex;
  justify-content: flex-end;
  padding: 8px 16px;
}
.v2-fin-sort-inner {
  padding: 8px;
  background: white;
  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.v2-fin-sort-label {
  color: #4F5053;
  font-size: 14px;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  line-height: 21px;
}
.v2-fin-sort-dropdown {
  width: 140px;
}
.v2-fin-sort-dropdown .Select-control {
  height: 30px !important;
  min-height: 30px !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 4px !important;
}
.v2-fin-sort-dropdown .Select-value-label {
  color: #003781 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

/* Panels container */
.v2-fin-panels {
  padding: 0 16px 16px;
}

/* AIDA gradient text styling */
.gradient-text {
  background: linear-gradient(to right, #1E3A8A, #F97316);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: bold;
}

/* Download button styling (from v1) */
.custom-btn {
    width: 30px;
    height: 30px;
    padding: 5px;
    background-color: #003781;
    border: 1px solid #003781;
}

.custom-btn i {  /* Styles the icon inside the button */
    font-size: 16px;
    color: #FFFFFF;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Button hover state */
.custom-btn:hover {
    background-color: #1E4A8C !important; /* Lighter blue on hover */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Subtle shadow effect */
}

/* Icon hover state */
.custom-btn:hover i {
    color: #FFFFFF; /* Keep white icon on hover */
}

/* Button active state */
.custom-btn:active {
    background-color: #002A5C !important;  /* Darker blue when clicked */
    box-shadow: none; /* Remove shadow effect */
}

/* Icon active state */
.custom-btn:active i {
    color: #FFFFFF; /* Keep white icon when active */
}

/* Button disabled state */
.custom-btn:disabled {
  background-color: #6B7280 !important;  /* Gray when disabled */
  border: 1px solid #6B7280 !important;
  box-shadow: none; /* Remove shadow effect */
}

/* Icon disabled state */
.custom-btn:disabled i {
  color: #FFFFFF; /* Keep white icon when disabled */
}

/* Button focus state */
.custom-btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.4); /* Blue focus outline */
}

/* Icon focus state */
.custom-btn:focus i {
    color: #FFFFFF;  /* Keep white icon when focused */
}

/* ===== Feedback buttons ===== */
.v2-feedback-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    margin-top: 8px;
}

.v2-feedback-label {
    font-size: 13px;
    color: #49454F;
    font-family: 'Roboto', Arial, sans-serif;
}

.v2-feedback-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: #fff;
    color: #49454F;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.v2-feedback-btn:hover {
    background: #f0f0f0;
    border-color: #003781;
    color: #003781;
}

.v2-feedback-btn.active {
    background: #003781;
    border-color: #003781;
    color: #fff;
}

.v2-feedback-btn:disabled {
    cursor: default;
    opacity: 0.6;
}

.v2-feedback-status {
    font-size: 13px;
    color: #003781;
    font-family: 'Roboto', Arial, sans-serif;
}

.v2-feedback-comment-box {
    padding: 0 12px 12px;
    max-width: 500px;
}

.v2-feedback-textarea {
    width: 100%;
    min-height: 70px;
    padding: 8px 10px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    font-size: 13px;
    font-family: 'Roboto', Arial, sans-serif;
    color: #49454F;
    resize: vertical;
}

.v2-feedback-textarea:focus {
    outline: none;
    border-color: #003781;
}

.v2-feedback-submit-btn {
    margin-top: 6px;
    padding: 6px 16px;
    border: none;
    border-radius: 6px;
    background: #003781;
    color: #fff;
    font-size: 13px;
    font-family: 'Roboto', Arial, sans-serif;
    cursor: pointer;
    transition: background 0.15s ease;
}

.v2-feedback-submit-btn:hover {
    background: #002a66;
}

.v2-feedback-submit-btn:disabled {
    background: #a0a0a0;
    cursor: default;
}

/* ===== Group Info tab ===== */
.v2-gi-section-header {
  display: flex;
  align-items: center;
  padding: 16px 16px 8px;
  color: #1A1A2E;
  font-size: 16px;
  font-weight: 600;
  font-family: Roboto, sans-serif;
}
.v2-gi-section-title {
  font-size: 16px;
  font-weight: 600;
  color: #1A1A2E;
  font-family: Roboto, sans-serif;
  letter-spacing: 0.5px;
}
.v2-gi-kpi-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
  padding: 16px;
  background: #FFFFFF;
  border-radius: 8px;
  box-shadow: 0px 2px 8px 0px rgba(160, 174, 192, 0.20);
  border: none;
  margin-top: 20px;
}
.v2-gi-kpi-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.v2-gi-kpi-col-title {
  font-size: 12px;
  font-weight: 600;
  color: #8D8F93;
  font-family: Roboto, sans-serif;
  letter-spacing: 0.5px;
  line-height: 20px;
}
.v2-gi-kpi-col-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 20px;
}
.v2-gi-active-count {
  font-size: 18px;
  font-weight: 700;
  color: #007AB3;
  font-family: Roboto, sans-serif;
  line-height: 20px;
}
.v2-gi-invisible {
  visibility: hidden;
}
.v2-gi-kpi-card {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  background: #FFFFFF;
  outline: 1px solid #E2E8F0;
  outline-offset: -1px;
  border-radius: 8px;
  min-height: 52px;
}
.v2-gi-kpi-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 16px;
}
.v2-gi-kpi-text {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.v2-gi-kpi-label {
  font-size: 11px;
  font-weight: 600;
  color: #4F5053;
  font-family: Roboto, sans-serif;
  letter-spacing: 0.3px;
  line-height: 14px;
}
.v2-gi-kpi-sub {
  font-size: 11px;
  font-weight: 500;
  font-family: Roboto, sans-serif;
  line-height: 14px;
}
.v2-gi-kpi-value {
  font-size: 18px;
  font-weight: 700;
  color: #1A1A2E;
  font-family: Roboto, sans-serif;
  margin-left: auto;
  flex-shrink: 0;
}

/* ===== Progress Panel ===== */
.v2-progress-panel-wrapper {
  position: fixed;
  right: 0;
  top: 120px;
  z-index: 1050;
  display: flex;
  align-items: flex-start;
  transition: top 0.1s ease-out;
}
.v2-progress-panel-wrapper.dragging {
  transition: none;
  user-select: none;
}
.v2-progress-tab {
  width: 32px;
  background-color: #003781;
  border-radius: 4px 0 0 4px;
  cursor: grab;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 6px;
  gap: 8px;
  user-select: none;
}
.v2-progress-tab:active {
  cursor: grabbing;
}
.v2-progress-tab.dragging {
  cursor: grabbing;
}
.v2-progress-tab:hover {
  background-color: #1a4a8c;
}
.v2-progress-tab i {
  color: #FFFFFF;
  font-size: 12px;
  transition: transform 0.2s;
}
.v2-progress-tab span {
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 700;
  font-family: Roboto, sans-serif;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: 2px;
}
.v2-progress-tab-open i {
  transform: rotate(180deg);
}
.v2-progress-panel {
  width: 250px;
  background: #FFFFFF;
  box-shadow: -2px 0 12px rgba(0, 0, 0, 0.12);
  border-radius: 0 0 0 8px;
  display: flex;
  flex-direction: column;
  padding: 16px;
  gap: 12px;
  max-height: calc(100vh - 140px);
  overflow-y: auto;
}
.v2-progress-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  cursor: grab;
}
.v2-progress-header:active {
  cursor: grabbing;
}
.v2-progress-header.dragging {
  cursor: grabbing;
}
.v2-progress-header-left {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.v2-progress-header-left > div {
  display: flex;
  flex-direction: column;
}
.v2-progress-title {
  font-size: 14px;
  font-weight: 700;
  color: #007AB3;
  font-family: Roboto, sans-serif;
  line-height: 20px;
}
.v2-progress-subtitle {
  font-size: 12px;
  font-weight: 400;
  color: #8D8F93;
  font-family: Roboto, sans-serif;
  line-height: 18px;
}
.v2-progress-close-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: #8D8F93;
  font-size: 14px;
  flex-shrink: 0;
}
.v2-progress-close-btn:hover {
  color: #4F5053;
}
.v2-progress-bar-container {
  display: flex;
  align-items: center;
  gap: 8px;
}
.v2-progress-bar {
  flex: 1;
  height: 6px;
  background-color: #E2E8F0;
  border-radius: 3px;
  overflow: hidden;
}
.v2-progress-bar-fill {
  height: 100%;
  background-color: #007AB3;
  border-radius: 3px;
  transition: width 0.4s ease;
}
.v2-progress-pct {
  font-size: 12px;
  font-weight: 600;
  color: #007AB3;
  font-family: Roboto, sans-serif;
  min-width: 32px;
  text-align: right;
}
.v2-progress-items {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  overflow-y: auto;
  max-height: calc(100vh - 200px);
}
.v2-progress-item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.v2-progress-item-sub {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 16px;
  padding-left: 8px;
  border-left: 2px solid #E2E8F0;
  font-size: 13px;
}
.v2-progress-item i {
  font-size: 16px;
  flex-shrink: 0;
}
.v2-progress-spinner,
.v2-progress-header-spinner {
  font-size: 0 !important;
  border-radius: 50% !important;
  animation: progress-spin 0.9s linear infinite !important;
  box-sizing: border-box !important;
  display: inline-block !important;
  flex-shrink: 0;
}
.v2-progress-spinner {
  width: 14px !important;
  height: 14px !important;
  border: 2px solid #D0E4F0 !important;
  border-top-color: #007AB3 !important;
}
.v2-progress-header-spinner {
  width: 18px !important;
  height: 18px !important;
  border: 2.5px solid #D0E4F0 !important;
  border-top-color: #007AB3 !important;
  margin-top: 2px;
}
.v2-progress-item-text {
  font-size: 14px;
  font-family: Roboto, sans-serif;
  line-height: 20px;
}
.v2-progress-item-text.pending {
  color: #C4C8CC;
  font-weight: 400;
}
.v2-progress-item-text.loading {
  color: #007AB3;
  font-weight: 600;
}
.v2-progress-item-text.done {
  color: #4F5053;
  font-weight: 400;
}

/* 二级项目的文本样式 */
.v2-progress-item-sub .v2-progress-item-text {
  font-size: 13px;
  line-height: 18px;
}

/* Status icons */
.v2-progress-done {
  color: #64D3A4 !important;
}
.v2-progress-warning {
  color: #FFC107 !important;  /* Standard warning amber color */
}
@keyframes progress-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Subgrade Table Styles */
.subgrade-table-wrapper {
  margin-top: 10px;
}

.subgrade-table-container .dash-table-container {
  border-radius: 6px;
  overflow: hidden;
}

.subgrade-table-container .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table {
  border-collapse: collapse;
  width: 100%;
}

.subgrade-table-container .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table th {
  background-color: #f8f9fa !important;
  font-weight: 600;
  color: #495057;
  border-bottom: 2px solid #dee2e6;
}

.subgrade-table-container .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table td {
  border-bottom: 1px solid #e9ecef;
}

.subgrade-table-container .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table tr:hover {
  background-color: #f5f7fa;
}
