/* ============================================================
   Seven Star Wellness - Application Styles (auth, dashboard,
   checkout, invoice, admin)
   With Comprehensive Light & Dark Mode High-Contrast Rules
   ============================================================ */

/* ---------- Auth Pages (High-Contrast Dual-Mode Styling) ---------- */
.auth-body {
    background: linear-gradient(135deg, #150327 0%, #3b0e64 50%, #150327 100%);
    min-height: 100vh;
    font-family: 'Poppins', sans-serif;
    transition: background 0.3s ease;
}

[data-theme="light"] .auth-body {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 50%, #f1f5f9 100%);
}

.auth-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
    position: relative;
    z-index: 1;
}

.auth-card {
    background: rgba(36, 8, 64, 0.88) !important;
    backdrop-filter: blur(20px);
    border-radius: 24px;
    padding: 40px 32px;
    width: 100%;
    max-width: 460px;
    color: #f8fafc !important;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
}

.auth-card h4, .auth-card h3, .auth-card h5 {
    color: #ffffff !important;
    font-weight: 700;
}

.auth-card .form-label, .auth-card label {
    color: #ffffff !important;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 6px;
}

.auth-card .text-muted {
    color: #cbd5e1 !important;
}

.auth-card .form-control {
    background-color: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
    border-radius: 12px;
    padding: 10px 14px;
    font-size: 0.95rem;
}

.auth-card .form-control:focus {
    background-color: rgba(255, 255, 255, 0.12) !important;
    border-color: #00FFFF !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 0.25rem rgba(0, 255, 255, 0.25) !important;
}

.auth-card .input-group .btn {
    border-color: rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.08) !important;
}

.auth-card .btn-gradient {
    background: linear-gradient(135deg, #00FFFF 0%, #38bdf8 100%) !important;
    color: #110220 !important;
    border: none !important;
    border-radius: 12px;
    font-weight: 700 !important;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    box-shadow: 0 6px 20px rgba(0, 255, 255, 0.3);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.auth-card .btn-gradient:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 255, 255, 0.45);
}

.auth-card a.text-muted, .auth-card .text-muted a {
    color: #cbd5e1 !important;
    transition: color 0.2s ease;
}

.auth-card a.text-muted:hover, .auth-card .text-muted a:hover {
    color: #00FFFF !important;
}

/* Light Theme Auth Card Overrides */
[data-theme="light"] .auth-card {
    background: #ffffff !important;
    color: #0f172a !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.12);
}

[data-theme="light"] .auth-card h4, [data-theme="light"] .auth-card h3, [data-theme="light"] .auth-card h5 {
    color: #0f172a !important;
}

[data-theme="light"] .auth-card .form-label, [data-theme="light"] .auth-card label {
    color: #1e293b !important;
}

[data-theme="light"] .auth-card .text-muted {
    color: #64748b !important;
}

[data-theme="light"] .auth-card .form-control {
    background-color: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

[data-theme="light"] .auth-card .form-control:focus {
    background-color: #ffffff !important;
    border-color: #6d28d9 !important;
    color: #0f172a !important;
    box-shadow: 0 0 0 0.25rem rgba(109, 40, 217, 0.2) !important;
}

[data-theme="light"] .auth-card .input-group .btn {
    border-color: #cbd5e1 !important;
    color: #64748b !important;
    background: #f8fafc !important;
}

[data-theme="light"] .auth-card .btn-gradient {
    background: linear-gradient(135deg, #7B2CBF 0%, #9d4edd 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 6px 20px rgba(123, 44, 191, 0.35);
}

[data-theme="light"] .auth-card .btn-gradient:hover {
    box-shadow: 0 8px 25px rgba(123, 44, 191, 0.5);
}

[data-theme="light"] .auth-card a.text-muted, [data-theme="light"] .auth-card .text-muted a {
    color: #64748b !important;
}

[data-theme="light"] .auth-card a.text-muted:hover, [data-theme="light"] .auth-card .text-muted a:hover {
    color: #6d28d9 !important;
}

/* ---------- Dashboard body ---------- */
.dashboard-body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
}

.dashboard-body .navbar {
    position: sticky;
    top: 0;
    z-index: 1030;
}

.account-shell {
    min-height: 80vh;
}

/* Sidebar */
.account-sidebar, .admin-sidebar {
    background: linear-gradient(180deg, #240840 0%, #441078 100%) !important;
    color: #ffffff !important;
}

.admin-sidebar .brand-area, .account-sidebar .brand-area {
    padding: 20px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.admin-sidebar .brand-area h6,
.account-sidebar .brand-area h6,
.admin-sidebar h1, .admin-sidebar h2, .admin-sidebar h3, .admin-sidebar h4, .admin-sidebar h5, .admin-sidebar h6,
.account-sidebar h1, .account-sidebar h2, .account-sidebar h3, .account-sidebar h4, .account-sidebar h5, .account-sidebar h6,
.account-sidebar-head h6,
.admin-sidebar .brand-area .text-white,
.account-sidebar .brand-area .text-white {
    color: #ffffff !important;
    font-weight: 700 !important;
}

.account-sidebar-head {
    padding: 24px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.account-sidebar-head p,
.account-sidebar-head small {
    color: rgba(255, 255, 255, 0.78) !important;
}

.avatar-circle {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    border: 2px solid rgba(255, 255, 255, 0.7);
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.user-avatar-badge {
    background: rgba(123, 44, 191, 0.35) !important;
    color: #00ffff !important;
    border: 1px solid rgba(0, 255, 255, 0.3) !important;
}

[data-theme="light"] .user-avatar-badge {
    background: #ede9fe !important;
    color: #6d28d9 !important;
    border: 1px solid #ddd6fe !important;
}

/* Remove list bullets from sidebar nav */
.account-nav, .admin-nav,
ul.account-nav, ul.admin-nav {
    list-style: none !important;
    list-style-type: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.account-nav li, .admin-nav li {
    list-style: none !important;
    list-style-type: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.account-nav li a, .admin-nav li a, .admin-nav a {
    display: flex;
    align-items: center;
    padding: 11px 18px;
    color: rgba(255, 255, 255, 0.88) !important;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 0.92rem;
    border-left: 3px solid transparent;
    transition: all 0.2s ease;
}

.account-nav li a i, .admin-nav li a i, .admin-nav a i {
    width: 22px;
    margin-right: 10px;
    text-align: center;
}

.account-nav li a:hover, .admin-nav a:hover, .admin-nav li a:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #00ffff !important;
}

.account-nav li a.active, .admin-nav a.active, .admin-nav li a.active {
    background: rgba(255, 255, 255, 0.18) !important;
    color: #00FFFF !important;
    border-left-color: #00FFFF !important;
}

/* Dashboard stat cards */
.dash-stat-card, .admin-stat-card {
    background-color: var(--bg-card) !important;
    border-radius: 14px;
    border: 1px solid var(--card-border) !important;
    box-shadow: var(--shadow-card);
    color: var(--text-primary) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

[data-theme="light"] .dash-stat-card,
[data-theme="light"] .admin-stat-card {
    background-color: #ffffff !important;
    border-color: #e2e8f0 !important;
    color: #0f172a !important;
}

.dash-stat-card h3, .dash-stat-card h4, .dash-stat-card h5,
.admin-stat-card h3, .admin-stat-card h4, .admin-stat-card h5 {
    color: var(--text-heading) !important;
    font-weight: 700;
}

[data-theme="light"] .dash-stat-card h3, [data-theme="light"] .dash-stat-card h4, [data-theme="light"] .dash-stat-card h5,
[data-theme="light"] .admin-stat-card h3, [data-theme="light"] .admin-stat-card h4, [data-theme="light"] .admin-stat-card h5 {
    color: #0f172a !important;
}

[data-theme="dark"] .dash-stat-card h3, [data-theme="dark"] .dash-stat-card h4, [data-theme="dark"] .dash-stat-card h5,
[data-theme="dark"] .admin-stat-card h3, [data-theme="dark"] .admin-stat-card h4, [data-theme="dark"] .admin-stat-card h5 {
    color: #ffffff !important;
}

[data-theme="light"] .dash-stat-card p, [data-theme="light"] .admin-stat-card p {
    color: #64748b !important;
}

[data-theme="dark"] .dash-stat-card p, [data-theme="dark"] .admin-stat-card p {
    color: #cbd5e1 !important;
}

.dash-stat-icon, .admin-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

/* Delivery timeline */
.delivery-timeline {
    position: relative;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

.delivery-timeline::before {
    content: '';
    position: absolute;
    top: 14px;
    left: 8%;
    right: 8%;
    height: 2px;
    background: #475569;
}

[data-theme="light"] .delivery-timeline::before {
    background: #e2e8f0;
}

.timeline-step {
    flex: 1;
    position: relative;
    z-index: 1;
}

.timeline-dot {
    width: 28px;
    height: 28px;
    background: rgba(255, 255, 255, 0.15);
    color: var(--text-muted);
    font-size: 0.75rem;
}

.timeline-step.done .timeline-dot {
    background: #7B2CBF;
    color: #fff;
}

.timeline-step.done small {
    color: var(--accent-cyan);
}

/* ---------- Checkout payment options ---------- */
.payment-option input {
    display: none;
}

.payment-option .payment-box {
    border: 2px solid var(--card-border);
    background-color: var(--bg-card);
    color: var(--text-primary);
    cursor: pointer;
    transition: all 0.2s ease;
    display: block;
}

[data-theme="light"] .payment-option .payment-box {
    background-color: #ffffff;
    border-color: #cbd5e1;
    color: #0f172a;
}

.payment-option input:checked + .payment-box {
    border-color: #a855f7;
    background-color: rgba(168, 85, 247, 0.15);
    box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.25);
}

/* ---------- Invoice sheet ---------- */
.invoice-sheet {
    background-color: var(--bg-card);
    border: 1px solid var(--card-border);
    color: var(--text-primary);
}

[data-theme="light"] .invoice-sheet {
    background-color: #ffffff;
    border-color: #e2e8f0;
    color: #0f172a;
}

.invoice-table thead th {
    background: #300D4F !important;
    color: #fff !important;
    border-color: #300D4F !important;
}

/* ---------- Admin & Dashboard Layout & Smooth Scrolling ---------- */
body.admin-body, body.dashboard-body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: auto !important;
}

.admin-layout-wrapper {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

.admin-sidebar, .account-sidebar {
    background: linear-gradient(180deg, #240840 0%, #441078 100%);
    width: 250px;
    flex-shrink: 0;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    z-index: 1030;
}

.admin-main-wrap {
    flex-grow: 1;
    min-width: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: visible;
}

.admin-topbar {
    background-color: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--card-border);
    position: sticky;
    top: 0;
    z-index: 1020;
}

[data-theme="light"] .admin-topbar {
    background-color: #ffffff !important;
    border-color: #e2e8f0;
}

.admin-topbar h5 {
    color: var(--text-heading) !important;
}

.admin-card {
    background-color: var(--bg-card) !important;
    border-radius: 16px;
    border: 1px solid var(--card-border) !important;
    box-shadow: var(--shadow-card);
    color: var(--text-primary) !important;
}

[data-theme="light"] .admin-card {
    background-color: #ffffff !important;
    border-color: #e2e8f0 !important;
    color: #0f172a !important;
}

.admin-card h4, .admin-card h5, .admin-card h6 {
    color: var(--text-heading) !important;
}

/* ---------- Forms & Inputs High-Contrast Styling ---------- */
.form-label, label {
    color: var(--text-primary) !important;
    font-weight: 500;
}

.form-control, .form-select, textarea {
    background-color: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-color) !important;
    border-radius: 10px;
}

.form-control:focus, .form-select:focus, textarea:focus {
    background-color: var(--input-bg) !important;
    border-color: var(--accent-purple) !important;
    color: var(--input-color) !important;
    box-shadow: 0 0 0 0.25rem rgba(168, 85, 247, 0.25) !important;
}

[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] textarea::placeholder {
    color: rgba(255, 255, 255, 0.45) !important;
}

[data-theme="light"] .form-control::placeholder,
[data-theme="light"] textarea::placeholder {
    color: #94a3b8 !important;
}

.input-group-text {
    background-color: var(--badge-neutral) !important;
    border-color: var(--input-border) !important;
    color: var(--text-primary) !important;
}

/* ---------- Tables High-Contrast Styling (Both Themes) ---------- */
table, .table {
    --bs-table-bg: transparent !important;
    --bs-table-color: inherit !important;
    --bs-table-border-color: var(--card-border) !important;
    color: var(--text-primary) !important;
    border-color: var(--card-border) !important;
    background-color: transparent !important;
}

.table > :not(caption) > * > * {
    background-color: transparent !important;
    box-shadow: none !important;
    border-color: var(--card-border) !important;
    color: inherit !important;
    padding: 0.75rem 0.75rem;
}

/* Dark theme table headers & cells */
[data-theme="dark"] .table {
    --bs-table-bg: transparent !important;
    --bs-table-color: #f8fafc !important;
    color: #f8fafc !important;
}

[data-theme="dark"] .table > :not(caption) > * > * {
    background-color: transparent !important;
    box-shadow: none !important;
    color: #f8fafc !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] thead.table-light,
[data-theme="dark"] thead th,
[data-theme="dark"] .table thead th,
[data-theme="dark"] .table thead tr,
[data-theme="dark"] .table-light {
    background-color: #310d57 !important;
    color: #00ffff !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
    font-weight: 700 !important;
}

[data-theme="dark"] thead.table-light th,
[data-theme="dark"] .table thead th {
    color: #00ffff !important;
}

[data-theme="dark"] .table tbody tr td,
[data-theme="dark"] .table tbody tr th {
    background-color: transparent !important;
    color: #f8fafc !important;
}

[data-theme="dark"] .table tbody tr td .text-muted,
[data-theme="dark"] .table tbody tr td small,
[data-theme="dark"] .table tbody tr td span.text-muted {
    color: #cbd5e1 !important;
}

[data-theme="dark"] .table tbody tr td .fw-semibold,
[data-theme="dark"] .table tbody tr td strong,
[data-theme="dark"] .table tbody tr td span.fw-semibold {
    color: #ffffff !important;
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(255, 255, 255, 0.03) !important;
    box-shadow: none !important;
    color: #f8fafc !important;
}

[data-theme="dark"] .table-hover > tbody > tr:hover > * {
    background-color: rgba(255, 255, 255, 0.07) !important;
    box-shadow: none !important;
    color: #ffffff !important;
}

[data-theme="dark"] tbody tr td a.text-dark {
    color: #38bdf8 !important;
}

[data-theme="dark"] tbody tr td a.text-dark:hover {
    color: #00ffff !important;
}

/* Light theme table headers & cells */
[data-theme="light"] .table {
    --bs-table-bg: transparent !important;
    --bs-table-color: #0f172a !important;
    color: #0f172a !important;
}

[data-theme="light"] .table > :not(caption) > * > * {
    background-color: transparent !important;
    box-shadow: none !important;
    color: #1e293b !important;
    border-color: #e2e8f0 !important;
}

[data-theme="light"] thead.table-light,
[data-theme="light"] thead th,
[data-theme="light"] .table thead th,
[data-theme="light"] .table thead tr,
[data-theme="light"] .table-light {
    background-color: #f1f5f9 !important;
    color: #0f172a !important;
    border-color: #e2e8f0 !important;
    font-weight: 700 !important;
}

[data-theme="light"] thead.table-light th,
[data-theme="light"] .table thead th {
    color: #0f172a !important;
}

[data-theme="light"] .table tbody tr td,
[data-theme="light"] .table tbody tr th {
    background-color: transparent !important;
    color: #1e293b !important;
}

[data-theme="light"] .table tbody tr td .text-muted,
[data-theme="light"] .table tbody tr td small {
    color: #64748b !important;
}

[data-theme="light"] .table tbody tr td .fw-semibold,
[data-theme="light"] .table tbody tr td strong {
    color: #0f172a !important;
}

[data-theme="light"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #f8fafc !important;
    box-shadow: none !important;
    color: #1e293b !important;
}

[data-theme="light"] .table-hover > tbody > tr:hover > * {
    background-color: #f1f5f9 !important;
    box-shadow: none !important;
    color: #0f172a !important;
}

/* ---------- Subtles, Badges & Alerts ---------- */
[data-theme="dark"] .bg-primary-subtle {
    background-color: rgba(123, 44, 191, 0.3) !important;
    color: #d8b4fe !important;
}

[data-theme="dark"] .bg-secondary-subtle {
    background-color: rgba(255, 255, 255, 0.15) !important;
    color: #f1f5f9 !important;
}

[data-theme="dark"] .bg-success-subtle {
    background-color: rgba(16, 185, 129, 0.25) !important;
    color: #6ee7b7 !important;
}

[data-theme="dark"] .bg-warning-subtle {
    background-color: rgba(245, 158, 11, 0.25) !important;
    color: #fde047 !important;
}

[data-theme="dark"] .bg-info-subtle {
    background-color: rgba(6, 182, 212, 0.25) !important;
    color: #67e8f9 !important;
}

[data-theme="dark"] .bg-danger-subtle {
    background-color: rgba(239, 68, 68, 0.25) !important;
    color: #fca5a5 !important;
}

[data-theme="light"] .bg-primary-subtle {
    background-color: #ede9fe !important;
    color: #5b21b6 !important;
}

[data-theme="light"] .bg-secondary-subtle {
    background-color: #f1f5f9 !important;
    color: #475569 !important;
}

[data-theme="light"] .bg-success-subtle {
    background-color: #d1fae5 !important;
    color: #065f46 !important;
}

[data-theme="light"] .bg-warning-subtle {
    background-color: #fef3c7 !important;
    color: #92400e !important;
}

[data-theme="light"] .bg-info-subtle {
    background-color: #cffafe !important;
    color: #155e75 !important;
}

[data-theme="light"] .bg-danger-subtle {
    background-color: #fee2e2 !important;
    color: #991b1b !important;
}

/* Modals & Dropdowns */
[data-theme="dark"] .modal-content {
    background-color: #240840 !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer {
    border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .dropdown-menu {
    background-color: #280b49 !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
}

[data-theme="dark"] .dropdown-item {
    color: #f8fafc !important;
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: rgba(255, 255, 255, 0.12) !important;
    color: #00ffff !important;
}

[data-theme="dark"] .dropdown-divider {
    border-color: rgba(255, 255, 255, 0.12) !important;
}

/* Misc */
.cart-badge {
    position: absolute;
    top: -6px;
    right: -10px;
}

.text-truncate-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---------- Print ---------- */
@media print {
    .navbar,
    .admin-sidebar,
    .admin-topbar,
    .account-shell .col-lg-3,
    .print-hide,
    footer,
    .season-particles-container {
        display: none !important;
    }

    main.p-4 {
        padding: 0 !important;
    }

    .account-shell .col-lg-9 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    body.dashboard-body, body.admin-body {
        background: #fff !important;
        color: #000 !important;
    }

    .invoice-sheet {
        box-shadow: none !important;
        border: none !important;
    }
}
