/* =====================================================
   ADVANCED IMPORT  (Settings → Advanced Import)
   Wizard chrome for the bulk order import.
   Scoped under .adv-import so nothing leaks into Settings.
   ===================================================== */

.adv-import { width: 100%; }

/* ── Intro ─────────────────────────────────────────── */
.adv-intro {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, rgba(12,102,186,0.06), rgba(12,102,186,0.02));
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg, 12px);
    margin-bottom: var(--spacing-lg);
}

.adv-intro-icon {
    width: 44px; height: 44px;
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-md, 8px);
    background: var(--primary-600, #0c66ba);
    color: #fff;
}

.adv-intro h3 { margin: 0 0 4px; font-size: 1.05rem; color: var(--text-primary); }
.adv-intro p  { margin: 0; color: var(--text-secondary); font-size: var(--font-size-sm); line-height: 1.5; }

/* ── Stepper ───────────────────────────────────────── */
.adv-stepper {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: var(--spacing-lg);
    overflow-x: auto;
    padding-bottom: 4px;
}

.adv-step {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    color: var(--text-tertiary);
}

.adv-step-dot {
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    border: 2px solid var(--border-color);
    background: var(--bg-primary);
}

.adv-step-dot .material-icons-outlined { font-size: 17px; }

.adv-step.active { color: var(--primary-700, #0a4f8f); font-weight: 600; }
.adv-step.active .adv-step-dot {
    border-color: var(--primary-600, #0c66ba);
    background: var(--primary-600, #0c66ba);
    color: #fff;
}

.adv-step.done { color: #047857; }
.adv-step.done .adv-step-dot { border-color: #10b981; background: #10b981; color: #fff; }

.adv-step-label { font-size: var(--font-size-sm); white-space: nowrap; }

.adv-step-line {
    flex: 1 1 auto;
    min-width: 16px;
    height: 2px;
    background: var(--border-color);
}

/* ── Cards ─────────────────────────────────────────── */
.adv-card {
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg, 12px);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(0,0,0,0.04));
}

.adv-card-title { margin: 0 0 4px; font-size: 1rem; color: var(--text-primary); }
.adv-card-sub   { margin: 0 0 var(--spacing-lg); color: var(--text-secondary); font-size: var(--font-size-sm); line-height: 1.5; }

.adv-subblock { margin-top: var(--spacing-lg); }

.adv-label {
    display: block;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: var(--spacing-sm);
}

.adv-hint { display: block; color: var(--text-tertiary); font-size: var(--font-size-xs); line-height: 1.5; }
.adv-hint--warn { color: #92400e; }

.adv-inline { display: flex; align-items: center; gap: var(--spacing-sm); flex-wrap: wrap; }
.adv-header-num { font-weight: 600; font-size: var(--font-size-sm); min-width: 62px; text-align: center; }

/* ── Product picker ────────────────────────────────── */
.adv-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--spacing-sm);
}

.adv-product {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-primary);
    cursor: pointer;
    text-align: left;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.adv-product:hover { border-color: var(--primary-400, #4b93d8); }
.adv-product.selected {
    border-color: var(--primary-600, #0c66ba);
    box-shadow: 0 0 0 3px rgba(12,102,186,0.12);
}

.adv-product-icon {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-sm, 6px);
    color: #fff;
}

.adv-product-icon .material-icons-outlined { font-size: 19px; }
.adv-product-name { font-weight: 600; font-size: var(--font-size-sm); color: var(--text-primary); }
.adv-product-meta { font-size: var(--font-size-xs); color: var(--text-tertiary); }

/* ── Profile picker ────────────────────────────────── */
.adv-profile-block { margin-top: var(--spacing-xl); padding-top: var(--spacing-lg); border-top: 1px solid var(--border-color); }

.adv-profile-list { display: flex; flex-direction: column; gap: var(--spacing-sm); }

.adv-profile {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-primary);
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.adv-profile:hover { border-color: var(--primary-400, #4b93d8); background: var(--bg-secondary); }
.adv-profile.selected { border-color: var(--primary-600, #0c66ba); background: var(--primary-50, #eff6ff); }

.adv-profile-text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.adv-profile-text strong { font-size: var(--font-size-sm); color: var(--text-primary); }
.adv-profile-text small  { font-size: var(--font-size-xs); color: var(--text-tertiary); }
.adv-profile-actions { display: flex; gap: 2px; flex-shrink: 0; }

/* ── Dropzone ──────────────────────────────────────── */
.adv-dropzone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: var(--spacing-xl) var(--spacing-lg);
    border: 2px dashed var(--border-color);
    border-radius: var(--radius-lg, 12px);
    background: var(--bg-secondary);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.adv-dropzone:hover,
.adv-dropzone.dragging {
    border-color: var(--primary-600, #0c66ba);
    background: var(--primary-50, #eff6ff);
}

.adv-dropzone .material-icons-outlined { font-size: 40px; color: var(--primary-600, #0c66ba); }
.adv-dropzone strong { color: var(--text-primary); }
.adv-dropzone span   { color: var(--text-tertiary); font-size: var(--font-size-sm); }

/* ── File summary ──────────────────────────────────── */
.adv-file-summary {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-secondary);
}

.adv-file-summary .material-icons-outlined { font-size: 26px; color: var(--primary-600, #0c66ba); }
.adv-file-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.adv-file-meta strong { color: var(--text-primary); overflow-wrap: anywhere; }
.adv-file-meta small  { color: var(--text-tertiary); font-size: var(--font-size-xs); }

/* ── Alerts + findings ─────────────────────────────── */
.adv-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    border-radius: var(--radius-md, 8px);
    margin-top: var(--spacing-lg);
    font-size: var(--font-size-sm);
    line-height: 1.55;
}

.adv-alert > .material-icons-outlined { font-size: 20px; flex-shrink: 0; margin-top: 1px; }
.adv-alert strong { display: block; margin-bottom: 2px; }

.adv-alert--ok    { background: rgba(16,185,129,0.10); color: #065f46; }
.adv-alert--warn  { background: rgba(245,158,11,0.12); color: #92400e; }
.adv-alert--error { background: rgba(239,68,68,0.10);  color: #991b1b; }

.adv-findings { list-style: none; margin: var(--spacing-sm) 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.adv-findings li { display: flex; align-items: flex-start; gap: 6px; }
.adv-findings .material-icons-outlined { font-size: 14px; margin-top: 3px; flex-shrink: 0; }
.adv-finding--info { opacity: 0.85; }

/* ── Chips ─────────────────────────────────────────── */
.adv-chip-row { display: flex; flex-wrap: wrap; gap: 6px; }

.adv-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 11px;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    background: var(--bg-primary);
    font-size: var(--font-size-xs);
    color: var(--text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.adv-chip .material-icons-outlined { font-size: 13px; }
.adv-chip:hover { border-color: var(--primary-400, #4b93d8); }
.adv-chip.selected {
    background: var(--primary-600, #0c66ba);
    border-color: var(--primary-600, #0c66ba);
    color: #fff;
}

.adv-chip--muted { cursor: default; background: var(--bg-secondary); color: var(--text-tertiary); }
.adv-chip--muted:hover { border-color: var(--border-color); }

/* ── Preview table ─────────────────────────────────── */
.adv-table-scroll {
    overflow-x: auto;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
}

.adv-table { width: 100%; border-collapse: collapse; font-size: var(--font-size-xs); }

.adv-table th {
    background: var(--bg-secondary);
    padding: 8px 10px;
    text-align: left;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    border-bottom: 1px solid var(--border-color);
}

.adv-table td {
    padding: 7px 10px;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-secondary);
    white-space: nowrap;
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adv-table tr:last-child td { border-bottom: none; }

/* ── Match key ─────────────────────────────────────── */
.adv-matchkey {
    padding: var(--spacing-md);
    border: 1px solid var(--primary-200, #bfdbfe);
    border-radius: var(--radius-md, 8px);
    background: var(--primary-50, #eff6ff);
    margin-bottom: var(--spacing-lg);
}

.adv-matchkey-head { display: flex; align-items: flex-start; gap: var(--spacing-sm); margin-bottom: var(--spacing-sm); }
.adv-matchkey-head .material-icons-outlined { color: var(--primary-700, #0a4f8f); font-size: 20px; flex-shrink: 0; }
.adv-matchkey-head strong { display: block; font-size: var(--font-size-sm); color: var(--text-primary); }
.adv-matchkey-head small  { display: block; margin-top: 2px; color: var(--text-secondary); font-size: var(--font-size-xs); line-height: 1.5; }

/* ── Mapping grid ──────────────────────────────────── */
.adv-map-section { margin-top: var(--spacing-lg); }
.adv-map-section h5 {
    margin: 0 0 var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.adv-map-grid {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}

.adv-map-row {
    display: grid;
    grid-template-columns: 1fr 32px 1fr;
    align-items: start;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-primary);
}

.adv-map-row:last-child { border-bottom: none; }
.adv-map-row.mapped { background: rgba(16,185,129,0.04); }

/* Defaults stamped on a property the import creates (type / source / owner).
   Shares the .adv-map-grid frame but is a label + control pair, not a
   target -> column mapping, so it gets its own two-column row. */
.adv-defaults-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-primary);
}
.adv-defaults-row:last-child { border-bottom: none; }
.adv-defaults-label {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--text-primary);
    padding-top: 8px;
}
.adv-defaults-row .form-control { min-width: 0; }

@media (max-width: 640px) {
    .adv-defaults-row { grid-template-columns: 1fr; }
    .adv-defaults-label { padding-top: 0; }
}

.adv-map-target { display: flex; flex-direction: column; gap: 2px; padding-top: 8px; min-width: 0; }
.adv-map-name { font-size: var(--font-size-sm); font-weight: 500; color: var(--text-primary); display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.adv-map-target small { color: var(--text-tertiary); font-size: var(--font-size-xs); line-height: 1.45; }

.adv-map-arrow { display: flex; align-items: center; justify-content: center; padding-top: 10px; color: var(--text-tertiary); }
.adv-map-arrow .material-icons-outlined { font-size: 16px; }

.adv-map-source { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.adv-sample { color: var(--text-tertiary); font-size: var(--font-size-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.adv-badge {
    display: inline-flex;
    align-items: center;
    padding: 1px 4px;
    border-radius: 4px;
}
.adv-badge--unique { background: var(--primary-50, #eff6ff); color: var(--primary-700, #0a4f8f); }
.adv-badge .material-icons-outlined { font-size: 12px; }

/* ── Actions / states ──────────────────────────────── */
.adv-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--border-color);
    flex-wrap: wrap;
}

.adv-actions .btn:first-child { margin-right: auto; }

.adv-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-xl);
}

.adv-empty .material-icons-outlined { font-size: 44px; color: var(--text-tertiary); }
.adv-empty h4 { margin: 0; color: var(--text-primary); }
.adv-empty p  { margin: 0; color: var(--text-secondary); font-size: var(--font-size-sm); max-width: 520px; line-height: 1.55; }

.adv-busy { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-md); padding: var(--spacing-xl); }
.adv-busy p { color: var(--text-secondary); font-size: var(--font-size-sm); margin: 0; }

.adv-spinner {
    width: 34px; height: 34px;
    border: 3px solid var(--border-color);
    border-top-color: var(--primary-600, #0c66ba);
    border-radius: 50%;
    animation: adv-spin 0.8s linear infinite;
}

@keyframes adv-spin { to { transform: rotate(360deg); } }

/* ── Mobile ────────────────────────────────────────── */
@media (max-width: 768px) {
    .adv-map-row { grid-template-columns: 1fr; gap: 4px; }
    .adv-map-arrow { display: none; }
    .adv-map-target { padding-top: 0; }
    .adv-step-label { display: none; }
    .adv-actions { flex-direction: column-reverse; }
    .adv-actions .btn { width: 100%; }
    .adv-actions .btn:first-child { margin-right: 0; }
}

/* ── Per-field overwrite policy (inline on a mapped row) ──── */
.adv-policy {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 2px;
}

.adv-policy-label {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    white-space: nowrap;
}

.adv-policy-select {
    font-size: var(--font-size-xs);
    padding: 2px 6px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm, 6px);
    background: var(--bg-primary);
    color: var(--text-primary);
    cursor: pointer;
}

.adv-policy-select:focus {
    outline: none;
    border-color: var(--primary-500, #2563eb);
}

.adv-policy-hint {
    flex: 1 1 100%;
    font-size: 11px;
    color: var(--text-tertiary);
    line-height: 1.4;
}

/* ── Recency rule block ────────────────────────────── */
.adv-rules {
    margin-top: var(--spacing-lg);
    padding: var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-secondary);
}

.adv-rules-head {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.adv-rules-head .material-icons-outlined { color: var(--primary-600, #0c66ba); font-size: 20px; flex-shrink: 0; }
.adv-rules-head strong { display: block; font-size: var(--font-size-sm); color: var(--text-primary); }
.adv-rules-head small  { display: block; margin-top: 2px; color: var(--text-secondary); font-size: var(--font-size-xs); line-height: 1.5; }

.adv-rules-options { display: flex; flex-direction: column; gap: 6px; }

.adv-radio {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-primary);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.adv-radio:hover { border-color: var(--primary-400, #4b93d8); }
.adv-radio.selected { border-color: var(--primary-600, #0c66ba); background: var(--primary-50, #eff6ff); }
.adv-radio.disabled { opacity: 0.55; cursor: not-allowed; }
.adv-radio input { margin-top: 3px; flex-shrink: 0; }

.adv-radio-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.adv-radio-text strong { font-size: var(--font-size-sm); color: var(--text-primary); }
.adv-radio-text small  { font-size: var(--font-size-xs); color: var(--text-tertiary); line-height: 1.45; }

/* ── Progress bar (staging / classifying) ──────────── */
.adv-progress {
    width: 100%;
    max-width: 420px;
    height: 6px;
    border-radius: 999px;
    background: var(--border-color);
    overflow: hidden;
}

.adv-progress-bar {
    height: 100%;
    background: var(--primary-600, #0c66ba);
    border-radius: 999px;
    transition: width 0.2s ease;
}

/* ── Validation summary tiles ──────────────────────── */
.adv-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
    gap: var(--spacing-sm);
}

.adv-summary {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-primary);
}

.adv-summary > .material-icons-outlined { font-size: 20px; }
.adv-summary-n { font-size: 1.5rem; font-weight: 700; line-height: 1.1; color: var(--text-primary); }
.adv-summary-label { font-size: var(--font-size-sm); font-weight: 600; color: var(--text-primary); }
.adv-summary small { font-size: 11px; color: var(--text-tertiary); line-height: 1.4; }

.adv-summary.is-zero { opacity: 0.5; }
.adv-summary--ok    > .material-icons-outlined { color: #059669; }
.adv-summary--info  > .material-icons-outlined { color: var(--primary-600, #0c66ba); }
.adv-summary--warn  > .material-icons-outlined { color: #d97706; }
.adv-summary--error > .material-icons-outlined { color: var(--danger, #ef4444); }
.adv-summary--muted > .material-icons-outlined { color: var(--text-tertiary); }

.adv-summary--ok    { border-left: 3px solid #10b981; }
.adv-summary--info  { border-left: 3px solid var(--primary-600, #0c66ba); }
.adv-summary--warn  { border-left: 3px solid #f59e0b; }
.adv-summary--error { border-left: 3px solid var(--danger, #ef4444); }

/* ── Duplicate groups ──────────────────────────────── */
.adv-dupgroup {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    margin-bottom: var(--spacing-sm);
    overflow: hidden;
}

.adv-dupgroup-head {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border-color);
}

.adv-dupgroup-head .material-icons-outlined { font-size: 16px; color: #d97706; }
.adv-dupgroup-head strong { font-size: var(--font-size-sm); color: var(--text-primary); overflow-wrap: anywhere; }

.adv-duprow {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    background: var(--bg-primary);
}

.adv-duprow:last-child { border-bottom: none; }
.adv-duprow:hover { background: var(--bg-secondary); }
.adv-duprow.winner { background: rgba(16,185,129,0.06); }

.adv-duprow-text { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; flex: 1; min-width: 0; }
.adv-duprow-text strong { font-size: var(--font-size-sm); color: var(--text-primary); }
.adv-duprow-text small  { flex: 1 1 100%; font-size: var(--font-size-xs); color: var(--text-tertiary); overflow-wrap: anywhere; }

.adv-dupwin {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: #047857;
    white-space: nowrap;
    flex-shrink: 0;
}

/* ── Problem rows ──────────────────────────────────── */
.adv-problem-list {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    max-height: 320px;
    overflow-y: auto;
}

.adv-problem {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    font-size: var(--font-size-xs);
}

.adv-problem:last-child { border-bottom: none; }
.adv-problem-row { font-weight: 600; color: var(--text-primary); white-space: nowrap; min-width: 62px; }
.adv-problem-issues { color: var(--danger, #ef4444); line-height: 1.5; }

/* ── Final confirmation ────────────────────────────── */
.adv-confirm-list {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}

.adv-confirm-line {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-primary);
    font-size: var(--font-size-sm);
    color: var(--text-primary);
}

.adv-confirm-line:last-child { border-bottom: none; }
.adv-confirm-line small { display: block; margin-top: 2px; color: var(--text-tertiary); font-size: var(--font-size-xs); line-height: 1.45; }
.adv-confirm-line > .material-icons-outlined { font-size: 20px; flex-shrink: 0; }

.adv-confirm-line--ok    > .material-icons-outlined { color: #059669; }
.adv-confirm-line--info  > .material-icons-outlined { color: var(--primary-600, #0c66ba); }
.adv-confirm-line--warn  > .material-icons-outlined { color: #d97706; }
.adv-confirm-line--muted > .material-icons-outlined { color: var(--text-tertiary); }
.adv-confirm-line--muted { color: var(--text-secondary); }

.adv-confirm-input { max-width: 240px; }

.adv-alert code {
    padding: 1px 5px;
    border-radius: 4px;
    background: rgba(0,0,0,0.08);
    font-weight: 700;
    letter-spacing: 0.04em;
}

/* ── History + resume ──────────────────────────────── */
.adv-history {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}

.adv-history-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-primary);
}

.adv-history-row:last-child { border-bottom: none; }

.adv-history-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--text-tertiary);
}

.adv-history-dot--ok    { background: #10b981; }
.adv-history-dot--warn  { background: #f59e0b; }
.adv-history-dot--error { background: var(--danger, #ef4444); }

.adv-history-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.adv-history-main strong { font-size: var(--font-size-sm); color: var(--text-primary); overflow-wrap: anywhere; }
.adv-history-main small  { font-size: var(--font-size-xs); color: var(--text-tertiary); }

.adv-history-status {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    text-transform: capitalize;
    white-space: nowrap;
}

/* ── History detail (expanded log entry) ───────────── */
.adv-history-row { cursor: pointer; }
.adv-history-row.open { background: var(--bg-secondary); }
.adv-history-chev { font-size: 18px; color: var(--text-tertiary); flex-shrink: 0; }

.adv-history-detail {
    padding: var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-secondary);
}

.adv-detail-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--spacing-lg);
}

@media (max-width: 768px) {
    .adv-detail-grid { grid-template-columns: 1fr; gap: var(--spacing-md); }
}

/* ── Warnings (grouped) ────────────────────────────── */
.adv-warn-list {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}

.adv-warn {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-primary);
    font-size: var(--font-size-xs);
}

.adv-warn:last-child { border-bottom: none; }

.adv-warn-count {
    font-weight: 700;
    color: #92400e;
    white-space: nowrap;
    min-width: 46px;
}

.adv-warn-text { flex: 1; color: var(--text-secondary); line-height: 1.5; }
.adv-warn-rows { color: var(--text-tertiary); white-space: nowrap; }

/* ── Sample diffs ──────────────────────────────────── */
.adv-sample-list { display: flex; flex-direction: column; gap: var(--spacing-sm); }

.adv-sample {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
    background: var(--bg-primary);
}

.adv-sample-head {
    padding: 6px var(--spacing-md);
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border-color);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--text-primary);
}

.adv-sample-line {
    display: grid;
    grid-template-columns: minmax(90px, 1fr) 2fr 18px 2fr;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 6px var(--spacing-md);
    font-size: var(--font-size-xs);
    border-bottom: 1px solid var(--border-color);
}

.adv-sample-line:last-child { border-bottom: none; }
.adv-sample-line .material-icons-outlined { font-size: 14px; color: var(--text-tertiary); }
.adv-sample-field { font-weight: 600; color: var(--text-primary); overflow-wrap: anywhere; }
.adv-sample-from  { color: var(--text-tertiary); text-decoration: line-through; overflow-wrap: anywhere; }
.adv-sample-to    { color: #047857; font-weight: 500; overflow-wrap: anywhere; }

@media (max-width: 768px) {
    .adv-sample-line { grid-template-columns: 1fr; gap: 2px; }
    .adv-sample-line .material-icons-outlined { display: none; }
    .adv-warn { flex-direction: column; gap: 2px; }
}

/* ── Requirement badges on the mapping screen ──────── */
.adv-req {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 1px 7px 1px 4px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
    vertical-align: middle;
}

.adv-req .material-icons-outlined { font-size: 12px; }

.adv-req--req  { background: rgba(239,68,68,0.12);  color: #b91c1c; }
.adv-req--cond { background: rgba(245,158,11,0.15); color: #92400e; }
.adv-req--rec  { background: var(--primary-50, #eff6ff); color: var(--primary-700, #0a4f8f); }
.adv-req--done { background: rgba(16,185,129,0.12); color: #047857; }
.adv-req--opt  { background: var(--bg-secondary); color: var(--text-tertiary); }

.adv-req-why {
    display: block;
    margin-top: 2px;
    color: var(--text-tertiary);
    font-size: 11px;
    line-height: 1.45;
    font-style: italic;
}

/* An unmapped required row should be impossible to miss. */
.adv-map-row.needs {
    background: rgba(239,68,68,0.04);
    box-shadow: inset 3px 0 0 0 var(--danger, #ef4444);
}

.adv-blockers {
    margin: 6px 0 0;
    padding-left: 18px;
    line-height: 1.6;
}

.adv-blockers li { margin-bottom: 2px; }

/* ── Legend ────────────────────────────────────────── */
.adv-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: var(--spacing-sm) var(--spacing-md);
    margin-bottom: var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-secondary);
}

.adv-legend-txt {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    margin-right: var(--spacing-sm);
}

.adv-legend-txt--last { margin-right: 0; font-style: italic; }

/* ── Section headers + explanations ────────────────── */
.adv-map-section h5 {
    display: flex;
    align-items: center;
    gap: 6px;
}

.adv-map-section h5 .material-icons-outlined {
    font-size: 17px;
    color: var(--primary-600, #0c66ba);
}

.adv-section-note {
    margin: 0 0 var(--spacing-sm);
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    line-height: 1.5;
    text-transform: none;
    letter-spacing: 0;
}

.adv-explain {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    border: 1px solid var(--primary-200, #bfdbfe);
    border-radius: var(--radius-md, 8px);
    background: var(--primary-50, #eff6ff);
    font-size: var(--font-size-xs);
    line-height: 1.6;
    color: var(--text-secondary);
}

.adv-explain > .material-icons-outlined { color: var(--primary-600, #0c66ba); font-size: 19px; flex-shrink: 0; }
.adv-explain strong { display: block; margin-bottom: 3px; color: var(--text-primary); }
.adv-explain em { font-style: normal; font-weight: 600; color: var(--primary-700, #0a4f8f); }

/* ── Review workspace ──────────────────────────────── */
.adv-review {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 8px);
    margin-bottom: var(--spacing-sm);
    overflow: hidden;
    background: var(--bg-primary);
}

.adv-review-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border-color);
}

.adv-review-head strong { display: block; font-size: var(--font-size-sm); color: var(--text-primary); overflow-wrap: anywhere; }
.adv-review-head small  { display: block; font-size: var(--font-size-xs); color: var(--text-tertiary); }

.adv-cands { display: flex; flex-direction: column; }

.adv-cand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    border: none;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-primary);
    cursor: pointer;
    text-align: left;
    transition: background var(--transition-fast);
}

.adv-cand:hover { background: var(--primary-50, #eff6ff); }
.adv-cand-main { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
.adv-cand-main strong { font-size: var(--font-size-sm); font-weight: 500; color: var(--text-primary); overflow-wrap: anywhere; }
.adv-cand-score { font-size: var(--font-size-xs); color: var(--text-tertiary); white-space: nowrap; }

.adv-review-alt {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--bg-secondary);
}

@media (max-width: 768px) {
    .adv-review-head { flex-direction: column; }
    .adv-cand { flex-direction: column; align-items: flex-start; }
}
