/* App-level overrides on top of the reused theme CSS.
   Keep this minimal — the theme's custom.css is the source of truth for design. */

/* Safety net: if AOS fails to initialize, never leave content invisible. */
html:not(.aos-ready) [data-aos] {
    opacity: 1 !important;
    transform: none !important;
}

/* Router-driven active states reuse the theme's "active" look. */
.main-nav > li.active > a {
    color: #0e82fd;
}

/* Make plain card grids (used instead of jQuery carousels) breathe like sliders. */
.card-grid-gap > [class*="col-"] {
    margin-bottom: 24px;
}

/* Generic page top spacing so fixed header never overlaps content. */
.content {
    padding-top: 90px;
}

/* ============================================================
   Dashboard shared styles (client & coach panels)
   Kept global so nested route section-components stay lean and
   visually consistent without duplicating scoped CSS.
   ============================================================ */
.dashboard-page .content {
    padding: 110px 0 60px;
    background: #f7f9fc;
    min-height: 100vh;
}
.dash-card {
    border: none;
    border-radius: 14px;
    box-shadow: 0 6px 24px rgba(18, 38, 63, 0.05);
    margin-bottom: 24px;
    background: #fff;
}
.dash-card .card-body { padding: 22px; }

/* Profile card + sidebar menu */
.profile-card { text-align: center; }
.profile-avatar {
    width: 80px;
    height: 80px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: #0e82fd;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 600;
}
.profile-avatar.coach { background: #09c8a0; }
.dash-menu { list-style: none; margin: 0; padding: 0; }
.dash-menu li { margin-bottom: 2px; }
.dash-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border-radius: 9px;
    color: #4b5563;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.18s;
}
.dash-link i { font-size: 17px; width: 20px; text-align: center; }
.dash-link:hover { background: #f0f6ff; color: #0e82fd; }
.dash-link.router-link-exact-active,
.dash-link.active { background: #0e82fd; color: #fff; }
.dash-link .badge-count {
    margin-left: auto;
    background: #ffe1e1;
    color: #e23636;
    font-size: 11px;
    border-radius: 20px;
    padding: 1px 8px;
}
.dash-link.router-link-exact-active .badge-count { background: rgba(255,255,255,.25); color:#fff; }

/* Stat cards */
.stat-card { margin-bottom: 24px; }
.stat-icon {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}
.tint-blue { background: #e8f2ff; color: #0e82fd; }
.tint-green { background: #e4f9f1; color: #09c8a0; }
.tint-amber { background: #fff4e0; color: #f0a020; }
.tint-pink { background: #ffe9f0; color: #ec4899; }
.tint-purple { background: #efe9ff; color: #7c5cfc; }

/* Tables */
.dash-table { margin-bottom: 0; }
.dash-table th {
    font-weight: 600;
    color: #6b7280;
    border-top: none;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .3px;
}
.dash-table td { vertical-align: middle; }
.table-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
}

/* Section header within a panel */
.panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}
.panel-head h4 { margin: 0; font-weight: 600; }

/* Pill tabs */
.dash-tabs {
    display: inline-flex;
    background: #eef2f7;
    border-radius: 10px;
    padding: 4px;
    gap: 4px;
    flex-wrap: wrap;
}
.dash-tabs button {
    border: none;
    background: transparent;
    padding: 7px 16px;
    border-radius: 8px;
    font-weight: 500;
    color: #5b6472;
    cursor: pointer;
}
.dash-tabs button.active { background: #fff; color: #0e82fd; box-shadow: 0 2px 6px rgba(0,0,0,.06); }

/* Empty state */
.dash-empty { text-align: center; padding: 50px 20px; color: #9aa3af; }
.dash-empty i { font-size: 44px; display: block; margin-bottom: 12px; color: #cbd5e1; }

/* Ledger amounts */
.amt-credit { color: #16b364; font-weight: 600; }
.amt-debit  { color: #e23636; font-weight: 600; }
.amt-payout { color: #0e82fd; font-weight: 600; }

/* Availability grid */
.avail-day {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid #eef1f5;
    flex-wrap: wrap;
}
.avail-day:last-child { border-bottom: none; }
.avail-day .day-name { width: 110px; font-weight: 600; }
.slot-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #eef6ff;
    color: #0e82fd;
    border-radius: 8px;
    padding: 6px 10px;
    font-size: 13px;
    font-weight: 500;
}
.slot-chip button { border: none; background: none; color: #0e82fd; cursor: pointer; line-height: 1; }

/* Settings forms */
.form-section-title { font-weight: 600; margin-bottom: 16px; }
.upload-avatar {
    width: 96px; height: 96px; border-radius: 50%; object-fit: cover; border: 3px solid #fff;
    box-shadow: 0 4px 14px rgba(0,0,0,.1);
}
