.dashboard-page{display:grid;grid-gap:24px;gap:24px}.dashboard-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dashboard-hero h2,.dashboard-section h3{margin:4px 0 0;font-size:28px;color:var(--text)}.dashboard-section h3{font-size:20px}.hero-badge{padding:8px 14px;border-radius:999px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--border)}.hero-badge-online{background:rgba(37,211,102,.1);color:var(--accent);border-color:rgba(37,211,102,.22)}.hero-badge-offline{background:rgba(148,163,184,.12);color:var(--muted)}.stat-card{display:grid;grid-gap:8px;gap:8px;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-chip{padding:4px 8px;border-radius:999px;background:var(--panel-soft);border:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.stat-number{font-size:36px;font-weight:700;margin:0}.stat-breakdown{display:flex;gap:6px;flex-wrap:wrap}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;background:var(--panel-soft);border:1px solid var(--border);color:var(--muted)}.badge-green{background:rgba(46,204,113,.15);border-color:rgba(46,204,113,.4);color:#2ecc71}.badge-yellow{background:rgba(241,196,15,.15);border-color:rgba(241,196,15,.4);color:#f1c40f}.badge-red{background:rgba(231,76,60,.15);border-color:rgba(231,76,60,.4);color:#e74c3c}.bar-chart{display:flex;align-items:flex-end;gap:4px;height:180px;padding-top:20px;overflow-x:auto}.dashboard-section{display:grid;grid-gap:18px;gap:18px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}.ghost-link{display:inline-flex;align-items:center;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel-soft);color:var(--text);font-size:13px;font-weight:600}.ghost-link:hover{text-decoration:none;border-color:rgba(37,211,102,.26);color:var(--accent)}.bar-item{display:flex;flex-direction:column;align-items:center;min-width:30px;flex:1 1;height:100%;justify-content:flex-end;gap:4px}.bar-fill{width:100%;max-width:40px;background:linear-gradient(to top,var(--accent),rgba(37,211,102,.18));border-radius:4px 4px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:4px;transition:height .3s ease}.bar-value{font-size:10px;color:var(--text);font-weight:700}.bar-label{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}.session-status-list{display:grid;grid-gap:0;gap:0}.session-table-head{padding:0 0 12px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.session-status-row,.session-table-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(120px,.8fr) minmax(120px,.9fr);grid-gap:12px;gap:12px}.session-status-row{align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.session-name-block{display:grid;grid-gap:2px;gap:2px;min-width:0}.session-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-id{font-size:12px}.session-status-pill-wrap{display:inline-flex;align-items:center;gap:8px}.status-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--panel-soft);color:var(--muted)}.status-pill-ready{background:rgba(37,211,102,.1);color:var(--accent)}.status-pill-disconnected,.status-pill-failed{background:rgba(239,68,68,.1);color:#ef4444}.status-pill-authenticating,.status-pill-created,.status-pill-initializing,.status-pill-qr_ready{background:rgba(245,158,11,.12);color:#d97706}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.status-dot.status-ready{background:#2ecc71}.status-dot.status-disconnected{background:#e74c3c}.status-dot.status-authenticating,.status-dot.status-initializing,.status-dot.status-qr_ready{background:#f1c40f}.status-dot.status-created{background:#6c5ce7}.status-dot.status-failed{background:#c0392b}.infra-summary{display:grid;grid-gap:10px;gap:10px}.infra-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.api-key-banner{border-color:rgba(241,196,15,.4)}@media (max-width:900px){.dashboard-hero,.section-head{flex-direction:column}.session-table-head{display:none}.session-status-row{grid-template-columns:1fr}}