/* /Components/AboutDialog.razor.rz.scp.css */
/* Größerer Dialog (für die Kopf-Animation). */
.about-dialog-wide[b-5kfg0lo8ws] {
    max-width: 760px;
}

.about-modal[b-5kfg0lo8ws] {
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
    position: relative;
}

.about-close[b-5kfg0lo8ws] {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    z-index: 2;
    filter: invert(1) grayscale(1) brightness(1.6);
    opacity: 0.85;
}

/* Kopfbereich mit Logo auf schwarzem Grund (wie der Sidebar-Kopf) → weiße Logo-Variante.
   Enthält zusätzlich die Netz-Animation (iframe), die anfangs sichtbar ist und nach Ablauf
   (30 s Animation + 5 s) per CSS-Überblendung dem Logo weicht. */
.about-hero[b-5kfg0lo8ws] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 340px;
    padding: 0;
    overflow: hidden;
    background-color: var(--tri-ink);
}

/* Animation füllt den Kopf; größer/höher als der sichtbare Bereich, damit die Player-Steuerung
   am unteren Rand außerhalb des Ausschnitts liegt (overflow:hidden des Kopfes schneidet sie ab). */
.about-anim[b-5kfg0lo8ws] {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 760px;
    height: 520px;
    transform: translate(-50%, -50%);
    border: 0;
    background: var(--tri-ink);
    opacity: 0;                       /* Einblenden, sobald .is-on gesetzt wird */
    transition: opacity 1s ease;
}

.about-anim.is-on[b-5kfg0lo8ws] {
    opacity: 1;
}

.about-logo[b-5kfg0lo8ws] {
    position: relative;
    z-index: 1;
    height: 160px;   /* 76px → +75 % → 133px → +20 % */
    width: auto;
    display: block;
    opacity: 1;                       /* Logo zuerst sichtbar */
    transition: opacity 1s ease;
}

.about-logo.is-off[b-5kfg0lo8ws] {
    opacity: 0;
}

.about-body[b-5kfg0lo8ws] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
    padding: 1.6rem 2rem 1.9rem;
    text-align: center;
    background: #fff;
}

.about-version[b-5kfg0lo8ws] {
    display: inline-flex;
    align-items: center;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--tri-green);
    background: var(--tri-green-bg);
    border: 1px solid var(--tri-green-soft);
    border-radius: 999px;
    padding: 0.3rem 0.9rem;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.about-version:hover[b-5kfg0lo8ws] {
    background: var(--tri-green-soft);
    border-color: var(--tri-green);
}

.about-link[b-5kfg0lo8ws] {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--tri-green);
    text-decoration: none;
}

.about-link:hover[b-5kfg0lo8ws] {
    color: var(--tri-green-dark);
    text-decoration: underline;
}

.about-copy[b-5kfg0lo8ws] {
    font-size: 0.82rem;
    color: var(--tri-muted);
}
/* /Components/AgentSecurityView.razor.rz.scp.css */
.sec-grid[b-jl8b1w3v12] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    align-items: start;
}

.sec-span[b-jl8b1w3v12] {
    grid-column: 1 / -1;
}

@media (max-width: 991px) {
    .sec-grid[b-jl8b1w3v12] { grid-template-columns: 1fr; }
}

.sec-card[b-jl8b1w3v12] {
    border-radius: 1rem;
    /* Klar sichtbarer Rahmen auf allen Seiten (überschreibt Bootstraps .border-0) – sonst wirken die
       oberen Karten im scrollenden Popup randlos. */
    border: 1px solid var(--tri-border) !important;
}

.sec-card-title[b-jl8b1w3v12] {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    font-size: 1.02rem;
    margin-bottom: .75rem;
    color: var(--tri-green);
}

.sec-card-title > i[b-jl8b1w3v12] {
    font-size: 1.1rem;
}

.sec-count[b-jl8b1w3v12] {
    margin-left: auto;
    background: var(--tri-surface, #f4f5f7);
    color: var(--tri-muted);
    border-radius: 999px;
    padding: .05rem .55rem;
    font-size: .78rem;
    font-weight: 600;
}

.sec-row[b-jl8b1w3v12] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .5rem 0;
    border-top: 1px solid var(--tri-border);
}

.sec-row:first-of-type[b-jl8b1w3v12] {
    border-top: none;
}

.sec-note[b-jl8b1w3v12] {
    font-size: .82rem;
    color: var(--tri-muted);
    background: #fdfaef;
    border: 1px solid #f0e6c8;
    border-radius: .6rem;
    padding: .5rem .65rem;
}

.sec-tools[b-jl8b1w3v12] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

@media (max-width: 767px) {
    .sec-tools[b-jl8b1w3v12] { grid-template-columns: 1fr; }
}

.sec-tool[b-jl8b1w3v12] {
    border: 1px solid var(--tri-border);
    border-radius: .8rem;
    padding: .7rem .8rem;
    background: #fff;
}

.sec-tool-head[b-jl8b1w3v12] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.sec-tool-head > i[b-jl8b1w3v12] {
    color: var(--tri-green);
    font-size: 1.05rem;
}

/* Tabellarische Liste (Tools/MCP/Skills): je Eintrag eine Kopfzeile, Einstellungen eingerückt darunter. */
.sec-list[b-jl8b1w3v12] { display: flex; flex-direction: column; }
.sec-list-item[b-jl8b1w3v12] { padding: .55rem 0; border-top: 1px solid var(--tri-border); min-width: 0; }
.sec-list-item:first-child[b-jl8b1w3v12] { border-top: none; padding-top: 0; }
.sec-list-head[b-jl8b1w3v12] { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.sec-list-head > i[b-jl8b1w3v12] { color: var(--tri-green); font-size: 1.05rem; flex: 0 0 auto; }
.sec-list-name[b-jl8b1w3v12] { font-weight: 600; overflow-wrap: anywhere; }
.sec-list-sub[b-jl8b1w3v12] { display: flex; gap: .5rem; margin-left: 1.55rem; margin-top: .3rem; align-items: baseline; }
.sec-list-sub-label[b-jl8b1w3v12] { flex: 0 0 11rem; max-width: 11rem; color: var(--tri-muted); font-size: .8rem; }
.sec-list-sub-vals[b-jl8b1w3v12] { flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
@media (max-width: 575px) {
    .sec-list-sub[b-jl8b1w3v12] { flex-direction: column; gap: .15rem; }
    .sec-list-sub-label[b-jl8b1w3v12] { flex-basis: auto; max-width: none; }
}

.sec-group[b-jl8b1w3v12] {
    margin-top: .55rem;
}

.sec-group-label[b-jl8b1w3v12] {
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--tri-muted);
    margin-bottom: .25rem;
}

.sec-card .badge[b-jl8b1w3v12] {
    font-weight: 500;
    border-radius: .5rem;
    /* Lange Werte (z. B. Agent-/Empfängernamen) umbrechen statt über den Rand laufen zu lassen. */
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: left;
    max-width: 100%;
}

/* Flex-Inhalte dürfen schrumpfen (sonst drücken lange Texte/E-Mails über den Rand). */
.sec-row > div[b-jl8b1w3v12] { min-width: 0; overflow-wrap: anywhere; }
.sec-row .d-flex[b-jl8b1w3v12] { min-width: 0; }
.sec-tool[b-jl8b1w3v12], .sec-group[b-jl8b1w3v12] { min-width: 0; }
.sec-tool code[b-jl8b1w3v12] { white-space: normal; overflow-wrap: anywhere; }

.sec-badge-warn[b-jl8b1w3v12] { background: #fbe7e4; color: #b5462f; }
.sec-badge-ok[b-jl8b1w3v12] { background: #e7f4ea; color: var(--tri-green-hover, #277a35); }
.sec-badge-info[b-jl8b1w3v12] { background: #e8f0fb; color: #2c5fb3; }
.sec-badge-path[b-jl8b1w3v12] { background: #eef6ef; color: #2f6d34; border: 1px solid #d7e8d9; }
.sec-badge-val[b-jl8b1w3v12] { background: var(--tri-surface, #f4f5f7); color: #444; border: 1px solid var(--tri-border); }
.sec-badge-muted[b-jl8b1w3v12] { background: var(--tri-surface, #f4f5f7); color: var(--tri-muted); }
.sec-badge-cred[b-jl8b1w3v12] { background: #fff6e6; color: #9a6b00; border: 1px solid #f0e0bc; }
/* /Components/UserProfileDialog.razor.rz.scp.css */
.profile-modal[b-mdfez3kx92] {
    border-radius: 1rem;
    overflow: hidden;
    position: relative;
}

/* Schließen-Kreuz fest in der oberen rechten Ecke */
.profile-close[b-mdfez3kx92] {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 3;
}

.profile-head[b-mdfez3kx92] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem 1.5rem 1.25rem;
    background: linear-gradient(180deg, #f6f8f7 0%, #ffffff 100%);
    border-bottom: 1px solid #eef0ef;
}

.profile-body[b-mdfez3kx92] {
    padding: 0.75rem 1.5rem 0.5rem;
}

.profile-section[b-mdfez3kx92] {
    padding: 1.25rem 0;
}

.profile-section + .profile-section[b-mdfez3kx92] {
    border-top: 1px solid #eef0ef;
}

.profile-section-title[b-mdfez3kx92] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    margin-bottom: 0.85rem;
}

.profile-foot[b-mdfez3kx92] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 1rem 1.5rem;
    background: #f8f9fa;
    border-top: 1px solid #eef0ef;
}

.min-w-0[b-mdfez3kx92] {
    min-width: 0;
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* Seite: Sidebar (mit schwarzem Kopf) links, Inhalt rechts über die volle Höhe. */
.page[b-ur26oegsde] {
    display: flex;
    flex-direction: row;
    min-height: 100vh;
}

/* ---------- Sidebar (240px) mit schwarzem Kopfbereich ---------- */
.sidebar[b-ur26oegsde] {
    flex: 0 0 240px;
    width: 240px;
    height: 100vh;
    position: sticky;
    top: 0;
    align-self: flex-start;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-right: 1px solid var(--tri-border);
}

/* Schwarzer Kopf – nur über der Sidebar (Hamburger + Logo) */
.sidebar-header[b-ur26oegsde] {
    flex: 0 0 64px;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0 0.75rem;   /* linker Abstand = .sidebar-nav, damit der Hamburger zu den Menü-Icons fluchtet */
    background-color: var(--tri-ink);
    color: #fff;
    /* Branding: Trennlinie unter dem Kopf in der Signature-Farbe (sonst unsichtbar). */
    border-bottom: 3px solid var(--wl-signature, transparent);
}

/* Bereich unter dem Kopf. Bewusst overflow:visible, damit das Benutzer-Popup (im Fuß) NICHT abgeschnitten
   wird – v. a. bei eingeklappter Sidebar (64px). Das Scrollen übernimmt die innere .sidebar-nav. */
.sidebar-body[b-ur26oegsde] {
    flex: 1;
    min-height: 0;
    overflow: visible;
}

.topbar-toggle[b-ur26oegsde] {
    background: none;
    border: none;
    color: #cfd2d6;
    font-size: 1.35rem;
    line-height: 1;
    padding: 0.25rem 0.75rem;   /* = .nav-link, damit das Icon-Kästchen zu den Menü-Icons fluchtet */
    border-radius: 6px;
    flex-shrink: 0;
}

/* Hamburger-Glyph wie ein Menü-Icon zentrieren (gleiche 1.25rem-Box wie .nav-icon). */
.topbar-toggle .bi[b-ur26oegsde] {
    display: inline-block;
    width: 1.25rem;
    text-align: center;
}

.topbar-toggle:hover[b-ur26oegsde] {
    background-color: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.topbar-brand[b-ur26oegsde] {
    display: flex;
    align-items: center;
    min-width: 0;
    color: #fff;
    text-decoration: none;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

/* ---------- Inhaltsbereich: volle Höhe, beginnt ganz oben ---------- */
.content-area[b-ur26oegsde] {
    flex: 1;
    min-width: 0;
    min-height: 100vh;
    background-color: var(--tri-surface);
}

/* Schwebender Menü-Knopf nur auf schmalen Bildschirmen */
.mobile-menu-toggle[b-ur26oegsde] {
    display: none;
}

/* Collapsed (Desktop): schmale Leiste – nur Icons; Logo im Kopf ausblenden */
@media (min-width: 769px) {
    .sidebar-collapsed .sidebar[b-ur26oegsde] {
        flex-basis: 64px;
        width: 64px;
    }

    .sidebar-collapsed .sidebar-header[b-ur26oegsde] {
        justify-content: center;
        padding: 0;
    }

    .sidebar-collapsed .sidebar-header .topbar-brand[b-ur26oegsde] {
        display: none;
    }

    /* Beschriftungen/Abschnittstitel ausblenden; Icon-Wrapper (mit Zähler) bleibt sichtbar */
    .sidebar-collapsed .sidebar[b-ur26oegsde]  .nav-link span:not(.nav-badge):not(.nav-icon-wrap),
    .sidebar-collapsed .sidebar[b-ur26oegsde]  .nav-section,
    .sidebar-collapsed .sidebar[b-ur26oegsde]  .user-card-text,
    .sidebar-collapsed .sidebar[b-ur26oegsde]  .user-card-caret {
        display: none;
    }

    .sidebar-collapsed .sidebar[b-ur26oegsde]  .user-card {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
        gap: 0;
    }

    .sidebar-collapsed .sidebar[b-ur26oegsde]  .sidebar-nav {
        padding-left: 0.4rem;
        padding-right: 0.4rem;
    }

    .sidebar-collapsed .sidebar[b-ur26oegsde]  .nav-link {
        justify-content: center;
        gap: 0;
        padding-left: 0;
        padding-right: 0;
    }

    /* Benutzer-Popup bei eingeklappter Sidebar (64px) als Flyout nach rechts statt auf 64px gestaucht. */
    .sidebar-collapsed .sidebar[b-ur26oegsde]  .user-menu {
        left: 0;
        right: auto;
        min-width: 230px;
    }
}

/* Mobil: Sidebar als Overlay, schwebender Menü-Knopf zum Ein-/Ausblenden */
@media (max-width: 768px) {
    .sidebar[b-ur26oegsde] {
        position: fixed;
        z-index: 1020;
        margin-left: -240px;
        transition: margin-left 0.2s ease-in-out;
    }

    .page:not(.sidebar-collapsed) .sidebar[b-ur26oegsde] {
        margin-left: 0;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.25);
    }

    .mobile-menu-toggle[b-ur26oegsde] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        top: 0.6rem;
        left: 0.6rem;
        z-index: 1019;
        width: 42px;
        height: 42px;
        border: none;
        border-radius: 8px;
        background-color: var(--tri-ink);
        color: #fff;
        font-size: 1.3rem;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.sidebar-inner[b-m1wdn3vahv] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Nur die Nav scrollt; der Fuß (mit dem Benutzer-Popup) bleibt außerhalb des überlaufenden Bereichs,
   damit das Popup nicht abgeschnitten wird. */
.sidebar-nav[b-m1wdn3vahv] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0.5rem 0.75rem;
}

.nav-section[b-m1wdn3vahv] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-faint);
    padding: 0.4rem 0.75rem 0.15rem;
}
.nav-section-toggle[b-m1wdn3vahv] {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; border: none; background: transparent; cursor: pointer; text-align: left;
}
.nav-section-toggle:hover[b-m1wdn3vahv] { color: var(--tri-muted-2); }
.nav-section-toggle > i[b-m1wdn3vahv] { font-size: 0.7rem; }

/* Shared link look (NavLink, button, a) – gilt für Navigation UND Fußbereich */
.sidebar-inner[b-m1wdn3vahv]  .nav-link,
.sidebar-inner .nav-link[b-m1wdn3vahv] {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 0.65rem;
    padding: 0.28rem 0.75rem;
    margin-bottom: 0.01rem;
    border: none;
    background: none;
    text-align: left;
    color: var(--tri-muted-2);
    font-size: 0.92rem;
    font-weight: 400;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color 0.12s ease-in-out, color 0.12s ease-in-out;
}

.sidebar-inner[b-m1wdn3vahv]  .nav-link:hover,
.sidebar-inner .nav-link:hover[b-m1wdn3vahv] {
    background-color: var(--tri-green-bg);
    color: var(--tri-green);
}

.sidebar-inner[b-m1wdn3vahv]  .nav-link.active {
    background-color: var(--tri-green-bg-active);
    color: var(--tri-green);
    font-weight: 600;
}

.nav-icon[b-m1wdn3vahv] {
    font-size: 1.05rem;
    width: 1.25rem;
    text-align: center;
}

/* Roter Zähler direkt am Glocken-Icon (oben rechts) */
.nav-icon-wrap[b-m1wdn3vahv] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nav-badge[b-m1wdn3vahv] {
    position: absolute;
    top: -7px;
    right: -9px;
    background-color: #dc3545;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 600;
    line-height: 1.05rem;
    height: 1.05rem;
    min-width: 1.05rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    text-align: center;
}

.nav-chevron[b-m1wdn3vahv] {
    margin-left: auto;
    font-size: 0.8rem;
    transition: transform 0.18s ease-in-out;
}

.nav-group-toggle.collapsed .nav-chevron[b-m1wdn3vahv] {
    transform: rotate(-90deg);
}

.nav-group[b-m1wdn3vahv] {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.2s ease-in-out;
}

    .nav-group.show[b-m1wdn3vahv] {
        max-height: 500px;
    }

.sidebar-nav[b-m1wdn3vahv]  .nav-sub {
    padding-left: 2.6rem;
    font-size: 0.88rem;
}

/* Fußbereich: Einstellungen/Abmelden + Benutzerkarte */
.sidebar-foot[b-m1wdn3vahv] {
    margin-top: auto;
    padding: 0.5rem 0.75rem 0.75rem;
    border-top: 1px solid var(--tri-border);
}

.user-card[b-m1wdn3vahv] {
    position: relative;   /* Anker für den Rollen-Badge oben rechts */
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    margin-top: 0.35rem;
    /* Linker Innenabstand kleiner als bei den Menüpunkten, damit die Avatar-Mitte auf der Icon-Spalte sitzt (#106831);
       die Karte selbst bleibt volle Breite, die Hover-Fläche also bündig zu den Menüpunkten. */
    padding: 0.5rem 0.75rem 0.5rem 0.19rem;
    border: none;
    background: none;
    border-radius: 8px;
    text-align: left;
    cursor: pointer;
}

.user-card-role[b-m1wdn3vahv] {
    position: absolute;
    top: -0.35rem;
    right: 0.45rem;
    z-index: 3;
    font-size: 0.6rem;
    font-weight: 600;
    padding: 0.1rem 0.35rem;
}

.user-card-caret[b-m1wdn3vahv] {
    margin-left: auto;
    color: var(--tri-faint);
    font-size: 0.95rem;
    flex-shrink: 0;
}

/* Benutzer-Menü (Popup über der Benutzerkarte) */
.user-menu-wrap[b-m1wdn3vahv] {
    position: relative;
}

.user-menu-backdrop[b-m1wdn3vahv] {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

.user-menu[b-m1wdn3vahv] {
    position: absolute;
    bottom: calc(100% + 0.4rem);
    left: 0;
    right: 0;
    z-index: 1050;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.6rem;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
    padding: 0.35rem;
}

.user-menu-item[b-m1wdn3vahv] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.5rem 0.65rem;
    border: none;
    background: none;
    text-align: left;
    border-radius: 0.45rem;
    font-size: 0.9rem;
    color: #2b2f36;
}

.user-menu-item:hover[b-m1wdn3vahv] {
    background-color: #f1f3f5;
}

.user-menu-item.text-danger:hover[b-m1wdn3vahv] {
    background-color: #fdecee;
}

.user-menu-item .bi[b-m1wdn3vahv] {
    width: 1.15rem;
    text-align: center;
    color: #6b7280;
}

.user-menu-item.text-danger .bi[b-m1wdn3vahv] {
    color: inherit;
}

.user-menu-divider[b-m1wdn3vahv] {
    height: 1px;
    background: #eceef0;
    margin: 0.3rem 0.25rem;
}

.user-card:hover[b-m1wdn3vahv] {
    background-color: #f1f3f5;
}

.user-card-text[b-m1wdn3vahv] {
    min-width: 0;
    line-height: 1.15;
}

.user-card-name[b-m1wdn3vahv] {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
}

.user-card-name-text[b-m1wdn3vahv] {
    /* Name fett, in hellerem Grau. */
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--tri-faint);
    line-height: 1.2;
    /* Bis zu zwei Zeilen (z. B. Vor- und Nachname) statt Abschneiden */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.user-card-mail[b-m1wdn3vahv] {
    display: block;
    font-size: 0.72rem;
    color: #8a9099;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Footer (alt) */
.sidebar-footer[b-m1wdn3vahv] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--tri-border);
    background-color: #fbfbfc;
}

    .sidebar-footer .bi-person-circle[b-m1wdn3vahv] {
        font-size: 1.75rem;
        color: var(--tri-faint);
    }

.sidebar-footer-text small[b-m1wdn3vahv] {
    display: block;
    line-height: 1;
    font-size: 0.7rem;
}

.sidebar-footer-text .fw-semibold[b-m1wdn3vahv] {
    font-size: 0.9rem;
}
/* /Pages/Agents.razor.rz.scp.css */
/* Name-Spalte ist die flexible Spalte der Liste: nimmt die Restbreite ein, sodass die
   Beschreibung dynamisch bis zum Spaltenrand läuft und erst dort mit „…" abgeschnitten wird
   (statt fix bei 320px). Die max-width:0 + width:100%-Kombination ist der Standard-Trick,
   damit text-overflow:ellipsis innerhalb einer Tabellenzelle greift. */
.agentlist-name-cell[b-xzjat2t5zm] {
    max-width: 0;
    width: 100%;
}

/* LLM-Provider: breitere Spalte (wird nicht von der flexiblen Name-Spalte erdrückt) und
   höchstens 2 Zeilen – längere Namen werden mit „…" abgekürzt. */
.agentlist-provider-cell[b-xzjat2t5zm] {
    min-width: 13rem;
}

.agentlist-provider-clamp[b-xzjat2t5zm] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* /Pages/AgentSecurity.razor.rz.scp.css */
.sec-hero-icon[b-cyvq1gf816] {
    width: 3rem;
    height: 3rem;
    border-radius: .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #fff;
    background: linear-gradient(135deg, var(--tri-green), var(--tri-green-hover));
    box-shadow: 0 6px 16px rgba(46, 139, 61, .25);
}
/* /Pages/Dashboard.razor.rz.scp.css */
/* ---- Dashboard: modernes Mosaik-Layout ---- */

/* Kopfzeile läuft jetzt über die zentrale <PageHeader>-Komponente; hier nur noch die
   dashboard-spezifischen Aktions-Elemente (Schalter + Aktualisieren-Button). */
.dash-switch[b-1oqpnytxqf] { display: inline-flex; align-items: center; gap: .45rem; font-size: .82rem; color: #4b5563; margin: 0; cursor: pointer; white-space: nowrap; }
.dash-switch input[b-1oqpnytxqf] { width: 1rem; height: 1rem; cursor: pointer; }
.dash-refresh[b-1oqpnytxqf] {
    display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap;
    border: 1px solid #e5e7eb; background: #fff; color: #374151; padding: .5rem .9rem; border-radius: .7rem;
    font-size: .85rem; font-weight: 500; transition: background .15s, box-shadow .15s;
}
.dash-refresh:hover:not(:disabled)[b-1oqpnytxqf] { background: #f9fafb; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.dash-refresh:disabled[b-1oqpnytxqf] { opacity: .5; }

/* ---- Raster: vier Spalten, feste Rasterhöhe, dichte Packung (möglichst keine Lücken) ---- */
.dash-list[b-1oqpnytxqf] {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: var(--dash-row, 150px); grid-auto-flow: row dense; gap: 1rem;
}
@media (max-width: 1200px) { .dash-list[b-1oqpnytxqf] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px)  { .dash-list[b-1oqpnytxqf] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px)  { .dash-list[b-1oqpnytxqf] { grid-template-columns: 1fr; } }

/* ---- Karte ---- */
.dash-card[b-1oqpnytxqf] {
    display: flex; flex-direction: column; min-height: 0; position: relative; overflow: hidden;
    background: #fff; border: 1.5px solid #c2c8d0; border-radius: 1rem;
    box-shadow: 0 1px 2px rgba(16,24,40,.05), 0 8px 24px rgba(16,24,40,.06);
    transition: box-shadow .18s ease, border-color .18s ease;
}
.dash-card:hover[b-1oqpnytxqf] { box-shadow: 0 4px 10px rgba(16,24,40,.07), 0 16px 40px rgba(16,24,40,.10); }
.dash-card.resizing[b-1oqpnytxqf] { user-select: none; box-shadow: 0 0 0 2px var(--tri-green, #2e8b3d); }
/* Verschieben: gezogene Karte ausgeblendet; Platzhalter-Rechteck markiert den neuen Platz (folgt dem Ziehen). */
.dash-card.dash-dragging[b-1oqpnytxqf] { opacity: .4; }
.dash-placeholder[b-1oqpnytxqf] {
    border: 2px dashed var(--tri-green, #2e8b3d); border-radius: 1rem;
    background: rgba(46,139,61,.08); min-height: 0;
}
.dash-card.is-hidden[b-1oqpnytxqf] { opacity: .55; }
.dash-card.is-hidden:hover[b-1oqpnytxqf] { opacity: .8; }

/* Kopf: feste Höhe, trägt die Hintergrundfarbe (einzeiliger Titel + Wichtigkeits-Icon); zugleich Ziehgriff.
   Graue Linie grenzt ihn vom weißen Rest ab. */
.dash-card-head[b-1oqpnytxqf] {
    flex: 0 0 auto; display: flex; flex-direction: column; justify-content: center; gap: .15rem;
    min-height: 2.6rem; padding: .45rem .9rem;
    background: #f3f4f6; cursor: grab; border-bottom: 1px solid #d6dade; user-select: none;
}
.dash-card-head:active[b-1oqpnytxqf] { cursor: grabbing; }
.dash-card-title[b-1oqpnytxqf] {
    flex: 1 1 auto; min-width: 0; font-size: .95rem; font-weight: 650; color: #374151; margin: 0; line-height: 1.3;
    letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Wichtigkeit: Kartenkopf einfärben – high = hellgelb, urgent = hellrot (Agent-Hintergrundfarbe wird ignoriert). */
.dash-card.imp-high .dash-card-head[b-1oqpnytxqf], .dash-zoom-head.imp-high[b-1oqpnytxqf] { background: #fef3c7; }
.dash-card.imp-urgent .dash-card-head[b-1oqpnytxqf], .dash-zoom-head.imp-urgent[b-1oqpnytxqf] { background: #fee2e2; }
/* Wichtigkeits-Text im Zoom-Popup (normaler Inline-Span, damit er mit den übrigen Texten der Zeile fluchtet). */
.dash-imp-text[b-1oqpnytxqf] { color: #dc2626; font-weight: 600; }

/* Körper: weiß, Markdown-Vorschau in Grau, scrollbar. */
.dash-card-body[b-1oqpnytxqf] {
    flex: 1 1 auto; min-height: 0; overflow: hidden; background: #fff; padding: .6rem .9rem;
    /* Unten leicht ausfaden (wie im Designer), damit abgeschnittener Text sanft endet. */
    -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 1.6rem), transparent 100%);
    mask-image: linear-gradient(to bottom, #000 calc(100% - 1.6rem), transparent 100%);
}
/* Deutlich kleinere Vorschau in Grau. ::deep, da der Markdown-HTML aus der Kind-Komponente stammt. */
.dash-card-summary[b-1oqpnytxqf] {
    font-size: .72rem; line-height: 1.3; color: #4b5563; font-weight: 500;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dash-card-preview[b-1oqpnytxqf] { font-size: .62rem; line-height: 1.3; color: #6b7280; }
/* Innerer .markdown-body (aus der Kind-Komponente) trägt global font-size:.95rem – hier explizit verkleinern. */
.dash-card-preview[b-1oqpnytxqf]  .markdown-body { font-size: .62rem; line-height: 1.3; }
.dash-card-preview[b-1oqpnytxqf]  :is(h1,h2,h3,h4,h5,h6) { font-size: .68rem; font-weight: 600; color: var(--tri-green, #2e8b3d); margin: .1rem 0 .25rem; }
.dash-card-preview[b-1oqpnytxqf]  p { margin: 0 0 .35rem; }
.dash-card-preview[b-1oqpnytxqf]  ul, .dash-card-preview[b-1oqpnytxqf]  ol { margin: 0 0 .35rem; padding-left: 1rem; }
.dash-card-preview[b-1oqpnytxqf]  table { font-size: .66rem; }
.dash-card-preview[b-1oqpnytxqf]  :is(pre,code) { font-size: .66rem; }
.dash-card-preview[b-1oqpnytxqf]  :is(p,li,td,th) { color: #6b7280; }

/* Fußzeile: weiß, Datum + Aktionen. */
.dash-card-foot[b-1oqpnytxqf] { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .4rem .7rem .4rem 1rem; background: #fff; }
.dash-date[b-1oqpnytxqf] { display: inline-flex; align-items: center; gap: .35rem; font-size: .72rem; color: #6b7280; }
.dash-date > i[b-1oqpnytxqf] { opacity: .8; }
.dash-clip[b-1oqpnytxqf] { display: inline-flex; align-items: center; gap: .15rem; margin-left: .35rem; color: #6b7280; }
.dash-card-actions[b-1oqpnytxqf] { display: flex; gap: .3rem; flex: 0 0 auto; align-items: center; }
.dash-ibtn[b-1oqpnytxqf] {
    width: 1.85rem; height: 1.85rem; border-radius: .5rem; border: 1px solid #e5e7eb; background: #fff;
    color: #6b7280; display: inline-flex; align-items: center; justify-content: center; font-size: .85rem;
    transition: background .15s, color .15s, border-color .15s;
}
.dash-ibtn:hover[b-1oqpnytxqf] { background: #f3f4f6; color: #111827; }
.dash-ibtn-del:hover[b-1oqpnytxqf] { background: #fee2e2; color: var(--tri-red); border-color: var(--tri-red); }

/* Größen-Griffe: hellgrau gefüllte untere Ecken (füllen die 1rem-Kartenrundung exakt; Karte clippt rund). */
.dash-resize[b-1oqpnytxqf] { position: absolute; bottom: 0; width: .7rem; height: .7rem; touch-action: none; transition: background .15s; }
.dash-resize-r[b-1oqpnytxqf] { right: 0; cursor: nwse-resize; background: linear-gradient(135deg, transparent 50%, #dde1e6 50%); }
.dash-resize-l[b-1oqpnytxqf] { left: 0; cursor: nesw-resize; background: linear-gradient(225deg, transparent 50%, #dde1e6 50%); }
.dash-resize-r:hover[b-1oqpnytxqf] { background: linear-gradient(135deg, transparent 50%, #aab0b8 50%); }
.dash-resize-l:hover[b-1oqpnytxqf] { background: linear-gradient(225deg, transparent 50%, #aab0b8 50%); }

/* Agentennummer im Zoom-Kopf: dunkelgrau, ohne Hintergrund. Run als graues Badge (Link). */
.dash-num[b-1oqpnytxqf] { color: #374151; font-weight: 600; font-variant-numeric: tabular-nums; }
.dash-run-badge[b-1oqpnytxqf] {
    display: inline-flex; align-items: center; background: #e9ecef; color: #4b5563;
    border-radius: 999px; padding: .05rem .55rem; font-size: .72rem; font-weight: 600;
}
.dash-run-badge:hover[b-1oqpnytxqf] { background: #dde1e6; color: #1f2937; }

/* ---- Zoom-Popup: nahezu vollflächig, kompakter Kopf, Body füllt + scrollt ---- */
.dash-zoom-dialog[b-1oqpnytxqf] { max-width: 96vw; width: 96vw; }
.dash-zoom-dialog .user-modal[b-1oqpnytxqf] { display: flex; flex-direction: column; height: 94vh; }
.dash-zoom-head[b-1oqpnytxqf] { flex: 0 0 auto; padding: .7rem 1.25rem !important; align-items: center; }
.dash-zoom-body[b-1oqpnytxqf] { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }

/* ---- Zoom-Popup: Anhänge ---- */
.dash-att-title[b-1oqpnytxqf] { font-weight: 600; font-size: .9rem; color: #374151; margin-bottom: .5rem; }
.dash-att-list[b-1oqpnytxqf] { display: flex; flex-direction: column; gap: .4rem; }
.dash-att[b-1oqpnytxqf] { display: flex; align-items: center; gap: .4rem; padding: .4rem .6rem; border: 1px solid #eceef1; border-radius: .55rem; }
.dash-att-name[b-1oqpnytxqf] { font-size: .85rem; color: #374151; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- Leerzustand ---- */
.dash-empty[b-1oqpnytxqf] {
    display: flex; flex-direction: column; align-items: center; gap: .4rem; text-align: center;
    padding: 4rem 1.5rem; color: #6b7280; background: #fff; border: 1px dashed #d8dde3; border-radius: 1rem;
}
.dash-empty > i[b-1oqpnytxqf] { font-size: 2.4rem; color: #b6c0cc; margin-bottom: .3rem; }
.dash-empty > div[b-1oqpnytxqf] { font-weight: 600; color: #374151; }
.dash-empty > span[b-1oqpnytxqf] { font-size: .85rem; }
/* /Pages/WorkflowDesigner.razor.rz.scp.css */
.wfd[b-dssmgoa64y] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background: #fff;
    /* Die globale Seiten-Kopfband-Regel (.page-content > :first-child) greift hier,
       weil .wfd das erste Kind ist – sie zentriert und verschmälert den Inhalt.
       Diese Eigenschaften neutralisieren das, damit der Designer die volle Breite nutzt. */
    align-items: stretch !important;
    position: static !important;
    min-height: 0 !important;
    overflow: hidden;          /* nur der Canvas scrollt – Kopf/Fuß bleiben fix */
    border-bottom: none !important;
    margin: 0 -1rem -1.5rem -1rem !important;   /* unterer Negativrand absorbiert das pb-4 des Inhaltsbereichs */
    padding: 0 !important;
}
@media (min-width: 992px) {
    .wfd[b-dssmgoa64y] { margin: 0 -1.5rem -1.5rem -1.5rem !important; }
}

/* Kopfleiste */
.wfd-head[b-dssmgoa64y] {
    /* Exakt wie das Standard-Kopfband (.page-content > :first-child): 64px Mindesthöhe
       und die grüne 2px-Linie unten – damit Höhe und Trennlinie bündig mit dem Logo-Bereich liegen. */
    flex: 0 0 auto;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0 1.5rem;
    border-bottom: 2px solid var(--tri-green);
}
.wfd-brand[b-dssmgoa64y] { display: flex; align-items: center; gap: .75rem; min-width: 0; flex: 1 1 auto; overflow: hidden; }
.wfd-brand > i[b-dssmgoa64y] { font-size: 1.7rem; color: var(--tri-green); flex: 0 0 auto; }
.wfd-brand-kicker[b-dssmgoa64y] { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tri-faint); }
/* Titel immer einzeilig; zu lange Namen mit „…" kürzen (voller Name als title-Tooltip). */
.wfd-brand-title[b-dssmgoa64y] { font-size: 1.6rem; font-weight: 700; color: var(--tri-green); line-height: 1.2; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wfd-brand-id[b-dssmgoa64y] { color: var(--tri-text); }
.wfd-badge[b-dssmgoa64y] { font-size: .72rem; font-weight: 600; color: var(--tri-muted); background: var(--tri-surface); border-radius: 1rem; padding: .15rem .6rem; }
.wfd-head-right[b-dssmgoa64y] { display: flex; flex-direction: column; align-items: flex-end; gap: .4rem; flex: 0 0 auto; }
.wfd-head-actions[b-dssmgoa64y] { display: flex; align-items: center; gap: .6rem; flex-wrap: nowrap; }
.wfd-head-actions > *[b-dssmgoa64y] { flex: 0 0 auto; }
.wfd-head-actions .btn[b-dssmgoa64y] { white-space: nowrap; }
.wfd-head-row2[b-dssmgoa64y] { display: flex; justify-content: flex-end; }
.wfd-runchip[b-dssmgoa64y] {
    display: inline-flex; align-items: center; font-size: .8rem; font-weight: 700; color: var(--tri-green);
    background: var(--tri-surface); border: 1px solid var(--tri-border); border-radius: 1rem; padding: .25rem .7rem;
}
.wfd-run-status[b-dssmgoa64y] { margin-left: auto; flex: 0 0 auto; font-size: .72rem; font-weight: 700; border-radius: 1rem; padding: .15rem .6rem; }
.wfd-run-status.run[b-dssmgoa64y] { color: var(--tri-green); background: rgba(46,139,61,.12); }
.wfd-run-status.wait[b-dssmgoa64y] { color: #c98a1a; background: rgba(201,138,26,.14); }
.wfd-run-status.err[b-dssmgoa64y] { color: var(--tri-red); background: rgba(192,57,43,.12); }
.wfd-run-status.done[b-dssmgoa64y] { color: var(--tri-muted); background: var(--tri-surface); }
.wfd-chat[b-dssmgoa64y] { margin-bottom: .6rem; border-radius: .6rem; padding: .55rem .7rem; border: 1px solid var(--tri-border); }
.wfd-chat.to[b-dssmgoa64y] { background: rgba(46,139,61,.07); border-color: rgba(46,139,61,.25); }
.wfd-chat.from[b-dssmgoa64y] { background: var(--tri-surface); }
.wfd-chat-role[b-dssmgoa64y] { font-size: .72rem; font-weight: 700; color: var(--tri-faint); margin-bottom: .25rem; }
.wfd-chat-text[b-dssmgoa64y] { font-size: .9rem; color: var(--tri-text); word-break: break-word; }
.wfd-chat-text :last-child[b-dssmgoa64y] { margin-bottom: 0; }
/* Live mitlaufender Generierungstext (Denkprozess/Antwort) im Lauf-Dialog. */
.wfd-live-text[b-dssmgoa64y] { white-space: pre-wrap; font-size: .8rem; line-height: 1.35; color: var(--tri-text, #33373d);
    background: #fff; border: 1px solid var(--tri-border); border-radius: .5rem; padding: .5rem .65rem;
    max-height: 16rem; overflow-y: auto; }
.wfd-root-select[b-dssmgoa64y] { max-width: 18rem; }

.wfd-body[b-dssmgoa64y] { display: flex; flex: 1 1 auto; min-height: 0; position: relative; }

/* Hinzufügen-Leiste unten (horizontal) */
.wfd-toolbar[b-dssmgoa64y] { flex: 0 0 auto; display: flex; align-items: center; gap: .6rem; padding: .5rem .9rem; border-top: 1px solid var(--tri-border); background: #fff; overflow-x: auto; }
.wfd-toolbar-label[b-dssmgoa64y] { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--tri-faint); flex: 0 0 auto; }
.wfd-tool-block[b-dssmgoa64y] { display: flex; align-items: center; gap: .5rem; border: 1px solid var(--tri-border); border-radius: .6rem; background: #fff; padding: .35rem .6rem; cursor: pointer; flex: 0 0 auto; }
.wfd-tool-block:hover[b-dssmgoa64y] { border-color: var(--tri-green); box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.wfd-tool-block-text[b-dssmgoa64y] { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.wfd-toolbar-stats[b-dssmgoa64y] { margin-left: auto; display: flex; gap: 1.1rem; font-size: .78rem; color: var(--tri-muted); white-space: nowrap; }
.wfd-toolbar-stats b[b-dssmgoa64y] { color: var(--tri-green); }

/* Palette */
.wfd-palette[b-dssmgoa64y] {
    width: 250px; flex: 0 0 250px;
    border-right: 1px solid var(--tri-border);
    padding: 1rem; overflow-y: auto;
    display: flex; flex-direction: column; gap: .6rem;
}
.wfd-palette-kicker[b-dssmgoa64y] { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tri-faint); }
.wfd-palette-title[b-dssmgoa64y] { font-size: 1.3rem; font-weight: 700; margin-bottom: .4rem; }
.wfd-block[b-dssmgoa64y] {
    display: flex; align-items: center; gap: .6rem;
    border: 1px solid var(--tri-border); border-radius: .7rem; padding: .6rem .7rem; background: #fff;
}
.wfd-block-icon[b-dssmgoa64y] { width: 2rem; height: 2rem; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; border-radius: .5rem; background: var(--tri-surface); }
.wfd-block-icon.trg[b-dssmgoa64y] { color: #2f7dd6; } .wfd-block-icon.agt[b-dssmgoa64y] { color: var(--tri-green); }
.wfd-block-icon.dec[b-dssmgoa64y] { color: #c98a1a; } .wfd-block-icon.res[b-dssmgoa64y] { color: #2e8b3d; }
.wfd-block-name[b-dssmgoa64y] { font-weight: 700; font-size: .9rem; }
.wfd-block-desc[b-dssmgoa64y] { font-size: .76rem; color: var(--tri-muted); line-height: 1.25; }
.wfd-block-add[b-dssmgoa64y] { color: var(--tri-faint); }
.wfd-stats[b-dssmgoa64y] { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem .75rem; padding-top: 1rem; }
.wfd-stat-num[b-dssmgoa64y] { font-size: 1.4rem; font-weight: 700; color: var(--tri-green); display: block; line-height: 1; }
.wfd-stat-lbl[b-dssmgoa64y] { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--tri-faint); }

/* Canvas */
.wfd-canvas-wrap[b-dssmgoa64y] { flex: 1 1 auto; min-width: 0; overflow: auto; position: relative;
    background-color: #fafbfc;
    background-image: radial-gradient(#dfe3e8 1px, transparent 1px);
    background-size: 22px 22px; }

/* Hinweis, wenn der Designer ohne Agent/Run geöffnet wird – mittig (horizontal & vertikal), groß, hellgrau. */
.wfd-empty-hint[b-dssmgoa64y] {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    text-align: center; padding: 2rem;
    font-size: 1.7rem; font-weight: 500; color: #c2c7cd;
    pointer-events: none; user-select: none;
}
/* Rechtes Panel: Ordner-/Agentenbaum */
.wfd-tree[b-dssmgoa64y] {
    border-left: 1px solid var(--tri-border);
    background: #fff;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
/* Angeheftet: fest angedockt, nimmt Layout-Breite ein (Breite per Maus ziehbar – inline style überschreibt) */
.wfd-tree-docked[b-dssmgoa64y] { flex: 0 0 270px; width: 270px; position: relative; }
/* Ziehgriff an der linken Kante des angedockten Panels */
.wfd-tree-resize[b-dssmgoa64y] {
    position: absolute; top: 0; left: -3px; width: 7px; height: 100%;
    cursor: col-resize; z-index: 6;
}
.wfd-tree-resize:hover[b-dssmgoa64y] { background: var(--tri-green); opacity: .35; }
/* Vollflächiges Overlay während des Ziehens – fängt alle Mausbewegungen (auch über dem Canvas) */
.wfd-resize-overlay[b-dssmgoa64y] { position: fixed; inset: 0; z-index: 1000; cursor: col-resize; }

/* Agent-Node als Drop-Ziel beim Ziehen eines Buckets: statischer Glow (wie laufende Agenten, aber ohne Pulsieren).
   grün = Drop erlaubt, rot = Bucket bereits zugeordnet. */
.wfd-node.wfd-node-bucketdrop-ok[b-dssmgoa64y] {
    border-color: var(--tri-green);
    box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 3px rgba(46, 139, 61, .65), 0 0 22px 6px rgba(46, 139, 61, .55);
}
.wfd-node.wfd-node-bucketdrop-invalid[b-dssmgoa64y] {
    border-color: var(--tri-red);
    box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 3px rgba(220, 53, 69, .65), 0 0 22px 6px rgba(220, 53, 69, .55);
}

/* Schmale Leiste mit gedrehtem Text; beim Hover klappt das Flyout aus */
.wfd-tree-rail[b-dssmgoa64y] {
    flex: 0 0 30px;
    width: 30px;
    border-left: 1px solid var(--tri-border);
    background: #fff;
    position: relative;
    cursor: pointer;
}
.wfd-tree-tab[b-dssmgoa64y] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: .8rem;
    font-weight: 600;
    color: var(--tri-green);
    user-select: none;
}
.wfd-tree-tab > i[b-dssmgoa64y] { writing-mode: horizontal-tb; }
.wfd-tree-rail:hover[b-dssmgoa64y] { background: var(--tri-surface, #f4f5f7); }

/* Flyout: liegt absolut über dem Canvas, slidet beim Hover ein */
.wfd-tree-flyout[b-dssmgoa64y] {
    position: absolute;
    top: 0;
    /* Per 'right' (statt transform) ein-/ausblenden: ein transform am Eltern-Container bricht in Chrome den
       nativen Drag-Ghost (gezogener Agent „klebt" nicht am Cursor). 'right' animiert ebenso, ohne Transform. */
    right: -280px;
    height: 100%;
    width: 280px;
    z-index: 30;
    box-shadow: -8px 0 22px rgba(0, 0, 0, .12);
    opacity: 0;
    pointer-events: none;
    transition: right .18s ease, opacity .18s ease;
}
.wfd-tree-rail:hover .wfd-tree-flyout[b-dssmgoa64y] {
    right: 0;
    opacity: 1;
    pointer-events: auto;
}
.wfd-tree-head[b-dssmgoa64y] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .6rem;
    font-weight: 600;
    color: var(--tri-green);
    border-bottom: 1px solid var(--tri-border);
}
/* Body füllt die Resthöhe der voll-hohen Spalte und scrollt intern (flex:1 + min-height:0 = Pflicht,
   sonst nimmt der Body nur Inhaltshöhe und der Rest läuft unten aus dem Viewport). */
.wfd-tree-body[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: .4rem .2rem; }
.wfd-tree-empty[b-dssmgoa64y] { color: var(--tri-muted); font-size: .85rem; padding: .5rem .8rem; }
.wfd-tree-row[b-dssmgoa64y] {
    display: flex;
    align-items: center;
    gap: .15rem;
    padding: .28rem .6rem;
    font-size: .86rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wfd-tree-row.is-folder[b-dssmgoa64y] { color: var(--tri-muted); font-weight: 600; }
.wfd-tree-row.is-agent[b-dssmgoa64y] { cursor: pointer; border-radius: .4rem; margin: 0 .4rem; }
.wfd-tree-row.is-agent:hover[b-dssmgoa64y] { background: var(--tri-surface, #f4f5f7); color: var(--tri-green); }
.wfd-tree-row.is-agent.active[b-dssmgoa64y] { background: #e7f4ea; color: var(--tri-green-hover, #277a35); font-weight: 600; }
.wfd-tree-num[b-dssmgoa64y] { color: var(--tri-muted); font-size: .76rem; margin-right: .15rem; }
.wfd-tree-row.is-agent.active .wfd-tree-num[b-dssmgoa64y] { color: inherit; }

.wfd-canvas[b-dssmgoa64y] { position: relative; }
/* overflow:visible → beim Ziehen eines Knotens über die berechnete Canvas-Höhe hinaus
   werden die Kanten/Ports nicht an der Unterkante abgeschnitten ("Pfeile reißen ab"). */
.wfd-lines[b-dssmgoa64y] { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: visible; }
.wfd-ports[b-dssmgoa64y] { position: absolute; inset: 0; z-index: 6; pointer-events: none; overflow: visible; }
/* Hinweis unten links über dem Canvas-Bereich fixiert (scrollt nicht mit). */
.wfd-node[b-dssmgoa64y] {
    position: absolute; z-index: 1;
    background: #fff; border: 1px solid var(--tri-border); border-radius: .7rem;
    box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 1px 3px rgba(0,0,0,.10); padding: .7rem .85rem;
    border-top: 3px solid var(--tri-faint); cursor: pointer; transition: box-shadow .12s, transform .12s;
}
.wfd-node.wfd-agent[b-dssmgoa64y] { min-height: 9.5rem; display: flex; flex-direction: column; }
.wfd-node.wfd-agent .wfd-node-foot[b-dssmgoa64y] { margin-top: auto; }
.wfd-node:hover[b-dssmgoa64y] { box-shadow: 0 10px 26px rgba(0,0,0,.18), 0 2px 5px rgba(0,0,0,.12); }

/* Gestrichelter roter Rahmen um einen Worker, dessen Eingaben ein aktiver Gatekeeper überwacht.
   inset = GkFrameGap (EdgePath), damit der rote Gatekeeper-Pfeil exakt auf die untere Rahmenkante zeigt. */
.wfd-gk-frame[b-dssmgoa64y] {
    position: absolute; inset: -22px; z-index: 0;
    border: 2px dashed #d12f2f; border-radius: 1.45rem;
    pointer-events: none;
}
.wfd-node.sel[b-dssmgoa64y] {
    border-color: var(--wfd-accent, var(--tri-green));
    box-shadow: 0 0 0 3px var(--wfd-glow, rgba(46,139,61,.2)), 0 0 16px 3px var(--wfd-glow, rgba(46,139,61,.2)), 0 6px 18px rgba(0,0,0,.08);
}
.wfd-node-edit[b-dssmgoa64y] {
    position: absolute; top: .35rem; right: .35rem; z-index: 2;
    width: 1.6rem; height: 1.6rem; padding: 0; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--tri-border); border-radius: .4rem; background: #fff;
    color: var(--tri-muted); font-size: .8rem; cursor: pointer; opacity: 0; transition: opacity .12s;
}
.wfd-node:hover .wfd-node-edit[b-dssmgoa64y] { opacity: 1; }
.wfd-node-edit:hover[b-dssmgoa64y] { color: var(--tri-green); border-color: var(--tri-green); }
.wfd-node-add[b-dssmgoa64y] { right: 2rem; }
.wfd-node-edit-2[b-dssmgoa64y] { right: 3.7rem; }

/* Popover-Menüs (Hinzufügen am Agenten / Satelliten-Aktionen) – auf Canvas-Ebene */
.wfd-backdrop[b-dssmgoa64y] { position: fixed; inset: 0; z-index: 15; background: transparent; }
.wfd-popmenu[b-dssmgoa64y] {
    position: absolute; z-index: 20;
    background: #fff; border: 1px solid var(--tri-border); border-radius: .55rem;
    box-shadow: 0 10px 26px rgba(0,0,0,.18); padding: .3rem; min-width: 10rem;
}
.wfd-popmenu-title[b-dssmgoa64y] { font-size: .68rem; font-weight: 700; color: var(--tri-faint); padding: .15rem .55rem .3rem; max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wfd-popmenu-item[b-dssmgoa64y] {
    display: flex; align-items: center; gap: .55rem; width: 100%;
    border: none; background: none; text-align: left; cursor: pointer;
    padding: .4rem .55rem; border-radius: .4rem; font-size: .86rem; color: var(--tri-text);
}
.wfd-popmenu-item:hover[b-dssmgoa64y] { background: var(--tri-surface); }
.wfd-popmenu-item:disabled[b-dssmgoa64y] { color: var(--tri-faint); cursor: not-allowed; opacity: .6; }
.wfd-popmenu-item:disabled:hover[b-dssmgoa64y] { background: transparent; }
.wfd-popmenu-item i[b-dssmgoa64y] { width: 1.1rem; text-align: center; color: var(--tri-muted); }
.wfd-popmenu-item.text-danger i[b-dssmgoa64y] { color: var(--tri-red); }
.wfd-popmenu-sep[b-dssmgoa64y] { height: 1px; background: var(--tri-border); margin: .3rem .2rem; }
.wfd-popmenu-note[b-dssmgoa64y] { font-size: .74rem; color: var(--tri-muted); padding: .2rem .55rem; max-width: 12rem; }
.wfd-node-kind[b-dssmgoa64y] { font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tri-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wfd-node-runlink[b-dssmgoa64y] { color: var(--tri-green); text-decoration: none; cursor: pointer; }
.wfd-node-runlink:hover[b-dssmgoa64y] { color: var(--tri-green-dark); text-decoration: none; }
.wfd-node-title[b-dssmgoa64y] { font-weight: 700; font-size: .92rem; line-height: 1.2; color: var(--tri-text); margin-top: .05rem;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wfd-node-model[b-dssmgoa64y] { font-size: .76rem; color: var(--tri-muted); margin-top: .2rem; position: relative; }
/* Text linksbündig zum Titel; das Icon hängt links davor (außerhalb des Textflusses). */
.wfd-node-model > i[b-dssmgoa64y] { position: absolute; left: -1.25em; top: 50%; transform: translateY(-50%); }
.wfd-node-chips-kicker[b-dssmgoa64y] { font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--tri-faint); margin: .4rem 0 .2rem; }
.wfd-chip[b-dssmgoa64y] { display: flex; align-items: center; font-size: .76rem; color: var(--tri-text); background: var(--tri-surface); border-radius: .4rem; padding: .15rem .4rem; margin-top: .2rem; }
.wfd-mcp[b-dssmgoa64y] { font-size: .6rem; font-weight: 700; color: #c98a1a; background: #fbf2dd; border-radius: .3rem; padding: 0 .25rem; margin-left: .3rem; }

/* Tools / MCP / Skills als verschiebbare Kreise außerhalb des Agenten (mit Verbindungslinie). */
.wfd-sat[b-dssmgoa64y] {
    position: absolute; z-index: 1;
    width: 40px; height: 40px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #fff; border: 1.5px solid var(--tri-border); box-shadow: 0 2px 6px rgba(0,0,0,.14);
    font-size: 1.1rem; color: var(--tri-muted); cursor: grab; touch-action: none;
}
.wfd-sat:hover[b-dssmgoa64y] { box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.wfd-sat.sel[b-dssmgoa64y] { box-shadow: 0 0 0 2px var(--wfd-accent, var(--tri-green)); }
.wfd-sat-img[b-dssmgoa64y] { width: 22px; height: 22px; object-fit: contain; }
.wfd-sat-tool[b-dssmgoa64y] { background: #e9f5ec; }
.wfd-sat-mcp[b-dssmgoa64y] { background: #fbf2dd; }
.wfd-sat-skill[b-dssmgoa64y] { background: #e7f0fb; }
/* Name unter dem Kreis – absolut positioniert, beeinflusst die Kreisgröße (Linienmitte) nicht. */
.wfd-sat-name[b-dssmgoa64y] {
    position: absolute; top: calc(100% + 6px); left: 50%; transform: translateX(-50%);
    font-size: .62rem; line-height: 1.15; max-width: 150px; text-align: center; color: var(--tri-text);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    background: rgba(255,255,255,.85); border-radius: .25rem; padding: 1px 3px; pointer-events: none;
}
.wfd-sat-tool[b-dssmgoa64y] { color: var(--tri-green); border-color: var(--tri-green); --wfd-accent: var(--tri-green); --wfd-glow: rgba(46,139,61,.22); }
.wfd-sat-mcp[b-dssmgoa64y] { color: #c98a1a; border-color: #c98a1a; --wfd-accent: #c98a1a; --wfd-glow: rgba(201,138,26,.26); }
.wfd-sat-skill[b-dssmgoa64y] { color: #2f7dd6; border-color: #2f7dd6; --wfd-accent: #2f7dd6; --wfd-glow: rgba(47,125,214,.22); }

/* Aktiv genutztes Tool/MCP bzw. laufender Skill: pulsierender Glow – einheitlich orange (wie der laufende Knoten). */
.wfd-sat-glow[b-dssmgoa64y] {
    z-index: 3;
    border-color: #e08e0b;
    animation: wfd-sat-pulse-b-dssmgoa64y 1.25s ease-in-out infinite;
}
@keyframes wfd-sat-pulse-b-dssmgoa64y {
    0%   { box-shadow: 0 0 0 0 rgba(224,142,11,.5),    0 2px 6px rgba(0,0,0,.14); }
    70%  { box-shadow: 0 0 0 10px rgba(224,142,11,0),  0 2px 6px rgba(0,0,0,.14); }
    100% { box-shadow: 0 0 0 0 rgba(224,142,11,0),     0 2px 6px rgba(0,0,0,.14); }
}

/* Knowledge-Zugriff-Satellit als abgerundetes Rechteck mit Bucket-Liste (statt Kreis). */
.wfd-sat-kn[b-dssmgoa64y] {
    position: absolute; z-index: 2;
    min-width: 150px; max-width: 210px;
    background: #fff; border: 1.5px solid var(--tri-green); border-radius: .6rem;
    box-shadow: 0 2px 6px rgba(0,0,0,.14); padding: .35rem .5rem;
    cursor: grab; touch-action: none;
    --wfd-accent: var(--tri-green); --wfd-glow: rgba(46,139,61,.22);
}
.wfd-sat-kn:hover[b-dssmgoa64y] { box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.wfd-sat-kn.sel[b-dssmgoa64y] { box-shadow: 0 0 0 2px var(--tri-green); }
.wfd-sat-kn-head[b-dssmgoa64y] { display: flex; align-items: center; gap: .35rem; color: var(--tri-green); font-weight: 600; font-size: .72rem; margin-bottom: .25rem; }
.wfd-sat-kn-head i[b-dssmgoa64y] { font-size: .95rem; flex: 0 0 auto; }
.wfd-sat-kn-title[b-dssmgoa64y] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wfd-sat-kn-list[b-dssmgoa64y] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; }
.wfd-sat-kn-list li[b-dssmgoa64y] { font-size: .66rem; line-height: 1.25; color: #555; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wfd-sat-kn-id[b-dssmgoa64y] { color: #555; font-variant-numeric: tabular-nums; margin-right: .25rem; }
.wfd-sat-kn-lineic[b-dssmgoa64y] { color: #555; margin-right: .25rem; }
.wfd-sat-kn-empty[b-dssmgoa64y] { font-size: .66rem; color: var(--tri-muted); font-style: italic; }
.wfd-sat-kn-empty-error[b-dssmgoa64y] { color: var(--tri-red); font-style: normal; font-weight: 600; }
.wfd-sat-kn-more[b-dssmgoa64y] { display: inline-block; margin-top: .2rem; font-size: .66rem; color: var(--tri-green); text-decoration: underline; cursor: pointer; }
.wfd-sat-kn-more:hover[b-dssmgoa64y] { color: var(--tri-green-dark, #246b30); }

/* Bucket-Drop direkt auf den Knowledge-Zugriff-Satelliten: grün = erlaubt, rot = bereits zugeordnet. */
.wfd-sat-kn.wfd-sat-bucketdrop-ok[b-dssmgoa64y] {
    border-color: var(--tri-green);
    box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 3px rgba(46, 139, 61, .65), 0 0 22px 6px rgba(46, 139, 61, .55);
}
.wfd-sat-kn.wfd-sat-bucketdrop-invalid[b-dssmgoa64y] {
    border-color: var(--tri-red);
    box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 3px rgba(220, 53, 69, .65), 0 0 22px 6px rgba(220, 53, 69, .55);
}

.wfd-agent-worker[b-dssmgoa64y] { border-top-color: var(--tri-green); --wfd-accent: var(--tri-green); --wfd-glow: rgba(46,139,61,.22); --wfd-tint: #e9f5ec; }
.wfd-agent-critic[b-dssmgoa64y] { border-top-color: var(--tri-secondary); --wfd-accent: #7a869a; --wfd-glow: rgba(122,134,154,.26); --wfd-tint: #eef1f4; }
.wfd-agent-gatekeeper[b-dssmgoa64y] { border-top-color: var(--tri-red); --wfd-accent: var(--tri-red); --wfd-glow: rgba(192,57,43,.22); --wfd-tint: #fbecea; }
.wfd-trigger[b-dssmgoa64y] { border-top-color: #2f7dd6; --wfd-accent: #2f7dd6; --wfd-glow: rgba(47,125,214,.22); --wfd-tint: #e7f0fb; }
.wfd-decision[b-dssmgoa64y] { border-top-color: #c98a1a; --wfd-accent: #c98a1a; --wfd-glow: rgba(201,138,26,.26); --wfd-tint: #fbf2dd; }
.wfd-kind-trigger[b-dssmgoa64y] { color: #2f7dd6; } .wfd-kind-decision[b-dssmgoa64y] { color: #c98a1a; }
.wfd-start[b-dssmgoa64y] { border-top-color: #2f7dd6; --wfd-accent: #2f7dd6; --wfd-glow: rgba(47,125,214,.22); --wfd-tint: #e7f0fb; }
.wfd-kind-start[b-dssmgoa64y] { color: #2f7dd6; }
.wfd-result[b-dssmgoa64y] { border-top-color: #7c3aed; --wfd-accent: #7c3aed; --wfd-glow: rgba(124,58,237,.35); --wfd-tint: #f1ebff; }
.wfd-kind-result[b-dssmgoa64y] { color: #7c3aed; }
/* Run-Nummer im Ergebnis-Knoten grau. */
.wfd-result .wfd-node-title[b-dssmgoa64y] { color: var(--tri-muted, #6b7280); }
/* Ergebnis-Knoten: finale Antwort sehr klein/grau, so viel wie passt. Klick öffnet die größere Ansicht. */
.wfd-result.has-result[b-dssmgoa64y] { cursor: pointer; animation: wfd-result-glow-b-dssmgoa64y 1.6s ease-in-out infinite; }
@keyframes wfd-result-glow-b-dssmgoa64y {
    0%   { box-shadow: 0 0 0 0 var(--wfd-glow), 0 2px 6px rgba(0,0,0,.14); }
    70%  { box-shadow: 0 0 0 9px rgba(124,58,237,0), 0 2px 6px rgba(0,0,0,.14); }
    100% { box-shadow: 0 0 0 0 rgba(124,58,237,0), 0 2px 6px rgba(0,0,0,.14); }
}
.wfd-result-text[b-dssmgoa64y] {
    margin-top: .5rem; color: var(--tri-muted, #6b7280);
    overflow: hidden; max-height: 7.5rem; position: relative;
}
/* Markdown-Vorschau im Node: kompakt/grau, so viel wie passt (unten ausgeblendet). */
.wfd-result-text[b-dssmgoa64y]  .markdown-body { font-size: .6rem; line-height: 1.3; color: var(--tri-muted, #6b7280); overflow-wrap: anywhere; word-break: break-word; }
.wfd-result-text[b-dssmgoa64y]  .markdown-body * { margin-top: 0; margin-bottom: .25rem; }
/* Überschriften in der Vorschau NICHT riesig rendern – nur leicht hervorgehoben, damit sie die Vorschau nicht sprengen. */
.wfd-result-text[b-dssmgoa64y]  .markdown-body :is(h1, h2, h3, h4, h5, h6) { font-size: .72rem; line-height: 1.25; font-weight: 700; margin: 0 0 .2rem; color: var(--tri-muted, #6b7280); }
.wfd-result-text[b-dssmgoa64y]  .markdown-body table { font-size: .55rem; border-collapse: collapse; }
.wfd-result-text[b-dssmgoa64y]  .markdown-body td, .wfd-result-text[b-dssmgoa64y]  .markdown-body th { padding: 0 .25rem; border: 1px solid var(--tri-border); }
.wfd-result-text[b-dssmgoa64y]::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5rem;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff);
}
.wfd-result-empty[b-dssmgoa64y] { margin-top: .5rem; font-size: .68rem; color: var(--tri-faint, #9aa4af); font-style: italic; }
/* Kein eigener Scrollbereich – der gesamte Modal-Body (Ergebnis-Text + Anhänge) scrollt als Ganzes. */
.wfd-result-full[b-dssmgoa64y] { }

/* Kopf mit Icon-Kachel */
.wfd-node-head[b-dssmgoa64y] { display: flex; align-items: flex-start; gap: .6rem; }
/* Schalter „Folge-Agenten anzeigen" im Sub-Agent-Knoten (iPhone-Stil), unter dem Kicker. */
.wfd-sub-toggle[b-dssmgoa64y] { display: inline-flex; align-items: center; gap: .45rem; margin-top: .05rem; padding-left: 0; cursor: pointer; }
.wfd-sub-toggle .form-check-input[b-dssmgoa64y] { width: 1.65rem; height: .9rem; margin: 0; cursor: pointer; float: none; position: relative; top: -1.5px; }
.wfd-sub-toggle .form-check-input:checked[b-dssmgoa64y] { background-color: var(--tri-green); border-color: var(--tri-green); }
.wfd-sub-toggle .form-check-input:focus[b-dssmgoa64y] { border-color: var(--tri-green); box-shadow: 0 0 0 .2rem rgba(46,139,61,.2); }
.wfd-sub-toggle-lbl[b-dssmgoa64y] { font-size: .74rem; color: #6b7178; user-select: none; }
.wfd-node-ic[b-dssmgoa64y] {
    flex: 0 0 auto; width: 2.1rem; height: 2.1rem; border-radius: .55rem;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--wfd-tint, var(--tri-surface)); color: var(--wfd-accent, var(--tri-muted)); font-size: 1.05rem;
}
.wfd-node-headtext[b-dssmgoa64y] { min-width: 0; }
/* Laufzeit (mm:ss) oben rechts im Ergebnis-Knoten – grau, klein, wie auf den Pipeline-Karten. */
.wfd-result-time[b-dssmgoa64y] { margin-left: auto; flex: 0 0 auto; align-self: flex-start; color: #9aa0a6; font-size: .76rem; white-space: nowrap; }

/* Fußbereich mit Aktions-Symbolen (immer sichtbar) */
.wfd-node-foot[b-dssmgoa64y] { display: flex; gap: .3rem; margin-top: .55rem; padding-top: .45rem; border-top: 1px solid var(--tri-border); }
.wfd-foot-btn[b-dssmgoa64y] {
    flex: 0 0 auto; width: 1.95rem; height: 1.95rem; padding: 0; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--tri-border); border-radius: .4rem; background: #fff;
    color: var(--tri-muted); font-size: .95rem; cursor: pointer;
}
.wfd-foot-btn:hover[b-dssmgoa64y] { color: var(--tri-green); border-color: var(--tri-green); }
.wfd-foot-decider[b-dssmgoa64y] { color: #c98a1a; border-color: #e2c89a; }
.wfd-foot-decider:hover[b-dssmgoa64y] { color: #c98a1a; border-color: #c98a1a; }
.wfd-foot-del:hover[b-dssmgoa64y] { color: var(--tri-red); border-color: var(--tri-red); }
.wfd-foot-stop[b-dssmgoa64y] { width: auto; padding: 0 .5rem; gap: .1rem; font-size: .72rem; font-weight: 400; color: var(--tri-red); background: #fff; border-color: var(--tri-red); }
.wfd-foot-stop:hover[b-dssmgoa64y] { color: #fff; background: var(--tri-red); border-color: var(--tri-red); }
.wfd-addlist[b-dssmgoa64y] { display: flex; flex-direction: column; gap: .25rem; max-height: 18rem; overflow-y: auto; }
.wfd-addlist-item[b-dssmgoa64y] {
    display: flex; align-items: center; width: 100%; text-align: left;
    border: 1px solid var(--tri-border); background: #fff; border-radius: .5rem; padding: .5rem .65rem;
    font-size: .92rem; color: var(--tri-text); cursor: pointer;
}
.wfd-addlist-item:hover[b-dssmgoa64y] { border-color: var(--tri-green); background: var(--tri-surface); }
.wfd-addlist-item > i[b-dssmgoa64y] { color: var(--tri-green); }
.wfd-sel-skill[b-dssmgoa64y] { display: flex; align-items: center; gap: .25rem; padding: .3rem .45rem; border: 1px solid var(--tri-border); border-radius: .5rem; background: #fff; font-size: .92rem; }
.wfd-addlist-item.picked[b-dssmgoa64y] { border-color: var(--tri-green); background: var(--tri-surface); font-weight: 600; }

/* Kompakte Tool-Auswahl mit Checkbox + Kurzbeschreibung (Tools-Popup). */
.wfd-toolpick-list[b-dssmgoa64y] { display: flex; flex-direction: column; gap: .15rem; max-height: 22rem; overflow-y: auto; }
.wfd-toolpick[b-dssmgoa64y] {
    display: flex; align-items: flex-start; gap: .5rem; cursor: pointer;
    padding: .3rem .45rem; border-radius: .4rem;
}
.wfd-toolpick:hover[b-dssmgoa64y] { background: var(--tri-surface); }
.wfd-toolpick > input[b-dssmgoa64y] { width: 1rem; height: 1rem; margin-top: 1px; flex: 0 0 auto; accent-color: var(--tri-green); cursor: pointer; }
.wfd-toolpick-text[b-dssmgoa64y] { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.wfd-toolpick-name[b-dssmgoa64y] { font-size: .9rem; color: #4b5159; font-weight: 600; }
.wfd-toolpick-desc[b-dssmgoa64y] { font-size: .76rem; color: var(--tri-muted); }
/* Skill-Auswahl: Checkbox+Name oben, Pro-Skill-Positionsumschalter darunter (rechtsbündig). */
.wfd-skillpick[b-dssmgoa64y] { flex-direction: column; align-items: stretch; gap: .3rem; }
.wfd-skillpick-main[b-dssmgoa64y] { display: flex; align-items: flex-start; gap: .5rem; cursor: pointer; }
.wfd-skillpick-main > input[b-dssmgoa64y] { width: 1rem; height: 1rem; margin-top: 1px; flex: 0 0 auto; accent-color: var(--tri-green); cursor: pointer; }
.wfd-skillpos[b-dssmgoa64y] { align-self: flex-end; }
.wfd-skillpos .btn[b-dssmgoa64y] { font-size: .72rem; padding: .12rem .55rem; }
.wfd-orderlist[b-dssmgoa64y] { display: flex; flex-direction: column; gap: .3rem; }
.wfd-order-item[b-dssmgoa64y] {
    display: flex; align-items: center; gap: .25rem; padding: .45rem .55rem; font-size: .92rem;
    border: 1px solid var(--tri-border); border-radius: .5rem; background: #fff; cursor: grab; color: var(--tri-text);
}
.wfd-order-item.dragging[b-dssmgoa64y] { opacity: .5; }
.wfd-order-item .wfd-grip[b-dssmgoa64y] { color: var(--tri-faint); }
.wfd-order-prompt[b-dssmgoa64y] { background: #e7f0fb; border-color: #2f7dd6; color: #1f5c9e; }
.wfd-order-prompt .bi-chat-square-text[b-dssmgoa64y] { color: #2f7dd6; }
.wfd-proptabs .nav-link[b-dssmgoa64y] { padding: .3rem .7rem; font-size: .9rem; color: var(--tri-muted); }
.wfd-proptabs .nav-link.active[b-dssmgoa64y] { color: var(--tri-green); font-weight: 600; }
.wfd-snap[b-dssmgoa64y] {
    position: absolute; right: 14px; bottom: 14px; z-index: 5;
    display: inline-flex; align-items: center; gap: .35rem; margin: 0; cursor: pointer;
    font-size: .8rem; color: var(--tri-text); background: #fff;
    border: 1px solid var(--tri-border); border-radius: 1rem; padding: .35rem .7rem;
    box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.wfd-snap input[b-dssmgoa64y] { cursor: pointer; }
.wfd-run-select[b-dssmgoa64y] { width: auto; max-width: 16rem; }
/* Tags am Knoten (sehr klein) */
.wfd-tags[b-dssmgoa64y] { display: flex; flex-wrap: wrap; gap: .2rem; margin-top: .35rem; }
.wfd-tag[b-dssmgoa64y] {
    font-size: .6rem; line-height: 1.2; font-weight: 600; color: #fff;
    background: var(--tg, #2e8b3d); border-radius: .8rem; padding: .05rem .4rem; white-space: nowrap;
}
/* Tag-Auswahl im Editor-Popup */
.wfd-tagpick[b-dssmgoa64y] {
    display: inline-flex; align-items: center; gap: .25rem; font-size: .8rem;
    border: 1px solid var(--tg, var(--tri-border)); color: var(--tg, var(--tri-text));
    background: #fff; border-radius: 1rem; padding: .2rem .6rem; cursor: pointer;
}
.wfd-tagpick.on[b-dssmgoa64y] { background: var(--tg, var(--tri-green)); color: #fff; }

/* Verbindungs-Griff (rechte Kante, Mitte) – Verbindung ziehen */
.wfd-connect[b-dssmgoa64y] {
    position: absolute; right: 0; top: 50%; transform: translate(50%, -50%); width: 12px; height: 12px;
    border-radius: 50%; background: var(--wfd-accent, var(--tri-green)); border: none;
    cursor: crosshair; z-index: 4; touch-action: none;
}
.wfd-connect:hover[b-dssmgoa64y] { box-shadow: 0 0 0 4px var(--wfd-glow, rgba(46,139,61,.25)); }

/* Status-Kreis oben rechts */
.wfd-status-dot[b-dssmgoa64y] { position: absolute; top: .55rem; right: .6rem; width: 12px; height: 12px; border-radius: 50%; background: #c7cdd4; z-index: 3; }
.wfd-status-idle[b-dssmgoa64y] { background: #c7cdd4; }
.wfd-status-running[b-dssmgoa64y] { background: var(--tri-green); cursor: pointer; box-shadow: 0 0 0 0 rgba(46,139,61,.5); animation: wfd-pulse-b-dssmgoa64y 0.7s infinite; }
.wfd-status-done[b-dssmgoa64y] { background: var(--tri-green); cursor: pointer; }
.wfd-status-error[b-dssmgoa64y] { background: var(--tri-red); cursor: pointer; }
.wfd-status-waiting[b-dssmgoa64y] { background: #e08e0b; cursor: pointer; }
@keyframes wfd-pulse-b-dssmgoa64y { 0% { box-shadow: 0 0 0 0 rgba(46,139,61,.5); } 70% { box-shadow: 0 0 0 6px rgba(46,139,61,0); } 100% { box-shadow: 0 0 0 0 rgba(46,139,61,0); } }
/* Laufender Agent: oranger Glow am Knoten */
.wfd-node.wfd-node-running[b-dssmgoa64y] { border-color: #e08e0b; animation: wfd-node-glow-b-dssmgoa64y 1.3s ease-in-out infinite; }
@keyframes wfd-node-glow-b-dssmgoa64y {
    0%, 100% { box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 2px rgba(224,142,11,.35), 0 0 10px 2px rgba(224,142,11,.30); }
    50%      { box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 3px rgba(224,142,11,.65), 0 0 22px 6px rgba(224,142,11,.55); }
}
/* Gatekeeper pulsiert rot mit, solange der überwachte Worker läuft. */
.wfd-node.wfd-node-running-gk[b-dssmgoa64y] { border-color: #d12f2f; animation: wfd-node-glow-gk-b-dssmgoa64y 1.3s ease-in-out infinite; }
@keyframes wfd-node-glow-gk-b-dssmgoa64y {
    0%, 100% { box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 2px rgba(209,47,47,.35), 0 0 10px 2px rgba(209,47,47,.30); }
    50%      { box-shadow: 0 6px 16px rgba(0,0,0,.12), 0 0 0 3px rgba(209,47,47,.70), 0 0 22px 6px rgba(209,47,47,.55); }
}
.wfd-start-btns[b-dssmgoa64y] { display: flex; align-items: center; justify-content: center; gap: .6rem; margin-top: .5rem; }
.wfd-run-btn[b-dssmgoa64y] {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; padding: 0;
    border: 2px solid #2f7dd6; border-radius: 50%; background: transparent; color: #2f7dd6;
    font-size: 1.15rem; line-height: 1; cursor: pointer;
}
.wfd-run-btn:hover[b-dssmgoa64y] { background: rgba(47,125,214,.12); }
.wfd-run-btn i[b-dssmgoa64y] { margin-left: 2px; }
/* Chat-/Test-Dialog-Button: gleiche blaue Akzentfarbe wie „Auslösen". */
.wfd-chat-btn i[b-dssmgoa64y] { margin-left: 0; }

/* Prompt-Popup (Markdown-Editor + Vorschau + Nachschärfen) */
.wfd-modal-backdrop[b-dssmgoa64y] { position: fixed; inset: 0; z-index: 1100; background: rgba(0,0,0,.32); display: flex; align-items: center; justify-content: center; }
.wfd-modal[b-dssmgoa64y] { background: #fff; border-radius: 1rem; box-shadow: 0 24px 60px rgba(0,0,0,.28); width: min(740px, 92vw); max-height: 88vh; display: flex; flex-direction: column; overflow: hidden; }
.wfd-modal-head[b-dssmgoa64y] { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--tri-border); }
.wfd-modal-head > .btn-close[b-dssmgoa64y] { margin-left: auto; flex: 0 0 auto; }
.wfd-modal-ic[b-dssmgoa64y] { flex: 0 0 auto; width: 2.4rem; height: 2.4rem; border-radius: .7rem; display: inline-flex; align-items: center; justify-content: center; background: var(--tri-surface); color: var(--tri-green); font-size: 1.2rem; }
.wfd-modal-headtext[b-dssmgoa64y] { min-width: 0; }
.wfd-modal-body[b-dssmgoa64y] { padding: 1.25rem; overflow-y: auto; }
.wfd-modal-body .wfd-lbl:first-child[b-dssmgoa64y] { margin-top: 0; }
.wfd-modal-body .form-control[b-dssmgoa64y], .wfd-modal-body .form-select[b-dssmgoa64y] { border-radius: .6rem; padding: .55rem .75rem; font-size: .92rem; }
.wfd-modal-body .form-control:focus[b-dssmgoa64y], .wfd-modal-body .form-select:focus[b-dssmgoa64y] { border-color: var(--tri-green); box-shadow: 0 0 0 3px rgba(46,139,61,.18); }
.wfd-modal-foot[b-dssmgoa64y] { display: flex; align-items: center; gap: .5rem; padding: .85rem 1.25rem; border-top: 1px solid var(--tri-border); background: #fff; }
.wfd-prompt-area[b-dssmgoa64y] { min-height: 360px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85rem; width: 100%; }
.wfd-prompt-preview[b-dssmgoa64y] { min-height: 360px; max-height: 52vh; overflow: auto; border: 1px solid var(--tri-border); border-radius: .5rem; padding: .75rem; }

/* Editor + Tool-Calls-Panel nebeneinander. Das Panel sitzt rechts (Vorlage: Browser-/TreeView-Fenster). */
.wfd-prompt-main[b-dssmgoa64y] { display: flex; align-items: stretch; gap: 0; position: relative; }
.wfd-prompt-editorcol[b-dssmgoa64y] { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
/* Panel-Grundgestalt (angeheftet UND Flyout) */
.wfd-toolpanel[b-dssmgoa64y] { background: var(--tri-surface); display: flex; flex-direction: column; min-height: 0; border: 1px solid var(--tri-border); border-radius: .6rem; }
.wfd-toolpanel-docked[b-dssmgoa64y] { position: relative; margin-left: .6rem; }
/* Ziehgriff an der linken Kante des angedockten Panels */
.wfd-toolpanel-resize[b-dssmgoa64y] { position: absolute; top: 0; left: -6px; width: 9px; height: 100%; cursor: col-resize; z-index: 6; }
.wfd-toolpanel-resize:hover[b-dssmgoa64y] { background: var(--tri-green); opacity: .35; border-radius: .3rem; }
/* Schmale Leiste mit gedrehtem „Tools"-Text; beim Hover klappt das Flyout aus und überlappt das Prompt-Feld */
.wfd-toolpanel-rail[b-dssmgoa64y] { flex: 0 0 30px; width: 30px; margin-left: .6rem; border: 1px solid var(--tri-border); border-radius: .6rem; background: #fff; position: relative; cursor: pointer; }
.wfd-toolpanel-rail:hover[b-dssmgoa64y] { background: var(--tri-surface); }
.wfd-toolpanel-tab[b-dssmgoa64y] { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: .4rem; writing-mode: vertical-rl; transform: rotate(180deg); font-size: .8rem; font-weight: 600; color: var(--tri-green); user-select: none; }
.wfd-toolpanel-tab > i[b-dssmgoa64y] { writing-mode: horizontal-tb; }
/* Flyout liegt über dem Editor (rechtsbündig, dehnt sich nach links). Im Ruhezustand NICHT nach rechts
   verschieben (das erzeugte sonst einen horizontalen Scrollbalken im Dialog) – nur ein-/ausblenden. */
.wfd-toolpanel-flyout[b-dssmgoa64y] { position: absolute; top: 0; right: 0; height: 100%; z-index: 30; box-shadow: -8px 0 22px rgba(0,0,0,.16); transform: translateX(-6px); opacity: 0; pointer-events: none; transition: transform .18s ease, opacity .18s ease; }
.wfd-toolpanel-rail:hover .wfd-toolpanel-flyout[b-dssmgoa64y] { transform: translateX(0); opacity: 1; pointer-events: auto; }
.wfd-toolpanel-body[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: .6rem .75rem; }
.wfd-toolpanel .wfd-tree-head[b-dssmgoa64y] { border-bottom: 1px solid var(--tri-border); }
/* Editor-Werkzeugleiste: bei Bedarf auf zwei Zeilen umbrechen */
.wfd-prompt-toolbar[b-dssmgoa64y] { display: flex; align-items: center; flex-wrap: wrap; row-gap: .35rem; gap: .25rem; margin-bottom: .6rem; }
.wfd-prompt-toolbar .btn[b-dssmgoa64y] { flex: 0 0 auto; }
/* Vollbild-Variante des Prompt-Modals: am Viewport angeheftet, damit es zuverlässig den ganzen
   Bildschirm füllt (height:92vh greift im zentrierenden Flex-Backdrop nicht immer). */
.wfd-modal.wfd-modal-fs[b-dssmgoa64y] { position: fixed; inset: 3vh 2vw; margin: 0; width: auto !important; max-width: none; height: auto; max-height: none; }
/* Im Vollbild füllt der Editor (Textarea bzw. Vorschau) den gesamten verfügbaren Platz. */
.wfd-modal.wfd-modal-fs .wfd-modal-body[b-dssmgoa64y] { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.wfd-modal.wfd-modal-fs .wfd-prompt-toolbar[b-dssmgoa64y] { flex: 0 0 auto; }
.wfd-modal.wfd-modal-fs .wfd-prompt-main[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; }
.wfd-modal.wfd-modal-fs .wfd-prompt-editorcol[b-dssmgoa64y] { min-height: 0; }
.wfd-modal.wfd-modal-fs .wfd-prompt-area[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; resize: none; }
.wfd-modal.wfd-modal-fs .wfd-prompt-preview[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; max-height: none; }

/* Prompt-Dialog (nicht-Vollbild): feste, hohe Dialoghöhe, damit Editor UND Tools-Leiste die
   volle Höhe des Dialogfensters einnehmen (statt nur die Inhaltshöhe der Textarea). */
.wfd-modal-prompt:not(.wfd-modal-fs)[b-dssmgoa64y] { height: 84vh; }
/* Lauf-/Dialog-Popup: feste (eher große) Höhe; der Inhalt scrollt, das Fenster wächst nicht mit. */
.wfd-modal-run:not(.wfd-modal-fs)[b-dssmgoa64y] { height: min(82vh, 780px); }
/* Eigenschaften-Dialog: feste Höhe, damit das Fenster beim Tab-Wechsel nicht springt.
   Kopfbereich (Name/Provider/Tabs) bleibt fix, nur der Tab-Inhalt scrollt. */
.wfd-modal-props[b-dssmgoa64y] { height: min(78vh, 680px); }
.wfd-modal-props .wfd-modal-body[b-dssmgoa64y] { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }
.wfd-prop-tabbody[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; }
/* Payload-Editor füllt den verfügbaren Platz des Tabs (Textarea wächst mit). */
.wfd-prop-tabbody[b-dssmgoa64y]  .json-editor { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.wfd-prop-tabbody[b-dssmgoa64y]  .json-editor textarea { flex: 1 1 auto; min-height: 6rem; resize: none; }
.wfd-modal-prompt .wfd-modal-body[b-dssmgoa64y] { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.wfd-modal-prompt .wfd-prompt-toolbar[b-dssmgoa64y] { flex: 0 0 auto; }
.wfd-modal-prompt .wfd-prompt-main[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; }
.wfd-modal-prompt .wfd-prompt-editorcol[b-dssmgoa64y] { min-height: 0; }
.wfd-modal-prompt .wfd-prompt-area[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; resize: none; }
.wfd-modal-prompt .wfd-prompt-preview[b-dssmgoa64y] { flex: 1 1 auto; min-height: 0; max-height: none; }

/* Bestätigungsdialog „Prozess starten?" */
.wfd-confirm-backdrop[b-dssmgoa64y] { position: fixed; inset: 0; z-index: 1100; background: rgba(0,0,0,.32); display: flex; align-items: center; justify-content: center; }
.wfd-confirm[b-dssmgoa64y] {
    background: #fff; border-radius: .8rem; box-shadow: 0 20px 50px rgba(0,0,0,.3);
    padding: 1.5rem 1.6rem; max-width: 24rem; text-align: center;
}
.wfd-confirm-icon[b-dssmgoa64y] { font-size: 2.4rem; color: var(--tri-green); line-height: 1; }
.wfd-confirm-title[b-dssmgoa64y] { font-size: 1.1rem; font-weight: 700; color: var(--tri-text); margin-top: .4rem; }
.wfd-confirm-text[b-dssmgoa64y] { font-size: .9rem; color: var(--tri-muted); margin-top: .35rem; }
.wfd-confirm-actions[b-dssmgoa64y] { display: flex; gap: .6rem; justify-content: center; margin-top: 1.1rem; }

/* Agentennamen + Kicker (Typ · #Nr) in der Akzentfarbe (Worker grün) */
.wfd-agent .wfd-node-title[b-dssmgoa64y] { color: var(--tri-green); }
.wfd-agent .wfd-node-kind[b-dssmgoa64y] { color: var(--wfd-accent, var(--tri-green)); }
/* Titel bei Trigger/Entscheidung dunkelgrau */
.wfd-trigger .wfd-node-title[b-dssmgoa64y], .wfd-decision .wfd-node-title[b-dssmgoa64y] { color: #3a4047; }

.wfd-option[b-dssmgoa64y] { display: flex; align-items: center; gap: .4rem; font-size: .82rem; padding: .25rem .1rem; border-top: 1px solid var(--tri-border); margin-top: .25rem; }
.wfd-option:first-of-type[b-dssmgoa64y] { border-top: none; }
.wfd-option-dot[b-dssmgoa64y] { width: .5rem; height: .5rem; border-radius: 50%; background: #c98a1a; flex: 0 0 auto; }
.wfd-option-label[b-dssmgoa64y] { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.15; overflow: hidden; }
.wfd-opt-name[b-dssmgoa64y] { font-weight: 600; color: var(--tri-green); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wfd-option[b-dssmgoa64y] { cursor: pointer; }
.wfd-option:hover .wfd-opt-name[b-dssmgoa64y] { color: var(--tri-green-dark); }
.wfd-opt-cond[b-dssmgoa64y] { font-size: .72rem; color: var(--tri-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wfd-option-btn[b-dssmgoa64y] { flex: 0 0 auto; width: 1.4rem; height: 1.4rem; padding: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--tri-border); background: #fff; border-radius: .3rem; color: var(--tri-muted); font-size: .76rem; cursor: pointer; }
.wfd-option-btn:hover[b-dssmgoa64y] { background: var(--tri-surface); color: var(--tri-text); }
.wfd-option-del:hover[b-dssmgoa64y] { color: var(--tri-red); }

/* Drag & Zoom */
.wfd-node[b-dssmgoa64y] { cursor: grab; touch-action: none; }
.wfd-result[b-dssmgoa64y] { cursor: grab; }
.wfd-dragging[b-dssmgoa64y] { cursor: grabbing; box-shadow: 0 14px 30px rgba(0,0,0,.18); opacity: .96; z-index: 5; }
.wfd-zoom .btn[b-dssmgoa64y] { min-width: 2.2rem; }

/* Inline-Bearbeitungspanel */
.wfd-panel[b-dssmgoa64y] {
    width: 360px; flex: 0 0 360px;
    border-left: 1px solid var(--tri-border);
    display: flex; flex-direction: column; min-height: 0; background: #fff;
    position: relative;
}
.wfd-panel-resize[b-dssmgoa64y] { position: absolute; left: -3px; top: 0; bottom: 0; width: 8px; cursor: col-resize; z-index: 5; }
.wfd-panel-resize:hover[b-dssmgoa64y] { background: linear-gradient(to right, var(--tri-green), transparent); opacity: .4; }
.wfd-panel-head[b-dssmgoa64y] { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; padding: .8rem 1rem; border-bottom: 1px solid var(--tri-border); }
.wfd-panel-kicker[b-dssmgoa64y] { font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tri-faint); }
.wfd-panel-title[b-dssmgoa64y] { font-size: 1.05rem; font-weight: 700; color: var(--tri-text); }
.wfd-panel-body[b-dssmgoa64y] { flex: 1 1 auto; overflow-y: auto; padding: .8rem 1rem; }
.wfd-panel-foot[b-dssmgoa64y] { display: flex; align-items: center; gap: .5rem; padding: .7rem 1rem; border-top: 1px solid var(--tri-border); }
.wfd-lbl[b-dssmgoa64y] { display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--tri-faint); margin: .85rem 0 .25rem; }
.wfd-panel-body > .wfd-lbl:first-child[b-dssmgoa64y] { margin-top: 0; }
.wfd-prompt[b-dssmgoa64y] { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }
.wfd-checklist[b-dssmgoa64y] { max-height: 9rem; overflow-y: auto; border: 1px solid var(--tri-border); border-radius: .5rem; padding: .4rem .55rem; }
.wfd-check[b-dssmgoa64y] { display: flex; align-items: center; gap: .45rem; font-size: .84rem; padding: .12rem 0; cursor: pointer; }
.wfd-check input[b-dssmgoa64y] { width: 1rem; height: 1rem; flex: 0 0 auto; }
.wfd-empty[b-dssmgoa64y] { font-size: .8rem; color: var(--tri-muted); background: var(--tri-surface); border-radius: .5rem; padding: .5rem .6rem; }
.wfd-decisions[b-dssmgoa64y] { margin-top: .5rem; }
.wfd-decision-row[b-dssmgoa64y] { border: 1px solid var(--tri-border); border-left: 3px solid #c98a1a; border-radius: .5rem; padding: .5rem; margin-bottom: .5rem; }
.wfd-kv[b-dssmgoa64y] { display: flex; gap: .6rem; padding: .35rem 0; border-bottom: 1px solid var(--tri-border); font-size: .86rem; }
.wfd-kv:last-child[b-dssmgoa64y] { border-bottom: none; }
.wfd-kv-k[b-dssmgoa64y] { flex: 0 0 5rem; font-weight: 700; color: var(--tri-faint); }
.wfd-block[b-dssmgoa64y] { cursor: pointer; transition: border-color .12s, box-shadow .12s; }
.wfd-block:hover[b-dssmgoa64y] { border-color: var(--tri-green); box-shadow: 0 2px 8px rgba(0,0,0,.06); }

/* Run-Auswahl als suchbares Popup (ersetzt das frühere Dropdown). */
.wfd-runpicker-wrap[b-dssmgoa64y] { position: relative; }
.wfd-runpicker-backdrop[b-dssmgoa64y] { position: fixed; inset: 0; z-index: 1049; }
.wfd-runpicker[b-dssmgoa64y] {
    position: absolute; right: 0; top: calc(100% + 4px); z-index: 1050;
    width: 22rem; max-height: 24rem; overflow: auto;
    background: #fff; border: 1px solid var(--tri-border); border-radius: .6rem;
    box-shadow: 0 8px 24px rgba(0,0,0,.14); padding: .5rem;
}
.wfd-runpicker-list[b-dssmgoa64y] { display: flex; flex-direction: column; gap: 2px; }
.wfd-runpicker-item[b-dssmgoa64y] {
    display: flex; align-items: baseline; gap: .5rem; width: 100%; text-align: left;
    border: none; background: none; border-radius: .4rem; padding: .35rem .5rem; cursor: pointer; color: var(--tri-text);
}
.wfd-runpicker-item:hover[b-dssmgoa64y] { background: #f1f5f2; }
.wfd-runpicker-item.active[b-dssmgoa64y] { background: var(--tri-bg-active, #e4f3e7); box-shadow: inset 3px 0 0 var(--tri-green); }
.wfd-runpicker-id[b-dssmgoa64y] { font-weight: 600; flex: 0 0 auto; }
.wfd-runpicker-meta[b-dssmgoa64y] { color: var(--tri-muted); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Moderne Auswahl-Dialoge (Tools/MCP/Skills): Suchfeld + Karten mit Toggle (Redmine #106680) */
.wfd-picksearch[b-dssmgoa64y] { position: relative; margin-bottom: .6rem; }
.wfd-picksearch i[b-dssmgoa64y] { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--tri-muted); font-size: .9rem; }
.wfd-picksearch input[b-dssmgoa64y] { width: 100%; padding: .5rem .8rem .5rem 2.1rem; border: 1px solid var(--tri-border, #dee2e6); border-radius: .65rem; font-size: .9rem; outline: none; }
.wfd-picksearch input:focus[b-dssmgoa64y] { border-color: var(--tri-green); box-shadow: 0 0 0 .15rem rgba(46,139,61,.15); }
.wfd-pickcard-list[b-dssmgoa64y] { display: flex; flex-direction: column; gap: .5rem; max-height: 24rem; overflow-y: auto; padding: .15rem; }
.wfd-pickcard[b-dssmgoa64y] { display: flex; align-items: center; gap: .75rem; padding: .6rem .8rem; border: 1.5px solid var(--tri-border, #e3e6ea); border-radius: .7rem; cursor: pointer; transition: border-color .12s, background .12s; }
.wfd-pickcard:hover[b-dssmgoa64y] { border-color: #bcd9c2; }
.wfd-pickcard.on[b-dssmgoa64y] { border-color: var(--tri-green); background: #f1f8f2; }
.wfd-pickcard-ic[b-dssmgoa64y] { flex: 0 0 auto; width: 2.4rem; height: 2.4rem; border-radius: .6rem; background: #eef1f3; display: flex; align-items: center; justify-content: center; color: #5b6470; font-size: 1.05rem; }
.wfd-pickcard.on .wfd-pickcard-ic[b-dssmgoa64y] { background: #d9efdd; color: var(--tri-green); }
.wfd-pickcard-text[b-dssmgoa64y] { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; line-height: 1.3; }
.wfd-pickcard-name[b-dssmgoa64y] { font-weight: 600; color: #3a4047; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.wfd-pickcard-badge[b-dssmgoa64y] { font-size: .62rem; font-weight: 700; letter-spacing: .03em; color: var(--tri-green); background: #e2f3e6; padding: .05rem .4rem; border-radius: .5rem; }
.wfd-pickcard-desc[b-dssmgoa64y] { font-size: .78rem; color: var(--tri-muted); }
.wfd-pickswitch[b-dssmgoa64y] { flex: 0 0 auto; width: 2.4rem; height: 1.35rem; border-radius: 1rem; background: #cfd5db; position: relative; transition: background .12s; }
.wfd-pickswitch.on[b-dssmgoa64y] { background: var(--tri-green); }
.wfd-pickswitch-knob[b-dssmgoa64y] { position: absolute; top: 2px; left: 2px; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: #fff; transition: left .12s; }
.wfd-pickswitch.on .wfd-pickswitch-knob[b-dssmgoa64y] { left: 1.15rem; }

/* Sandbox-Satellit als kleines Terminal-Fenster (Redmine #106694) */
.wfd-sat-term[b-dssmgoa64y] { background: #0f1115 !important; border-color: #2a2f37 !important; color: #cfe8d2; padding: 0 !important; overflow: hidden; }
.wfd-sat-term.sel[b-dssmgoa64y] { border-color: var(--tri-green) !important; }
.wfd-term-bar[b-dssmgoa64y] { display: flex; align-items: center; gap: .25rem; background: #1b2027; padding: .2rem .4rem; border-bottom: 1px solid #2a2f37; }
.wfd-term-dot[b-dssmgoa64y] { width: .42rem; height: .42rem; border-radius: 50%; background: #3a414b; flex: 0 0 auto; }
.wfd-term-dot:nth-child(1)[b-dssmgoa64y] { background: #ff5f57; } .wfd-term-dot:nth-child(2)[b-dssmgoa64y] { background: #febc2e; } .wfd-term-dot:nth-child(3)[b-dssmgoa64y] { background: #28c840; }
.wfd-term-title[b-dssmgoa64y] { margin-left: .15rem; font-family: Consolas, "SF Mono", Menlo, monospace; font-size: .62rem; color: #d2d8df; font-weight: 700; }
.wfd-term-body[b-dssmgoa64y] { font-family: Consolas, "SF Mono", Menlo, monospace; font-size: .48rem; line-height: 1.5; padding: .3rem .45rem; min-height: 5.2rem; max-height: 5.2rem; overflow: hidden;
    -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 1.4rem), transparent 100%); mask-image: linear-gradient(to bottom, #000 calc(100% - 1.4rem), transparent 100%); }
.wfd-term-line[b-dssmgoa64y] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wfd-term-cmd[b-dssmgoa64y] { color: #b6f0b6; }
.wfd-term-res[b-dssmgoa64y] { color: #c2c9d2; }
.wfd-term-muted[b-dssmgoa64y] { color: #aab2bd; }
