/* knowledge-base.css — dark theme encyclopedia */

.view-kb {
    /* Palette */
    --kb-primary:    #00d4aa;
    --kb-secondary:  #00b894;
    --kb-success:    #00d4aa;
    --kb-danger:     #ef4444;
    --kb-warning:    #f59e0b;
    --kb-text:       #d1d9e0;
    --kb-text-muted: #7d8590;
    --kb-text-head:  #f0f6fc;
    --kb-bg:         #0d1117;
    --kb-card:       #161b22;
    --kb-elevated:   #1e2430;
    --kb-border:     rgba(255,255,255,0.06);
    --kb-border-acc: rgba(0,212,170,0.2);
    --kb-shadow:     0 4px 16px rgba(0,0,0,0.4);

    /* SVG compat aliases */
    --danger-color:  #ef4444;
    --success-color: #00d4aa;
    --primary-color: #00d4aa;
    --text-light:    #7d8590;

    font-family: 'Geist', 'Inter', system-ui, sans-serif;
    background: var(--kb-bg);
    color: var(--kb-text);
    line-height: 1.6;
    min-height: 100dvh;
}

/* Контейнер контента — держит высоту пока грузится */
#kb-container { min-height: calc(100dvh - 120px); }

/* ── Top bar ─────────────────────────────────────────────────────────── */
.view-kb .kb-top-bar {
    background: var(--kb-card);
    border-bottom: 1px solid var(--kb-border);
    padding: 12px 20px;
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    gap: 12px;
}

/* ── Layout ──────────────────────────────────────────────────────────── */
.view-kb .page-layout {
    display: flex;
    gap: 24px;
    padding: 20px 20px 60px;
    max-width: 1100px;
    margin: 0 auto;
}

/* ── Sidebar ─────────────────────────────────────────────────────────── */
.view-kb .sidebar {
    width: 210px;
    flex-shrink: 0;
    position: sticky;
    top: 56px;
    height: calc(100dvh - 116px);
    overflow-y: auto;
    background: var(--kb-card);
    border: 1px solid var(--kb-border);
    border-radius: 12px;
    padding: 10px 0;
}
.view-kb .sidebar::-webkit-scrollbar { width: 4px; }
.view-kb .sidebar::-webkit-scrollbar-track { background: transparent; }
.view-kb .sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 2px; }

.view-kb .main-content { flex: 1; min-width: 0; }

/* ── Search ──────────────────────────────────────────────────────────── */
.view-kb .search-wrapper {
    position: relative;
    flex: 1;
    max-width: 520px;
}
.view-kb .search-icon {
    position: absolute; left: 12px; top: 50%;
    transform: translateY(-50%);
    color: var(--kb-text-muted); pointer-events: none;
    font-size: 13px;
}
.view-kb .search-input {
    width: 100%;
    padding: 9px 36px;
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 8px;
    font-size: 14px;
    color: var(--kb-text);
    outline: none;
    transition: border-color 0.2s;
}
.view-kb .search-input::placeholder { color: var(--kb-text-muted); }
.view-kb .search-input:focus { border-color: var(--kb-border-acc); }
.view-kb .search-clear {
    position: absolute; right: 8px; top: 50%;
    transform: translateY(-50%);
    background: none; border: none; cursor: pointer;
    color: var(--kb-text-muted); padding: 4px;
    font-size: 12px;
}
.view-kb .search-no-results {
    display: none; text-align: center;
    padding: 40px; color: var(--kb-text-muted); font-size: 15px;
}
.view-kb .search-hidden { display: none !important; }
mark.search-highlight {
    background: rgba(245,158,11,0.22);
    color: #f59e0b;
    border-radius: 2px; padding: 0 2px;
}

/* ── Sidebar nav ─────────────────────────────────────────────────────── */
.view-kb .sidebar-group-label {
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.8px; color: var(--kb-text-muted);
    padding: 14px 14px 4px;
}
.view-kb .sidebar-link {
    display: block; padding: 6px 14px;
    color: var(--kb-text-muted); text-decoration: none;
    font-size: 13px; white-space: nowrap; overflow: hidden;
    text-overflow: ellipsis;
    border-left: 2px solid transparent;
    transition: all 0.15s;
}
.view-kb .sidebar-link:hover { color: var(--kb-text); background: rgba(255,255,255,0.04); }
.view-kb .sidebar-link.active {
    border-left-color: var(--kb-primary);
    color: var(--kb-primary);
    background: rgba(0,212,170,0.07);
    font-weight: 500;
}

/* ── Section group headers ───────────────────────────────────────────── */
.view-kb .section-group-header {
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.6px; color: var(--kb-primary);
    padding: 24px 0 8px;
    border-bottom: 1px solid var(--kb-border);
    margin-bottom: 14px;
    display: flex; align-items: center; gap: 8px;
}

/* ── Sections ────────────────────────────────────────────────────────── */
.view-kb .section {
    background: var(--kb-card);
    border: 1px solid var(--kb-border);
    border-radius: 12px;
    padding: 20px 24px;
    margin-bottom: 14px;
    transition: border-color 0.2s;
}
.view-kb .section:hover { border-color: rgba(255,255,255,0.1); }

.view-kb .section h2 {
    font-size: 17px; color: var(--kb-text-head); margin-bottom: 16px;
    cursor: pointer; display: flex; align-items: center; gap: 10px;
    user-select: none; font-weight: 600;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--kb-border);
}
.view-kb .section h2 i { color: var(--kb-primary); }
.view-kb .section h2::after {
    content: '▾'; margin-left: auto; font-size: 12px;
    color: var(--kb-text-muted); transition: transform 0.2s;
}
.view-kb .section.collapsed h2::after { transform: rotate(-90deg); }
.view-kb .section.collapsed > *:not(h2) { display: none; }

.view-kb .section h3 {
    font-size: 13px; color: var(--kb-primary);
    margin: 18px 0 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.5px;
}
.view-kb .section h4 {
    font-size: 11px; color: var(--kb-text-muted);
    margin: 14px 0 6px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.5px;
}
.view-kb .section hr {
    border: none;
    border-top: 1px solid var(--kb-border);
    margin: 16px 0;
}
.view-kb .section p { margin-bottom: 10px; font-size: 14px; }
.view-kb .section ul, .view-kb .section ol { padding-left: 20px; margin-bottom: 12px; }
.view-kb .section li { margin-bottom: 6px; font-size: 14px; }

/* ── Tables ──────────────────────────────────────────────────────────── */
.view-kb .table-responsive {
    overflow-x: auto; margin-bottom: 14px;
    border-radius: 8px;
    border: 1px solid var(--kb-border);
}
.view-kb table { width: 100%; border-collapse: collapse; font-size: 13px; }
.view-kb th {
    background: var(--kb-elevated);
    color: var(--kb-text-head);
    padding: 10px 14px; text-align: left; font-weight: 600;
    font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px;
    border-bottom: 1px solid var(--kb-border);
    white-space: nowrap;
}
.view-kb td {
    padding: 9px 14px;
    border-bottom: 1px solid var(--kb-border);
    vertical-align: top;
    color: var(--kb-text);
}
.view-kb tr:last-child td { border-bottom: none; }
.view-kb tr:hover td { background: rgba(255,255,255,0.02); }
.view-kb .col-danger { background: rgba(239,68,68,0.06); }
.view-kb .col-opportunity { background: rgba(0,212,170,0.06); }

/* ── Pattern grid (Формации) ─────────────────────────────────────────── */
.view-kb .pattern-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin: 10px 0 20px;
}
.view-kb .pattern-card {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 10px;
    padding: 14px 14px 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: border-color 0.2s;
}
.view-kb .pattern-card:hover { border-color: rgba(255,255,255,0.1); }
.view-kb .pattern-card-title {
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.5px; color: var(--kb-text-muted);
}
.view-kb .pattern-action {
    font-size: 12px;
    color: var(--kb-text-muted);
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 6px;
    line-height: 1.5;
}
.view-kb .pattern-action strong {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--kb-primary);
    background: rgba(0,212,170,0.12);
    border-radius: 4px;
    padding: 1px 6px;
    flex-shrink: 0;
    line-height: 1.6;
}

/* ── Chart diagrams ──────────────────────────────────────────────────── */
.view-kb .chart-diagram {
    background: rgba(255,255,255,0.02);
    border: 1px solid var(--kb-border);
    border-radius: 8px;
    padding: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.view-kb .chart-svg {
    width: 100%;
    height: auto;
    max-height: 200px;
    color: var(--kb-text);
    overflow: visible;
}
/* chart-diagram inside pattern-card: no extra border, fills remaining height */
.view-kb .pattern-card .chart-diagram {
    border: none;
    background: transparent;
    padding: 4px 0;
    flex: 1;
    min-height: 120px;
    align-items: flex-end;
}

/* ── Pattern meta (Контекст / Мин. ТФ) ──────────────────────────────── */
.view-kb .pattern-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
}
.view-kb .pattern-meta-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    color: var(--kb-text-muted);
    line-height: 1.5;
}
.view-kb .pattern-meta-item > i {
    flex-shrink: 0;
    margin-top: 2px;
    font-size: 11px;
    color: var(--kb-text-muted);
    opacity: 0.7;
    width: 14px;
    text-align: center;
}
.view-kb .pattern-meta-item strong { color: var(--kb-text); font-weight: 600; }

/* ── Note blocks (inline icon + text) ───────────────────────────────── */
.view-kb .note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    margin-bottom: 10px;
    font-size: 13.5px;
    line-height: 1.6;
}
.view-kb .note > i {
    flex-shrink: 0;
    margin-top: 2px;
    font-size: 14px;
}
.view-kb .note > p { margin: 0; }
.view-kb .note.info {
    background: rgba(0,212,170,0.06);
    border: 1px solid rgba(0,212,170,0.18);
}
.view-kb .note.info > i { color: var(--kb-primary); }
.view-kb .note.warning {
    background: rgba(245,158,11,0.06);
    border: 1px solid rgba(245,158,11,0.18);
}
.view-kb .note.warning > i { color: var(--kb-warning); }
.view-kb .note.danger {
    background: rgba(239,68,68,0.06);
    border: 1px solid rgba(239,68,68,0.18);
}
.view-kb .note.danger > i { color: var(--kb-danger); }

/* ── Info cards ──────────────────────────────────────────────────────── */
.view-kb .info-card {
    background: var(--kb-elevated);
    border-left: 3px solid var(--kb-primary);
    border-radius: 0 8px 8px 0;
    padding: 12px 16px;
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.6;
}
.view-kb .info-card.danger { border-color: var(--kb-danger); }
.view-kb .info-card.success { border-color: var(--kb-success); }
.view-kb .info-card.warning { border-color: var(--kb-warning); }

/* ── Checklists ──────────────────────────────────────────────────────── */
.view-kb .checklist { list-style: none; padding: 0; }
.view-kb .checklist li {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 7px 10px; border-radius: 6px; cursor: pointer;
    transition: background 0.15s; margin-bottom: 2px;
    font-size: 14px;
}
.view-kb .checklist li:hover { background: rgba(255,255,255,0.04); }
.view-kb .checklist li::before {
    content: '\2610'; font-size: 16px;
    color: var(--kb-text-muted); flex-shrink: 0; margin-top: 1px;
}
.view-kb .checklist li.checked { text-decoration: line-through; color: var(--kb-text-muted); }
.view-kb .checklist li.checked::before { content: '\2611'; color: var(--kb-success); }
.view-kb .checklist li.optional { cursor: default; color: var(--kb-text-muted); font-style: italic; }
.view-kb .checklist li.optional::before { content: '\25CB'; }
/* no-check: items have their own emoji */
.view-kb .checklist.no-check li { cursor: default; gap: 6px; }
.view-kb .checklist.no-check li::before { display: none; }

/* ── Formula ─────────────────────────────────────────────────────────── */
.view-kb .formula {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 6px; padding: 10px 14px;
    font-family: 'JetBrains Mono', monospace; font-size: 13px;
    margin-bottom: 12px; overflow-x: auto;
    color: var(--kb-primary);
}

/* ── Images ──────────────────────────────────────────────────────────── */
.view-kb img { max-width: 100%; border-radius: 8px; margin: 8px 0; }
.view-kb .pattern-img { width: 100%; max-height: 200px; object-fit: contain; background: rgba(255,255,255,0.02); border-radius: 8px; padding: 8px; }

/* ── Layout helpers ──────────────────────────────────────────────────── */
.view-kb .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 10px 0; }
.view-kb .sections-container { display: flex; flex-direction: column; gap: 12px; }
.view-kb .inline-ref { font-size: 11px; color: var(--kb-text-muted); background: var(--kb-elevated); border-radius: 4px; padding: 1px 6px; font-family: 'JetBrains Mono', monospace; }

/* ── Cards: tip/feature/explanation/rule ─────────────────────────────── */
.view-kb .tips-grid,
.view-kb .features-grid,
.view-kb .explanation-grid,
.view-kb .rules-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
    margin: 10px 0;
}
.view-kb .tip-card,
.view-kb .feature-card,
.view-kb .explanation-card {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 10px;
    padding: 14px 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}
.view-kb .tip-icon,
.view-kb .feature-icon,
.view-kb .explanation-icon {
    font-size: 22px;
    line-height: 1;
}
.view-kb .tip-text { font-size: 13px; color: var(--kb-text); font-weight: 500; }

/* Rule cards */
.view-kb .rules-container { display: flex; flex-direction: column; gap: 10px; }
.view-kb .rule-card {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 10px;
    padding: 12px 14px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.view-kb .rule-card.critical { border-left: 3px solid var(--kb-danger); }
.view-kb .rule-icon { font-size: 20px; flex-shrink: 0; margin-top: 2px; }
.view-kb .rule-content { flex: 1; }
.view-kb .rule-content h4 { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--kb-text-head); }
.view-kb .rule-content p { margin: 0; font-size: 13px; color: var(--kb-text-muted); }
.view-kb .rule-tag {
    font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px;
    background: rgba(239,68,68,0.12); color: var(--kb-danger);
    border-radius: 4px; padding: 2px 7px; flex-shrink: 0;
}
.view-kb .rules-summary { font-size: 13px; color: var(--kb-text-muted); margin-top: 8px; }

/* ── Stat cards ──────────────────────────────────────────────────────── */
.view-kb .stats-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; margin: 10px 0; }
.view-kb .stat-card-small {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}
.view-kb .stat-card-small.profit { border-color: rgba(0,212,100,0.25); }
.view-kb .stat-card-small.loss   { border-color: rgba(255,70,70,0.25); }
.view-kb .stat-card-small.total  { border-color: rgba(0,212,170,0.25); }
.view-kb .stat-icon { font-size: 18px; }
.view-kb .stat-label { font-size: 11px; color: var(--kb-text-muted); }
.view-kb .stat-input {
    width: 100%; background: var(--kb-card); border: 1px solid var(--kb-border);
    border-radius: 6px; padding: 5px 8px; color: var(--kb-text);
    font-size: 14px; font-weight: 600; text-align: center; outline: none;
}
.view-kb .stat-input:focus { border-color: var(--kb-primary); }
.view-kb .stat-item { display: flex; flex-direction: column; gap: 2px; }
.view-kb .stat-value { font-size: 20px; font-weight: 700; color: var(--kb-text-head); }

/* ── Checklist sections ──────────────────────────────────────────────── */
.view-kb .morning-checklist,
.view-kb .evening-checklist,
.view-kb .trade-checklist {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.view-kb .checklist-sections { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.view-kb .checklist-section { background: var(--kb-elevated); border: 1px solid var(--kb-border); border-radius: 10px; padding: 14px 14px 10px; }
.view-kb .checklist-section h4 { margin: 0 0 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; color: var(--kb-primary); }
.view-kb .checklist-stats { margin-bottom: 4px; }

/* ── Strategy badges ─────────────────────────────────────────────────── */
.view-kb .strategy-badge {
    display: inline-block;
    font-size: 11px; font-weight: 700;
    border-radius: 5px; padding: 2px 8px;
}
.view-kb .strategy-badge.conservative { background: rgba(59,130,246,0.15); color: #60a5fa; }
.view-kb .strategy-badge.madmax       { background: rgba(239,68,68,0.15);  color: #f87171; }
.view-kb .strategy-badge.squiz        { background: rgba(245,158,11,0.15); color: #fbbf24; }
.view-kb .strategy-badge.knife        { background: rgba(168,85,247,0.15); color: #c084fc; }
.view-kb .strategy-badge.swing        { background: rgba(0,212,170,0.15);  color: var(--kb-primary); }
.view-kb .strategy-badge.danger       { background: rgba(239,68,68,0.15);  color: #f87171; }

/* ── Sessions table ──────────────────────────────────────────────────── */
.view-kb .sessions-table { width: 100%; }
.view-kb .session-asia    td:first-child { border-left: 3px solid #60a5fa; }
.view-kb .session-london  td:first-child { border-left: 3px solid #fbbf24; }
.view-kb .session-overlap td:first-child { border-left: 3px solid var(--kb-primary); }
.view-kb .session-us      td:first-child { border-left: 3px solid #c084fc; }
.view-kb .yes-trade { color: #4ade80; font-weight: 600; }
.view-kb .no-trade  { color: #f87171; font-weight: 600; }
.view-kb .caution   { color: #fbbf24; font-weight: 600; }

/* ── Strategy/comparison tables ─────────────────────────────────────── */
.view-kb .strategy-table,
.view-kb .actions-table,
.view-kb .crash-table,
.view-kb .madmax-table,
.view-kb .market-phenomena-table,
.view-kb .comparison-table,
.view-kb .probability-table { width: 100%; }
.view-kb .strategy-comparison { margin: 14px 0; }

/* ── Do / Don't cells ────────────────────────────────────────────────── */
.view-kb .do   { color: #4ade80; }
.view-kb .dont { color: #f87171; }
.view-kb .do-color   { background: rgba(0,212,100,0.06); }
.view-kb .dont-color { background: rgba(255,70,70,0.06); }

/* ── Phenomenon row highlights ───────────────────────────────────────── */
.view-kb .phenomenon-knife        td:first-child { color: #c084fc; font-weight: 600; }
.view-kb .phenomenon-squeeze      td:first-child { color: #fbbf24; font-weight: 600; }
.view-kb .phenomenon-flat         td:first-child { color: #7d8590; font-weight: 600; }
.view-kb .phenomenon-trend        td:first-child { color: var(--kb-primary); font-weight: 600; }
.view-kb .phenomenon-fakeout      td:first-child { color: #f87171; font-weight: 600; }
.view-kb .phenomenon-pump         td:first-child { color: #4ade80; font-weight: 600; }
.view-kb .phenomenon-dump         td:first-child { color: #f87171; font-weight: 600; }
.view-kb .phenomenon-news         td:first-child { color: #fbbf24; font-weight: 600; }
.view-kb .phenomenon-gap          td:first-child { color: #60a5fa; font-weight: 600; }
.view-kb .phenomenon-asia         td:first-child { color: #60a5fa; font-weight: 600; }
.view-kb .phenomenon-accumulation td:first-child { color: var(--kb-primary); font-weight: 600; }
.view-kb .phenomenon-distribution td:first-child { color: #fbbf24; font-weight: 600; }
.view-kb .phenomenon-retest       td:first-child { color: #c084fc; font-weight: 600; }
.view-kb .phenomenon-evening      td:first-child { color: #7d8590; font-weight: 600; }

/* ── Chart bars (horizontal bar chart) ──────────────────────────────── */
.view-kb .comparison-chart { display: flex; flex-direction: column; gap: 6px; margin: 12px 0; }
.view-kb .chart-bar {
    background: rgba(0,212,170,0.2);
    border-radius: 4px;
    height: 28px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    min-width: 60px;
    transition: background 0.15s;
    position: relative;
}
.view-kb .chart-bar.madmax-bar  { background: rgba(239,68,68,0.2); }
.view-kb .chart-bar.squiz-bar   { background: rgba(245,158,11,0.2); }
.view-kb .chart-bar.knife-bar   { background: rgba(168,85,247,0.2); }
.view-kb .chart-bar.swing-bar   { background: rgba(96,165,250,0.2); }
.view-kb .bar-label { font-size: 12px; font-weight: 500; color: var(--kb-text); white-space: nowrap; }

/* ── Algorithm box ───────────────────────────────────────────────────── */
.view-kb .algorithm-box {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 10px;
    padding: 14px 16px;
    margin: 10px 0;
}
.view-kb .algorithm-box ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.view-kb .algorithm-box li { font-size: 13.5px; color: var(--kb-text); line-height: 1.6; }
.view-kb .algorithm-icon { font-size: 20px; margin-right: 8px; }
.view-kb .algorithm-desc { font-size: 13px; color: var(--kb-text-muted); margin: 6px 0 0; }

/* ── Grid table row colors ───────────────────────────────────────────── */
.view-kb .grid-1    { background: rgba(0,212,170,0.04); }
.view-kb .grid-2    { background: rgba(96,165,250,0.04); }
.view-kb .grid-3    { background: rgba(245,158,11,0.04); }
.view-kb .grid-4    { background: rgba(239,68,68,0.04); }
.view-kb .grid-full { background: rgba(239,68,68,0.06); }
.view-kb .grid-entry { background: rgba(0,212,170,0.06); font-weight: 600; }
.view-kb .grid-avg1  { background: rgba(96,165,250,0.04); }
.view-kb .grid-avg2  { background: rgba(245,158,11,0.04); }
.view-kb .grid-avg3  { background: rgba(239,68,68,0.04); }
.view-kb .grid-current { background: rgba(0,212,170,0.08); }
.view-kb .grid-sl   td { color: #f87171; }
.view-kb .grid-tp   td { color: #4ade80; }

/* ── Action row colors ───────────────────────────────────────────────── */
.view-kb .action-close { background: rgba(0,212,170,0.05); }
.view-kb .action-hold  { background: rgba(245,158,11,0.05); }
.view-kb .action-wait  { background: rgba(96,165,250,0.05); }

/* ── Probability classes ─────────────────────────────────────────────── */
.view-kb .prob-base  { color: var(--kb-primary); font-weight: 700; }
.view-kb .prob-knife { color: #c084fc; font-weight: 700; }
.view-kb .prob-madmax{ color: #f87171; font-weight: 700; }
.view-kb .prob-squiz { color: #fbbf24; font-weight: 700; }
.view-kb .prob-swing { color: #60a5fa; font-weight: 700; }
.view-kb .probability-explanation { font-size: 13px; color: var(--kb-text-muted); margin: 8px 0; line-height: 1.6; }

/* ── Diary ───────────────────────────────────────────────────────────── */
.view-kb .diary-controls { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.view-kb .diary-table-container { overflow-x: auto; }
.view-kb .diary-table { width: 100%; min-width: 900px; }
.view-kb .diary-table th { white-space: nowrap; }
.view-kb .diary-input,
.view-kb .diary-select {
    background: var(--kb-card); border: 1px solid var(--kb-border);
    border-radius: 6px; padding: 5px 8px; color: var(--kb-text);
    font-size: 12px; width: 100%; outline: none;
}
.view-kb .diary-input:focus,
.view-kb .diary-select:focus { border-color: var(--kb-primary); }
.view-kb .diary-stats { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.view-kb .diary-summary { font-size: 13px; color: var(--kb-text-muted); }
.view-kb .delete-row { background: none; border: none; color: var(--kb-danger); cursor: pointer; font-size: 14px; opacity: 0.6; }
.view-kb .delete-row:hover { opacity: 1; }
.view-kb .export-actions { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.view-kb .profit-input {
    background: var(--kb-card); border: 1px solid var(--kb-border);
    border-radius: 6px; padding: 6px 10px; color: var(--kb-text);
    font-size: 13px; outline: none; width: 120px;
}
.view-kb .profit-input:focus { border-color: var(--kb-primary); }
.view-kb .win-rate { color: var(--kb-primary); font-weight: 700; font-size: 16px; }
.view-kb .profit     { color: #4ade80; font-weight: 600; }
.view-kb .loss       { color: #f87171; font-weight: 600; }
.view-kb .total      { font-weight: 700; }
.view-kb .total-profit { color: var(--kb-primary); font-weight: 700; font-size: 16px; }
.view-kb .success-rate { color: #4ade80; font-weight: 600; }

/* ── Summary inputs ──────────────────────────────────────────────────── */
.view-kb .summary-inputs { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.view-kb .summary-item { display: flex; flex-direction: column; gap: 4px; }
.view-kb .summary-select {
    background: var(--kb-card); border: 1px solid var(--kb-border);
    border-radius: 6px; padding: 6px 10px; color: var(--kb-text);
    font-size: 13px; outline: none;
}
.view-kb .summary-select:focus { border-color: var(--kb-primary); }
.view-kb .summary-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.view-kb .summary-value { font-size: 16px; font-weight: 700; color: var(--kb-text-head); }

/* ── Text semantic helpers ───────────────────────────────────────────── */
.view-kb .positive  { color: #4ade80; }
.view-kb .negative  { color: #f87171; }
.view-kb .critical  { color: var(--kb-danger); font-weight: 700; }
.view-kb .news-warning { color: #fbbf24; }
.view-kb .psycho { color: var(--kb-warning); }

/* ── Special blocks ──────────────────────────────────────────────────── */
.view-kb .warning-box {
    background: rgba(245,158,11,0.08);
    border: 1px solid rgba(245,158,11,0.25);
    border-radius: 8px; padding: 12px 16px; margin: 10px 0;
    font-size: 13.5px; color: var(--kb-text);
}
.view-kb .idea-box {
    background: rgba(0,212,170,0.05);
    border: 1px solid rgba(0,212,170,0.2);
    border-left: 3px solid var(--kb-primary);
    border-radius: 0 8px 8px 0;
    padding: 12px 16px; margin: 10px 0; font-size: 13.5px;
}
.view-kb .golden-rule {
    background: rgba(251,191,36,0.06);
    border: 1px solid rgba(251,191,36,0.25);
    border-radius: 10px; padding: 14px 16px; margin: 12px 0;
    font-size: 14px; font-weight: 500; color: #fbbf24;
    text-align: center;
}
.view-kb .example-box {
    background: var(--kb-elevated);
    border-left: 3px solid #60a5fa;
    border-radius: 0 8px 8px 0;
    padding: 12px 16px; margin: 10px 0; font-size: 13px;
}
.view-kb .conditions-box {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 8px; padding: 12px 16px; margin: 10px 0;
}
.view-kb .formula-box {
    background: var(--kb-elevated);
    border: 1px solid var(--kb-border);
    border-radius: 8px; padding: 14px 16px; margin: 10px 0;
    font-family: 'JetBrains Mono', monospace; font-size: 13px;
}
.view-kb .formula-example { font-size: 12px; color: var(--kb-text-muted); margin-top: 6px; }

/* ── Crash algorithm ─────────────────────────────────────────────────── */
.view-kb .crash-algorithm { background: rgba(239,68,68,0.05); border: 1px solid rgba(239,68,68,0.15); border-radius: 10px; padding: 14px 16px; margin: 10px 0; }

/* ── Emergency / danger lists ────────────────────────────────────────── */
.view-kb .emergency-tips { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.view-kb .danger-list li { color: #f87171; }

/* ── Legend ──────────────────────────────────────────────────────────── */
.view-kb .legend { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0; }
.view-kb .legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--kb-text-muted); }
.view-kb .legend-color { width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0; }
.view-kb .legend-items { display: flex; flex-wrap: wrap; gap: 10px; }

/* ── Asia warning ────────────────────────────────────────────────────── */
.view-kb .asia-warning { font-size: 12px; color: #60a5fa; background: rgba(96,165,250,0.08); border-radius: 6px; padding: 4px 10px; display: inline-block; }

/* ── Conclusion / final / signature ─────────────────────────────────── */
.view-kb .conclusion-container { text-align: center; padding: 20px 0 10px; }
.view-kb .conclusion-quote {
    font-size: 15px; font-style: italic; color: var(--kb-text-muted);
    border-left: 3px solid var(--kb-primary); padding: 10px 16px;
    margin: 14px 0; text-align: left; background: rgba(0,212,170,0.04); border-radius: 0 8px 8px 0;
}
.view-kb .final-message { font-size: 14px; color: var(--kb-text); text-align: center; margin: 16px 0 8px; }
.view-kb .signature { font-size: 12px; color: var(--kb-text-muted); text-align: center; }
.view-kb .wish { font-size: 13px; color: var(--kb-primary); font-weight: 500; }
.view-kb .wishes { display: flex; flex-direction: column; gap: 4px; text-align: center; margin: 10px 0; }

/* ── Buttons ─────────────────────────────────────────────────────────── */
.view-kb .btn {
    display: inline-flex; align-items: center; gap: 6px;
    border-radius: 7px; padding: 7px 14px; font-size: 13px;
    font-weight: 500; cursor: pointer; border: 1px solid transparent;
    transition: background 0.15s, border-color 0.15s;
}
.view-kb .btn-primary { background: var(--kb-primary); color: #000; border-color: var(--kb-primary); }
.view-kb .btn-primary:hover { background: var(--kb-secondary); border-color: var(--kb-secondary); }
.view-kb .btn-secondary { background: var(--kb-elevated); color: var(--kb-text); border-color: var(--kb-border); }
.view-kb .btn-secondary:hover { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12); }

/* ── Madmax specifics ────────────────────────────────────────────────── */
.view-kb .madmax-hr { border: none; border-top: 1px solid rgba(239,68,68,0.2); margin: 14px 0; }
.view-kb .squiz-signals { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }

/* ── Sidebar nav ─────────────────────────────────────────────────────── */
.view-kb .sidebar-nav { display: flex; flex-direction: column; gap: 2px; }

/* ── Probability bar (squiz) ─────────────────────────────────────────── */
.view-kb .squiz { display: inline-block; }
.view-kb .squiz-bar { height: 6px; border-radius: 3px; background: rgba(245,158,11,0.3); display: inline-block; vertical-align: middle; }
.view-kb .knife { display: inline-block; }
.view-kb .knife-bar { height: 6px; border-radius: 3px; background: rgba(168,85,247,0.3); display: inline-block; vertical-align: middle; }
.view-kb .madmax { display: inline-block; }
.view-kb .madmax-bar.squiz-bar,
.view-kb .madmax-bar.knife-bar { height: 6px; border-radius: 3px; }
.view-kb .swing { display: inline-block; }
.view-kb .swing-bar { height: 6px; border-radius: 3px; background: rgba(96,165,250,0.3); display: inline-block; vertical-align: middle; }
.view-kb .conservative { display: inline-block; }

/* ── Daily summary ───────────────────────────────────────────────────── */
.view-kb .daily-summary { background: var(--kb-elevated); border: 1px solid var(--kb-border); border-radius: 10px; padding: 14px 16px; margin: 10px 0; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .view-kb .pattern-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .view-kb .page-layout { flex-direction: column; padding: 12px; gap: 12px; }
    .view-kb .sidebar { width: 100%; height: auto; position: static; max-height: 180px; }
    .view-kb .section { padding: 16px; }
    .view-kb .kb-top-bar { padding: 10px 12px; }
    .view-kb .pattern-grid { grid-template-columns: 1fr; }
}
