/* insider-table.css — Shared styles for insider trading table pages
   Prefix: rt- (realtime/ranking tables)
   Pages: realtime/D001, realtime/D002, corp/top100/buy|sell, reporter/top100/buy|sell
*/

.rt-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: var(--space-6) var(--space-4) var(--space-10);
}

/* Hero */
.rt-hero {
    margin-bottom: var(--space-6);
}

.rt-hero-title {
    font-size: 22px;
    font-weight: 600;
    color: var(--color-text-primary);
    margin: 0 0 var(--space-1) 0;
    line-height: 1.3;
}

.rt-hero-title .rt-buy-label {
    color: var(--color-bull);
}

.rt-hero-title .rt-sell-label {
    color: var(--color-bear);
}

.rt-hero-meta {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-2);
}

.rt-meta-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-family: var(--font-mono);
    color: var(--color-text-tertiary);
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    padding: 3px 10px;
}

.rt-meta-badge svg {
    width: 12px;
    height: 12px;
}

.rt-meta-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-bull);
    animation: rt-pulse 2s ease-in-out infinite;
}

@keyframes rt-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

.rt-meta-date {
    font-size: 13px;
    font-family: var(--font-mono);
    color: var(--color-text-secondary);
}

/* Navigation pills (buy/sell toggle for top100) */
.rt-nav-pills {
    display: flex;
    gap: var(--space-1);
    margin-bottom: var(--space-4);
}

.rt-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-secondary);
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.rt-pill:hover {
    color: var(--color-text-primary);
    border-color: var(--color-text-tertiary);
}

.rt-pill.rt-pill-active {
    color: var(--color-bg-primary);
    background: var(--color-text-primary);
    border-color: var(--color-text-primary);
}

.rt-pill-buy.rt-pill-active {
    background: var(--color-bull);
    border-color: var(--color-bull);
    color: var(--color-text-inverse);
}

.rt-pill-sell.rt-pill-active {
    background: var(--color-bear);
    border-color: var(--color-bear);
    color: var(--color-text-inverse);
}

/* Table card */
.rt-table-card {
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* 좁은 모바일 폭에서 보고자 이름(예: "Wellington Management Company LLP")이 길어
   테이블이 카드보다 넓어질 때, 우측이 묵묵히 잘리지 않도록 내부 래퍼에 가로 스크롤을
   허용한다. 카드 자체의 border-radius 클리핑은 .rt-table-card overflow:hidden 으로 유지. */
.rt-table-card #infinite_table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.rt-table-card .table {
    margin: 0;
    width: 100%;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-primary);
    border-collapse: collapse;
}

.rt-table-card .table thead th {
    font-size: 12px;
    font-weight: 500;
    color: var(--color-text-tertiary);
    padding: 10px 12px;
    border-bottom: 1px solid var(--color-border);
    background: transparent;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}

.rt-table-card .table tbody tr {
    transition: background var(--transition-fast);
}

.rt-table-card .table tbody tr:hover {
    background: rgba(127, 132, 156, 0.06);
}

.rt-table-card .table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
}

.rt-table-card .table tbody tr:last-child td {
    border-bottom: none;
}

/* Table cell utilities */
.rt-cell-name {
    text-align: left;
    font-weight: 500;
}

.rt-cell-name a {
    color: var(--color-text-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.rt-cell-name a:hover {
    color: var(--color-accent);
}

.rt-cell-sub {
    font-size: 11px;
    color: var(--color-text-tertiary);
    margin-top: 1px;
}

.rt-cell-num {
    text-align: right;
    font-family: var(--font-mono);
    font-size: 13px;
    /* "279억 7480만 원" 같은 공백 포함 금액이 모바일 좁은 셀에서 줄바꿈되어 3줄로 깨지는 것을 방지.
       테이블이 가로 스크롤 가능한 구조이므로 nowrap 안전. */
    white-space: nowrap;
}

.rt-cell-center {
    text-align: center;
}

.rt-cell-rank {
    text-align: center;
    font-family: var(--font-mono);
    color: var(--color-text-tertiary);
    width: 40px;
    min-width: 40px;
}

/* Buy/Sell badge */
.rt-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-family: var(--font-mono);
    font-weight: 500;
}

.rt-badge-buy {
    color: var(--color-bull-fg);
    background: var(--color-bull-bg);
}

.rt-badge-sell {
    color: var(--color-bear-fg);
    background: var(--color-bear-bg);
}

/* Amount cell with color */
.rt-amount-positive {
    color: var(--color-bull);
}

.rt-amount-negative {
    color: var(--color-bear);
}

/* External link icon */
.rt-ext-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    color: var(--color-text-tertiary);
    transition: all var(--transition-fast);
}

.rt-ext-link:hover {
    color: var(--color-accent);
    background: rgba(127, 132, 156, 0.08);
}

.rt-ext-link svg {
    width: 14px;
    height: 14px;
}

/* Buy/Sell count cells */
.rt-buy-count {
    color: var(--color-bull);
    font-family: var(--font-mono);
}

.rt-sell-count {
    color: var(--color-bear);
    font-family: var(--font-mono);
}

/* Pct change */
.rt-pct-up {
    color: var(--color-bull);
    font-family: var(--font-mono);
}

.rt-pct-down {
    color: var(--color-bear);
    font-family: var(--font-mono);
}

.rt-pct-neutral {
    color: var(--color-text-tertiary);
    font-family: var(--font-mono);
}

/* Back link */
.rt-back-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--color-text-tertiary);
    text-decoration: none;
    margin-bottom: var(--space-4);
    transition: color var(--transition-fast);
}

.rt-back-link:hover {
    color: var(--color-text-primary);
}

.rt-back-link svg {
    width: 14px;
    height: 14px;
}

/* Responsive */
@media (max-width: 767px) {
    .rt-container {
        padding: var(--space-4) var(--space-3) var(--space-8);
    }

    .rt-hero-title {
        font-size: 18px;
    }

    .rt-table-card .table thead th,
    .rt-table-card .table tbody td {
        padding: 8px 8px;
        font-size: 12px;
    }

    .rt-cell-sub {
        font-size: 10px;
    }

    .rt-mobile-hide {
        display: none !important;
    }

    /* 모바일에서 가로 스크롤 가능함을 시각적으로 알려주는 우측 페이드.
       bond-list 의 .bl-table-wrap 패턴과 동일. */
    .rt-table-card #infinite_table {
        -webkit-mask-image: linear-gradient(to right, black calc(100% - 16px), transparent 100%);
        mask-image: linear-gradient(to right, black calc(100% - 16px), transparent 100%);
    }
}

@media (max-width: 480px) {
    .rt-hero-title {
        font-size: 16px;
    }

    .rt-hero-meta {
        flex-wrap: wrap;
        gap: var(--space-2);
    }
}
