/* IPO profile page — clean financial report layout. */
.ipo-detail-page { background: #ffffff; }
.ipo-detail-main { padding: 42px 0 84px; background: #ffffff; }
.ipo-detail-main > .container { width: min(1180px, calc(100% - 40px)); }
.ipo-back-link { margin-bottom: 16px; font-size: .78rem; }

.ipo-detail-hero { grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; padding: 32px 34px; border-radius: 22px; box-shadow: 0 18px 44px rgba(49, 17, 105, .16); }
.ipo-detail-hero h1 { max-width: 760px; font-size: clamp(2rem, 4vw, 3.15rem); }
.ipo-detail-hero aside { min-height: 150px; }
.ipo-detail-disclosure { margin: 14px 0 18px; padding: 11px 14px; }

.ipo-summary-card,
.ipo-application-guide,
.ipo-detail-layout { width: 100%; }
.ipo-summary-card { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .9fr); gap: 22px; margin: 18px 0; padding: 24px; border: 1px solid #e5dcef; border-radius: 20px; background: #fff; box-shadow: 0 8px 26px rgba(48, 23, 94, .045); }
.ipo-summary-copy p { max-width: 760px; color: #655b73; font-size: .83rem; line-height: 1.72; }
.ipo-summary-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-content: start; }
.ipo-summary-metrics > div { min-width: 0; padding: 13px; border: 1px solid #eee7f5; border-radius: 12px; background: #faf8ff; }
.ipo-summary-metrics span { display: block; color: #867a95; font-size: .66rem; font-weight: 700; }
.ipo-summary-metrics b { display: block; margin-top: 4px; color: #321b54; font-size: .8rem; overflow-wrap: anywhere; }

.ipo-application-guide { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 17px; margin: 18px 0; }
.ipo-reservation-card,
.ipo-lot-card,
.ipo-detail-card,
.ipo-report-card { min-width: 0; padding: 22px; border: 1px solid #e6ddf0; border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(47, 20, 93, .04); }
.ipo-reservation-card h2,
.ipo-lot-card h2,
.ipo-detail-card h2 { font-size: 1.1rem; }
.ipo-reservation-card p,
.ipo-lot-card > p { color: #746980; font-size: .79rem; line-height: 1.7; }

.ipo-detail-layout { grid-template-columns: minmax(0, 1fr) 292px; align-items: start; gap: 18px; }
.ipo-detail-content,
.ipo-detail-sidebar { min-width: 0; gap: 18px; }
.ipo-detail-sidebar { position: sticky; top: 92px; }
.ipo-detail-card { box-shadow: none; }
.ipo-detail-card h2 { margin-bottom: 12px; }
.ipo-company-description p,
.ipo-company-hero-copy p { color: #665b75; font-size: .82rem; line-height: 1.78; }
.ipo-company-description strong { color: #2f1b50; font-weight: 750; }
.ipo-company-description-list { margin: 10px 0 14px 20px; padding: 0; color: #665b75; font-size: .82rem; line-height: 1.72; }
.ipo-company-description-list li { margin-bottom: 6px; }
.ipo-company-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.ipo-company-facts > div { min-width: 0; padding: 12px; border: 1px solid #ece5f4; border-radius: 11px; background: #fbfaff; }
.ipo-company-facts span { display: block; color: #857a93; font-size: .62rem; font-weight: 700; }
.ipo-company-facts b { display: block; margin-top: 4px; color: #382155; font-size: .73rem; overflow-wrap: anywhere; }

/* Desktop report table styles */
.ipo-detail-main .ipo-glance-table-wrap,
.ipo-detail-main .ipo-report-table-wrap,
.ipo-detail-main .ipo-lot-table-wrap,
.ipo-detail-main .ipo-listings-table-wrap {
  margin-top: 14px;
  border: 1px solid #e8e0f1;
  border-radius: 12px;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  background: #fff;
}
.ipo-detail-main .ipo-glance-table,
.ipo-detail-main .ipo-dates-table,
.ipo-detail-main .ipo-report-table,
.ipo-detail-main .ipo-lot-table,
.ipo-detail-main .ipo-listings-table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: auto; }
.ipo-detail-main .ipo-glance-table th,
.ipo-detail-main .ipo-glance-table td,
.ipo-detail-main .ipo-dates-table th,
.ipo-detail-main .ipo-dates-table td,
.ipo-detail-main .ipo-report-table th,
.ipo-detail-main .ipo-report-table td,
.ipo-detail-main .ipo-lot-table th,
.ipo-detail-main .ipo-lot-table td { min-width: 0; padding: 11px 14px; border: 1px solid #eee7f5; color: #3e3151; font-size: .86rem; line-height: 1.45; overflow-wrap: normal; word-break: normal; vertical-align: middle; }
.ipo-detail-main .ipo-glance-table th,
.ipo-detail-main .ipo-dates-table th { width: 44%; background: #faf8fe; color: #6d6080; font-weight: 750; text-align: left; }
.ipo-detail-main .ipo-glance-table td,
.ipo-detail-main .ipo-dates-table td { color: #30194f; font-weight: 750; text-align: right; }
.ipo-detail-main .ipo-report-table thead th,
.ipo-detail-main .ipo-lot-table thead th { background: #f5f0fb; color: #645676; font-size: .80rem; font-weight: 800; text-align: left; }
.ipo-detail-main .ipo-report-table tbody td:first-child,
.ipo-detail-main .ipo-lot-table tbody td:first-child { color: #3c225f; font-weight: 750; }
.ipo-detail-main .ipo-report-table tbody tr:nth-child(even) td,
.ipo-detail-main .ipo-lot-table tbody tr:nth-child(even) td { background: #fcfbfe; }
.ipo-detail-main .ipo-lot-table.ipo-glance-table .ipo-lot-group > * { background: #f5f0fb; color: #5521a7; font-weight: 800; }
.ipo-detail-main .ipo-lot-table.ipo-glance-table .ipo-lot-group th { width: 44%; text-align: left; }
.ipo-detail-main .ipo-lot-table.ipo-glance-table .ipo-lot-group td { text-align: right; }

.ipo-report-card { margin-top: 18px; box-shadow: none; }
.ipo-report-heading { padding-bottom: 12px; }
.ipo-report-heading h3 { font-size: 1.05rem; }
.ipo-report-heading p { font-size: .78rem; }
.ipo-financials-mobile-table,
.ipo-holding-mobile-table,
.ipo-lot-mobile-table { display: none !important; }

/* Desktop specific overrides */
.ipo-detail-main table.ipo-report-table.ipo-proceeds-table th:first-child,
.ipo-detail-main table.ipo-report-table.ipo-proceeds-table td:first-child { width: 68%; text-align: left; white-space: normal; word-break: normal; }
.ipo-detail-main table.ipo-report-table.ipo-proceeds-table th:last-child,
.ipo-detail-main table.ipo-report-table.ipo-proceeds-table td:last-child { width: 32%; text-align: right; white-space: nowrap; font-weight: 800; color: #5b21b6; }

.ipo-detail-main table.ipo-report-table.ipo-valuation-table th:first-child,
.ipo-detail-main table.ipo-report-table.ipo-valuation-table td:first-child { width: 62%; text-align: left; white-space: normal; word-break: normal; }
.ipo-detail-main table.ipo-report-table.ipo-valuation-table th:last-child,
.ipo-detail-main table.ipo-report-table.ipo-valuation-table td:last-child { width: 38%; text-align: right; white-space: nowrap; font-weight: 800; color: #5b21b6; }

.ipo-detail-main table.ipo-report-table.ipo-holding-table { min-width: 600px; width: 100%; table-layout: auto; }
.ipo-detail-main table.ipo-report-table.ipo-holding-table thead th { text-align: left; white-space: normal; }
.ipo-detail-main table.ipo-report-table.ipo-holding-table thead th:nth-child(1),
.ipo-detail-main table.ipo-report-table.ipo-holding-table tbody td:nth-child(1) { text-align: left; width: 30%; white-space: normal; word-break: normal; }
.ipo-detail-main table.ipo-report-table.ipo-holding-table thead th:nth-child(2),
.ipo-detail-main table.ipo-report-table.ipo-holding-table tbody td:nth-child(2),
.ipo-detail-main table.ipo-report-table.ipo-holding-table thead th:nth-child(3),
.ipo-detail-main table.ipo-report-table.ipo-holding-table tbody td:nth-child(3) { text-align: center; width: 15%; white-space: nowrap; }
.ipo-detail-main table.ipo-report-table.ipo-holding-table thead th:nth-child(4),
.ipo-detail-main table.ipo-report-table.ipo-holding-table tbody td:nth-child(4) { text-align: left; width: 40%; white-space: normal; word-break: normal; font-size: .82rem; line-height: 1.45; }

.ipo-detail-main table.ipo-report-table.ipo-promoters-table { min-width: 600px; width: 100%; table-layout: auto; }
.ipo-detail-main table.ipo-report-table.ipo-promoters-table thead th:nth-child(1),
.ipo-detail-main table.ipo-report-table.ipo-promoters-table tbody td:nth-child(1) { width: 24%; font-weight: 750; color: #351c56; text-align: left; }
.ipo-detail-main table.ipo-report-table.ipo-promoters-table thead th:nth-child(2),
.ipo-detail-main table.ipo-report-table.ipo-promoters-table tbody td:nth-child(2) { width: 26%; text-align: left; }
.ipo-detail-main table.ipo-report-table.ipo-promoters-table thead th:nth-child(3),
.ipo-detail-main table.ipo-report-table.ipo-promoters-table tbody td:nth-child(3) { width: 38%; font-size: .82rem; line-height: 1.45; text-align: left; }
.ipo-detail-main table.ipo-report-table.ipo-promoters-table thead th:nth-child(4),
.ipo-detail-main table.ipo-report-table.ipo-promoters-table tbody td:nth-child(4) { width: 12%; text-align: center; white-space: nowrap; }

.ipo-tag-badge { display: inline-block; padding: 3px 8px; border-radius: 6px; background: #f3e8ff; color: #6b21a8; font-size: .75rem; font-weight: 700; }

.ipo-detail-main table.ipo-report-table.ipo-financials-table { min-width: 720px; }
.ipo-detail-main table.ipo-report-table.ipo-financials-table thead th:not(:first-child),
.ipo-detail-main table.ipo-report-table.ipo-financials-table td:not(:first-child) { text-align: right; white-space: nowrap; }

.ipo-detail-main table.ipo-listings-table { min-width: 680px; width: 100%; border-collapse: collapse; }
.ipo-detail-main table.ipo-listings-table th,
.ipo-detail-main table.ipo-listings-table td { padding: 10px 12px; font-size: .80rem; border: 1px solid #eee7f5; white-space: nowrap; }
.ipo-detail-main table.ipo-listings-table thead th { background: #f5f0fb; color: #645676; font-size: .78rem; font-weight: 800; text-align: right; }
.ipo-detail-main table.ipo-listings-table thead th:first-child { text-align: left; }
.ipo-detail-main table.ipo-listings-table tbody td:first-child { text-align: left; color: #5b21b6; font-weight: 750; }
.ipo-detail-main table.ipo-listings-table tbody td:not(:first-child) { text-align: right; }

/* Responsive Layout (Tablet & Below) */
@media (max-width: 860px) {
  .ipo-summary-card,
  .ipo-application-guide,
  .ipo-detail-layout { grid-template-columns: 1fr; }
  .ipo-detail-sidebar { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ipo-detail-sidebar .ipo-detail-card:last-child { grid-column: 1 / -1; }
  .ipo-company-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile Friendly Tables & Layout (< 576px) */
@media (max-width: 576px) {
  .ipo-detail-main { padding: 20px 0 48px; }
  .ipo-detail-main > .container {
    width: min(calc(100% - 20px), 520px);
    max-width: calc(100% - 20px);
    margin-left: auto;
    margin-right: auto;
  }
  .ipo-back-link { margin: 0 2px 10px; font-size: .72rem; }
  .ipo-detail-hero { grid-template-columns: minmax(0, 1fr) !important; gap: 14px; padding: 20px 16px; border-radius: 16px; }
  .ipo-detail-hero h1 { margin: 8px 0 6px; font-size: 1.65rem; letter-spacing: -.04em; }
  .ipo-detail-hero p { font-size: .75rem; line-height: 1.6; }
  .ipo-detail-hero aside { width: 100%; min-height: auto; padding: 14px; }
  .ipo-detail-disclosure { margin: 10px 0 12px; padding: 9px; font-size: .63rem; }
  .ipo-summary-card,
  .ipo-application-guide { gap: 12px; margin: 12px 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
  .ipo-summary-copy,
  .ipo-summary-metrics,
  .ipo-reservation-card,
  .ipo-lot-card,
  .ipo-detail-card,
  .ipo-report-card { padding: 15px; border-radius: 14px; }
  .ipo-summary-copy { border: 1px solid #e6ddf0; border-radius: 14px; background: #fff; }
  .ipo-summary-copy p { font-size: .74rem; line-height: 1.65; }
  .ipo-summary-metrics { gap: 8px; }
  .ipo-summary-metrics > div { padding: 9px; }
  .ipo-summary-metrics b { font-size: .71rem; }
  .ipo-reservation-card h2,
  .ipo-lot-card h2,
  .ipo-detail-card h2 { font-size: .98rem; }
  .ipo-reservation-card p,
  .ipo-lot-card > p { font-size: .73rem; }
  .ipo-detail-layout { gap: 12px; }
  .ipo-detail-content,
  .ipo-detail-sidebar { gap: 12px; }
  .ipo-detail-sidebar { grid-template-columns: 1fr; }
  .ipo-detail-sidebar .ipo-detail-card:last-child { grid-column: auto; }
  .ipo-company-description p,
  .ipo-company-hero-copy p { font-size: .75rem; line-height: 1.65; }
  .ipo-company-facts { grid-template-columns: 1fr; gap: 8px; }

  /* Mobile Table Container System */
  .ipo-detail-main .ipo-glance-table-wrap,
  .ipo-detail-main .ipo-report-table-wrap,
  .ipo-detail-main .ipo-lot-table-wrap {
    margin-top: 10px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    border: 1px solid #e5d9f0 !important;
    border-radius: 12px !important;
    background: #fff !important;
  }

  .ipo-detail-main table.ipo-report-table,
  .ipo-detail-main table.ipo-glance-table,
  .ipo-detail-main table.ipo-dates-table,
  .ipo-detail-main table.ipo-lot-table {
    display: table !important;
    width: 100% !important;
    border-collapse: collapse !important;
  }

  .ipo-detail-main table.ipo-report-table thead,
  .ipo-detail-main table.ipo-lot-table thead {
    display: table-header-group !important;
  }

  .ipo-detail-main table.ipo-report-table tbody,
  .ipo-detail-main table.ipo-lot-table tbody {
    display: table-row-group !important;
  }

  .ipo-detail-main table.ipo-report-table tr,
  .ipo-detail-main table.ipo-lot-table tr {
    display: table-row !important;
  }

  .ipo-detail-main table.ipo-report-table th,
  .ipo-detail-main table.ipo-report-table td,
  .ipo-detail-main table.ipo-glance-table th,
  .ipo-detail-main table.ipo-glance-table td,
  .ipo-detail-main table.ipo-dates-table th,
  .ipo-detail-main table.ipo-dates-table td,
  .ipo-detail-main table.ipo-lot-table th,
  .ipo-detail-main table.ipo-lot-table td {
    display: table-cell !important;
    padding: 9px 11px !important;
    border: 1px solid #eee7f5 !important;
    font-size: .83rem !important;
    line-height: 1.4 !important;
    vertical-align: middle !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .ipo-detail-main table.ipo-report-table thead th,
  .ipo-detail-main table.ipo-lot-table thead th {
    background: #f5f0fb !important;
    color: #5a4674 !important;
    font-size: .78rem !important;
    font-weight: 800 !important;
    letter-spacing: .01em;
  }

  /* 1. Promoters and Holding Pattern Table */
  .ipo-detail-main table.ipo-report-table.ipo-holding-table {
    table-layout: auto !important;
    min-width: 440px !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-holding-table thead th {
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    padding: 8px 6px !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-holding-table thead th:first-child,
  .ipo-detail-main table.ipo-report-table.ipo-holding-table tbody td:first-child {
    min-width: 130px !important;
    width: auto !important;
    text-align: left !important;
    font-weight: 750 !important;
    color: #351c56 !important;
    background: #fdfcff !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-holding-table td {
    text-align: center !important;
    font-weight: 700 !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-holding-table thead th:last-child,
  .ipo-detail-main table.ipo-report-table.ipo-holding-table tbody td:last-child {
    text-align: left !important;
    min-width: 180px !important;
    font-size: .80rem !important;
    font-weight: 500 !important;
    white-space: normal !important;
    word-break: normal !important;
  }

  /* 2. Objects of the Issue & Use of Proceeds Table */
  .ipo-detail-main table.ipo-report-table.ipo-proceeds-table {
    table-layout: auto !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-proceeds-table th:first-child,
  .ipo-detail-main table.ipo-report-table.ipo-proceeds-table td:first-child {
    width: 65% !important;
    text-align: left !important;
    white-space: normal !important;
    word-break: normal !important;
    font-weight: 600 !important;
    color: #352150 !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-proceeds-table th:last-child,
  .ipo-detail-main table.ipo-report-table.ipo-proceeds-table td:last-child {
    width: 35% !important;
    text-align: right !important;
    white-space: normal !important;
    word-break: normal !important;
    font-weight: 800 !important;
    color: #5b21b6 !important;
  }

  /* 3. Company Financials Table */
  .ipo-detail-main table.ipo-report-table.ipo-financials-table {
    table-layout: auto !important;
    min-width: 500px !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-financials-table thead th {
    text-align: right !important;
    white-space: nowrap !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-financials-table thead th:first-child,
  .ipo-detail-main table.ipo-report-table.ipo-financials-table tbody td:first-child {
    min-width: 120px !important;
    width: auto !important;
    text-align: left !important;
    white-space: nowrap !important;
    font-weight: 800 !important;
    color: #341f53 !important;
    background: #fcfbfe !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-financials-table td {
    text-align: right !important;
    white-space: nowrap !important;
    font-weight: 650 !important;
    color: #2e184b !important;
  }

  /* 4. Company Valuation / KPIs Table */
  .ipo-detail-main table.ipo-report-table.ipo-valuation-table {
    table-layout: auto !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-valuation-table th:first-child,
  .ipo-detail-main table.ipo-report-table.ipo-valuation-table td:first-child {
    width: 60% !important;
    text-align: left !important;
    white-space: normal !important;
    word-break: normal !important;
    font-weight: 700 !important;
    color: #3b245a !important;
  }
  .ipo-detail-main table.ipo-report-table.ipo-valuation-table th:last-child,
  .ipo-detail-main table.ipo-report-table.ipo-valuation-table td:last-child {
    width: 40% !important;
    text-align: right !important;
    white-space: nowrap !important;
    font-weight: 800 !important;
    color: #5b21b6 !important;
  }

  /* 5. IPO Facts & Timeline tables */
  .ipo-detail-main .ipo-glance-table th,
  .ipo-detail-main .ipo-dates-table th { width: 48% !important; text-align: left !important; font-weight: 700 !important; color: #695a7b !important; background: #faf8fe !important; }
  .ipo-detail-main .ipo-glance-table td,
  .ipo-detail-main .ipo-dates-table td { width: 52% !important; text-align: right !important; font-weight: 800 !important; color: #30194f !important; }

  /* 6. IPO Lot Size Table (.ipo-lot-table) */
  .ipo-detail-main table.ipo-lot-table {
    table-layout: auto !important;
    min-width: 440px !important;
    display: table !important;
  }
  .ipo-detail-main table.ipo-lot-table thead th {
    text-align: center !important;
    white-space: nowrap !important;
  }
  .ipo-detail-main table.ipo-lot-table thead th:first-child,
  .ipo-detail-main table.ipo-lot-table tbody td:first-child {
    min-width: 130px !important;
    width: auto !important;
    text-align: left !important;
    font-weight: 750 !important;
    color: #5720ae !important;
    background: #fdfcff !important;
  }
  .ipo-detail-main table.ipo-lot-table td:nth-child(2),
  .ipo-detail-main table.ipo-lot-table td:nth-child(3) {
    text-align: center !important;
    font-weight: 700 !important;
  }
  .ipo-detail-main table.ipo-lot-table td:last-child {
    text-align: right !important;
    font-weight: 800 !important;
    color: #351c56 !important;
    white-space: nowrap !important;
  }

  /* Prevent page horizontal stretching */
  html,
  body.ipo-detail-page {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
}

/* FAQ Accordion Styling */
.ipo-faq-card h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #311c52;
}
.ipo-faq-card h2 i {
  color: #7c3aed;
}
.ipo-faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}
.ipo-faq-item {
  border: 1px solid #ebdff8;
  border-radius: 12px;
  overflow: hidden;
  background: #fdfcff;
  transition: border-color 0.2s, background 0.2s;
}
.ipo-faq-item[open] {
  border-color: #cbb2eb;
  background: #fff;
}
.ipo-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  font-size: 0.86rem;
  font-weight: 750;
  color: #321d53;
  cursor: pointer;
  list-style: none;
}
.ipo-faq-item summary::-webkit-details-marker {
  display: none;
}
.ipo-faq-item summary i {
  font-size: 0.78rem;
  color: #7c3aed;
  transition: transform 0.2s;
}
.ipo-faq-item[open] summary i {
  transform: rotate(180deg);
}
.ipo-faq-item p {
  padding: 0 16px 14px 16px;
  margin: 0;
  font-size: 0.82rem;
  color: #5f5470;
  line-height: 1.65;
}
.ipo-faq-item p b {
  color: #321d53;
}

/* Interactive Investment Calculator Widget */
.ipo-lot-calc-widget {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #e2d7f2;
  border-radius: 14px;
  background: linear-gradient(135deg, #fbf8ff 0%, #f4edfc 100%);
  box-shadow: 0 4px 16px rgba(88, 32, 170, 0.05);
}
.ipo-lot-calc-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: #6d28d9;
  font-size: .82rem;
  font-weight: 800;
}
.ipo-lot-calc-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 16px;
  align-items: center;
}
.ipo-lot-calc-field label {
  display: block;
  margin-bottom: 6px;
  color: #554868;
  font-size: .75rem;
  font-weight: 700;
}
.ipo-lot-calc-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid #d9c9ee;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  width: max-content;
}
.ipo-lot-calc-stepper button {
  width: 36px;
  height: 36px;
  border: 0;
  background: #f3ecfb;
  color: #5b21b6;
  font-size: .85rem;
  cursor: pointer;
  transition: background .2s;
}
.ipo-lot-calc-stepper button:hover {
  background: #e6d7f8;
}
.ipo-lot-calc-stepper input {
  width: 60px;
  height: 36px;
  border: 0;
  text-align: center;
  font-size: .92rem;
  font-weight: 800;
  color: #311c52;
  outline: none;
}
.ipo-lot-calc-results {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 10px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #eee5f7;
}
.ipo-lot-calc-results > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ipo-lot-calc-results span {
  font-size: .62rem;
  color: #837595;
  font-weight: 700;
  text-transform: uppercase;
}
.ipo-lot-calc-results b {
  font-size: .82rem;
  color: #311c52;
}

@media (max-width: 576px) {
  .ipo-lot-calc-body {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .ipo-lot-calc-results {
    grid-template-columns: repeat(3, 1fr);
    padding: 8px;
  }
  .ipo-lot-calc-results b {
    font-size: .74rem;
  }

  /* Floating Mobile Apply Bar */
  .ipo-mobile-apply-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 16px;
    background: #1f0b3e;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.25);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }
  .ipo-mobile-apply-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
  }
  .ipo-mobile-apply-info span {
    color: #ded5ed;
    font-size: .74rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 600;
  }
  .ipo-mobile-apply-info b {
    color: #fff;
    font-size: .85rem;
  }
  .ipo-mobile-apply-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border-radius: 999px;
    background: linear-gradient(135deg, #7c3aed, #6d28d9);
    color: #fff !important;
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none !important;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(109, 40, 217, 0.4);
  }
  .ipo-detail-main {
    padding-bottom: 74px !important;
  }
}
@media (min-width: 577px) {
  .ipo-mobile-apply-bar {
    display: none !important;
  }
}
