/**
 * ============================================================================
 * SH24 FK Dashboard Styles
 * ============================================================================
 * Dashboard v2.0 — Visual Upgrade
 * Inspiriert von ShiftKey, iSpringer, Lichtfeld
 */

/* ── Satoshi — Self-Hosted (assets/fonts/satoshi/) ────────────── */
/* Variable font (normal): ein File deckt alle Weights (300–900) */
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-Variable.woff2') format('woff2');
    font-weight: 300 900;
    font-style: normal;
    font-display: swap;
}
/* Variable font (italic) */
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-VariableItalic.woff2') format('woff2');
    font-weight: 300 900;
    font-style: italic;
    font-display: swap;
}
/* Fallback: Einzelne Weights (normal) */
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-Black.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
/* Fallback: Einzelne Weights (italic) */
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-LightItalic.woff2') format('woff2');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-Italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-MediumItalic.woff2') format('woff2');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-BoldItalic.woff2') format('woff2');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi';
    src: url('../fonts/satoshi/Satoshi-BlackItalic.woff2') format('woff2');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

/* Design Tokens */
:root {
    --sh-white: #ffffff;
    --sh-black: #0f172a;
    --sh-gray-50: #f8fafc;
    --sh-gray-100: #f1f5f9;
    --sh-gray-200: #e2e8f0;
    --sh-gray-300: #cbd5e1;
    --sh-gray-600: #475569;
    --sh-gray-700: #334155;
    --sh-green-50: #d1fae5;
    --sh-green-600: #059669;
    --sh-yellow-50: #fef3c7;
    --sh-yellow-600: #d97706;
    --sh-red-50: #fee2e2;
    --sh-red-600: #dc2626;
    --sh-blue-500: #3b82f6;
    --sh-blue-600: #2563eb;
    --sh-blue-900: #1e3a5f;
    --sh-gold: #FFD700;

    /* ── P2: Color Hierarchy (CEO-Direktive 2026-05-17) ── */
    --sh-trust-primary:        #1e3a5f;  /* Deep Atlantic — Vertrauen, Ruhe, Autorität (kanonisch) */
    --sh-accent:               #2563eb;  /* Akzent only — Links, Fokus-Ringe, aktive Zustände */
    --sh-green-success:        #059669;  /* Text/Border: Bestätigt, Approved, OK */
    --sh-availability-ready:   #10b981;  /* Ring/Dot: available_now (visuelles Element) */
    --sh-availability-soon:    #f59e0b;  /* Ring/Dot/Text: available_future */
    --sh-operational-busy:     #a8956b;  /* Busy — operative Semantik, Busy ≠ Error */
    --sh-availability-unknown: #94a3b8;  /* Ring/Dot: kein Datensatz */

    /* ── Dashboard-D1 (2026-07-07): semantische Status-Alias-Tokens ────────
       Farbe trägt Bedeutung (Owner-Farbsemantik):
       Grün = erledigt/einsatzfähig · Amber = sinnvoll verbessern (nie Pflicht)
       Blau = Navigation/neutrale Aktion · Rot = blockierend (Reserve) */
    --sh-state-done:    var(--sh-availability-ready);
    --sh-state-improve: var(--sh-availability-soon);
    --sh-state-blocked: var(--sh-red-600);
    --sh-state-nav:     var(--sh-blue-600);
    /* D1: fehlende Neutral-Stufen (Status-Dots / Progress-Tracks) */
    --sh-gray-400: #94a3b8;
    --sh-gray-500: #64748b;

    /* Shadows */
    --sh-shadow-sm:   0 1px 4px rgba(15,23,42,0.06), 0 4px 16px rgba(15,23,42,0.04);
    --sh-shadow-md:   0 4px 12px rgba(15,23,42,0.10), 0 12px 32px rgba(15,23,42,0.08);
    /* Aliases for legacy code */
    --sh-card-shadow:       var(--sh-shadow-sm);
    --sh-card-shadow-hover: var(--sh-shadow-md);

    /* Radii */
    --sh-radius-lg:   14px;   /* cards, containers */
    --sh-radius-md:   10px;   /* inner elements */
    --sh-radius-sm:   8px;    /* small controls, badges */
    /* Alias for legacy code */
    --sh-radius-card: var(--sh-radius-lg);

    /* Spacing scale */
    --sh-spacing-xs:  0.5rem;
    --sh-spacing-sm:  1rem;
    --sh-spacing-md:  1.5rem;
    --sh-spacing-lg:  2rem;

    /* Surface & text tokens (used across all sh-* pages) */
    --sh-surface-card:    #ffffff;
    --sh-surface-subtle:  #f8fafc;   /* = --sh-gray-50  */
    --sh-surface-hover:   #f1f5f9;   /* = --sh-gray-100 */
    --sh-page-bg:         #f1f5f9;   /* slightly darker than card — creates contrast */
    --sh-border:          #e2e8f0;   /* = --sh-gray-200 */
    --sh-text-primary:    #0f172a;   /* = --sh-black    */
    --sh-text-secondary:  #475569;   /* = --sh-gray-600 */
    --sh-text-tertiary:   #94a3b8;
    --sh-gray-400:        #94a3b8;
    --sh-gray-500:        #64748b;
    --sh-gray-800:        #1e293b;
    --sh-gray-900:        #0f172a;
    --sh-amber-500:       #f59e0b;
    --sh-red-500:         #ef4444;

    /* ── Decision Intelligence Tokens (Phase 0e) ── */

    /* Operative Kategorie-Labels */
    --sh-label-operative-bg:       var(--sh-gray-100);
    --sh-label-operative-color:    var(--sh-gray-800);

    /* Trust State Colors */
    --sh-trust-high-color:         var(--sh-gray-600);
    --sh-trust-partial-color:      var(--sh-gray-500);
    --sh-trust-new-color:          var(--sh-gray-400);

    /* Card & Layout Spacing */
    --sh-card-padding-y:           20px;
    --sh-card-padding-x:           20px;
    --sh-queue-row-padding-y:      14px;

    /* Closure & Summary Surfaces */
    --sh-closure-bg:               var(--sh-gray-50);
    --sh-summary-positive-accent:  var(--sh-green-600);
    --sh-summary-bg:               var(--sh-gray-50);
    --sh-summary-border-left:      3px solid var(--sh-blue-600);
}

/* ================================================================
   GENERIC COMPONENTS (wiederverwendbar, page-unabhängig)
   ================================================================ */

/* ---- sh-card: universelle UI-Fläche ---- */
.sh-card {
    background: var(--sh-surface-card);
    border-radius: var(--sh-radius-lg);
    box-shadow: 0 2px 8px rgba(15,23,42,0.08), 0 0 0 1px rgba(15,23,42,0.04);
    border: 1px solid var(--sh-border);
}

.sh-card-body {
    padding: var(--sh-spacing-md);
}

.sh-card-hover:hover {
    box-shadow: 0 8px 24px rgba(15,23,42,0.13);
    transform: translateY(-2px);
    transition: box-shadow 0.2s, transform 0.2s;
}

.sh-card-subtle {
    background: var(--sh-surface-subtle);
    box-shadow: none;
}

.sh-card-interactive {
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    display: block;
    transition: box-shadow 0.2s, transform 0.15s;
}

.sh-card-interactive:hover {
    box-shadow: var(--sh-shadow-md);
    transform: translateY(-2px);
}

/* ---- sh-empty: leerer Zustand ---- */
/* Regel: JEDE Page die null Einträge haben kann braucht dies */
.sh-empty {
    text-align: center;
    padding: 3rem var(--sh-spacing-lg);
    color: var(--sh-text-secondary);
}

.sh-empty-icon {
    font-size: 2.25rem;
    color: var(--sh-text-tertiary);
    margin-bottom: 0.75rem;
}

.sh-empty-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    margin-bottom: 0.375rem;
}

.sh-empty-text {
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
    margin: 0;
    line-height: 1.6;
}

.sh-empty-action {
    display: inline-block;
    margin-top: var(--sh-spacing-sm);
    padding: 0.625rem 1.25rem;
    background: var(--sh-black);
    color: #fff;
    border-radius: var(--sh-radius-sm);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s;
}

.sh-empty-action:hover { background: var(--sh-blue-900); color: #fff; }

/* ---- sh-section: Layout-Wrapper für Bereiche ---- */
.sh-section {
    margin-bottom: var(--sh-spacing-lg);
}

.sh-section-title {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sh-text-tertiary);
    margin: 0 0 var(--sh-spacing-sm) 0;
}

/* ---- sh-grid-*: Layout-Grids ---- */
.sh-grid-2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: var(--sh-spacing-sm); }
.sh-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sh-spacing-sm); }
.sh-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sh-spacing-sm); }

@media (max-width: 768px) {
    .sh-grid-2, .sh-grid-3, .sh-grid-4 {
        grid-template-columns: 1fr;
    }
}

/* ---- sh-filter-chips: Status-Filter ---- */
.sh-filter-chips {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sh-filter-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.875rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 500;
    border: 1px solid var(--sh-border);
    background: var(--sh-surface-card);
    color: var(--sh-text-secondary);
    text-decoration: none;
    transition: all 0.15s;
    white-space: nowrap;
}

.sh-filter-chip:hover {
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
}

.sh-filter-chip-active {
    background: var(--sh-black);
    color: #fff;
    border-color: var(--sh-black);
}

/* ================================================================
   DECISION INTELLIGENCE COMPONENTS (Phase 0e)
   ================================================================ */

/* ── Operative Kategorie Labels ──────────────────────────────── */
.sh-label-operative {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: var(--sh-radius-sm);
    background: var(--sh-label-operative-bg);
    color: var(--sh-label-operative-color);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

/* Alle positiven Kategorien teilen den gleichen Basis-Style.
   Differenzierung nur durch Icon-Präfix (kein Farbunterschied). */
.sh-label-operative--house::before   { content: '🏥 '; font-style: normal; }
.sh-label-operative--proven::before  { content: '✓ ';  font-style: normal; }
.sh-label-operative--fast::before    { content: '⚡ '; font-style: normal; }
.sh-label-operative--cover::before   { content: '◎ '; font-style: normal; }
.sh-label-operative--partial {
    background: var(--sh-gray-50);
    color: var(--sh-gray-500);
}

/* ── P3 Badge Governance ─────────────────────────────────────────
   Canonical badge/chip/alert types — do not add new variants without CEO sign-off.
   Per-screen rule: max 1 primary accent color, 1 dominant status color, max 2 emphasis levels.

   ALERTS:      sh-alert--success | sh-alert--warning | sh-alert--danger
   STATUS DOTS: sh-mc-status-dot--{available_now|available_future|busy|unknown}
   RINGS:       sh-mc-ring--{ready|soon|busy|unknown}  ← ONLY availability signal
   CHIPS:       sh-spec-chip | sh-mc-spec-chip (matching context only)
   BADGES:      sh-job-badge--{active|matched|closed|filled} | sh-inv-status-badge--{pending|accepted|declined|expired}
   TRUST:       sh-trust-badge--{high|partial|new}

   Everything else is legacy — do not reference in new code for Gold-Standard screens.
   ──────────────────────────────────────────────────────────────── */

/* ── Trust State Badges ──────────────────────────────────────── */
.sh-trust-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 500;
    white-space: nowrap;
}

.sh-trust-badge--high    { color: var(--sh-trust-high-color); }
.sh-trust-badge--partial { color: var(--sh-trust-partial-color); }
.sh-trust-badge--new     { color: var(--sh-trust-new-color); }

/* ── Operative Explanation Block ─────────────────────────────── */
.sh-operative-explanation {
    padding: 10px 14px;
    background: transparent;
    border-left: 2px solid rgba(15,23,42,0.08);
    border-radius: 0;
}

.sh-operative-explanation__header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.sh-operative-explanation__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sh-operative-explanation__item {
    font-size: 0.80rem;
    color: var(--sh-text-secondary);
    padding-left: 12px;
    position: relative;
}

.sh-operative-explanation__item::before {
    content: '–';
    position: absolute;
    left: 0;
    color: var(--sh-gray-400);
}

.sh-operative-explanation__item--cautionary {
    color: var(--sh-gray-500);
    font-style: italic;
}

/* ── Decision Queue Row ──────────────────────────────────────── */
.sh-queue-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: var(--sh-queue-row-padding-y) var(--sh-card-padding-x);
    border-bottom: 1px solid var(--sh-border);
}

.sh-queue-row:last-child {
    border-bottom: none;
}

/* ── Closure Block ────────────────────────────────────────────── */
.sh-closure-block {
    background: var(--sh-closure-bg);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm);
    padding: 10px 14px;
    font-size: 0.80rem;
    color: var(--sh-text-secondary);
}

/* ── Summary Block ────────────────────────────────────────────── */
.sh-summary-block {
    background: var(--sh-summary-bg);
    border-radius: var(--sh-radius-sm);
    padding: 12px 14px;
    font-size: 0.83rem;
}

.sh-summary-block--positive {
    border-left: var(--sh-summary-border-left);
}

.sh-summary-block--positive .sh-summary-accent {
    color: var(--sh-summary-positive-accent);
    font-weight: 600;
}

/* ── Pipeline Queue ──────────────────────────────────────────── */
.sh-pipeline-queue {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sh-pq-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 16px;
    padding: var(--sh-queue-row-padding-y) var(--sh-card-padding-x);
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-md);
    border-left: 3px solid transparent;
}

.sh-pq-row--red    { border-left-color: var(--sh-red-500); }
.sh-pq-row--amber  { border-left-color: var(--sh-amber-500); }
.sh-pq-row--green  { border-left-color: var(--sh-green-600); }
.sh-pq-row--blue   { border-left-color: var(--sh-blue-500); }

.sh-pq-job {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sh-pq-urgency-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.sh-pq-dot--red   { background: var(--sh-red-500); }
.sh-pq-dot--amber { background: var(--sh-amber-500); }
.sh-pq-dot--green { background: var(--sh-green-600); }
.sh-pq-dot--blue  { background: var(--sh-blue-500); }

.sh-pq-job-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sh-pq-urgent-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--sh-red-50);
    color: var(--sh-red-600);
    margin-left: 6px;
    vertical-align: middle;
}

.sh-pq-job-meta {
    font-size: 0.76rem;
    color: var(--sh-text-tertiary);
    margin-top: 2px;
}

.sh-pq-states {
    display: flex;
    gap: 20px;
    align-items: center;
}

.sh-pq-state {
    text-align: center;
    min-width: 52px;
}

.sh-pq-state-count {
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1.2;
}

.sh-pq-count--pending   { color: var(--sh-amber-500); }
.sh-pq-count--confirmed { color: var(--sh-green-600); }
.sh-pq-count--declined  { color: var(--sh-gray-400); }
.sh-pq-count--neutral   { color: var(--sh-gray-400); }

.sh-pq-state-label {
    display: block;
    font-size: 0.66rem;
    color: var(--sh-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 2px;
}

.sh-pq-action {
    flex-shrink: 0;
}

/* Mobile: states below job info */
@media (max-width: 640px) {
    .sh-pq-row {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }
    .sh-pq-states {
        grid-column: 1 / -1;
        justify-content: flex-start;
        gap: 14px;
    }
}

/* ── Rejection Intelligence Panel ───────────────────────────── */
.sh-mc-rejection {
    width: 100%;
    margin-top: 4px;
}

.sh-mc-btn--reject-trigger {
    background: none;
    border: none;
    padding: 2px 6px;
    font-size: 0.72rem;
    color: var(--sh-gray-400);
    cursor: pointer;
    text-decoration: underline dotted;
    text-underline-offset: 2px;
}

.sh-mc-btn--reject-trigger:hover,
.sh-mc-btn--reject-active {
    color: var(--sh-gray-600);
}

.sh-mc-rejection-panel {
    margin-top: 6px;
    padding: 10px 12px;
    background: var(--sh-gray-50);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm);
}

.sh-mc-rejection-q {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sh-text-secondary);
    margin: 0 0 6px;
}

.sh-mc-rejection-option {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm);
    padding: 5px 10px;
    font-size: 0.76rem;
    color: var(--sh-text-secondary);
    cursor: pointer;
    margin-bottom: 4px;
    transition: background 0.15s;
}

.sh-mc-rejection-option:hover {
    background: var(--sh-gray-100);
    color: var(--sh-text-primary);
}

.sh-mc-rejection-option:disabled {
    opacity: 0.5;
    cursor: default;
}

.sh-mc-rejection-done {
    font-size: 0.75rem;
    color: var(--sh-green-600);
    margin: 0;
    font-weight: 500;
}

/* ── Hospital Memory Section ─────────────────────────────────── */
.sh-house-memory-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-house-memory-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 10px;
    background: var(--sh-gray-50);
    border-radius: var(--sh-radius-sm);
    font-size: 0.80rem;
}

.sh-house-memory-dates {
    color: var(--sh-text-secondary);
}

.sh-house-memory-status {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 999px;
}

.sh-house-memory-status--completed {
    background: var(--sh-green-50);
    color: var(--sh-green-600);
}

.sh-house-memory-status--confirmed {
    background: #eff6ff;
    color: var(--sh-blue-600);
}

.sh-house-memory-status--neutral {
    background: var(--sh-gray-100);
    color: var(--sh-gray-600);
}

.sh-house-memory-more {
    font-size: 0.75rem;
    color: var(--sh-gray-400);
    margin: 6px 0 0;
}

/* ── Operative Explanation Footer ────────────────────────────── */
.sh-op-explain-footer {
    font-size: 0.76rem;
    color: var(--sh-gray-500);
    font-style: italic;
    margin: 8px 0 0;
}

/* ── Browse: Operative Row ───────────────────────────────────── */
.sh-browse-op-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

/* ── Browse: Operative Substanz (Spitaltyp + Wiedereinsatz) ──── */
.sh-browse-substance {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 4px 0 8px;
}
.sh-browse-substance-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 500;
    color: var(--sh-gray-700, #334155);
    padding: 3px 8px;
    border-radius: 4px;
    background: var(--sh-gray-50, #f8fafc);
    border: 1px solid var(--sh-gray-100, #f1f5f9);
    line-height: 1.3;
}
.sh-browse-substance-item i {
    font-size: 10px;
    color: var(--sh-gray-500, #64748b);
}
.sh-browse-substance--own {
    background: #eff6ff;
    border-color: #dbeafe;
    color: #1e3a5f;
    font-weight: 600;
}
.sh-browse-substance--own i { color: #1e3a5f; }
.sh-browse-substance--rebook {
    background: #ecfdf5;
    border-color: #d1fae5;
    color: #047857;
}
.sh-browse-substance--rebook i { color: #047857; }
.sh-browse-substance--types {
    background: var(--sh-white, #fff);
    border-color: var(--sh-gray-200, #e2e8f0);
}

/* ── No-Match States ─────────────────────────────────────────── */
.sh-no-match {
    text-align: center;
    padding: 48px 24px;
    color: var(--sh-text-secondary);
}

.sh-no-match__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    margin-bottom: 8px;
}

.sh-no-match__body {
    font-size: 0.83rem;
    margin-bottom: 16px;
}

/* ── UI Failure / Loading States ─────────────────────────────── */
.sh-state-loading {
    pointer-events: none;
    opacity: 0.6;
}

.sh-state-error {
    text-align: center;
    padding: 32px 20px;
    color: var(--sh-text-secondary);
    font-size: 0.85rem;
}

/* ── Skeleton Card (Loading Placeholder) ─────────────────────── */
.sh-skeleton {
    background: linear-gradient(
        90deg,
        var(--sh-gray-100) 25%,
        var(--sh-gray-50) 50%,
        var(--sh-gray-100) 75%
    );
    background-size: 200% 100%;
    animation: sh-skeleton-shimmer 1.4s ease-in-out infinite;
    border-radius: var(--sh-radius-sm);
}

@keyframes sh-skeleton-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ================================================================
   DASHBOARD CONTAINER
   ================================================================ */

.sh-dashboard-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
    background: var(--sh-page-bg, #f1f5f9);
    position: relative;
    overflow: hidden;
}

/* Full-layer background — Enterprise SaaS Hintergrund, durchgehend von oben bis unten */
.sh-dashboard-container::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('/swisshunter24/assets/images/hero_op_small.jpg');
    background-size: cover;
    background-position: center;
    opacity: 0.15;
    filter: blur(2px) saturate(0.9);
    pointer-events: none;
    z-index: 0;
}

/* Alle direkten Kinder bleiben über dem ::after Layer */
.sh-dashboard-container > * {
    position: relative;
    z-index: 1;
}

/* ========================================
   HERO HEADER — Gradient + Hintergrundbild
   ========================================
   HERO-BILDER PRO SEITE (alle in assets/images/, Format ~1200×400px):
   ┌─────────────────────────────┬──────────────────────────────────────────────────┐
   │ Seite / Container           │ Bild-Datei            │ Thema                   │
   ├─────────────────────────────┼───────────────────────┼─────────────────────────┤
   │ FK Dashboard                │ hero_hospital.webp    │ Spitalkorridor/-gebäude │
   │ Spital Dashboard            │ (erbt FK Dashboard)   │ — gleich —              │
   │ .sh-browse-container        │ fachkraefte_browse.jpg│ Pflegeteam in Aktion    │
   ├─────────────────────────────┼───────────────────────┼─────────────────────────┤
   │ Nächste Seite hier ergänzen │ dateiname.jpg         │ Thema                   │
   └─────────────────────────────┴───────────────────────┴─────────────────────────┘
   Neue Seite hinzufügen: .sh-[container] .sh-dashboard-header { background: gradient, url(...) }
   ======================================== */

.sh-dashboard-header {
    background:
        linear-gradient(135deg, rgba(15,23,42,0.82) 0%, rgba(30,58,95,0.72) 55%, rgba(29,78,216,0.65) 100%),
        url('/swisshunter24/assets/images/hero_hospital.webp') center / cover no-repeat;
    padding: 2.5rem 2rem 3rem 2rem;
    margin-bottom: 0;
    position: relative;
    overflow: hidden;
}

/* Subtle geometric pattern overlay */
.sh-dashboard-header::before {
    content: '';
    position: absolute;
    top: -60px;
    right: -60px;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    pointer-events: none;
}

.sh-dashboard-header::after {
    content: '';
    position: absolute;
    bottom: -80px;
    left: 30%;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: rgba(59, 130, 246, 0.08);
    pointer-events: none;
}

.sh-page-title {
    font-size: 1.728rem; /* xl in Minor Third scale: 16 × 1.2³ = 27.6px */
    font-weight: 700;
    line-height: 1.15;
    color: #ffffff;
    margin: 0 0 0.375rem 0;
    letter-spacing: -0.022em;
    position: relative;
    z-index: 1;
}

.sh-page-subtitle {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.72);
    margin: 0;
    font-weight: 400;
    position: relative;
    z-index: 1;
}

/* Inner content wrapper — lifts below the hero */
.sh-dashboard-inner {
    padding: 2rem 2rem 0 2rem;
    margin-top: -1rem;
}

/* ========== Section Titles ========== */
.sh-section-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sh-black);
    margin: 0 0 1.25rem 0;
    letter-spacing: -0.015em;
}

/* ========================================
   1. HEUTE SECTION
   ======================================== */

.sh-today-section {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 1.75rem 2rem;
    margin-bottom: 2rem;
    box-shadow: var(--sh-card-shadow);
}

/* ── Availability Nudge Banner ───────────────────────────────────── */
.sh-avail-nudge {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #fffbeb;
    border: 1px solid #f59e0b;
    border-left: 4px solid #f59e0b;
    border-radius: var(--sh-radius-card);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}
.sh-avail-nudge-icon {
    color: #d97706;
    font-size: 1.25rem;
    flex-shrink: 0;
}
.sh-avail-nudge-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.875rem;
    color: #92400e;
}
.sh-avail-nudge-body strong {
    font-weight: 700;
    color: #78350f;
}
.sh-avail-nudge-body span {
    color: #a16207;
    font-weight: 400;
}
.sh-avail-nudge-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 1rem;
    background: #f59e0b;
    color: white;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background .15s ease;
}
.sh-avail-nudge-cta:hover {
    background: #d97706;
    color: white;
}
@media (max-width: 600px) {
    .sh-avail-nudge { flex-wrap: wrap; }
    .sh-avail-nudge-cta { width: 100%; justify-content: center; }
}

.sh-today-header {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.sh-today-title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--sh-black);
    margin: 0;
    letter-spacing: -0.02em;
}

.sh-today-date {
    font-size: 0.875rem;
    color: var(--sh-gray-600);
    font-weight: 400;
}

.sh-today-state {
    text-align: center;
    padding: 1.75rem 1.5rem;
    border-radius: 10px;
}

.sh-today-icon {
    font-size: 2.5rem;
    margin-bottom: 0.875rem;
    line-height: 1;
}

.sh-today-state-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sh-black);
    margin: 0 0 0.75rem 0;
    letter-spacing: -0.015em;
}

.sh-today-text {
    font-size: 0.9375rem;
    color: var(--sh-gray-700);
    line-height: 1.6;
    margin: 0.625rem 0;
}

.sh-today-reasons {
    text-align: left;
    max-width: 500px;
    margin: 1rem auto;
    padding-left: 1.5rem;
    color: var(--sh-gray-700);
}

.sh-today-note {
    font-size: 0.875rem;
    color: var(--sh-gray-600);
    margin-top: 1rem;
}

/* Today States — visually richer */
.sh-today-urgent {
    background: linear-gradient(135deg, #fff1f2 0%, #ffe4e6 100%);
    border: 1px solid #fecdd3;
    border-radius: 10px;
}

.sh-today-positive {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border: 1px solid #bbf7d0;
    border-radius: 10px;
}

.sh-btn-positive-outline {
    background: white;
    color: var(--sh-green-600);
    border: 1.5px solid var(--sh-green-600);
}

.sh-today-info {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border: 1px solid #bfdbfe;
    border-radius: 10px;
}

.sh-today-warning {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 1px solid #fde68a;
    border-radius: 10px;
}

.sh-today-vip-eligible {
    background: linear-gradient(135deg, #fdf4ff 0%, #fae8ff 100%);
    border: 1px solid #e9d5ff;
    border-radius: 10px;
}

.sh-today-action {
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid var(--sh-gray-200);
    border-radius: 10px;
}

.sh-today-vip-idle {
    background: linear-gradient(135deg, #fffbeb 0%, #fef9c3 100%);
    border: 1px solid #fde68a;
    border-radius: 10px;
}

.sh-today-calm {
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid var(--sh-gray-200);
    border-radius: 10px;
}

/* ========================================
   2. IDENTITÄT & STATUS
   ======================================== */

.sh-identity-section {
    margin-bottom: 2rem;
}

.sh-identity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.25rem;
}

.sh-identity-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    overflow: hidden;
    box-shadow: var(--sh-card-shadow);
}

/* Cover strip — removed from browse cards; hidden globally as failsafe */
.sh-identity-card-cover {
    display: none !important;
}

.sh-identity-card-body {
    padding: 1.25rem 1.5rem 1.5rem 1.5rem;
    position: relative;
}

.sh-identity-avatar-wrap {
    margin-bottom: 0.75rem;
}

.sh-identity-avatar-wrap img,
.sh-identity-avatar-wrap .sh-avatar-initials {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 3px solid var(--sh-white);
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    font-weight: 700;
    color: white;
    background: #2563eb;
}

/* Keep existing header for backwards compat */
.sh-identity-header {
    margin-bottom: 0.875rem;
}

.sh-identity-role {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--sh-gray-600);
    letter-spacing: 0.07em;
}

.sh-identity-name {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sh-black);
    margin: 0.2rem 0 0 0;
    letter-spacing: -0.015em;
}

.sh-identity-profession {
    font-size: 0.875rem;
    color: var(--sh-gray-600);
    margin: 0.125rem 0 0 0;
}

.sh-identity-status {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 1rem 0;
}

.sh-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    border-radius: 20px;
}

.sh-status-deployable {
    background: var(--sh-green-50);
    color: var(--sh-green-600);
    border: 1px solid #86efac;
}

.sh-status-blocked {
    background: var(--sh-yellow-50);
    color: var(--sh-yellow-600);
    border: 1px solid #fde68a;
}

.sh-status-vip {
    background: linear-gradient(135deg, #FFD700, #FFA500);
    color: #000;
    border: none;
}

.sh-identity-meta {
    margin: 0.875rem 0;
}

.sh-identity-meta-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-black);
    margin: 0 0 0.2rem 0;
}

.sh-identity-meta-value {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
    margin: 0;
}

.sh-identity-card-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--sh-black);
    margin: 0 0 1rem 0;
}

.sh-identity-card-text {
    font-size: 0.875rem;
    color: var(--sh-gray-700);
    margin: 0.75rem 0;
}

.sh-identity-card-note {
    font-size: 0.75rem;
    color: var(--sh-gray-600);
    margin-top: 0.75rem;
}

.sh-identity-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

.sh-form-input {
    width: 100%;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--sh-gray-300);
    border-radius: var(--sh-radius-sm);
    font-size: 0.9375rem;
    font-family: monospace;
    text-transform: uppercase;
    background: var(--sh-gray-50);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sh-form-input:focus {
    outline: none;
    border-color: var(--sh-blue-500);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
    background: var(--sh-white);
}

/* ========================================
   3. MEIN ARBEITSBEREICH
   ======================================== */

.sh-workspace-section {
    margin-bottom: 2rem;
}

.sh-workspace-primary {
    margin-bottom: 1.75rem;
}

.sh-workspace-secondary {
    margin-top: 1.75rem;
}

.sh-workspace-subtitle {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--sh-gray-600);
    letter-spacing: 0.07em;
    margin: 0 0 0.875rem 0;
}

.sh-workspace-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.sh-workspace-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 1.5rem 1.25rem;
    text-decoration: none;
    color: var(--sh-black);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    text-align: center;
    box-shadow: var(--sh-card-shadow);
}

.sh-workspace-card:hover {
    border-color: var(--sh-gray-300);
    transform: translateY(-3px);
    box-shadow: var(--sh-card-shadow-hover);
    color: var(--sh-black);
}

/* Colored icon circle */
.sh-workspace-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.875rem auto;
    font-size: 1.375rem;
    background: var(--sh-gray-50);
}

/* Per-card accent colors */
.sh-workspace-card:nth-child(1) .sh-workspace-icon { background: #eff6ff; color: #2563eb; }
.sh-workspace-card:nth-child(2) .sh-workspace-icon { background: #f0fdf4; color: #16a34a; }
.sh-workspace-card:nth-child(3) .sh-workspace-icon { background: #fdf4ff; color: #9333ea; }
.sh-workspace-card:nth-child(4) .sh-workspace-icon { background: #fff7ed; color: #ea580c; }

.sh-workspace-title {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--sh-black);
    margin-bottom: 0.375rem;
    letter-spacing: -0.01em;
}

.sh-workspace-meta {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
}

/* Compact Cards (Sekundär) */
.sh-workspace-grid-compact {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
}

.sh-workspace-card-compact {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: 10px;
    padding: 1rem;
    text-decoration: none;
    color: var(--sh-black);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    text-align: center;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

.sh-workspace-card-compact:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
    border-color: var(--sh-gray-300);
    color: var(--sh-black);
}

.sh-workspace-icon-sm {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
    line-height: 1;
    color: var(--sh-blue-600);
}

.sh-workspace-title-sm {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-black);
    letter-spacing: -0.005em;
}

/* ========================================
   4. SYSTEM & KONTO
   ======================================== */

.sh-system-section {
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--sh-gray-200);
}

.sh-system-footer-line {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
    margin: 0 0 1rem 0;
}

.sh-system-footer-line a {
    color: var(--sh-gray-600);
    text-decoration: none;
}

.sh-system-footer-line a:hover {
    color: var(--sh-blue-600);
    text-decoration: underline;
}

.sh-system-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--sh-gray-600);
    margin: 0 0 1rem 0;
}

.sh-system-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.sh-system-card {
    background: var(--sh-gray-50);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-sm);
    padding: 1rem;
}

.sh-system-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--sh-gray-600);
    letter-spacing: 0.05em;
    margin: 0 0 0.375rem 0;
}

.sh-system-value {
    font-size: 0.875rem;
    color: var(--sh-black);
    margin: 0;
}

.sh-system-value a {
    color: var(--sh-blue-500);
    text-decoration: none;
}

.sh-system-value a:hover {
    text-decoration: underline;
}

.sh-vip-invite-inline {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--sh-gray-200);
}

.sh-vip-invite-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--sh-gray-600);
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}

.sh-vip-invite-row {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.sh-vip-invite-row .sh-form-input {
    flex: 1;
}

/* ========================================
   BUTTONS
   ======================================== */

.sh-btn {
    display: inline-block;
    padding: 0.625rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border-radius: var(--sh-radius-sm);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all 0.18s ease;
    letter-spacing: -0.01em;
}

.sh-btn-primary {
    background: var(--sh-black);
    color: var(--sh-white);
    border-color: var(--sh-black);
}

.sh-btn-primary:hover {
    background: #1e3a5f;
    border-color: #1e3a5f;
    color: var(--sh-white);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.sh-btn-secondary {
    background: var(--sh-white);
    color: var(--sh-black);
    border-color: var(--sh-gray-300);
}

.sh-btn-secondary:hover {
    background: var(--sh-gray-50);
    border-color: var(--sh-black);
    color: var(--sh-black);
}

.sh-btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

/* ── Canonical Button System (BEM, P2 — CEO 2026-05-17) ─────────────
   Verwende sh-btn--* (mit --) für alle neuen Seiten.
   sh-btn-primary (ohne --) = Legacy, nicht erweitern.
   Deep Atlantic (#1e3a5f) = primäre Trust-Farbe.
   #2563eb = Akzent only (Links, Fokus, aktive Elemente).
   ────────────────────────────────────────────────────────────────── */
.sh-btn--primary {
    background: var(--sh-trust-primary, #1e3a5f);
    color: #fff;
    border: 2px solid var(--sh-trust-primary, #1e3a5f);
    font-weight: 600;
    letter-spacing: 0.01em;
}
.sh-btn--primary:hover:not(:disabled) {
    background: #162d4a;
    border-color: #162d4a;
    box-shadow: 0 4px 12px rgba(30,58,95,0.25);
    transform: translateY(-1px);
}
.sh-btn--primary:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(30,58,95,0.35);
}

.sh-btn--secondary {
    background: #fff;
    color: var(--sh-trust-primary, #1e3a5f);
    border: 1.5px solid var(--sh-trust-primary, #1e3a5f);
    font-weight: 500;
    opacity: 0.9;
}
.sh-btn--secondary:hover:not(:disabled) {
    background: #f0f4f8;
    opacity: 1;
}
.sh-btn--secondary:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(30,58,95,0.2);
}

.sh-btn--ghost {
    background: transparent;
    color: var(--sh-text-secondary, #475569);
    border: 1.5px solid var(--sh-border, #e2e8f0);
    font-weight: 500;
}
.sh-btn--ghost:hover:not(:disabled) {
    background: var(--sh-surface-hover, #f1f5f9);
    color: var(--sh-trust-primary, #1e3a5f);
    border-color: #cbd5e1;
}
.sh-btn--ghost:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(30,58,95,0.15);
}

.sh-btn--danger {
    background: var(--sh-red-500, #ef4444);
    color: #fff;
    border: 2px solid var(--sh-red-500, #ef4444);
    font-weight: 600;
}
.sh-btn--danger:hover:not(:disabled) {
    background: #dc2626;
    border-color: #dc2626;
}
.sh-btn--danger:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(239,68,68,0.3);
}

/* Size modifiers */
.sh-btn--sm {
    padding: 0.4rem 0.875rem;
    font-size: 0.8rem;
    border-radius: var(--sh-radius-sm, 8px);
}
.sh-btn--lg {
    padding: 0.875rem 1.5rem;
    font-size: 1rem;
}

/* ── Lifecycle Passive CTA — kind=passive aus einsatz_primary_cta() ──
   Reine semantische Modifier-Klasse für Wartezustände.
   Komposition: an Container-Button-Klasse anhängen — Geometrie bleibt vom
   Container (sh-z1-btn / sh-bk-btn / btn), Modifier setzt nur die Optik.
   !important nötig, weil page-scoped Button-Klassen NACH dashboard.css laden.
   ──────────────────────────────────────────────────────────────────── */
.sh-cta-passive {
    color: var(--sh-gray-500) !important;
    background: var(--sh-gray-50) !important;
    border-color: var(--sh-gray-200) !important;
    cursor: default !important;
    pointer-events: none;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
}
.sh-cta-passive:hover,
.sh-cta-passive:focus {
    color: var(--sh-gray-500) !important;
    background: var(--sh-gray-50) !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ========================================
   ALERTS — canonical definitions near line 4531
   Legacy aliases (sh-alert-success etc.) also defined there.
   ======================================== */

.sh-alert-header {
    font-weight: 700;
    margin-bottom: 0.375rem;
}

.sh-alert-text {
    margin: 0.5rem 0;
    line-height: 1.6;
}

.sh-alert-actions {
    margin-top: 1rem;
    display: flex;
    gap: 0.75rem;
}

/* ========================================
   INNER PADDING WRAPPER
   ======================================== */

/* Sections inside the dashboard get consistent inner padding */
.sh-today-section,
.sh-identity-section,
.sh-workspace-section,
.sh-system-section {
    margin-left: 0;
    margin-right: 0;
}

/* ========================================
   JOBS TEASER BANNER
   IMAGE SLOT: background-image can be added here or via inline style.
   Recommended: 1200×200px Schweizer Spital Aussenaufnahme (Tageslicht, modern).
   The gradient overlay keeps text legible regardless of image.
   ======================================== */

.sh-jobs-banner {
    border-radius: var(--sh-radius-card);
    overflow: hidden;
    margin-bottom: 1.75rem;
    /* Fallback gradient (used when no background-image is set) */
    background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 60%, #1d4ed8 100%);
    /* When a photo is available, uncomment: */
    /* background-image: url('/assets/img/banner-spital.jpg'); */
    background-size: cover;
    background-position: center;
    position: relative;
}

/* Dark overlay so text stays readable over any photo */
.sh-jobs-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15,23,42,0.75) 0%, rgba(30,58,95,0.5) 100%);
    pointer-events: none;
}

.sh-jobs-banner-content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.75rem 2rem;
    gap: 1rem;
}

.sh-jobs-banner-count {
    font-size: 1.5rem;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: -0.02em;
    margin-bottom: 0.25rem;
}

.sh-jobs-banner-label {
    font-size: 0.9375rem;
    color: rgba(255, 255, 255, 0.8);
}

.sh-jobs-banner-btn {
    display: inline-block;
    background: #ffffff;
    color: var(--sh-black);
    font-weight: 700;
    font-size: 0.9375rem;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease, transform 0.15s ease;
    letter-spacing: -0.01em;
    flex-shrink: 0;
}

.sh-jobs-banner-btn:hover {
    background: var(--sh-gray-100);
    color: var(--sh-black);
    transform: translateY(-1px);
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 768px) {
    .sh-dashboard-header {
        padding: 2rem 1.25rem 2.5rem 1.25rem;
    }

    .sh-page-title {
        font-size: 1.44rem; /* lg in Minor Third scale: 16 × 1.2² = 23px */
    }

    .sh-today-section {
        padding: 1.25rem;
    }

    .sh-today-icon {
        font-size: 2rem;
    }

    .sh-workspace-grid,
    .sh-identity-grid {
        grid-template-columns: 1fr;
    }

    .sh-system-grid {
        grid-template-columns: 1fr;
    }

    .sh-jobs-banner-content {
        flex-direction: column;
        align-items: flex-start;
        padding: 1.5rem;
    }

    .sh-dashboard-inner {
        padding: 1.25rem 1rem 0 1rem;
    }
}

/* ========================================
   SPITAL DASHBOARD STYLES
   ======================================== */

/* ── Minor Third Type Scale (base 16 × 1.2) ─────────────────────────
   xs   = 11.1px  (0.694rem)  eyebrow, caption
   sm   = 13.3px  (0.833rem)  meta, label
   base = 16px    (1rem)      body
   md   = 19.2px  (1.2rem)    card title, h5
   lg   = 23px    (1.44rem)   section heading, h4
   xl   = 27.6px  (1.728rem)  page title, h3
   2xl  = 33.2px  (2.074rem)  hero number, h2
   3xl  = 39.8px  (2.488rem)  display, h1
   ──────────────────────────────────────────────────────────────────── */

/* Spital portal: Inter font + Minor Third body baseline */
.sh-spital-portal {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #222222;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.6;
}
/* Preserve explicit weights on sub-elements */
.sh-spital-portal b, .sh-spital-portal strong,
.sh-spital-portal h1, .sh-spital-portal h2, .sh-spital-portal h3 { font-weight: 700; }

/* Spital-spezifisches Hero-Bild (Fallback für altes Markup) */
.sh-dashboard-container .sh-dashboard-header {
    background:
        linear-gradient(135deg, rgba(15,23,42,0.78) 0%, rgba(30,58,95,0.68) 55%, rgba(29,78,216,0.58) 100%),
        url('/swisshunter24/assets/images/hero_hospital.webp') center / cover no-repeat;
}

/* ================================================================
   SPITAL PORTAL — IMAGE LAYER SYSTEM
   Prinzip: 5% Emotion, 95% Funktion
   clinical_atmosphere.png → Hero (NatGeo-Overlay)
   abstract_medical_light.png → Page-Textur (5% opacity)
   human_detail.png → Empty State (editorial)
   ================================================================ */

/* Page-weite Textur: abstract_medical_light.png */
.sh-spital-portal::before {
    background-image: url('/swisshunter24/assets/images/abstract_medical_light.png');
    background-size: cover;
    background-position: center top;
    opacity: 0.05;
    filter: none;
}

/* Hero: clinical_atmosphere.png + NatGeo-Gradient
   Links: dunkel (Text lesbar) → Rechts: Bild dominiert (Tiefe, Leben)
   Unten: Fade ins Seitenhintergrund für sanften Übergang zu Stat-Cards */
.sh-spital-portal .sh-dashboard-header {
    background:
        linear-gradient(
            to bottom,
            transparent 60%,
            rgba(241, 245, 249, 0.55) 100%
        ),
        linear-gradient(
            105deg,
            rgba(9, 26, 51, 0.94) 0%,
            rgba(11, 38, 68, 0.82) 35%,
            rgba(11, 38, 68, 0.52) 62%,
            rgba(8, 24, 48, 0.18) 100%
        ),
        url('/swisshunter24/assets/images/clinical_atmosphere.png') center 30% / cover no-repeat;
    padding: 4rem 2.5rem 5rem 2.5rem;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* Hero Eyebrow — Label über dem Titel */
.sh-spital-hero-eyebrow {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    margin: 0 0 0.5rem 0;
    position: relative;
    z-index: 1;
}

/* Hero Pulse Bar — Echtzeit-Status unter dem Titel */
.sh-spital-hero-pulse {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1.25rem;
    margin-top: 1rem;
    position: relative;
    z-index: 1;
}

.sh-spital-hero-pulse span {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.62);
    font-weight: 500;
    letter-spacing: 0.01em;
}

.sh-spital-hero-pulse-alert {
    color: #fbbf24 !important;
}

/* Stagger-Animation: Stat-Karten erscheinen nacheinander */
.sh-spital-portal .sh-spital-stats-row .sh-spital-stat-card:nth-child(1) { animation: sh-fade-up 0.4s ease both 0.05s; }
.sh-spital-portal .sh-spital-stats-row .sh-spital-stat-card:nth-child(2) { animation: sh-fade-up 0.4s ease both 0.12s; }
.sh-spital-portal .sh-spital-stats-row .sh-spital-stat-card:nth-child(3) { animation: sh-fade-up 0.4s ease both 0.19s; }

@keyframes sh-fade-up {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Empty State: human_detail.png — editorial, emotional */
.sh-spital-portal .sh-spital-empty-state {
    position: relative;
    overflow: hidden;
    background: #091a33;
    border: none;
    min-height: 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.sh-spital-portal .sh-spital-empty-state::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('/swisshunter24/assets/images/human_detail.png');
    background-size: cover;
    background-position: center;
    opacity: 0.20;
    pointer-events: none;
}

.sh-spital-portal .sh-spital-empty-state::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(9, 26, 51, 0.25) 0%,
        rgba(9, 26, 51, 0.80) 100%
    );
    pointer-events: none;
}

.sh-spital-portal .sh-spital-empty-state > * {
    position: relative;
    z-index: 1;
}

.sh-spital-portal .sh-spital-empty-icon {
    color: rgba(255, 255, 255, 0.28);
}

.sh-spital-portal .sh-spital-empty-title {
    color: #ffffff;
    font-weight: 600;
}

.sh-spital-portal .sh-spital-empty-text {
    color: rgba(255, 255, 255, 0.65);
}

/* ---- Zone 1: Alerts ---- */
.sh-spital-alert-card {
    display: flex;
    gap: 1.25rem;
    border-radius: var(--sh-radius-card);
    padding: 1.5rem;
    margin-bottom: 1.75rem;
    box-shadow: var(--sh-card-shadow);
}

.sh-spital-alert-warning {
    background: var(--sh-yellow-50);
    border: 1px solid #fde68a;
}

.sh-spital-alert-icon {
    font-size: 1.375rem;
    color: var(--sh-yellow-600);
    flex-shrink: 0;
    padding-top: 0.125rem;
}

.sh-spital-alert-body {
    flex: 1;
}

.sh-spital-alert-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--sh-black);
    margin-bottom: 0.875rem;
    letter-spacing: -0.01em;
}

.sh-spital-alert-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.sh-spital-revision-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--sh-white);
    border: 1px solid #fde68a;
    border-radius: 8px;
    text-decoration: none;
    transition: box-shadow 0.15s ease;
}

.sh-spital-revision-item:hover {
    box-shadow: 0 2px 8px rgba(217, 119, 6, 0.15);
}

.sh-spital-revision-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-black);
    flex: 1;
}

.sh-spital-revision-meta {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
}

.sh-spital-revision-action {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-yellow-600);
    white-space: nowrap;
}

.sh-spital-alert-link {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--sh-gray-700);
    text-decoration: none;
}

.sh-spital-alert-link:hover {
    color: var(--sh-black);
    text-decoration: underline;
}

/* ---- Zone 2: Stats ---- */
.sh-spital-stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin-top: -2rem;   /* leicht in den Hero hineinziehen — sanfter Übergang */
    margin-bottom: 1.75rem;
    position: relative;
    z-index: 2;
}

.sh-spital-stat-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 1.5rem;
    text-decoration: none;
    color: var(--sh-black);
    box-shadow: 0 4px 20px rgba(9, 26, 51, 0.10), var(--sh-card-shadow);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    text-align: center;
    border-top: 3px solid transparent;
}

.sh-spital-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--sh-card-shadow-hover);
    color: var(--sh-black);
}

/* Pending Bewerbungen: blauer Akzent */
.sh-spital-stat-card.sh-spital-stat-highlight {
    border-top-color: var(--sh-blue-500);
    border-color: #bfdbfe;
    background: linear-gradient(160deg, #eff6ff 0%, #ffffff 60%);
}

/* Aktive Buchungen (3. Card): grüner Akzent wenn > 0 — PHP via sh-spital-stat-booked */
.sh-spital-stat-card.sh-spital-stat-booked {
    border-top-color: var(--sh-green-600);
}
.sh-spital-stat-card.sh-spital-stat-booked .sh-spital-stat-value {
    color: var(--sh-green-600);
}

.sh-spital-stat-value {
    font-size: 2.074rem; /* 2xl in Minor Third scale: 16 × 1.2⁴ = 33.2px */
    font-weight: 700;
    color: #222222;
    letter-spacing: -0.03em;
    line-height: 1;
    margin-bottom: 0.375rem;
}

.sh-spital-stat-label {
    font-size: 0.833rem; /* sm in Minor Third scale: 16 / 1.2 = 13.3px */
    color: var(--sh-gray-600);
    font-weight: 500;
    letter-spacing: 0.01em;
}

/* ---- Zone 3: Empty State & Next Step ---- */
.sh-spital-empty-state {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 3.5rem 2rem;
    text-align: center;
    margin-bottom: 2rem;
    box-shadow: var(--sh-card-shadow);
}

.sh-spital-empty-icon {
    font-size: 3rem;
    color: var(--sh-gray-300);
    margin-bottom: 1.25rem;
    line-height: 1;
}

.sh-spital-empty-title {
    font-size: 1.2rem; /* md in Minor Third scale: 16 × 1.2 = 19.2px */
    font-weight: 700;
    line-height: 1.15;
    color: var(--sh-black);
    margin: 0 0 0.75rem 0;
    letter-spacing: -0.022em;
}

.sh-spital-empty-text {
    font-size: 0.9375rem;
    color: var(--sh-gray-600);
    line-height: 1.6;
    margin: 0 0 1.75rem 0;
}

.sh-spital-next-step {
    background: var(--sh-white);
    border: 1px solid #bfdbfe;
    border-left: 4px solid var(--sh-blue-600);
    border-radius: var(--sh-radius-card);
    padding: 1.5rem 1.75rem;
    margin-bottom: 2rem;
    box-shadow: var(--sh-card-shadow);
}

.sh-spital-next-step-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--sh-blue-600);
    margin-bottom: 0.5rem;
}

.sh-spital-next-step-text {
    font-size: 1rem;
    color: var(--sh-black);
    margin-bottom: 1.25rem;
    font-weight: 500;
}

/* Primary Action Button */
.sh-spital-primary-btn {
    display: inline-block;
    background: var(--sh-black);
    color: var(--sh-white);
    font-weight: 600;
    font-size: 0.9375rem;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
    letter-spacing: -0.01em;
}

.sh-spital-primary-btn:hover {
    background: #1e3a5f;
    color: var(--sh-white);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

/* ---- Zone 4: Navigation Cards ---- */
.sh-spital-nav-section {
    margin-bottom: 2rem;
}

.sh-spital-nav-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--sh-gray-600);
    margin: 0 0 0.875rem 0;
}

.sh-spital-nav-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.sh-spital-nav-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 1.5rem 1.25rem;
    text-decoration: none;
    color: var(--sh-black);
    box-shadow: var(--sh-card-shadow);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    text-align: center;
}

.sh-spital-nav-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--sh-card-shadow-hover);
    border-color: var(--sh-gray-300);
    color: var(--sh-black);
}

.sh-spital-nav-card.sh-spital-nav-primary {
    background: var(--sh-black);
    border-color: var(--sh-black);
    color: var(--sh-white);
}

.sh-spital-nav-card.sh-spital-nav-primary:hover {
    background: #1e3a5f;
    border-color: #1e3a5f;
    color: var(--sh-white);
}

.sh-spital-nav-icon {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
    opacity: 0.85;
}

.sh-spital-nav-card.sh-spital-nav-primary .sh-spital-nav-icon {
    opacity: 1;
}

.sh-spital-nav-card-title {
    font-size: 1rem; /* base in Minor Third scale */
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 0.25rem;
    letter-spacing: -0.015em;
}

.sh-spital-nav-card-sub {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
    line-height: 1.4;
}

.sh-spital-nav-card.sh-spital-nav-primary .sh-spital-nav-card-sub {
    color: rgba(255, 255, 255, 0.7);
}

.sh-spital-nav-badge {
    display: inline-block;
    background: var(--sh-blue-600);
    color: white;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 10px;
}

.sh-spital-nav-badge.sh-spital-nav-badge-warn {
    background: var(--sh-yellow-600);
    color: white;
}

/* ---- Zone 5: Activity Feed ---- */
.sh-activity-section {
    background: var(--sh-white);
    border-radius: 12px;
    border: 1px solid var(--sh-border);
    padding: 1.5rem 1.75rem;
    margin-bottom: 1.5rem;
}

.sh-activity-title {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sh-text-tertiary);
    margin: 0 0 1.25rem 0;
}

.sh-activity-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.sh-activity-item {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--sh-surface-hover);
}

.sh-activity-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.sh-activity-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}

.sh-activity-icon-application {
    background: #dbeafe;
    color: #1d4ed8;
}

.sh-activity-icon-booking {
    background: #dcfce7;
    color: #16a34a;
}

.sh-activity-icon-timesheet {
    background: #fef9c3;
    color: #a16207;
}

.sh-activity-body {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem 0.5rem;
    min-width: 0;
}

.sh-activity-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    white-space: nowrap;
}

.sh-activity-label {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
}

.sh-activity-context {
    font-size: 0.8125rem;
    color: var(--sh-text-tertiary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}

.sh-activity-context::before {
    content: "· ";
}

.sh-activity-time {
    font-size: 0.75rem;
    color: var(--sh-text-tertiary);
    white-space: nowrap;
    flex-shrink: 0;
}

/* Severity */
.sh-activity-item.sh-activity-critical .sh-activity-name,
.sh-activity-item.sh-activity-critical .sh-activity-label {
    color: #b91c1c;
    font-weight: 700;
}

.sh-activity-item.sh-activity-critical .sh-activity-icon {
    background: #fee2e2;
    color: #b91c1c;
}

.sh-activity-item.sh-activity-normal .sh-activity-name {
    color: var(--sh-text-primary);
    font-weight: 600;
}

/* highlight = neue Bewerbung — blau, auffällig aber nicht alarmierend */
.sh-activity-item.sh-activity-highlight .sh-activity-name,
.sh-activity-item.sh-activity-highlight .sh-activity-label {
    color: #1d4ed8;
    font-weight: 600;
}

.sh-activity-item.sh-activity-highlight .sh-activity-icon {
    background: #dbeafe;
    color: #1d4ed8;
}

/* More link */
.sh-activity-more-link {
    display: block;
    margin-top: 1rem;
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    text-decoration: none;
    text-align: right;
}

.sh-activity-more-link:hover {
    color: var(--sh-blue-600);
}

/* ---- Zone 6: Soft Footer ---- */
.sh-spital-soft-footer {
    margin-top: 0.5rem;
    padding: 1.5rem 1.75rem;
    border-top: 1px solid var(--sh-border);
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(6px);
    border-radius: 0 0 14px 14px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.5rem;
    margin-bottom: 2rem;
}

.sh-spital-soft-footer-brand {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    letter-spacing: -0.01em;
}

.sh-spital-soft-footer-info {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
}

.sh-spital-soft-footer-links {
    font-size: 0.8125rem;
    color: var(--sh-text-tertiary);
    margin-left: auto;
}

.sh-spital-soft-footer-links a {
    color: var(--sh-text-secondary);
    text-decoration: none;
}

.sh-spital-soft-footer-links a:hover {
    color: var(--sh-blue-600);
    text-decoration: underline;
}

/* ================================================================
   CONTROL TOWER — New Components (2026-03)
   Struktur: Priorität Heute → Aktive Aufgaben → KPI → Live → Tools
   ================================================================ */

/* ---- 🔥 Priorität Heute ---------------------------------------- */
.sh-priority {
    border-radius: var(--sh-radius-card);
    padding: 1.75rem 2rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.sh-priority--active {
    background: #eff6ff;
    border: 1.5px solid #bfdbfe;
    border-left: 4px solid var(--sh-blue-600);
}

.sh-priority--urgent {
    background: #fff7ed;
    border: 1.5px solid #fed7aa;
    border-left: 4px solid #ea580c;
}

.sh-priority--clear {
    background: #f0fdf4;
    border: 1.5px solid #bbf7d0;
    border-left: 4px solid var(--sh-green-600);
}

.sh-priority--empty {
    background: var(--sh-gray-50);
    border: 1.5px dashed var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
}

.sh-priority-badge {
    font-size: 0.694rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--sh-blue-600);
    white-space: nowrap;
    padding: 0.2rem 0.6rem;
    background: #dbeafe;
    border-radius: 4px;
    flex-shrink: 0;
}

.sh-priority--urgent .sh-priority-badge {
    color: #ea580c;
    background: #ffedd5;
}

.sh-priority-text {
    font-size: 1.2rem;       /* md in Minor Third scale */
    font-weight: 700;
    line-height: 1.3;
    color: #111827;
    flex: 1;
    min-width: 0;
    letter-spacing: -0.02em;
}

.sh-priority-sub {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sh-green-600);
    margin-top: 0.2rem;
}

.sh-priority-cta {
    display: inline-flex;
    align-items: center;
    background: var(--sh-blue-600);
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 600;
    padding: 0.75rem 1.375rem;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
    letter-spacing: -0.01em;
    transition: background 0.15s, transform 0.1s;
    flex-shrink: 0;
}
.sh-priority-cta:hover {
    background: var(--sh-blue-900);
    color: #fff;
    transform: translateY(-1px);
}

.sh-priority--urgent .sh-priority-cta {
    background: #ea580c;
}
.sh-priority--urgent .sh-priority-cta:hover {
    background: #c2410c;
}

.sh-priority--empty .sh-priority-cta {
    background: var(--sh-black);
}
.sh-priority--empty .sh-priority-cta:hover {
    background: #1e3a5f;
    color: #fff;
}

.sh-priority-icon {
    font-size: 2rem;
    color: var(--sh-gray-300);
    flex-shrink: 0;
}

.sh-priority-content {
    flex: 1;
}
.sh-priority-content .sh-priority-text {
    font-size: 1rem;
    color: var(--sh-gray-700);
}

.sh-priority-check {
    font-size: 1.5rem;
    color: var(--sh-green-600);
    flex-shrink: 0;
}

/* ---- ⚡ Aktive Aufgaben ----------------------------------------- */
.sh-tasks {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--sh-card-shadow);
}

.sh-tasks-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--sh-gray-600);
    margin: 0 0 1rem 0;
}

.sh-tasks-title i {
    color: #f59e0b;
    margin-right: 0.3rem;
}

.sh-task-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.sh-task-item {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.875rem 0;
    border-bottom: 1px solid var(--sh-gray-100);
    text-decoration: none;
    color: #222222;
    transition: background 0.1s;
    border-radius: 6px;
    margin: 0 -0.5rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.sh-task-item:last-child {
    border-bottom: none;
    padding-bottom: 0.5rem;
}

.sh-task-item:hover {
    background: var(--sh-gray-50);
    color: #222222;
}

.sh-task-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--sh-gray-100);
    color: var(--sh-gray-600);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    flex-shrink: 0;
}

.sh-task--urgent .sh-task-icon {
    background: #fff7ed;
    color: #ea580c;
}

.sh-task-label {
    flex: 1;
    font-size: 0.9375rem;
    font-weight: 500;
    line-height: 1.4;
}

.sh-task--urgent .sh-task-label {
    font-weight: 600;
    color: #ea580c;
}

.sh-task-cta {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-blue-600);
    white-space: nowrap;
    flex-shrink: 0;
}

.sh-task--urgent .sh-task-cta {
    color: #ea580c;
}

/* ---- KPI: Stat Action hint ------------------------------------- */
.sh-spital-stat-action {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sh-gray-400, #9ca3af);
    margin-top: 0.5rem;
    letter-spacing: 0.01em;
    opacity: 0;
    transition: opacity 0.15s;
}

.sh-spital-stat-card:hover .sh-spital-stat-action {
    opacity: 1;
    color: var(--sh-blue-600);
}

.sh-spital-stat-card.sh-spital-stat-highlight:hover .sh-spital-stat-action {
    color: var(--sh-blue-900);
}

.sh-spital-stat-card.sh-spital-stat-booked:hover .sh-spital-stat-action {
    color: var(--sh-green-600);
}

/* ---- 📡 Live Aktivität ----------------------------------------- */
.sh-activity-live {
    border-color: var(--sh-gray-200);
    box-shadow: var(--sh-card-shadow);
}

.sh-activity-live .sh-activity-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--sh-gray-700);
    font-size: 0.75rem;
}

.sh-live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sh-green-600);
    animation: sh-pulse 2s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes sh-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.5; transform: scale(0.85); }
}

/* Simplified dot-based activity items */
.sh-activity-live .sh-activity-item {
    gap: 0.75rem;
    padding: 0.625rem 0;
}

.sh-act-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.sh-act-dot--blue  { background: #3b82f6; }
.sh-act-dot--green { background: var(--sh-green-600); }
.sh-act-dot--warn  { background: #f59e0b; }

.sh-activity-live .sh-activity-name {
    font-size: 0.875rem;
    font-weight: 600;
}

.sh-activity-live .sh-activity-label {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
}

.sh-activity-live .sh-activity-context {
    font-size: 0.75rem;
    color: var(--sh-gray-400, #9ca3af);
}

/* ---- Schnellzugriff (sekundär, kompakt) ------------------------ */
.sh-quick-access {
    margin-bottom: 1.5rem;
}

.sh-quick-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sh-quick-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.875rem;
    border-radius: 20px;
    border: 1px solid var(--sh-gray-200);
    background: var(--sh-white);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--sh-gray-700);
    text-decoration: none;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    white-space: nowrap;
}

.sh-quick-link:hover {
    border-color: var(--sh-gray-400, #9ca3af);
    background: var(--sh-gray-50);
    color: var(--sh-black);
}

/* Primary quick-link: same base style as others — distinction only via icon */
.sh-quick-link.sh-quick-primary {
    background: var(--sh-white);
    border-color: var(--sh-gray-200);
    color: var(--sh-gray-700);
    font-weight: 600;
}

.sh-quick-link.sh-quick-primary:hover {
    border-color: var(--sh-gray-400, #9ca3af);
    background: var(--sh-gray-50);
    color: var(--sh-black);
}

/* ---- Responsive ---------------------------------------------- */
@media (max-width: 768px) {
    .sh-priority {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        padding: 1.25rem 1.25rem;
    }

    .sh-priority-text {
        font-size: 1rem;
    }

    .sh-priority-cta {
        width: 100%;
        justify-content: center;
    }

    .sh-task-item {
        flex-wrap: wrap;
    }

    .sh-task-cta {
        margin-left: auto;
    }
}

/* ---- Footer (plain, kept as fallback) ---- */
.sh-spital-footer {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
    padding-top: 1.25rem;
    border-top: 1px solid var(--sh-gray-200);
    margin-top: 0.5rem;
    margin-bottom: 2rem;
}

.sh-spital-footer a {
    color: var(--sh-gray-600);
    text-decoration: none;
}

.sh-spital-footer a:hover {
    color: var(--sh-blue-600);
    text-decoration: underline;
}

/* ================================================================ */
/* TIMESHEET APPROVAL PAGE                                          */
/* ================================================================ */

.sh-timesheet-container {
    max-width: 1100px;
    margin: 0 auto;
    background: var(--sh-page-bg, #f1f5f9);
}

.sh-timesheet-container .sh-dashboard-header {
    background:
        linear-gradient(135deg, rgba(15,23,42,0.80) 0%, rgba(30,58,95,0.70) 50%, rgba(15,43,77,0.65) 100%),
        url('/swisshunter24/assets/images/swiss_hospital_interior.jpg') center / cover no-repeat;
}

/* Filter bar */
.sh-ts-filter-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.sh-ts-search-form {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

.sh-ts-search-input {
    border: 1px solid var(--sh-border);
    border-radius: 8px;
    padding: 0.5rem 0.875rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sh-white);
    width: 200px;
}

.sh-ts-search-input:focus {
    border-color: #93c5fd;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.12);
}

.sh-ts-search-btn,
.sh-ts-reset-btn {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    border: 1px solid var(--sh-border);
    background: var(--sh-white);
    color: var(--sh-text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    text-decoration: none;
    flex-shrink: 0;
}

.sh-ts-search-btn:hover,
.sh-ts-reset-btn:hover {
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
}

/* Empty state */
.sh-ts-empty-state {
    background: var(--sh-white);
    border-radius: 12px;
    border: 1px solid var(--sh-border);
    padding: 3rem;
    text-align: center;
}

.sh-ts-empty-icon {
    font-size: 2.5rem;
    color: var(--sh-text-tertiary);
    margin-bottom: 0.75rem;
}

.sh-ts-empty-text {
    font-size: 1rem;
    color: var(--sh-text-secondary);
    margin: 0;
}

/* Contract group */
.sh-contract-group {
    background: var(--sh-white);
    border-radius: 14px;
    border: 1px solid var(--sh-border);
    overflow: hidden;
    margin-bottom: 1.5rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.sh-contract-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.125rem 1.5rem;
    background: var(--sh-surface-subtle);
    border-bottom: 1px solid var(--sh-border);
}

.sh-contract-info {
    flex: 1;
    min-width: 0;
}

.sh-contract-title {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.sh-contract-title i {
    color: var(--sh-text-tertiary);
    font-size: 0.875rem;
}

.sh-contract-meta {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.sh-contract-ref {
    font-family: monospace;
    font-size: 0.75rem;
    background: var(--sh-surface-hover);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
}

.sh-contract-count {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sh-text-tertiary);
    white-space: nowrap;
}

/* Timesheet card grid */
.sh-ts-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
    padding: 1rem;
    background: var(--sh-surface-subtle);
}

/* Timesheet card — klare Kachel mit Rahmen und Schatten */
.sh-ts-card {
    background: var(--sh-white);
    border-radius: var(--sh-radius-md);
    border: 1px solid var(--sh-border);
    box-shadow: var(--sh-shadow-sm);
    padding: 1.25rem;
    cursor: pointer;
    transition: box-shadow 0.2s, transform 0.15s;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sh-ts-card:hover {
    box-shadow: var(--sh-shadow-md);
    transform: translateY(-2px);
}

.sh-ts-card.sh-ts-card-approved {
    opacity: 0.72;
}

.sh-ts-card.sh-ts-card-high {
    border-left: 3px solid #dc2626;
}

/* Card header: Month links, Badges rechts — immer eine Zeile */
.sh-ts-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 1.5rem;
}

.sh-ts-month {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    flex-shrink: 0;
    white-space: nowrap;
}

.sh-ts-badges {
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    flex-shrink: 0;
}

/* SH badges */
.sh-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    white-space: nowrap;
}

.sh-badge-success { background: #dcfce7; color: #15803d; }
.sh-badge-warning { background: #fef9c3; color: #a16207; }
.sh-badge-danger  { background: #fee2e2; color: #b91c1c; }
.sh-badge-neutral { background: var(--sh-surface-hover); color: var(--sh-text-secondary); }

/* Stats row */
.sh-ts-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--sh-border);
    border-radius: 8px;
    overflow: hidden;
}

.sh-ts-stat {
    padding: 0.625rem 0.5rem;
    text-align: center;
    border-right: 1px solid var(--sh-border);
}

.sh-ts-stat:last-child { border-right: none; }

.sh-ts-stat-value {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1.2;
}

.sh-ts-stat-primary { color: #1d4ed8; }
.sh-ts-stat-warn    { color: #b45309; }

.sh-ts-stat-label {
    font-size: 0.6875rem;
    color: var(--sh-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 0.1rem;
}

/* GPS row */
.sh-ts-gps {
    font-size: 0.8125rem;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.625rem;
    border-radius: 6px;
}

.sh-ts-gps-ok   { background: #dcfce7; color: #15803d; }
.sh-ts-gps-warn { background: #fee2e2; color: #b91c1c; }

/* Hour delta */
.sh-ts-delta {
    font-size: 0.8125rem;
    padding: 0.375rem 0.625rem;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.sh-ts-delta-warn   { background: #fef9c3; color: #a16207; }
.sh-ts-delta-danger { background: #fee2e2; color: #b91c1c; }

/* Risk reasons */
.sh-ts-risk-reasons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.sh-ts-risk-tag {
    font-size: 0.6875rem;
    padding: 0.15rem 0.5rem;
    background: var(--sh-surface-hover);
    color: var(--sh-text-secondary);
    border-radius: 4px;
    border: 1px solid var(--sh-border);
}

/* Card footer */
.sh-ts-card-footer {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-top: 0.625rem;
    border-top: 1px solid var(--sh-surface-hover);
    margin-top: auto;
}

.sh-ts-actions {
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
}

.sh-ts-ref {
    font-size: 0.6875rem;
    font-family: monospace;
    color: var(--sh-text-tertiary);
}

.sh-ts-btn {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.375rem 0.75rem;
    border-radius: 7px;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s, transform 0.1s;
}

.sh-ts-btn:hover { transform: translateY(-1px); }

.sh-ts-btn-approve {
    background: #0f172a;
    color: #fff;
}

.sh-ts-btn-approve:hover { background: #1e3a5f; }

.sh-ts-btn-outline {
    background: transparent;
    color: var(--sh-text-secondary);
    border: 1px solid var(--sh-border);
}

.sh-ts-btn-outline:hover { background: var(--sh-surface-hover); color: var(--sh-text-primary); }

.sh-ts-btn-done {
    background: var(--sh-surface-hover);
    color: var(--sh-text-tertiary);
    cursor: default;
}

.sh-ts-btn-done:hover { transform: none; }

/* Responsive */
@media (max-width: 768px) {
    .sh-spital-stats-row,
    .sh-spital-nav-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sh-spital-alert-card {
        flex-direction: column;
        gap: 0.75rem;
    }

    .sh-spital-empty-state {
        padding: 2.5rem 1.25rem;
    }

    .sh-ts-card-grid {
        grid-template-columns: 1fr;
    }

    .sh-ts-filter-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .sh-ts-search-form { margin-left: 0; }
}

/* ========================================
   TIMESHEET DETAIL VIEW — sh-ts-detail-*
   ======================================== */

.sh-ts-rev-inline {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--sh-radius-sm);
    background: rgba(245,158,11,0.12);
    color: #b45309;
    vertical-align: middle;
    margin-left: 0.5rem;
}

.sh-ts-detail-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.sh-ts-detail-ref {
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    background: var(--sh-surface-subtle);
    padding: 4px 10px;
    border-radius: var(--sh-radius-sm);
    border: 1px solid var(--sh-border);
}

/* Decision Summary 4-metric card */
.sh-ts-summary {
    background: var(--sh-white);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: var(--sh-shadow-sm);
}

.sh-ts-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}

.sh-ts-metric { text-align: center; }

.sh-ts-metric-value {
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 4px;
    color: var(--sh-text-primary);
}

.sh-ts-metric-label {
    font-size: 0.6875rem;
    color: var(--sh-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sh-ts-metric--ok   .sh-ts-metric-value { color: var(--sh-green-600); }
.sh-ts-metric--warn .sh-ts-metric-value { color: var(--sh-amber-500); }

.sh-ts-progress-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--sh-border);
}

.sh-ts-progress-label {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    white-space: nowrap;
}

.sh-ts-progress-track {
    flex: 1;
    height: 4px;
    background: var(--sh-surface-hover);
    border-radius: 2px;
    overflow: hidden;
}

.sh-ts-progress-fill {
    height: 100%;
    background: var(--sh-green-600);
    border-radius: 2px;
    transition: width 0.4s ease;
}

/* Alerts (revision notice, old revision warning) */
.sh-ts-alert {
    display: flex;
    gap: 1rem;
    border-radius: var(--sh-radius-lg);
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-left-width: 3px;
}

.sh-ts-alert--warn   { background: #fffbeb; border-color: #fde68a; border-left-color: var(--sh-amber-500); }
.sh-ts-alert--danger { background: #fff1f2; border-color: #fecdd3; border-left-color: var(--sh-red-500); }

.sh-ts-alert-icon { font-size: 1rem; flex-shrink: 0; margin-top: 2px; }
.sh-ts-alert--warn   .sh-ts-alert-icon { color: var(--sh-amber-500); }
.sh-ts-alert--danger .sh-ts-alert-icon { color: var(--sh-red-500); }

.sh-ts-alert-body { flex: 1; }

.sh-ts-alert-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    margin-bottom: 0.25rem;
}

.sh-ts-alert-text {
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
    margin: 0 0 0.75rem;
}

.sh-ts-change-list { margin-bottom: 0.75rem; }

.sh-ts-change-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    padding: 2px 0;
}

.sh-ts-change-date {
    font-family: 'SF Mono', Monaco, monospace;
    background: var(--sh-surface-subtle);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.75rem;
    color: var(--sh-text-secondary);
    border: 1px solid var(--sh-border);
}

.sh-ts-change-more { font-size: 0.75rem; color: var(--sh-text-tertiary); margin-top: 4px; }

.sh-ts-diff-plus  { color: var(--sh-green-600); font-weight: 600; }
.sh-ts-diff-minus { color: var(--sh-red-500);   font-weight: 600; }
.sh-ts-diff-badge { font-size: 0.8rem; font-weight: 600; margin-left: 4px; }

/* Payroll impact + comparison boxes */
.sh-ts-impact-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(245,158,11,0.08);
    border: 1px solid rgba(245,158,11,0.25);
    border-radius: var(--sh-radius-md);
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
    font-size: 0.9375rem;
}

.sh-ts-impact-hours { color: #b45309; }
.sh-ts-impact-money { font-weight: 700; color: #92400e; }

.sh-ts-comparison {
    background: var(--sh-surface-subtle);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-md);
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
}

.sh-ts-comparison-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
    padding: 3px 0;
}

.sh-ts-comparison-new {
    border-top: 1px solid var(--sh-border);
    margin-top: 4px;
    padding-top: 8px;
    font-weight: 600;
    color: var(--sh-text-primary);
}

.sh-ts-reason-box {
    background: rgba(59,130,246,0.06);
    border: 1px solid rgba(59,130,246,0.2);
    border-radius: var(--sh-radius-md);
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
}

.sh-ts-reason-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1d4ed8;
    margin-bottom: 0.5rem;
}

.sh-ts-reason-comment {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(59,130,246,0.15);
}

/* Sticky action bar — sits below the navbar */
.sh-ts-action-bar {
    position: sticky;
    top: var(--sh-nav-height, 68px);
    background: var(--sh-white);
    border-bottom: 1px solid var(--sh-border);
    padding: 0.875rem 0;
    margin-bottom: 1.5rem;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.sh-ts-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: none;
    cursor: pointer;
    font-size: 0.9375rem;
    font-weight: 600;
    padding: 0.625rem 1.5rem;
    border-radius: var(--sh-radius-md);
    transition: all 0.15s ease;
}

.sh-ts-action-btn--primary {
    background: #0f172a;
    color: #fff;
}

.sh-ts-action-btn--primary:hover {
    background: var(--sh-blue-900);
    transform: translateY(-1px);
}

.sh-ts-action-secondary { display: flex; gap: 0.5rem; margin-left: auto; }

.sh-ts-action-blocked { font-size: 0.875rem; color: var(--sh-red-500); }
.sh-ts-action-muted   { font-size: 0.875rem; color: var(--sh-text-tertiary); }

/* Section blocks (clean / flagged tables) */
.sh-ts-section {
    background: var(--sh-white);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    margin-bottom: 1rem;
    overflow: hidden;
    box-shadow: var(--sh-shadow-sm);
}

.sh-ts-section--ok      { border-left: 3px solid var(--sh-green-600); }
.sh-ts-section--warn    { border-left: 3px solid var(--sh-amber-500); }
.sh-ts-section--absence { border-left: 3px solid var(--sh-blue-500); }

.sh-ts-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem 0.75rem;
    border-bottom: 1px solid var(--sh-border);
}

.sh-ts-section-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    margin: 0;
}

/* Data tables */
.sh-ts-table {
    width: 100%;
    font-size: 0.875rem;
    border-collapse: collapse;
}

.sh-ts-table thead th {
    background: var(--sh-surface-subtle);
    padding: 0.5rem 1rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--sh-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--sh-border);
    text-align: left;
}

.sh-ts-table tbody td {
    padding: 0.625rem 1rem;
    border-bottom: 1px solid var(--sh-border);
    color: var(--sh-text-primary);
    vertical-align: middle;
}

.sh-ts-table tbody tr:last-child td { border-bottom: none; }
.sh-ts-table tbody tr:hover { background: var(--sh-surface-subtle); }

.sh-ts-row-changed {
    background: #fffbeb !important;
    border-left: 3px solid var(--sh-amber-500);
}
.sh-ts-row-changed:hover { background: #fef9c3 !important; }
.sh-ts-row-flagged { background: #fff9f0; }

/* Status chips */
.sh-ts-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: var(--sh-radius-sm);
    font-size: 0.75rem;
    font-weight: 600;
}

.sh-ts-status--submitted { background: var(--sh-surface-hover); color: var(--sh-text-secondary); }
.sh-ts-status--approved  { background: #dcfce7; color: #15803d; }
.sh-ts-status--rejected  { background: #fee2e2; color: #b91c1c; }

/* Status indicator dot */
.sh-ts-indicator {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 5px;
    flex-shrink: 0;
}
.sh-ts-indicator--ok      { background: var(--sh-green-600); }
.sh-ts-indicator--warn    { background: var(--sh-amber-500); }
.sh-ts-indicator--danger  { background: var(--sh-red-500); }
.sh-ts-indicator--spital  { background: var(--sh-blue-500); }
.sh-ts-indicator--absence { background: var(--sh-blue-300, #93c5fd); }

/* Flag reason & FK comment */
.sh-ts-flag-reason {
    display: block;
    font-size: 0.75rem;
    color: #b45309;
    font-weight: 500;
}

.sh-ts-fk-comment {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
}

/* Absence row labels */
.sh-ts-absence-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--sh-text-secondary);
}
.sh-ts-absence-label--spital {
    color: var(--sh-blue-600, #2563eb);
}
.sh-ts-absence-info {
    padding: 0.75rem 1.25rem;
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    border-top: 1px solid var(--sh-border);
    background: var(--sh-gray-50);
}
.sh-ts-absence-info i {
    color: var(--sh-blue-500);
    margin-right: 4px;
}

/* Per-day approve / reject buttons */
.sh-ts-day-actions { display: flex; gap: 4px; }

.sh-ts-day-approve,
.sh-ts-day-reject {
    width: 28px;
    height: 28px;
    border: none;
    border-radius: var(--sh-radius-sm);
    cursor: pointer;
    font-size: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}

.sh-ts-day-approve { background: #dcfce7; color: #15803d; }
.sh-ts-day-approve:hover { background: #bbf7d0; }
.sh-ts-day-reject  { background: #fee2e2; color: #b91c1c; }
.sh-ts-day-reject:hover  { background: #fecaca; }

/* Responsive */
@media (max-width: 768px) {
    .sh-ts-summary-grid { grid-template-columns: repeat(2, 1fr); }
    .sh-ts-action-bar   { flex-wrap: wrap; }
    .sh-ts-action-secondary { margin-left: 0; }
    .sh-ts-table thead  { display: none; }
    .sh-ts-table td     { display: flex; padding: 0.5rem 1rem; }
}

/* ========================================
   FACHKRÄFTE BROWSE STYLES
   ======================================== */

.sh-browse-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 2rem 3rem 2rem;
    background: var(--sh-page-bg, #f1f5f9);
    min-height: 100vh;
}

/* Header als gerundete Kachel — gleiche Breite wie Filter + FK-Karten */
/* HERO-BILD PRO SEITE — Thema: Pflege-/Fachkraft-Team in Aktion          */
/* Format: 1200×400px JPEG. Dunkel genug für weissen Text (Gradient oben)  */
.sh-browse-container .sh-dashboard-header {
    border-radius: var(--sh-radius-card);
    margin-bottom: 1.5rem;
    background:
           /*linear-gradient(135deg, rgba(15,23,42,0.82) 0%, rgba(30,58,95,0.72) 55%, rgba(29,78,216,0.65) 100%),*/
    		linear-gradient(180deg,rgba(38,48,34,0.60) 0%,rgba(45,56,41,0.72) 100%),   /*TEST GRUEN */
            url('/assets/images/fachkraefte_browse.webp') center / cover no-repeat;
    }

.sh-browse-container .sh-dashboard-inner {
    padding: 0;
}

/* Applications page — same background treatment */
.sh-applications-container {
    background: var(--sh-page-bg, #f1f5f9);
    padding: 1.5rem;
    min-height: 100vh;
}

/* Applications page hero */
.sh-applications-container .sh-dashboard-header {
    border-radius: var(--sh-radius-card);
    margin-bottom: 1.5rem;
    background:
        linear-gradient(135deg, rgba(15,23,42,0.82) 0%, rgba(30,58,95,0.72) 55%, rgba(29,78,216,0.65) 100%),
        url('/swisshunter24/assets/images/applications.webp') center / cover no-repeat;
}

.sh-applications-container .sh-dashboard-inner {
    padding: 0;
}

/* Applications status filter */
.sh-app-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.sh-app-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 1rem;
    border-radius: 9999px;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--sh-text-secondary);
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    cursor: pointer;
}

.sh-app-filter-chip:hover {
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
    text-decoration: none;
}

.sh-app-filter-chip.active {
    background: var(--sh-blue-600, #2563eb);
    border-color: var(--sh-blue-600, #2563eb);
    color: #fff;
}

.sh-app-filter-chip .sh-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.375rem;
    height: 1.375rem;
    padding: 0 0.3rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    background: rgba(0,0,0,0.12);
    color: inherit;
}

.sh-app-filter-chip.active .sh-chip-count {
    background: rgba(255,255,255,0.25);
}

/* Application card */
.sh-app-card {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-card);
    margin-bottom: 1rem;
    overflow: hidden;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.sh-app-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.09);
    transform: translateY(-1px);
}

.sh-app-card-body {
    padding: 1.25rem 1.5rem;
}

.sh-app-card-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.sh-app-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--sh-blue-600, #2563eb);
    flex-shrink: 0;
}

.sh-app-avatar-initials {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 600;
    flex-shrink: 0;
}

.sh-app-info {
    flex: 1;
    min-width: 0;
}

.sh-app-job-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    margin: 0 0 0.25rem 0;
    line-height: 1.3;
}

.sh-app-subtitle {
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
    margin: 0 0 0.35rem 0;
}

.sh-app-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
}

.sh-app-meta i {
    color: var(--sh-blue-600, #2563eb);
    width: 1rem;
}

.sh-app-status-col {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    flex-shrink: 0;
}

.sh-app-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.sh-app-badge-pending   { background: #fef3c7; color: #92400e; }
.sh-app-badge-reviewed  { background: #dbeafe; color: #1e40af; }
.sh-app-badge-accepted  { background: #d1fae5; color: #065f46; }
.sh-app-badge-rejected  { background: #fee2e2; color: #991b1b; }
.sh-app-badge-withdrawn { background: #f3f4f6; color: #6b7280; }

.sh-app-applied-date {
    font-size: 0.75rem;
    color: var(--sh-text-tertiary, #9ca3af);
}

.sh-app-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.sh-app-cover-letter {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--sh-border);
}

.sh-app-cover-letter-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-text-secondary);
    margin-bottom: 0.4rem;
}

.sh-app-cover-letter-text {
    font-size: 0.875rem;
    color: var(--sh-text-primary);
    line-height: 1.6;
    margin: 0;
}

/* FK pricing chip inside app card */
.sh-app-fk-price {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    padding: 0.35rem 0.75rem;
    background: #d1fae5;
    border-radius: var(--sh-radius-sm, 6px);
    color: #065f46;
    font-size: 0.875rem;
    font-weight: 600;
    margin-top: 0.5rem;
}

.sh-app-fk-price .sh-app-fk-label {
    font-size: 0.75rem;
    font-weight: 400;
    opacity: 0.8;
}

/* Pricing preview panel inside card */
.sh-app-pricing-panel {
    margin-top: 1rem;
    padding: 1rem 1.25rem;
    background: var(--sh-surface-subtle, #f8fafc);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm, 6px);
}

/* Admin transparency panel */
.sh-app-admin-panel {
    margin-top: 1rem;
    padding: 1rem 1.25rem;
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    border-left: 3px solid #6366f1;
    border-radius: var(--sh-radius-sm, 6px);
}

/* Empty state */
.sh-app-empty {
    padding: 3rem 1.5rem;
    text-align: center;
    color: var(--sh-text-secondary);
}

.sh-app-empty i {
    font-size: 2.5rem;
    opacity: 0.35;
    display: block;
    margin-bottom: 1rem;
}

@media (max-width: 640px) {
    .sh-app-card-header { flex-wrap: wrap; }
    .sh-app-status-col  { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
    .sh-app-actions     { flex-direction: column; }
}

/* ========================================
   MY JOBS PAGE
   ======================================== */

/* Page background — cards need contrast */
.sh-myjobs-container {
    background: var(--sh-page-bg, #f1f5f9);
    padding: 1.5rem;
    min-height: 100vh;
}

/* Hero — my_jobs */
.sh-myjobs-container .sh-dashboard-header {
    border-radius: var(--sh-radius-card);
    margin-bottom: 1.5rem;
    background:
        linear-gradient(135deg, rgba(15,23,42,0.85) 0%, rgba(30,58,95,0.75) 55%, rgba(29,78,216,0.65) 100%),
        url('/swisshunter24/assets/images/clinical_atmosphere.jpg') center / cover no-repeat;
}

/* Hero — matching results (FK-Perspektive: gleiche Bildwelt wie fachkraefte_browse) */
.sh-matching-container .sh-dashboard-header {
    border-radius: var(--sh-radius-card);
    margin-bottom: 1.5rem;
    background:
        linear-gradient(180deg, rgba(10,16,28,0.90) 0%, rgba(15,23,42,0.72) 40%, rgba(15,23,42,0.55) 100%),
        url('/assets/images/fachkraefte_browse.webp') center / cover no-repeat;
}

.sh-myjobs-container .sh-dashboard-inner,
.sh-matching-container .sh-dashboard-inner {
    padding: 0;
    max-width: 960px;
}

/* ── sh-mc--highlight: Contextual Deep Link — FK Focus Pulse ─── */
@keyframes sh-highlight-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(245,158,11,0.6), var(--sh-card-shadow, 0 2px 8px rgba(0,0,0,0.06)); border-color: #f59e0b; }
    40%  { box-shadow: 0 0 0 8px rgba(245,158,11,0), var(--sh-card-shadow, 0 2px 8px rgba(0,0,0,0.06)); border-color: #f59e0b; }
    60%  { box-shadow: 0 0 0 0 rgba(245,158,11,0.3), var(--sh-card-shadow, 0 2px 8px rgba(0,0,0,0.06)); border-color: #f59e0b; }
    80%  { box-shadow: 0 0 0 5px rgba(245,158,11,0), var(--sh-card-shadow, 0 2px 8px rgba(0,0,0,0.06)); border-color: #f59e0b; }
    100% { box-shadow: var(--sh-card-shadow, 0 2px 8px rgba(0,0,0,0.06)); border-color: #f59e0b; }
}
.sh-mc--highlight {
    border: 2px solid #f59e0b !important;
    background: linear-gradient(135deg, rgba(245,158,11,0.05) 0%, transparent 60%) !important;
    animation: sh-highlight-pulse 2.5s ease-out forwards;
    position: relative;
    z-index: 1;
}

/* Stat row (4 mini kacheln) */
.sh-stat-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.sh-stat-kachel {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-card);
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.sh-stat-label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--sh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.25rem;
}

.sh-stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1;
}

.sh-stat-icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
    opacity: 0.85;
}

.sh-stat-icon--green  { background: #d1fae5; color: #065f46; }
.sh-stat-icon--gray   { background: #f3f4f6; color: #6b7280; }
.sh-stat-icon--blue   { background: #dbeafe; color: #1e40af; }
.sh-stat-icon--yellow { background: #fef3c7; color: #92400e; }

/* Search card */
.sh-search-card {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-card);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
}

.sh-search-row {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
}

.sh-search-field {
    flex: 1;
}

.sh-search-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-text-secondary);
    margin-bottom: 0.4rem;
}

.sh-search-input {
    width: 100%;
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm, 6px);
    font-size: 0.9375rem;
    background: var(--sh-surface-card);
    color: var(--sh-text-primary);
    outline: none;
    transition: border-color 0.15s ease;
}

.sh-search-input:focus {
    border-color: var(--sh-blue-600, #2563eb);
    box-shadow: 0 0 0 3px rgba(37,99,235,0.12);
}

.sh-search-result-note {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
    padding: 0.5rem 0.75rem;
    background: var(--sh-surface-subtle, #f8fafc);
    border-left: 3px solid var(--sh-blue-600, #2563eb);
    border-radius: 0 4px 4px 0;
}

/* Warning banner */
.sh-warn-banner {
    background: #fefce8;
    border: 1px solid #fde68a;
    border-left: 3px solid #f59e0b;
    border-radius: var(--sh-radius-card);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.sh-warn-banner__icon {
    color: #f59e0b;
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.sh-warn-banner__title {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--sh-text-primary);
}

.sh-warn-banner__sub {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    margin-top: 0.2rem;
}

.sh-warn-banner__actions {
    margin-top: 0.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

/* Jobs table wrapper */
.sh-table-card {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-card);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.sh-table-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--sh-border);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sh-table-card-header i {
    color: var(--sh-blue-600, #2563eb);
}

.sh-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 0.875rem;
}

/* Column widths: 1=Aktionen, 2=Job Summary, 3=Status, 4=Bewerbungen */
.sh-table th:nth-child(1), .sh-table td:nth-child(1) { width: 190px; }
.sh-table th:nth-child(2), .sh-table td:nth-child(2) { width: auto; }
.sh-table th:nth-child(3), .sh-table td:nth-child(3) { width: 125px; }
.sh-table th:nth-child(4), .sh-table td:nth-child(4) { width: 130px; }

/* Chips: no mid-word breaks */
.sh-meta-chip { white-space: nowrap; }

/* ---- Job Summary cell ---- */
.sh-job-summary {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    min-width: 0; /* allow text-overflow inside flex */
}

.sh-job-top {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.sh-role-level {
    font-weight: 400;
    font-size: 0.7rem;
    color: var(--sh-text-secondary);
    margin-left: 6px;
    white-space: nowrap;
    vertical-align: middle;
}

.sh-job-title {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--sh-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sh-job-specialty {
    font-size: 0.78rem;
    color: var(--sh-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sh-job-meta {
    font-size: 0.73rem;
    display: flex;
    gap: 8px;
    align-items: center;
    color: var(--sh-text-secondary);
    flex-wrap: wrap;
}

.sh-job-stats {
    font-size: 0.78rem;
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

/* ---- Expand row ---- */
.sh-job-expand { display: none; }
.sh-job-expand--open { display: table-row; }

.sh-job-expand > td {
    background: var(--sh-surface-subtle);
    padding: 0 1rem 0.75rem !important;
    border-bottom: 1px solid var(--sh-border);
}

.sh-job-detail {
    background: #fff;
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-md);
    padding: 1rem 1.25rem;
}

.sh-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1.5rem;
}

.sh-detail-grid > div > strong {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--sh-text-secondary);
    margin-bottom: 0.4rem;
}

.sh-detail-grid ul {
    margin: 0;
    padding-left: 1rem;
    font-size: 0.8rem;
    color: var(--sh-text-primary);
}

.sh-detail-grid li { margin-bottom: 2px; }
.sh-detail-kann { color: var(--sh-text-secondary); }

/* Expand row: icon-tile action buttons */
.sh-action-tiles {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.5rem;
    flex-wrap: wrap;
}

.sh-action-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-md, 8px);
    background: var(--sh-surface-card);
    color: var(--sh-text-secondary);
    font-size: 0.7rem;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
    white-space: nowrap;
    min-width: 64px;
}

.sh-action-tile i {
    font-size: 1.1rem;
    line-height: 1;
}

.sh-action-tile:hover {
    text-decoration: none;
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
    border-color: var(--sh-border-strong, #cbd5e1);
}

.sh-action-tile--primary {
    border-color: var(--sh-blue-200, #bfdbfe);
    color: var(--sh-blue-600, #2563eb);
    font-weight: 600;
}
.sh-action-tile--primary:hover {
    background: var(--sh-blue-600, #2563eb);
    border-color: var(--sh-blue-600, #2563eb);
    color: #fff;
}

.sh-action-tile--success {
    border-color: #a7f3d0;
    color: #059669;
}
.sh-action-tile--success:hover {
    background: #059669;
    border-color: #059669;
    color: #fff;
}

.sh-table thead th {
    padding: 0.65rem 1rem;
    text-align: left;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--sh-surface-subtle, #f8fafc);
    border-bottom: 1px solid var(--sh-border);
    white-space: nowrap;
}

.sh-table tbody td {
    padding: 0.8rem 1rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--sh-border);
    color: var(--sh-text-primary);
}

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

.sh-table tbody tr:hover td {
    background: var(--sh-surface-hover, #f8fafc);
}

.sh-table tbody tr.sh-row-urgent td {
    background: #fefce8;
}

.sh-table tbody tr.sh-row-urgent:hover td {
    background: #fef9c3;
}

/* Table action buttons */
.sh-table-actions {
    display: flex;
    gap: 0.3rem;
    flex-wrap: nowrap;
}

.sh-table-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--sh-radius-sm, 6px);
    border: 1px solid var(--sh-border);
    background: var(--sh-surface-card);
    color: var(--sh-text-secondary);
    font-size: 0.8125rem;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.sh-table-btn:hover          { background: var(--sh-surface-hover); color: var(--sh-text-primary); text-decoration: none; }
.sh-table-btn--primary:hover { background: var(--sh-blue-600,#2563eb); border-color: var(--sh-blue-600,#2563eb); color: #fff; }
.sh-table-btn--success:hover { background: #059669; border-color: #059669; color: #fff; }
.sh-table-btn--warn:hover    { background: #d97706; border-color: #d97706; color: #fff; }
.sh-table-btn--danger:hover  { background: #dc2626; border-color: #dc2626; color: #fff; }
.sh-table-btn--disabled      { opacity: 0.45; cursor: not-allowed; }

/* Table status badges */
.sh-job-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.6rem;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.sh-job-badge--active   { background: #d1fae5; color: #065f46; }
.sh-job-badge--matched  { background: #e0e7ff; color: #3730a3; }
.sh-job-badge--closed   { background: #f3f4f6; color: #6b7280; }
.sh-job-badge--filled   { background: #ccfbf1; color: #0f766e; } /* Besetzt — teal, distinct from Aktiv+Matched */
.sh-job-badge--deletion { background: #fef3c7; color: #92400e; }
.sh-job-badge--cancelled{ background: #fee2e2; color: #991b1b; }
.sh-job-badge--premium  { background: #fef3c7; color: #92400e; } /* Amber — Premium, nicht Löschung */
.sh-job-badge--new      { background: #dbeafe; color: #1e40af; } /* Blau — neue Bewerbungen */

/* Table ref cell */
.sh-ref-code {
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--sh-text-primary);
}

.sh-contract-code {
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
    font-size: 0.75rem;
    color: #059669;
    margin-top: 3px;
}

/* Table empty state */
.sh-table-empty {
    padding: 4rem 2rem;
    text-align: center;
    color: var(--sh-text-secondary);
}

.sh-table-empty i {
    font-size: 3rem;
    opacity: 0.2;
    display: block;
    margin-bottom: 1rem;
}

/* Info note — compact footnote style */
.sh-info-note {
    background: transparent;
    border: none;
    border-left: 2px solid var(--sh-border);
    border-radius: 0;
    padding: 0.25rem 0 0.25rem 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.8rem;
    color: var(--sh-text-tertiary);
    opacity: 0.85;
}

.sh-info-note__title {
    font-weight: 600;
    color: var(--sh-text-secondary);
    margin-bottom: 0.25rem;
    font-size: 0.8rem;
}

.sh-info-note ul {
    margin: 0;
    padding-left: 1rem;
}

.sh-info-note li {
    margin-bottom: 0.2rem;
}

/* Alert messages */
.sh-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1.1rem;
    border-radius: var(--sh-radius-card);
    margin-bottom: 1rem;
    font-size: 0.875rem;
    position: relative;
}

/* ── Canonical alert modifiers (P3 — single source of truth) ───────
   Use: sh-alert--success | sh-alert--warning | sh-alert--danger
   sh-alert-success / sh-alert-warning / sh-alert-danger = legacy aliases (do not use in new code)
   ─────────────────────────────────────────────────────────────────── */
.sh-alert--success,
.sh-alert-success  { background: var(--sh-green-50, #ecfdf5); color: #065f46; border: 1px solid var(--sh-green-success, #059669); }

.sh-alert--warning,
.sh-alert--warn,
.sh-alert-warning  { background: #fffbeb; color: #92400e; border: 1px solid #f59e0b; }

.sh-alert--danger,
.sh-alert-danger   { background: var(--sh-red-50, #fee2e2); color: #991b1b; border: 1px solid #fca5a5; }

.sh-alert__close {
    position: absolute;
    right: 0.75rem;
    top: 0.75rem;
    background: none;
    border: none;
    cursor: pointer;
    opacity: 0.5;
    font-size: 1rem;
    color: inherit;
    padding: 0;
    line-height: 1;
}

.sh-alert__close:hover { opacity: 1; }

@media (max-width: 768px) {
    .sh-stat-row { grid-template-columns: repeat(2, 1fr); }
    .sh-search-row { flex-direction: column; }
    .sh-table thead th.sh-hide-sm,
    .sh-table tbody td.sh-hide-sm { display: none; }
}

/* Back link inside hero header */
.sh-browse-header-back {
    margin-bottom: 0.75rem;
    position: relative;
    z-index: 1;
}

.sh-browse-back-link {
    font-size: 0.875rem;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    transition: color 0.15s ease;
}

.sh-browse-back-link:hover {
    color: #ffffff;
}

/* ---- Filter Card ---- */
.sh-browse-filter-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 1.5rem;
    margin-bottom: 1.75rem;
    box-shadow: var(--sh-card-shadow);
}

.sh-browse-filter-row {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.sh-browse-filter-field {
    flex: 1;
    min-width: 160px;
}

.sh-browse-filter-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sh-gray-600);
    margin-bottom: 0.5rem;
}

.sh-browse-select {
    width: 100%;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--sh-gray-300);
    border-radius: var(--sh-radius-sm);
    font-size: 0.9375rem;
    background: var(--sh-white);
    color: var(--sh-black);
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23475569' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.875rem center;
    padding-right: 2.25rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sh-browse-select:focus {
    outline: none;
    border-color: var(--sh-blue-500);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}

.sh-browse-filter-actions {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-shrink: 0;
}

.sh-browse-reset-btn {
    font-size: 0.875rem;
    color: var(--sh-gray-600);
    text-decoration: none;
    padding: 0.5rem 0;
    white-space: nowrap;
}

.sh-browse-reset-btn:hover {
    color: var(--sh-black);
}

/* VIP Toggle */
.sh-browse-vip-toggle {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--sh-gray-200);
}

.sh-browse-vip-label {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    cursor: pointer;
    font-size: 0.9375rem;
    color: var(--sh-black);
    user-select: none;
}

.sh-browse-vip-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: var(--sh-black);
    cursor: pointer;
}

.sh-browse-vip-crown {
    color: #FFD700;
    font-size: 1rem;
}

.sh-browse-vip-sub {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
    font-weight: 400;
    margin-left: 0.25rem;
}

/* ---- Results Grid ---- */
.sh-browse-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}

/* ---- FK Card ---- */
.sh-fk-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    overflow: hidden;
    box-shadow: var(--sh-card-shadow);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    display: flex;
    flex-direction: column;
}

.sh-fk-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--sh-card-shadow-hover);
}

.sh-fk-card-cover {
    display: none; /* Removed — avatar ring is the only status signal */
}

.sh-fk-card-body {
    padding: 1.25rem;
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

/* Identity row: avatar + body inline (matches Match Card pattern) */
.sh-fk-identity {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.sh-fk-identity-body {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0; /* allow text truncation */
}

/* Avatar — Status Ring System (mirrors profile_view logic) */
.sh-fk-avatar-wrap {
    position: relative;
    display: inline-block;
    flex-shrink: 0;
}

/* Ring: outer colored shell */
.sh-fk-avatar-ring {
    width: 58px; height: 58px;
    border-radius: 50%;
    padding: 3px;
    background: #d1d5db; /* default neutral gray */
    transition: background 0.25s ease;
    display: block;
}

/* Inner white gap creates ring illusion */
.sh-fk-avatar-ring-inner {
    width: 100%; height: 100%;
    border-radius: 50%;
    background: white;
    padding: 2px;
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
}

.sh-fk-avatar-img {
    width: 100%; height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.sh-fk-avatar-initials {
    width: 100%; height: 100%;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; font-weight: 700;
    color: white; background: #475569;
}

/* Status-Dot auf sh-fk-avatar-wrap (58px Ring) — grösser positioniert als mc-Avatar (48px) */
.sh-fk-avatar-wrap .sh-mc-status-dot {
    width: 13px;
    height: 13px;
    bottom: 2px;
    right: 2px;
}
.sh-fk-status-dot { display: none; } /* Legacy — nicht mehr genutzt */

/* sh-fk-card--* status classes removed — ring color set directly via sh-mc-ring--* on avatar */

/* Availability label — replaces old text badge, compact + status-colored */
.sh-fk-avail-label {
    display: inline-flex; align-items: center;
    font-size: 0.7rem; font-weight: 600;
    padding: 0.15rem 0.5rem; border-radius: 20px;
    white-space: nowrap;
}
/* Plain text — color only, no badge chrome (Regel 2: accent = status only, no decoration) */
.sh-fk-avail-label--ready   { color: var(--sh-green-600);  background: none; border: none; }
.sh-fk-avail-label--soon    { color: var(--sh-yellow-600); background: none; border: none; }
.sh-fk-avail-label--busy    { color: var(--sh-red-600);    background: none; border: none; }
.sh-fk-avail-label--unknown { color: var(--sh-text-secondary); background: none; border: none; }

/* Name + Beruf */
.sh-fk-name {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--sh-black);
    letter-spacing: -0.015em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sh-fk-profession {
    font-size: 0.775rem;
    color: var(--sh-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sh-fk-years {
    color: var(--sh-text-tertiary);
}

/* Availability text — ONLY colored element in browse card (Regel 2) */
.sh-fk-avail-label {
    font-size: 0.725rem;
    font-weight: 600;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    white-space: nowrap;
}

/* Badges */
.sh-fk-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
}

/* Meta (Kanton + Erfahrung) */
.sh-fk-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.875rem;
}

.sh-fk-meta-item {
    font-size: 0.8125rem;
    color: var(--sh-gray-600);
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

/* Fachgebiete-Tags */
.sh-fk-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: 1rem;
    flex: 1;
    align-content: flex-start;
}

.sh-fk-tag {
    display: inline-block;
    padding: 0.2rem 0.625rem;
    background: var(--sh-gray-100);
    color: var(--sh-gray-700);
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 500;
}

.sh-fk-tag-more {
    background: var(--sh-gray-200);
    color: var(--sh-gray-600);
}

/* CTA Button */
.sh-fk-cta-btn {
    display: block;
    width: 100%;
    padding: 0.625rem;
    background: var(--sh-white);
    color: var(--sh-black);
    border: 1.5px solid var(--sh-gray-300);
    border-radius: var(--sh-radius-sm);
    text-align: center;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s ease;
    margin-top: auto;
}

.sh-fk-cta-btn:hover {
    background: var(--sh-gray-100);
    color: var(--sh-black);
    border-color: var(--sh-gray-400, #94a3b8);
}

/* ---- FK Reputation Meta-Line ---- */
.sh-fk-rep-line {
    font-size: 0.72rem;
    color: var(--sh-text-secondary, #6b7280);
    margin-top: 3px;
    display: flex;
    align-items: center;
    gap: 3px;
    flex-wrap: wrap;
}
.sh-fk-rep-star {
    color: #f59e0b;
    font-size: 0.75rem;
}
.sh-fk-rep-muted {
    color: var(--sh-text-tertiary, #9ca3af);
    font-style: italic;
}

/* ---- Browse Score Row ---- */
.sh-browse-score-row {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 4px;
}
.sh-browse-score-pct {
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}
.sh-browse-score-label {
    font-size: 0.72rem;
    color: var(--sh-text-tertiary, #9ca3af);
    font-weight: 400;
}
.sh-browse-score-reasons {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 6px;
}
.sh-browse-score-reason {
    font-size: 0.72rem;
    color: #16a34a;
}
.sh-browse-score-reason--warn {
    color: #d97706;
}
.sh-browse-confidence {
    margin-top: 5px;
    font-size: 0.70rem;
    padding: 2px 7px;
    border-radius: 6px;
    display: inline-block;
}
.sh-browse-confidence--high   { background: #f0fdf4; color: #15803d; }
.sh-browse-confidence--medium { background: #fffbeb; color: #92400e; }
.sh-browse-confidence--low    { background: #fef2f2; color: #991b1b; }

/* ---- Empty State ---- */
.sh-browse-empty {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-card);
    padding: 3.5rem 2rem;
    text-align: center;
    box-shadow: var(--sh-card-shadow);
}

.sh-browse-empty-icon {
    font-size: 3rem;
    color: var(--sh-gray-300);
    margin-bottom: 1.25rem;
}

.sh-browse-empty-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sh-black);
    margin: 0 0 0.75rem 0;
    letter-spacing: -0.02em;
}

.sh-browse-empty-text {
    font-size: 0.9375rem;
    color: var(--sh-gray-600);
    margin: 0 0 1.75rem 0;
    line-height: 1.6;
}

/* ---- MedTech Tip ---- */
.sh-browse-tip {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: var(--sh-radius-card);
    padding: 1.25rem 1.5rem;
    font-size: 0.875rem;
    color: var(--sh-gray-700);
    line-height: 1.6;
    margin-top: 1rem;
}

.sh-browse-tip-icon {
    color: var(--sh-blue-600);
    font-size: 1.125rem;
    flex-shrink: 0;
    padding-top: 0.125rem;
}

/* Responsive */
@media (max-width: 768px) {
    .sh-browse-filter-row {
        flex-direction: column;
    }

    .sh-browse-filter-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .sh-browse-grid {
        grid-template-columns: 1fr;
    }

    .sh-browse-vip-sub {
        display: none;
    }

    .sh-browse-container {
        padding: 1rem 1rem 2rem 1rem;
    }
}

/* ================================================================
   PROFILE VIEW
   Per-page Hero Image:
     profile_view        → profile_view.webp   (Fachkraft am Arbeitsplatz)
   Pfad: httpdocs/swisshunter24/assets/images/
   ================================================================ */

.sh-profile-container {
    padding: 1.5rem 2rem 3rem 2rem;
    font-family: var(--pv2-font);
}

.sh-profile-container .sh-dashboard-header {
    border-radius: var(--sh-radius-card);
    margin-bottom: 1.5rem;
    /* BILD-EMPFEHLUNG: Fachkraft am Arbeitsplatz, 1400×400px, dunkel für weissen Text */
    background:
        linear-gradient(135deg, rgba(15,23,42,0.85) 0%, rgba(30,58,95,0.75) 55%, rgba(29,78,216,0.65) 100%),
        url('/swisshunter24/assets/images/profile_view.webp') center / cover no-repeat;
}

.sh-profile-container .sh-dashboard-inner {
    padding: 0;
}

/* Override Bootstrap card look to match design tokens */
.sh-profile-container .card {
    border: 1px solid var(--sh-gray-200) !important;
    border-radius: var(--sh-radius-card) !important;
    box-shadow: var(--sh-card-shadow) !important;
}

.sh-profile-container .card-header {
    border-radius: calc(var(--sh-radius-card) - 1px) calc(var(--sh-radius-card) - 1px) 0 0 !important;
}

.sh-profile-container .card.border-success,
.sh-profile-container .card.border-info,
.sh-profile-container .card.border-warning,
.sh-profile-container .card.border-primary {
    border-width: 1px !important;
}

/* Hero meta tags (canton, experience, etc.) */
.sh-profile-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin-bottom: 1.5rem;
    padding: 0.5rem 0;
}

/* 2-column layout: main content + optional sidebar */
.sh-profile-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1.5rem;
    align-items: start;
}

.sh-profile-main {
    min-width: 0;
}

.sh-profile-sidebar {
    min-width: 0;
}

/* Clean card styling within profile */
.sh-profile-container .card {
    margin-bottom: 1.25rem;
}

.sh-profile-container .card:last-child {
    margin-bottom: 0;
}

@media (max-width: 992px) {
    .sh-profile-container {
        padding: 1rem 1rem 2rem 1rem;
    }

    .sh-profile-layout {
        grid-template-columns: 1fr;
    }

    .sh-profile-hero-meta {
        gap: 0.4rem 1rem;
        font-size: 0.875rem;
    }
}

/* ================================================================
   PROFILE VIEW — Decision Card Components
   Enterprise Decision-First UX
   ================================================================ */

/* --- Decision Card --- */
.sh-decision-card {
    background: #fff;
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    border-radius: var(--sh-radius-card, 12px);
    box-shadow: var(--sh-card-shadow, 0 1px 4px rgba(0,0,0,.06));
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}

/* --- Identity Header (Photo + Name + Title) --- */
.sh-decision-identity {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--sh-gray-100, #f3f4f6);
}

.sh-decision-avatar {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--sh-gray-200, #e5e7eb);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-decision-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sh-decision-avatar-initials {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--sh-gray-500, #6b7280);
    letter-spacing: 0.02em;
}

.sh-decision-identity-text {
    min-width: 0;
}

.sh-decision-name {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--sh-gray-900, #111827);
    line-height: 1.25;
}

.sh-decision-title {
    font-size: 0.875rem;
    color: var(--sh-gray-500, #6b7280);
    margin-top: 0.2rem;
}

/* --- Status + Trust Row --- */
.sh-decision-status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.sh-trust-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
}

.sh-trust-ok {
    background: #e6f4ea;
    color: #1a7f37;
}

.sh-trust-warn {
    background: #fff3cd;
    color: #856404;
}

.sh-meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    font-size: 0.78rem;
    color: var(--sh-gray-600, #6b7280);
    background: var(--sh-gray-100, #f3f4f6);
    font-weight: 500;
}

.sh-meta-chip--ok {
    background: #e6f4ea;
    color: #1a7f37;
}

.sh-meta-chip--required {
    background: #fee2e2;
    color: #991b1b;
}

/* Role column — Beruf primary + sub-label */
.sh-role-main {
    font-weight: 600;
    font-size: 0.8rem;
    white-space: nowrap;
    color: var(--sh-text-primary);
}

.sh-role-sub {
    font-size: 0.72rem;
    color: var(--sh-text-secondary);
    margin-top: 2px;
}

/* "+X weitere" counter next to a chip */
.sh-more {
    display: inline-block;
    font-size: 0.72rem;
    color: var(--sh-text-secondary);
    white-space: nowrap;
    margin-left: 2px;
}

/* Urgency tiers for Start column */
.sh-urgency {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
    margin-top: 2px;
}

.sh-urgency--critical { color: #dc2626; }
.sh-urgency--warn     { color: #d97706; }

.sh-meta-chip--expand {
    cursor: pointer;
    border: 1px dashed var(--sh-gray-300, #d1d5db);
    background: transparent;
    color: var(--sh-blue-600, #2563eb);
    font-weight: 600;
}

.sh-meta-chip--expand:hover {
    background: #eff6ff;
    border-color: var(--sh-blue-600, #2563eb);
}

/* --- Fachgebiete inline chips (NOT collapsible) --- */
.sh-decision-specs {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.sh-decision-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--sh-gray-400, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
    padding-top: 0.25rem;
    min-width: 90px;
}

.sh-spec-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sh-spec-chip {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 500;
    background: var(--sh-gray-100, #f3f4f6);
    color: var(--sh-gray-700, #374151);
    border: 1px solid var(--sh-gray-200, #e5e7eb);
}

.sh-spec-chip--top {
    background: #e6f4ea;
    color: #1a7f37;
    border-color: #b7dfbf;
}

.sh-spec-chip--good {
    background: #e8f0fe;
    color: #1a56db;
    border-color: #c3d2fc;
}

.sh-spec-chip--more {
    background: transparent;
    color: var(--sh-gray-500, #6b7280);
    border-style: dashed;
}

/* --- Verfügbarkeit summary (NOT collapsible) --- */
.sh-decision-avail {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.sh-avail-summary {
    font-size: 0.875rem;
    font-weight: 600;
}

.sh-avail-now {
    color: #1a7f37;
}

.sh-avail-none {
    color: var(--sh-gray-400, #9ca3af);
}

/* --- Action Buttons Row --- */
.sh-decision-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
}

.sh-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: opacity 0.15s, background 0.15s;
}

.sh-action-primary {
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
}

.sh-action-primary:hover {
    background: var(--sh-blue-700, #1d4ed8);
    color: #fff;
}

.sh-action-secondary {
    background: var(--sh-gray-100, #f3f4f6);
    color: var(--sh-gray-800, #1f2937);
    border: 1px solid var(--sh-gray-200, #e5e7eb);
}

.sh-action-secondary:hover {
    background: var(--sh-gray-200, #e5e7eb);
    color: var(--sh-gray-800, #1f2937);
}

.sh-action-ghost {
    background: transparent;
    color: var(--sh-blue-600, #2563eb);
    border: 1px solid var(--sh-blue-600, #2563eb);
}

.sh-action-ghost:hover {
    background: #eff6ff;
}

.sh-action-danger {
    background: transparent;
    color: #dc2626;
    border: 1px solid #fca5a5;
}

.sh-favorite-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 8px;
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    background: transparent;
    color: var(--sh-gray-400, #9ca3af);
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    font-size: 1rem;
}

.sh-favorite-icon-btn.active,
.sh-favorite-icon-btn:hover {
    color: #e11d48;
    border-color: #fecdd3;
}

.sh-pricing-hint {
    font-size: 0.75rem;
    color: var(--sh-gray-500, #6b7280);
    margin-left: 0.25rem;
}

/* --- Locked state (not authenticated) --- */
.sh-decision-locked {
    background: var(--sh-gray-50, #f9fafb);
    border: 1px dashed var(--sh-gray-300, #d1d5db);
    border-radius: 8px;
    padding: 1.25rem;
    text-align: center;
    color: var(--sh-gray-500, #6b7280);
    font-size: 0.875rem;
}

/* --- Notes Block (inline, compact) --- */
.sh-notes-block {
    background: #fff;
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    border-radius: var(--sh-radius-card, 12px);
    padding: 1.25rem;
    margin-bottom: 1.25rem;
}

.sh-notes-block h6 {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sh-gray-400, #9ca3af);
    margin-bottom: 0.75rem;
}

.sh-notes-form {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.sh-notes-textarea {
    flex: 1;
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    border-radius: 8px;
    resize: none;
    min-height: 2.5rem;
    max-height: 6rem;
    font-family: inherit;
    color: var(--sh-gray-800, #1f2937);
}

.sh-notes-textarea:focus {
    outline: none;
    border-color: var(--sh-blue-600, #2563eb);
    box-shadow: 0 0 0 2px rgba(37,99,235,.1);
}

.sh-notes-submit {
    padding: 0.5rem 0.9rem;
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.sh-notes-list {
    max-height: 180px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sh-note-item {
    background: var(--sh-gray-50, #f9fafb);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    color: var(--sh-gray-700, #374151);
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.sh-note-meta {
    font-size: 0.7rem;
    color: var(--sh-gray-400, #9ca3af);
    white-space: nowrap;
    margin-top: 0.1rem;
}

.sh-note-text {
    flex: 1;
}

.sh-note-delete {
    background: none;
    border: none;
    color: var(--sh-gray-300, #d1d5db);
    cursor: pointer;
    font-size: 0.7rem;
    padding: 0;
    line-height: 1;
}

.sh-note-delete:hover {
    color: #dc2626;
}

.sh-notes-empty {
    font-size: 0.8rem;
    color: var(--sh-gray-400, #9ca3af);
    text-align: center;
    padding: 0.5rem 0;
}

/* --- Collapsible <details> Sections --- */
.sh-section {
    background: #fff;
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    border-radius: var(--sh-radius-card, 12px);
    margin-bottom: 0.75rem;
    overflow: hidden;
}

.sh-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.25rem;
    cursor: pointer;
    user-select: none;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--sh-gray-800, #1f2937);
    list-style: none;
    gap: 0.5rem;
}

.sh-section-header::-webkit-details-marker { display: none; }

.sh-section-chevron {
    color: var(--sh-gray-400, #9ca3af);
    font-size: 0.75rem;
    transition: transform 0.2s;
    margin-left: auto;
}

details.sh-section[open] .sh-section-chevron {
    transform: rotate(180deg);
}

.sh-section-count {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--sh-gray-400, #9ca3af);
    background: var(--sh-gray-100, #f3f4f6);
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
}

.sh-section-body {
    padding: 0 1.25rem 1.25rem 1.25rem;
    border-top: 1px solid var(--sh-gray-100, #f3f4f6);
}

.sh-section-divider {
    height: 1px;
    background: var(--sh-gray-100, #f3f4f6);
    margin: 0.75rem 0;
}

/* --- Key-Value Grid (inside section bodies) --- */
.sh-kv-grid {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.4rem 1.25rem;
    font-size: 0.85rem;
}

.sh-kv-label {
    color: var(--sh-gray-400, #9ca3af);
    font-weight: 600;
    white-space: nowrap;
}

.sh-kv-value {
    color: var(--sh-gray-800, #1f2937);
}

/* --- Certifications --- */
.sh-cert-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sh-cert-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--sh-gray-700, #374151);
}

/* --- Shift Chips --- */
.sh-shift-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sh-shift-chip {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    background: var(--sh-gray-100, #f3f4f6);
    color: var(--sh-gray-700, #374151);
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 500;
}

/* --- Availability detail toggle --- */
.sh-avail-toggle {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.sh-avail-btn {
    padding: 0.3rem 0.8rem;
    border-radius: 6px;
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    background: var(--sh-gray-100, #f3f4f6);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    color: var(--sh-gray-600, #6b7280);
}

.sh-avail-btn.active {
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
    border-color: var(--sh-blue-600, #2563eb);
}

/* --- Availability Periods (list view) --- */
.sh-avail-period {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--sh-gray-100, #f3f4f6);
    font-size: 0.85rem;
}

.sh-avail-period:last-child {
    border-bottom: none;
}

.sh-avail-period-dates {
    font-weight: 700;
    color: var(--sh-gray-800, #1f2937);
}

.sh-avail-period-pensum {
    color: #1a7f37;
    font-weight: 600;
    font-size: 0.8rem;
}

.sh-avail-period-meta {
    color: var(--sh-gray-500, #6b7280);
    font-size: 0.78rem;
}

.sh-avail-period-excl {
    color: #dc2626;
    font-size: 0.75rem;
}

.sh-avail-period-detail {
    color: var(--sh-gray-400, #9ca3af);
    font-size: 0.75rem;
    font-style: italic;
}

/* --- Rating Bars (Bewertungen) --- */
.sh-rating-bars {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.sh-rating-bar-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.8rem;
}

.sh-rating-bar-label {
    min-width: 130px;
    color: var(--sh-gray-600, #6b7280);
    font-weight: 500;
}

.sh-rating-bar-track {
    flex: 1;
    height: 6px;
    background: var(--sh-gray-100, #f3f4f6);
    border-radius: 999px;
    overflow: hidden;
}

.sh-rating-bar-fill {
    height: 100%;
    background: var(--sh-blue-600, #2563eb);
    border-radius: 999px;
}

.sh-rating-bar-val {
    min-width: 2.5rem;
    text-align: right;
    font-weight: 700;
    color: var(--sh-gray-800, #1f2937);
    font-size: 0.78rem;
}

/* --- Review Items --- */
.sh-review-item {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--sh-gray-100, #f3f4f6);
    font-size: 0.85rem;
}

.sh-review-item:last-child {
    border-bottom: none;
}

.sh-review-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.sh-review-stars { color: var(--sh-yellow-500, #f59e0b); font-size: 0.8rem; }
.sh-star-on  { color: var(--sh-yellow-500, #f59e0b); }
.sh-star-off { color: var(--sh-gray-200, #e5e7eb); }

.sh-review-text {
    color: var(--sh-gray-600, #6b7280);
    font-style: italic;
}

/* --- Work History --- */
.sh-work-item {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--sh-gray-100, #f3f4f6);
}

.sh-work-item:last-child {
    border-bottom: none;
}

.sh-work-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--sh-gray-800, #1f2937);
    margin-bottom: 0.2rem;
}

.sh-work-meta {
    font-size: 0.78rem;
    color: var(--sh-gray-400, #9ca3af);
    margin-bottom: 0.3rem;
}

.sh-work-desc {
    font-size: 0.83rem;
    color: var(--sh-gray-600, #6b7280);
}

/* --- References --- */
.sh-ref-item {
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--sh-gray-100, #f3f4f6);
    font-size: 0.85rem;
}

.sh-ref-item:last-child {
    border-bottom: none;
}

.sh-ref-text {
    color: var(--sh-gray-700, #374151);
    font-style: italic;
    margin-bottom: 0.2rem;
}

/* =============================================================================
   MATCHING RESULTS PAGE (matching_results_spital)
   ============================================================================= */

/* Pipeline navigation — Connected stat bar (ATS-Style) */
.sh-pipeline {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
    background: var(--sh-surface-card);
    border: 1px solid rgba(15,23,42,0.07);
    border-radius: var(--sh-radius-lg);
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(15,23,42,0.04);
}

.sh-pipeline-step {
    flex: 1;
    background: transparent;
    border: none;
    border-right: 1px solid rgba(15,23,42,0.07);
    border-radius: 0;
    padding: 1.125rem 0.75rem;
    text-align: center;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s;
}

.sh-pipeline-step:last-child {
    border-right: none;
}

.sh-pipeline-step:hover:not(.is-active) {
    background: var(--sh-surface-hover);
    text-decoration: none;
    color: inherit;
}

.sh-pipeline-step.is-active {
    background: var(--sh-blue-900, #1e3a5f);
    border-right-color: transparent;
}

.sh-pipeline-count {
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.25rem;
    color: var(--sh-text-primary);
}

.sh-pipeline-step.is-active .sh-pipeline-count {
    color: #ffffff;
}

.sh-pipeline-label {
    font-size: 0.75rem;
    color: var(--sh-text-secondary);
    white-space: nowrap;
}

.sh-pipeline-step.is-active .sh-pipeline-label {
    color: rgba(255,255,255,0.72);
}

@media (max-width: 640px) {
    .sh-pipeline {
        flex-wrap: wrap;
        border-radius: var(--sh-radius-md);
    }
    .sh-pipeline-step {
        flex: 1 1 calc(50% - 1px);
        border-bottom: 1px solid var(--sh-border);
    }
    .sh-pipeline-step:nth-child(even) { border-right: none; }
    .sh-pipeline-step:nth-last-child(-n+2) { border-bottom: none; }
}

/* Pipeline Context Block — borderless section header with left accent */
.sh-pipeline-context {
    display: flex;
    gap: 0.875rem;
    align-items: flex-start;
    background: transparent;
    border: none;
    border-left: 3px solid var(--sh-blue-600, #2563eb);
    padding: 0.125rem 0 0.25rem 1rem;
    margin-bottom: 1.75rem;
}

.sh-pipeline-context-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--sh-radius-sm);
    background: rgba(37,99,235,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--sh-blue-600, #2563eb);
    flex-shrink: 0;
    font-size: 0.9rem;
}

.sh-pipeline-context-title {
    font-weight: 700;
    font-size: 1rem;
    color: var(--sh-text-primary);
    margin-bottom: 0.2rem;
}

.sh-pipeline-context-desc {
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
    line-height: 1.5;
}

.sh-pipeline-context-hint {
    font-size: 0.8rem;
    color: var(--sh-gray-500, #6b7280);
    font-weight: 400;
    margin-top: 0.3rem;
}

/* Unified match list — kein Top/More-Split mehr (P0-A 2026-05-19) */
.sh-match-list { margin-bottom: 2rem; }

/* Score Bar (visual score representation) */
.sh-score-bar {
    height: 5px;
    background: var(--sh-surface-hover);
    border-radius: 4px;
    overflow: hidden;
    margin-top: 0.4rem;
    margin-bottom: 0.5rem;
}

.sh-score-bar-fill {
    height: 100%;
    background: #16a34a;
    border-radius: 4px;
    transition: width 0.4s ease;
}

/* Hero header inner layout (Command Center) */
.sh-header-top { margin-bottom: 1rem; }

.sh-header-main { }

.sh-header-meta {
    display: flex;
    gap: 1.25rem;
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    opacity: 0.85;
}

.sh-header-meta span {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

/* ── Job Context (Pipeline hero) ──────────────────────────────── */
.sh-jobctx { flex-wrap: wrap; align-items: center; opacity: 1; gap: 0.625rem; }
.sh-jobctx-ref {
    font-family: ui-monospace, 'SF Mono', monospace;
    font-size: 0.75rem;
    font-weight: 700;
    background: rgba(255,255,255,0.15);
    color: #fff;
    padding: 0.2rem 0.5rem;
    border-radius: 5px;
    letter-spacing: 0.03em;
}
.sh-jobctx-dates, .sh-jobctx-workload {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.88);
    opacity: 1;
}
.sh-jobctx-status {
    display: inline-flex;
    align-items: center;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
}
.sh-jobctx-status--open   { background: rgba(245,158,11,0.25); color: #fde68a; }
.sh-jobctx-status--active { background: rgba(22,163,74,0.25);  color: #bbf7d0; }
.sh-jobctx-status--filled { background: rgba(99,102,241,0.25); color: #c7d2fe; }

/* ── Invitation Timestamp on Match Card (invited tab) ─────────── */
.sh-mc-invited-meta {
    margin-top: 0.625rem;
    padding: 0.625rem 0.75rem;
    background: var(--sh-gray-50, #f8fafc);
    border-radius: 8px;
    border-left: 3px solid var(--sh-gray-200, #e2e8f0);
    font-size: var(--sh-text-xs, 0.694rem);
}
.sh-mc-invited-meta.sh-mc-inv--urgent {
    background: #fff7ed;
    border-left-color: #f59e0b;
}
.sh-mc-inv-when {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--sh-gray-600, #4b5563);
    font-weight: 500;
    margin-bottom: 0.3rem;
}
.sh-mc-inv-when .fa-clock { color: var(--sh-muted, #64748b); }
.sh-mc-inv-ago {
    color: var(--sh-muted, #64748b);
    font-weight: 400;
}
.sh-mc-inv--urgent .sh-mc-inv-ago { color: #d97706; font-weight: 600; }
.sh-mc-inv-status {
    font-weight: 600;
    font-size: var(--sh-text-xs, 0.694rem);
}
.sh-mc-inv-status--pending  { color: #d97706; }
.sh-mc-inv-status--viewed   { color: #2563eb; }
.sh-mc-inv-status--accepted { color: #16a34a; }

/* Match card grid */
.sh-match-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

/* Match card */
.sh-match-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-border, #e2e8f0);
    border-radius: var(--sh-radius-md);
    padding: 1.1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    transition: box-shadow 0.14s ease, border-color 0.14s ease;
}

.sh-match-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    border-color: var(--sh-blue-600, #2563eb);
}

/* Top-match card: gold left border + subtle tint */
.sh-match-card--top {
    border-left: 3px solid var(--sh-gold, #F2B705);
    background: linear-gradient(90deg, rgba(242,183,5,0.05), #fff 40%);
}

.sh-match-top-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #92640a;
    background: rgba(242,183,5,0.18);
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    align-self: flex-start;
}

/* Score badge */
.sh-match-score {
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--sh-blue-600, #2563eb);
    line-height: 1;
}

.sh-match-card--top .sh-match-score { color: #92640a; }

/* Fachrichtung title */
.sh-match-fachrichtung {
    font-size: 1rem;
    font-weight: 700;
    color: var(--sh-text-primary, #1e293b);
    margin: 0;
    padding-right: 3rem; /* avoid overlap with score */
}

/* Meta: experience + availability */
.sh-match-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}

.sh-match-meta-item {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary, #64748b);
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.sh-match-meta-item i { width: 0.9rem; text-align: center; }

/* Skills section */
.sh-match-skills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.sh-skill-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.55rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 500;
    border: 1px solid transparent;
}

.sh-skill-chip--verified {
    background: #d1fae5;
    color: #065f46;
    border-color: #a7f3d0;
}

.sh-skill-chip--pending {
    background: #fef3c7;
    color: #92400e;
    border-color: #fde68a;
}

.sh-skill-more {
    font-size: 0.75rem;
    color: var(--sh-text-secondary, #64748b);
    padding: 0.2rem 0;
}

/* Match reasons */
.sh-match-reasons {
    border-top: 1px solid var(--sh-border, #e2e8f0);
    padding-top: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sh-match-reason {
    font-size: 0.8125rem;
    color: var(--sh-text-primary, #1e293b);
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
}

.sh-match-reason--positive { color: #065f46; }
.sh-match-reason--neutral  { color: var(--sh-text-secondary, #64748b); }
.sh-match-reason--warning  { color: #92400e; }

/* Empty state for tabs */
.sh-match-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--sh-text-secondary, #64748b);
    background: var(--sh-white);
    border: 1px solid var(--sh-border, #e2e8f0);
    border-radius: var(--sh-radius-md);
}

.sh-match-empty i { font-size: 2rem; margin-bottom: 0.75rem; display: block; opacity: 0.4; }

/* Liability footer on matching page */
.sh-liability-note {
    font-size: 0.75rem;
    color: var(--sh-text-secondary, #64748b);
    border-top: 1px solid var(--sh-border, #e2e8f0);
    padding-top: 1rem;
    margin-top: 1.5rem;
}

/* Mobile overrides for matching grid */
@media (max-width: 768px) {
    .sh-match-grid { grid-template-columns: 1fr; }
    .sh-pipeline-tabs { flex-wrap: wrap; }
    .sh-pipeline-tab { flex: 1 1 50%; border-right: 1px solid var(--sh-border, #e2e8f0); }
    .sh-pipeline-tab:nth-child(2) { border-right: none; }
    .sh-pipeline-tab:nth-child(3) { border-top: 1px solid var(--sh-border, #e2e8f0); border-right: 1px solid var(--sh-border, #e2e8f0); }
    .sh-pipeline-tab:nth-child(4) { border-top: 1px solid var(--sh-border, #e2e8f0); border-right: none; }
}

/* --- Mobile overrides for Decision Card --- */
@media (max-width: 768px) {
    .sh-decision-card {
        padding: 1rem;
    }

    .sh-decision-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .sh-action-btn {
        justify-content: center;
    }

    .sh-favorite-icon-btn {
        align-self: flex-start;
    }

    .sh-decision-specs,
    .sh-decision-avail {
        flex-direction: column;
        gap: 0.4rem;
    }

    .sh-decision-label {
        min-width: unset;
    }

    .sh-kv-grid {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }

    .sh-kv-label {
        font-size: 0.72rem;
        margin-top: 0.5rem;
    }
}

/* ============================================================================
 * CROSS-JOB MATCHING LAYER (inside matching_results_spital + candidate_pool)
 * ============================================================================ */

.sh-cross-job-box {
    margin-top: 0.75rem;
    padding-top: 0.625rem;
    border-top: 1px solid var(--sh-border);
}

.sh-cross-job-title {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sh-text-tertiary);
    font-weight: 600;
    margin-bottom: 0.4rem;
}

.sh-cross-job-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8rem;
    padding: 0.3rem 0.5rem;
    border-radius: 6px;
    background: var(--sh-surface-bg, #f8fafc);
    margin-bottom: 0.25rem;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--sh-text-primary);
    transition: background 0.12s;
}

.sh-cross-job-item:hover {
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
    text-decoration: none;
}

.sh-cross-job-item--best {
    background: rgba(37, 99, 235, 0.07);
    font-weight: 600;
}

.sh-cross-job-item--best:hover {
    background: rgba(37, 99, 235, 0.12);
}

.sh-cross-job-item-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sh-cross-job-item-score {
    font-weight: 700;
    font-size: 0.8rem;
    color: #16a34a;
    flex-shrink: 0;
}

.sh-cross-job-cta {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin-top: 0.4rem;
    padding: 0.4rem 0.6rem;
    background: transparent;
    border: 1px dashed var(--sh-border);
    border-radius: 6px;
    font-size: 0.775rem;
    color: var(--sh-text-secondary);
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.sh-cross-job-cta:hover {
    background: var(--sh-surface-hover);
    border-color: var(--sh-blue-600, #2563eb);
    color: var(--sh-blue-600, #2563eb);
}

/* ============================================================================
 * CANDIDATE POOL PAGE (candidate_pool.php)
 * ============================================================================ */

.sh-pool-container .sh-dashboard-header {
    border-radius: var(--sh-radius-card);
    margin-bottom: 1.5rem;
    background:
        linear-gradient(135deg, rgba(15,23,42,0.82) 0%, rgba(30,58,95,0.72) 55%, rgba(29,78,216,0.65) 100%),
        url('/assets/images/fachkraefte_browse.webp') center / cover no-repeat;
}

.sh-pool-container .sh-dashboard-inner {
    padding: 0;
}

.sh-pool-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1.125rem;
    margin-bottom: 2rem;
}

.sh-pool-card {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    padding: 1.125rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    transition: box-shadow 0.15s;
}

.sh-pool-card:hover {
    box-shadow: var(--sh-shadow-md);
}

.sh-pool-card--top {
    border-left: 4px solid var(--sh-blue-600, #2563eb);
    background: linear-gradient(to right, rgba(37,99,235,0.04), transparent 60%);
}

.sh-pool-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.sh-pool-card-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-text-primary);
}

.sh-pool-card-role {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    margin-top: 0.1rem;
}

.sh-pool-coverage-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(37, 99, 235, 0.08);
    border-radius: var(--sh-radius-sm);
    padding: 0.3rem 0.6rem;
    flex-shrink: 0;
}

.sh-pool-coverage-badge-num {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1;
    color: var(--sh-blue-600, #2563eb);
}

.sh-pool-coverage-badge-label {
    font-size: 0.65rem;
    color: var(--sh-text-secondary);
    white-space: nowrap;
}

.sh-pool-matches {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sh-pool-match-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8rem;
    padding: 0.3rem 0.5rem;
    border-radius: 6px;
    background: var(--sh-surface-bg, #f8fafc);
    gap: 0.5rem;
}

.sh-pool-match-item--best {
    background: rgba(37, 99, 235, 0.07);
    font-weight: 600;
}

.sh-pool-match-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--sh-text-primary);
}

.sh-pool-match-score {
    font-weight: 700;
    color: #16a34a;
    flex-shrink: 0;
    font-size: 0.8rem;
}

.sh-pool-match-urgent {
    font-size: 0.7rem;
    font-weight: 600;
    color: #b91c1c;
    background: rgba(239,68,68,0.1);
    border-radius: 4px;
    padding: 0.1rem 0.3rem;
    flex-shrink: 0;
}

.sh-pool-card-actions {
    display: flex;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.25rem;
    border-top: 1px solid var(--sh-border);
}

/* Pool Stats Bar */
.sh-pool-stats-bar {
    display: flex;
    gap: 1px;
    background: var(--sh-border);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.sh-pool-stat {
    flex: 1;
    padding: 0.875rem 0.75rem;
    background: var(--sh-surface-card);
    text-align: center;
}

.sh-pool-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1;
}

.sh-pool-stat-label {
    font-size: 0.75rem;
    color: var(--sh-text-secondary);
    margin-top: 0.2rem;
}

/* Assignment Modal */
.sh-assign-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,0.55);
    z-index: 1050;
    align-items: center;
    justify-content: center;
}

.sh-assign-modal-overlay.is-open {
    display: flex;
}

.sh-assign-modal {
    background: var(--sh-surface-card);
    border-radius: var(--sh-radius-lg);
    padding: 1.5rem;
    width: 100%;
    max-width: 480px;
    max-height: 80vh;
    overflow-y: auto;
    box-shadow: var(--sh-shadow-md);
}

.sh-assign-modal-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    margin-bottom: 0.25rem;
}

.sh-assign-modal-sub {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    margin-bottom: 1rem;
}

.sh-assign-job-option {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-md);
    margin-bottom: 0.5rem;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}

.sh-assign-job-option:hover {
    background: var(--sh-surface-hover);
}

.sh-assign-job-option input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    cursor: pointer;
}

.sh-assign-job-option.is-selected {
    border-color: var(--sh-blue-600, #2563eb);
    background: rgba(37, 99, 235, 0.05);
}

.sh-assign-job-option-title {
    flex: 1;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sh-text-primary);
}

.sh-assign-job-score {
    font-size: 0.8rem;
    font-weight: 700;
    color: #16a34a;
}

@media (max-width: 640px) {
    .sh-pool-grid {
        grid-template-columns: 1fr;
    }

    .sh-pool-stats-bar {
        flex-wrap: wrap;
    }

    .sh-pool-stat {
        flex: 1 1 calc(50% - 1px);
    }

    .sh-assign-modal {
        max-width: 100%;
        margin: 0 1rem;
    }
}

/* ============================================================================
 * MY JOBS — Pipeline OS Components
 * ============================================================================ */

/* Portfolio Bar — dark navy command bar */
.sh-portfolio-bar {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: var(--sh-blue-900, #1e3a5f);
    border: none;
    border-radius: var(--sh-radius-lg);
    overflow: hidden;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 20px rgba(15,23,42,0.18);
}

.sh-portfolio-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem 0.75rem;
    background: transparent;
    text-align: center;
    gap: 0.15rem;
    border-right: 1px solid rgba(255,255,255,0.1);
    transition: background 0.15s;
}

.sh-portfolio-stat:hover {
    background: rgba(255,255,255,0.06);
}

.sh-portfolio-stat-value {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
    color: #ffffff;
}

.sh-portfolio-stat-label {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.6);
    white-space: nowrap;
}

.sh-portfolio-stat--critical .sh-portfolio-stat-value {
    color: #fca5a5;
}
a.sh-portfolio-stat--link {
    text-decoration: none;
    cursor: pointer;
}
a.sh-portfolio-stat--link:hover {
    background: rgba(255,255,255,0.1);
}
a.sh-portfolio-stat--link .sh-portfolio-stat-label::after {
    content: ' ↓';
    opacity: 0.6;
    font-size: 0.7rem;
}

.sh-portfolio-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0 1.25rem;
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s;
    flex-shrink: 0;
    border-left: 1px solid rgba(255,255,255,0.1);
}

.sh-portfolio-cta:hover {
    background: #1d4ed8;
    color: #fff;
    text-decoration: none;
}

/* Priority Sections */
.sh-priority-section {
    margin-bottom: 2rem;
}

.sh-priority-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sh-text-secondary);
    margin-bottom: 0.875rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--sh-border);
}

.sh-priority-header--critical {
    color: #b91c1c;
    border-bottom-color: #fca5a5;
}

.sh-priority-header--active {
    color: #92400e;
    border-bottom-color: #fcd34d;
}

.sh-priority-header--healthy {
    color: #065f46;
    border-bottom-color: #6ee7b7;
}

.sh-priority-header--inactive {
    color: var(--sh-text-tertiary);
    border-bottom-color: var(--sh-border);
}

.sh-priority-count {
    margin-left: auto;
    background: var(--sh-surface-hover);
    border-radius: 999px;
    padding: 0.1rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--sh-text-secondary);
}

/* Job Grid — Cockpit Row: single-column, full-width */
.sh-job-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

/* Job Card — 3-zone horizontal Cockpit layout */
.sh-job-card {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    display: grid;
    grid-template-columns: 1.6fr 1fr 210px;
    grid-template-areas: "identity vitals pipeline";
    align-items: stretch;
    min-height: 88px;
    transition: box-shadow 0.15s, transform 0.15s;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(15,23,42,0.08), 0 0 0 1px rgba(15,23,42,0.04);
    cursor: pointer;
}

.sh-job-card:hover {
    box-shadow: 0 8px 28px rgba(15,23,42,0.14);
    transform: translateY(-2px);
}

/* Priority stripes — 5px left border, clean (no background tint) */
.sh-job-card--critical {
    border-left: 5px solid #ef4444;
}

.sh-job-card--active {
    border-left: 5px solid #f59e0b;
}

.sh-job-card--healthy {
    border-left: 5px solid #10b981;
}

.sh-job-card--candidates_available {
    border-left: 5px solid var(--sh-blue-600, #2563eb);
}

.sh-job-card--no_matches {
    border-left: 5px solid var(--sh-gray-400, #9ca3af);
}

.sh-job-card--inactive {
    opacity: 0.72;
}

.sh-job-card--refined {
    border-color: #FCD34D;
    box-shadow: 0 0 0 2px #FEF08A, var(--sh-card-shadow);
    padding-top: 1.75rem; /* matches amber banner height (~28px) */
}

/* Cockpit Zone 1: Identity */
.sh-jc-identity {
    grid-area: identity;
    padding: 1rem 1rem 1rem 1.125rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.15rem;
    border-right: 1px solid var(--sh-border);
    min-width: 0;
}

.sh-jc-eyebrow {
    font-size: 0.69rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sh-blue-600, #2563eb);
    line-height: 1.2;
}

.sh-jc-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sh-jc-badges {
    display: flex;
    gap: 0.35rem;
    margin-top: 0.3rem;
    flex-wrap: wrap;
    align-items: center;
}

/* Job Reference — always visible, copyable, subtle */
.sh-job-card-ref {
    font-size: 0.7rem;
    color: var(--sh-text-tertiary);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: 0.03em;
    margin-top: 0.2rem;
    display: inline-block;
    background: var(--sh-surface-bg, #f8fafc);
    border: 1px solid var(--sh-border);
    padding: 1px 6px;
    border-radius: 5px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    user-select: none;
}
.sh-job-card-ref:hover {
    background: var(--sh-border);
    color: var(--sh-text-secondary);
}
.sh-job-card-ref--copied {
    background: #d1fae5;
    border-color: #059669;
    color: #065f46;
}

/* Cockpit Zone 2: Vitals */
.sh-jc-vitals {
    grid-area: vitals;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.4rem;
    border-right: 1px solid var(--sh-border);
    min-width: 0;
}

/* Cockpit Zone 3: Pipeline + Actions */
.sh-jc-pipeline {
    grid-area: pipeline;
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.5rem;
    min-width: 0;
}

.sh-jc-pipeline .sh-pipeline-mini {
    flex-wrap: nowrap;
    gap: 0.3rem;
}

.sh-jc-actions {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: stretch;
}

/* Icon-only link button (compact, beside primary CTA on refined drafts) */
.sh-card-action-btn.sh-card-action-btn--link-only {
    flex: 0 0 auto;
    width: 2.25rem;
    padding: 0.45rem;
    align-self: flex-end;
}

/* Meta: two-tier information hierarchy */
.sh-job-card-meta {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sh-meta-primary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--sh-text-primary);
}

.sh-meta-secondary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.775rem;
    color: var(--sh-text-secondary);
}

.sh-meta-fk-avail {
    color: #059669;
    font-weight: 600;
}
.sh-meta-fk-none {
    color: #dc2626;
    font-weight: 600;
}
.sh-urgency--booked {
    color: #059669;
    font-weight: 600;
}

/* Pipeline Mini */
.sh-pipeline-mini {
    display: flex;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.sh-pm-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--sh-surface-bg, #f8fafc);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm);
    padding: 0.3rem 0.5rem;
    min-width: 52px;
    text-align: center;
}

.sh-pm-count {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    color: var(--sh-text-primary);
}

.sh-pm-count--zero {
    color: var(--sh-text-tertiary);
}

.sh-pm-count--has {
    color: var(--sh-blue-600, #2563eb);
}

.sh-pm-label {
    font-size: 0.65rem;
    color: var(--sh-text-tertiary);
    white-space: nowrap;
    margin-top: 0.15rem;
}

/* Job Card Actions */
.sh-job-card-actions {
    display: flex;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.25rem;
    border-top: 1px solid var(--sh-border);
    flex-wrap: wrap;
}

.sh-card-action-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.45rem 0.6rem;
    border-radius: var(--sh-radius-sm);
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid var(--sh-border);
    background: var(--sh-surface-card);
    color: var(--sh-text-primary);
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
    white-space: nowrap;
    min-width: 0;
}

.sh-card-action-btn:hover {
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
    text-decoration: none;
}

.sh-card-action-btn--primary {
    background: var(--sh-blue-600, #2563eb);
    border-color: var(--sh-blue-600, #2563eb);
    color: #fff;
    font-weight: 600;
}

.sh-card-action-btn--primary:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
}

/* Table Toggle */
.sh-table-toggle-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0.5rem 0 1.5rem;
}

.sh-table-toggle-btn {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 1rem;
    background: transparent;
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm);
    color: var(--sh-text-secondary);
    font-size: 0.8125rem;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.sh-table-toggle-btn:hover {
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
}

.sh-table-toggle-btn.is-active {
    background: var(--sh-surface-hover);
    color: var(--sh-text-primary);
    border-color: var(--sh-text-secondary);
}

.sh-table-collapsible {
    display: none;
}

.sh-table-collapsible.is-open {
    display: block;
}

/* Responsive */
@media (max-width: 640px) {
    .sh-portfolio-bar {
        flex-wrap: wrap;
    }

    .sh-portfolio-stat {
        flex: 1 1 calc(50% - 1px);
    }

    .sh-portfolio-cta {
        flex: 1 1 100%;
        padding: 0.75rem;
    }

    .sh-job-grid {
        grid-template-columns: 1fr;
    }

    .sh-job-card {
        grid-template-columns: 1fr;
        grid-template-areas:
            "identity"
            "vitals"
            "pipeline";
        min-height: auto;
    }

    .sh-jc-identity,
    .sh-jc-vitals {
        border-right: none;
        border-bottom: 1px solid var(--sh-border);
    }

    .sh-jc-pipeline .sh-pipeline-mini {
        flex-wrap: wrap;
    }

    .sh-pipeline-mini {
        gap: 0.2rem;
    }

    .sh-pm-step {
        min-width: 44px;
    }
}

/* ============================================================
   IMPACT SCORE — Candidate Pool
   ============================================================ */

.sh-impact-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    background: #1e2a38;
    color: #94a3b8;
    padding: 0.18rem 0.5rem;
    border-radius: 6px;
    white-space: nowrap;
}

.sh-impact-badge--high {
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
}

/* Super card: rescues 2+ critical jobs */
.sh-pool-card--super {
    border-left: 4px solid #dc2626;
    background: linear-gradient(to right, rgba(239, 68, 68, 0.05), transparent 60%);
}

/* Critical job match item inside pool card */
.sh-pool-match-item--critical {
    background: rgba(239, 68, 68, 0.08);
    border-left: 3px solid #dc2626;
    padding-left: 0.4rem;
}

/* ============================================================
   TABLE VIEW — my_jobs.php (collapsible table)
   ============================================================ */

.sh-table-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
    margin-top: 1rem;
}

.sh-table-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #f3f4f6;
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
}

.sh-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.sh-table th {
    background: #f9fafb;
    padding: 0.6rem 1rem;
    text-align: left;
    font-weight: 600;
    color: #6b7280;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 1px solid #e5e7eb;
}

.sh-job-row td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
    color: #374151;
}

.sh-job-row:last-child td {
    border-bottom: none;
}

.sh-job-row:hover td {
    background: #f9fafb;
}

.sh-row-urgent td {
    background: rgba(239, 68, 68, 0.04);
}

.sh-table-actions {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.sh-table-btn {
    padding: 0.3rem 0.7rem;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 500;
    border: 1px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: all 0.15s ease;
}

.sh-table-btn--primary {
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
    border-color: var(--sh-blue-600, #2563eb);
}

.sh-table-btn--primary:hover {
    background: var(--sh-blue-700, #1d4ed8);
}

.sh-table-btn--warn {
    background: #fff7ed;
    color: #9a3412;
    border-color: #fed7aa;
}

.sh-table-btn--success {
    background: #f0fdf4;
    color: #166534;
    border-color: #bbf7d0;
}

.sh-table-btn--danger {
    background: #fef2f2;
    color: #991b1b;
    border-color: #fecaca;
}

/* ============================================================
   JOB BADGE — premium indicator
   ============================================================ */

.sh-job-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.sh-job-badge--premium {
    background: #fef3c7;
    color: #92400e;
    border-color: #fde68a;
}

/* ============================================================
   SEARCH — my_jobs.php inline search
   ============================================================ */

.sh-search-input {
    width: 100%;
    max-width: 320px;
    padding: 0.5rem 0.875rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 0.875rem;
    color: #374151;
    background: #fff;
    outline: none;
    transition: border-color 0.15s ease;
}

.sh-search-input:focus {
    border-color: var(--sh-blue-500, #3b82f6);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.08);
}

.sh-search-result-note {
    font-size: 0.78rem;
    color: #6b7280;
    margin-top: 0.4rem;
}

/* .sh-browse-header-back defined above in BROWSE section */

/* ============================================================
   CANDIDATE TIMELINE — Unified Pull + Push Event History
   ============================================================ */

.sh-timeline {
    margin-top: 0.75rem;
    border-left: 2px solid #e5e7eb;
    padding-left: 0.875rem;
}

.sh-timeline-item {
    position: relative;
    margin-bottom: 0.625rem;
    display: flex;
    align-items: flex-start;
    gap: 0;
}

.sh-timeline-dot {
    position: absolute;
    left: -1.125rem;
    top: 0.3rem;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #9ca3af;
    flex-shrink: 0;
}

.sh-timeline-content {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.8rem;
}

.sh-timeline-content strong {
    font-weight: 600;
    color: var(--sh-text-primary, #111827);
    font-size: 0.8rem;
}

.sh-timeline-job {
    color: var(--sh-text-secondary, #6b7280);
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
}

.sh-timeline-time {
    color: #9ca3af;
    font-size: 0.7rem;
}

/* Status dot colors */
.sh-timeline-item--applied .sh-timeline-dot   { background: #2563eb; }
.sh-timeline-item--invited .sh-timeline-dot   { background: #7c3aed; }
.sh-timeline-item--viewed .sh-timeline-dot    { background: #d97706; }
.sh-timeline-item--accepted .sh-timeline-dot  { background: #16a34a; }
.sh-timeline-item--rejected .sh-timeline-dot,
.sh-timeline-item--declined .sh-timeline-dot  { background: #dc2626; }

/* Next Best Action badge */
.sh-next-action {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    margin-top: 0.4rem;
    border: 1px solid transparent;
}

.sh-next-action--invite   { background: #ede9fe; color: #5b21b6; border-color: #ddd6fe; }
.sh-next-action--followup { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.sh-next-action--contract { background: #d1fae5; color: #065f46; border-color: #a7f3d0; }

/* ================================================================
   PROFILE VIEW V2 — Swiss Precision Medical
   Fachkraft identity card: Instrument Serif + Plus Jakarta Sans
   Dark identity band → numbered section system
   Classes: .sh-pv2-* (scoped, no collisions)
   ================================================================ */

/* --- Identity Card --- */
.sh-pv2-card {
    background: #0f1923;
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 1.25rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.12);
    position: relative;
}
.sh-pv2-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, #10b981 0%, #0ea5e9 100%);
    border-radius: 16px 0 0 16px;
}
.sh-pv2-card.sh-pv2-pending::before {
    background: linear-gradient(180deg, #f59e0b 0%, #ef4444 100%);
}

/* Band: avatar | identity | actions */
.sh-pv2-band {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1.75rem;
    align-items: start;
    padding: 2rem 2rem 1.5rem;
    color: #fff;
}

/* Avatar */
.sh-pv2-avatar-wrap { position: relative; flex-shrink: 0; }
/* ── Status-driven ring + dot — Single Source of Truth for color ─ */
/* All color meaning lives here. Nothing else on the card is colored. */
.sh-pv2-avatar-ring {
    width: 92px; height: 92px;
    border-radius: 50%;
    padding: 3px;
    background: var(--pv2-ring-bg, #4b5563); /* default: gray */
    transition: background 0.3s ease;
}
/* Busy → Red */
.sh-pv2-card--busy    .sh-pv2-avatar-ring { background: #ef4444; }
/* Ready → Green */
.sh-pv2-card--ready   .sh-pv2-avatar-ring { background: #10b981; }
/* Soon → Amber */
.sh-pv2-card--soon    .sh-pv2-avatar-ring { background: #f59e0b; }
/* Unknown → muted gray */
.sh-pv2-card--unknown .sh-pv2-avatar-ring { background: #4b5563; }

.sh-pv2-avatar-inner {
    width: 100%; height: 100%;
    border-radius: 50%;
    background: #1e2d3d;
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
}
.sh-pv2-avatar-img { width: 100%; height: 100%; object-fit: cover; }
.sh-pv2-avatar-init {
    font-size: 1.6rem; font-weight: 700; color: #94a3b8;
    font-family: var(--pv2-font);
    letter-spacing: 1px;
}

/* Status dot — mirrors ring color */
.sh-pv2-status-dot {
    position: absolute; bottom: 2px; right: 2px;
    width: 14px; height: 14px;
    border-radius: 50%; border: 2px solid #0f1923;
    background: #4b5563; /* default: gray */
    transition: background 0.3s ease;
}
.sh-pv2-card--busy    .sh-pv2-status-dot { background: #ef4444; }
.sh-pv2-card--ready   .sh-pv2-status-dot { background: #10b981; box-shadow: 0 0 0 3px rgba(16,185,129,.15); }
.sh-pv2-card--soon    .sh-pv2-status-dot { background: #f59e0b; }
.sh-pv2-card--unknown .sh-pv2-status-dot { background: #4b5563; }

/* Identity text */
.sh-pv2-id-block { min-width: 0; }
.sh-pv2-name {
    font-family: var(--pv2-font);
    font-size: var(--pv2-t-name); font-weight: 700;
    color: #f1f5f9; line-height: 1.1;
    margin: 0 0 var(--pv2-s1); letter-spacing: -0.03em;
}
.sh-pv2-profession {
    font-family: var(--pv2-font);
    font-size: 0.72rem; font-weight: 600; color: #64748b;
    letter-spacing: 0.07em; text-transform: uppercase;
    margin: 0 0 0.875rem;
}
.sh-pv2-badge-row { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.sh-pv2-badge {
    display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.18rem 0.55rem; border-radius: 999px;
    font-size: 0.7rem; font-weight: 600;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    letter-spacing: 0.02em; white-space: nowrap;
}
.sh-pv2-badge--ok      { background: rgba(16,185,129,.15); color: #34d399; border: 1px solid rgba(16,185,129,.3); }
.sh-pv2-badge--pending { background: rgba(245,158,11,.15); color: #fbbf24; border: 1px solid rgba(245,158,11,.3); }
.sh-pv2-badge--trust   { background: rgba(59,130,246,.15);  color: #93c5fd; border: 1px solid rgba(59,130,246,.2); }
.sh-pv2-badge--meta    { background: rgba(255,255,255,.07); color: #94a3b8; border: 1px solid rgba(255,255,255,.08); }
.sh-pv2-badge--star    { background: rgba(251,191,36,.12);  color: #fbbf24; border: 1px solid rgba(251,191,36,.2); }
.sh-pv2-badge--gold    { background: rgba(201,168,76,.15);  color: #fbbf24; border: 1px solid rgba(201,168,76,.3); }

/* Action zone */
.sh-pv2-actions { display: flex; flex-direction: column; gap: 0.45rem; align-items: stretch; min-width: 190px; }
.sh-pv2-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 0.4rem; padding: 0.5rem 1rem;
    border-radius: 8px; font-size: 0.8rem; font-weight: 600;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    cursor: pointer; border: none; text-decoration: none;
    transition: all .15s ease; white-space: nowrap; line-height: 1.4;
}
.sh-pv2-btn--primary { background: #3b82f6; color: #fff; }
.sh-pv2-btn--primary:hover { background: #2563eb; color: #fff; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(59,130,246,.4); }
.sh-pv2-btn--secondary { background: rgba(255,255,255,.08); color: #cbd5e1; border: 1px solid rgba(255,255,255,.12); }
.sh-pv2-btn--secondary:hover { background: rgba(255,255,255,.14); color: #f1f5f9; }
.sh-pv2-btn--star {
    background: transparent; color: #94a3b8;
    border: 1px solid rgba(255,255,255,.1);
    padding: 0.45rem; width: 36px; height: 36px;
    border-radius: 8px; flex-shrink: 0;
}
.sh-pv2-btn--star.active, .sh-pv2-btn--star:hover { color: #fbbf24; border-color: rgba(251,191,36,.4); background: rgba(251,191,36,.08); }
.sh-pv2-action-row { display: flex; align-items: center; gap: 0.45rem; }
.sh-pv2-price-hint { font-size: 0.68rem; color: #475569; text-align: center; padding: 0.2rem; border-top: 1px solid rgba(255,255,255,.05); margin-top: 0.25rem; line-height: 1.5; }
.sh-pv2-locked {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.78rem; color: #475569;
    background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
    border-radius: 8px; padding: 0.625rem 0.875rem; align-self: start;
}

/* Info strip */
.sh-pv2-strip {
    background: rgba(255,255,255,.04);
    border-top: 1px solid rgba(255,255,255,.06);
    padding: 1.25rem 2rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1.25rem 2rem;
}
.sh-pv2-strip-cell { display: flex; flex-direction: column; gap: 0.5rem; }
.sh-pv2-strip-label {
    font-size: 0.65rem; font-weight: 700; letter-spacing: 0.09em;
    text-transform: uppercase; color: #475569;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
.sh-pv2-strip-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; }
.sh-pv2-spec {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.18rem 0.55rem; border-radius: 999px;
    font-size: 0.7rem; font-weight: 500;
    background: rgba(255,255,255,.07); color: #cbd5e1;
    border: 1px solid rgba(255,255,255,.1); white-space: nowrap;
}
.sh-pv2-spec--top  { background: rgba(245,158,11,.15); color: #fcd34d; border-color: rgba(245,158,11,.25); }
.sh-pv2-spec--good { background: rgba(59,130,246,.15);  color: #93c5fd; border-color: rgba(59,130,246,.2); }
.sh-pv2-spec--more { background: transparent; color: #64748b; border-color: rgba(255,255,255,.06); cursor: pointer; }
.sh-pv2-spec--more:hover { color: #94a3b8; }
.sh-pv2-avail-now  { font-size: 0.78rem; font-weight: 700; color: #34d399; }
.sh-pv2-avail-soon { font-size: 0.78rem; font-weight: 500; color: #64748b; }

/* Private notes */
.sh-pv2-notes { background: #fff; border: 1px solid #e8edf2; border-radius: 12px; margin-bottom: 1.25rem; overflow: hidden; }
.sh-pv2-notes-head {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.7rem 1.25rem; background: #fafbfc;
    border-bottom: 1px solid #eef1f5;
    font-size: 0.7rem; font-weight: 700; color: #64748b;
    letter-spacing: 0.06em; text-transform: uppercase;
}
.sh-pv2-notes-form { display: flex; gap: 0.5rem; padding: 0.875rem 1.25rem; border-bottom: 1px solid #f1f5f9; }
.sh-pv2-notes-textarea {
    flex: 1; padding: 0.5rem 0.75rem;
    border: 1px solid #e2e8f0; border-radius: 8px;
    font-size: 0.82rem; resize: none;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    line-height: 1.5; transition: border-color .15s;
}
.sh-pv2-notes-textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,.1); }
.sh-pv2-notes-submit {
    padding: 0.5rem 1rem; background: #3b82f6; color: #fff;
    border: none; border-radius: 8px; font-size: 0.78rem; font-weight: 600;
    cursor: pointer; align-self: flex-end; transition: background .15s; white-space: nowrap;
}
.sh-pv2-notes-submit:hover { background: #2563eb; }
.sh-pv2-note-item { padding: 0.75rem 1.25rem; border-bottom: 1px solid #f8fafc; }
.sh-pv2-note-item:last-child { border-bottom: none; }
.sh-pv2-note-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.25rem; }
.sh-pv2-note-time { font-size: 0.7rem; color: #94a3b8; }
.sh-pv2-note-del { background: none; border: none; color: #cbd5e1; font-size: 0.72rem; cursor: pointer; padding: 0; }
.sh-pv2-note-del:hover { color: #ef4444; }
.sh-pv2-note-text { font-size: 0.82rem; color: #475569; line-height: 1.5; margin: 0; }
.sh-pv2-notes-empty { padding: 0.75rem 1.25rem; font-size: 0.8rem; color: #94a3b8; font-style: italic; }

/* Sections V2 */
.sh-pv2-section { background: #fff; border: 1px solid #e8edf2; border-radius: 12px; margin-bottom: 0.875rem; overflow: hidden; }
.sh-pv2-summary {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.9rem 1.25rem; cursor: pointer; list-style: none;
    user-select: none; background: #fff;
    border-bottom: 1px solid transparent; transition: background .1s;
}
.sh-pv2-summary::-webkit-details-marker { display: none; }
.sh-pv2-section[open] > .sh-pv2-summary { border-bottom-color: #eef1f5; background: #fafbfc; }
.sh-pv2-summary:hover { background: #f8fafc; }
.sh-pv2-num {
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    font-size: 0.65rem; font-weight: 800; color: #94a3b8;
    letter-spacing: 0.06em; background: #f1f5f9; border-radius: 6px;
    padding: 0.18rem 0.45rem; min-width: 30px; text-align: center; flex-shrink: 0;
}
.sh-pv2-section[open] .sh-pv2-num { background: #3b82f6; color: #fff; }
.sh-pv2-sum-title { flex: 1; font-size: 0.87rem; font-weight: 600; color: #1e293b; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; }
.sh-pv2-sum-meta { font-size: 0.76rem; color: #94a3b8; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; white-space: nowrap; }
.sh-pv2-chevron { color: #94a3b8; font-size: 0.72rem; transition: transform .2s; flex-shrink: 0; }
.sh-pv2-section[open] .sh-pv2-chevron { transform: rotate(180deg); }
.sh-pv2-section-body { padding: 1.25rem; }

/* KV grid */
.sh-pv2-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.875rem 1.5rem; }
.sh-pv2-kv-item { display: flex; flex-direction: column; gap: 0.2rem; }
.sh-pv2-kv-label { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: #94a3b8; }
.sh-pv2-kv-val { font-size: 0.85rem; color: #1e293b; font-weight: 500; }
.sh-pv2-hr { border: none; border-top: 1px solid #f1f5f9; margin: 1rem 0; }

/* Rating bars */
.sh-pv2-rating-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem 2.5rem; margin-bottom: 1.25rem; }
.sh-pv2-rbar-row { display: flex; flex-direction: column; gap: 0.3rem; }
.sh-pv2-rbar-header { display: flex; justify-content: space-between; align-items: center; }
.sh-pv2-rbar-label { font-size: 0.68rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; }
.sh-pv2-rbar-val { font-size: 0.78rem; font-weight: 800; color: #0f172a; }
.sh-pv2-rbar-track { height: 5px; background: #f1f5f9; border-radius: 99px; overflow: hidden; }
.sh-pv2-rbar-fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, #3b82f6, #0ea5e9); transition: width .6s cubic-bezier(.4,0,.2,1); }

/* Reviews */
.sh-pv2-review { padding: 1rem 0; border-bottom: 1px solid #f1f5f9; }
.sh-pv2-review:last-child { border-bottom: none; }
.sh-pv2-review-header { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.375rem; flex-wrap: wrap; }
.sh-pv2-review-hospital { font-weight: 600; font-size: 0.85rem; color: #1e293b; }
.sh-pv2-review-stars { display: flex; gap: 1px; font-size: 0.73rem; }
.sh-pv2-review-date { font-size: 0.7rem; color: #94a3b8; margin-left: auto; }
.sh-pv2-review-text { font-size: 0.82rem; color: #475569; line-height: 1.6; margin: 0 0 0.25rem; }
.sh-pv2-review-job { font-size: 0.7rem; color: #94a3b8; }

/* Work history */
.sh-pv2-work { display: grid; grid-template-columns: 36px 1fr; gap: 0 0.875rem; padding: 0.875rem 0; border-bottom: 1px solid #f1f5f9; }
.sh-pv2-work:last-child { border-bottom: none; }
.sh-pv2-work-dot-col { display: flex; flex-direction: column; align-items: center; padding-top: 4px; }
.sh-pv2-work-dot { width: 10px; height: 10px; border-radius: 50%; background: #e2e8f0; border: 2px solid #cbd5e1; flex-shrink: 0; }
.sh-pv2-work-dot--current { background: #3b82f6; border-color: #3b82f6; }
.sh-pv2-work-line { flex: 1; width: 2px; background: #f1f5f9; margin-top: 4px; }
.sh-pv2-work-title { font-size: 0.85rem; font-weight: 600; color: #1e293b; }
.sh-pv2-work-employer { font-size: 0.8rem; color: #64748b; margin-top: 0.1rem; }
.sh-pv2-work-dates { font-size: 0.72rem; color: #94a3b8; margin-top: 0.15rem; }

/* Certs / references */
.sh-pv2-cert { display: flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0; font-size: 0.82rem; color: #475569; border-bottom: 1px solid #f8fafc; }
.sh-pv2-cert:last-child { border-bottom: none; }
.sh-pv2-cert-icon { color: #3b82f6; font-size: 0.75rem; flex-shrink: 0; }
.sh-pv2-cert-exp { font-size: 0.7rem; color: #94a3b8; margin-left: auto; }

/* Shift chips */
.sh-pv2-shift-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.sh-pv2-shift-chip { padding: 0.2rem 0.6rem; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 99px; font-size: 0.72rem; color: #64748b; }

/* Calendar V2 */
.sh-pv2-cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.sh-pv2-cal-toggle { display: flex; gap: 3px; background: #f1f5f9; border-radius: 8px; padding: 3px; }
.sh-pv2-cal-btn { padding: 0.3rem 0.75rem; border-radius: 6px; font-size: 0.75rem; font-weight: 600; border: none; background: transparent; color: #64748b; cursor: pointer; transition: all .15s; }
.sh-pv2-cal-btn.active { background: #fff; color: #1e293b; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.sh-pv2-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.sh-pv2-cal-dow { text-align: center; font-size: 0.62rem; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.25rem; }
.sh-pv2-cal-day {
    aspect-ratio: 1; border-radius: 7px;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.72rem; font-weight: 500; color: #94a3b8;
    background: #f8fafc; border: 1px solid transparent;
}
.sh-pv2-cal-day.available  { background: #eff6ff; color: #1d4ed8; border-color: #dbeafe; font-weight: 700; }
.sh-pv2-cal-day.busy       { background: rgba(239,68,68,.1); color: #f87171; border-color: rgba(239,68,68,.2); }
/* Own-hospital booking — teal accent: "Im Einsatz bei Ihnen" */
.sh-pv2-cal-day.busy-own   { background: rgba(20,184,166,.12); color: #2dd4bf; border-color: rgba(20,184,166,.3); font-weight: 700; }
.sh-pv2-cal-day.today     { background: #0f172a; color: #fff; font-weight: 800; border-color: transparent; }
.sh-pv2-cal-day.excluded  { background: #fef2f2; color: #fca5a5; border-color: #fee2e2; text-decoration: line-through; }
.sh-pv2-cal-day.none      { background: #f1f5f9; color: #94a3b8; border-color: #e2e8f0; }
.sh-pv2-cal-day.empty     { background: transparent; border-color: transparent; pointer-events: none; }
.sh-pv2-cal-day.past      { opacity: .38; }
/* Multi-month layout */
.sh-pv2-cal-months {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.5rem;
}
.sh-pv2-cal-month-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: #475569;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid #f1f5f9;
}
.sh-pv2-cal-legend { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid #f1f5f9; }
.sh-pv2-cal-leg-item { display: flex; align-items: center; gap: 0.375rem; font-size: 0.68rem; color: #64748b; }
.sh-pv2-cal-leg-dot { width: 10px; height: 10px; border-radius: 3px; }
.sh-pv2-cal-leg-dot--avail     { background: #eff6ff; border: 1px solid #dbeafe; }
.sh-pv2-cal-leg-dot--busy      { background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.2); }
.sh-pv2-cal-leg-dot--busy-own  { background: rgba(20,184,166,.12); border: 1px solid rgba(20,184,166,.3); }
.sh-pv2-cal-leg-dot--excl      { background: #fef2f2; border: 1px solid #fee2e2; }
.sh-pv2-cal-leg-dot--today     { background: #0f172a; }
.sh-pv2-cal-leg-dot--none      { background: #f8fafc; border: 1px solid #e2e8f0; }

/* Section: incomplete / no data state */
.sh-pv2-section--incomplete { opacity: 0.82; }
.sh-pv2-sum-meta--warn {
    color: #f59e0b;
    font-size: 0.68rem;
    font-weight: 600;
}
.sh-pv2-sum-meta--warn .fas { font-size: 0.75em; margin-right: 0.2rem; }

/* Empty state inside section body */
.sh-pv2-avail-empty-state {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.25rem 1rem;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 10px;
    color: #78350f;
}
.sh-pv2-avail-empty-state > .fas {
    font-size: 1.25rem;
    color: #f59e0b;
    margin-top: 0.1rem;
    flex-shrink: 0;
}
.sh-pv2-avail-empty-state strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
    color: #92400e;
}
.sh-pv2-avail-empty-state p {
    font-size: 0.75rem;
    margin: 0;
    color: #a16207;
    line-height: 1.5;
}

/* Availability list */
.sh-pv2-avail-period { padding: 0.875rem 0; border-bottom: 1px solid #f1f5f9; }
.sh-pv2-avail-period:last-child { border-bottom: none; }
.sh-pv2-avail-dates { font-size: 0.85rem; font-weight: 600; color: #1e293b; }
.sh-pv2-avail-pensum { display: inline-flex; align-items: center; padding: 0.1rem 0.45rem; background: #eff6ff; color: #1d4ed8; border-radius: 99px; font-size: 0.7rem; font-weight: 700; margin-left: 0.5rem; }
.sh-pv2-avail-meta { font-size: 0.78rem; color: #64748b; margin-top: 0.2rem; }
.sh-pv2-avail-excl { font-size: 0.72rem; color: #f87171; margin-top: 0.2rem; }

/* Debug */
.sh-pv2-debug { font-size: 0.72rem; line-height: 1.8; color: #64748b; background: #f8fafc; border-radius: 8px; padding: 0.75rem 1rem; margin: 0; }

/* Profession — mehr Gewicht */
.sh-pv2-profession {
    font-weight: 500;
    opacity: 0.9;
    letter-spacing: 0.08em;
    margin-bottom: 0.65rem;
}

/* Sections: closed state visuell entlasten, Fokus auf offene Section */
.sh-pv2-section { transition: opacity .2s ease; }
.sh-pv2-section:not([open]) { opacity: 0.72; }
.sh-pv2-section:not([open]):hover { opacity: 1; }

/* Availability empty state */
.sh-pv2-avail-empty {
    font-size: 0.75rem;
    color: #475569;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-style: italic;
}

/* Notes header sub-label */
.sh-pv2-notes-sub {
    font-size: 0.68rem;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: #94a3b8;
    margin-left: 0.25rem;
}
.sh-pv2-notes-sub::before { content: '·'; margin-right: 0.25rem; }

/* ─── Decision Dashboard: 3-Row Identity Card ─────────────────────────── */

/* ROW 1: Signal — Availability status + Activity */
.sh-pv2-signal-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
    flex-wrap: wrap;
}
.sh-pv2-avail-signal {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    letter-spacing: 0.02em;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
}
.sh-pv2-avail-signal .fas.fa-circle { font-size: 0.45em; }
.sh-pv2-avail-signal--now {
    background: rgba(16, 185, 129, 0.15);
    color: #34d399;
    border: 1px solid rgba(16, 185, 129, 0.3);
}
.sh-pv2-avail-signal--soon {
    background: rgba(245, 158, 11, 0.15);
    color: #fbbf24;
    border: 1px solid rgba(245, 158, 11, 0.3);
}
.sh-pv2-avail-signal--none {
    background: rgba(100, 116, 139, 0.15);
    color: #94a3b8;
    border: 1px solid rgba(100, 116, 139, 0.25);
}
/* 🔴 Im Einsatz (active booking) */
.sh-pv2-avail-signal--busy {
    background: rgba(239, 68, 68, 0.12);
    color: #f87171;
    border: 1px solid rgba(239, 68, 68, 0.3);
}
/* ⚠️ Keine Daten — NIEMALS grün! */
.sh-pv2-avail-signal--unknown {
    background: rgba(100, 116, 139, 0.1);
    color: #94a3b8;
    border: 1px dashed rgba(100, 116, 139, 0.35);
    font-style: italic;
}
.sh-pv2-signal-sep {
    color: #334155;
    font-size: 0.75rem;
}
.sh-pv2-signal-activity {
    font-size: 0.71rem;
    color: #64748b;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
/* Confidence Layer: "Stand: vor X Tagen aktualisiert" */
.sh-pv2-signal-confidence {
    font-size: 0.65rem;
    color: #475569;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    font-style: italic;
    margin-left: auto;
}

/* ROW 2: Trust — Qualification + Years + Rating + VIP inline */
.sh-pv2-trust-row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}
.sh-pv2-trust-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.7rem;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    padding: 0.18rem 0.55rem;
    border-radius: 6px;
    letter-spacing: 0.01em;
}
.sh-pv2-trust-chip--ok {
    background: rgba(255, 255, 255, 0.06);
    color: #94a3b8;
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.sh-pv2-trust-chip--warn {
    background: rgba(245, 158, 11, 0.12);
    color: #fcd34d;
    border: 1px solid rgba(245, 158, 11, 0.25);
}
.sh-pv2-trust-meta {
    font-size: 0.7rem;
    color: #94a3b8;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    font-weight: 500;
    padding: 0.18rem 0.5rem;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 6px;
    white-space: nowrap;
}
.sh-pv2-trust-rating .fas.fa-star {
    color: #f59e0b;
    font-size: 0.68em;
}

/* ROW 3: Fit — Specialty chips + Location */
.sh-pv2-fit-row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.sh-pv2-fit-chip {
    font-size: 0.68rem;
    font-weight: 500;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    color: #cbd5e1;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 5px;
    padding: 0.15rem 0.45rem;
    white-space: nowrap;
}
.sh-pv2-fit-chip--loc {
    color: #64748b;
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.07);
}
.sh-pv2-fit-chip--loc .fas { font-size: 0.75em; margin-right: 0.15rem; color: #475569; }

/* ─── Typography Consolidation (2026-03-21) ────────────────────────────────
 *
 * Type scale — 3 levels only:
 *   L1  1.9rem   Instrument Serif  — name
 *   L2  0.73rem  Plus Jakarta Sans — chips, labels, profession subtitle
 *   L3  0.64rem  Plus Jakarta Sans — confidence hints, muted meta
 *
 * Font inheritance: .sh-pv2-id-block sets Plus Jakarta Sans once;
 * individual chip declarations removed redundant family overrides.
 * ──────────────────────────────────────────────────────────────────────── */

/* Inherit PJS from id-block — one declaration, full cascade */
.sh-pv2-id-block {
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}

/* Profession subtitle — L2, slightly less uppercase tracking than before */
.sh-pv2-profession {
    font-size: 0.73rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    margin-bottom: 0.75rem;
}

/* Signal row — unified L2 */
.sh-pv2-avail-signal   { font-size: 0.73rem; font-family: inherit; }
.sh-pv2-signal-sep     { font-size: 0.73rem; }
.sh-pv2-signal-activity { font-size: 0.73rem; font-family: inherit; color: #64748b; }

/* Confidence — L3 only */
.sh-pv2-signal-confidence { font-size: 0.64rem; font-family: inherit; }

/* Trust row — L2 unified */
.sh-pv2-trust-chip { font-size: 0.73rem; font-family: inherit; }
.sh-pv2-trust-meta { font-size: 0.73rem; font-family: inherit; }

/* Fit row — L2 unified */
.sh-pv2-fit-chip { font-size: 0.73rem; font-family: inherit; }

/* ─── Strip labels: lift contrast ──────────────────────────────────────── */
/* Old: #475569 — contrast ~2.6:1 on dark strip (too dim)                  */
/* New: #8b9eb8 — cool blue-gray, legible without being harsh               */
.sh-pv2-strip-label {
    color: #8b9eb8;
    font-size: 0.65rem;
    letter-spacing: 0.08em;
}

/* Responsive */
@media (max-width: 768px) {
    .sh-pv2-band { grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 1rem; padding: 1.25rem; }
    .sh-pv2-actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; min-width: 0; }
    .sh-pv2-strip { grid-template-columns: 1fr; padding: 1rem 1.25rem; }
    .sh-pv2-rating-grid { grid-template-columns: 1fr; }
    .sh-pv2-name { font-size: 1.4rem; }
    .sh-pv2-kv { grid-template-columns: 1fr 1fr; }
}

/* ================================================================
   PROFILE VIEW V2 — 8pt Grid System · Satoshi · 12/8/4 Columns
   2026-03-21

   8pt scale (all spacing = multiple of 8):
     1u = 8px = 0.5rem
     2u = 16px = 1rem
     3u = 24px = 1.5rem
     4u = 32px = 2rem
     6u = 48px = 3rem
     8u = 64px = 4rem

   Grid columns:
     Desktop  ≥1024px → 12 columns
     Tablet   768–1023 → 8 columns
     Mobile   <768px  → 4 columns

   Palette (60/30/10):
     60% Neutral   #0B1622 card · #F4F7FA sections · #E4E9F0 borders
     30% Secondary #1A2535 deep navy · #94A3B8 muted · #475569 mid
     10% Accent    #10B981 green · #F59E0B amber · #3B82F6 blue

   Font: Satoshi (fontshare) body · Instrument Serif display name
   ================================================================ */

/* ── Design tokens scoped to profile view ─────────────────────── */
:root {
    --pv2-s1: 0.5rem;    /*  8px */
    --pv2-s2: 1rem;      /* 16px */
    --pv2-s3: 1.5rem;    /* 24px */
    --pv2-s4: 2rem;      /* 32px */
    --pv2-s6: 3rem;      /* 48px */
    --pv2-s8: 4rem;      /* 64px */

    /* Neutral 60% */
    --pv2-n950: #0B1622;
    --pv2-n900: #1A2535;
    --pv2-n700: #334155;
    --pv2-n500: #64748B;
    --pv2-n400: #94A3B8;
    --pv2-n200: #E4E9F0;
    --pv2-n100: #F4F7FA;
    --pv2-n50:  #F9FAFB;

    /* Accent 10% */
    --pv2-green: #10B981;
    --pv2-amber: #F59E0B;
    --pv2-blue:  #3B82F6;
    --pv2-teal:  #0EA5E9;
    --pv2-red:   #EF4444;

    /* Font */
    --pv2-font:    'Satoshi', 'Plus Jakarta Sans', system-ui, sans-serif;
    --pv2-display: 'Instrument Serif', Georgia, serif;

    /* Type Scale — Minor Third (16px base × 1.200)
       h3   2.074rem   FK Name (display)
       h5   1.440rem   (reserviert für Spital-Titel etc.)
       p    1.000rem   Section-Titel
       sm   0.833rem   Body, Buttons, Signal-Label
       xs   0.694rem   Chips, KV-Labels, Micro-Text        */
    --pv2-t-name:    2.074rem;
    --pv2-t-section: 1rem;
    --pv2-t-body:    0.833rem;
    --pv2-t-chip:    0.694rem;

    /* Radii */
    --pv2-r-card: 16px;   /* 2×8 */
    --pv2-r-sec:  12px;   /* 1.5×8 */
    --pv2-r-chip:  6px;
    --pv2-r-pill: 999px;
}

/* ── Identity Card ─────────────────────────────────────────────── */
.sh-pv2-card {
    background: var(--pv2-n950);
    border-radius: var(--pv2-r-card);
    margin-bottom: var(--pv2-s3);
    box-shadow: 0 8px 32px rgba(0,0,0,.22), 0 2px 8px rgba(0,0,0,.14);
}

/* 3-col 12-grid band: [96px avatar] [1fr content] [208px actions] */
.sh-pv2-band {
    display: grid;
    grid-template-columns: 96px 1fr 208px;
    gap: var(--pv2-s3);
    padding: var(--pv2-s4) var(--pv2-s4) var(--pv2-s3);
    align-items: start;
}

/* Avatar — 96px = 12×8pt */
.sh-pv2-avatar-ring { width: 96px; height: 96px; }
.sh-pv2-avatar-init { font-family: var(--pv2-font); }

/* ── Typography — Satoshi everywhere ──────────────────────────── */
.sh-pv2-id-block,
.sh-pv2-strip,
.sh-pv2-notes,
.sh-pv2-section,
.sh-pv2-actions {
    font-family: var(--pv2-font);
}

/* Name — h3: 2.074rem (Minor Third) */
.sh-pv2-name {
    font-family: var(--pv2-font);
    font-size: var(--pv2-t-name);  /* 2.074rem */
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #f1f5f9;
    margin: 0 0 var(--pv2-s1);
}

/* Profession subtitle — body: 0.833rem */
.sh-pv2-profession {
    font-family: var(--pv2-font);
    font-size: var(--pv2-t-body);  /* 0.833rem */
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
    margin: 0 0 var(--pv2-s2);
    opacity: 1;
}

/* ── Decision Rows — 8pt gaps ──────────────────────────────────── */
.sh-pv2-signal-row { gap: var(--pv2-s1); margin-bottom: var(--pv2-s1); }
.sh-pv2-trust-row  { gap: var(--pv2-s1); margin-bottom: var(--pv2-s1); }
.sh-pv2-fit-row    { gap: var(--pv2-s1); }

/* Signal label — body: 0.833rem (lesbarer als xs) */
.sh-pv2-avail-signal {
    padding: 4px 10px;
    font-size: var(--pv2-t-body);  /* 0.833rem */
    font-family: var(--pv2-font);
    border-radius: var(--pv2-r-pill);
}
/* Trust / Fit / Spec chips — xs: 0.694rem */
.sh-pv2-trust-chip {
    padding: 4px 10px;
    font-size: var(--pv2-t-chip);  /* 0.694rem */
    font-family: var(--pv2-font);
    border-radius: var(--pv2-r-chip);
}
.sh-pv2-trust-meta {
    padding: 4px 10px;
    font-size: var(--pv2-t-chip);  /* 0.694rem */
    font-family: var(--pv2-font);
    border-radius: var(--pv2-r-chip);
}
.sh-pv2-fit-chip {
    padding: 4px 10px;
    font-size: var(--pv2-t-chip);  /* 0.694rem */
    font-family: var(--pv2-font);
    border-radius: var(--pv2-r-chip);
}
.sh-pv2-signal-activity   { font-size: var(--pv2-t-body); font-family: var(--pv2-font); }
.sh-pv2-signal-confidence { font-size: var(--pv2-t-chip); font-family: var(--pv2-font); }

/* Spec chips in strip — xs */
.sh-pv2-spec {
    padding: 4px 10px;
    font-size: var(--pv2-t-chip);  /* 0.694rem */
    font-family: var(--pv2-font);
}

/* ── Action panel — 208px = 26×8pt ────────────────────────────── */
.sh-pv2-actions {
    min-width: 208px;
    gap: var(--pv2-s1);
}
.sh-pv2-btn {
    padding: 8px 16px;          /* 1u top/bottom, 2u left/right */
    font-size: 0.8125rem;       /* 13px */
    font-family: var(--pv2-font);
    border-radius: 8px;         /* 1×8pt */
    font-weight: 600;
    letter-spacing: 0.01em;
}
.sh-pv2-btn--star { width: 40px; height: 40px; padding: 0; }

/* ── Info strip — 8pt spacing ──────────────────────────────────── */
.sh-pv2-strip {
    padding: var(--pv2-s2) var(--pv2-s4);   /* 16px 32px */
    gap: var(--pv2-s2) var(--pv2-s4);
}
/* Strip label — xs: 0.694rem */
.sh-pv2-strip-label {
    font-family: var(--pv2-font);
    font-size: var(--pv2-t-chip);   /* 0.694rem */
    font-weight: 700;
    letter-spacing: 0.09em;
    color: #7B92B0;
}
.sh-pv2-strip-chips { gap: var(--pv2-s1); }
.sh-pv2-avail-now  { font-family: var(--pv2-font); font-size: var(--pv2-t-body); font-weight: 700; }
.sh-pv2-avail-soon { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }

/* ── Private notes ─────────────────────────────────────────────── */
.sh-pv2-notes {
    border-radius: var(--pv2-r-sec);
    margin-bottom: var(--pv2-s3);
    border: 1px solid var(--pv2-n200);
}
.sh-pv2-notes-head {
    padding: var(--pv2-s1) var(--pv2-s3);
    font-family: var(--pv2-font);
    font-size: var(--pv2-t-chip);   /* 0.694rem */
    font-weight: 700;
}
.sh-pv2-notes-form   { padding: var(--pv2-s2) var(--pv2-s3); gap: var(--pv2-s1); }
.sh-pv2-note-item    { padding: var(--pv2-s2) var(--pv2-s3); }
.sh-pv2-notes-textarea { font-family: var(--pv2-font); padding: 8px 12px; font-size: var(--pv2-t-body); }
.sh-pv2-notes-submit   {
    padding: 8px 16px;
    font-family: var(--pv2-font);
    font-size: var(--pv2-t-body);   /* 0.833rem */
    font-weight: 600;
    border-radius: 8px;
}
.sh-pv2-note-time { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }
.sh-pv2-note-text { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }

/* ── Section accordion ─────────────────────────────────────────── */
.sh-pv2-section {
    border-radius: var(--pv2-r-sec);
    margin-bottom: var(--pv2-s2);
    border: 1px solid var(--pv2-n200);
}
.sh-pv2-summary { padding: var(--pv2-s2) var(--pv2-s3); gap: var(--pv2-s2); }
.sh-pv2-section-body { padding: var(--pv2-s3); }
.sh-pv2-num {
    font-family: var(--pv2-font);
    font-size: var(--pv2-t-chip);   /* 0.694rem */
    font-weight: 800;
    min-width: 32px;
    padding: 4px 8px;
    border-radius: 6px;
    text-align: center;
}
.sh-pv2-sum-title { font-family: var(--pv2-font); font-size: var(--pv2-t-section); font-weight: 600; }  /* 1rem */
.sh-pv2-sum-meta  { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }
.sh-pv2-hr { margin: var(--pv2-s2) 0; }

/* ── KV grid ─────────────────────────────────────────────────── */
.sh-pv2-kv {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--pv2-s2) var(--pv2-s3);
}
.sh-pv2-kv-label { font-family: var(--pv2-font); font-size: var(--pv2-t-chip);    letter-spacing: 0.07em; }  /* 0.694rem */
.sh-pv2-kv-val   { font-family: var(--pv2-font); font-size: var(--pv2-t-body);    font-weight: 500; }         /* 0.833rem */

/* ── Rating bars ─────────────────────────────────────────────── */
.sh-pv2-rating-grid { gap: var(--pv2-s1) var(--pv2-s6); }
.sh-pv2-rbar-row    { gap: 4px; }
.sh-pv2-rbar-label  { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }   /* 0.694rem */
.sh-pv2-rbar-val    { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }   /* 0.833rem */
.sh-pv2-rbar-track  { height: 6px; }

/* ── Reviews ─────────────────────────────────────────────────── */
.sh-pv2-review          { padding: var(--pv2-s2) 0; }
.sh-pv2-review-header   { gap: var(--pv2-s1); margin-bottom: var(--pv2-s1); }
.sh-pv2-review-hospital { font-family: var(--pv2-font); font-size: var(--pv2-t-body);    font-weight: 600; }
.sh-pv2-review-text     { font-family: var(--pv2-font); font-size: var(--pv2-t-body);    line-height: 1.65; }
.sh-pv2-review-date     { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }
.sh-pv2-review-job      { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }

/* ── Work history ────────────────────────────────────────────── */
.sh-pv2-work         { padding: var(--pv2-s2) 0; gap: 0 var(--pv2-s2); }
.sh-pv2-work-title   { font-family: var(--pv2-font); font-size: var(--pv2-t-body);    font-weight: 600; }
.sh-pv2-work-employer{ font-family: var(--pv2-font); font-size: var(--pv2-t-body); }
.sh-pv2-work-dates   { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }

/* ── Certs / shift chips ──────────────────────────────────────── */
.sh-pv2-cert       { font-family: var(--pv2-font); font-size: var(--pv2-t-body); gap: var(--pv2-s1); }
.sh-pv2-shift-chips{ gap: var(--pv2-s1); }
.sh-pv2-shift-chip { padding: 4px 12px; font-family: var(--pv2-font); font-size: var(--pv2-t-chip); border-radius: var(--pv2-r-pill); }

/* ── Calendar ─────────────────────────────────────────────────── */
.sh-pv2-cal-months       { gap: var(--pv2-s3); }
.sh-pv2-cal-month-label  { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); margin-bottom: var(--pv2-s1); }
.sh-pv2-cal-dow          { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }
.sh-pv2-cal-btn          { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }
.sh-pv2-cal-leg-item     { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }
.sh-pv2-cal-toggle       { gap: 4px; }

/* ── Avail list ───────────────────────────────────────────────── */
.sh-pv2-avail-period { padding: var(--pv2-s2) 0; }
.sh-pv2-avail-dates  { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }
.sh-pv2-avail-meta   { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }
.sh-pv2-avail-excl   { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }
.sh-pv2-avail-pensum { font-family: var(--pv2-font); font-size: var(--pv2-t-chip); }
.sh-pv2-avail-empty-state strong { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }
.sh-pv2-avail-empty-state p      { font-family: var(--pv2-font); font-size: var(--pv2-t-body); }

/* Trust chips — slightly larger border-radius to match Satoshi's geometry */
.sh-pv2-badge { font-family: var(--pv2-font); }

/* Debug */
.sh-pv2-debug { font-size: 0.75rem; line-height: 1.7; }

/* ════════════════════════════════════════════════════════════════
   MATCH CARD — Pipeline Command Center (.sh-mc-*)
   Decision UI: Identity first. Availability = ONLY color element.
   Max 5 visible elements. No decorative color. No badges.
   ════════════════════════════════════════════════════════════════ */

/* ── Card body ───────────────────────────────────────────────── */
.sh-mc-body {
    padding: 1rem 1.125rem 0.875rem;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

/* ── ZONE 1 — Identity + Availability ───────────────────────── */
.sh-mc-z1 {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* ── Avatar Wrap: Ring + Photo/Initials + Status-Dot ─────────── */
.sh-mc-avatar-wrap {
    position: relative;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
}

/* Avatar circle: ring = colored border, inner = neutral white */
.sh-mc-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border: 2.5px solid #94a3b8; /* default: unknown = grey */
    background: #f8fafc;
    overflow: hidden;
}

/* Photo inside ring */
.sh-mc-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

/* Initials fallback */
.sh-mc-avatar-initials {
    font-family: 'Satoshi', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
    line-height: 1;
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

/* Ring color = ONLY border (not background — image/initials visible inside)
   BFSG: color alone not sufficient → text label in .sh-mc-avail provides text signal */
.sh-mc-ring--ready   { border-color: var(--sh-availability-ready,   #10b981); border-width: 2.5px; }
.sh-mc-ring--soon    { border-color: var(--sh-availability-soon,    #f59e0b); border-width: 2.5px; }
.sh-mc-ring--busy    { border-color: var(--sh-operational-busy,     #a8956b); border-width: 2px; }
.sh-mc-ring--unknown { border-color: var(--sh-availability-unknown, #94a3b8); border-width: 2px; }

/* sh-fk-avatar-ring uses background (padding-ring), not border — override for color classes */
.sh-fk-avatar-ring.sh-mc-ring--ready   { background: var(--sh-availability-ready,   #10b981); }
.sh-fk-avatar-ring.sh-mc-ring--soon    { background: var(--sh-availability-soon,    #f59e0b); }
.sh-fk-avatar-ring.sh-mc-ring--busy    { background: var(--sh-operational-busy,     #a8956b); }
.sh-fk-avatar-ring.sh-mc-ring--unknown { background: var(--sh-availability-unknown, #94a3b8); }

/* lg (72px) dot — larger offset than 58px */
.sh-fk-avatar-ring--lg ~ .sh-mc-status-dot,
.sh-fk-avatar-wrap:has(.sh-fk-avatar-ring--lg) .sh-mc-status-dot {
    width: 15px; height: 15px; bottom: 3px; right: 3px;
}

/* Status-Dot: small radio indicator on the ring (bottom-right) */
.sh-mc-status-dot {
    position: absolute;
    bottom: 1px;
    right: 1px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.06);
}
.sh-mc-status-dot--available_now    { background: var(--sh-availability-ready,   #10b981); animation: sh-dot-pulse 2s ease-in-out infinite; }
.sh-mc-status-dot--available_future { background: var(--sh-availability-soon,    #f59e0b); }
.sh-mc-status-dot--busy             { background: var(--sh-operational-busy,     #a8956b); } /* Busy ≠ Error — niemals rot */
.sh-mc-status-dot--unknown          { background: var(--sh-availability-unknown, #94a3b8); }

/* Pulse — nur für "sofort verfügbar": subtil, nicht ablenkend (CEO: keine Gamification) */
@keyframes sh-dot-pulse {
    0%   { box-shadow: 0 0 0 0   rgba(16, 185, 129, 0.55), 0 0 0 1px rgba(0,0,0,0.06); }
    60%  { box-shadow: 0 0 0 5px rgba(16, 185, 129, 0),    0 0 0 1px rgba(0,0,0,0.06); }
    100% { box-shadow: 0 0 0 0   rgba(16, 185, 129, 0),    0 0 0 1px rgba(0,0,0,0.06); }
}
/* BFSG: prefers-reduced-motion — Animation für User die das bevorzugen deaktivieren */
@media (prefers-reduced-motion: reduce) {
    .sh-mc-status-dot--available_now { animation: none; }
}

.sh-mc-z1-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.175rem;
}
.sh-mc-name {
    font-family: 'Satoshi', sans-serif;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sh-mc-profession {
    font-family: 'Satoshi', sans-serif;
    font-size: 0.775rem;
    font-weight: 400;
    color: var(--sh-text-secondary);
    line-height: 1.3;
}
.sh-mc-years {
    color: var(--sh-text-tertiary);
}

/* Availability text — right-aligned in Zone 1, only semantic color element */
.sh-mc-avail {
    font-family: 'Satoshi', sans-serif;
    font-size: 0.725rem;
    font-weight: 600;
    line-height: 1.2;
    flex-shrink: 0;
    align-self: flex-start;
    text-align: right;
    white-space: nowrap;
}
.sh-mc-avail--ready   { color: #059669; }
.sh-mc-avail--soon    { color: #b45309; }
.sh-mc-avail--busy    { color: #dc2626; }
.sh-mc-avail--unknown { color: #94a3b8; }
.sh-mc-impact-label {
    font-family: 'Satoshi', sans-serif;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #92400e;
    opacity: 0.75;
    margin-top: 0.125rem;
}

/* ── Score Ring — Hybrid: Ring + Number + Label (CEO spec) ──── */
.sh-score-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.sh-score-ring {
    position: relative;
    width: 72px;
    height: 72px;
    flex-shrink: 0;
}
.sh-score-ring svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}
.sh-ring-bg {
    fill: none;
    stroke: #e5e7eb;
    stroke-width: 6;
}
.sh-ring-fill {
    fill: none;
    stroke-width: 6;
    stroke-linecap: round;
}
.sh-score-value {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Satoshi', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
}
.sh-score-label {
    margin-top: 6px;
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #64748b;
    text-align: center;
    white-space: nowrap;
    line-height: 1.3;
}
/* Competition signal (Zeitdruck) */
.sh-score-competition {
    margin-top: 5px;
    font-family: 'Satoshi', sans-serif;
    font-size: 10.5px;
    font-weight: 500;
    color: #b45309;
    text-align: center;
    white-space: nowrap;
}
/* Small variant — match card Zone 2 (44px) */
.sh-score-ring--sm {
    width: 44px;
    height: 44px;
}
.sh-score-ring--sm .sh-score-value {
    font-size: 12px;
    font-weight: 700;
}
.sh-score-ring--sm ~ .sh-score-label,
.sh-mc-z2-score .sh-score-label {
    font-size: 11px;
    margin-top: 4px;
}

/* ── ZONE 2 — Match Score Ring + Trust lines ─────────────────── */
.sh-mc-z2 {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding-top: 10px;
    border-top: 1px solid var(--sh-border);
}
.sh-mc-z2-score {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.sh-mc-z2-trust {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-top: 4px;
}
.sh-trust-line {
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #374151;
    line-height: 1.45;
}
.sh-trust-line--local {
    color: #1e40af;
    font-weight: 600;
}

/* ── ZONE 3 — Risk Signal + 1 Primary CTA ───────────────────── */
/* ── Zone J — Job Anchor (kognitiver Anker: Pensum · Typ · Zeitraum) ── */
.sh-mc-job-anchor {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    padding: 7px 10px;
    background: var(--sh-surface-subtle, #f8fafc);
    border-radius: 8px;
    border: 1px solid var(--sh-border, #e2e8f0);
    row-gap: 2px;
}
.sh-mc-ja-pensum {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--sh-blue-900, #1e3a5f);
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 5px;
}
.sh-mc-ja-flex {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sh-mc-ja-flex--fix  { background: #dbeafe; color: #1d4ed8; }
.sh-mc-ja-flex--flex { background: #d1fae5; color: #065f46; }
.sh-mc-ja-dates {
    font-size: 12px;
    color: var(--sh-gray-600, #4b5563);
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 5px;
}
.sh-mc-ja-dur {
    font-size: 11px;
    color: var(--sh-gray-400, #9ca3af);
}

/* ── Zone S — Specialty Match Chips (✓ MUSS / ~ KANN) ─────────────── */
.sh-mc-spec-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.sh-mc-spec-chip {
    display: inline-flex;
    align-items: center;
    font-size: 11.5px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    line-height: 1.3;
    white-space: nowrap;
}
.sh-mc-spec-chip--must {
    background: rgba(22, 163, 74, 0.10);
    color: #15803d;
}
.sh-mc-spec-chip--optional {
    background: var(--sh-gray-100, #f1f5f9);
    color: var(--sh-gray-600, #4b5563);
}

/* ── Zone D — Dienste (kompakt) ────────────────────────────────────── */
.sh-mc-dienste {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
}
.sh-mc-dienste-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--sh-gray-400, #9ca3af);
    flex-shrink: 0;
}
.sh-mc-dienste-val {
    color: var(--sh-gray-700, #374151);
    font-weight: 500;
}

.sh-mc-z3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid var(--sh-border);
}
.sh-mc-z3-left {
    flex: 1;
    min-width: 0;
}
.sh-mc-z3-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.sh-risk-line {
    font-family: 'Satoshi', sans-serif;
    font-size: 11.5px;
    font-weight: 500;
    color: #b45309;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* Primary CTA — 1 per card */
.sh-mc-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 14px;
    border-radius: 8px;
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: 1.5px solid transparent;
    transition: all 0.15s ease;
    white-space: nowrap;
}
.sh-mc-cta--invite {
    background: #1d4ed8;
    color: #ffffff;
    border-color: #1d4ed8;
}
.sh-mc-cta--invite:hover {
    background: #1e40af;
    border-color: #1e40af;
}
.sh-mc-cta--secondary {
    background: transparent;
    color: #1d4ed8;
    border-color: #bfdbfe;
}
.sh-mc-cta--secondary:hover {
    background: #eff6ff;
}
.sh-mc-cta--done {
    background: transparent;
    color: #16a34a;
    border-color: #bbf7d0;
    font-size: 13px;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: 8px;
    border: 1.5px solid #bbf7d0;
    cursor: default;
}
/* Secondary profile link — understated text button */
.sh-mc-profile-link {
    background: none;
    border: none;
    padding: 0;
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #94a3b8;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sh-mc-profile-link:hover {
    color: #6b7280;
}

/* ── 3. Skills (neutral chips only) ─────────────────────────── */
.sh-mc-skills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.sh-mc-skill {
    display: inline-flex;
    align-items: center;
    font-family: 'Satoshi', sans-serif;
    font-size: 0.7rem;
    font-weight: 500;
    padding: 0.2rem 0.55rem;
    border-radius: 8px;
    border: 1px solid var(--sh-border);
    background: var(--sh-surface-subtle);
    color: var(--sh-text-secondary);
    white-space: nowrap;
}
.sh-mc-skill--more {
    border-color: transparent;
    background: transparent;
    color: var(--sh-text-tertiary);
    padding-left: 0;
}

/* ── 5. Timeline (collapsed drawer) ─────────────────────────── */
.sh-mc-timeline-toggle {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: none;
    border: none;
    padding: 0.35rem 0;
    cursor: pointer;
    font-family: 'Satoshi', sans-serif;
    font-size: 0.725rem;
    font-weight: 500;
    color: var(--sh-text-tertiary);
    border-top: 1px solid var(--sh-border);
    width: 100%;
    text-align: left;
    transition: color 0.15s;
}
.sh-mc-timeline-toggle:hover { color: var(--sh-text-secondary); }
.sh-mc-timeline-chevron {
    margin-left: auto;
    font-size: 0.6rem;
    transition: transform 0.2s;
}
.sh-mc-timeline-toggle--open .sh-mc-timeline-chevron { transform: rotate(180deg); }
.sh-mc-timeline-nudge {
    font-size: 0.625rem;
    font-weight: 600;
    background: #fef3c7;
    color: #92400e;
    border-radius: 99px;
    padding: 0.1rem 0.4rem;
}
.sh-mc-timeline-drawer {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding-bottom: 0.25rem;
}

/* ════════════════════════════════════════════════════════════════
   FK DETAIL COMPONENT — Decision UI (Drawer + Standalone)
   Identity → Actions → Facts → Skills — Apple/Linear-level polish
   ════════════════════════════════════════════════════════════════ */

/* ── Outer Wrapper ─────────────────────────────────────────────── */
.sh-fk-detail {
    display: flex;
    flex-direction: column;
}

/* ── Identity Header ───────────────────────────────────────────── */
.sh-fk-identity-header {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--sh-border);
    margin-bottom: 1.25rem;
}
.sh-fk-identity-body {
    flex: 1;
    min-width: 0;
}
.sh-fk-identity-name {
    font-size: 1.075rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1.2;
    margin-bottom: 0.2rem;
}
.sh-fk-identity-role {
    font-size: 0.825rem;
    color: var(--sh-text-secondary);
    margin-bottom: 0.3rem;
}
.sh-fk-identity-meta {
    font-size: 0.72rem;
    color: var(--sh-text-tertiary);
    margin-top: 0.25rem;
}
.sh-fk-score-badge-wrap {
    flex-shrink: 0;
    text-align: center;
    padding-top: 0.125rem;
}
.sh-fk-score-badge {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1;
}
.sh-fk-score-badge-label {
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sh-text-tertiary);
    margin-top: 0.1rem;
}

/* ── Actions Zone ──────────────────────────────────────────────── */
.sh-fk-actions {
    margin-bottom: 1.25rem;
}
.sh-fk-actions-primary {
    margin-bottom: 0.5rem;
}
.sh-fk-actions-secondary {
    display: flex;
    gap: 0.5rem;
}
/* Ghost action links — secondary, not competing with primary */
.sh-fk-actions-ghost {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 2px;
}
.sh-btn-ghost-link {
    background: none;
    border: none;
    padding: 4px 6px;
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #94a3b8;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    line-height: 1;
}
.sh-btn-ghost-link:hover {
    color: #64748b;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sh-btn-ghost-link i { font-size: 11px; }
.sh-btn-ghost-link:disabled { opacity: 0.4; cursor: not-allowed; }
.sh-btn-ghost-link.sh-btn--saved { color: #f59e0b; }
.sh-btn-ghost-link.sh-btn--saved:hover { color: #d97706; text-decoration: none; }

/* ── Match Card Star Button — hidden (gamification removed per CEO audit) */
.sh-mc-star-btn { display: none !important; }

/* Card must be position:relative for the star to anchor */
.sh-card.sh-mc { position: relative; }

/* ── Buttons (fk-detail variant) ───────────────────────────────── */
.sh-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    border: none;
    border-radius: var(--sh-radius-md);
    cursor: pointer;
    padding: 0.625rem 1rem;
    transition: background 0.15s, box-shadow 0.15s, opacity 0.15s;
    white-space: nowrap;
    text-decoration: none;
    line-height: 1.4;
}
.sh-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.sh-btn:active:not(:disabled) { transform: scale(0.97); }
.sh-btn--full { width: 100%; }

.sh-btn-primary {
    flex: 2;
    background: var(--sh-blue-600, #2563eb);
    color: #fff;
    font-weight: 600;
    letter-spacing: 0.015em;
}
.sh-btn-primary:hover:not(:disabled) { background: var(--sh-blue-700, #1d4ed8); }

.sh-btn-secondary {
    flex: 1;
    background: var(--sh-surface-subtle, #f8fafc);
    border: 1px solid var(--sh-border, #e2e8f0);
    color: var(--sh-text-secondary, #475569);
    opacity: 0.85;
}
.sh-btn-secondary:hover:not(:disabled) { background: var(--sh-surface-hover, #f1f5f9); opacity: 1; }

.sh-btn-ghost {
    flex: 1;
    background: transparent;
    border: 1px solid var(--sh-border, #e2e8f0);
    color: var(--sh-text-secondary, #475569);
}
.sh-btn-ghost:hover:not(:disabled) { background: var(--sh-surface-subtle, #f8fafc); }

.sh-btn-success {
    flex: 2;
    background: #f0fdf4;
    border: 1.5px solid var(--sh-green-600, #16a34a);
    color: var(--sh-green-600, #16a34a);
    font-weight: 600;
    cursor: default;
}
.sh-btn-success:disabled { opacity: 1; }

.sh-btn-skip {
    flex: 1;
    color: var(--sh-text-secondary, #475569);
    font-size: 0.8125rem;
}

/* ══ DECISION HERO — CEO Decision Machine ══════════════════════ */
.sh-decision-hero {
    margin: 0 0 1rem;
    padding: 14px 16px;
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
    border: 1.5px solid rgba(29, 78, 216, 0.15);
    border-radius: 14px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
/* Score ring column (left) */
.sh-dh-score-col {
    flex-shrink: 0;
    padding-top: 2px;
}
/* Content column (right) */
.sh-dh-content {
    flex: 1;
    min-width: 0;
}
/* Operative Kategorie + Trust — oberste Zeile im Decision Hero */
.sh-dh-op-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

/* Guidance text — assertive, context-driven (replaces "Entscheidungshilfe") */
.sh-dh-guidance {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 8px;
    line-height: 1.3;
}
.sh-dh-headline {
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin-bottom: 6px;
}
.sh-dh-bullets {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.sh-dh-bullet {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}
.sh-dh-bullet--ok      { color: #16a34a; }
.sh-dh-bullet--warn    { color: #b45309; }
.sh-dh-bullet--neutral { color: #6b7280; }

/* ══ TRUST PANEL ════════════════════════════════════════════════ */
.sh-trust-panel {
    margin: 0 0 1rem;
    padding: 12px 14px;
    background: rgba(22, 163, 74, 0.06);
    border: 1px solid rgba(22, 163, 74, 0.18);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sh-tp-line {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #166534;
    line-height: 1.45;
}
.sh-tp-line--local {
    font-weight: 600;
    color: #1e40af;
}
.sh-tp-line--neutral {
    color: #6b7280;
    font-weight: 400;
}

/* ══ MATCH BULLETS (compressed, no bars) ═══════════════════════ */
.sh-match-bullets {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sh-mb-line {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #16a34a;
    line-height: 1.4;
}

/* ══ RISK — Zu beachten ═════════════════════════════════════════ */
.sh-fk-section-title--warn {
    color: #b45309 !important;
}
.sh-risk-bullets {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sh-rb-line {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #92400e;
    line-height: 1.4;
}

/* Undo toast */
.sh-undo-toast {
    position: fixed;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9998;
    background: #fff;
    border: 1px solid var(--sh-border, #e2e8f0);
    border-radius: var(--sh-radius-md, 10px);
    box-shadow: 0 8px 24px rgba(15,23,42,0.12);
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
    color: var(--sh-text-primary, #0f172a);
    min-width: 280px;
    max-width: 400px;
    overflow: hidden;
}
.sh-undo-btn {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--sh-blue-600, #2563eb);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    white-space: nowrap;
    margin-left: auto;
    flex-shrink: 0;
}
.sh-undo-btn:hover { color: var(--sh-blue-700, #1d4ed8); }
.sh-undo-progress-wrap {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 3px;
    background: var(--sh-gray-100, #f1f5f9);
}
.sh-undo-progress-bar {
    height: 100%;
    background: var(--sh-green-600, #059669);
    border-radius: 0 0 var(--sh-radius-md) var(--sh-radius-md);
}

/* ── Browse-mode hint ──────────────────────────────────────────── */
.sh-fk-hint {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.775rem;
    color: var(--sh-text-tertiary);
    padding: 0.5rem 0.75rem;
    background: var(--sh-surface-subtle);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm, 6px);
    margin-bottom: 0.875rem;
}

/* ── Sections ──────────────────────────────────────────────────── */
.sh-fk-section {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--sh-border);
}
.sh-fk-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.sh-fk-section-title {
    font-size: 0.695rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--sh-text-tertiary);
    margin-bottom: 0.625rem;
}
.sh-fk-section--muted {
    font-size: 0.75rem;
    color: var(--sh-text-tertiary);
    line-height: 1.5;
}

/* ── Key-Value Grid (replaces table) ───────────────────────────── */
.sh-fk-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 1.25rem;
}
.sh-fk-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.sh-fk-label {
    font-size: 0.675rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sh-text-tertiary);
}
.sh-fk-value {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sh-text-primary);
}
.sh-fk-value--positive { color: var(--sh-green-600, #059669); }

/* ── Operative Substanz (Sprint B) ────────────────────────────────
   Spitaltyp-Spektrum + Wiedereinsatz-Signal. Token-konform, neutrale Optik —
   Spital-Affinität als einziges Deep-Atlantic-Element. */
.sh-fk-substance-items {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.25rem;
}
.sh-fk-substance-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--sh-gray-700, #334155);
    padding: 0.3rem 0.625rem;
    border-radius: 4px;
    background: var(--sh-gray-50, #f8fafc);
    border: 1px solid var(--sh-gray-100, #f1f5f9);
    line-height: 1.3;
}
.sh-fk-substance-item i {
    font-size: 0.75rem;
    color: var(--sh-gray-500, #64748b);
}
.sh-fk-substance--own {
    background: #eff6ff;
    border-color: #dbeafe;
    color: #1e3a5f;
    font-weight: 600;
}
.sh-fk-substance--own i { color: #1e3a5f; }
.sh-fk-substance--rebook {
    background: #ecfdf5;
    border-color: #d1fae5;
    color: #047857;
}
.sh-fk-substance--rebook i { color: #047857; }
.sh-fk-substance--types,
.sh-fk-substance--depl {
    background: var(--sh-white, #fff);
    border-color: var(--sh-gray-200, #e2e8f0);
}

/* ── Pill Chips ────────────────────────────────────────────────── */
.sh-fk-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}
.sh-chip {
    font-size: 0.725rem;
    padding: 0.25rem 0.625rem;
    background: var(--sh-surface-subtle);
    border: 1px solid var(--sh-border);
    border-radius: 999px;
    color: var(--sh-text-secondary);
    white-space: nowrap;
}
.sh-chip-toggle {
    font-size: 0.725rem;
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
    border: 1px solid var(--sh-blue-300, #93c5fd);
    color: var(--sh-blue-600, #2563eb);
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.5;
}
.sh-chip-toggle:hover { background: var(--sh-blue-50, #eff6ff); }

/* ── CV / back links ───────────────────────────────────────────── */
.sh-fk-cv-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.825rem;
    color: var(--sh-text-secondary);
    text-decoration: none;
}
.sh-fk-cv-link:hover { color: var(--sh-blue-600, #2563eb); }

/* ── Availability windows (fk_detail_spital — both drawer + standalone) ── */
.sh-fk-avail-windows { display: flex; flex-direction: column; gap: 0.5rem; }
.sh-fk-avail-window {
    display: flex; align-items: center; gap: 0.6rem;
    padding: 0.5rem 0.75rem;
    background: var(--sh-gray-50, #f9fafb);
    border-radius: var(--sh-radius-sm, 8px);
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    font-size: 0.875rem;
}
.sh-fk-avail-window--active {
    background: #f0fdf4;
    border-color: #bbf7d0;
}
.sh-fk-avail-window-dot {
    width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
    background: var(--sh-gray-300, #d1d5db);
}
.sh-fk-avail-window--active .sh-fk-avail-window-dot { background: var(--sh-green-600, #16a34a); }
.sh-fk-avail-window-range { color: var(--sh-gray-700, #374151); font-weight: 500; }
.sh-fk-avail-window-pensum {
    color: var(--sh-gray-600, #4b5563); font-size: 0.8rem;
    background: var(--sh-gray-200, #e5e7eb); border-radius: 4px; padding: 0 0.4em;
}

/* ── Standalone mode: card wrappers per block ──────────────────── */
.sh-fk-detail--standalone .sh-fk-identity-header,
.sh-fk-detail--standalone .sh-fk-actions,
.sh-fk-detail--standalone .sh-fk-section {
    background: var(--sh-surface-card);
    border-radius: var(--sh-radius-lg);
    border: 1px solid var(--sh-border);
    box-shadow: var(--sh-shadow-sm);
    padding: 1.25rem;
    margin-bottom: 0.875rem;
    /* override section's own border-bottom separator — card has its own border */
    border-bottom: 1px solid var(--sh-border);
    padding-bottom: 1.25rem;
}
.sh-fk-detail--standalone .sh-fk-identity-header {
    margin-bottom: 0; /* handled by .sh-fk-identity-header + card mb */
    border-bottom: 1px solid var(--sh-border);
    padding-bottom: 1.25rem;
}
/* In standalone, sections don't need section-level dividers (card provides visual sep) */
.sh-fk-detail--standalone .sh-fk-section { border-bottom: none; }

/* ── Drawer mode: flat content with padding ────────────────────── */
.sh-drawer-content {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    max-width: 920px;
}
@media (min-width: 1200px) {
    .sh-drawer-content { max-width: 1040px; }
}
.sh-drawer-content .sh-fk-detail {
    flex: 1;
}
/* Back button — partial/drawer mode only */
.sh-drawer-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0 0 0.875rem 0;
    font-size: 13px;
    color: var(--sh-blue-600, #2563eb);
    cursor: pointer;
    font-weight: 500;
}
.sh-drawer-back:hover { color: var(--sh-blue-900, #1e3a8a); text-decoration: underline; }
/* Microcopy lines in Decision Hero */
.sh-dh-microcopy-primary {
    font-size: 13px;
    color: #374151;
    margin-top: 4px;
    line-height: 1.4;
}
.sh-dh-microcopy-secondary {
    font-size: 12px;
    color: #6b7280;
    margin-top: 2px;
    line-height: 1.4;
}

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE — 12 → 8 → 4 Column Breakpoints
   ════════════════════════════════════════════════════════════════ */

/* Tablet 8-column: ≤ 1023px ─────────────────────────────────── */
@media (max-width: 1023px) {
    /* Band: avatar + content stacked, actions below (2×8 = 16-col equiv) */
    .sh-pv2-band {
        grid-template-columns: 80px 1fr;  /* 2 of 8 cols = avatar */
        grid-template-rows: auto auto;
        padding: var(--pv2-s3) var(--pv2-s3) var(--pv2-s2);
        gap: var(--pv2-s2);
    }
    .sh-pv2-actions {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        min-width: 0;
    }
    /* KV: 3 items/row (each = ~2.7/8 cols) */
    .sh-pv2-kv { grid-template-columns: repeat(3, 1fr); }
    /* Strip: 2 columns */
    .sh-pv2-strip { grid-template-columns: repeat(2, 1fr); }
    .sh-pv2-rating-grid { grid-template-columns: repeat(2, 1fr); gap: var(--pv2-s1) var(--pv2-s4); }
}

/* Mobile 4-column: ≤ 767px ──────────────────────────────────── */
@media (max-width: 767px) {
    .sh-pv2-band {
        grid-template-columns: auto 1fr;
        padding: var(--pv2-s2);
        gap: var(--pv2-s2);
    }
    .sh-pv2-avatar-ring  { width: 72px; height: 72px; }  /* 9×8pt */
    .sh-pv2-name         { font-size: 1.5rem; }
    .sh-pv2-strip        { grid-template-columns: 1fr; padding: var(--pv2-s2); gap: var(--pv2-s2); }
    .sh-pv2-kv           { grid-template-columns: repeat(2, 1fr); gap: var(--pv2-s2); } /* 2 of 4 cols each */
    .sh-pv2-rating-grid  { grid-template-columns: 1fr; gap: var(--pv2-s1); }
    .sh-pv2-section-body { padding: var(--pv2-s2); }
    .sh-pv2-summary      { padding: var(--pv2-s2); }
    .sh-pv2-cal-months   { grid-template-columns: 1fr; }  /* single col on mobile */
}

/* ════════════════════════════════════════════════════════════════
   FAQ PAGE — SH24 native design (ersetzt Bootstrap accordion)
   ════════════════════════════════════════════════════════════════ */

.sh-faq-container {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 1rem 3rem;
}

.sh-faq-container .sh-dashboard-header {
    border-radius: var(--sh-radius-card);
    margin-bottom: 2rem;
    background:
        linear-gradient(135deg, rgba(15,23,42,0.82) 0%, rgba(30,58,95,0.72) 60%, rgba(29,78,216,0.6) 100%),
        url('/swisshunter24/assets/images/clinical_atmosphere.jpg') center / cover no-repeat;
}

.sh-faq-body {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* Section */
.sh-faq-section {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    box-shadow: 0 2px 8px rgba(15,23,42,0.06);
    overflow: hidden;
}

.sh-faq-section-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.875rem 1.25rem;
    background: var(--sh-blue-900, #1e3a5f);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.sh-faq-section-header i {
    font-size: 0.875rem;
    opacity: 0.8;
}

.sh-faq-group {
    display: flex;
    flex-direction: column;
}

/* FAQ Item — uses native <details>/<summary> */
.sh-faq-item {
    border-bottom: 1px solid var(--sh-border);
}

.sh-faq-item:last-child {
    border-bottom: none;
}

.sh-faq-q {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    cursor: pointer;
    list-style: none;
    transition: background 0.12s;
    position: relative;
}

.sh-faq-q::-webkit-details-marker { display: none; }
.sh-faq-q::marker { display: none; }

.sh-faq-q::after {
    content: '\f078'; /* fa-chevron-down */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.7rem;
    color: var(--sh-text-tertiary);
    margin-left: auto;
    transition: transform 0.2s;
}

.sh-faq-item[open] > .sh-faq-q::after {
    transform: rotate(180deg);
}

.sh-faq-item[open] > .sh-faq-q {
    color: var(--sh-blue-600, #2563eb);
    background: rgba(37,99,235,0.04);
}

.sh-faq-q:hover {
    background: var(--sh-surface-hover);
}

.sh-faq-q > i {
    font-size: 0.875rem;
    color: var(--sh-text-tertiary);
    flex-shrink: 0;
    width: 1rem;
    text-align: center;
}

.sh-faq-item[open] > .sh-faq-q > i {
    color: var(--sh-blue-600, #2563eb);
}

/* Answer */
.sh-faq-a {
    padding: 0.25rem 1.25rem 1.25rem 1.25rem;
    font-size: 0.9rem;
    color: var(--sh-text-secondary);
    line-height: 1.65;
}

.sh-faq-a p { margin: 0 0 0.75rem; }
.sh-faq-a p:last-child { margin-bottom: 0; }

.sh-faq-a ul, .sh-faq-a ol {
    margin: 0 0 0.75rem;
    padding-left: 1.25rem;
}

.sh-faq-a li { margin-bottom: 0.3rem; }

.sh-faq-steps {
    counter-reset: steps;
    list-style: none;
    padding-left: 0;
}

.sh-faq-steps li {
    counter-increment: steps;
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.sh-faq-steps li::before {
    content: counter(steps);
    min-width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: var(--sh-blue-900, #1e3a5f);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Callout */
.sh-faq-callout {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    background: rgba(37,99,235,0.06);
    border: 1px solid rgba(37,99,235,0.15);
    border-radius: var(--sh-radius-sm);
    padding: 0.75rem 1rem;
    margin-top: 0.875rem;
    font-size: 0.875rem;
    color: var(--sh-blue-900, #1e3a5f);
}

.sh-faq-callout--affirm {
    background: rgba(16,185,129,0.06);
    border-color: rgba(16,185,129,0.2);
    color: #065f46;
}

.sh-faq-callout i { margin-top: 0.1rem; flex-shrink: 0; }

/* Check icon */
.sh-faq-check {
    color: #059669;
    margin-right: 0.3rem;
}

/* Inline link */
.sh-faq-link {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--sh-blue-600, #2563eb);
    text-decoration: none;
}
.sh-faq-link:hover { text-decoration: underline; }

/* Contact block */
.sh-faq-contact {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    padding: 1.25rem 1.5rem;
    box-shadow: 0 2px 8px rgba(15,23,42,0.06);
}

.sh-faq-contact-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(37,99,235,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--sh-blue-600, #2563eb);
    font-size: 1.1rem;
    flex-shrink: 0;
}

.sh-faq-contact-title {
    font-weight: 700;
    font-size: 0.9375rem;
    color: var(--sh-text-primary);
    margin-bottom: 0.2rem;
}

.sh-faq-contact-text {
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
}

.sh-faq-contact-text a {
    color: var(--sh-blue-600, #2563eb);
    font-weight: 600;
    text-decoration: none;
}

.sh-faq-contact-text a:hover { text-decoration: underline; }

.sh-faq-muted {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
}

.sh-faq-muted a {
    color: var(--sh-blue-600, #2563eb);
}

@media (max-width: 640px) {
    .sh-faq-container { padding: 0 0.75rem 2rem; }
    .sh-faq-q { padding: 0.8rem 1rem; font-size: 0.875rem; }
    .sh-faq-a { padding: 0.25rem 1rem 1rem; }
}

/* ── Job Invitations (FK view) ──────────────────────────────── */
.sh-section-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sh-text-secondary);
}

.sh-inv-card {
    background: var(--sh-surface-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-card);
    box-shadow: var(--sh-card-shadow);
    margin-bottom: 0.875rem;
    border-left: 4px solid var(--sh-gray-300);
    overflow: hidden;
    transition: box-shadow 0.15s ease;
}
.sh-inv-card:hover { box-shadow: var(--sh-card-shadow-hover); }
.sh-inv-card--pending  { border-left-color: var(--sh-amber-500); }
.sh-inv-card--accepted { border-left-color: var(--sh-green-600); }
.sh-inv-card--declined { border-left-color: var(--sh-gray-400); }
.sh-inv-card--expired  { border-left-color: var(--sh-gray-300); }

.sh-inv-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 1.25rem 0.75rem;
}

.sh-inv-eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sh-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.25rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.sh-inv-eyebrow i { color: var(--sh-blue-600); font-size: 0.7rem; }
.sh-inv-eyebrow-sep { color: var(--sh-gray-400); }

.sh-inv-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--sh-text-primary);
    line-height: 1.3;
}
.sh-inv-title--sm { font-size: 0.9375rem; font-weight: 600; }

.sh-inv-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.25rem 0.6rem;
    border-radius: 99px;
    white-space: nowrap;
    flex-shrink: 0;
}
.sh-inv-status-badge--pending  { background: rgba(245,158,11,0.1); color: #92400e; }
.sh-inv-status-badge--accepted { background: rgba(22,163,74,0.1);  color: #14532d; }
.sh-inv-status-badge--declined { background: var(--sh-gray-100); color: var(--sh-gray-600); }
.sh-inv-status-badge--expired  { background: var(--sh-gray-100); color: var(--sh-gray-500); }

.sh-inv-body {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    padding: 0 1.25rem 1rem;
    flex-wrap: wrap;
}

.sh-inv-meta {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    flex: 1;
}
.sh-inv-meta-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
}
.sh-inv-meta-item i { color: var(--sh-blue-600); width: 14px; text-align: center; }

.sh-inv-rate {
    background: var(--sh-page-bg);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-sm);
    padding: 0.75rem 1.25rem;
    text-align: center;
    min-width: 160px;
}
.sh-inv-rate-amount {
    font-size: 1.625rem;
    font-weight: 800;
    color: var(--sh-green-600, #16a34a);
    line-height: 1.2;
}
.sh-inv-rate-label {
    font-size: 0.75rem;
    color: var(--sh-text-tertiary);
    margin-top: 2px;
}
.sh-inv-rate-base {
    font-size: 0.75rem;
    text-decoration: line-through;
    color: var(--sh-gray-400);
    margin-top: 0.375rem;
}
.sh-inv-rate-adj {
    font-size: 0.75rem;
    color: var(--sh-red-500, #ef4444);
    font-weight: 500;
}

.sh-inv-message {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    margin: 0 1.25rem 0.875rem;
    padding: 0.75rem 1rem;
    background: var(--sh-page-bg);
    border-left: 2px solid var(--sh-blue-600);
    border-radius: 0 var(--sh-radius-sm) var(--sh-radius-sm) 0;
    font-size: 0.875rem;
    color: var(--sh-text-secondary);
}
.sh-inv-message i { color: var(--sh-blue-600); flex-shrink: 0; margin-top: 3px; }
.sh-inv-message p { margin: 0; }

.sh-inv-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--sh-border);
    background: var(--sh-gray-50);
    flex-wrap: wrap;
}

.sh-inv-timestamp {
    font-size: 0.75rem;
    color: var(--sh-text-tertiary);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.sh-inv-ref {
    font-size: 0.6875rem;
    color: var(--sh-gray-400, #9ca3af);
    font-family: ui-monospace, 'SF Mono', monospace;
    letter-spacing: 0.02em;
    margin-top: 0.125rem;
    display: block;
}

.sh-inv-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Danger variant for sh-card-action-btn */
.sh-card-action-btn--danger {
    border-color: var(--sh-red-500, #ef4444);
    color: var(--sh-red-500, #ef4444);
}
.sh-card-action-btn--danger:hover {
    background: var(--sh-red-500, #ef4444);
    color: #fff;
}

.sh-inv-card--compact .sh-inv-header { padding-bottom: 1rem; }

@media (max-width: 640px) {
    .sh-inv-body { flex-direction: column; gap: 0.75rem; }
    .sh-inv-rate { min-width: unset; width: 100%; }
    .sh-inv-footer { flex-direction: column; align-items: flex-start; }
    .sh-inv-actions { width: 100%; }
    .sh-inv-actions .sh-card-action-btn { flex: 1; justify-content: center; }
}

/* ================================================================
   SH24 DESIGN SYSTEM V2 — CEO Reference Components (2026-03)
   Satoshi font · Minor Third scale · Unified tokens
   These components are the canonical reference for ALL pages.
   ================================================================ */

/* ── sh-dashboard wrapper ─────────────────────────────────────── */
.sh-dashboard {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
    font-family: 'Satoshi', -apple-system, BlinkMacSystemFont, sans-serif;
    font-weight: 500;
    color: var(--sh-text, #0f172a);
}

/* ── sh-section spacer ────────────────────────────────────────── */
.sh-section {
    margin-top: 1.5rem;
}

/* ── sh-hero (card-style, not full-bleed) ─────────────────────── */
.sh-hero {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%);
    border-radius: 20px;
    padding: 2.5rem 2.5rem 2rem;
    color: #fff;
    position: relative;
    overflow: hidden;
}

.sh-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/swisshunter24/assets/images/clinical_atmosphere.jpg') center/cover no-repeat;
    opacity: 0.12;
    border-radius: 20px;
}

.sh-hero-eyebrow {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.65;
    margin-bottom: 0.5rem;
    position: relative;
}

.sh-hero-title {
    font-size: var(--sh-text-xl, 1.728rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.022em;
    margin: 0 0 0.75rem;
    position: relative;
}

.sh-hero-meta {
    font-size: var(--sh-text-sm, 0.833rem);
    opacity: 0.75;
    font-weight: 500;
    position: relative;
    line-height: 1.6;
}

.sh-hero-meta .is-highlight {
    color: #fbbf24;
    opacity: 1;
    font-weight: 600;
}

/* ── sh-lookup ────────────────────────────────────────────────── */
.sh-lookup {
    background: var(--sh-card, #fff);
    border: 1.5px solid var(--sh-gray-200, #e2e8f0);
    border-radius: 12px;
    box-shadow: var(--sh-shadow-sm);
}

.sh-lookup-input-wrap {
    display: flex;
    align-items: center;
    padding: 0 1rem;
    gap: 0.625rem;
}

.sh-lookup-input-wrap:focus-within {
    border-color: var(--sh-accent, #1e40af);
    box-shadow: 0 0 0 3px rgba(30,64,175,0.1);
    border-radius: 12px;
}

.sh-lookup-icon {
    color: var(--sh-muted, #64748b);
    font-size: 0.875rem;
    flex-shrink: 0;
}

.sh-lookup-input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: var(--sh-text-base, 1rem);
    font-family: inherit;
    font-weight: 500;
    color: var(--sh-text, #0f172a);
    padding: 0.875rem 0;
}

.sh-lookup-input::placeholder { color: #94a3b8; font-weight: 400; }

.sh-lookup-hint {
    font-size: 0.6875rem;
    font-family: ui-monospace, 'SF Mono', monospace;
    color: var(--sh-muted, #64748b);
    background: var(--sh-bg, #f8fafc);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    border-radius: 4px;
    padding: 0.15rem 0.4rem;
    flex-shrink: 0;
}

/* sh-recent chips */
.sh-recent {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.375rem;
    padding: 0.625rem 1rem 0.75rem;
    border-top: 1px solid var(--sh-gray-100, #f1f5f9);
}

.sh-recent-label {
    font-size: var(--sh-text-xs, 0.694rem);
    color: var(--sh-muted, #64748b);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-right: 0.25rem;
}

.sh-chip {
    display: inline-flex;
    align-items: center;
    background: var(--sh-gray-100, #f1f5f9);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    color: var(--sh-text, #0f172a);
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s, border-color 0.12s;
    font-family: ui-monospace, 'SF Mono', monospace;
}

.sh-chip:hover {
    background: var(--sh-gray-200, #e2e8f0);
    color: var(--sh-text, #0f172a);
}

/* ── sh-priority-card ─────────────────────────────────────────── */
.sh-priority-card {
    background: var(--sh-card, #fff);
    border: 2px solid var(--sh-accent, #1e40af);
    border-radius: 16px;
    padding: 1.75rem 2rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    box-shadow: 0 2px 8px rgba(30,64,175,0.08);
}

.sh-priority-card.is-urgent {
    border-color: #ea580c;
    box-shadow: 0 2px 8px rgba(234,88,12,0.10);
    background: #fff7ed;
}

.sh-priority-card.is-clear {
    border-color: var(--sh-success, #16a34a);
    box-shadow: 0 2px 8px rgba(22,163,74,0.08);
    background: #f0fdf4;
}

.sh-priority-card.is-refined {
    border-color: #059669;
    box-shadow: 0 2px 8px rgba(5,150,105,0.12);
    background: #ecfdf5;
}

.sh-priority-card.is-empty {
    border-color: var(--sh-gray-200, #e2e8f0);
    border-style: dashed;
    box-shadow: none;
    background: var(--sh-bg, #f8fafc);
}

.sh-priority-label {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--sh-accent, #1e40af);
    background: #dbeafe;
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    flex-shrink: 0;
    white-space: nowrap;
    align-self: flex-start;
}

.sh-priority-card.is-urgent .sh-priority-label {
    color: #ea580c;
    background: #ffedd5;
}

.sh-priority-card.is-clear .sh-priority-label {
    color: var(--sh-success, #16a34a);
    background: #dcfce7;
}

.sh-priority-card.is-refined .sh-priority-label {
    color: #065f46;
    background: #a7f3d0;
}

.sh-priority-card.is-refined .sh-priority-text {
    color: #065f46;
}

.sh-btn-primary.is-refined {
    background: #059669;
    border-color: #059669;
}
.sh-btn-primary.is-refined:hover { background: #047857; border-color: #047857; }

.sh-priority-text {
    font-size: var(--sh-text-md, 1.2rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: var(--sh-text, #0f172a);
    flex: 1;
    min-width: 200px;
}

.sh-priority-card.is-clear .sh-priority-text {
    color: var(--sh-success, #16a34a);
}

.sh-priority-sub {
    font-size: var(--sh-text-sm, 0.833rem);
    font-weight: 400;
    color: var(--sh-muted, #64748b);
    margin-top: 0.2rem;
}

/* ── sh-btn ───────────────────────────────────────────────────── */
.sh-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.6875rem 1.25rem;
    border-radius: 8px;
    font-size: var(--sh-text-sm, 0.833rem);
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    border: 1.5px solid transparent;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s, transform 0.1s, box-shadow 0.15s;
    letter-spacing: -0.01em;
    flex-shrink: 0;
}

.sh-btn:active { transform: translateY(1px); }

.sh-btn-primary {
    background: var(--sh-accent, #1e40af);
    color: #fff;
    border-color: var(--sh-accent, #1e40af);
}

.sh-btn-primary:hover {
    background: #1e3a8a;
    border-color: #1e3a8a;
    color: #fff;
    box-shadow: 0 2px 8px rgba(30,64,175,0.25);
}

.sh-btn-secondary {
    background: var(--sh-card, #fff);
    color: var(--sh-text, #0f172a);
    border-color: var(--sh-gray-200, #e2e8f0);
}

.sh-btn-secondary:hover {
    background: var(--sh-bg, #f8fafc);
    border-color: var(--sh-gray-300, #cbd5e1);
    color: var(--sh-text, #0f172a);
}

.sh-btn-primary.is-urgent {
    background: #ea580c;
    border-color: #ea580c;
}
.sh-btn-primary.is-urgent:hover { background: #c2410c; border-color: #c2410c; }

/* ── sh-section-title ─────────────────────────────────────────── */
.sh-section-title {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sh-muted, #64748b);
    margin: 0 0 0.875rem;
}

/* ── sh-task (Control Tower task list) ───────────────────────── */
.sh-task-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sh-task {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--sh-card, #fff);
    padding: 1rem 1.25rem;
    border-radius: 12px;
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    gap: 1rem;
    text-decoration: none;
    color: var(--sh-text, #0f172a);
    box-shadow: var(--sh-shadow-sm);
    transition: border-color 0.12s, box-shadow 0.12s;
}

.sh-task:hover {
    border-color: var(--sh-gray-300, #cbd5e1);
    box-shadow: var(--sh-shadow-md);
    color: var(--sh-text, #0f172a);
}

.sh-task.is-urgent {
    border-left: 3px solid #ea580c;
    background: #fff7ed;
}

.sh-task-body {
    flex: 1;
}

.sh-task-label {
    font-size: var(--sh-text-base, 1rem);
    font-weight: 600;
    color: var(--sh-text, #0f172a);
    line-height: 1.4;
}

.sh-task.is-urgent .sh-task-label { color: #ea580c; }

.sh-task-meta {
    font-size: var(--sh-text-sm, 0.833rem);
    color: var(--sh-muted, #64748b);
    margin-top: 0.15rem;
}

/* ── sh-kpi-grid ──────────────────────────────────────────────── */
.sh-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.sh-kpi-card {
    background: var(--sh-card, #fff);
    padding: 1.5rem 1.25rem;
    border-radius: 14px;
    text-align: center;
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    box-shadow: var(--sh-shadow-sm);
    text-decoration: none;
    color: var(--sh-text, #0f172a);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s;
    display: block;
}

.sh-kpi-card:hover {
    border-color: var(--sh-gray-300, #cbd5e1);
    box-shadow: var(--sh-shadow-md);
    transform: translateY(-2px);
    color: var(--sh-text, #0f172a);
}

.sh-kpi-card.is-warning {
    border-color: var(--sh-warning, #f59e0b);
    border-top-width: 3px;
}

.sh-kpi-card.is-success {
    border-color: var(--sh-success, #16a34a);
    border-top-width: 3px;
}

.sh-kpi-number {
    font-size: var(--sh-text-2xl, 2.074rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
    margin-bottom: 0.375rem;
    color: var(--sh-text, #0f172a);
}

.sh-kpi-card.is-warning .sh-kpi-number { color: #d97706; }
.sh-kpi-card.is-success .sh-kpi-number { color: var(--sh-success, #16a34a); }

.sh-kpi-label {
    font-size: var(--sh-text-sm, 0.833rem);
    color: var(--sh-muted, #64748b);
    font-weight: 500;
}

.sh-kpi-action {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 600;
    color: var(--sh-gray-300, #cbd5e1);
    margin-top: 0.5rem;
    transition: color 0.15s;
    letter-spacing: 0.01em;
}
.sh-kpi-card:hover .sh-kpi-action { color: var(--sh-accent, #1e40af); }
.sh-kpi-card.is-warning:hover .sh-kpi-action { color: #d97706; }
.sh-kpi-card.is-success:hover .sh-kpi-action { color: var(--sh-success, #16a34a); }

/* ── sh-activity (simplified V2) ─────────────────────────────── */
.sh-activity-v2 .sh-activity-item {
    background: var(--sh-card, #fff);
    padding: 0.75rem 1rem;
    border-radius: 10px;
    font-size: var(--sh-text-sm, 0.833rem);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    display: flex;
    align-items: center;
    gap: 0.625rem;
    color: var(--sh-text, #0f172a);
}

/* Responsive ─────────────────────────────────────────────────── */
@media (max-width: 767px) {
    .sh-dashboard { padding: 1.25rem 1rem 2.5rem; }

    .sh-hero { padding: 1.75rem 1.5rem 1.5rem; border-radius: 16px; }
    .sh-hero-title { font-size: var(--sh-text-lg, 1.44rem); }

    .sh-priority-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        padding: 1.25rem 1.25rem;
    }
    .sh-priority-text { font-size: 1rem; min-width: unset; }
    .sh-btn { width: 100%; justify-content: center; }

    .sh-kpi-grid { grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }
    .sh-kpi-card { padding: 1rem 0.75rem; }
    .sh-kpi-number { font-size: 1.728rem; }
}

@media (max-width: 480px) {
    .sh-kpi-grid { grid-template-columns: repeat(3, 1fr); }
    .sh-kpi-number { font-size: 1.44rem; }
    .sh-kpi-label { font-size: 0.694rem; }
}

/* ── sh-section-header-row (title + more link inline) ─────────── */
.sh-section-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.625rem;
}
.sh-section-header-row .sh-section-title {
    margin-bottom: 0;
}
.sh-section-more-link {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 600;
    color: var(--sh-muted, #64748b);
    text-decoration: none;
    letter-spacing: 0.02em;
    white-space: nowrap;
    transition: color 0.15s;
}
.sh-section-more-link:hover { color: var(--sh-accent, #1e40af); }

/* ── sh-live-dot (class-based, was inline) ────────────────────── */
.sh-section-title .sh-live-dot {
    display: inline-block;
    width: 7px; height: 7px;
    border-radius: 50%;
    background: #16a34a;
    margin-right: 0.4rem;
    vertical-align: middle;
    animation: sh-pulse 2s infinite;
}

/* ── sh-activity V2 (structured classes) ─────────────────────── */

/* Card wrapper for the whole activity section */
.sh-activity-card {
    background: var(--sh-card, #fff);
    border: 1.5px solid var(--sh-gray-200, #e2e8f0);
    border-radius: 14px;
    padding: 1.125rem 1.25rem 0.875rem;
}

/* Section header row sits INSIDE the card */
.sh-activity-card .sh-section-header-row {
    margin-bottom: 0.875rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--sh-gray-100, #f1f5f9);
}

/* Activity items: no card wrapper of their own inside the card */
.sh-activity-card .sh-activity-v2 .sh-activity-item {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--sh-gray-100, #f1f5f9);
}
.sh-activity-card .sh-activity-v2 .sh-activity-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.sh-activity-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-block;
    margin-top: 0.25rem; /* align with first line of text */
    align-self: flex-start;
}
.sh-activity-body {
    flex: 1;
    min-width: 0;
    font-size: var(--sh-text-sm, 0.833rem);
    line-height: 1.5;
}
.sh-activity-name { font-weight: 700; color: var(--sh-text, #0f172a); }
.sh-activity-label { color: var(--sh-text, #0f172a); margin-left: 0.2em; }
/* Override old ::before from line ~1808 */
.sh-activity-v2 .sh-activity-context::before { content: none; }
.sh-activity-context {
    color: var(--sh-muted, #64748b);
    font-size: var(--sh-text-xs, 0.694rem);
    margin-left: 0.2em;
}
.sh-activity-action {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 700;
    color: var(--sh-accent, #1e40af);
    text-decoration: none;
    white-space: nowrap;
}
.sh-activity-action:hover { text-decoration: underline; }
.sh-activity-time {
    color: var(--sh-muted, #64748b);
    font-size: var(--sh-text-xs, 0.694rem);
    white-space: nowrap;
    flex-shrink: 0;
    align-self: flex-start;
    padding-top: 0.1rem;
}

/* ── sh-kpi-grid--hierarchy (2-col + dominant full row) ───────── */
.sh-kpi-grid--hierarchy {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
}
.sh-kpi-card--dominant {
    grid-column: 1 / -1;
    text-align: left;
    padding: 1.25rem 1.5rem;
}
.sh-kpi-card--dominant .sh-kpi-number {
    font-size: var(--sh-text-2xl, 2.074rem);
}
.sh-kpi-dominant-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.sh-kpi-dominant-cta {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--sh-muted, #64748b);
    white-space: nowrap;
    transition: color 0.15s;
}
.sh-kpi-card--dominant:hover .sh-kpi-dominant-cta { color: var(--sh-success, #16a34a); }
.sh-kpi-card--dominant.is-success .sh-kpi-dominant-cta { color: var(--sh-success, #16a34a); }

/* ── sh-task-cta (prevent full-width stretch) ─────────────────── */
.sh-task-cta {
    width: auto !important;
    flex-shrink: 0;
    white-space: nowrap;
}

/* ── sh-quick-card (Schnellzugriff card wrapper) ──────────────── */
.sh-quick-card {
    background: var(--sh-card, #fff);
    border: 1.5px solid var(--sh-gray-200, #e2e8f0);
    border-radius: 14px;
    padding: 1.125rem 1.25rem;
}
.sh-quick-card .sh-section-title {
    margin-bottom: 0.875rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--sh-gray-100, #f1f5f9);
}

/* Spread: links fill row equally */
.sh-quick-row--spread {
    flex-wrap: nowrap;
    justify-content: stretch;
}
.sh-quick-row--spread .sh-quick-link {
    flex: 1;
    justify-content: center;
    text-align: center;
    border-radius: 10px;
}

/* ── Responsive (hierarchy grid) ─────────────────────────────── */
@media (max-width: 767px) {
    .sh-kpi-grid--hierarchy { grid-template-columns: 1fr 1fr; }
    .sh-kpi-card--dominant .sh-kpi-number { font-size: 1.728rem; }
    .sh-activity-action { display: block; margin-left: 0; margin-top: 0.2rem; }
    .sh-quick-row--spread { flex-wrap: wrap; }
    .sh-quick-row--spread .sh-quick-link { flex: 1 1 calc(50% - 0.5rem); }
}

/* ── sh-job-summary (Stellenübersicht auf Pipeline-Tabs) ───────
   WICHTIG: Tag-Selector `details.` ist Pflicht — sonst kollidiert
   diese Regel mit der TD-Zelle gleichen Namens in pages/my_jobs.php
   (Tabellenansicht), die sich nur durch flex-column-Layout definiert.
   ────────────────────────────────────────────────────────────── */
details.sh-job-summary {
    background: var(--sh-card, #fff);
    border: 1.5px solid var(--sh-gray-200, #e2e8f0);
    border-radius: 12px;
    margin-bottom: 1.25rem;
    overflow: hidden;
}
.sh-job-summary-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.125rem;
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sh-gray-500, #6b7280);
    cursor: pointer;
    list-style: none;
    border-bottom: 1px solid transparent;
    transition: background 0.12s;
}
details.sh-job-summary[open] .sh-job-summary-header {
    border-bottom-color: var(--sh-gray-100, #f1f5f9);
    background: var(--sh-gray-50, #f8fafc);
}
.sh-job-summary-header::-webkit-details-marker { display: none; }
.sh-job-summary-chevron {
    margin-left: auto;
    transition: transform 0.2s;
    font-size: 0.625rem;
}
details.sh-job-summary[open] .sh-job-summary-chevron { transform: rotate(180deg); }

.sh-job-summary-body {
    padding: 1rem 1.125rem 1.125rem;
}
.sh-job-summary-desc {
    font-size: var(--sh-text-sm, 0.833rem);
    color: var(--sh-gray-700, #374151);
    line-height: 1.6;
    margin-bottom: 0.875rem;
    padding-bottom: 0.875rem;
    border-bottom: 1px solid var(--sh-gray-100, #f1f5f9);
}
.sh-job-summary-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    margin-bottom: 0.875rem;
}
.sh-job-summary-item {}
.sh-job-summary-label {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sh-gray-400, #9ca3af);
    margin-bottom: 0.2rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.sh-job-sum-req {
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    background: #fef3c7;
    color: #92400e;
    padding: 0.1rem 0.3rem;
    border-radius: 3px;
}
.sh-job-sum-req--can {
    background: #f0fdf4;
    color: #166534;
}
.sh-job-summary-value {
    font-size: var(--sh-text-sm, 0.833rem);
    font-weight: 600;
    color: var(--sh-gray-800, #1f2937);
}
.sh-job-summary-specs {
    margin-top: 0.75rem;
}
.sh-job-summary-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-top: 0.35rem;
}
.sh-job-sum-chip {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 500;
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
    background: var(--sh-gray-100, #f3f4f6);
    color: var(--sh-gray-700, #374151);
    border: 1px solid var(--sh-gray-200, #e5e7eb);
}
.sh-job-sum-chip--must {
    background: #fff7ed;
    color: #9a3412;
    border-color: #fed7aa;
    font-weight: 600;
}
.sh-job-sum-edit-link {
    font-size: var(--sh-text-xs, 0.694rem);
    font-weight: 600;
    color: var(--sh-muted, #64748b);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.sh-job-sum-edit-link:hover { color: var(--sh-accent, #1e40af); }

/* ── Post-Booking Retention Card (FK Dashboard) ──────────────────────────── */
.sh-retention-card {
    background: #eff6ff;
    border-left: 4px solid #2563eb;
    border-radius: 0 10px 10px 0;
    padding: 1rem 1.125rem;
    margin-bottom: 0.75rem;
    transition: opacity 0.5s;
    overflow: hidden;
}
.sh-retention-hospital {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #1e40af;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.4rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.sh-retention-hospital .fa-hospital-alt { font-size: 0.75rem; }
.sh-retention-city {
    font-weight: 400;
    color: #3b82f6;
    text-transform: none;
    letter-spacing: 0;
}
.sh-retention-question {
    font-size: 1rem;
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 0.2rem;
    line-height: 1.3;
}
.sh-retention-end {
    font-size: 0.75rem;
    color: #64748b;
    margin-bottom: 1rem;
}
.sh-retention-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}
.sh-retention-btn {
    padding: 0.5rem 1rem;
    border-radius: 7px;
    font-size: 0.8125rem;
    font-weight: 600;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: filter 0.15s, transform 0.1s;
    white-space: nowrap;
}
.sh-retention-btn:hover  { filter: brightness(0.94); transform: translateY(-1px); }
.sh-retention-btn:active { transform: translateY(0); }
.sh-retention-btn--fav    { background: #ffffff; color: #92400e; box-shadow: 0 1px 3px rgba(0,0,0,0.12); }
.sh-retention-btn--notify { background: #2563eb; color: #ffffff; box-shadow: 0 1px 4px rgba(37,99,235,0.35); }
.sh-retention-btn--dismiss {
    background: transparent;
    border: none;
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 400;
    padding: 0.5rem 0.25rem;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sh-retention-btn--dismiss:hover { color: #334155; filter: none; transform: none; }
.sh-retention-success {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: #059669;
    font-weight: 600;
    padding: 0.25rem 0;
}

/* ── Trust lines — now in Zone 2 (.sh-trust-line / .sh-trust-line--local) ── */
/* See Zone 2 section above for .sh-trust-line definitions */

/* ── Relationship Action Bar (Match Card — accepted tab) ──────────────────── */
.sh-rel-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0 0.25rem;
    margin-top: 0.5rem;
    border-top: 1px solid var(--sh-gray-100, #f1f5f9);
}
.sh-rel-history {
    font-size: var(--sh-text-xs, 0.694rem);
    color: var(--sh-muted, #64748b);
    display: flex;
    align-items: center;
    gap: 0.3rem;
}
.sh-rel-history .fa-handshake { color: var(--sh-blue-500, #3b82f6); }
.sh-rel-actions {
    display: flex;
    gap: 0.35rem;
    margin-left: auto;
}
.sh-rel-btn {
    width: 2rem;
    height: 2rem;
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    border-radius: var(--sh-radius-sm, 6px);
    background: transparent;
    color: var(--sh-gray-400, #94a3b8);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.sh-rel-btn:hover { border-color: var(--sh-gray-400, #94a3b8); color: var(--sh-gray-700, #334155); }
.sh-rel-btn--active { border-color: transparent; }
.sh-rel-btn--fav    { color: #d97706; background: #fffbeb; }
.sh-rel-btn--notify { color: #2563eb; background: #eff6ff; }
.sh-rel-btn--block  { color: #dc2626; background: #fef2f2; }
.sh-rel-btn--fav:hover    { color: #b45309; }
.sh-rel-btn--notify:hover { color: #1d4ed8; }
.sh-rel-btn--block:hover  { color: #b91c1c; }

/* Toast notification for relationship toggles */
.sh-rel-toast {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    background: var(--sh-gray-900, #0f172a);
    color: #fff;
    font-size: 0.8rem;
    padding: 0.5rem 1rem;
    border-radius: var(--sh-radius-sm, 6px);
    z-index: 9999;
    animation: sh-rel-toast-in 0.2s ease;
    pointer-events: none;
}
@keyframes sh-rel-toast-in {
    from { opacity: 0; transform: translateY(0.5rem); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Relationship Control Center (fk_preferences.php) ────────────────────── */
.sh-relationship-list {
    display: flex;
    flex-direction: column;
}
.sh-relationship-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem 1.5rem;
    border-bottom: 1px solid var(--sh-gray-50, #f8fafc);
    transition: background 0.15s;
}
.sh-relationship-item:last-child { border-bottom: none; }
.sh-relationship-item:hover { background: var(--sh-gray-50, #f8fafc); }
.sh-relationship-left { min-width: 0; flex: 1; }
.sh-relationship-name {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--sh-gray-900, #0f172a);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sh-relationship-meta {
    font-size: 0.75rem;
    color: var(--sh-gray-400, #94a3b8);
    margin-top: 0.125rem;
}
.sh-relationship-actions {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}
.sh-toggle {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.375rem 0.75rem;
    border-radius: 20px;
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    background: transparent;
    color: var(--sh-gray-400, #94a3b8);
    font-size: 0.75rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}
.sh-toggle:hover {
    border-color: var(--sh-gray-400, #94a3b8);
    color: var(--sh-gray-700, #334155);
}
.sh-toggle.is-active {
    border-color: transparent;
    font-weight: 600;
}
.sh-toggle[data-type="favorite_fk"].is-active {
    background: #fffbeb;
    color: #b45309;
}
.sh-toggle[data-type="notify_fk_job"].is-active {
    background: #eff6ff;
    color: #2563eb;
}
.sh-toggle-icon { font-size: 0.8rem; }

/* Empty state */
.sh-rel-empty {
    padding: 2.5rem 1.5rem;
    text-align: center;
}
.sh-rel-empty-icon {
    font-size: 2rem;
    margin-bottom: 0.75rem;
    opacity: 0.5;
}
.sh-rel-empty-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--sh-gray-600, #475569);
    margin-bottom: 0.375rem;
}
.sh-rel-empty-text {
    font-size: 0.8rem;
    color: var(--sh-gray-400, #94a3b8);
    max-width: 340px;
    margin: 0 auto;
    line-height: 1.5;
}

@media (max-width: 540px) {
    .sh-relationship-item { flex-direction: column; align-items: flex-start; }
    .sh-relationship-actions { width: 100%; }
    .sh-toggle { flex: 1; justify-content: center; }
}

/* ============================================================================
 * Match Card — Operational Decision Card (CEO Spec 2026-04-04)
 * Zones: Identity → Score Bar → Chips → Avail+Conditions → Actions
 * Typography: Name 15px/700 · Meta 13px/500 · Score 14px/700 · Labels 11px/600
 * Spacing: gap 6–10px max
 * ========================================================================== */

/* ── Match Card — Premium Card Shell ─────────────────────────── */
.sh-card.sh-mc {
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(13,31,60,0.08);
    border: 1px solid rgba(13,31,60,0.06);
    background: linear-gradient(180deg, #ffffff 0%, #f9fafc 100%);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.sh-card.sh-mc:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 50px rgba(13,31,60,0.12);
    border-color: rgba(245,158,11,0.4);
}

/* Card body override — tighter gap */
.sh-mc-body {
    padding: 0.875rem 1rem 0.75rem;
    gap: 7px;
}

/* ── 1. IDENTITY ──────────────────────────────────────────────── */
.sh-mc-identity {
    display: flex;
    align-items: center;
    gap: 10px;
}
.sh-mc-id-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.sh-mc-name {
    font-family: 'Satoshi', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #0d1f3c;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sh-mc-meta {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: rgba(0, 0, 0, 0.6);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sh-mc-trust {
    color: #0d1f3c;
    font-weight: 600;
}
.sh-mc-rating-badge {
    color: #92400e;
    font-weight: 600;
    white-space: nowrap;
}
.sh-mc-rating-cnt {
    font-weight: 400;
    color: rgba(0,0,0,0.45);
    font-size: .88em;
}

/* ── 2. SCORE BAR ─────────────────────────────────────────────── */
.sh-mc-score-section {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.sh-mc-scorebar-row {
    display: flex;
    align-items: center;
    gap: 8px;
}
.sh-mc-scorebar-track {
    flex: 1;
    height: 6px;
    background: #e5e7eb;
    border-radius: 3px;
    overflow: hidden;
}
.sh-mc-scorebar-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.4s ease;
}
.sh-mc-scorebar-pct {
    font-family: 'Satoshi', sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    min-width: 34px;
    text-align: right;
    flex-shrink: 0;
}
.sh-mc-scorebar-label {
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: rgba(0, 0, 0, 0.5);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── 3. SPECIALTY CHIPS (shared + new risk variant) ────────────── */
.sh-mc-spec-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.sh-mc-spec-chip {
    display: inline-flex;
    align-items: center;
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    white-space: nowrap;
    line-height: 1.5;
}
.sh-mc-spec-chip--must     { background: rgba(22,163,74,0.10); color: #15803d; }
.sh-mc-spec-chip--caution  { background: rgba(217,119,6,0.10);  color: #b45309; }
.sh-mc-spec-chip--optional { background: #f1f5f9; color: #4b5563; }
.sh-mc-spec-chip--risk     { background: rgba(220,38,38,0.08); color: #b91c1c; }
.sh-mc-spec-chip--more     { background: #e5e7eb; color: #6b7280; }

/* ── Zone 4b: Skill-Source-Tagging (CEO 2026-05-22, B2-Layer) ─────────
   Drei Herkunftsklassen visuell unterscheiden, damit Spital erkennt
   ob ein Skill explizit gefordert oder durch Schwerpunkt impliziert ist. */
.sh-mc-z4b {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 4px;
}
.sh-mc-z4b-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}
.sh-mc-z4b-label {
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: var(--sh-gray-700, #374151);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.sh-mc-z4b-hint {
    font-family: 'Satoshi', sans-serif;
    font-size: 10px;
    font-weight: 500;
    color: var(--sh-gray-500, #6b7280);
    cursor: help;
}
.sh-mc-skill-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.sh-mc-skill-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 500;
    padding: 2px 8px;
    border-radius: 4px;
    white-space: nowrap;
    line-height: 1.5;
    border: 1px solid transparent;
    cursor: help;
}
.sh-mc-skill-chip-tag {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}
/* MUSS — explizit, kräftig */
.sh-mc-skill-chip--must {
    background: rgba(29,78,216,0.08);
    color: #1d4ed8;
    border-color: rgba(29,78,216,0.18);
    font-weight: 600;
}
.sh-mc-skill-chip--must .sh-mc-skill-chip-tag { background: #1d4ed8; }
/* KANN — explizit Nice-to-have, mittel */
.sh-mc-skill-chip--kann {
    background: rgba(29,78,216,0.05);
    color: #2563eb;
    border-color: rgba(29,78,216,0.10);
}
.sh-mc-skill-chip--kann .sh-mc-skill-chip-tag { background: #60a5fa; }
/* Specialty-Baseline — impliziert durch Schwerpunkt, sekundär aber erkennbar */
.sh-mc-skill-chip--baseline {
    background: var(--sh-gray-50, #f9fafb);
    color: var(--sh-gray-700, #374151);
    border-color: var(--sh-gray-200, #e5e7eb);
}
.sh-mc-skill-chip--baseline .sh-mc-skill-chip-tag {
    background: transparent;
    border: 1.5px solid var(--sh-gray-400, #9ca3af);
    width: 7px;
    height: 7px;
}
/* Overflow */
.sh-mc-skill-chip--more {
    background: var(--sh-gray-100, #f3f4f6);
    color: var(--sh-gray-500, #6b7280);
    font-weight: 600;
    cursor: default;
}

/* ── Match card: specialty deployment reputation dot (clinical signal) ─ */
.sh-mc-spec-rep {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-right: 5px;
    vertical-align: middle;
    flex-shrink: 0;
    cursor: help;
}
.sh-mc-spec-rep--reliable    { background: #16a34a; }
.sh-mc-spec-rep--partial     { background: #d97706; }
.sh-mc-spec-rep--limited     { background: #dc2626; }
.sh-mc-spec-rep--preliminary { background: #94a3b8; }

/* ── FK detail: Einsatz-Erfahrung deployment reality section ────── */
.sh-fk-section--reality { margin-top: 0; }

.sh-reality-rows {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sh-reality-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    font-size: 13px;
}

.sh-reality-row-title {
    font-weight: 500;
    color: var(--sh-gray-900, #0f172a);
    font-size: 13px;
    line-height: 1.35;
}

.sh-reality-row-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

/* Legacy single-line branch (skills feedback fallback) — align with two-line vibe */
.sh-reality-spec {
    font-weight: 500;
    color: var(--sh-gray-900, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.sh-reality-muss {
    font-size: 9.5px;
    font-weight: 700;
    background: #dbeafe;
    color: #1e40af;
    padding: 1px 5px;
    border-radius: 3px;
    letter-spacing: 0.03em;
}

.sh-reality-kann {
    font-size: 9.5px;
    font-weight: 600;
    background: var(--sh-surface-subtle, #f1f5f9);
    color: var(--sh-gray-600, #475569);
    padding: 1px 5px;
    border-radius: 3px;
    letter-spacing: 0.03em;
    border: 1px solid var(--sh-border, #e2e8f0);
}

.sh-reality-badge {
    font-size: 11.5px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 4px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 4px;
}

.sh-reality-badge--reliable    { background: #fff7ed; color: #c2410c; }
.sh-reality-badge--partial     { background: #fffbeb; color: #b45309; }
.sh-reality-badge--limited     { background: #fef2f2; color: #dc2626; }
.sh-reality-badge--unknown     { background: var(--sh-gray-50); color: var(--sh-gray-500); }
.sh-reality-badge--preliminary { background: #f0fdf4; color: #15803d; }
.sh-reality-badge--verified    { background: #ecfdf5; color: #047857; }

.sh-reality-n {
    font-weight: 400;
    opacity: 0.75;
    font-size: 10.5px;
}

/* ================================================================
   PHASE 5 — Skill Gap Card (.sh-gap-*)
   ================================================================ */
.sh-gap-card {
    background: var(--sh-white);
    border-radius: var(--sh-radius-card);
    box-shadow: var(--sh-card-shadow);
    padding: 1.25rem 1.5rem;
    margin-top: 1.25rem;
}

.sh-gap-card__heading {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sh-gray-500);
    margin-bottom: 0.75rem;
}

.sh-gap-item {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--sh-gray-100);
}

.sh-gap-item:last-child {
    border-bottom: none;
}

.sh-gap-item__icon {
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 1px;
}

.sh-gap-item__body {
    flex: 1;
}

.sh-gap-item__title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--sh-gray-800);
    line-height: 1.3;
}

.sh-gap-item__title--high   { color: var(--sh-red-500); }
.sh-gap-item__title--medium { color: var(--sh-amber-500); }
.sh-gap-item__title--low    { color: var(--sh-green-600); }

.sh-gap-item__meta {
    font-size: 0.72rem;
    color: var(--sh-gray-500);
    margin-top: 1px;
}

.sh-gap-empty {
    font-size: 0.82rem;
    color: var(--sh-gray-400);
    text-align: center;
    padding: 0.75rem 0;
}

/* ── 4. AVAILABILITY + CONDITIONS ROW ─────────────────────────── */
.sh-mc-avail-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.sh-mc-cond {
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: rgba(0, 0, 0, 0.45);
}

/* ── JOB SNAPSHOT CARD (Stellenübersicht — CEO Phase 2) ──────── */
.sh-job-snap {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 8px 12px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.sh-job-snap-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}
.sh-job-snap-pill {
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 4px;
    background: #e2e8f0;
    color: #334155;
    white-space: nowrap;
}
.sh-job-snap-pill--pensum {
    background: rgba(29,78,216,0.08);
    color: #1d4ed8;
}
.sh-job-snap-dates {
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: rgba(0,0,0,0.5);
    white-space: nowrap;
}
.sh-job-snap-edit {
    margin-left: auto;
    color: #94a3b8;
    font-size: 12px;
    text-decoration: none;
    padding: 2px 4px;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
}
.sh-job-snap-edit:hover { color: #0d1f3c; background: #e2e8f0; }
.sh-job-snap-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

/* ── 5. ACTION BUTTONS ────────────────────────────────────────── */
.sh-mc-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.sh-mc-btn {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    line-height: 1;
    transition: background 0.15s, opacity 0.15s;
    white-space: nowrap;
}
.sh-mc-btn i { font-size: 12px; }
.sh-mc-btn--primary {
    background: #0d1f3c;
    color: #fff;
    flex: 1;
}
.sh-mc-btn--primary:hover { background: #162d55; }
.sh-mc-btn--secondary {
    background: #f1f5f9;
    color: #0d1f3c;
    border: 1px solid #e2e8f0;
    flex: 1;
}
.sh-mc-btn--secondary:hover { background: #e2e8f0; }
.sh-mc-btn--ghost {
    background: transparent;
    color: #64748b;
    border: 1px solid rgba(0,0,0,0.12);
    min-width: 60px;
}
.sh-mc-btn--ghost:hover { background: #f8fafc; color: #0d1f3c; }
.sh-mc-btn--done {
    background: transparent;
    color: var(--sh-gray-500, #6b7280);
    border: 1px solid rgba(15,23,42,0.10);
    cursor: default;
    pointer-events: none;
    font-weight: 500;
    font-size: 0.8rem;
    justify-content: flex-start;
    padding-left: 0.75rem;
}

/* ── Availability Badge (header — right-aligned) ──────────────── */
.sh-mc-avail-badge {
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
    align-self: flex-start;
}
.sh-mc-avail-badge--available_now    { background: rgba(34,197,94,0.12); color: #15803d; }
.sh-mc-avail-badge--available_future { background: rgba(245,158,11,0.12); color: #92400e; }
.sh-mc-avail-badge--busy             { background: rgba(140,110,70,0.09); color: #6b5230; }
.sh-mc-avail-badge--unknown          { background: #f1f5f9;               color: #64748b; }

/* ── Score Bar — gradient fills ───────────────────────────────── */
.sh-mc-scorebar-fill.sh-mc-bar--high {
    background: linear-gradient(90deg, #22c55e, #4ade80);
}
.sh-mc-scorebar-fill.sh-mc-bar--mid {
    background: linear-gradient(90deg, #1d4ed8, #3b82f6);
}
.sh-mc-scorebar-fill.sh-mc-bar--low {
    background: linear-gradient(90deg, #f59e0b, #fbbf24);
}

/* Override: bar fill transition premium cubic */
.sh-mc-scorebar-fill {
    transition: width 0.6s cubic-bezier(.4,0,.2,1);
}

/* ── Score label dynamic color + "Warum" sub-line ─────────────── */
.sh-mc-scorebar-label {
    font-size: 12px;
    font-weight: 700;
    /* color set via PHP inline style */
}
.sh-mc-scorebar-why {
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 500;
    color: rgba(0,0,0,0.5);
    margin-top: 1px;
}

/* ── Einsatzprofil — DTO-driven facts ─────────────────────────── */
.sh-mc-einsatz {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center;
}
.sh-mc-ep-item {
    font-family: 'Satoshi', sans-serif;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    white-space: nowrap;
}
.sh-mc-ep-item--yes     { background: rgba(34,197,94,0.10); color: #166534; }
.sh-mc-ep-item--no      { background: rgba(239,68,68,0.08); color: #991b1b; }
.sh-mc-ep-item--neutral { background: #f1f5f9; color: #475569; }

/* ── Fachkompetenzen chip color-coding (drawer) ───────────────── */
.sh-chip--match {
    background: rgba(34,197,94,0.15) !important;
    color: #166534 !important;
    border: 1px solid rgba(34,197,94,0.25);
}
.sh-chip--optional {
    background: rgba(245,158,11,0.12) !important;
    color: #92400e !important;
    border: 1px solid rgba(245,158,11,0.2);
}

/* ── "Auch passend für" — same-hospital cross-job section ─────── */
.sh-mc-related {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sh-mc-related-link {
    display: flex;
    align-items: center;
    gap: 5px;
    background: rgba(13,31,60,0.04);
    border: 1px solid rgba(13,31,60,0.07);
    padding: 6px 10px;
    border-radius: 6px;
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 400;
    color: rgba(0,0,0,0.6);
    text-align: left;
    cursor: pointer;
    transition: background 0.15s;
    white-space: nowrap;
    overflow: hidden;
}
.sh-mc-related-link:hover { background: rgba(13,31,60,0.08); color: #0d1f3c; }
.sh-mc-related-link strong { color: #0d1f3c; font-weight: 600; overflow: hidden; text-overflow: ellipsis; flex: 1; }
.sh-mc-related-score {
    font-size: 11px;
    font-weight: 700;
    color: #1d4ed8;
    flex-shrink: 0;
    margin-left: auto;
    padding-left: 6px;
}

/* ══════════════════════════════════════════════════════════════════
   ZONED MATCH CARD — Operational Decision Card System
   6-Zone architecture: Statuskopf / Identität / Einschätzung /
   Fachbereiche / Rahmenbedingungen / Aktionen
   ══════════════════════════════════════════════════════════════════ */

.sh-mc-body--zoned {
    padding: 0 !important;
    gap: 0 !important;
}

/* Zone 1 — Operativer Statuskopf */
.sh-mc-z1 {
    padding: 9px 14px 8px;
    background: rgba(15,23,42,0.028);
    border-bottom: 1px solid rgba(15,23,42,0.055);
    border-radius: var(--sh-radius-card, 12px) var(--sh-radius-card, 12px) 0 0;
}
.sh-mc-z1-chip {
    font-family: 'Satoshi', sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    color: #475569;
    letter-spacing: 0.01em;
}
.sh-mc-z1-chip.sh-label-operative--house  { color: #1e40af; }
.sh-mc-z1-chip.sh-label-operative--proven { color: #15803d; }
.sh-mc-z1-chip.sh-label-operative--fast   { color: #15803d; }
.sh-mc-z1-chip.sh-label-operative--cover  { color: #15803d; }
.sh-mc-z1-chip.sh-label-operative--partial { color: #92400e; }

/* Zone 2 — Identität (adds zone padding over existing identity flex) */
.sh-mc-identity.sh-mc-z2 {
    padding: 12px 14px 10px;
}

/* Zone 2b — Operational Evidence Layer (Sprint B)
   Sub-Hero Substance-Row: Wiedereinsatz-Signal + Spitaltyp-Erfahrung + Einsatz-Volumen.
   Visuell ruhig — neutrale Tokens, keine Score-Optik. Spital-Affinität ("Bereits bei Ihnen
   tätig") bekommt leichtes Deep-Atlantic-Tint als einzigen visuellen Anker. */
.sh-mc-substance {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 14px 10px;
    border-bottom: 1px solid rgba(15,23,42,0.04);
}
.sh-mc-substance-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 500;
    color: var(--sh-gray-700, #334155);
    padding: 3px 8px;
    border-radius: 4px;
    background: var(--sh-gray-50, #f8fafc);
    border: 1px solid var(--sh-gray-100, #f1f5f9);
    line-height: 1.3;
}
.sh-mc-substance-item i {
    font-size: 10px;
    color: var(--sh-gray-500, #64748b);
}
.sh-mc-substance--own {
    background: #eff6ff;
    border-color: #dbeafe;
    color: #1e3a5f;
    font-weight: 600;
}
.sh-mc-substance--own i { color: #1e3a5f; }
.sh-mc-substance--rebook {
    background: #ecfdf5;
    border-color: #d1fae5;
    color: #047857;
}
.sh-mc-substance--rebook i { color: #047857; }
.sh-mc-substance--types,
.sh-mc-substance--depl {
    background: var(--sh-white, #fff);
    border-color: var(--sh-gray-200, #e2e8f0);
}

/* Zone 3 — Operative Einschätzung */
.sh-mc-z3 {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    padding: 9px 14px 8px;
    border-top: 1px solid rgba(15,23,42,0.05);
    background: rgba(15,23,42,0.012);
}
.sh-mc-z3-block {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
    min-width: 0;
}
.sh-mc-z3-label {
    font-family: 'Satoshi', sans-serif;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin-bottom: 1px;
}
.sh-mc-z3-items {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.sh-mc-z3-item {
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}
.sh-mc-z3-item--ok      { color: #15803d; }
.sh-mc-z3-item--caution { color: rgba(120,90,40,0.92); }

/* Zone 4 — Fachbereiche */
.sh-mc-z4 {
    padding: 7px 14px 5px;
    border-top: 1px solid rgba(15,23,42,0.05);
}

/* Zone 5 — Rahmenbedingungen */
.sh-mc-z5 {
    padding: 6px 14px 7px;
    border-top: 1px solid rgba(15,23,42,0.05);
    display: flex;
    flex-direction: column;
    gap: 5px;
}

/* Zone 6 — Aktionen */
.sh-mc-actions.sh-mc-z6 {
    flex-direction: column;
    gap: 5px;
    padding: 10px 14px 12px;
    border-top: 1px solid rgba(15,23,42,0.06);
    background: rgba(15,23,42,0.01);
    border-radius: 0 0 var(--sh-radius-card, 12px) var(--sh-radius-card, 12px);
}
.sh-mc-z6-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.sh-mc-z6-row--primary .sh-mc-btn--primary,
.sh-mc-z6-row--primary .sh-mc-btn--secondary,
.sh-mc-z6-row--primary .sh-mc-btn--done {
    flex: 1;
}
.sh-mc-profile-text {
    font-family: 'Satoshi', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #64748b;
    background: none;
    border: none;
    cursor: pointer;
    padding: 2px 0;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.15s;
}
.sh-mc-profile-text:hover { color: #0d1f3c; }

/* ══ 3-LAYER VISUAL HIERARCHY ═══════════════════════════════════════
   Layer 1 (Identity, white)  : Zone 1 + Zone 2
   Layer 2 (Fachliche Passung): Zone 3 + Zone 4  — subtle warm green-gray
   Layer 3 (Entscheidung)     : Zone 5 + Zone 6  — subtle blue-gray
   ══════════════════════════════════════════════════════════════════ */

/* Layer 1 — Identity zones: pure white */
.sh-mc-z1 {
    background: #ffffff !important;
}

/* Layer boundary L1 → L2: slightly stronger separator */
.sh-mc-z3 {
    border-top: 1.5px solid rgba(15,23,42,0.09) !important;
    background: #f5f8f5 !important;
    padding: 8px 14px !important;
    gap: 6px !important;
    align-items: flex-start !important;
}
.sh-mc-z4 {
    background: #f5f8f5 !important;
    border-top: 1px solid rgba(15,23,42,0.05) !important;
}

/* Layer boundary L2 → L3: slightly stronger separator */
.sh-mc-z5 {
    background: #f8fafc !important;
    border-top: 1.5px solid rgba(15,23,42,0.09) !important;
}
.sh-mc-actions.sh-mc-z6 {
    background: #f8fafc !important;
    border-top: 1px solid rgba(15,23,42,0.06) !important;
}

/* ── Zone 3: tinted assessment backgrounds ───────────────────────── */
.sh-mc-z3-block--ok {
    background: rgba(22,163,74,0.04);
    border-radius: 5px;
    padding: 6px 8px;
}
.sh-mc-z3-block--caution {
    background: rgba(180,83,9,0.05);
    border-radius: 5px;
    padding: 6px 8px;
}

/* ── Zone 2: name prominence, profession lighter ──────────────────── */
.sh-mc-body--zoned .sh-mc-name {
    font-size: 16.5px;
    letter-spacing: -0.01em;
}
.sh-mc-body--zoned .sh-mc-meta {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 400;
}
.sh-mc-identity.sh-mc-z2 {
    align-items: flex-start !important;
}

/* ── Zone 5: price block — Q-level primary, CHF secondary ───────────── */
.sh-mc-price-zone {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
}
.sh-mc-price-ql {
    font-family: 'Satoshi', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}
.sh-mc-price-chf {
    font-family: 'Satoshi', sans-serif;
    font-size: 11.5px;
    font-weight: 500;
    color: #64748b;
}
.sh-mc-price-sep { display: none; }

/* ── Zone 6: CTA + Profil side-by-side ─────────────────────────────── */
.sh-mc-z6-row--main {
    display: flex;
    align-items: center;
    gap: 6px;
}
.sh-mc-z6-row--main .sh-mc-btn--primary   { flex: 3; }
.sh-mc-z6-row--main .sh-mc-btn--secondary { flex: 3; }
.sh-mc-z6-row--main .sh-mc-btn--done      { flex: 3; }
.sh-mc-z6-row--main .sh-mc-btn--ghost     { flex: 1; }

/* ── Zone 1: metadata — reduce visual weight + decorative top line ──── */
.sh-mc-z1 {
    padding: 10px 14px 6px !important;
    position: relative;
}
.sh-mc-z1::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, rgba(16,185,129,0.80) 40%, rgba(13,31,60,0.65) 40%);
    border-radius: 12px 12px 0 0;
}
.sh-mc-z1-chip {
    font-size: 10.5px !important;
}

/* ── Spec chip overflow counter ──────────────────────────────────────── */
.sh-mc-spec-chip--more {
    background: rgba(15,23,42,0.05);
    color: #64748b;
    font-weight: 600;
}

/* ── Price zone: Q-level only, clean ────────────────────────────────── */
.sh-mc-price-ql {
    font-family: 'Satoshi', sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    color: #334155;
}

/* ── "Nicht passend?" — right-aligned ghost in Zone 6 ───────────────── */
.sh-mc-rejection {
    margin-left: auto;
}
.sh-mc-btn--reject-trigger {
    color: #94a3b8 !important;
    background: none !important;
    border: none !important;
    font-size: 11.5px !important;
    font-weight: 500 !important;
    padding: 2px 0 !important;
    cursor: pointer;
    white-space: nowrap;
}
.sh-mc-btn--reject-trigger:hover {
    color: #475569 !important;
}

/* ── Card: enterprise flat style — border over shadow ───────────────── */
.sh-mc {
    box-shadow: none !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
}
.sh-card-hover.sh-mc:hover {
    box-shadow: 0 4px 16px rgba(15,23,42,0.08) !important;
    border-color: rgba(15,23,42,0.16) !important;
}

/* Caution chip — warm amber (no red for missing/unconfirmed skills) */
.sh-mc-spec-chip--caution {
    background: rgba(180,150,90,0.10);
    color: rgba(120,90,40,0.92);
}
.sh-mc-spec-chip--risk {
    background: rgba(180,150,90,0.10) !important;
    color: rgba(120,90,40,0.92) !important;
}

/* ── Avatar initials — dark navy gradient ─────────────────────── */
.sh-mc-avatar-initials {
    background: linear-gradient(135deg, #0d1f3c, #1f3a6d);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 800;
}

/* ═══════════════════════════════════════════════════════════════════════
   M281-A — Match-Card Decision-First Layer (2026-06-24, View-only)
   ═══════════════════════════════════════════════════════════════════════
   Owner-Direktive: Premium-Level, weniger Rauschen, klare Hierarchie.
   - V1 Typo-Disziplin: 3 Stufen (Lead/Body/Quiet) ohne Inline-Overrides.
   - V2 Whitespace-Rhythmus: 8-Punkt-Raster zwischen Zonen.
   - V3 Score-Farbdisziplin: Score-Stack hat KEINE blaue Pill, nur Größe.
   - V4 Avatar-Ring bleibt einziger Availability-Color-Träger.
   - V5 Decision-Sub line-clamp 2.
   - V6 CTA-Inline-Geometrie: Profil · Dossier nebeneinander, gleich.
   - V8 Accessibility: aria-label, role/aria-level, aria-describedby.
   - V10 Substance-Zeile quiet (kein Chip-Background mehr).
   M281-A: KEIN Matching/Score/Skill-/Dossier-Logik-Touch.
   ═════════════════════════════════════════════════════════════════════ */

/* V1 — Typografie-Tokens (3 Stufen) */
.sh-mc {
    --sh-mc-lead:  16px;
    --sh-mc-body:  14px;
    --sh-mc-quiet: 12px;
}

/* V2 — Whitespace-Rhythmus (8-Punkt-Raster zwischen Zonen) */
.sh-mc-z2          { margin-bottom: 16px; }
.sh-mc-substance   { margin-bottom: 16px; }
.sh-mc-decision    { margin-bottom: 24px; }
.sh-mc-skill-run   { margin-bottom: 24px; }
.sh-mc-z5--quiet   { margin-bottom: 16px; }

/* ── Zone 2 — Identität + Meta-Line + Score-Stack ────────────────── */
/* M281-A Override: Meta-Line ist neutral (quiet), keine Avail-Färbung. */
.sh-mc-z2 {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    position: relative;
}
.sh-mc-z2 .sh-mc-id-text {
    flex: 1;
    min-width: 0;
}
.sh-mc-z2 .sh-mc-name {
    font-size: var(--sh-mc-lead);
    font-weight: 600;
    color: #1e293b;
    line-height: 1.3;
}
.sh-mc-z2 .sh-mc-meta {
    font-size: var(--sh-mc-quiet);
    font-weight: 400;
    color: #64748b;
    margin-top: 2px;
    line-height: 1.4;
}

/* M281-A1 (2026-06-25) — Score-Stack DEPRECATED.
   sh-mc-score-stack-Klassen wurden aus dem Renderer entfernt. Workflow-Status-
   Pille ersetzt den oberen-rechten Slot. Keine sichtbare Prozentzahl mehr. */

/* ── M281-A1 Workflow-Status-Pille (oben rechts, ersetzt Score-Stack) ──
   3 Töne nach Owner-fixierter Statuspriorität (2026-06-25):
     --accepted    mintgrün     (FK hat zugesagt)
     --invited     neutral-blau (Anfrage gesendet, Rückmeldung offen)
     --reviewed    grau         (intern geprüft, Entscheidung offen)
   8-Pkt-Whitespace-Raster. Mobile: kein Wrap, Icon bleibt sichtbar. */
.sh-mc-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: var(--sh-mc-quiet);
    font-weight: 600;
    line-height: 1.2;
    border: 1px solid transparent;
    white-space: nowrap;
    letter-spacing: 0;
}
.sh-mc-status-pill > i { font-size: 10.5px; line-height: 1; }
.sh-mc-status-pill--accepted {
    background: #ecfdf5;
    color: #047857;
    border-color: #6ee7b7;
}
.sh-mc-status-pill--invited {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #bfdbfe;
}
.sh-mc-status-pill--shortlisted,
.sh-mc-status-pill--reviewed {
    background: #f1f5f9;
    color: #475569;
    border-color: #cbd5e1;
}
@media (max-width: 480px) {
    .sh-mc-status-pill { padding: 3px 8px; font-size: 11px; }
}

/* ── Zone 2b — Substance Text-Run (V10: quiet, kein Chip-Background) ── */
.sh-mc-substance--quiet {
    display: block !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 16px !important;
    font-size: var(--sh-mc-quiet);
    color: #64748b;
    line-height: 1.4;
}

/* ── M281-A Decision-Block — Primärsignal ───────────────────────── */
.sh-mc-decision {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sh-mc-decision-lead {
    font-size: var(--sh-mc-lead);
    font-weight: 600;
    color: #1e293b;
    line-height: 1.35;
}
.sh-mc-decision-sub {
    font-size: var(--sh-mc-body);
    font-weight: 400;
    color: #475569;
    line-height: 1.45;
    /* V5 — max 2 Zeilen soft-truncate */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.sh-mc-decision-caution {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 6px;
}
.sh-mc-decision-caution__item {
    font-size: var(--sh-mc-quiet);
    font-weight: 500;
    color: rgba(120,90,40,0.92);
    line-height: 1.4;
}
/* PATCH-OP-MATCHING-COVERAGE-TRUTH-01 (UI 2026-07-18) */
.sh-mc-decision-coverage {
    font-size: var(--sh-mc-body);
    font-weight: 500;
    color: #334155;
    line-height: 1.4;
    margin-top: 6px;
}
.sh-mc-decision-reputation {
    font-size: var(--sh-mc-quiet);
    font-weight: 400;
    color: #64748b;
    line-height: 1.4;
    margin-top: 4px;
}

/* ── Zone 4b — Skill-Run (Belegte Kompetenzen) ───────────────────── */
.sh-mc-skill-run {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 8px;
    border-top: 1px solid #f1f5f9;
}
.sh-mc-skill-run__label {
    font-size: var(--sh-mc-quiet);
    font-weight: 600;
    color: #64748b;
    text-transform: none;
    letter-spacing: 0;
}
.sh-mc-skill-run__count {
    font-size: var(--sh-mc-body);
    font-weight: 500;
    color: #1e293b;
    line-height: 1.4;
}
.sh-mc-skill-run__top {
    font-size: var(--sh-mc-body);
    font-weight: 400;
    color: #334155;
    line-height: 1.45;
}
.sh-mc-skill-run__more {
    font-size: var(--sh-mc-quiet);
    font-weight: 400;
    color: #64748b;
    margin-top: 2px;
}

/* ── Zone 5 — Q-Label ruhig (AK 15) ─────────────────────────────── */
.sh-mc-z5--quiet {
    padding: 0;
    border: none;
    background: none;
}
.sh-mc-z5--quiet .sh-mc-price-ql {
    font-size: var(--sh-mc-quiet);
    font-weight: 500;
    color: #64748b;
}

/* ── Zone 6 — CTA-Hierarchie 1 + 2 + 1 ──────────────────────────── */
.sh-mc-z6 {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sh-mc-z6-row--primary {
    display: flex;
    align-items: center;
}
.sh-mc-z6-row--primary .sh-mc-btn--primary,
.sh-mc-z6-row--primary .sh-mc-btn--secondary,
.sh-mc-z6-row--primary .sh-mc-btn--done {
    width: 100%;
    justify-content: center;
}
.sh-mc-z6-row--secondary {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.sh-mc-link {
    font-size: var(--sh-mc-body);
    font-weight: 500;
    color: #475569;
    text-decoration: none;
    line-height: 1.4;
    padding: 4px 0;
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
}
button.sh-mc-link { display: inline; }
.sh-mc-link:hover {
    color: #1e293b;
    text-decoration: underline;
}
.sh-mc-link--dossier i {
    margin-right: 4px;
    font-size: 12px;
    color: #64748b;
}
.sh-mc-link-sep {
    font-size: var(--sh-mc-body);
    color: #cbd5e1;
}
.sh-mc-z6-row--tertiary {
    display: flex;
    justify-content: flex-start;
    margin-top: 2px;
}
.sh-mc-z6-row--tertiary .sh-mc-rejection {
    margin-left: 0;
}

/* ── Match Breakdown (fk_detail_spital drawer) ─────────────────── */
.sh-fk-breakdown { padding-bottom: 0; }
.sh-fk-bd-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}
.sh-fk-conf-badge {
    font-size: 0.695rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 100px;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.sh-fk-conf-badge--high { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.sh-fk-conf-badge--mid  { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.sh-fk-conf-badge--low  { background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; }
.sh-fk-bd-rows { display: flex; flex-direction: column; gap: 0.5rem; }
.sh-fk-bd-row {
    display: grid;
    grid-template-columns: 128px 1fr 72px;
    align-items: center;
    gap: 0.5rem;
    cursor: default;
}
.sh-fk-bd-label {
    font-size: 0.775rem;
    font-weight: 500;
    color: var(--sh-gray-600, #475569);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sh-fk-bd-bar {
    height: 6px;
    background: var(--sh-gray-100, #f1f5f9);
    border-radius: 100px;
    overflow: hidden;
}
.sh-fk-bd-fill {
    height: 100%;
    border-radius: 100px;
    transition: width 0.45s cubic-bezier(.4,0,.2,1);
}
.sh-fk-bd-fill--high { background: linear-gradient(90deg, #4ade80, #16a34a); }
.sh-fk-bd-fill--mid  { background: linear-gradient(90deg, #60a5fa, #2563eb); }
.sh-fk-bd-fill--low  { background: linear-gradient(90deg, #fbbf24, #d97706); }
.sh-fk-bd-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
    min-width: 0;
}
.sh-fk-bd-pct {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--sh-gray-800, #1e293b);
    line-height: 1;
}
.sh-fk-bd-value {
    font-size: 0.67rem;
    color: var(--sh-gray-400, #94a3b8);
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 96px;
}
.sh-fk-bd-context {
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--sh-gray-100, #f1f5f9);
    font-size: 0.715rem;
    color: var(--sh-gray-400, #94a3b8);
    line-height: 1.45;
}

/* ── Reputation Narratives Block (Spital-Context, medium+) ─────── */
.sh-fk-rep-narratives {
    padding: 1rem 0 0.75rem;
}
.sh-fk-rep-bullets {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.sh-fk-rep-bullet {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--sh-gray-800, #1e293b);
    line-height: 1.4;
}
.sh-fk-rep-bullet::before {
    content: '✓';
    color: var(--sh-blue-600, #2563eb);
    font-weight: 600;
    flex-shrink: 0;
}
.sh-fk-rep-meta {
    margin: 0.75rem 0 0;
    font-size: 0.72rem;
    color: var(--sh-gray-400, #9ca3af);
}

/* ── Einsatzbewertungen (fk_detail_spital) ─────────────────────── */
.sh-fk-ratings { padding-top: 1rem; padding-bottom: 0.75rem; }

/* Konsolidierte Einsatzerfahrungs-Stat-Zeile */
.sh-fk-exp-stats {
    display: flex;
    gap: 0;
    border: 1px solid var(--sh-gray-100, #f1f5f9);
    border-radius: var(--sh-radius-sm, 6px);
    overflow: hidden;
    margin-bottom: 16px;
}
.sh-fk-exp-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 8px;
    border-right: 1px solid var(--sh-gray-100, #f1f5f9);
    text-align: center;
}
.sh-fk-exp-stat:last-child { border-right: none; }
.sh-fk-exp-stat--own {
    background: var(--sh-blue-50, #eff6ff);
}
.sh-fk-exp-stat-value {
    font-size: 17px;
    font-weight: 700;
    color: var(--sh-gray-800, #1e293b);
    line-height: 1.2;
}
.sh-fk-exp-stat-label {
    font-size: 10px;
    color: var(--sh-gray-500, #64748b);
    margin-top: 2px;
    line-height: 1.3;
}

/* Rückmeldungs-Summary (narrativ, kein Stern, keine Ø-Zahl) */
.sh-fk-rating-summary {
    margin: 0 0 12px;
    padding: 10px 12px;
    background: var(--sh-gray-50, #f8fafc);
    border-left: 3px solid var(--sh-blue-600, #1e3a5f);
    border-radius: 6px;
}
.sh-fk-rs-headline {
    font-size: 13px;
    font-weight: 600;
    color: var(--sh-gray-800, #1e293b);
    line-height: 1.4;
}
.sh-fk-rs-meta {
    font-size: 11px;
    color: var(--sh-gray-500, #64748b);
    margin-top: 3px;
}

/* Achsen-Liste (Confidence ≥ 5) — qualitatives Tag statt 4.x/5-Bar */
.sh-fk-axis-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    margin-bottom: 12px;
}
.sh-fk-axis-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 10px;
    background: var(--sh-white, #fff);
    border: 1px solid var(--sh-gray-100, #f1f5f9);
    border-radius: 5px;
    font-size: 12px;
}
.sh-fk-axis-label {
    color: var(--sh-gray-700, #334155);
    font-weight: 500;
}
.sh-fk-axis-tag {
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 3px;
    letter-spacing: 0.01em;
}
.sh-fk-axis--strong   { background: #ecfdf5; color: #047857; }
.sh-fk-axis--solid    { background: #eff6ff; color: #1d4ed8; }
.sh-fk-axis--moderate { background: #fef3c7; color: #92400e; }
.sh-fk-axis--mixed    { background: #fee2e2; color: #991b1b; }
.sh-fk-own-reviews {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--sh-gray-100, #f1f5f9);
}
.sh-fk-own-label {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sh-gray-400, #94a3b8);
    margin-bottom: 8px;
}
.sh-fk-own-row {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--sh-gray-100, #f1f5f9);
}
.sh-fk-own-row:last-child { border-bottom: none; margin-bottom: 0; }
.sh-fk-own-date { font-size: 11px; color: var(--sh-gray-400, #94a3b8); font-weight: 600; }
.sh-fk-own-text {
    font-size: 12px;
    color: var(--sh-gray-600, #475569);
    margin: 4px 0 0;
    line-height: 1.45;
}

/* ── Auto-Insights (fk_detail_spital) ──────────────────────────── */
.sh-fk-insights {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 0.625rem 0;
}
.sh-fk-insight {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: 0.8rem;
    line-height: 1.35;
    font-weight: 500;
}
.sh-fk-insight--positive { color: #15803d; }
.sh-fk-insight--neutral  { color: var(--sh-gray-600, #475569); }
.sh-fk-insight--warning  { color: #b45309; }
.sh-fk-insight-icon {
    font-weight: 700;
    font-size: 0.8rem;
    margin-top: 1px;
    flex-shrink: 0;
    width: 12px;
    text-align: center;
}
.sh-fk-insight-text { flex: 1; }

/* ── Hiring Recommendation Banner ──────────────────────────────── */
.sh-hiring-rec {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border-radius: 10px;
    margin-bottom: 0.75rem;
}
.sh-hiring-rec--invite {
    background: linear-gradient(90deg, #ecfdf5, #d1fae5);
    border: 1px solid #a7f3d0;
}
.sh-hiring-rec--review {
    background: linear-gradient(90deg, #eff6ff, #dbeafe);
    border: 1px solid #bfdbfe;
}
.sh-hiring-rec--skip {
    background: var(--sh-gray-50, #f8fafc);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
}
.sh-hr-body { flex: 1; min-width: 0; }
.sh-hr-label {
    font-size: 0.825rem;
    font-weight: 700;
    color: var(--sh-gray-900, #0f172a);
    margin-bottom: 0.15rem;
}
.sh-hiring-rec--invite .sh-hr-label { color: #166534; }
.sh-hiring-rec--review .sh-hr-label { color: #1d4ed8; }
.sh-hr-reason {
    font-size: 0.72rem;
    color: var(--sh-gray-500, #64748b);
    line-height: 1.35;
}
.sh-hr-cta {
    white-space: nowrap;
    flex-shrink: 0;
    padding: 0.45rem 0.875rem;
    border-radius: 6px;
    font-size: 0.775rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity .15s;
}
.sh-hr-cta:hover { opacity: .85; }
.sh-hr-cta--primary {
    background: #0d1f3c;
    color: #fff;
    border: none;
}
.sh-hr-cta--ghost {
    background: transparent;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}
.sh-hr-done {
    font-size: 0.75rem;
    font-weight: 600;
    color: #15803d;
    white-space: nowrap;
    flex-shrink: 0;
}

.sh-hr-cta--muted {
    background: transparent;
    color: var(--sh-gray-500, #64748b);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
}
.sh-hiring-rec--reject {
    background: #fff7f7;
    border: 1px solid #fecaca;
}
.sh-hiring-rec--reject .sh-hr-label { color: #991b1b; }

/* ── Admin Skill Audit ─────────────────────────────────────────── */
.sh-admin-audit {
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    border-radius: 8px;
    padding: 0.75rem !important;
    background: var(--sh-gray-50, #f8fafc);
}
.sh-admin-audit-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.625rem;
}
.sh-admin-badge {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: #0d1f3c;
    color: #fff;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
}
.sh-audit-rows { display: flex; flex-direction: column; gap: 3px; }
.sh-audit-row {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    align-items: baseline;
    gap: 6px;
    font-size: 0.775rem;
    padding: 3px 0;
    border-bottom: 1px solid var(--sh-gray-100, #f1f5f9);
}
.sh-audit-row:last-child { border-bottom: none; }
.sh-audit-row--ok      { color: #166534; }
.sh-audit-row--limited { color: #b45309; }
.sh-audit-row--missing { color: #dc2626; }
.sh-audit-icon { font-weight: 700; font-size: 0.8rem; }
.sh-audit-name { font-weight: 500; }
.sh-audit-muss {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: #fef3c7;
    color: #92400e;
    border-radius: 3px;
    padding: 0.1rem 0.3rem;
    margin-left: 4px;
    vertical-align: middle;
}
.sh-audit-note {
    font-size: 0.7rem;
    color: var(--sh-gray-500, #64748b);
    text-align: right;
}
.sh-audit-row--missing .sh-audit-note { color: #dc2626; }
.sh-audit-row--limited .sh-audit-note { color: #b45309; }
.sh-audit-summary {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--sh-gray-200, #e2e8f0);
    font-size: 0.7rem;
    font-weight: 600;
}
.sh-audit-sum--missing { color: #dc2626; }
.sh-audit-sum--limited { color: #b45309; }

/* Subskill Detail (Eingriffe & Geräte) */
.sh-audit-subskills {
    margin-top: 0.625rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--sh-gray-200, #e2e8f0);
}
.sh-audit-subskills-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--sh-gray-600, #475569);
    margin-bottom: 0.375rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sh-audit-subskills-count {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--sh-blue-600, #0f4c8a);
    background: var(--sh-blue-50, #eff6ff);
    padding: 0.1rem 0.45rem;
    border-radius: 4px;
}
.sh-audit-subskill-rows {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.sh-audit-subskill-row {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    padding: 2px 0;
    border-bottom: 1px solid var(--sh-gray-100, #f1f5f9);
}
.sh-audit-subskill-row:last-child { border-bottom: none; }
.sh-audit-subskill-row.is-matched { color: #166534; }
.sh-audit-subskill-row.is-missing { color: var(--sh-gray-400, #94a3b8); }
.sh-audit-sub-icon { font-weight: 700; font-size: 0.78rem; }
.sh-audit-sub-name { font-weight: 500; }
.sh-audit-sub-tag {
    font-size: 0.6rem;
    font-weight: 600;
    padding: 0.1rem 0.3rem;
    border-radius: 3px;
    white-space: nowrap;
}
.sh-audit-sub-tag--tech {
    background: #dbeafe;
    color: #1e40af;
}
.sh-audit-sub-tag--diff {
    background: #fef9c3;
    color: #854d0e;
}

/* Subcluster-Header in skills_manage_v3 Step 3 */
.sh-subcluster-header {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--sh-gray-500, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.5rem 0 0.25rem;
    margin-top: 0.75rem;
    border-bottom: 1px solid var(--sh-gray-200, #e2e8f0);
    margin-bottom: 0.5rem;
}
.sh-subcluster-header:first-child {
    margin-top: 0;
}
/* Subcluster Focus Toggle (job wizard) */
.sh-sc-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.sh-sc-focus-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.95rem;
    line-height: 1;
    padding: 0 2px;
    opacity: 0.45;
    transition: opacity 0.15s, transform 0.15s;
}
.sh-sc-focus-btn:hover {
    opacity: 1;
    transform: scale(1.15);
}
.sh-sc-focus-btn.is-focus {
    opacity: 1;
}
.sh-sc-focus-btn.is-focus + .sh-sc-focus-label,
.sh-sc-header-row:has(.sh-sc-focus-btn.is-focus) {
    background: linear-gradient(90deg, rgba(251,191,36,0.08) 0%, transparent 100%);
}

/* ── Perfect Wizard: Step 2+3 UX (CEO 2026-04-08) ───────────── */

.sh-section-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sh-blue-900);
    margin-bottom: 0.375rem;
}
.sh-section-sub {
    font-size: 0.8rem;
    color: var(--sh-gray-500);
    margin-bottom: 0;
}
.sh-section-block {
    margin-bottom: 1.5rem;
}
.sh-section-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1.25rem 0 1rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--sh-gray-400);
}
.sh-section-divider::before,
.sh-section-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--sh-gray-200);
}

/* empfohlen badge on specialty cards */
.sh-spec-card-badge {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    background: #EFF6FF;
    color: #1D4ED8;
    border: 1px solid #BFDBFE;
    border-radius: 4px;
    padding: 0.1rem 0.4rem;
    margin-left: 0.375rem;
    vertical-align: middle;
    white-space: nowrap;
}

/* Mode toggle (Station / HR) */
.sh-wizard-mode-toggle {
    display: flex;
    gap: 0;
    border: 1px solid var(--sh-gray-300);
    border-radius: 7px;
    overflow: hidden;
    margin-bottom: 1rem;
}
.sh-wizard-mode-btn {
    flex: 1;
    padding: 0.4rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    border: none;
    background: var(--sh-white);
    color: var(--sh-gray-600);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.sh-wizard-mode-btn.active {
    background: var(--sh-blue-900);
    color: var(--sh-white);
}

/* Core skill row (empfohlen, auto-selected, visual lock) */
.sh-core-skill-row {
    padding: 0.3rem 0.5rem;
    background: #F0F7FF;
    border-radius: 5px;
    margin-bottom: 0.25rem;
    font-size: 0.875rem;
    color: var(--sh-blue-900);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: default;
    user-select: none;
}
.sh-core-skill-row input[type="checkbox"] {
    pointer-events: none;
    accent-color: var(--sh-blue-600);
}
.sh-core-lock {
    font-size: 0.7rem;
    color: var(--sh-gray-400);
    margin-left: auto;
}

/* Impact counter */
.sh-impact-counter {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: #F0F7FF;
    border: 1px solid #BFDBFE;
    border-radius: 8px;
    margin-top: 1.25rem;
}
.sh-impact-num {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--sh-blue-900);
    white-space: nowrap;
}
.sh-impact-delta { font-size: 0.75rem; font-weight: 600; }
.sh-impact-delta.positive { color: #16A34A; }
.sh-impact-delta.negative { color: #DC2626; }

/* Risk warnings */
.sh-risk-warning {
    display: none;
    padding: 0.625rem 0.875rem;
    border-radius: 7px;
    font-size: 0.8125rem;
    margin-top: 0.75rem;
    gap: 0.5rem;
    align-items: flex-start;
}
.sh-risk-warning.visible { display: flex; }
.sh-risk-warning.warning {
    background: #FEF3C7;
    border: 1px solid #FCD34D;
    color: #92400E;
}
.sh-risk-warning.info {
    background: #F0FDF4;
    border: 1px solid #86EFAC;
    color: #166534;
}

/* ============================================================
   Wizard Match Preview Panel — Live Matching Feedback (Steps 2+3)
   ============================================================ */
#wizard-preview-panel {
    padding: 1.25rem 1rem;
}
.sh-preview-header {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--sh-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin-bottom: 0.875rem;
}
.sh-preview-loading {
    text-align: center;
    color: var(--sh-gray-400);
    font-size: 0.8125rem;
    padding: 1.75rem 0;
}
.sh-preview-empty {
    text-align: center;
    padding: 1.5rem 0.5rem;
    color: var(--sh-gray-500);
    font-size: 0.8125rem;
}
.sh-preview-empty-icon {
    font-size: 1.75rem;
    margin-bottom: 0.375rem;
}
.sh-preview-empty-hint {
    font-size: 0.75rem;
    color: var(--sh-gray-400);
    margin-top: 0.25rem;
}

/* State banner (good / tight / empty) */
.sh-pv-state-banner {
    display: none;
    padding: 0.4rem 0.625rem;
    border-radius: 6px;
    font-size: 0.75rem;
    margin-bottom: 0.75rem;
    line-height: 1.4;
}
.sh-pv-state-good .sh-pv-state-banner,
.sh-pv-state-ok .sh-pv-state-banner {
    display: block;
    background: #F0FDF4;
    border: 1px solid #86EFAC;
    color: #166534;
}
.sh-pv-state-tight .sh-pv-state-banner {
    display: block;
    background: #FFFBEB;
    border: 1px solid #FCD34D;
    color: #92400E;
}
.sh-pv-state-empty .sh-pv-state-banner {
    display: block;
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #991B1B;
}

/* Guidance block (state message + smart hints) */
.sh-guidance-block {
    padding: 0.625rem 0.75rem;
    border-radius: 7px;
    font-size: 0.8rem;
    line-height: 1.45;
    margin-bottom: 0.75rem;
}
.sh-guidance-block strong {
    display: block;
    font-size: 0.8125rem;
    margin-bottom: 0.2rem;
}
.sh-guidance-block ul {
    margin: 0.25rem 0 0 1rem;
    padding: 0;
}
.sh-guidance-block li { margin-bottom: 0.15rem; }
.sh-guidance-hint {
    padding: 0.5rem 0.625rem;
    border-radius: 6px;
    font-size: 0.775rem;
    line-height: 1.4;
    margin-bottom: 0.5rem;
    background: #F8FAFC;
    border: 1px solid var(--sh-gray-200);
    color: var(--sh-gray-600);
}

/* State colours for guidance block */
.sh-pv-state-good  .sh-guidance-block { background: #F0FDF4; border: 1px solid #86EFAC; color: #166534; }
.sh-pv-state-ok    .sh-guidance-block { background: #EFF6FF; border: 1px solid #BFDBFE; color: #1E40AF; }
.sh-pv-state-tight .sh-guidance-block { background: #FFFBEB; border: 1px solid #FCD34D; color: #92400E; }
.sh-pv-state-empty .sh-guidance-block { background: #FEF2F2; border: 1px solid #FECACA; color: #991B1B; }

/* Match preview cards */
.sh-preview-card {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.625rem;
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-100);
    border-radius: var(--sh-radius-sm);
    margin-bottom: 0.375rem;
}
.sh-preview-card-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--sh-blue-600);
    color: var(--sh-white);
    font-size: 0.625rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0.02em;
}
.sh-preview-card-body {
    flex: 1;
    min-width: 0;
}
.sh-preview-card-name {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--sh-gray-900);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sh-preview-card-avail {
    font-size: 0.7rem;
    color: var(--sh-gray-400);
    white-space: nowrap;
}
.sh-preview-card-avail.avail-now  { color: #16A34A; }
.sh-preview-card-avail.avail-soon { color: #D97706; }
.sh-preview-card-score {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--sh-blue-900);
    white-space: nowrap;
    flex-shrink: 0;
}
.sh-preview-trust {
    font-size: 0.65rem;
    color: var(--sh-gray-400);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sh-preview-risk {
    font-size: 0.65rem;
    color: #D97706;
}
.sh-preview-total {
    font-size: 0.75rem;
    color: var(--sh-gray-400);
    text-align: center;
    margin-top: 0.625rem;
}
/* Tier-specific card differentiation */
.sh-preview-card--strong {
    border-left: 3px solid #2563EB;
}
.sh-preview-card--strong .sh-preview-card-avatar {
    background: #2563EB;
}
.sh-preview-card--partial {
    border-left: 3px solid #D97706;
}
.sh-preview-card--partial .sh-preview-card-avatar {
    background: #B45309;
}
.sh-preview-card--weak {
    opacity: 0.82;
}
.sh-preview-card--weak .sh-preview-card-avatar {
    background: #9CA3AF;
}
.sh-preview-card--weak .sh-preview-card-score {
    color: var(--sh-gray-400);
}

/* ============================================================
   VERIFIZIERTE KOMPETENZEN — fk_detail_spital.php
   ────────────────────────────────────────────────────────────
   Owner-Iteration 2026-05-26: skillname dominant, Niveau- und
   Verifikations-Chip im FACHKOMPETENZEN-Stil, scanbar in 1 Sek.
   Lebt in dashboard.css (NICHT inline), damit Drawer-/Partial-
   Modus die Styles ebenfalls bekommt (vgl. mode=partial Pattern).
   ============================================================ */
.sh-trust-rows {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.sh-trust-row {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.05);
}
.sh-trust-row:last-child { border-bottom: none; }

.sh-trust-marker {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-block;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.6);
}

.sh-trust-name {
    flex: 1;
    color: var(--sh-gray-900, #0f172a);
    font-weight: 600;
    font-size: 0.8125rem;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Niveau-Chip (Aufsicht · Supervidiert · Selbstständig · Experte) — neutral */
.sh-trust-level {
    flex-shrink: 0;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--sh-text-secondary, #64748b);
    background: var(--sh-surface-subtle, #f1f5f9);
    border: 1px solid var(--sh-border, #e2e8f0);
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
    letter-spacing: 0.005em;
}

/* Verifikations-Chip — status-coloriert */
.sh-trust-status {
    flex-shrink: 0;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
    letter-spacing: 0.005em;
    border: 1px solid transparent;
}

/* Marker-Farben (Punkt am Zeilenanfang) */
.sh-trust-marker.sh-trust--green   { background: #16a34a; }
.sh-trust-marker.sh-trust--yellow  { background: #d97706; }
.sh-trust-marker.sh-trust--red     { background: #dc2626; }
.sh-trust-marker.sh-trust--neutral { background: #94a3b8; }

/* Verifikations-Chip-Farben */
.sh-trust-status.sh-trust--green {
    background: #ecfdf5;
    color: #047857;
    border-color: rgba(16, 163, 74, 0.2);
}
.sh-trust-status.sh-trust--yellow {
    background: #fef3c7;
    color: #92400e;
    border-color: rgba(217, 119, 6, 0.2);
}
.sh-trust-status.sh-trust--red {
    background: #fee2e2;
    color: #991b1b;
    border-color: rgba(220, 38, 38, 0.2);
}
.sh-trust-status.sh-trust--neutral {
    background: #f1f5f9;
    color: #64748b;
    border-color: var(--sh-border, #e2e8f0);
}

.sh-trust-footnote {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.7rem;
    color: var(--sh-gray-500, #94a3b8);
    margin: 0.625rem 0 0;
    font-style: normal;
}
.sh-trust-footnote i { font-size: 0.75rem; }

/* ── M272b · Detail-Alias-Sub-Liste unter Parent-Subskill ──────────────────
   Reine Anzeige-/Transparenzschicht (FK-Detailkompetenzen aus
   fk_subskill_aliases). Eingerückt, neutral — keine Status-Farbcodes
   pro Alias (Owner: alle Aliase sind confidence_source='self').
   Token-only (--sh-gray-*), kein neuer Color-Hardcode.
   ============================================================ */
.sh-trust-alias-list {
    list-style: none;
    margin: 0.25rem 0 0.5rem 1.5rem;
    padding: 0;
    border-left: 1px solid var(--sh-gray-200, #e2e8f0);
}
.sh-trust-alias-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.2rem 0 0.2rem 0.75rem;
    font-size: 0.78rem;
    line-height: 1.35;
}
.sh-trust-alias-name {
    color: var(--sh-gray-700, #334155);
    font-weight: 500;
    flex: 1;
    min-width: 0;
    word-break: break-word;
}
.sh-trust-alias-level {
    flex-shrink: 0;
    font-size: 0.7rem;
    color: var(--sh-text-secondary, #64748b);
    background: var(--sh-surface-subtle, #f1f5f9);
    border: 1px solid var(--sh-border, #e2e8f0);
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    white-space: nowrap;
    letter-spacing: 0.005em;
}

/* ── Verifizierte Kompetenzen — Fachbereichsgruppen (P2, Owner 2026-05-26) ── */
.sh-trust-group {
    margin-bottom: 0.875rem;
}
.sh-trust-group:last-of-type {
    margin-bottom: 0;
}
.sh-trust-group-header {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sh-gray-700, #334155);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 0.35rem;
    padding: 0 0.125rem;
}
.sh-trust-group-count {
    font-weight: 500;
    color: var(--sh-gray-500, #94a3b8);
    text-transform: none;
    letter-spacing: 0;
}
.sh-trust-group-more {
    margin-top: 0.25rem;
}
.sh-trust-group-more > summary.sh-trust-more-btn {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--sh-blue-600, #2563eb);
    padding: 0.3rem 0.125rem;
    user-select: none;
}
.sh-trust-group-more > summary.sh-trust-more-btn::-webkit-details-marker { display: none; }
.sh-trust-group-more > summary.sh-trust-more-btn::marker { content: ''; }
.sh-trust-group-more > summary.sh-trust-more-btn:hover {
    color: var(--sh-blue-700, #1d4ed8);
    text-decoration: underline;
}
.sh-trust-group-more > summary.sh-trust-more-btn::after {
    content: '▾';
    font-size: 0.65rem;
    transition: transform 0.15s ease;
}
.sh-trust-group-more[open] > summary.sh-trust-more-btn::after {
    transform: rotate(180deg);
}
.sh-trust-more-btn-open { display: none; }
.sh-trust-group-more[open] .sh-trust-more-btn-closed { display: none; }
.sh-trust-group-more[open] .sh-trust-more-btn-open { display: inline; }

/* ── Verifizierte Kompetenzen — Job-Kontext-Zonen (P3, Owner 2026-05-26) ── */
.sh-trust-zone {
    margin-bottom: 1rem;
}
.sh-trust-zone:last-of-type {
    margin-bottom: 0;
}
.sh-trust-zone-title {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--sh-blue-700, #1d4ed8);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 0.5rem;
    padding: 0 0.125rem;
    border-bottom: 1px solid var(--sh-blue-100, #dbeafe);
    padding-bottom: 0.3rem;
}
/* PATCH-OP-MATCHING-COVERAGE-TRUTH-01 v3 (Detailseite 2026-07-18):
   Kompakte Job-Pflicht-Coverage direkt unter „Angefragt für diesen Einsatz — MUSS". */
.sh-trust-zone-coverage {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--sh-gray-700, #374151);
    margin: -0.25rem 0 0.6rem;
    padding: 0.35rem 0.5rem;
    background: var(--sh-gray-50, #f9fafb);
    border-left: 3px solid var(--sh-blue-500, #3b82f6);
    border-radius: 4px;
}

/* MUSS / KANN Badges am Gruppen-Header */
.sh-trust-group-badge {
    font-size: 0.6rem;
    font-weight: 700;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.4;
}
.sh-trust-group-badge--muss {
    background: var(--sh-red-50, #fef2f2);
    color: var(--sh-red-700, #b91c1c);
    border: 1px solid var(--sh-red-200, #fecaca);
}
.sh-trust-group-badge--kann {
    background: var(--sh-blue-50, #eff6ff);
    color: var(--sh-blue-700, #1d4ed8);
    border: 1px solid var(--sh-blue-200, #bfdbfe);
}

/* MUSS-Gap-Zeile (angefragt, aber 0 Subskills dokumentiert) */
.sh-trust-group--gap .sh-trust-group-header {
    color: var(--sh-gray-500, #94a3b8);
}
.sh-trust-gap-note {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    color: var(--sh-gray-500, #94a3b8);
    padding: 0.5rem 0.625rem;
    background: var(--sh-surface-subtle, #f8fafc);
    border: 1px dashed var(--sh-border, #e2e8f0);
    border-radius: var(--sh-radius-sm, 6px);
    font-style: italic;
}
.sh-trust-gap-note i { font-size: 0.75rem; }

/* "Weitere verifizierte Kompetenzen" — kollabierte Sektion für nicht-angefragte Domains
   Owner 2026-05-26: als eindeutig klickbare Karte erkennbar machen
   (Hover-State + Surface-Background + großer Chevron rechts) */
.sh-trust-zone-other {
    margin-top: 1rem;
}
.sh-trust-zone-other > summary.sh-trust-zone-other-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0.875rem;
    background: var(--sh-surface-subtle, #f8fafc);
    border: 1px solid var(--sh-border, #e2e8f0);
    border-radius: var(--sh-radius-sm, 6px);
    user-select: none;
    transition: background 0.12s ease, border-color 0.12s ease;
}
.sh-trust-zone-other > summary.sh-trust-zone-other-summary::-webkit-details-marker { display: none; }
.sh-trust-zone-other > summary.sh-trust-zone-other-summary::marker { content: ''; }
.sh-trust-zone-other > summary.sh-trust-zone-other-summary:hover {
    background: var(--sh-blue-50, #eff6ff);
    border-color: var(--sh-blue-200, #bfdbfe);
}
.sh-trust-zone-other > summary.sh-trust-zone-other-summary:focus-visible {
    outline: 2px solid var(--sh-blue-500, #3b82f6);
    outline-offset: 2px;
}
.sh-trust-zone-other-summary-left {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}
.sh-trust-zone-other-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-gray-900, #0f172a);
    letter-spacing: 0;
    text-transform: none;
}
.sh-trust-zone-other-count {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--sh-gray-500, #94a3b8);
}
.sh-trust-zone-other-action {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--sh-blue-600, #2563eb);
    white-space: nowrap;
    flex-shrink: 0;
}
.sh-trust-zone-other-action::after {
    content: '▾';
    font-size: 0.85rem;
    line-height: 1;
    transition: transform 0.15s ease;
}
.sh-trust-zone-other[open] .sh-trust-zone-other-action::after {
    transform: rotate(180deg);
}
.sh-trust-zone-other-action-closed { display: inline; }
.sh-trust-zone-other-action-open   { display: none; }
.sh-trust-zone-other[open] .sh-trust-zone-other-action-closed { display: none; }
.sh-trust-zone-other[open] .sh-trust-zone-other-action-open   { display: inline; }

.sh-trust-zone-other-body {
    margin-top: 0.75rem;
    padding: 0 0.125rem;
}

/* ── M274b: Other-Zone Hybrid-B („Weitere operative Einsatzbreite") ── */
.sh-trust-zone--einsatzbreite {
    margin-top: 1rem;
}
.sh-trust-zone-einsatzbreite-hint {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary, #475569);
    line-height: 1.5;
    margin: 0.25rem 0 0.75rem 0;
    font-style: italic;
}

/* ── FK detail: Zusätzliche Einsatzfähigkeit (KSSG-P0a #2) ───────── */
.sh-fk-deploy {}
.sh-fk-deploy-intro {
    font-size: 0.8125rem;
    color: var(--sh-text-secondary);
    line-height: 1.5;
    margin: 0 0 0.875rem 0;
}
.sh-fk-deploy-empty {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--sh-text-tertiary);
    background: var(--sh-gray-50, #f8fafc);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    border-radius: var(--sh-radius-sm, 8px);
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.875rem;
}
.sh-fk-deploy-empty i { color: var(--sh-gray-500, #64748b); font-size: 0.875rem; }
.sh-fk-deploy-bucket {
    margin-bottom: 0.875rem;
    padding: 0.75rem 0.875rem;
    border-radius: var(--sh-radius-sm, 8px);
    background: var(--sh-gray-50, #f8fafc);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
}
.sh-fk-deploy-bucket:last-child { margin-bottom: 0; }
.sh-fk-deploy-bucket--primary {
    background: #f0fdf4;
    border-color: #bbf7d0;
}
.sh-fk-deploy-bucket--fallback {
    background: #fffbeb;
    border-color: #fde68a;
}
.sh-fk-deploy-bucket--unmapped {
    background: var(--sh-gray-50, #f8fafc);
    border-color: var(--sh-gray-200, #e2e8f0);
}
.sh-fk-deploy-bucket--extra {
    background: #f5f3ff;
    border-color: #ddd6fe;
}
.sh-fk-deploy-bucket-title {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sh-text-secondary);
    margin-bottom: 0.5rem;
}
.sh-fk-deploy-bucket--primary .sh-fk-deploy-bucket-title { color: #047857; }
.sh-fk-deploy-bucket--fallback .sh-fk-deploy-bucket-title { color: #92400e; }
.sh-fk-deploy-bucket--extra .sh-fk-deploy-bucket-title { color: #5b21b6; }
.sh-fk-deploy-bucket-note {
    font-size: 0.75rem;
    color: var(--sh-text-tertiary);
    margin: -0.25rem 0 0.5rem 0;
    line-height: 1.45;
}
/* Cards (Dokumentiert + Zusätzlich angegeben): Grid, max 2 Spalten, eigene Card pro Specialty */
.sh-fk-deploy-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.5rem;
}
.sh-fk-deploy-card {
    background: var(--sh-white, #fff);
    border: 1px solid var(--sh-gray-200, #e2e8f0);
    border-radius: var(--sh-radius-sm, 8px);
    padding: 0.55rem 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}
.sh-fk-deploy-bucket--primary .sh-fk-deploy-card {
    border-color: #bbf7d0;
}
.sh-fk-deploy-bucket--fallback .sh-fk-deploy-card {
    border-color: #fde68a;
}
.sh-fk-deploy-bucket--extra .sh-fk-deploy-card {
    border-color: #ddd6fe;
}
.sh-fk-deploy-card-name {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sh-text-primary);
    line-height: 1.3;
    word-break: break-word;
}
.sh-fk-deploy-card-signal {
    font-size: 0.7rem;
    line-height: 1.35;
    color: var(--sh-text-tertiary);
    font-weight: 500;
}
.sh-fk-deploy-card--tier-verified .sh-fk-deploy-card-signal { color: #047857; font-weight: 600; }
.sh-fk-deploy-card--tier-self     .sh-fk-deploy-card-signal { color: var(--sh-text-secondary); }
.sh-fk-deploy-card--tier-level    .sh-fk-deploy-card-signal { color: var(--sh-text-secondary); }
.sh-fk-deploy-card--tier-none     .sh-fk-deploy-card-signal { color: var(--sh-text-tertiary); font-style: italic; }

/* Chips (Nicht belegt): inline, kompakt, grau, +N weitere toggle */
.sh-fk-deploy-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    align-items: center;
}
.sh-fk-deploy-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    line-height: 1;
    color: var(--sh-text-tertiary);
    background: var(--sh-white, #fff);
    border: 1px solid var(--sh-gray-300, #cbd5e1);
    border-radius: 999px;
    padding: 0.3rem 0.625rem;
    white-space: nowrap;
}
/* Build #2b Final-Mini-Fix (2026-06-13): Job-Kontext-Chip im Bucket "Nicht belegt".
   Subtile blaue Hervorhebung (kein grün/rot — kein Status-Farbcode). Badge ist Hinweis,
   nicht Bewertung. Vorgezogene Reihenfolge kommt aus Helper, nicht aus CSS. */
.sh-fk-deploy-chip--job-context {
    background: var(--sh-blue-50, #eff6ff);
    border-color: var(--sh-blue-200, #bfdbfe);
    color: var(--sh-text-primary);
}
.sh-fk-deploy-chip-label {
    font-weight: 500;
}
.sh-fk-deploy-chip--job-context .sh-fk-deploy-chip-label {
    color: var(--sh-blue-700, #1d4ed8);
}
.sh-fk-deploy-chip-badge {
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--sh-blue-600, #2563eb);
    background: var(--sh-white, #fff);
    border: 1px solid var(--sh-blue-200, #bfdbfe);
    border-radius: 999px;
    padding: 0.15rem 0.45rem;
    line-height: 1.1;
    white-space: nowrap;
}
.sh-fk-deploy-more {
    display: inline-block;
}
.sh-fk-deploy-more-toggle {
    list-style: none;
    cursor: pointer;
    font-size: 0.75rem;
    color: var(--sh-blue-600, #2563eb);
    padding: 0.3rem 0.625rem;
    border: 1px dashed var(--sh-gray-300, #cbd5e1);
    border-radius: 999px;
    user-select: none;
    background: transparent;
}
.sh-fk-deploy-more-toggle::-webkit-details-marker { display: none; }
.sh-fk-deploy-more-open { display: none; }
.sh-fk-deploy-more[open] .sh-fk-deploy-more-closed { display: none; }
.sh-fk-deploy-more[open] .sh-fk-deploy-more-open { display: inline; }
.sh-fk-deploy-chips--extras {
    margin-top: 0.375rem;
    width: 100%;
}

/* ===========================================================================
   M282-A5e — Premium-UI-Pass Service-Wizard Step-5 (Owner-Direktive 2026-06-26)
   Ziel: ruhig, hochwertig, in 3 Sekunden verständlich. Top-Grid 35/65,
   Status-Card calm, Price-Card dominant, Summary als Chips, Buttons mit
   Primär/Sekundär-Hierarchie. Keine Funktionsänderung — nur Markup/CSS/Copy.
   Lädt automatisch via index.php Z. 1859 (job_create_service_wizard ist in der
   dashboard.css-Page-Liste).
   =========================================================================== */
/* 1. Page Wrapper */
.service-wizard-page {
    background: linear-gradient(180deg, var(--sh-gray-50) 0%, var(--sh-white) 100%);
}
/* 2. Header */
.service-wizard-header h2 {
    font-size: 22px;
    font-weight: 600;
    color: #0B3C5D;
    letter-spacing: -0.01em;
    margin: 0 0 4px;
}
.service-wizard-header .subtitle {
    color: var(--sh-gray-500);
    font-size: 14px;
    margin: 0 0 24px;
}
/* 3. Stepper (M282-A5f: SH24-Standard-Wizard-Pattern — nummerierte Kreise,
      Verbindungslinie, Label darunter. Owner-Direktive: visuell wie
      job_create_wizard.php .wizard-progress*. Klick auf valide Steps via
      <button form="sw-goto-form-N"> POST goto. Forms hidden via display:none. */
.service-stepper {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 28px;
    position: relative;
}
.service-stepper::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--sh-gray-200);
    z-index: 0;
}
.service-stepper-form { display: none; }
.service-stepper-step {
    flex: 1;
    text-align: center;
    position: relative;
    z-index: 1;
    border: none;
    background: transparent;
    padding: 0 4px;
    font-family: inherit;
    cursor: default;
}
button.service-stepper-step.is-clickable { cursor: pointer; }
.service-stepper-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--sh-white);
    border: 2px solid var(--sh-gray-200);
    color: var(--sh-gray-500);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    margin: 0 auto 8px;
    transition: background 0.18s, border-color 0.18s, color 0.18s, box-shadow 0.18s;
}
/* M282-A5g: Owner-Audit — alle Circles voll Navy machte den Active-Step
   visuell nicht unterscheidbar von Completed. Active = filled Navy (Status-Beweis),
   Completed = Navy-Outline + Navy-Tint Bg + Navy-Zahl (dezent, klickbar).
   Future (locked) bleibt grau. Ziel: In 1 Sekunde sichtbar, welcher Step aktiv ist. */
.service-stepper-step.is-active .service-stepper-circle {
    background: #0B3C5D;
    border-color: #0B3C5D;
    color: var(--sh-white);
    box-shadow: 0 0 0 4px rgba(11, 60, 93, 0.10);
}
.service-stepper-step.is-done .service-stepper-circle {
    background: rgba(11, 60, 93, 0.06);
    border-color: #0B3C5D;
    color: #0B3C5D;
}
.service-stepper-step.is-clickable:hover .service-stepper-circle,
.service-stepper-step.is-clickable:focus-visible .service-stepper-circle {
    box-shadow: 0 0 0 4px rgba(11, 60, 93, 0.12);
}
.service-stepper-step.is-locked .service-stepper-circle {
    background: var(--sh-white);
    border-color: var(--sh-gray-200);
    color: var(--sh-gray-400);
}
.service-stepper-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--sh-gray-500);
    line-height: 1.35;
    display: block;
}
.service-stepper-step.is-active .service-stepper-label {
    color: #0B3C5D;
    font-weight: 600;
}
.service-stepper-step.is-done .service-stepper-label {
    color: var(--sh-gray-700);
}
.service-stepper-step.is-locked .service-stepper-label { color: var(--sh-gray-400); }
button.service-stepper-step:focus { outline: none; }
button.service-stepper-step:focus-visible { outline: none; }
/* 5. Top-Grid (35% Status | 65% Preis) */
.service-top-grid {
    display: grid;
    grid-template-columns: 35fr 65fr;
    gap: 20px;
    margin-bottom: 24px;
}
/* 6. Status-Card (M282-A5g: NOCH KOMPAKTER — Owner: „darf nicht visuell stärker
      wirken als Preisvorschau". Padding reduziert (10px 12px), Schriftgrössen
      reduziert, status-text inline. Amber-Akzent als 2px statt 3px. Edit-published
      bekommt Navy-Akzent statt Grün, damit Grün als Erfolgsfarbe geschützt bleibt.) */
.service-status-card {
    background: var(--sh-gray-50);
    border: 1px solid var(--sh-gray-200);
    border-left: 2px solid #D97706;
    border-radius: 6px;
    padding: 10px 12px;
}
.service-status-card.is-published {
    border-left-color: #0B3C5D;
}
.service-status-card .status-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--sh-gray-700);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 3px;
}
.service-status-card .status-text {
    font-size: 12px;
    color: var(--sh-gray-700);
    line-height: 1.45;
}
.service-status-card .status-hint {
    margin-top: 4px;
    font-size: 11px;
    color: var(--sh-gray-500);
}
/* 7. Price-Card (M282-A5f: NEUTRAL PREMIUM — weiss + Navy-Akzent. Grün NICHT
      als Hauptfläche für Preis, weil Grün als Erfolgs-/Bestätigungsfarbe
      reserviert bleibt. CHF/h einzeilig per .price-amount > .price-unit. */
.service-price-card {
    background: var(--sh-white);
    border: 1px solid var(--sh-gray-200);
    border-left: 3px solid #0B3C5D;
    border-radius: 10px;
    padding: 16px 20px;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04);
}
.service-price-card.is-range {
    border-left-color: #B45309;
}
.service-price-card.is-unknown {
    background: var(--sh-gray-50);
    border: 1px dashed var(--sh-gray-300);
    box-shadow: none;
}
.service-price-card .price-label {
    font-size: 11px;
    font-weight: 600;
    color: #0B3C5D;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 4px;
}
.service-price-card.is-range .price-label { color: #92400E; }
.service-price-card.is-unknown .price-label { color: var(--sh-gray-600); }
.service-price-card .price-meta {
    font-size: 12px;
    color: var(--sh-gray-600);
    line-height: 1.4;
    margin-bottom: 10px;
}
.service-price-card .price-amount {
    font-size: 28px;
    font-weight: 600;
    color: var(--sh-gray-900);
    letter-spacing: -0.02em;
    line-height: 1.1;
    margin-bottom: 4px;
}
.service-price-card.is-range .price-amount,
.service-price-card.is-unknown .price-amount {
    color: var(--sh-gray-700);
}
.service-price-card .price-amount .price-unit {
    font-size: 14px;
    font-weight: 500;
    color: var(--sh-gray-500);
    letter-spacing: 0;
    margin-left: 1px;
}
.service-price-card .price-vat {
    font-size: 12px;
    color: var(--sh-gray-500);
    margin-bottom: 10px;
}
.service-price-card .price-explanation {
    font-size: 12px;
    color: var(--sh-gray-700);
    line-height: 1.55;
    margin-bottom: 8px;
}
.service-price-card .price-disclaimer {
    font-size: 11px;
    color: var(--sh-text-tertiary);
    line-height: 1.4;
    padding-top: 8px;
    border-top: 1px solid var(--sh-gray-200);
}
/* 8. Summary-Chips Strip (statt grauer Balken) */
.service-summary-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 0;
    border-top: 1px solid var(--sh-gray-200);
    border-bottom: 1px solid var(--sh-gray-200);
    margin-bottom: 24px;
}
.service-summary-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--sh-gray-50);
    border: 1px solid var(--sh-gray-200);
    border-radius: 999px;
    font-size: 12px;
    color: var(--sh-gray-600);
}
.service-summary-chip strong {
    color: var(--sh-gray-900);
    font-weight: 600;
}
/* 9. Form Fields (Step-5: Schicht + Datum) */
.service-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 8px;
}
.service-form-field label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--sh-gray-700);
    margin-bottom: 6px;
}
.service-form-field input[type=date],
.service-form-field select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--sh-gray-300);
    border-radius: var(--sh-radius-sm);
    font-size: 14px;
    color: var(--sh-gray-900);
    background: var(--sh-white);
    transition: border-color 0.15s, box-shadow 0.15s;
}
.service-form-field input[type=date]:focus,
.service-form-field select:focus {
    outline: none;
    border-color: #0B3C5D;
    box-shadow: 0 0 0 3px rgba(11,60,93,0.08);
}
/* 10. Actions — Primär/Sekundär-Hierarchie */
.service-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    padding-top: 24px;
    margin-top: 24px;
    border-top: 1px solid var(--sh-gray-200);
}
.service-btn {
    padding: 12px 20px;
    border-radius: var(--sh-radius-sm);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    border: none;
    font-family: inherit;
}
.service-btn-secondary {
    background: var(--sh-white);
    color: var(--sh-gray-600);
    border: 1px solid var(--sh-gray-300);
}
.service-btn-secondary:hover {
    border-color: var(--sh-gray-400);
    color: var(--sh-gray-800);
}
.service-btn-primary {
    background: #0B3C5D;
    color: var(--sh-white);
}
.service-btn-primary:hover { background: #0A2E48; }
/* Mobile */
@media (max-width: 720px) {
    .service-top-grid { grid-template-columns: 1fr; gap: 12px; }
    .service-form-grid { grid-template-columns: 1fr; }
    .service-actions { flex-direction: column-reverse; }
    .service-btn { width: 100%; }
    .service-price-card .price-amount { font-size: 24px; }
    .service-price-card .price-amount .price-unit { font-size: 13px; }
    .service-stepper-label { font-size: 11px; }
    .service-stepper-circle { width: 32px; height: 32px; font-size: 13px; margin-bottom: 6px; }
    .service-stepper::before { top: 16px; }
}

/* ═══════════════════════════════════════════════════════════════
   Dashboard-D2.1 · Premium Composition (2026-07-07, ersetzt D2-Styles)
   Referenzsystem (Owner): Linear-Präzision · Stripe-Vertrauen ·
   Vercel-Komposition · Ramp-Handlungsorientierung.
   Regeln: 2 Flächentypen (weisse Schattenkarte NUR Hero+Profilpanel;
   flache gray-50-Einlassung) · 1 Schattenebene · Navy #243b53 als einzige
   dunkle Fläche · Grün nur Gate · Amber nur Doku-Signal/Hebel · Rot nur
   Signal-Dot · keine Verläufe · kein Abschneiden von Inhaltswerten.
   ═══════════════════════════════════════════════════════════════ */
:root { --sh-d21-navy: #243b53; --sh-d23-link: #3d5875; }

/* ── Hero: Statusbar + Zone-1-Karte als EINE Fläche (nur Hülle/CSS) ── */
.sh-d21-hero {
    background: var(--sh-white); border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-lg); overflow: hidden;
    box-shadow: var(--sh-card-shadow); margin-bottom: 12px;
}
.sh-d21-hero .sh-v2-statusbar {
    background: var(--sh-d21-navy); border: none; border-radius: 0;
    margin: 0; box-shadow: none;
}
.sh-d21-hero .sh-v2-statusbar-inner { padding: 11px 22px; }
.sh-d21-hero .sh-v2-statusbar-dot { background: rgba(255,255,255,.85); }
.sh-d21-hero .sh-v2-statusbar-text { color: #ffffff; }
.sh-d21-hero .sh-v2-statusbar-sep,
.sh-d21-hero .sh-v2-statusbar-canton,
.sh-d21-hero .sh-v2-statusbar-date { color: rgba(255,255,255,.72); }
.sh-d21-hero .sh-v2-statusbar-link,
.sh-d21-hero .sh-v2-help-btn {
    color: rgba(255,255,255,.85); background: transparent; border: none;
}
.sh-d21-hero .sh-v2-statusbar-link:hover,
.sh-d21-hero .sh-v2-help-btn:hover { color: #ffffff; }
.sh-d21-hero .sh-z1 { margin: 0; padding: 0; }
.sh-d21-hero .sh-z1-card {
    border: none; border-radius: 0; box-shadow: none; margin: 0;
    padding: 12px 20px 14px; background: var(--sh-white);
}
.sh-d21-hero .sh-z1-hospital, .sh-d21-hero .sh-z1-meta,
.sh-d21-hero .sh-d22-progress-row, .sh-d21-hero .sh-z1-actions {
    max-width: 560px;
}
.sh-d21-hero .sh-z1-eyebrow { margin-bottom: 2px; }
.sh-d21-hero .sh-z1-hospital { margin: 0 0 4px; }
.sh-d21-hero .sh-z1-meta { margin-bottom: 6px; }
.sh-d22-progress-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.sh-d22-progress-row .sh-z1-progress { flex: 1; max-width: 320px; margin: 0; }
.sh-d22-progress-info { font-size: .78rem; color: var(--sh-gray-600); white-space: nowrap; }
.sh-d21-hero .sh-z1-actions { margin-top: 0; }
.sh-d21-hero .sh-z1-btn:not(.sh-z1-btn--primary):not(.sh-cta-passive) { padding-left: 10px; padding-right: 10px; font-size: .82rem; }
.sh-d21-hero .sh-z1-hospital { font-size: 1.25rem; }
.sh-d21-hero .sh-z1-progress { background: var(--sh-gray-100); }
.sh-d21-hero .sh-z1-progress-fill { background: var(--sh-d21-navy); }
.sh-d21-hero .sh-z1-btn--primary {
    background: var(--sh-d21-navy); border-color: var(--sh-d21-navy); color: #fff;
    padding-top: 8px; padding-bottom: 8px;
}
.sh-d21-hero .sh-z1-btn--primary:hover { background: #1c2f42; }
.sh-d21-hero .sh-z1-btn:not(.sh-z1-btn--primary):not(.sh-cta-passive) {
    background: transparent; border-color: transparent; color: var(--sh-gray-600);
}
.sh-d21-hero .sh-z1-btn:not(.sh-z1-btn--primary):hover {
    background: var(--sh-gray-50); color: var(--sh-gray-700);
}

/* ── B: Aktionszeile — Aufgabe vor Kennzahl, EIN Navy-Button, Rot nur Dot ── */
.sh-d2-action {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding: 13px 18px; margin: 0 0 16px;
    border-radius: 10px; text-decoration: none;
    border: 1px solid var(--sh-gray-200); background: var(--sh-white);
    transition: border-color .15s ease;
}
.sh-d2-action:hover { border-color: var(--sh-gray-300); }
.sh-d2-action-text { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.sh-d2-action-dot {
    width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
    display: inline-block; align-self: center;
}
.sh-d2-action--critical  .sh-d2-action-dot { background: var(--sh-state-blocked); }
.sh-d2-action--attention .sh-d2-action-dot { background: var(--sh-state-improve); }
.sh-d2-action-text strong { font-size: .95rem; font-weight: 700; color: var(--sh-black); }
.sh-d2-action-text span   { font-size: .82rem; color: var(--sh-gray-600); }
.sh-d2-action-cta {
    flex-shrink: 0; font-size: .85rem; font-weight: 600;
    color: #ffffff; background: var(--sh-d21-navy);
    padding: 9px 18px; border-radius: 8px; white-space: nowrap;
}
.sh-d2-action:hover .sh-d2-action-cta { background: #1c2f42; }

/* ── C: Summary — 3 vollständige Blöcke, Wert > Label, KEIN Ellipsis ── */
.sh-d2-statusline {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0; padding: 16px 20px; margin-bottom: 12px;
    align-items: start;
    background: var(--sh-gray-50); border-radius: 12px;
    box-shadow: inset 0 0 0 1px var(--sh-gray-100);
}
.sh-d2-seg { display: flex; flex-direction: column; gap: 0; min-width: 0; max-width: 30ch; padding-right: 18px; }
.sh-d2-seg + .sh-d2-seg { border-left: 1px solid rgba(15,23,42,.05); padding-left: 18px; }
.sh-d2-seg:last-child { padding-right: 0; }
.sh-d2-seg-label {
    font-size: .66rem; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; color: var(--sh-gray-500);
    margin-bottom: 2px; line-height: 1.2;
}
.sh-d2-seg-value {
    font-size: 1.05rem; font-weight: 700; color: var(--sh-black);
    line-height: 1.35; white-space: normal;
}
.sh-d2-seg-link, .sh-d23-link {
    font-size: .72rem; font-weight: 500; color: var(--sh-d23-link);
    text-decoration: none; white-space: nowrap; align-self: flex-start;
    margin-top: 8px; line-height: 1.3;
}
.sh-d2-seg-link:hover, .sh-d23-link:hover { text-decoration: underline; color: var(--sh-d21-navy); }

/* ── E: Navigation — flache Leiste, Hairline, Underline-Logik, keine Pills ── */
.sh-d2-nav {
    display: flex; align-items: stretch; gap: 6px;
    border-top: 1px solid var(--sh-gray-100);
    border-bottom: 1px solid var(--sh-gray-200);
    margin-bottom: 12px; padding: 2px 2px 0;
}
.sh-d2-nav > a, .sh-d2-nav-more > summary {
    font-size: .85rem; font-weight: 600; color: var(--sh-gray-600);
    text-decoration: none; cursor: pointer; list-style: none;
    padding: 9px 13px 10px; border-radius: 6px 6px 0 0;
    position: relative;
    transition: background .12s ease, color .12s ease;
}
.sh-d2-nav > a:hover, .sh-d2-nav-more > summary:hover {
    background: var(--sh-gray-50); color: var(--sh-gray-900, #0f172a);
}
.sh-d2-nav > a.is-active { color: var(--sh-black); font-weight: 700; }
.sh-d2-nav > a.is-active::after {
    content: ''; position: absolute; left: 13px; right: 13px; bottom: -1px;
    height: 2px; background: var(--sh-d21-navy); border-radius: 1px;
}
.sh-d2-nav-dot {
    display: inline-block; width: 6px; height: 6px; border-radius: 50%;
    background: var(--sh-state-improve); margin-left: 5px; vertical-align: super;
}
.sh-d2-nav-more { position: relative; }
.sh-d2-nav-more > summary::-webkit-details-marker { display: none; }
.sh-d2-nav-more > summary::after { content: ' ›'; color: var(--sh-gray-400); }
.sh-d2-nav-more-menu {
    position: absolute; right: 0; top: calc(100% + 6px); z-index: 40;
    background: var(--sh-white); border: 1px solid var(--sh-gray-200);
    border-radius: var(--sh-radius-md); box-shadow: var(--sh-card-shadow-hover);
    padding: 6px 0; min-width: 200px; display: flex; flex-direction: column;
}
.sh-d2-nav-more-menu a {
    padding: 8px 16px; font-size: .85rem; color: var(--sh-gray-700);
    text-decoration: none; border-radius: 0; border-bottom: none;
}
.sh-d2-nav-more-menu a:hover { background: var(--sh-gray-50); color: var(--sh-black); }

/* ── D2.2: Rhythmus — Nav und Profilpanel gehören sichtbar zusammen ── */
.sh-v2 .sh-tools-section { padding-bottom: 0; }
.sh-d2-profile-section, .sh-v2-section.sh-d2-profile-section { margin-top: 0 !important; }

/* ── D: Profilpanel — Gate → Status → Fachbereiche → Schritt → Sicht → Accordion ── */
.sh-d21-gate { display: flex; align-items: center; justify-content: flex-start;
    gap: 8px; font-size: .85rem; font-weight: 600; margin-bottom: 10px; }
.sh-d21-gate--ok   { color: var(--sh-green-600); }
.sh-d21-gate--warn { color: var(--sh-red-600); }
.sh-d21-fach-line { font-size: .875rem; color: var(--sh-black); margin: 2px 0 0; }
.sh-d21-fach-line .sh-d21-fach-count { color: var(--sh-gray-500); font-weight: 400; }
.sh-d21-preview-link { display: inline-block; margin-bottom: 0; }

/* ── D2.3: Panel-Innenarchitektur — Statuszone / getönte Aktionszone ── */
.sh-d23-status-zone { padding: 14px 22px 12px; background: var(--sh-white); }
.sh-d23-action-zone {
    background: var(--sh-gray-50);
    border-top: 1px solid var(--sh-gray-200);
    padding: 14px 22px 16px;
}
.sh-d23-task { padding: 6px 0 10px; }
.sh-d23-task-label {
    display: flex; align-items: center; gap: 7px;
    font-size: .68rem; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; color: var(--sh-gray-500); margin-bottom: 5px;
}
.sh-d23-task-dot {
    width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
    background: var(--sh-state-improve);
}
.sh-d23-task-row {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 14px; flex-wrap: wrap;
}
.sh-d23-task-row > span { font-size: .9rem; color: var(--sh-black); }
.sh-d25-util-label {
    font-size: .64rem; font-weight: 700; letter-spacing: .05em;
    text-transform: uppercase; color: var(--sh-gray-500);
    margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(15,23,42,0.04);
}
.sh-d23-meta-row { margin-top: 4px; padding-top: 0; border-top: none; }

/* ── Accordion — integriert, kein eigener Kartenkörper ── */
.sh-d2-accordion { margin-top: 6px; border-top: 1px solid rgba(15,23,42,0.04); }
.sh-d2-accordion > summary {
    display: flex; align-items: center; gap: 7px;
    padding: 6px 0 2px; cursor: pointer; list-style: none;
    font-size: .72rem; font-weight: 600; color: var(--sh-d23-link);
}
.sh-d2-accordion > summary:hover { color: var(--sh-d21-navy); text-decoration: underline; }
.sh-d2-accordion > summary::-webkit-details-marker { display: none; }
.sh-d2-acc-chev { font-size: .7em; transition: transform .15s ease; }
.sh-d2-accordion[open] .sh-d2-acc-chev { transform: rotate(90deg); }
.sh-d2-acc-body { padding-top: 10px; }
.sh-d2-mp-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 8px 0;
}
.sh-d2-mp-row + .sh-d2-mp-row { border-top: 1px solid var(--sh-gray-50); }

/* ── D2.2: Seitenabschluss — Footer mit Hairline, nah am Inhalt ── */
.sh-v2 .sh-v2-footer {
    margin-top: 32px; padding: 14px 4px 22px;
    border-top: 1px solid var(--sh-gray-200);
}
.sh-v2 .sh-v2-footer .sh-d24-sep { color: var(--sh-gray-300); margin: 0 6px; }
.sh-v2 .sh-v2-footer p { font-size: .75rem; color: var(--sh-gray-500); margin: 0; }
.sh-v2 .sh-v2-footer a { white-space: nowrap; }

/* ── Fokuszustände (Tastatur) ── */
.sh-d2-nav > a:focus-visible, .sh-d2-nav-more > summary:focus-visible,
.sh-d2-seg-link:focus-visible, .sh-d2-action:focus-visible,
.sh-d2-accordion > summary:focus-visible, .sh-d21-preview-link:focus-visible,
.sh-d21-hero .sh-z1-btn:focus-visible, .sh-d21-hero .sh-v2-statusbar-link:focus-visible {
    outline: 2px solid var(--sh-blue-600); outline-offset: 2px; border-radius: 6px;
}

/* ── Mobile: eigenständige Komposition, kein gequetschter Desktop ── */
@media (max-width: 720px) {
    .sh-d21-hero .sh-v2-statusbar-inner { padding: 9px 14px; flex-wrap: wrap; gap: 4px; }
    .sh-d21-hero .sh-z1-card { padding: 14px 16px 16px; }
    .sh-d2-action { flex-direction: column; align-items: flex-start; gap: 10px; padding: 12px 14px; }
    .sh-d2-statusline {
        grid-template-columns: 1fr; gap: 0;
        border-radius: 10px; padding: 4px 14px;
        background: var(--sh-gray-50);
    }
    .sh-d2-seg { padding: 10px 0; padding-right: 0; max-width: none; }
    .sh-d2-seg + .sh-d2-seg { border-left: none; padding-left: 0; border-top: 1px solid var(--sh-gray-100); }
    .sh-d23-status-zone, .sh-d23-action-zone { padding-left: 16px; padding-right: 16px; }
    .sh-d2-nav { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .sh-d2-nav > a, .sh-d2-nav-more > summary { white-space: nowrap; }
    /* O-D25-M2: funktionaler Scroll-Fade (kein Deko-Gradient) — Owner-Option "seitlicher Fade" */
    .sh-d2-nav {
        -webkit-mask-image: linear-gradient(to right, black calc(100% - 32px), transparent);
                mask-image: linear-gradient(to right, black calc(100% - 32px), transparent);
    }
    .sh-d2-nav.sh-d25-nav-end {
        -webkit-mask-image: none;
                mask-image: none;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PATCH-MATCHING-EVIDENCE-STATE-01 · 2026-07-18
   Segmentierung der Kartenliste in 4 Evidence-State-Buckets + Karten-Badge.
   Ruhige, neutrale Optik — keine wertenden Farben. Die Semantik entsteht
   sprachlich, nicht durch Signalfarben.
   ═══════════════════════════════════════════════════════════════════════════ */
.sh-segment { margin-top: 1.75rem; }
.sh-segment:first-child { margin-top: 0; }
.sh-segment-title {
    display: flex; align-items: center; gap: 8px;
    font-size: 0.95rem; font-weight: 700; color: var(--sh-gray-800, #1f2937);
    margin: 0 0 0.25rem 0;
}
.sh-segment-count {
    font-size: 0.75rem; font-weight: 500; color: var(--sh-gray-400, #9ca3af);
    background: var(--sh-gray-50, #f9fafb);
    border-radius: 999px; padding: 1px 8px;
}
.sh-segment-sub {
    font-size: 0.78rem; line-height: 1.45;
    color: var(--sh-gray-500, #6b7280);
    margin: 0 0 0.85rem 0; max-width: 62ch;
}
.sh-segment--not_eligible .sh-segment-title,
.sh-segment--not_visible .sh-segment-title { color: var(--sh-gray-500, #6b7280); }

/* PATCH-MATCHING-EVIDENCE-STATE-02 · 2026-07-19 — neue 4-Bucket-Titel
   (FACHBEREICH_ANGEGEBEN / BERUFSGRUPPE_PASSEND) und Actionability-Chips. */
.sh-segment--fachbereich_angegeben .sh-segment-title { color: var(--sh-gray-800, #1f2937); }
.sh-segment--berufsgruppe_passend  .sh-segment-title { color: var(--sh-gray-700, #374151); }

/* PATCH-MATCHING-EVIDENCE-STATE-02 (Präsentations-Korrektur 2026-07-19):
   Zweitier — primärer Feed (PASSEND dominant, kompakter Sub-Header) +
   sekundärer einklappbarer Bereich (TEILWEISE/FACHBEREICH/BERUFSGRUPPE). */
.sh-segment--primary { margin-top: 0.75rem; }
.sh-segment-compact {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 0.78rem; font-weight: 600; color: var(--sh-gray-600, #4b5563);
    margin: 0 0 0.6rem 0;
    text-transform: none; letter-spacing: 0;
}
.sh-segment-compact-label { color: var(--sh-gray-600, #4b5563); }

.sh-secondary-candidates {
    margin-top: 2rem;
    border-top: 1px solid var(--sh-border, #e5e7eb);
    padding-top: 1.25rem;
}
.sh-secondary-summary {
    display: inline-flex; align-items: center; gap: 8px;
    cursor: pointer; user-select: none;
    font-size: 0.9rem; font-weight: 600;
    color: var(--sh-gray-700, #374151);
    padding: 6px 2px;
    list-style: none;
}
.sh-secondary-summary::-webkit-details-marker { display: none; }
.sh-secondary-summary::before {
    content: '\25B8';
    font-size: 0.8rem; color: var(--sh-gray-400, #9ca3af);
    transition: transform 160ms ease;
}
.sh-secondary-candidates[open] > .sh-secondary-summary::before { transform: rotate(90deg); }
.sh-secondary-label { color: var(--sh-gray-700, #374151); }
.sh-secondary-body { margin-top: 0.75rem; }
.sh-secondary-body .sh-segment { margin-top: 1.5rem; }
.sh-secondary-body .sh-segment:first-child { margin-top: 0.25rem; }
.sh-segment--secondary .sh-segment-title { font-size: 0.85rem; }

.sh-mc-actionability {
    display: flex; flex-wrap: wrap; gap: 6px;
    margin-top: 6px;
}
.sh-mc-act-chip {
    font-size: 0.7rem; line-height: 1.3;
    padding: 2px 8px; border-radius: 999px;
    border: 1px solid var(--sh-gray-200, #e5e7eb);
    background: var(--sh-gray-50, #f9fafb);
    color: var(--sh-gray-700, #374151);
    white-space: nowrap;
}
.sh-mc-act-chip--warn {
    border-color: #fde68a;
    background: #fffbeb;
    color: #92400e;
}
.sh-mc-act-chip--info {
    border-color: #dbeafe;
    background: #eff6ff;
    color: #1e40af;
}

/* Karten-Evidence-Badge — dezente Zeile unterhalb Caution, oberhalb Coverage. */
.sh-mc-evidence {
    font-size: 0.75rem; line-height: 1.35;
    color: var(--sh-gray-700, #374151);
    background: var(--sh-gray-50, #f9fafb);
    border-left: 3px solid var(--sh-gray-300, #d1d5db);
    border-radius: 4px;
    padding: 4px 10px; margin-top: 6px;
}
.sh-mc-evidence--full      { border-left-color: var(--sh-primary, #0d9488); }
.sh-mc-evidence--majority  { border-left-color: var(--sh-primary, #0d9488); }
.sh-mc-evidence--partial   { border-left-color: var(--sh-gray-400, #9ca3af); }
.sh-mc-evidence--open      { border-left-color: var(--sh-gray-300, #d1d5db); }
.sh-mc-evidence--norequire { border-left-color: var(--sh-gray-300, #d1d5db); }

/* ═════════════════════════════════════════════════════════════════════════
   OP_MATCHING_REVIEW_FLOW_01 — kompakter Match-Detail-Drawer (.sh-md-*)
   Bewusst schmaler Namespace, damit fk_detail_spital-Selectors nicht kollidieren.
   ═════════════════════════════════════════════════════════════════════════ */
.sh-md { font-size: 14px; color: #0f172a; line-height: 1.5; padding: 4px 0 96px; }
.sh-md > * + * { margin-top: 20px; }

/* Kopf */
.sh-md-head { display: flex; gap: 14px; align-items: flex-start; }
.sh-md-avatar {
    position: relative; width: 56px; height: 56px; border-radius: 50%;
    overflow: hidden; background: #e5e7eb; flex-shrink: 0;
}
.sh-md-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sh-md-avatar-fallback {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    background: #1e3a8a; color: #fff; font-weight: 600; font-size: 20px;
}
.sh-md-dot {
    position: absolute; bottom: 2px; right: 2px; width: 12px; height: 12px;
    border-radius: 50%; border: 2px solid #fff;
}
.sh-md-dot--ready { background: #16a34a; }
.sh-md-dot--soon  { background: #f59e0b; }
.sh-md-dot--busy  { background: #dc2626; }
.sh-md-dot--unknown { background: #94a3b8; }
.sh-md-head-body { flex: 1; min-width: 0; }
.sh-md-name  { font-size: 17px; font-weight: 700; color: #0f172a; }
.sh-md-role  { font-size: 13px; color: #475569; margin-top: 2px; }
.sh-md-avail { font-size: 12px; color: #64748b; margin-top: 4px; }
.sh-md-wf-badge {
    font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px;
    align-self: flex-start; white-space: nowrap;
}
.sh-md-wf-accepted    { background: #dcfce7; color: #166534; }
.sh-md-wf-invited     { background: #dbeafe; color: #1e40af; }
.sh-md-wf-shortlisted { background: #fef3c7; color: #92400e; }

/* Job-Kontext */
.sh-md-jobctx {
    background: #f1f5f9; border-left: 3px solid #1e3a8a; border-radius: 6px;
    padding: 12px 14px;
}
.sh-md-jobctx-label {
    font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
    text-transform: uppercase; color: #64748b; margin-bottom: 6px;
}
.sh-md-jobctx-title { font-size: 14px; font-weight: 600; color: #0f172a; }
.sh-md-jobctx-spec  { font-size: 13px; color: #475569; margin-top: 2px; }
.sh-md-jobctx-meta {
    display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px;
    font-size: 12px; color: #475569;
}

/* Match-Kern */
.sh-md-core {
    background: #ffffff; border: 1px solid #e2e8f0; border-left-width: 4px;
    border-radius: 6px; padding: 14px 16px;
}
.sh-md-core--full_evidence     { border-left-color: #16a34a; }
.sh-md-core--majority_evidence { border-left-color: #0d9488; }
.sh-md-core--partial_evidence  { border-left-color: #f59e0b; }
.sh-md-core--specialty_known   { border-left-color: #94a3b8; }
.sh-md-core--profession_only   { border-left-color: #cbd5e1; }
.sh-md-core-title { font-size: 15px; font-weight: 700; color: #0f172a; }
.sh-md-core-num   { font-size: 24px; font-weight: 700; color: #0f172a; margin-top: 4px; letter-spacing: -0.02em; }
.sh-md-core-spec  { font-size: 13px; color: #334155; margin-top: 8px; font-weight: 500; }
.sh-md-core-split { font-size: 12px; color: #475569; margin-top: 4px; }
.sh-md-core-sub   { font-size: 13px; color: #64748b; margin-top: 6px; }

/* Blocks */
.sh-md-block-label {
    font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
    text-transform: uppercase; color: #64748b; margin-bottom: 8px;
}

/* Skills */
.sh-md-skill-list { list-style: none; margin: 0; padding: 0; }
.sh-md-skill-list li {
    display: flex; justify-content: space-between; align-items: center;
    padding: 6px 0; border-bottom: 1px solid #f1f5f9; gap: 12px;
}
.sh-md-skill-list li:last-child { border-bottom: none; }
.sh-md-skill-name { font-size: 13px; color: #0f172a; }
.sh-md-skill-tag  { font-size: 11px; font-weight: 600; white-space: nowrap; padding: 2px 8px; border-radius: 999px; }
.sh-md-tag--verified { background: #dcfce7; color: #166534; }
.sh-md-tag--self     { background: #f1f5f9; color: #475569; }
.sh-md-skill-more { font-size: 12px; color: #64748b; margin-top: 8px; font-style: italic; }

/* Einsatzrahmen */
.sh-md-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.sh-md-chip {
    font-size: 12px; padding: 4px 10px; border-radius: 999px;
    background: #f1f5f9; color: #334155; font-weight: 500;
}

/* Offene Punkte */
.sh-md-open-empty { font-size: 13px; color: #16a34a; font-weight: 500; }
.sh-md-open-list  { margin: 0; padding: 0 0 0 18px; font-size: 13px; color: #475569; }
.sh-md-open-list li { margin-bottom: 4px; }

/* Sekundär-Links */
.sh-md-links {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    font-size: 13px; padding-top: 4px; border-top: 1px solid #f1f5f9;
    margin-top: 8px !important; padding-top: 12px;
}
.sh-md-link {
    color: #475569; text-decoration: none; font-weight: 500;
}
.sh-md-link:hover { color: #1e293b; text-decoration: underline; }

/* Entscheidungsleiste (sticky bottom) */
.sh-md-decision {
    position: sticky; bottom: 0; left: 0; right: 0;
    display: flex; gap: 8px; padding: 12px 0;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #ffffff 30%);
    margin-top: 24px !important;
}
.sh-md-btn {
    flex: 1; padding: 10px 14px; border-radius: 8px; border: 1px solid transparent;
    font-size: 13px; font-weight: 600; cursor: pointer; text-align: center;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    font-family: inherit; transition: background 0.15s, border-color 0.15s;
}
.sh-md-btn--primary   { background: #1e3a8a; color: #fff; }
.sh-md-btn--primary:hover { background: #1e40af; }
.sh-md-btn--secondary { background: #f1f5f9; color: #0f172a; border-color: #cbd5e1; }
.sh-md-btn--secondary:hover { background: #e2e8f0; }
.sh-md-btn--ghost     { background: transparent; color: #64748b; border-color: #e2e8f0; }
.sh-md-btn--ghost:hover { background: #f8fafc; color: #dc2626; border-color: #fecaca; }
.sh-md-btn--done      { background: #f8fafc; color: #64748b; border: 1px dashed #cbd5e1; cursor: default; }

/* ═════════════════════════════════════════════════════════════════════════
   OP_MATCHING_REVIEW_FLOW_01 — Dossier-Zentrierung Desktop
   ═════════════════════════════════════════════════════════════════════════ */
@media (min-width: 900px) {
    .sh-dossier {
        max-width: 1100px;
        margin: 0 auto;
        padding: 32px 40px;
    }
    .sh-dossier-toolbar,
    .sh-dossier-admin-banner {
        max-width: 1100px;
        margin-left: auto;
        margin-right: auto;
    }
}
@media print {
    .sh-dossier { max-width: none; margin: 0; padding: 0; }
}

/* ═════════════════════════════════════════════════════════════════════════
   OP_MATCHING_REVIEW_FLOW_01 — Matching-Results Composition (2026-07-19)
   Scoped via .sh-mr-scope auf pages/matching_results_spital.php.
   Fixes:
   1. Container zentriert (max 1280px) statt linksklebender Karte.
   2. Job-Header und Match-Segmente optisch getrennt.
   3. Bei 1 Match: breite Einzelkarte (760–900px) statt schmaler Säule links.
   4. Bei ≥2 Matches: sauberes Zwei-Spalten-Raster ab Desktop.
   5. Sekundärer Bereich visuell zurückgenommen.
   Keine PHP-Struktur-Änderung erforderlich.
   ═════════════════════════════════════════════════════════════════════════ */
.sh-mr-scope {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px;
    box-sizing: border-box;
}
.sh-mr-scope.sh-dashboard-header {
    padding-top: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--sh-border, #e5e7eb);
    margin-bottom: 24px;
}
.sh-mr-scope.sh-dashboard-inner {
    padding-bottom: 64px;
}
/* Job-Header semantisch verdichten: "Ihre Ausschreibung"-Charakter */
.sh-mr-scope .sh-page-title {
    font-size: clamp(1.35rem, 2vw + 0.5rem, 1.75rem);
    line-height: 1.25;
    margin-bottom: 8px;
}
.sh-mr-scope .sh-header-meta.sh-jobctx {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: center;
    font-size: 0.9rem;
    color: var(--sh-text-secondary, #64748b);
    margin-top: 8px;
}
/* Segment-Titel klarer trennen */
.sh-mr-scope .sh-segment--primary {
    margin-top: 8px;
    margin-bottom: 24px;
}
.sh-mr-scope .sh-segment-compact {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    color: var(--sh-text-primary, #0f172a);
    margin-bottom: 16px;
    padding: 6px 14px;
    background: var(--sh-bg-subtle, #f1f5f9);
    border-radius: 999px;
    font-size: 0.9rem;
}
.sh-mr-scope .sh-segment-compact .sh-segment-count {
    background: var(--sh-accent, #2563eb);
    color: #fff;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}
/* Grid: breite Einzelkarte bei nur einem Kind, sonst 2-Spalten ab 1024px */
.sh-mr-scope .sh-grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}
@media (min-width: 1024px) {
    .sh-mr-scope .sh-grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    /* Einzige Karte im Grid → breit zentriert */
    .sh-mr-scope .sh-grid-2:has(> .sh-card:only-child) {
        grid-template-columns: minmax(0, 860px);
        justify-content: center;
    }
}
/* Sekundäres Kandidaten-Segment visuell zurückgenommen */
.sh-mr-scope .sh-secondary-candidates {
    margin-top: 32px;
    border-top: 1px dashed var(--sh-border, #e5e7eb);
    padding-top: 20px;
}
.sh-mr-scope .sh-secondary-summary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    color: var(--sh-text-secondary, #64748b);
    font-size: 0.95rem;
    padding: 6px 4px;
    list-style: none;
}
.sh-mr-scope .sh-secondary-summary::marker,
.sh-mr-scope .sh-secondary-summary::-webkit-details-marker {
    display: none;
}
.sh-mr-scope .sh-secondary-summary::before {
    content: "▸";
    font-size: 0.8rem;
    transition: transform 0.15s;
}
.sh-mr-scope .sh-secondary-candidates[open] .sh-secondary-summary::before {
    transform: rotate(90deg);
}
.sh-mr-scope .sh-secondary-body {
    margin-top: 16px;
}
/* Sub-Nav "Meine Ausschreibungen" links, konsistent */
.sh-mr-scope .sh-header-top {
    margin-bottom: 12px;
}
/* Mobile: kleinere Innenränder */
@media (max-width: 720px) {
    .sh-mr-scope {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* ═════════════════════════════════════════════════════════════════════════
   OP_MATCHING_REVIEW_FLOW_02 — Paket A · Visuelle Hierarchie (2026-07-19)
   3-Ebenen-Staffelung:
     Ebene 1 · Page-BG      → slate-50 (#f8fafc)
     Ebene 2 · Ausschreibung → slate-100 (#f1f5f9) als Kontext-Karte
     Ebene 3 · Match-Kachel  → #ffffff mit slate-200 Border + weichem Shadow
   Scope streng auf Matching-Results: body-Regel via :has(.sh-mr-scope),
   Header über neue Klasse .sh-mr-job-context (kein globaler
   .sh-dashboard-header-Override).
   ═════════════════════════════════════════════════════════════════════════ */

/* Ebene 1 — Page-Background nur wenn Matching-Results aktiv */
body:has(.sh-mr-scope) {
    background: #f8fafc;
}

/* Ebene 2 — Ausschreibungsblock als Premium-Kontextcontainer.
   Owner 2026-07-20: großzügiges Padding, Radius 16, klar dominanter Titel.
   Keine Chip-/Filterleisten-Anmutung mehr. */
.sh-mr-job-context {
    border-radius: 16px;
    padding: 28px 32px;
    margin-top: 16px;
    margin-bottom: 32px;
    position: relative;
}
/* Hero-Bild + dunkler Gradient bleiben vom globalen .sh-dashboard-header aktiv.
   Owner 2026-07-20: nur Textfarben werden hell/weiss gesetzt (siehe unten). */
.sh-mr-scope.sh-mr-job-context.sh-dashboard-header {
    border-bottom: none;
    padding-top: 28px;
    padding-bottom: 28px;
    margin-bottom: 32px;
}
/* Header-Top: Backlink links, Edit-Icon rechts */
.sh-mr-job-context .sh-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
/* Edit-Icon rechts oben — subtil, nicht dominant */
.sh-mr-job-context__edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px; height: 32px;
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.78);
    background: transparent;
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
    font-size: 13px;
    position: relative;
    z-index: 1;
}
.sh-mr-job-context__edit:hover { color: #ffffff; background: rgba(255, 255, 255, 0.12); }
.sh-mr-job-context__edit.is-locked { opacity: 0.45; cursor: not-allowed; }
/* Eyebrow-Label: kleine Kennung "Ihre Ausschreibung" über dem Jobtitel */
.sh-mr-job-context__eyebrow {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
    margin-bottom: 6px;
    position: relative;
    z-index: 1;
}
.sh-mr-job-context .sh-page-title {
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: #ffffff;
    margin: 0 0 4px;
    overflow-wrap: anywhere;
    position: relative;
    z-index: 1;
}
/* Chip-Row unter dem Titel: konsistentes Chip-Aussehen */
.sh-mr-job-context .sh-header-meta.sh-jobctx {
    gap: 8px 10px;
    margin-top: 12px;
}
.sh-mr-job-context .sh-header-meta.sh-jobctx > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.82rem;
    color: #334155;
    line-height: 1.2;
    white-space: nowrap;
}
.sh-mr-job-context .sh-header-meta.sh-jobctx .sh-jobctx-ref {
    background: #0f172a;
    color: #f8fafc;
    border-color: #0f172a;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.76rem;
    letter-spacing: 0.04em;
}
/* Match-Zähler-Bar visuell klar in der Kontext-Karte einordnen */
.sh-mr-job-context .sh-match-count-bar {
    margin-top: 12px;
}

/* Mobile: kompaktere Kontext-Karte */
@media (max-width: 720px) {
    .sh-mr-job-context,
    .sh-mr-scope.sh-mr-job-context.sh-dashboard-header {
        padding: 20px 20px;
        border-radius: 14px;
        margin-bottom: 24px;
    }
    .sh-mr-job-context .sh-page-title {
        font-size: 1.35rem;
    }
}

/* ─── JOBCTX-REDESIGN-01 (2026-07-19) ────────────────────────────────
   Ausschreibungs-Meta als ruhige Label-Wert-Paare (kein Chip-Chrome,
   keine Icons). Cross-Tab statischer Header. Datenquellen ausschließlich
   job_postings (title, start_date, end_date, workload_percent, status,
   employment_type × hire_goal via formatEmploymentTypeLabel).
   Ersetzt visuell die alte .sh-header-meta.sh-jobctx-Chip-Row + die
   .sh-match-count-bar. Alte Klassen bleiben im CSS bestehen (andere
   Legacy-Views können sie noch nutzen), werden im Matching-Header aber
   nicht mehr gerendert. */
.sh-mr-jobctx-meta {
    margin: 16px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px 40px;
    position: relative;
    z-index: 1;
}
.sh-mr-jobctx-meta__row {
    display: grid;
    grid-template-columns: 104px 1fr;
    align-items: baseline;
    gap: 12px;
    font-size: 0.92rem;
    line-height: 1.4;
    min-width: 0;
}
.sh-mr-jobctx-meta dt {
    color: rgba(255, 255, 255, 0.68);
    font-weight: 500;
    letter-spacing: 0.01em;
    font-size: 0.82rem;
}
.sh-mr-jobctx-meta dd {
    margin: 0;
    color: #ffffff;
    font-weight: 600;
    min-width: 0;
    overflow-wrap: anywhere;
}
.sh-mr-jobctx-meta__mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.86rem;
    letter-spacing: 0.02em;
    font-weight: 500;
}
.sh-mr-jobctx-secondary {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.78);
    font-weight: 500;
    position: relative;
    z-index: 1;
}

@media (max-width: 480px) {
    .sh-mr-jobctx-meta {
        grid-template-columns: 1fr;
        gap: 10px 0;
    }
    .sh-mr-jobctx-meta__row {
        grid-template-columns: 96px 1fr;
        font-size: 0.9rem;
    }
    .sh-mr-jobctx-meta dt {
        font-size: 0.78rem;
    }
    .sh-mr-job-context__edit {
        width: 28px; height: 28px;
    }
}

/* Ebene 3 — Match-Kacheln: klarer Kontrast zum Page-BG */
.sh-mr-scope .sh-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04),
                0 6px 16px -12px rgba(15, 23, 42, 0.12);
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.sh-mr-scope .sh-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06),
                0 10px 24px -14px rgba(15, 23, 42, 0.18);
}

/* Sekundärbereich subtiler ordnen — OHNE Opacity/disabled-Wirkung.
   Titel schwächer, Trenner heller, Shadow der inneren Karten leichter,
   Karten selbst bleiben voll lesbar. */
.sh-mr-scope .sh-secondary-candidates {
    border-top-color: #e2e8f0;
    margin-top: 40px;
}
.sh-mr-scope .sh-secondary-summary {
    color: #64748b;
    font-size: 0.9rem;
    font-weight: 500;
}
.sh-mr-scope .sh-secondary-body .sh-card {
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

/* ═════════════════════════════════════════════════════════════════════════
   OP_MATCHING_REVIEW_FLOW_01B — Match-Card Kompaktion (2026-07-19)
   Ziel: 25–35 % weniger vertikale Höhe bei höherer Informationsklarheit.
   Reihenfolge: Fachkraft → Coverage-Hero → Frame-Chips → Skill-Chips → CTA.
   Scoped auf die Karte selbst; wirkt überall wo .sh-mc gerendert wird.
   ═════════════════════════════════════════════════════════════════════════ */
.sh-mc .sh-mc-body,
.sh-mc .sh-mc-body--zoned {
    gap: 12px;
}
.sh-mc .sh-mc-decision {
    margin-top: 4px;
    margin-bottom: 4px;
}
.sh-mc .sh-mc-decision-lead {
    font-size: 1rem;
    line-height: 1.35;
    margin-bottom: 6px;
}
.sh-mc .sh-mc-decision-caution {
    margin-top: 4px;
}
/* Coverage-Hero — visueller Match-Kern */
.sh-mc-cov-hero {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(37, 99, 235, 0.05), rgba(37, 99, 235, 0.02));
    border: 1px solid rgba(37, 99, 235, 0.14);
    margin: 8px 0 10px;
}
.sh-mc-cov-hero--full,
.sh-mc-cov-hero--strong,
.sh-mc-cov-hero--positive {
    background: linear-gradient(180deg, rgba(16, 185, 129, 0.08), rgba(16, 185, 129, 0.02));
    border-color: rgba(16, 185, 129, 0.28);
}
.sh-mc-cov-hero--partial,
.sh-mc-cov-hero--warn {
    background: linear-gradient(180deg, rgba(234, 179, 8, 0.08), rgba(234, 179, 8, 0.02));
    border-color: rgba(234, 179, 8, 0.28);
}
.sh-mc-cov-hero--muted,
.sh-mc-cov-hero--neutral {
    background: rgba(148, 163, 184, 0.06);
    border-color: rgba(148, 163, 184, 0.24);
}
.sh-mc-cov-hero__label {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--sh-text-secondary, #475569);
}
.sh-mc-cov-hero__figure {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-weight: 700;
    color: var(--sh-text-primary, #0f172a);
    line-height: 1.1;
}
.sh-mc-cov-hero__num {
    font-size: 1.35rem;
}
.sh-mc-cov-hero__sep {
    color: var(--sh-text-secondary, #94a3b8);
    font-weight: 400;
}
.sh-mc-cov-hero__pct {
    font-size: 1.2rem;
    color: var(--sh-accent, #2563eb);
}
.sh-mc-cov-hero--full .sh-mc-cov-hero__pct,
.sh-mc-cov-hero--strong .sh-mc-cov-hero__pct {
    color: #059669;
}
.sh-mc-cov-hero__sub {
    font-size: 0.8rem;
    color: var(--sh-text-secondary, #64748b);
    margin-top: 2px;
}
/* Frame-Chips (Einsatzrahmen) — Pensum/Zeitraum/Region/Flex */
.sh-mc-frame-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 4px 0 8px;
}
.sh-mc-frame-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.14);
    color: var(--sh-text-primary, #0f172a);
    font-size: 0.8rem;
    line-height: 1.3;
    white-space: nowrap;
}
/* Skill-Chips ersetzen den textlichen Skill-Run */
.sh-mc-skill-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 6px 0 10px;
}
.sh-mc-skill-chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 8px;
    background: rgba(37, 99, 235, 0.08);
    color: var(--sh-text-primary, #0f172a);
    font-size: 0.82rem;
    line-height: 1.3;
    border: 1px solid rgba(37, 99, 235, 0.15);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sh-mc-skill-chip--must {
    background: rgba(16, 185, 129, 0.10);
    border-color: rgba(16, 185, 129, 0.24);
}
.sh-mc-skill-chip--kann {
    background: rgba(37, 99, 235, 0.08);
    border-color: rgba(37, 99, 235, 0.16);
}
.sh-mc-skill-chip--baseline {
    background: rgba(148, 163, 184, 0.10);
    border-color: rgba(148, 163, 184, 0.24);
    color: var(--sh-text-secondary, #64748b);
}
.sh-mc-skill-chip--more {
    background: transparent;
    border-style: dashed;
    color: var(--sh-text-secondary, #64748b);
    cursor: default;
}
/* Zone 5 (Qualifikation) — noch dezenter, wenn überhaupt sichtbar */
.sh-mc .sh-mc-z5 {
    font-size: 0.78rem;
    color: var(--sh-text-secondary, #64748b);
    padding: 0;
    margin: 2px 0;
    opacity: 0.85;
}
/* Alte Reputation-Zeile (bleibt nur wenn wirklich gerendert) */
.sh-mc .sh-mc-decision-reputation {
    font-size: 0.78rem;
    color: var(--sh-text-secondary, #64748b);
    margin-top: 4px;
}
/* Tertiär: „Nicht passend?" kleiner und unauffälliger */
.sh-mc .sh-mc-z6-row--tertiary {
    margin-top: 6px;
}
.sh-mc .sh-mc-btn--reject-trigger {
    font-size: 0.78rem;
    padding: 4px 8px;
    background: transparent;
    color: var(--sh-text-secondary, #94a3b8);
    border: none;
    cursor: pointer;
}
.sh-mc .sh-mc-btn--reject-trigger:hover {
    color: var(--sh-text-primary, #0f172a);
    text-decoration: underline;
}
/* Sekundär-Row: Links kompakter */
.sh-mc .sh-mc-z6-row--secondary {
    margin-top: 8px;
    font-size: 0.85rem;
}
/* Card-Body vertikal enger */
.sh-mc .sh-card-body.sh-mc-body {
    padding: 16px 18px;
}
@media (max-width: 720px) {
    .sh-mc .sh-card-body.sh-mc-body {
        padding: 14px 14px;
    }
    .sh-mc-cov-hero__num { font-size: 1.2rem; }
    .sh-mc-cov-hero__pct { font-size: 1.05rem; }
}

/* ═══════════════════════════════════════════════════════════════════
   MATCHING RESULTS V2 · Premium Decision Card (D2) + Compare (D3)
   Owner-Entscheidung 2026-07-19 · VISUAL_SPEC = ACCEPTED WITH DUAL_VIEW
   PRIMARY_DEFAULT = D2 Kartenansicht · OPTIONAL_COMPARE = D3
   Alles scoped auf .sh-mr-v2-scope · isoliert vom Bestand
   ═══════════════════════════════════════════════════════════════════ */
.sh-mr-v2-scope {
    --mv2-page:      #F6F8FB;
    --mv2-context:   #EEF3F8;
    --mv2-card:      #FFFFFF;
    --mv2-border:    #D9E1EA;
    --mv2-border-s:  #C6D0DC;
    --mv2-primary:   #1E3A5F;
    --mv2-primary-2: #0F172A;
    --mv2-text:      #0F172A;
    --mv2-body:      #334155;
    --mv2-muted:     #64748B;
    --mv2-ok:   #166534;  --mv2-ok-bg: #F0FDF4;  --mv2-ok-bd: #BBF7D0;
    --mv2-warn: #92400E;  --mv2-warn-bg: #FFFBEB;--mv2-warn-bd: #FDE68A;
    --mv2-info: #1E40AF;  --mv2-info-bg: #EFF6FF;--mv2-info-bd: #BFDBFE;
    --mv2-neut: #64748B;  --mv2-neut-bg: #F1F5F9;--mv2-neut-bd: #E2E8F0;
    --mv2-serif: ui-serif, Georgia, "Times New Roman", serif;
    --mv2-mono:  ui-monospace, "SFMono-Regular", Menlo, monospace;
}

/* Segmented View-Switcher · Owner: kompakt, kein grosser Button */
.sh-mr-v2-viewbar {
    display: flex; justify-content: space-between; align-items: center;
    gap: 12px; flex-wrap: wrap; margin: 8px 0 20px;
}
.sh-mr-v2-viewbar__label {
    font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--mv2-muted); font-weight: 700;
}
.sh-mr-v2-switch {
    display: inline-flex; border: 1px solid var(--mv2-border);
    border-radius: 999px; padding: 3px; background: #fff; gap: 2px;
}
.sh-mr-v2-switch button {
    border: 0; background: transparent; padding: 6px 14px; border-radius: 999px;
    font-size: 0.82rem; color: var(--mv2-body); cursor: pointer; font-weight: 600;
    font-family: inherit; display: inline-flex; align-items: center; gap: 6px;
    transition: background 0.14s, color 0.14s;
}
.sh-mr-v2-switch button:hover { color: var(--mv2-primary-2); }
.sh-mr-v2-switch button.is-active { background: var(--mv2-primary); color: #fff; }
.sh-mr-v2-switch button i { font-size: 0.78rem; opacity: 0.85; }

/* Sichtbarkeitsschalter via data-view */
.sh-mr-v2-scope[data-view="cards"] .sh-mr-v2-view--compare { display: none; }
.sh-mr-v2-scope[data-view="compare"] .sh-mr-v2-view--cards { display: none; }
.sh-mr-v2-scope[data-view="compare"] .sh-mr-v2-view--compare { display: block; }

/* ── D2 · Premium Decision Card ─────────────────────────────────── */
.sh-mr-v2-grid {
    display: grid; gap: 24px; grid-template-columns: 1fr;
}
@media (min-width: 1024px) { .sh-mr-v2-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.sh-mr-v2-card {
    background: var(--mv2-card); border: 1px solid var(--mv2-border);
    border-radius: 20px; overflow: hidden;
    box-shadow: 0 20px 40px -32px rgba(15,23,42,0.35), 0 2px 4px rgba(15,23,42,0.04);
    display: grid; grid-template-columns: 220px 1fr; min-height: 320px;
}
@media (max-width: 720px) {
    .sh-mr-v2-card { grid-template-columns: 1fr; }
}

/* linker Identitäts-Rail */
.sh-mr-v2-card__rail {
    background: linear-gradient(180deg, #F8FAFC 0%, #EEF3F8 100%);
    padding: 28px 22px; display: flex; flex-direction: column; gap: 18px;
    border-right: 1px solid var(--mv2-border);
}
@media (max-width: 720px) {
    .sh-mr-v2-card__rail { border-right: 0; border-bottom: 1px solid var(--mv2-border); }
}
.sh-mr-v2-card__avatar {
    width: 72px; height: 72px; border-radius: 999px; background: #fff;
    border: 3px solid #fff; box-shadow: 0 4px 12px -4px rgba(15,23,42,0.25);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--mv2-serif); font-size: 1.7rem; color: var(--mv2-primary);
    font-weight: 500; overflow: hidden;
}
.sh-mr-v2-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.sh-mr-v2-card__name {
    font-family: var(--mv2-serif); font-size: 1.35rem; line-height: 1.15;
    color: var(--mv2-primary-2); margin: 0; letter-spacing: -0.01em;
}
.sh-mr-v2-card__role { color: var(--mv2-muted); font-size: 0.85rem; margin-top: 4px; }
.sh-mr-v2-card__avail {
    font-size: 0.82rem; color: var(--mv2-body);
    padding-top: 12px; border-top: 1px dashed var(--mv2-border);
}
.sh-mr-v2-card__avail small {
    display: block; text-transform: uppercase; letter-spacing: 0.08em;
    font-size: 0.65rem; color: var(--mv2-muted); margin-bottom: 3px;
}
.sh-mr-v2-card__status-slot { margin-top: auto; }

/* Status-Pill (Workflow)
   Owner 2026-07-19: Global-Softening — kein Uppercase, ruhigere Typografie,
   näher an Lab v2 Design-Richtung. Betrifft alle D2-Status-Pills. */
.sh-mr-v2-pill {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 0.75rem; letter-spacing: 0.02em; text-transform: none;
    padding: 3px 10px; border-radius: 999px; font-weight: 600;
    border: 1px solid transparent;
}
.sh-mr-v2-pill--success { background: var(--mv2-ok-bg);   color: var(--mv2-ok);   border-color: var(--mv2-ok-bd); }
.sh-mr-v2-pill--info    { background: var(--mv2-info-bg); color: var(--mv2-info); border-color: var(--mv2-info-bd); }
.sh-mr-v2-pill--warn    { background: var(--mv2-warn-bg); color: var(--mv2-warn); border-color: var(--mv2-warn-bd); }
.sh-mr-v2-pill--neut    { background: var(--mv2-neut-bg); color: var(--mv2-neut); border-color: var(--mv2-neut-bd); }

/* rechte Content-Zone */
.sh-mr-v2-card__content {
    padding: 26px 28px; display: flex; flex-direction: column; gap: 20px;
}
.sh-mr-v2-card__hero {
    display: flex; flex-direction: column; gap: 4px;
    padding-bottom: 18px; border-bottom: 1px solid var(--mv2-neut-bd);
}
.sh-mr-v2-card__hero-eyebrow {
    font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
    font-weight: 700; color: var(--mv2-muted);
}
.sh-mr-v2-card__hero-figure { display: flex; align-items: baseline; gap: 12px; }
.sh-mr-v2-card__hero-num {
    font-size: 3.6rem; font-weight: 700; letter-spacing: -0.035em;
    line-height: 0.9; color: var(--mv2-primary-2);
    /* Owner: Coverage-Zahl darf Serif — hier bewusst Sans für stärkeren Kontrast zum Serif-Namen */
    font-family: inherit;
}
.sh-mr-v2-card__hero-of { font-size: 1.05rem; color: var(--mv2-muted); }
.sh-mr-v2-card__hero-stmt {
    font-size: 1rem; font-weight: 500; color: var(--mv2-body); margin-top: 2px;
}
.sh-mr-v2-card__hero-sub { font-size: 0.82rem; color: var(--mv2-muted); margin-top: 6px; }
.sh-mr-v2-card__hero--success .sh-mr-v2-card__hero-num { color: var(--mv2-ok); }
.sh-mr-v2-card__hero--warning .sh-mr-v2-card__hero-num { color: var(--mv2-warn); }
.sh-mr-v2-card__hero--neutral .sh-mr-v2-card__hero-num { color: var(--mv2-muted); font-weight: 600; }

.sh-mr-v2-card__core h5 {
    font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--mv2-muted); font-weight: 700; margin: 0 0 6px;
}
.sh-mr-v2-card__core p { margin: 0; color: var(--mv2-body); font-size: 0.95rem; line-height: 1.5; }
.sh-mr-v2-card__core p .more { color: var(--mv2-muted); }

/* Aktions-Zone · Owner-Entscheidung 2026-07-19: zweizeilig (Variante B)
   Zeile 1 = Primäraktion allein (workflowführend) · Zeile 2 = Sekundärlinks mit Bullet-Separators */
.sh-mr-v2-card__actions {
    display: flex; flex-direction: column; align-items: stretch;
    gap: 12px; margin-top: auto; padding-top: 8px; flex-wrap: nowrap;
}
.sh-mr-v2-card__actions-primary {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 8px; padding: 12px 20px; border-radius: 10px;
    background: var(--mv2-primary); color: #fff; border: 1px solid var(--mv2-primary);
    font-weight: 600; font-size: 0.92rem; cursor: pointer; font-family: inherit;
    text-decoration: none; white-space: nowrap; align-self: flex-start;
    transition: background 0.14s, border-color 0.14s;
}
.sh-mr-v2-card__actions-primary:hover { background: var(--mv2-primary-2); border-color: var(--mv2-primary-2); color: #fff; }
.sh-mr-v2-card__actions-primary[disabled],
.sh-mr-v2-card__actions-primary.is-disabled { opacity: 0.55; cursor: not-allowed; }
.sh-mr-v2-card__actions-links {
    display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap;
    font-size: 0.85rem; color: var(--mv2-muted);
}
.sh-mr-v2-card__actions-links a,
.sh-mr-v2-card__actions-links button.aslink {
    color: var(--mv2-muted); text-decoration: none; font-weight: 500;
    background: transparent; border: 0; padding: 0; cursor: pointer;
    font-family: inherit; font-size: inherit;
}
.sh-mr-v2-card__actions-links a:hover,
.sh-mr-v2-card__actions-links button.aslink:hover { color: var(--mv2-primary); }
.sh-mr-v2-card__actions-links .reject { opacity: 0.75; }
.sh-mr-v2-card__actions-links .sep {
    display: inline-block; width: 3px; height: 3px; border-radius: 50%;
    background: var(--mv2-border-s); opacity: 0.8;
}

/* Sekundär-Sektion "Weitere Fachkräfte prüfen" bleibt D2, aber ruhiger */
.sh-mr-v2-secondary {
    margin-top: 32px; padding-top: 24px;
    border-top: 1px solid var(--mv2-neut-bd);
}
.sh-mr-v2-secondary__label {
    font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--mv2-muted); font-weight: 700; margin-bottom: 14px;
}
.sh-mr-v2-secondary .sh-mr-v2-card {
    box-shadow: 0 1px 2px rgba(15,23,42,0.03);
}

/* ── D3 · Review Workspace (Compare) ───────────────────────────── */
.sh-mr-v2-workspace {
    display: grid; grid-template-columns: 320px 1fr; gap: 0;
    background: #fff; border: 1px solid var(--mv2-border); border-radius: 16px;
    overflow: hidden; min-height: 720px;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -16px rgba(15,23,42,0.18);
}
@media (max-width: 900px) { .sh-mr-v2-workspace { grid-template-columns: 1fr; } }

.sh-mr-v2-ws-list {
    background: #F8FAFC; border-right: 1px solid var(--mv2-border);
    display: flex; flex-direction: column; overflow-y: auto; max-height: 820px;
}
.sh-mr-v2-ws-list__head {
    padding: 20px 20px 12px; border-bottom: 1px solid var(--mv2-border); background: #fff;
}
.sh-mr-v2-ws-list__head .eyb {
    font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--mv2-muted); font-weight: 700;
}
.sh-mr-v2-ws-list__head .cnt {
    font-size: 1.05rem; font-weight: 700; color: var(--mv2-primary-2); margin-top: 2px;
}
.sh-mr-v2-ws-list__head .sub { font-size: 0.78rem; color: var(--mv2-muted); margin-top: 2px; }

.sh-mr-v2-ws-item {
    padding: 14px 20px; border-bottom: 1px solid var(--mv2-neut-bd);
    display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: center;
    cursor: pointer; transition: background 0.12s;
    text-align: left; background: transparent; width: 100%;
    border-left: 0; border-right: 0; border-top: 0; font-family: inherit;
}
.sh-mr-v2-ws-item:hover { background: #fff; }
.sh-mr-v2-ws-item.is-selected {
    background: #fff; box-shadow: inset 3px 0 0 var(--mv2-primary);
}
.sh-mr-v2-ws-item__init {
    width: 40px; height: 40px; border-radius: 999px; background: #fff;
    border: 1px solid var(--mv2-border); color: var(--mv2-primary);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--mv2-serif); font-weight: 600; font-size: 1rem; overflow: hidden;
}
.sh-mr-v2-ws-item__init img { width: 100%; height: 100%; object-fit: cover; }
.sh-mr-v2-ws-item__body { min-width: 0; }
.sh-mr-v2-ws-item__name {
    font-weight: 600; color: var(--mv2-primary-2); font-size: 0.92rem;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sh-mr-v2-ws-item__meta { font-size: 0.78rem; color: var(--mv2-muted); margin-top: 1px; }
.sh-mr-v2-ws-item__cov {
    text-align: right; font-family: var(--mv2-mono); font-size: 0.82rem;
    font-weight: 600; letter-spacing: -0.02em;
}
.sh-mr-v2-ws-item__cov--success { color: var(--mv2-ok); }
.sh-mr-v2-ws-item__cov--warning { color: var(--mv2-warn); }
.sh-mr-v2-ws-item__cov--neutral { color: var(--mv2-muted); }

.sh-mr-v2-ws-detail { display: flex; flex-direction: column; overflow: hidden; }
.sh-mr-v2-ws-detail__tabs {
    display: flex; gap: 4px; padding: 12px 20px 0; border-bottom: 1px solid var(--mv2-border);
}
.sh-mr-v2-ws-tab {
    border: 0; background: transparent; padding: 10px 16px;
    font-size: 0.85rem; color: var(--mv2-muted); cursor: pointer; font-weight: 600;
    border-bottom: 2px solid transparent; margin-bottom: -1px; font-family: inherit;
}
.sh-mr-v2-ws-tab.is-active { color: var(--mv2-primary-2); border-bottom-color: var(--mv2-primary); }
.sh-mr-v2-ws-tab i { margin-right: 6px; opacity: 0.7; }

.sh-mr-v2-ws-panel { display: none; padding: 24px 28px; flex: 1; overflow-y: auto; }
.sh-mr-v2-ws-panel.is-active { display: flex; flex-direction: column; gap: 20px; }

.sh-mr-v2-ws-head {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
}
.sh-mr-v2-ws-head__name {
    font-family: var(--mv2-serif); font-size: 1.5rem; margin: 0;
    color: var(--mv2-primary-2); letter-spacing: -0.01em;
}
.sh-mr-v2-ws-head__role { color: var(--mv2-muted); font-size: 0.9rem; margin-top: 4px; }

.sh-mr-v2-ws-hero {
    display: flex; align-items: baseline; gap: 14px;
    padding: 8px 0 14px; border-bottom: 1px solid var(--mv2-neut-bd);
}
.sh-mr-v2-ws-hero__num {
    font-size: 3rem; font-weight: 700; letter-spacing: -0.03em;
    line-height: 0.9; color: var(--mv2-primary-2);
}
.sh-mr-v2-ws-hero__num--success { color: var(--mv2-ok); }
.sh-mr-v2-ws-hero__num--warning { color: var(--mv2-warn); }
.sh-mr-v2-ws-hero__num--neutral { color: var(--mv2-muted); font-weight: 600; }
.sh-mr-v2-ws-hero__lbl { display: flex; flex-direction: column; gap: 2px; }
.sh-mr-v2-ws-hero__lbl .eyb {
    font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--mv2-muted); font-weight: 700;
}
.sh-mr-v2-ws-hero__lbl .txt { font-size: 0.92rem; color: var(--mv2-body); font-weight: 500; }

.sh-mr-v2-ws-facts {
    display: grid; grid-template-columns: 130px 1fr;
    row-gap: 6px; column-gap: 16px; font-size: 0.9rem;
}
.sh-mr-v2-ws-facts dt { color: var(--mv2-muted); }
.sh-mr-v2-ws-facts dd { margin: 0; color: var(--mv2-body); font-weight: 500; }

.sh-mr-v2-ws-actions {
    display: flex; justify-content: space-between; align-items: center;
    gap: 12px; padding-top: 18px; border-top: 1px solid var(--mv2-neut-bd);
    margin-top: auto;
}

.sh-mr-v2-ws-empty {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 8px; padding: 60px 30px; color: var(--mv2-muted); text-align: center; flex: 1;
}
.sh-mr-v2-ws-empty .ic { font-size: 2.2rem; opacity: 0.4; }
.sh-mr-v2-ws-empty .tt { color: var(--mv2-text); font-weight: 600; font-size: 1rem; }

/* Compare-Ansicht auf Mobile immer versteckt · Regel: Mobile = nur Cards */
@media (max-width: 720px) {
    .sh-mr-v2-viewbar .sh-mr-v2-switch button[data-view="compare"] { display: none; }
    .sh-mr-v2-scope[data-view="compare"] .sh-mr-v2-view--compare { display: none; }
    .sh-mr-v2-scope[data-view="compare"] .sh-mr-v2-view--cards { display: block; }
}

/* C4 (2026-07-19): D3 Tab-Body-Switch via data-active-tab.
   Panel enthält 1 server-gerendertes Slot (passung) + 0-2 lazy JS-Slots (chat/dossier). */
.sh-mr-v2-ws-panel .sh-mr-v2-ws-slot { display: none; }
.sh-mr-v2-ws-panel[data-active-tab="passung"] .sh-mr-v2-ws-slot[data-slot="passung"] { display: block; }
.sh-mr-v2-ws-panel[data-active-tab="chat"]    .sh-mr-v2-ws-slot[data-slot="chat"]    { display: block; }
.sh-mr-v2-ws-panel[data-active-tab="dossier"] .sh-mr-v2-ws-slot[data-slot="dossier"] { display: block; }
.sh-mr-v2-ws-slot[data-slot="chat"], .sh-mr-v2-ws-slot[data-slot="dossier"] {
    padding: 8px 0; min-height: 240px;
}
.sh-mr-v2-ws-loading { padding: 40px 30px; text-align: center; color: var(--mv2-muted); font-size: 0.9rem; }
.sh-mr-v2-ws-empty { padding: 40px 30px; text-align: center; color: var(--mv2-muted); }
.sh-mr-v2-ws-empty p { margin: 0 0 10px; }
.sh-mr-v2-ws-empty .hint { font-size: 0.82rem; opacity: 0.75; }

/* C4: Reject-Panel Sichtbarkeit — Legacy-DOM (.sh-mc-rejection) in V2-Karte einblenden */
.sh-mr-v2-card .sh-mr-v2-reject:not([hidden]),
.sh-mr-v2-ws-panel .sh-mr-v2-reject:not([hidden]) {
    display: block; margin-top: 14px; padding: 12px 14px;
    background: #F7F9FC; border: 1px solid var(--mv2-neut-bd); border-radius: 10px;
}
.sh-mr-v2-card .sh-mr-v2-reject .sh-mc-rejection-q,
.sh-mr-v2-ws-panel .sh-mr-v2-reject .sh-mc-rejection-q {
    margin: 0 0 8px; font-size: 0.82rem; color: var(--mv2-muted); font-weight: 600;
}
.sh-mr-v2-card .sh-mr-v2-reject .sh-mc-rejection-option,
.sh-mr-v2-ws-panel .sh-mr-v2-reject .sh-mc-rejection-option {
    display: inline-block; margin: 4px 6px 0 0; padding: 6px 12px;
    background: #fff; border: 1px solid var(--mv2-border); border-radius: 999px;
    font-size: 0.8rem; color: var(--mv2-body); cursor: pointer;
}
.sh-mr-v2-card .sh-mr-v2-reject .sh-mc-rejection-option:hover,
.sh-mr-v2-ws-panel .sh-mr-v2-reject .sh-mc-rejection-option:hover {
    border-color: var(--mv2-primary-2); color: var(--mv2-primary-2);
}
.sh-mr-v2-card .sh-mr-v2-reject .sh-mc-rejection-done,
.sh-mr-v2-ws-panel .sh-mr-v2-reject .sh-mc-rejection-done {
    margin: 0; font-size: 0.85rem; color: var(--mv2-success, #059669); font-weight: 600;
}
/* Compare-Toggle wird bei <2 FK per data-fk-count ausgeblendet */
.sh-mr-v2-scope[data-fk-count="0"] .sh-mr-v2-viewbar,
.sh-mr-v2-scope[data-fk-count="1"] .sh-mr-v2-switch { display: none; }

/* ── D2 Compact Variant · Sekundär-Bucket ────────────────────────
   Owner 2026-07-19: gleiche Anatomie, ~15-20 % dichter, geringerer Shadow,
   keine dominante grüne Fläche bei 0/7, standardmässig eingeklappt. */
.sh-mr-v2-secondary-wrap {
    margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--mv2-neut-bd);
}
.sh-mr-v2-secondary-wrap > summary {
    list-style: none; cursor: pointer;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 8px 16px; border: 1px solid var(--mv2-border);
    border-radius: 999px; background: #fff;
    font-size: 0.85rem; font-weight: 600; color: var(--mv2-body);
    transition: background 0.14s, color 0.14s, border-color 0.14s;
}
.sh-mr-v2-secondary-wrap > summary::-webkit-details-marker { display: none; }
.sh-mr-v2-secondary-wrap > summary::after {
    content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900;
    font-size: 0.72rem; opacity: 0.5; transition: transform 0.18s;
}
.sh-mr-v2-secondary-wrap[open] > summary::after { transform: rotate(180deg); }
.sh-mr-v2-secondary-wrap > summary:hover { border-color: var(--mv2-border-s); color: var(--mv2-primary-2); }
.sh-mr-v2-secondary-wrap > summary .cnt {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; height: 22px; padding: 0 7px;
    border-radius: 999px; background: var(--mv2-neut-bg); color: var(--mv2-body);
    font-size: 0.72rem; font-weight: 700;
}
.sh-mr-v2-secondary-body { margin-top: 18px; }

/* Compact-Modifier für Cards im Sekundär-Bucket */
.sh-mr-v2-card--compact {
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(15,23,42,0.04); /* deutlich reduziert vs. Primary */
    grid-template-columns: 180px 1fr;
    min-height: 240px;
}
@media (max-width: 720px) {
    .sh-mr-v2-card--compact { grid-template-columns: 1fr; }
}
.sh-mr-v2-card--compact .sh-mr-v2-card__rail {
    padding: 20px 18px; gap: 14px;
}
.sh-mr-v2-card--compact .sh-mr-v2-card__avatar {
    width: 56px; height: 56px; font-size: 1.35rem;
}
.sh-mr-v2-card--compact .sh-mr-v2-card__name { font-size: 1.15rem; }
.sh-mr-v2-card--compact .sh-mr-v2-card__role { font-size: 0.8rem; }
.sh-mr-v2-card--compact .sh-mr-v2-card__avail { font-size: 0.78rem; padding-top: 10px; }
.sh-mr-v2-card--compact .sh-mr-v2-card__content {
    padding: 20px 22px; gap: 16px;
}
.sh-mr-v2-card--compact .sh-mr-v2-card__hero { padding-bottom: 14px; }
.sh-mr-v2-card--compact .sh-mr-v2-card__hero-num { font-size: 2.6rem; }
.sh-mr-v2-card--compact .sh-mr-v2-card__hero-stmt { font-size: 0.92rem; }
.sh-mr-v2-card--compact .sh-mr-v2-card__core h5 { font-size: 0.68rem; margin-bottom: 4px; }
.sh-mr-v2-card--compact .sh-mr-v2-card__core p { font-size: 0.88rem; }
.sh-mr-v2-card--compact .sh-mr-v2-card__actions { gap: 10px; padding-top: 4px; }
.sh-mr-v2-card--compact .sh-mr-v2-card__actions-primary {
    padding: 9px 16px; font-size: 0.86rem;
}
.sh-mr-v2-card--compact .sh-mr-v2-card__actions-links { font-size: 0.8rem; gap: 8px; }
/* Sekundär: keine grüne Hero-Fläche bei 0/7 — Neutral gewinnt */
.sh-mr-v2-card--compact.sh-mr-v2-card--neutral .sh-mr-v2-card__hero-num { color: var(--mv2-muted); }

/* ═════════════════════════════════════════════════════════════════════════
   J2.1 · Anforderungsprofil — Premium Packaging (2026-07-20)
   Renderer: includes/ui/job_requirements_summary.php
   Ein Container. Kompakt-Header immer sichtbar. Voll aufklappbar.
   Matching = einzige starke Fläche. Sonst nur Spacing/Typo/Divider.
   ═════════════════════════════════════════════════════════════════════════ */

.sh-jrs {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    padding: 36px 40px 32px;
    margin: 0 0 32px;
    color: #0f172a;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

/* ── Kompakt-Header (immer sichtbar) ──────────────────────────── */
.sh-jrs__eyebrow {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #94a3b8;
    margin: 0 0 10px;
}
.sh-jrs__lead {
    font-size: clamp(1.15rem, 3.2vw + 0.6rem, 1.55rem);
    font-weight: 700;
    letter-spacing: -0.018em;
    color: #0f172a;
    margin: 0 0 26px;
    line-height: 1.22;
}
.sh-jrs__lead-sep  { color: #cbd5e1; margin: 0 12px; font-weight: 400; }
.sh-jrs__lead-spec { color: #334155; font-weight: 600; }

/* J3.1-UX-U1 · Draft/incomplete-Callout · ersetzt Lead+KV im Kompaktmodus */
.sh-jrs__incomplete {
    background: #fef9ed;
    border: 1px solid #f5deb3;
    border-radius: 12px;
    padding: 18px 22px;
    margin: 0 0 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
}
.sh-jrs__incomplete-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #7a4a04;
    margin: 0;
    letter-spacing: -0.01em;
}
.sh-jrs__incomplete-body {
    color: #6b5024;
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.5;
}
.sh-jrs__incomplete-cta {
    display: inline-block;
    margin-top: 6px;
    padding: 8px 16px;
    background: #7a4a04;
    color: #fff;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: 0.005em;
}
.sh-jrs__incomplete-cta:hover { background: #5f3a03; color: #fff; }
@media (max-width: 480px) {
    .sh-jrs__incomplete-cta { width: 100%; text-align: center; }
}

/* Premium-Facts als horizontale Informationsinseln (kein Formular) */
.sh-jrs-compact-kv {
    margin: 0 0 24px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px 36px;
}
.sh-jrs-compact-kv__row {
    display: block;
    min-width: 0;
}
.sh-jrs-compact-kv__row--wide {
    grid-column: 1 / -1;
    padding-top: 20px;
    border-top: 1px solid #eef2f7;
    margin-top: 2px;
}
.sh-jrs-compact-kv dt {
    display: block;
    margin: 0 0 4px;
    font-size: 0.78rem;
    font-weight: 500;
    color: #94a3b8;
    letter-spacing: 0;
    text-transform: none;
}
.sh-jrs-compact-kv dd {
    display: block;
    margin: 0;
    font-size: 0.98rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.sh-jrs-compact-kv__value {
    hyphens: none;
    -webkit-hyphens: none;
    word-break: normal;
    min-width: 0;
    overflow-wrap: anywhere;
}
/* R2-F CSS Hotfix v3 (2026-07-29): nowrap global aufgehoben.
   Root-Cause: erzwungenes nowrap ließ den Datumsbereich aus
   seiner Grid-Zelle in die Pensum-Zelle überlaufen, unabhängig
   vom Viewport. Zeilenumbruch innerhalb der eigenen Zelle ist
   die kleinste belastbare Korrektur. */
.sh-jrs-compact-kv__value--nowrap { white-space: normal; }
.sh-jrs-compact-kv__shift { white-space: nowrap; }
.sh-jrs-compact-kv__row--wide dd {
    color: #1e40af;
    font-size: 1rem;
    font-weight: 600;
}

/* ── Actions (Toggle + optional Edit) ─────────────────────────── */
.sh-jrs__actions {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    padding-top: 2px;
}
.sh-jrs__toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    background: transparent;
    color: #0f172a;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 500;
    cursor: pointer;
    line-height: 1.2;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.sh-jrs__toggle:hover { background: #f8fafc; border-color: #94a3b8; }
.sh-jrs__toggle:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
.sh-jrs__toggle-caret {
    display: inline-block;
    width: 8px; height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
    transition: transform 0.18s ease;
}
.sh-jrs__toggle[aria-expanded="true"] .sh-jrs__toggle-caret {
    transform: rotate(-135deg) translateY(-1px);
}
.sh-jrs__toggle .sh-jrs__toggle-close-label { display: none; }
.sh-jrs__toggle[aria-expanded="true"] .sh-jrs__toggle-open-label  { display: none; }
.sh-jrs__toggle[aria-expanded="true"] .sh-jrs__toggle-close-label { display: inline; }

.sh-jrs__actions {
    justify-content: space-between;
}
.sh-jrs__edit {
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 500;
    text-decoration: none;
    letter-spacing: 0;
    border-bottom: 1px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease;
    margin-left: auto;
}
.sh-jrs__edit:hover { color: #0f172a; border-bottom-color: #cbd5e1; }
.sh-jrs__edit:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; border-radius: 2px; }

/* ── Vollansicht (aufklappbar) ────────────────────────────────── */
.sh-jrs__full {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    margin-top: 0;
    padding-top: 0;
    border-top: 0 solid #eef2f7;
    transition:
        max-height 0.22s ease,
        opacity   0.18s ease,
        margin-top 0.22s ease,
        padding-top 0.22s ease,
        border-top-width 0.22s ease;
}
.sh-jrs.is-open .sh-jrs__full {
    max-height: 5000px;
    opacity: 1;
    margin-top: 30px;
    padding-top: 30px;
    border-top-width: 1px;
}
@media (prefers-reduced-motion: reduce) {
    .sh-jrs__full { transition: none; }
}

/* ── Herkunftslegende (subtil, keine Pills) ─────────────────── */
.sh-jrs__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
    margin: 0 0 22px;
    font-size: 0.72rem;
    color: #64748b;
}
.sh-jrs-origin {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: #64748b;
    line-height: 1.5;
    white-space: nowrap;
}
.sh-jrs-origin::before {
    content: "";
    width: 6px; height: 6px;
    border-radius: 50%;
    background: currentColor;
    display: inline-block;
    flex-shrink: 0;
}
.sh-jrs-origin--explicit { color: #1d4ed8; }
.sh-jrs-origin--derived  { color: #64748b; }
.sh-jrs-origin-note      { margin: 14px 0 0; }

/* ── Sektions-Grid: nur wo es beruhigt ────────────────────────── */
.sh-jrs__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px 48px;
}
@media (max-width: 900px) {
    .sh-jrs__grid { grid-template-columns: 1fr; gap: 26px; }
}

.sh-jrs-section {
    min-width: 0;
    padding: 0;
    background: transparent;
    border: 0;
}
.sh-jrs-section--full { grid-column: 1 / -1; }
.sh-jrs-section__title {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #94a3b8;
    margin: 0 0 16px;
}

/* ── Sektion C · Matching-Grundlage = Hero-Fläche ─────────────── */
.sh-jrs-section--matching {
    grid-column: 1 / -1;
    background:
        radial-gradient(1000px 260px at 0% 0%, rgba(37, 99, 235, 0.06), transparent 60%),
        linear-gradient(180deg, #f5f8fd 0%, #f8fafc 100%);
    border: 1px solid #dbeafe;
    border-radius: 16px;
    padding: 22px 28px;
    position: relative;
}
.sh-jrs-section--matching .sh-jrs-section__title {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    background: rgba(37, 99, 235, 0.1);
    color: #1e3a8a;
    border-radius: 999px;
    letter-spacing: 0.1em;
    font-size: 0.66rem;
    margin: 0 0 12px;
}

/* ── KV-Reihen (universell) — Editorial-Facts, kein Formular ── */
.sh-jrs-kv {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px 36px;
}
.sh-jrs-kv__row {
    display: block;
    min-width: 0;
}
.sh-jrs-kv__label {
    display: block;
    margin: 0 0 4px;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: #94a3b8;
}
.sh-jrs-kv__value {
    display: block;
    margin: 0;
    color: #0f172a;
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
/* Bedeutungssatz (lang) leiser rendern */
.sh-jrs-section .sh-jrs-kv__row:has(.sh-jrs-kv__label:only-child) .sh-jrs-kv__value {
    font-weight: 500; color: #475569;
}

.sh-jrs-empty {
    margin: 4px 0 0;
    color: #cbd5e1;
    font-size: 0.85rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
}
.sh-jrs-freetext {
    margin: 4px 0 0;
    color: #0f172a;
    font-size: 0.94rem;
    line-height: 1.6;
}
.sh-jrs-subblock { margin-bottom: 16px; }
.sh-jrs-subblock:last-child { margin-bottom: 0; }
.sh-jrs-subblock .sh-jrs-kv__label { display: block; margin-bottom: 8px; }

/* Sektion G leer → visuell entlastet */
.sh-jrs-section--muted .sh-jrs-empty {
    color: #94a3b8;
    font-size: 0.86rem;
}

/* Schicht-Liste (Sektion E) */
.sh-jrs-list {
    list-style: none;
    padding: 0;
    margin: 6px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    font-size: 0.9rem;
    color: #0f172a;
    font-weight: 500;
}
.sh-jrs-list li {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    background: #f1f5f9;
    color: #334155;
    border-radius: 999px;
    font-weight: 500;
    font-size: 0.84rem;
    line-height: 1.3;
}
.sh-jrs-list li::before { content: none; }

/* ── Sektion B · Schwerpunkte ─────────────────────────────────── */
.sh-jrs-spec-group { margin-bottom: 18px; }
.sh-jrs-spec-group:last-child { margin-bottom: 0; }
.sh-jrs-spec-group__label {
    font-size: 0.68rem;
    color: #94a3b8;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.sh-jrs-spec-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 8px;
}
.sh-jrs-spec-list li {
    display: flex; align-items: center;
    gap: 10px; flex-wrap: wrap;
}
.sh-jrs-tag {
    display: inline-flex;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.5;
}
.sh-jrs-tag--must  { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.sh-jrs-tag--bonus { background: #eff6ff; color: #1d4ed8; border: 1px solid #dbeafe; }
.sh-jrs-spec-name  { color: #0f172a; font-weight: 600; font-size: 1rem; }

/* ── Sektion C · Matching-Blöcke innen ────────────────────────── */
.sh-jrs-mb-block { margin: 0; }
.sh-jrs-mb-block + .sh-jrs-mb-block {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid rgba(37, 99, 235, 0.14);
}
.sh-jrs-mb-block__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px 24px;
    margin-bottom: 6px;
}
.sh-jrs-mb-block__head {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 0 0 4px;
    letter-spacing: -0.005em;
    justify-content: flex-start;
}
.sh-jrs-mb-block__spec-name {
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
}
.sh-jrs-mb-block__spec-mode {
    font-size: 0.88rem;
    font-weight: 500;
    color: #1e3a8a;
}
.sh-jrs-mb-block__origin {
    margin: 0 0 10px;
    line-height: 1.4;
}
.sh-jrs-mb-block__expl {
    margin: 0 0 12px;
    color: #64748b;
    font-size: 0.86rem;
    line-height: 1.55;
    max-width: 64ch;
}
.sh-jrs-mb-block__mode {
    display: flex;
    gap: 10px;
    align-items: baseline;
}
.sh-jrs-mb-label {
    color: #94a3b8;
    font-weight: 600;
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}
.sh-jrs-mb-value {
    color: #1e3a8a;
    font-weight: 700;
    font-size: 0.94rem;
}
.sh-jrs-mb-block__expl {
    margin: 6px 0 18px;
    color: #64748b;
    font-size: 0.86rem;
    line-height: 1.55;
    max-width: 64ch;
}
.sh-jrs-mb-block__skills-label {
    font-size: 0.66rem;
    color: #64748b;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.sh-jrs-skill-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 4px 24px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #0f172a;
}
.sh-jrs-skill-list li {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 1px 0;
    line-height: 1.4;
}
.sh-jrs-skill-list li::before {
    content: "";
    width: 4px; height: 4px;
    border-radius: 50%;
    background: #93c5fd;
    flex-shrink: 0;
    transform: translateY(-2px);
}

/* Praezise-Variante · Skill mit Level + MUSS/BONUS (2-Zeilen, kein Bullet) */
.sh-jrs-skill-list--praezise {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px 24px;
}
.sh-jrs-skill-list--praezise li {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 0;
}
.sh-jrs-skill-list--praezise li::before { content: none; }
.sh-jrs-skill__name {
    font-size: 0.94rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.35;
}
.sh-jrs-skill__meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.4;
}
.sh-jrs-skill__level {
    color: #475569;
    font-weight: 500;
}
.sh-jrs-skill__sep { color: #cbd5e1; }

/* Skill-Level-Marker (leise · nicht Chip) — trennt sich visuell von Specialty-MUSS */
.sh-jrs-skill-marker {
    display: inline;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.4;
}
.sh-jrs-skill-marker--must  { color: #b91c1c; }
.sh-jrs-skill-marker--bonus { color: #1d4ed8; }

/* Details/Summary im Matching-Hero — kompakte, expandierbare Skill-Ansicht */
.sh-jrs-mb-block__skills {
    margin: 0;
}
.sh-jrs-mb-block__skills-summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 500;
    color: #1e3a8a;
    line-height: 1.3;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.sh-jrs-mb-block__skills-summary::-webkit-details-marker { display: none; }
.sh-jrs-mb-block__skills-summary::marker { content: ""; }
.sh-jrs-mb-block__skills-summary::after {
    content: "";
    width: 6px; height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
    transition: transform 0.18s ease;
}
.sh-jrs-mb-block__skills[open] > .sh-jrs-mb-block__skills-summary::after {
    transform: rotate(-135deg) translateY(-1px);
}
.sh-jrs-mb-block__skills-summary:hover {
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(37, 99, 235, 0.3);
}
.sh-jrs-mb-block__skills-summary:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}
.sh-jrs-mb-block__empty {
    margin: 4px 0 0;
    font-size: 0.82rem;
    color: #64748b;
    font-style: italic;
}
.sh-jrs-mb-block__skills[open] > .sh-jrs-skill-list,
.sh-jrs-mb-block__skills[open] > ul {
    margin-top: 12px;
}
.sh-jrs-mb-block__skills > .sh-jrs-skill-list { margin-top: 12px; }

/* ═════════════════════════════════════════════════════════════════
   J2.2 · Visual Order Refinement — Row-Kompositionen + Editorial-Facts
   ═════════════════════════════════════════════════════════════════ */

/* Row-Primitive (verdrängt .sh-jrs__grid) */
.sh-jrs__row {
    display: grid;
    gap: 30px 48px;
    margin: 0 0 30px;
}
.sh-jrs__row:last-child { margin-bottom: 0; }

/* 60/40 (Qualifikation | Schwerpunkt) mit vertikalem Divider */
.sh-jrs__row--60-40 {
    grid-template-columns: 3fr 2fr;
    position: relative;
}
.sh-jrs__row--60-40 > .sh-jrs-section + .sh-jrs-section {
    padding-left: 40px;
    border-left: 1px solid #eef2f7;
}

/* Drittel-Row (Erfahrung | Arbeitszeit | Vor Ort) */
.sh-jrs__row--thirds {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px 40px;
}

/* Sektion-Spacing zwischen Rows und der Matching-Hero */
.sh-jrs-section--matching {
    margin: 0 0 30px;
}
.sh-jrs-section--matching:last-child { margin-bottom: 0; }

/* Editorial-Aussagen (Primary/Secondary/Note/Facts) */
.sh-jrs-primary {
    margin: 0 0 4px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.35;
    letter-spacing: -0.005em;
    overflow-wrap: anywhere;
}
.sh-jrs-secondary {
    margin: 0 0 4px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.sh-jrs-note {
    margin: 4px 0 8px;
    font-size: 0.86rem;
    font-weight: 400;
    color: #475569;
    line-height: 1.55;
    max-width: 42ch;
}
.sh-jrs-facts {
    margin: 12px 0 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sh-jrs-fact {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 500;
    color: #475569;
    line-height: 1.5;
}

/* Schwerpunkt-Liste (Sektion B) — MUSS-Chip + starker Name */
.sh-jrs-specialty-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sh-jrs-specialty-list--nice { margin-top: 10px; }
.sh-jrs-specialty-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.sh-jrs-specialty__name {
    font-size: 1rem;
    font-weight: 600;
    color: #0f172a;
    overflow-wrap: anywhere;
    hyphens: auto;
    line-height: 1.35;
    flex: 1 1 auto;
    min-width: 0;
}
.sh-jrs-specialty-list li {
    align-items: flex-start;
}
.sh-jrs-specialty-list .sh-jrs-tag {
    flex-shrink: 0;
    margin-top: 3px;
}

/* Inline-Empty (Bonus-Zeile leer) — sehr leise */
.sh-jrs-empty--inline {
    margin: 10px 0 0;
    color: #cbd5e1;
    font-size: 0.82rem;
    font-weight: 400;
}

/* J2.3 · Sektions-Sub-Primitive ─────────────────────────────── */

/* Primary soft (weniger Gewicht — für Vollansicht) */
.sh-jrs-primary--soft {
    margin: 0 0 4px;
    font-size: 0.98rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.35;
}

/* Anchor (Sektion D · Erfahrungsniveau als Hauptanker) */
.sh-jrs-anchor {
    margin: 0 0 6px;
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

/* Fact-Zeile mit Label + Value inline */
.sh-jrs-fact-line,
.sh-jrs-fact {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 500;
    color: #475569;
    line-height: 1.5;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.sh-jrs-fact__label {
    color: #94a3b8;
    font-weight: 500;
    min-width: 92px;
    display: inline-block;
}
.sh-jrs-fact__value {
    color: #0f172a;
    font-weight: 600;
}

/* Mini-Fact (zweite, kleine Info-Zeile) */
.sh-jrs-mini-fact {
    margin: 6px 0 0;
    font-size: 0.84rem;
    font-weight: 400;
    color: #64748b;
    line-height: 1.5;
}

/* Schicht-Chips (Sektion E) */
.sh-jrs-shift-chips {
    list-style: none;
    padding: 0;
    margin: 0 0 4px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
}
.sh-jrs-shift-chips li {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: #f1f5f9;
    color: #334155;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 500;
    line-height: 1.3;
}

/* Sektion B · subtile Tönung nur für die MUSS-Karte */
.sh-jrs-section--specialty {
    /* dezente Aufwertung, kein Kartenrahmen */
    padding-left: 0;
}
.sh-jrs-section--specialty .sh-jrs-specialty-list li {
    padding: 6px 10px 6px 8px;
    background: rgba(248, 250, 252, 0.6);
    border-radius: 8px;
}
.sh-jrs-section--specialty .sh-jrs-specialty-list--nice li {
    background: transparent;
    padding: 0;
}

/* ── Mobile ≤480 ──────────────────────────────────────────────── */
@media (max-width: 900px) {
    .sh-jrs__row--60-40 { grid-template-columns: 1fr; gap: 26px; }
    .sh-jrs__row--60-40 > .sh-jrs-section + .sh-jrs-section {
        padding-left: 0;
        border-left: 0;
        padding-top: 22px;
        border-top: 1px solid #eef2f7;
    }
    .sh-jrs__row--thirds { grid-template-columns: 1fr; gap: 26px; }
}
@media (max-width: 480px) {
    .sh-jrs { padding: 24px 20px; border-radius: 16px; }
    .sh-jrs__lead-sep { display: block; height: 0; visibility: hidden; margin: 2px 0; }
    .sh-jrs-compact-kv { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
    /* Lange Fact-Zeilen (Zeitraum, Schichten, Matching) über volle Breite */
    .sh-jrs-compact-kv__row--period,
    .sh-jrs-compact-kv__row--shifts { grid-column: 1 / -1; }
    .sh-jrs-compact-kv__row--wide { padding-top: 16px; }
    /* Datum: nowrap bleibt aktiv; Zeile ist bereits full-width */
    /* Schichten stapeln, nicht mitten im Wort trennen */
    .sh-jrs-compact-kv dd.sh-jrs-compact-kv__value--shifts { display: flex; flex-direction: column; gap: 4px; }
    .sh-jrs-compact-kv__value--shifts .sh-jrs-compact-kv__shift-sep { display: none; }
    .sh-jrs-kv { grid-template-columns: 1fr; gap: 16px; }
    .sh-jrs-skill-list { grid-template-columns: 1fr; }
    .sh-jrs-mb-block__head { flex-direction: column; align-items: flex-start; gap: 6px; }
    .sh-jrs-mb-block__origin { font-size: 0.85rem; }
    .sh-jrs-mb-block__skills-summary { width: 100%; box-sizing: border-box; }
    .sh-jrs__actions { gap: 16px; }
    .sh-jrs__toggle { width: 100%; justify-content: center; }
    .sh-jrs-section--matching { padding: 22px 20px; }
    .sh-jrs.is-open .sh-jrs__full { margin-top: 22px; padding-top: 22px; }
    .sh-jrs-specialty__name { overflow-wrap: normal; hyphens: none; word-break: normal; }
    .sh-jrs-origin { white-space: normal; font-size: 0.68rem; align-items: flex-start; line-height: 1.4; }
    .sh-jrs-origin::before { margin-top: 5px; }
    .sh-jrs-mb-block__origin { margin: 6px 0 10px; }
}
@media (max-width: 380px) {
    .sh-jrs-compact-kv { grid-template-columns: 1fr; gap: 14px; }
    .sh-jrs-compact-kv__row--period,
    .sh-jrs-compact-kv__row--shifts { grid-column: auto; }
}

/* J2.4c FINAL COMPLEXITY REFINEMENT (Owner 2026-07-20) */
.sh-jrs-mb__intro {
    margin: 0 0 18px;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: #475569;
}
.sh-jrs-specialty-group__head {
    margin: 14px 0 8px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #475569;
}
.sh-jrs-specialty-group__head:first-child { margin-top: 0; }
.sh-jrs-specialty-group__head--must { color: #b91c1c; }
.sh-jrs-specialty-group__head--bonus { color: #1d4ed8; }
.sh-jrs-specialty-group__count {
    font-weight: 500;
    color: #64748b;
    letter-spacing: 0;
}
.sh-jrs-specialty-group__head--must .sh-jrs-specialty-group__count,
.sh-jrs-specialty-group__head--bonus .sh-jrs-specialty-group__count {
    color: inherit;
    opacity: 0.75;
}
.sh-jrs-specialty-list--plain { list-style: none; padding: 0; margin: 0 0 6px; }
.sh-jrs-specialty-list--plain li {
    display: block;
    padding: 4px 0;
    font-size: 0.9375rem;
    color: #0f172a;
}
.sh-jrs-specialty-list--plain .sh-jrs-specialty__name {
    overflow-wrap: anywhere;
    hyphens: auto;
}
