
/* ── Knowledge Manager Float Panel ── */
#km-panel {
    position: fixed;
    top: 60px;
    right: 20px;
    width: 780px;
    height: calc(100vh - 80px);
    background: #181b24;
    border: 1px solid #2a2e3b;
    border-radius: 12px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.6);
    z-index: 9000;
    flex-direction: column;
    font-family: 'DM Sans', sans-serif;
    overflow: hidden;
    transition: opacity 0.2s, transform 0.2s;
}
#km-panel.km-hidden {
    display: none;
    opacity: 0;
    pointer-events: none;
    transform: translateX(20px);
}
#km-panel.km-visible {
    display: flex;
    opacity: 1;
    pointer-events: all;
    transform: translateX(0);
}
/* ── Tabs ── */
.km-tab {
    padding: 8px 18px;
    font-size: 12px;
    font-weight: 600;
    color: #8891a5;
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    font-family: 'DM Sans', sans-serif;
    letter-spacing: 0.3px;
}
.km-tab:hover { color: #e2e6ef; }
.km-tab.km-tab-active { color: #4f8cff; border-bottom-color: #4f8cff; }
.km-tab.km-tab-kg-active { color: #a78bfa; border-bottom-color: #a78bfa; }

/* ── Source table rows ── */
.km-source-row {
    display: grid;
    grid-template-columns: 1fr 80px 60px 70px 80px 60px;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid #2a2e3b22;
    align-items: center;
    font-size: 11px;
}
.km-source-row:hover { background: #1e213044; }

/* ── Status badges ── */
.km-badge {
    padding: 2px 7px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
    text-align: center;
}
.km-badge-complete  { background: #34d39922; color: #34d399; }
.km-badge-pending   { background: #f59e0b22; color: #f59e0b; }
.km-badge-processing{ background: #4f8cff22; color: #4f8cff; }
.km-badge-failed    { background: #ef444422; color: #ef4444; }

/* ── Upload zone ── */
.km-upload-zone {
    border: 2px dashed #4f8cff44;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    cursor: pointer;
    background: #4f8cff08;
    transition: border-color 0.2s, background 0.2s;
}
.km-upload-zone:hover {
    border-color: #4f8cff88;
    background: #4f8cff12;
}

/* ── Scrollable content ── */
.km-scroll { overflow-y: auto; flex: 1; }
.km-scroll::-webkit-scrollbar { width: 4px; }
.km-scroll::-webkit-scrollbar-track { background: transparent; }
.km-scroll::-webkit-scrollbar-thumb { background: #2a2e3b; border-radius: 2px; }

/* ── Node count cards ── */
.km-node-card {
    background: #1e2130;
    border: 1px solid #2a2e3b;
    border-radius: 8px;
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 100px;
}

/* ── Search input ── */
.km-search {
    background: #0f1117;
    color: #e2e6ef;
    border: 1px solid #2a2e3b;
    border-radius: 6px;
    padding: 6px 10px;
    font-size: 12px;
    font-family: 'DM Sans', sans-serif;
    width: 100%;
    box-sizing: border-box;
}
.km-search:focus {
    outline: none;
    border-color: #4f8cff66;
}

/* Fix: Dash dcc.Dropdown selected value visibility in dark theme */
.km-dropdown .Select-control {
    background-color: #1e2130 !important;
    border-color: #2a2e3b !important;
}
.km-dropdown .Select-control .Select-value .Select-value-label {
    color: #e2e8f0 !important;
}
.km-dropdown .Select-control .Select-placeholder {
    color: #718096 !important;
}
.km-dropdown .Select-control .Select-arrow-zone .Select-arrow {
    border-top-color: #e2e8f0 !important;
}
