/* ==========================================================================
   CENSUS SIDEBAR - PRECISION TERMINAL THEME
   Collapsible patient list with terminal aesthetics

   ARCHITECTURE: Matches note-rail design system for visual consistency
   WHY: Collapsed sidebar saves space when viewing patient chart
   TRADEOFF: Additional complexity for collapse state vs always-visible list

   INFLUENCES (from NOTE_RAIL_DESIGN_SYSTEM.md):
   - Terminal/CLI: Window chrome, monospace, sharp corners
   - Art Deco: Corner embellishments, theatrical hovers, geometric precision
   - Bitcoin DeFi: Colored glows, bottom-border inputs, layered depth
   ========================================================================== */

/* ==========================================================================
   SECTION 1: DESIGN TOKENS (scoped to terminal theme)
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] {
    /* ─────────────────────────────────────────────────────────────────────
       DIMENSIONS
       ───────────────────────────────────────────────────────────────────── */
    --sidebar-width-collapsed: 64px;
    --sidebar-width-expanded: 360px;
    --sidebar-transition: 300ms cubic-bezier(0.4, 0, 0.2, 1);
}


/* ==========================================================================
   SECTION 2: SIDEBAR CONTAINER
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] {
    background: var(--term-bg-void);
    border-right: 1px solid var(--term-border-default);
    font-family: var(--term-font-mono);
    width: var(--sidebar-width-expanded);
    min-width: var(--sidebar-width-expanded);
    max-width: var(--sidebar-width-expanded);
    flex-shrink: 0;
    transition: width var(--sidebar-transition),
                min-width var(--sidebar-transition),
                max-width var(--sidebar-transition),
                border-color 300ms ease,
                box-shadow 300ms ease;
    will-change: width, box-shadow;
    overflow: hidden;
    position: relative;
}

/* Remove default radial gradients — source order wins, no !important needed */
.sol-sidebar[data-theme="terminal"] {
    background: var(--term-bg-void);
}


/* ==========================================================================
   SECTION 3: COLLAPSED STATE
   ========================================================================== */

.sol-sidebar[data-theme="terminal"].collapsed {
    width: var(--sidebar-width-collapsed);
    min-width: var(--sidebar-width-collapsed);
    max-width: var(--sidebar-width-collapsed);
    cursor: pointer;
    border-right: 2px solid var(--term-accent-dim);
    box-shadow: inset -4px 0 20px rgba(0, 255, 208, 0.15);
}

.sol-sidebar[data-theme="terminal"].collapsed:hover {
    --sidebar-width-collapsed: 72px;
    border-right-color: var(--term-accent);
    box-shadow: inset -4px 0 20px rgba(0, 255, 208, 0.2);
}

/* Hide main content when collapsed - with smooth transition */
.sol-sidebar[data-theme="terminal"] .sol-sidebar-header,
.sol-sidebar[data-theme="terminal"] .sol-filter-controls,
.sol-sidebar[data-theme="terminal"] .sol-filters,
.sol-sidebar[data-theme="terminal"] .sol-patient-list {
    transition: opacity 200ms ease, visibility 200ms ease;
}

.sol-sidebar[data-theme="terminal"].collapsed .sol-sidebar-header,
.sol-sidebar[data-theme="terminal"].collapsed .sol-filter-controls,
.sol-sidebar[data-theme="terminal"].collapsed .sol-filters,
.sol-sidebar[data-theme="terminal"].collapsed .sol-patient-list {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Prevent click through to hidden elements */
.sol-sidebar[data-theme="terminal"].collapsed > *:not(.sidebar-collapsed-content):not(.sidebar-toggle-btn) {
    pointer-events: none;
}


/* ==========================================================================
   SECTION 4: COLLAPSED CONTENT (vertical indicator strip)
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: none;
    flex-direction: column;
    align-items: center;
    /* FIX: Start below the toggle button (32px height + 12px top + 8px gap) */
    padding: 52px 0 12px;
    background: linear-gradient(
        180deg,
        var(--term-bg-void) 0%,
        var(--term-bg-void) 15%,
        var(--term-bg-void) 85%,
        var(--term-accent-ghost) 100%
    );
    z-index: 5;
}

.sol-sidebar[data-theme="terminal"].collapsed .sidebar-collapsed-content {
    display: flex;
}

/* Patient count badge */
.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-count {
    width: 100%;
    padding: 12px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    border-bottom: 1px solid var(--term-border-subtle);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-count .count-value {
    font-family: var(--term-font-mono);
    font-size: 3rem;
    font-weight: 700;
    color: var(--term-accent);
    line-height: 1;
    text-shadow: 0 0 12px rgba(0, 255, 208, 0.3);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-count .count-label {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-display);
    color: var(--term-fg-muted);
}

/* Critical count indicator */
.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-critical {
    width: 100%;
    padding: 8px 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    border-bottom: 1px solid var(--term-border-subtle);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-critical .critical-value {
    font-family: var(--term-font-mono);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--term-status-critical);
    line-height: 1;
    text-shadow: 0 0 12px rgba(239, 68, 68, 0.5);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-critical .critical-label {
    font-family: var(--term-font-mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wider);
    color: var(--term-status-critical);
}

/* Hide critical section when 0 */
.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-critical[data-count="0"] {
    display: none;
}

/* Status dots for severity breakdown */
.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-status {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 0;
    border-bottom: 1px solid var(--term-border-subtle);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-status .status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    transition: background 200ms ease, box-shadow 200ms ease;
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-status .status-dot.critical {
    background: var(--term-status-critical);
    box-shadow: 0 0 12px rgba(239, 68, 68, 0.5);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-status .status-dot.worsening {
    background: var(--term-status-worsening);
    box-shadow: 0 0 12px rgba(245, 158, 11, 0.4);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-status .status-dot.stable {
    background: var(--term-status-stable);
    box-shadow: 0 0 8px rgba(34, 197, 94, 0.3);
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-status .status-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sol-sidebar[data-theme="terminal"] .sidebar-collapsed-status .status-count {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    font-weight: 600;
    color: var(--term-fg-secondary);
    line-height: 1;
}

/* Color counts to match dots */
.sol-sidebar[data-theme="terminal"] .status-row:has(.critical) .status-count {
    color: var(--term-status-critical);
}

.sol-sidebar[data-theme="terminal"] .status-row:has(.worsening) .status-count {
    color: var(--term-status-worsening);
}

.sol-sidebar[data-theme="terminal"] .status-row:has(.stable) .status-count {
    color: var(--term-status-stable);
}

/* Hide rows with 0 count */
.sol-sidebar[data-theme="terminal"] .status-row[data-count="0"] {
    display: none;
}



/* ==========================================================================
   SECTION 5: TOGGLE BUTTON
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sidebar-toggle-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 100;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--term-bg-surface, #111111);
    border: 1px solid var(--term-border-default, #2A2A2A);
    border-radius: 0;
    color: var(--term-fg-secondary, #A0A0A0);
    cursor: pointer;
    transition: border-color 300ms ease, color 300ms ease, box-shadow 300ms ease;
    will-change: box-shadow, border-color;
}

.sol-sidebar[data-theme="terminal"] .sidebar-toggle-btn:hover {
    border-color: var(--term-accent, #00FFD0);
    color: var(--term-accent, #00FFD0);
    box-shadow: 0 0 12px rgba(0, 255, 208, 0.3);
}

.sol-sidebar[data-theme="terminal"] .sidebar-toggle-btn svg {
    width: 16px;
    height: 16px;
    transition: transform 300ms ease;
}

/* Rotate chevron when collapsed */
.sol-sidebar[data-theme="terminal"].collapsed .sidebar-toggle-btn svg {
    transform: rotate(180deg);
}

/* Focus-visible indicators (keyboard only, not mouse) */
.sol-sidebar[data-theme="terminal"] .sidebar-toggle-btn:focus-visible {
    outline: 2px solid var(--term-accent);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(0, 255, 208, 0.2);
}

.sol-sidebar[data-theme="terminal"]:focus-visible {
    outline: 2px solid var(--term-accent);
    outline-offset: -2px;
}



/* ==========================================================================
   SECTION 6: HEADER STYLING (expanded state)
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-sidebar-header {
    background: var(--term-bg-header);
    border-bottom: 1px solid var(--term-border-default);
    padding: var(--term-space-lg);
    padding-top: calc(var(--term-space-lg) + 20px);
    /* FIX: Clear the absolute-positioned sidebar toggle button (32px + 12px right) */
    padding-right: calc(var(--term-space-lg) + 36px);
    position: relative;
}

/* Window chrome dots (terminal influence) */
.sol-sidebar[data-theme="terminal"] .sol-sidebar-header::before {
    content: '';
    position: absolute;
    left: var(--term-space-md);
    top: 12px;
    width: 44px;
    height: 10px;
    background-image:
        radial-gradient(circle, var(--term-status-critical) 4px, transparent 4px),
        radial-gradient(circle, var(--term-status-worsening) 4px, transparent 4px),
        radial-gradient(circle, var(--term-status-stable) 4px, transparent 4px);
    background-size: 14px 10px;
    background-position: 0 0, 15px 0, 30px 0;
    background-repeat: no-repeat;
    opacity: 0.6;
}

/* Title with prompt prefix */
.sol-sidebar[data-theme="terminal"] .sol-sidebar-title {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-sm);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wider);
    color: var(--term-fg-primary);
    margin: 0;
}

.sol-sidebar[data-theme="terminal"] .sol-sidebar-title::before {
    content: '>';
    color: var(--term-accent);
    margin-right: var(--term-space-sm);
    font-weight: 700;
}


/* ==========================================================================
   SECTION 7: STATS GRID (expanded state)
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-stats-header {
    margin-bottom: var(--term-space-md);
}

.sol-sidebar[data-theme="terminal"] .sol-stats-title {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-widest);
    color: var(--term-fg-muted);
}

.sol-sidebar[data-theme="terminal"] .sol-stats-sub {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    color: var(--term-fg-muted);
    opacity: 0.7;
}

.sol-sidebar[data-theme="terminal"] .sol-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--term-space-sm);
}

.sol-sidebar[data-theme="terminal"] .sol-stat-cell {
    background: var(--term-bg-surface);
    border: 1px solid var(--term-border-subtle);
    border-radius: 0;
    padding: var(--term-space-md);
    text-align: center;
    position: relative;
    transition: border-color 300ms ease, box-shadow 300ms ease;
}

/* L-bracket corners (Art Deco) */
.sol-sidebar[data-theme="terminal"] .sol-stat-cell::before,
.sol-sidebar[data-theme="terminal"] .sol-stat-cell::after {
    content: '';
    position: absolute;
    width: var(--term-corner-size);
    height: var(--term-corner-size);
    pointer-events: none;
    opacity: 0.4;
    transition: opacity 300ms ease;
}

.sol-sidebar[data-theme="terminal"] .sol-stat-cell::before {
    top: var(--term-corner-offset);
    right: var(--term-corner-offset);
    border-top: var(--term-corner-width) solid var(--term-accent-dim);
    border-right: var(--term-corner-width) solid var(--term-accent-dim);
}

.sol-sidebar[data-theme="terminal"] .sol-stat-cell::after {
    bottom: var(--term-corner-offset);
    left: var(--term-corner-offset);
    border-bottom: var(--term-corner-width) solid var(--term-accent-dim);
    border-left: var(--term-corner-width) solid var(--term-accent-dim);
}

.sol-sidebar[data-theme="terminal"] .sol-stat-cell:hover::before,
.sol-sidebar[data-theme="terminal"] .sol-stat-cell:hover::after {
    opacity: 1;
}

.sol-sidebar[data-theme="terminal"] .sol-stat-value {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xl);
    font-weight: 700;
    color: var(--term-fg-primary);
    line-height: 1.2;
}

.sol-sidebar[data-theme="terminal"] .sol-stat-label {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
    color: var(--term-fg-muted);
}

/* Critical stat with glow */
.sol-sidebar[data-theme="terminal"] .sol-stat-critical .sol-stat-value {
    color: var(--term-status-critical);
    text-shadow: var(--term-glow-critical);
}

.sol-sidebar[data-theme="terminal"] .sol-stat-critical::before,
.sol-sidebar[data-theme="terminal"] .sol-stat-critical::after {
    border-color: rgba(239, 68, 68, 0.5);
}

/* Warning stat */
.sol-sidebar[data-theme="terminal"] .sol-stat-warning .sol-stat-value {
    color: var(--term-status-worsening);
    text-shadow: var(--term-glow-worsening);
}


/* ==========================================================================
   SECTION 8: FILTER CONTROLS
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-filter-controls {
    background: var(--term-bg-surface);
    border-bottom: 1px solid var(--term-border-subtle);
    padding: var(--term-space-md) var(--term-space-lg);
}

.sol-sidebar[data-theme="terminal"] .sol-filter-meta {
    margin-bottom: var(--term-space-sm);
}

.sol-sidebar[data-theme="terminal"] .sol-filter-label {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    color: var(--term-fg-muted);
    letter-spacing: var(--term-tracking-wide);
}

.sol-sidebar[data-theme="terminal"] .sol-filter-actions {
    display: flex;
    align-items: center;
    gap: var(--term-space-sm);
}

.sol-sidebar[data-theme="terminal"] .sol-input-label {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    color: var(--term-fg-muted);
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
}

/* Bottom-border inputs (Bitcoin DeFi influence) */
.sol-sidebar[data-theme="terminal"] .sol-input {
    background: var(--term-bg-elevated);
    border: none;
    border-bottom: 2px solid var(--term-border-default);
    border-radius: 0;
    color: var(--term-fg-primary);
    font-family: var(--term-font-mono);
    font-size: var(--term-text-sm);
    padding: var(--term-space-sm) var(--term-space-md);
}

.sol-sidebar[data-theme="terminal"] .sol-input:focus {
    outline: none;
    border-bottom-color: var(--term-accent);
    box-shadow: 0 4px 12px rgba(0, 255, 208, 0.15);
}

.sol-sidebar[data-theme="terminal"] .sol-filter-chip {
    background: transparent;
    border: 1px solid var(--term-border-default);
    border-radius: 0;
    color: var(--term-fg-secondary);
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
    padding: var(--term-space-xs) var(--term-space-md);
    cursor: pointer;
    transition: border-color 300ms ease, color 300ms ease, box-shadow 300ms ease;
}

.sol-sidebar[data-theme="terminal"] .sol-filter-chip:hover,
.sol-sidebar[data-theme="terminal"] .sol-filter-chip[aria-pressed="true"] {
    border-color: var(--term-accent);
    color: var(--term-accent);
    box-shadow: var(--term-glow-accent);
}


/* ==========================================================================
   SECTION 9: FILTER PILLS
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-filters {
    display: flex;
    gap: var(--term-space-xs);
    padding: var(--term-space-md) var(--term-space-lg);
    border-bottom: 1px solid var(--term-border-subtle);
    background: var(--term-bg-void);
}

.sol-sidebar[data-theme="terminal"] .sol-filter-btn {
    background: transparent;
    border: 1px solid var(--term-border-default);
    border-radius: 0;
    color: var(--term-fg-secondary);
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
    padding: var(--term-space-xs) var(--term-space-md);
    cursor: pointer;
    transition: border-color 300ms ease, color 300ms ease, box-shadow 300ms ease, background 300ms ease;
    will-change: box-shadow, border-color;
}

.sol-sidebar[data-theme="terminal"] .sol-filter-btn:hover {
    border-color: var(--term-accent-dim);
    color: var(--term-fg-primary);
}

.sol-sidebar[data-theme="terminal"] .sol-filter-btn.active {
    background: var(--term-accent);
    border-color: var(--term-accent);
    color: var(--term-fg-inverse);
    box-shadow: var(--term-glow-accent);
}

.sol-sidebar[data-theme="terminal"] .sol-filter-count {
    font-weight: 600;
    margin-left: var(--term-space-xs);
}


/* ==========================================================================
   SECTION 10: PATIENT LIST
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-patient-list {
    flex: 1;
    overflow-y: auto;
    padding: var(--term-space-md);
    background: var(--term-bg-void);
}

/* Scrollbars extracted to global terminal-core */


/* ==========================================================================
   SECTION 11: PATIENT CARDS
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-patient-card {
    background: var(--term-bg-surface);
    border: 1px solid var(--term-border-subtle);
    border-radius: 0;
    padding: var(--term-space-md);
    margin-bottom: var(--term-space-sm);
    cursor: pointer;
    position: relative;
    transition: transform 500ms ease, border-color 500ms ease, box-shadow 500ms ease;
    will-change: transform, box-shadow;
}

/* L-bracket corners */
.sol-sidebar[data-theme="terminal"] .sol-patient-card::before,
.sol-sidebar[data-theme="terminal"] .sol-patient-card::after {
    content: '';
    position: absolute;
    width: var(--term-corner-size);
    height: var(--term-corner-size);
    pointer-events: none;
    opacity: 0.3;
    transition: opacity 500ms ease;
}

.sol-sidebar[data-theme="terminal"] .sol-patient-card::before {
    top: var(--term-corner-offset);
    right: var(--term-corner-offset);
    border-top: var(--term-corner-width) solid var(--term-accent-dim);
    border-right: var(--term-corner-width) solid var(--term-accent-dim);
}

.sol-sidebar[data-theme="terminal"] .sol-patient-card::after {
    bottom: var(--term-corner-offset);
    left: var(--term-corner-offset);
    border-bottom: var(--term-corner-width) solid var(--term-accent-dim);
    border-left: var(--term-corner-width) solid var(--term-accent-dim);
}

/* Hover state - theatrical timing */
.sol-sidebar[data-theme="terminal"] .sol-patient-card:hover {
    transform: translateY(-2px);
    border-color: var(--term-accent-dim);
    box-shadow: var(--term-glow-accent);
}

.sol-sidebar[data-theme="terminal"] .sol-patient-card:hover::before,
.sol-sidebar[data-theme="terminal"] .sol-patient-card:hover::after {
    opacity: 1;
}

/* Selected state */
.sol-sidebar[data-theme="terminal"] .sol-patient-card.selected {
    border: 2px dashed var(--term-accent);
    background: var(--term-accent-ghost);
}

.sol-sidebar[data-theme="terminal"] .sol-patient-card.selected::before,
.sol-sidebar[data-theme="terminal"] .sol-patient-card.selected::after {
    border-color: var(--term-accent);
    opacity: 1;
}

/* Severity-based left border accent */
.sol-sidebar[data-theme="terminal"] .sol-patient-card.critical {
    border-left: 3px solid var(--term-status-critical);
}

.sol-sidebar[data-theme="terminal"] .sol-patient-card.critical::before,
.sol-sidebar[data-theme="terminal"] .sol-patient-card.critical::after {
    border-color: rgba(239, 68, 68, 0.5);
}

.sol-sidebar[data-theme="terminal"] .sol-patient-card.worsening,
.sol-sidebar[data-theme="terminal"] .sol-patient-card.moderate {
    border-left: 3px solid var(--term-status-worsening);
}

.sol-sidebar[data-theme="terminal"] .sol-patient-card.stable {
    border-left: 3px solid var(--term-status-stable);
}

/* Card content styling */
.sol-sidebar[data-theme="terminal"] .sol-card-room {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-lg);
    font-weight: 700;
    color: var(--term-fg-primary);
    margin-right: var(--term-space-md);
}

.sol-sidebar[data-theme="terminal"] .sol-card-name {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-base);
    font-weight: 600;
    color: var(--term-fg-primary);
}

.sol-sidebar[data-theme="terminal"] .sol-card-meta {
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    color: var(--term-fg-muted);
}

.sol-sidebar[data-theme="terminal"] .sol-hospital-day-pill {
    background: var(--term-bg-elevated);
    border: 1px solid var(--term-border-subtle);
    border-radius: 0;
    padding: 2px 6px;
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    color: var(--term-fg-secondary);
}

/* Diagnosis badges */
.sol-sidebar[data-theme="terminal"] .sol-diagnosis {
    display: inline-block;
    background: var(--term-bg-elevated);
    border: 1px solid var(--term-border-subtle);
    border-radius: 0;
    padding: 2px 6px;
    font-family: var(--term-font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
    color: var(--term-fg-secondary);
    margin-left: var(--term-space-xs);
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Signal badges */
.sol-sidebar[data-theme="terminal"] .sol-signal-badge {
    background: var(--term-accent-ghost);
    border: 1px solid var(--term-accent-dim);
    border-radius: 0;
    padding: 2px 6px;
    font-family: var(--term-font-mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
    color: var(--term-accent);
}

/* Worsening/Review pills */
.sol-sidebar[data-theme="terminal"] .sol-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 0;
    font-family: var(--term-font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
}

.sol-sidebar[data-theme="terminal"] .sol-pill--worsening {
    background: rgba(245, 158, 11, 0.15);
    border: 1px solid rgba(245, 158, 11, 0.3);
    color: var(--term-status-worsening);
}

.sol-sidebar[data-theme="terminal"] .sol-pill--pending {
    background: rgba(59, 130, 246, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.3);
    color: #3B82F6;
}


/* ==========================================================================
   SECTION 12: EMPTY STATE
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-empty {
    text-align: center;
    padding: var(--term-space-xl);
    font-family: var(--term-font-mono);
    font-size: var(--term-text-sm);
    color: var(--term-fg-muted);
}


/* ==========================================================================
   SECTION 13: ADD PATIENT BUTTON
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-add-patient-btn {
    background: transparent;
    border: 1px solid var(--term-border-default);
    border-radius: 0;
    color: var(--term-fg-secondary);
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--term-tracking-wide);
    padding: var(--term-space-xs) var(--term-space-md);
    cursor: pointer;
    transition: border-color 300ms ease, color 300ms ease, box-shadow 300ms ease;
    display: flex;
    align-items: center;
    gap: var(--term-space-xs);
}

.sol-sidebar[data-theme="terminal"] .sol-add-patient-btn:hover {
    border-color: var(--term-accent);
    color: var(--term-accent);
    box-shadow: var(--term-glow-accent);
}

.sol-sidebar[data-theme="terminal"] .sol-add-patient-btn svg {
    width: 14px;
    height: 14px;
}


/* ==========================================================================
   SECTION 14: DROPDOWN MENU
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-card-dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    background: var(--term-bg-surface);
    border: 1px solid var(--term-border-default);
    border-radius: 0;
    min-width: 160px;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

.sol-sidebar[data-theme="terminal"] .sol-dropdown-item {
    display: flex;
    align-items: center;
    gap: var(--term-space-sm);
    width: 100%;
    padding: var(--term-space-sm) var(--term-space-md);
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--term-border-subtle);
    color: var(--term-fg-secondary);
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    text-align: left;
    cursor: pointer;
    transition: background 200ms ease, color 200ms ease;
}

.sol-sidebar[data-theme="terminal"] .sol-dropdown-item:last-child {
    border-bottom: none;
}

.sol-sidebar[data-theme="terminal"] .sol-dropdown-item:hover {
    background: var(--term-accent-ghost);
    color: var(--term-accent);
}

.sol-sidebar[data-theme="terminal"] .sol-dropdown-item--danger:hover {
    background: rgba(239, 68, 68, 0.1);
    color: var(--term-status-critical);
}


/* ==========================================================================
   SECTION 15: LOADING SKELETON
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-loading-skeleton {
    padding: var(--term-space-md);
}

.sol-sidebar[data-theme="terminal"] .sol-skeleton-card {
    height: 80px;
    background: linear-gradient(
        90deg,
        var(--term-bg-surface) 0%,
        var(--term-bg-elevated) 50%,
        var(--term-bg-surface) 100%
    );
    background-size: 200% 100%;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
    margin-bottom: var(--term-space-sm);
    border: 1px solid var(--term-border-subtle);
}

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


/* ==========================================================================
   SECTION 16: REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .sol-sidebar[data-theme="terminal"] * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}


/* ==========================================================================
   SECTION 17: LAYOUT GRID ADJUSTMENTS
   ========================================================================== */

/* Adjust main layout grid when sidebar is collapsed */
.sol-main-layout:has(.sol-sidebar[data-theme="terminal"].collapsed) {
    grid-template-columns: 64px 1fr !important;
}

/* Fallback for browsers without :has() - JS adds class to parent */
.sol-main-layout.sidebar-collapsed {
    grid-template-columns: 64px 1fr !important;
}



/* ==========================================================================
   SECTION 18: RESPONSIVE ADJUSTMENTS
   ========================================================================== */

@media (max-width: 768px) {
    .sol-sidebar[data-theme="terminal"] {
        --term-text-huge: 2rem;
        --term-corner-size: 8px;
        --term-corner-offset: 4px;
    }

    /* Hide window chrome dots on mobile */
    .sol-sidebar[data-theme="terminal"] .sol-sidebar-header::before {
        display: none;
    }

    /* Don't collapse sidebar on mobile - use slide-out instead */
    .sol-sidebar[data-theme="terminal"].collapsed {
        width: var(--sidebar-width-expanded);
    }
}


/* ==========================================================================
   SECTION 19: RECENT PATIENTS BAR (terminal theme override)
   WHY: The base .recent-patients-bar uses --census-* blue accents and rounded
        corners, which clash with the terminal green/sharp-corner aesthetic.
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .recent-patients-bar {
    background: var(--term-bg-surface);
    border: 1px solid var(--term-border-subtle);
    border-radius: 0;
    padding: 6px 8px;
    gap: 4px;
}

.sol-sidebar[data-theme="terminal"] .recent-patient-chip {
    background: var(--term-bg-elevated);
    border: 1px solid var(--term-border-default);
    border-radius: 0;
    color: var(--term-fg-secondary);
    font-family: var(--term-font-mono);
    font-size: var(--term-text-xs);
    padding: 3px 8px;
    transition: border-color 300ms ease, color 300ms ease, box-shadow 300ms ease;
}

.sol-sidebar[data-theme="terminal"] .recent-patient-chip:hover {
    background: var(--term-accent-ghost);
    border-color: var(--term-accent-dim);
    color: var(--term-fg-primary);
}

.sol-sidebar[data-theme="terminal"] .recent-patient-chip.selected {
    background: var(--term-accent-ghost);
    border-color: var(--term-accent);
    color: var(--term-accent);
    box-shadow: var(--term-glow-accent);
}

.sol-sidebar[data-theme="terminal"] .recent-patient-chip .chip-room {
    color: var(--term-accent);
    font-weight: 600;
}

.sol-sidebar[data-theme="terminal"] .recent-patient-chip .chip-name {
    color: inherit;
}


/* ==========================================================================
   SECTION 20: ARCHIVE SECTION (terminal theme override)
   WHY: The base .sol-section-header uses hardcoded rgba() values and rounded
        count badges. Override to use --term-* tokens and sharp corners.
   ========================================================================== */

.sol-sidebar[data-theme="terminal"] .sol-section-header {
    color: var(--term-fg-muted);
    border-top: 1px solid var(--term-border-subtle);
    font-family: var(--term-font-mono);
}

.sol-sidebar[data-theme="terminal"] .sol-section-header:hover {
    color: var(--term-fg-secondary);
}

.sol-sidebar[data-theme="terminal"] .sol-section-count {
    background: var(--term-bg-elevated);
    border-radius: 0;
    color: var(--term-fg-muted);
    border: 1px solid var(--term-border-subtle);
}
