/* International IPO calendar (/Ipo/JAPAN, /Ipo/HONGKONG, /Ipo/KOREA, ...), contract
   intl-ipo-calendar-v1 §8.1. Colours come from the site tokens (site.css), never raw hex. The muted
   note colour (.ipo-us-note, us-ipo.css) is the AA-measured --text-muted token in both themes. */

#intlIpoCalendar .intl-ipo-table th,
#intlIpoCalendar .intl-ipo-table td { white-space: nowrap; }
#intlIpoCalendar .intl-ipo-table td:first-child,
#intlIpoCalendar .intl-ipo-table th:first-child { white-space: normal; min-width: 12rem; }
#intlIpoCalendar .intl-ipo-empty { color: var(--text-muted); }
#intlIpoCalendar .intl-ipo-official-link { color: var(--accent); }
#intlIpoCalendar .intl-ipo-notes { padding-left: 1.1rem; }

/* Tablet: the table keeps every column and scrolls inside its own card, as the US calendar does. */
@media (min-width: 576px) and (max-width: 991.98px) {
    #intlIpoCalendar .intl-ipo-table { font-size: .875rem; }
}

/* Phone and print: a dense row of up to eleven published terms becomes a stacked card per issue.
   Every column survives, labelled by its own header (data-label), so no published figure is dropped
   to fit the width — on paper a scrolling table would lose its right-hand columns. */
@media print, (max-width: 575.98px) {
    #intlIpoCalendar .table-responsive { overflow: visible; }
    #intlIpoCalendar .intl-ipo-table tr { break-inside: avoid; }
    #intlIpoCalendar .intl-ipo-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    #intlIpoCalendar .intl-ipo-table,
    #intlIpoCalendar .intl-ipo-table tbody,
    #intlIpoCalendar .intl-ipo-table tr,
    #intlIpoCalendar .intl-ipo-table td { display: block; width: 100%; }
    #intlIpoCalendar .intl-ipo-table tr { border-bottom: 1px solid var(--border-subtle); padding: .5rem 0; }
    #intlIpoCalendar .intl-ipo-table td {
        display: flex; justify-content: space-between; gap: .75rem;
        border: 0; padding: .2rem .75rem; text-align: right; white-space: normal;
    }
    #intlIpoCalendar .intl-ipo-table td::before {
        content: attr(data-label); color: var(--text-muted); text-align: left; flex: 0 0 auto; max-width: 45%;
    }
    #intlIpoCalendar .intl-ipo-table td:first-child { min-width: 0; }
    #intlIpoCalendar .intl-ipo-table td:empty { display: none; }
}
