/* =============================================================
 * SynthRadio — Artist + Admin Dashboards
 * ============================================================= */

.dashboard-layout {
    display: grid;
    grid-template-columns: var(--sr-sidebar-w) 1fr;
    gap: var(--sr-space-6);
    align-items: flex-start;
}

/* ============ SIDEBAR ============ */
.dashboard-sidebar {
    position: sticky;
    top: calc(var(--sr-header-h) + var(--sr-space-4));
    background: linear-gradient(180deg, var(--sr-panel), var(--sr-dark));
    border: 1px solid var(--sr-border);
    border-radius: var(--sr-radius-lg);
    box-shadow: var(--sr-shadow-panel);
    padding: var(--sr-space-5) var(--sr-space-4);
    overflow: hidden;
}

.dash-user {
    display: flex;
    align-items: center;
    gap: var(--sr-space-3);
    padding: var(--sr-space-3) var(--sr-space-2) var(--sr-space-5);
    border-bottom: 1px solid var(--sr-border);
    margin-bottom: var(--sr-space-3);
}
.dash-user-avatar {
    width: 44px; height: 44px;
    border-radius: var(--sr-radius);
}
.dash-user-name {
    font-size: var(--sr-fs-sm);
    font-weight: 700;
    color: var(--sr-text);
}
.dash-user-role {
    font-size: var(--sr-fs-xs);
    color: var(--sr-muted);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
}

.dash-nav {
    list-style: none;
    display: grid;
    gap: var(--sr-space-1);
}
.dash-nav a {
    display: flex;
    align-items: center;
    gap: var(--sr-space-3);
    padding: var(--sr-space-3) var(--sr-space-4);
    border-radius: var(--sr-radius);
    color: var(--sr-muted);
    font-size: var(--sr-fs-sm);
    font-weight: 600;
    letter-spacing: 0.01em;
    border: 1px solid transparent;
    transition: all var(--sr-transition);
    position: relative;
}
.dash-nav a .dash-icon {
    width: 18px;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--sr-electric);
}
.dash-nav a:hover {
    color: var(--sr-text);
    background: rgba(0, 172, 255, 0.06);
    border-color: var(--sr-border);
}
.dash-nav a.is-active {
    color: var(--sr-text);
    background: linear-gradient(90deg, rgba(0,172,255,0.14), rgba(0,172,255,0.02));
    border-color: var(--sr-border-strong);
    box-shadow: inset 0 0 0 1px rgba(0,172,255,0.06);
}
.dash-nav a.is-active::before {
    content: "";
    position: absolute;
    left: -1px; top: 10%; bottom: 10%;
    width: 3px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--sr-cyan), var(--sr-crimson));
    box-shadow: 0 0 10px rgba(0,172,255,0.6);
}

.dash-nav-section-label {
    font-size: var(--sr-fs-xs);
    letter-spacing: 0.16em;
    color: var(--sr-text-dim);
    text-transform: uppercase;
    padding: var(--sr-space-4) var(--sr-space-4) var(--sr-space-2);
    font-weight: 700;
}

.dash-logout {
    margin-top: var(--sr-space-5);
    padding-top: var(--sr-space-4);
    border-top: 1px solid var(--sr-border);
}
.dash-logout a {
    display: flex;
    align-items: center;
    gap: var(--sr-space-3);
    padding: var(--sr-space-3) var(--sr-space-4);
    border-radius: var(--sr-radius);
    color: var(--sr-danger);
    font-weight: 700;
    font-size: var(--sr-fs-sm);
    border: 1px solid transparent;
    transition: all var(--sr-transition);
}
.dash-logout a:hover {
    background: rgba(255, 77, 109, 0.08);
    border-color: rgba(255, 77, 109, 0.25);
}

/* ============ CONTENT ============ */
.dashboard-content {
    min-width: 0;
    display: grid;
    gap: var(--sr-space-6);
}

.page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--sr-space-5);
    flex-wrap: wrap;
}
.page-head h1 { font-size: var(--sr-fs-xl); }
.page-head .page-subtitle {
    color: var(--sr-muted);
    font-size: var(--sr-fs-sm);
    margin-top: var(--sr-space-1);
}

/* Quick action bar */
.page-actions {
    display: flex;
    align-items: center;
    gap: var(--sr-space-2);
    flex-wrap: wrap;
}

/* Section */
.dash-section {
    display: grid;
    gap: var(--sr-space-4);
}
.dash-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sr-space-4);
    margin-bottom: var(--sr-space-2);
}
.dash-section-title h2 {
    font-size: var(--sr-fs-md);
    letter-spacing: 0.01em;
}

/* Toolbar (search + filters) */
.toolbar {
    display: flex;
    align-items: center;
    gap: var(--sr-space-3);
    flex-wrap: wrap;
    padding: var(--sr-space-4);
    background: var(--sr-panel);
    border: 1px solid var(--sr-border);
    border-radius: var(--sr-radius);
}
.toolbar .search-wrap {
    position: relative;
    flex: 1;
    min-width: 240px;
}
.toolbar .search-wrap input {
    width: 100%;
    padding: var(--sr-space-3) var(--sr-space-4) var(--sr-space-3) 40px;
    font-size: var(--sr-fs-sm);
    background: var(--sr-panel-2);
    border: 1px solid var(--sr-border);
    border-radius: var(--sr-radius);
    color: var(--sr-text);
}
.toolbar .search-wrap input:focus {
    border-color: var(--sr-electric);
    box-shadow: 0 0 0 3px rgba(0, 172, 255, 0.15);
    outline: none;
}
.toolbar .search-wrap::before {
    content: "🔍";
    position: absolute;
    top: 50%;
    left: var(--sr-space-3);
    transform: translateY(-50%);
    font-size: 13px;
    opacity: 0.6;
}

/* Data table wrap (for scrollable) */
.data-table-wrap {
    background: linear-gradient(180deg, var(--sr-panel), rgba(16,23,34,0.8));
    border: 1px solid var(--sr-border);
    border-radius: var(--sr-radius-lg);
    overflow: hidden;
    box-shadow: var(--sr-shadow-panel);
}
.data-table-wrap .table { border-radius: 0; }
.data-table-wrap .table thead th:first-child { padding-left: var(--sr-space-5); }
.data-table-wrap .table thead th:last-child  { padding-right: var(--sr-space-5); }
.data-table-wrap .table tbody td:first-child { padding-left: var(--sr-space-5); }
.data-table-wrap .table tbody td:last-child  { padding-right: var(--sr-space-5); }

/* Empty state */
.empty-state {
    padding: var(--sr-space-12) var(--sr-space-6);
    text-align: center;
    color: var(--sr-muted);
}
.empty-state-icon {
    width: 72px; height: 72px;
    border-radius: 50%;
    background: var(--sr-panel-2);
    border: 1px dashed var(--sr-border-strong);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    margin-bottom: var(--sr-space-4);
    color: var(--sr-electric);
}
.empty-state-title {
    font-size: var(--sr-fs-md);
    font-weight: 700;
    color: var(--sr-text);
    margin-bottom: var(--sr-space-2);
}
.empty-state-text {
    font-size: var(--sr-fs-sm);
    color: var(--sr-muted);
    line-height: var(--sr-lh-snug);
    max-width: 480px;
    margin: 0 auto var(--sr-space-5);
}

/* Profile editor */
.profile-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--sr-space-6);
    align-items: flex-start;
}
.profile-sidebar {
    display: grid;
    gap: var(--sr-space-4);
}
.profile-avatar-card {
    padding: var(--sr-space-5);
    display: grid;
    gap: var(--sr-space-4);
    justify-items: center;
    text-align: center;
}
.profile-avatar {
    width: 160px; height: 160px;
    border-radius: var(--sr-radius-lg);
    font-size: 48px;
}
.profile-avatar-hint {
    font-size: var(--sr-fs-xs);
    color: var(--sr-muted);
    font-family: var(--sr-font-mono);
}

.profile-stat-row {
    display: flex;
    justify-content: space-between;
    gap: var(--sr-space-4);
    padding: var(--sr-space-3) 0;
    border-bottom: 1px solid var(--sr-border);
    font-size: var(--sr-fs-sm);
}
.profile-stat-row:last-child { border-bottom: none; }
.profile-stat-row .label { color: var(--sr-muted); }
.profile-stat-row .value { color: var(--sr-text); font-weight: 700; }

/* Songs list row */
.song-row-thumb {
    width: 52px; height: 52px;
    border-radius: var(--sr-radius-sm);
    font-size: var(--sr-fs-xs);
}
.song-row-title {
    font-weight: 700;
    color: var(--sr-text);
    font-size: var(--sr-fs-base);
}
.song-row-artist {
    color: var(--sr-muted);
    font-size: var(--sr-fs-sm);
    margin-top: 2px;
}
.song-row-meta {
    display: inline-flex;
    align-items: center;
    gap: var(--sr-space-2);
    flex-wrap: wrap;
}

/* Admin: moderation card variant */
.mod-card {
    display: grid;
    grid-template-columns: 96px 1fr auto;
    gap: var(--sr-space-4);
    padding: var(--sr-space-5);
    align-items: center;
}
.mod-card + .mod-card { margin-top: var(--sr-space-3); }
.mod-thumb {
    width: 96px; height: 96px;
    border-radius: var(--sr-radius);
}
.mod-actions {
    display: flex;
    flex-direction: column;
    gap: var(--sr-space-2);
    align-items: stretch;
    min-width: 150px;
}

/* Rotation: category label */
.cat-label {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--sr-radius-sm);
    font-size: var(--sr-fs-xs);
    font-weight: 700;
    letter-spacing: 0.06em;
}
.cat-power  { background: rgba(255,77,109,0.1); color: #FB7185; border: 1px solid rgba(255,77,109,0.25); }
.cat-a      { background: rgba(0,172,255,0.1); color: var(--sr-cyan);    border: 1px solid rgba(0,172,255,0.25); }
.cat-b      { background: rgba(139,154,175,0.1); color: #CBD5E1;        border: 1px solid rgba(139,154,175,0.25); }
.cat-c      { background: rgba(46,204,113,0.08); color: #86EFAC;       border: 1px solid rgba(46,204,113,0.25); }
.cat-gold   { background: rgba(255,181,71,0.08); color: var(--sr-warning); border: 1px solid rgba(255,181,71,0.25); }

/* Settings sections */
.settings-group {
    padding: var(--sr-space-6);
    border: 1px solid var(--sr-border);
    border-radius: var(--sr-radius-lg);
    background: linear-gradient(180deg, rgba(16,23,34,0.7), rgba(11,15,21,0.5));
}
.settings-group-title {
    font-size: var(--sr-fs-md);
    font-weight: 800;
    color: var(--sr-text);
    margin-bottom: var(--sr-space-5);
    display: flex;
    align-items: center;
    gap: var(--sr-space-2);
}
.settings-group-title::before {
    content: "";
    width: 4px; height: 18px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--sr-cyan), var(--sr-crimson));
}

/* ========================================================
 * Additional Dashboard classes used by existing pages
 * (shared by Artist Portal inline-layout and Admin shell)
 * ====================================================== */

.page-dashboard {
    padding-top: calc(var(--sr-header-h) + var(--sr-space-6));
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: var(--sr-space-6);
    align-items: flex-start;
}

.dashboard-sidebar {
    position: sticky;
    top: calc(var(--sr-header-h) + var(--sr-space-4));
    padding: var(--sr-space-4);
    display: grid;
    gap: var(--sr-space-4);
}

.sidebar-brand {
    padding: var(--sr-space-4) var(--sr-space-2) var(--sr-space-3);
    border-bottom: 1px solid var(--sr-border);
    display: grid;
    gap: 2px;
}
.sb-synthverse {
    font-size: var(--sr-fs-xs);
    letter-spacing: 0.24em;
    color: var(--sr-muted);
    text-transform: uppercase;
    font-weight: 600;
}
.sb-radio {
    font-size: var(--sr-fs-base);
    letter-spacing: 0.12em;
    font-weight: 800;
    color: var(--sr-text);
    background: linear-gradient(90deg, var(--sr-cyan), var(--sr-blue) 50%, var(--sr-crimson));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.sb-admin {
    background: linear-gradient(90deg, var(--sr-warning), var(--sr-crimson));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.sidebar-nav {
    display: grid;
    gap: 2px;
}
.sidebar-nav .nav-item {
    display: flex;
    align-items: center;
    gap: var(--sr-space-3);
    padding: var(--sr-space-3) var(--sr-space-4);
    border-radius: var(--sr-radius);
    color: var(--sr-muted);
    font-size: var(--sr-fs-sm);
    font-weight: 600;
    letter-spacing: 0.01em;
    border: 1px solid transparent;
    transition: all var(--sr-transition);
    position: relative;
}
.sidebar-nav .nav-item-icon {
    width: 18px;
    text-align: center;
    flex-shrink: 0;
    color: var(--sr-electric);
}
.sidebar-nav .nav-item:hover {
    color: var(--sr-text);
    background: rgba(0, 172, 255, 0.06);
    border-color: var(--sr-border);
}
.sidebar-nav .nav-item.is-active {
    color: var(--sr-text);
    background: linear-gradient(90deg, rgba(0,172,255,0.16), rgba(0,172,255,0.02));
    border-color: var(--sr-border-strong);
    box-shadow: inset 0 0 0 1px rgba(0,172,255,0.06);
}
.sidebar-nav .nav-item.is-active::before {
    content: "";
    position: absolute;
    left: -1px; top: 12%; bottom: 12%;
    width: 3px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--sr-cyan), var(--sr-crimson));
    box-shadow: 0 0 10px rgba(0,172,255,0.6);
}

.sidebar-footer {
    margin-top: var(--sr-space-2);
    padding-top: var(--sr-space-4);
    border-top: 1px solid var(--sr-border);
    display: grid;
    gap: var(--sr-space-2);
}
.sidebar-footer .btn-block { width: 100%; justify-content: center; }

/* Dashboard main content area */
.dashboard-main {
    min-width: 0;
    display: grid;
    gap: var(--sr-space-6);
}
.dashboard-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--sr-space-5);
    flex-wrap: wrap;
    margin-bottom: var(--sr-space-2);
}
.dashboard-title {
    font-size: var(--sr-fs-xl);
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--sr-text);
    line-height: 1.2;
}
.dashboard-subtitle {
    color: var(--sr-muted);
    font-size: var(--sr-fs-sm);
    margin-top: var(--sr-space-1);
    line-height: var(--sr-lh-snug);
}
.dashboard-actions {
    display: flex;
    align-items: center;
    gap: var(--sr-space-3);
    flex-wrap: wrap;
}
.dashboard-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sr-space-6);
}

/* Stats grid variants */
.stats-grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1200px) { .stats-grid-6 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .stats-grid-6 { grid-template-columns: repeat(2, 1fr); } }

/* Form shell used by profile editors / settings */
.form-shell {
    padding: var(--sr-space-6);
}
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sr-space-5);
}
.form-grid .col-span-2 { grid-column: 1 / -1; }

.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.table-responsive .table { min-width: 640px; }

/* Counter pill */
.counter-pill {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: var(--sr-radius-round);
    background: rgba(0, 172, 255, 0.08);
    border: 1px solid var(--sr-border-strong);
    color: var(--sr-cyan);
    font-size: var(--sr-fs-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Status dots */
.status-dot {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 50%;
    margin-right: 6px;
    vertical-align: middle;
    box-shadow: 0 0 10px currentColor;
}
.status-green  { background: var(--sr-success); color: var(--sr-success); animation: live-dot-pulse 2.4s ease-out infinite; }
.status-red    { background: var(--sr-danger);  color: var(--sr-danger);  animation: live-dot-pulse 1.6s ease-out infinite; }
.status-amber  { background: var(--sr-warning); color: var(--sr-warning); }
.status-grey   { background: var(--sr-muted);   color: var(--sr-muted); }

/* Section header (inside glass cards) */
.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sr-space-4);
    margin-bottom: var(--sr-space-4);
    padding-bottom: var(--sr-space-3);
    border-bottom: 1px solid var(--sr-border);
}
.section-header h2 {
    font-size: var(--sr-fs-md);
    font-weight: 700;
    letter-spacing: 0.01em;
}

/* Empty-state inline variant (inside table cells) */
.empty-state.inline {
    padding: var(--sr-space-10) var(--sr-space-6);
    border-radius: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.empty-state.inline .empty-state-title {
    color: var(--sr-muted);
    font-size: var(--sr-fs-base);
}

/* Responsive dashboard grid */
@media (max-width: 1024px) {
    .dashboard-grid { grid-template-columns: 1fr; }
    .dashboard-sidebar { position: relative; top: 0; }
    .dashboard-two-col { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .form-grid { grid-template-columns: 1fr; }
    .dashboard-header { flex-direction: column; align-items: flex-start; }
    .dashboard-actions { width: 100%; }
    .dashboard-actions > * { flex: 1 1 auto; }
}
