/* =============================================================
   sessions.css — Inode Analyzer v3.8
   Painel de histórico de sessões anteriores (novo v3.8).
   ============================================================= */

/* ── Cabeçalho do painel ─────────────────────────────────────── */
.sessions-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    margin-bottom:   14px;
    gap:             12px;
    flex-wrap:       wrap;
}
.sessions-header-title {
    font-size:      10px;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color:          var(--text-2);
    display:        flex;
    align-items:    center;
    gap:            8px;
}
.sessions-header-title i { color: var(--accent); }

.btn-sessions-refresh {
    padding:       6px 12px;
    border-radius: 6px;
    border:        1px solid var(--border);
    background:    var(--bg-surface);
    color:         var(--text-2);
    font-size:     10px;
    font-weight:   600;
    cursor:        pointer;
    transition:    all 0.2s ease;
    display:       flex;
    align-items:   center;
    gap:           6px;
}
.btn-sessions-refresh:hover { border-color: var(--accent); color: var(--accent); }

/* ── Lista de sessões ────────────────────────────────────────── */
.sessions-list {
    display:        flex;
    flex-direction: column;
    gap:            8px;
}

/* ── Item de sessão ──────────────────────────────────────────── */
.session-item {
    background:    var(--bg-input);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       12px 16px;
    display:       grid;
    grid-template-columns: auto 1fr auto auto;
    align-items:   center;
    gap:           12px;
    transition:    all 0.2s ease;
    cursor:        default;
}
.session-item:hover { border-color: var(--border-hi); background: var(--bg-elevated); }
.session-item.active {
    border-color: var(--accent);
    background:   var(--accent-d2);
}

/* Ícone de status */
.session-status-icon {
    width:           32px;
    height:          32px;
    border-radius:   6px;
    display:         flex;
    align-items:     center;
    justify-content: center;
    font-size:       13px;
    flex-shrink:     0;
}
.session-status-icon.running  { background: var(--session-running-bg);  color: var(--session-running-fg); }
.session-status-icon.finished { background: var(--session-finished-bg); color: var(--session-finished-fg); }
.session-status-icon.stopped  { background: var(--session-stopped-bg);  color: var(--session-stopped-fg); }
.session-status-icon.error    { background: var(--session-error-bg);    color: var(--session-error-fg); }
.session-status-icon.paused   { background: var(--session-paused-bg);   color: var(--session-paused-fg); }
.session-status-icon.unknown  { background: rgba(148,163,184,0.1); color: var(--text-3); }

/* Informações principais */
.session-info { min-width: 0; }
.session-path {
    font-family:   'JetBrains Mono', monospace;
    font-size:     11px;
    font-weight:   600;
    color:         var(--text-1);
    white-space:   nowrap;
    overflow:      hidden;
    text-overflow: ellipsis;
    margin-bottom: 3px;
}
.session-meta {
    font-size:   9px;
    color:       var(--text-3);
    display:     flex;
    gap:         10px;
    flex-wrap:   wrap;
}
.session-meta span { display: flex; align-items: center; gap: 4px; }
.session-meta i    { font-size: 8px; }

/* Badge de status textual */
.session-badge {
    font-size:      8px;
    font-weight:    700;
    padding:        3px 7px;
    border-radius:  10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space:    nowrap;
    flex-shrink:    0;
}
.session-badge.running  { background: var(--session-running-bg);  color: var(--session-running-fg); }
.session-badge.finished { background: var(--session-finished-bg); color: var(--session-finished-fg); }
.session-badge.stopped  { background: var(--session-stopped-bg);  color: var(--session-stopped-fg); }
.session-badge.error    { background: var(--session-error-bg);    color: var(--session-error-fg); }
.session-badge.paused   { background: var(--session-paused-bg);   color: var(--session-paused-fg); }
.session-badge.unknown  { background: rgba(148,163,184,0.1); color: var(--text-3); }

/* Botão de carregar sessão */
.btn-load-session {
    padding:       6px 12px;
    border-radius: 6px;
    border:        1px solid var(--border);
    background:    var(--bg-surface);
    color:         var(--text-2);
    font-size:     10px;
    font-weight:   600;
    cursor:        pointer;
    transition:    all 0.2s ease;
    white-space:   nowrap;
    flex-shrink:   0;
    display:       flex;
    align-items:   center;
    gap:           5px;
}
.btn-load-session:hover:not(:disabled) {
    border-color: var(--accent);
    color:        var(--accent);
    background:   var(--accent-d2);
}
.btn-load-session:disabled { opacity: 0.35; cursor: not-allowed; }

/* ── Estado vazio ────────────────────────────────────────────── */
.sessions-empty {
    text-align:  center;
    padding:     40px 20px;
    color:       var(--text-3);
    font-size:   12px;
}
.sessions-empty i {
    display:       block;
    font-size:     28px;
    margin-bottom: 10px;
    opacity:       0.4;
}

/* ── Estado de carregamento ──────────────────────────────────── */
.sessions-loading {
    text-align:  center;
    padding:     24px;
    color:       var(--text-3);
    font-size:   11px;
    display:     flex;
    align-items: center;
    justify-content: center;
    gap:         8px;
}
.sessions-loading i { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
