
    .bulk-wrap {
        max-width: 1180px;
        margin: 0 auto;
        padding: 1.5rem 1.1rem 3rem;
    }

    .bulk-header {
        margin-bottom: 1.25rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--bd-border);
    }

    .bulk-header h1 {
        font-size: clamp(1.25rem, 3vw, 1.625rem);
        font-weight: 800;
        color: var(--bd-text);
        letter-spacing: -.02em;
        line-height: 1.2;
        margin-bottom: .35rem;
    }

    .bulk-header p {
        font-size: .875rem;
        color: var(--bd-text-muted);
        margin: 0;
    }

    .bulk-card {
        background: var(--bd-surface);
        border: 1px solid var(--bd-border);
        border-radius: var(--r-xl);
        padding: 1.1rem 1.25rem;
        margin-bottom: .9rem;
    }

    .bulk-form .field-block {
        margin-bottom: .85rem;
    }

    .bulk-form label {
        display: block;
        font-size: .78rem;
        font-weight: 700;
        color: var(--bd-text-muted);
        margin-bottom: .3rem;
        letter-spacing: .02em;
    }

    .bulk-form input[type="file"],
    .bulk-form select {
        width: 100%;
        background: var(--bd-bg);
        border: 1px solid var(--bd-border);
        border-radius: var(--r-md, .5rem);
        padding: .5rem .75rem;
        font-size: .875rem;
        color: var(--bd-text);
        outline: none;
    }

    .bulk-form .help-text {
        font-size: .75rem;
        color: var(--bd-text-faint);
        margin-top: .25rem;
    }

    .bulk-submit {
        padding: .55rem 1.1rem;
        background: var(--bd-primary);
        color: #fff;
        border: none;
        border-radius: var(--r-md, .5rem);
        font-size: .9rem;
        font-weight: 700;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        gap: .4rem;
    }

    .bulk-submit:hover { background: var(--bd-primary-hover); }

    .bulk-table-wrap {
        overflow-x: auto;
        border: 1px solid var(--bd-border);
        border-radius: var(--r-lg);
        background: var(--bd-surface);
    }

    .bulk-table {
        width: 100%;
        border-collapse: collapse;
        font-size: .8125rem;
        line-height: 1.35;
    }

    .bulk-table thead th {
        background: var(--bd-surface-2);
        color: var(--bd-text-muted);
        font-size: .68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .06em;
        padding: .45rem .65rem;
        text-align: left;
        border-bottom: 1px solid var(--bd-border);
        white-space: nowrap;
    }
    .bulk-table thead th.num { text-align: right; }
    .bulk-table thead th.col-line { width: 3.5rem; text-align: right; padding-right: .5rem; }
    .bulk-table thead th.col-hs   { width: 9rem; }
    .bulk-table thead th.col-cur  { width: 4.5rem; }

    .bulk-table td {
        padding: .4rem .65rem;
        border-bottom: 1px solid var(--bd-divider);
        color: var(--bd-text);
        vertical-align: middle;
    }
    .bulk-table td.col-line { text-align: right; padding-right: .5rem; }

    .bulk-table tr:last-child td { border-bottom: none; }

    .bulk-table .num {
        font-variant-numeric: tabular-nums;
        text-align: right;
        white-space: nowrap;
    }
    .bulk-table .hs-cell {
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-variant-numeric: tabular-nums;
        font-weight: 700;
        font-size: .8125rem;
        white-space: nowrap;
    }
    .bulk-table .desc-cell {
        max-width: 32ch;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .bulk-error {
        background: #fef2f2;
        border: 1px solid #fecaca;
        color: #991b1b;
        padding: 1rem;
        border-radius: var(--r-lg);
        margin-bottom: 1rem;
    }

    [data-theme="dark"] .bulk-error {
        background: #3b1a2a;
        border-color: #831843;
        color: #fbcfe8;
    }

    .empty-state {
        text-align: center;
        padding: 3rem 1rem;
        color: var(--bd-text-muted);
    }

    .empty-state i {
        font-size: 2.5rem;
        margin-bottom: .75rem;
        display: block;
        color: var(--bd-text-faint);
    }

    .csv-example {
        margin: 0;
        background: var(--bd-surface-2);
        border: 1px solid var(--bd-border);
        border-radius: var(--r-lg);
        padding: 1rem;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: .8rem;
        color: var(--bd-text-muted);
        line-height: 1.6;
        overflow-x: auto;
        white-space: pre-wrap;
        word-break: break-word;
    }

    
    .csv-example-actions {
        display: flex;
        align-items: center;
        gap: .65rem;
        flex-wrap: wrap;
        margin-top: .65rem;
    }
    .csv-download-btn {
        display: inline-flex;
        align-items: center;
        gap: .35rem;
        font-size: .78rem;
        font-weight: 600;
        color: var(--bd-primary);
        text-decoration: none;
        padding: .35rem .7rem;
        border: 1px solid var(--bd-border);
        border-radius: var(--r-md, .5rem);
        background: var(--bd-surface);
        transition: var(--t-fast, 150ms) ease;
    }
    .csv-download-btn:hover {
        border-color: var(--bd-primary);
        background: var(--bd-surface-2);
        color: var(--bd-primary);
    }
    .csv-download-btn:focus-visible {
        outline: none;
        box-shadow: var(--ring-focus, 0 0 0 3px rgba(1,105,111,.18));
    }

    .bulk-summary {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
        gap: .4rem 1rem;
        margin-bottom: .75rem;
        padding: .6rem .9rem;
        background: var(--bd-surface);
        border: 1px solid var(--bd-border);
        border-radius: var(--r-md, .5rem);
    }
    .bulk-summary-cell { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
    .bulk-summary-label {
        font-size: .62rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .08em;
        color: var(--bd-text-faint);
    }
    .bulk-summary-value {
        font-size: .95rem;
        font-weight: 700;
        color: var(--bd-text);
        font-variant-numeric: tabular-nums;
    }
    .bulk-summary-value.is-warn { color: var(--bd-orange); }
    .bulk-summary-value.is-ok   { color: var(--bd-accent, var(--bd-primary)); }

    .bulk-table tr.row-error td {
        background: rgba(220, 38, 38, .05);
        color: var(--bd-text);
    }
    [data-theme="dark"] .bulk-table tr.row-error td {
        background: rgba(248, 113, 113, .07);
    }
    .bulk-table .err-icon {
        display: inline-flex;
        margin-right: .3rem;
        color: #b91c1c;
        font-size: .85rem;
        vertical-align: -1px;
    }
    [data-theme="dark"] .bulk-table .err-icon { color: #f87171; }
    .bulk-table .err-msg {
        color: #b91c1c;
        font-weight: 500;
    }
    [data-theme="dark"] .bulk-table .err-msg { color: #fca5a5; }
    .bulk-table .row-line {
        font-size: .72rem;
        color: var(--bd-text-faint);
        font-variant-numeric: tabular-nums;
    }
    .bulk-table .muted-dash { color: var(--bd-text-faint); }

    /* Mobile touch target — bulk submit button to 44px. */
    @media (max-width: 768px) {
        .bulk-submit {
            min-height: 44px;
        }
    }
