@font-face {
    font-family: "IRYekan";
    src: url("/fonts/IRYekan.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
:root {
    --bg: #0d1117;
    --bg-soft: #111827;
    --card: rgba(255,255,255,.08);
    --card-border: rgba(255,255,255,.14);
    --text: #f8fafc;
    --muted: #94a3b8;
    --primary: #d9b86f;
    --primary-2: #f2d68a;
    --success: #36d399;
    --warning: #fbbf24;
    --danger: #fb7185;
    --info: #60a5fa;
    --shadow: 0 24px 70px rgba(0,0,0,.35);
    --radius: 26px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    font-family: "IRYekan", Tahoma, Arial, sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at top right, rgba(217,184,111,.18), transparent 34%),
        radial-gradient(circle at bottom left, rgba(96,165,250,.14), transparent 32%),
        linear-gradient(135deg, #0b0f17 0%, #121827 52%, #080b10 100%);
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.app-shell { display: grid; grid-template-columns: 292px minmax(0, 1fr); min-height: 100vh; }
.sidebar {
    position: sticky; top: 0; height: 100vh; padding: 24px 18px;
    background: rgba(4,8,15,.66); backdrop-filter: blur(20px);
    border-left: 1px solid var(--card-border); overflow-y: auto;
}
.brand { display: flex; gap: 12px; align-items: center; margin-bottom: 32px; }
.brand-mark {
    width: 48px; height: 48px; border-radius: 18px; display: grid; place-items: center;
    background: linear-gradient(135deg, var(--primary), #987942); color: #111; font-weight: 900;
    box-shadow: 0 12px 32px rgba(217,184,111,.24);
}
.brand strong { display: block; font-size: 18px; }
.brand small, .eyebrow, .nav-title, .compact-row span, .feature-card span, .meal-card small, .plan-card span { color: var(--muted); }
.nav-block { display: grid; gap: 8px; margin-bottom: 24px; }
.nav-title { font-size: 12px; padding: 8px 12px; }
.nav-block a {
    padding: 12px 14px; border-radius: 16px; color: #dbeafe;
    border: 1px solid transparent; transition: .18s ease;
}
.nav-block a:hover { background: rgba(255,255,255,.08); border-color: var(--card-border); transform: translateX(-2px); }
.main-content { padding: 26px; min-width: 0; }
.topbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 24px; }
.topbar h1 { margin: 4px 0 0; font-size: clamp(24px, 3vw, 38px); letter-spacing: -.5px; }
.eyebrow { margin: 0; font-size: 13px; }
.top-actions {
    display: flex; gap: 8px; align-items: center; padding: 10px 14px; border-radius: 999px;
    background: rgba(255,255,255,.07); border: 1px solid var(--card-border);
}
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 6px rgba(54,211,153,.11); }
.glass-card, .feature-card, .kpi-card {
    background: var(--card); border: 1px solid var(--card-border); border-radius: var(--radius);
    box-shadow: var(--shadow); backdrop-filter: blur(22px);
}
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) .8fr; gap: 18px; }
.hero-card { padding: 36px; min-height: 380px; display: flex; flex-direction: column; justify-content: center; }
.hero-card h2 { font-size: clamp(30px, 5vw, 58px); margin: 18px 0 12px; line-height: 1.25; }
.hero-card p { color: #cbd5e1; line-height: 2; max-width: 820px; }
.pill, .badge {
    display: inline-flex; align-items: center; width: fit-content; padding: 8px 12px; border-radius: 999px;
    background: rgba(217,184,111,.13); color: var(--primary-2); border: 1px solid rgba(217,184,111,.3); font-size: 12px;
}
.button-row, .quick-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.btn {
    border: 0; cursor: pointer; padding: 12px 18px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center;
    transition: .18s ease; min-height: 44px;
}
.btn:hover { transform: translateY(-2px); }
.btn.primary { background: linear-gradient(135deg, var(--primary-2), var(--primary)); color: #16130b; font-weight: 800; }
.btn.secondary { background: rgba(255,255,255,.08); border: 1px solid var(--card-border); color: var(--text); }
.stats-card { display: grid; gap: 12px; padding: 20px; align-content: center; }
.metric { padding: 22px; border-radius: 22px; background: rgba(255,255,255,.07); display: flex; justify-content: space-between; align-items: center; }
.metric strong { font-size: 34px; color: var(--primary-2); }
.feature-grid, .kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.feature-card, .kpi-card { padding: 20px; min-height: 118px; }
.feature-card b, .feature-card strong { display: block; font-size: 18px; margin-bottom: 10px; }
.feature-card span { line-height: 1.9; }
.kpi-card span { color: var(--muted); }
.kpi-card strong { display: block; font-size: 42px; margin-top: 10px; color: var(--primary-2); }
.welcome-card { display: flex; align-items: center; gap: 18px; padding: 22px; margin-bottom: 18px; }
.avatar { width: 82px; height: 82px; border-radius: 26px; object-fit: cover; border: 1px solid var(--card-border); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: 18px; margin-top: 18px; }
.panel-large, .section-card, .form-card, .chat-shell { padding: 22px; }
.section-head { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-bottom: 16px; }
.section-head h2, .section-head h3 { margin: 0; }
.section-head p { margin: 6px 0 0; color: var(--muted); }
.compact-row {
    display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 12px;
    padding: 12px; margin-bottom: 10px; border-radius: 18px; background: rgba(255,255,255,.055);
}
.compact-row.no-image { grid-template-columns: 1fr auto; }
.compact-row img, .tiny-avatar { width: 48px; height: 48px; border-radius: 16px; object-fit: cover; vertical-align: middle; margin-left: 8px; }
.compact-row b, .compact-row span { display: block; }
.compact-row em { font-style: normal; color: var(--primary-2); }
.alert-stack { display: grid; gap: 10px; margin-bottom: 18px; }
.alert-card { padding: 16px 18px; border-radius: 20px; border: 1px solid var(--card-border); background: rgba(255,255,255,.07); display: grid; gap: 6px; }
.alert-card.warning, .notification-item.warning { border-color: rgba(251,191,36,.35); background: rgba(251,191,36,.09); }
.alert-card.danger, .notification-item.danger { border-color: rgba(251,113,133,.35); background: rgba(251,113,133,.09); }
.alert-card.success, .notification-item.success { border-color: rgba(54,211,153,.35); background: rgba(54,211,153,.09); }
.notification-item { padding: 14px; border-radius: 18px; margin-bottom: 10px; background: rgba(255,255,255,.055); display: grid; gap: 6px; }
.notification-item span { color: var(--muted); }
.progress-card div:first-child { display: flex; justify-content: space-between; align-items: center; }
.bar { height: 9px; border-radius: 999px; overflow: hidden; background: rgba(255,255,255,.09); margin: 14px 0; }
.bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--primary), var(--info)); border-radius: inherit; }
.exercise-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.exercise-card { border-radius: 24px; overflow: hidden; background: rgba(255,255,255,.06); border: 1px solid var(--card-border); }
.exercise-card img { width: 100%; height: 210px; object-fit: cover; display: block; }
.exercise-body { padding: 16px; }
.exercise-body p { color: #cbd5e1; line-height: 1.9; }
.mini-stats { display: flex; flex-wrap: wrap; gap: 8px; }
.mini-stats span { padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.07); color: #dbeafe; font-size: 12px; }
.meal-list { display: grid; gap: 12px; }
.meal-card, .plan-card {
    display: flex; justify-content: space-between; gap: 14px; align-items: center;
    padding: 16px; border-radius: 20px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08);
}
.meal-card b, .meal-card span, .meal-card small, .plan-card b, .plan-card span { display: block; }
.meal-meta { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.meal-meta span, .meal-meta strong { padding: 7px 10px; border-radius: 999px; background: rgba(217,184,111,.11); color: var(--primary-2); }
.chat-shell { display: grid; min-height: 620px; grid-template-rows: 1fr auto; }
.chat-list { display: flex; flex-direction: column; gap: 10px; overflow-y: auto; padding: 8px; }
.chat-bubble { max-width: 72%; padding: 14px; border-radius: 20px; display: grid; gap: 5px; background: rgba(255,255,255,.08); }
.chat-bubble.coach { align-self: flex-start; border-bottom-right-radius: 6px; background: rgba(217,184,111,.13); }
.chat-bubble.athlete { align-self: flex-end; border-bottom-left-radius: 6px; background: rgba(96,165,250,.13); }
.chat-bubble small { color: var(--muted); }
.chat-input { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-top: 14px; }
input, select, textarea {
    width: 100%; border: 1px solid var(--card-border); background: rgba(255,255,255,.08); color: var(--text);
    border-radius: 16px; padding: 12px 14px; outline: none;
}
textarea { min-height: 118px; resize: vertical; }
select option { color: #111; }
.form-card { display: grid; gap: 12px; align-content: start; }
.form-card h2 { margin: 0 0 8px; }
.form-card label { color: #dbeafe; font-size: 13px; }
.table-wrap { overflow: auto; border-radius: 18px; border: 1px solid var(--card-border); }
table { width: 100%; border-collapse: collapse; min-width: 840px; }
th, td { padding: 14px; text-align: right; border-bottom: 1px solid rgba(255,255,255,.08); }
th { color: var(--primary-2); background: rgba(255,255,255,.05); }
tr:hover td { background: rgba(255,255,255,.035); }
@media (max-width: 1100px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { position: static; height: auto; }
    .hero-grid, .dashboard-grid { grid-template-columns: 1fr; }
    .feature-grid, .kpi-grid, .exercise-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px) {
    .main-content { padding: 16px; }
    .topbar, .meal-card, .plan-card { align-items: stretch; flex-direction: column; }
    .feature-grid, .kpi-grid, .exercise-grid { grid-template-columns: 1fr; }
    .hero-card { padding: 24px; min-height: auto; }
    .chat-bubble { max-width: 94%; }
}

.no-margin { margin-top: 0; }
.timeline-list { display: grid; gap: 16px; }
.day-card {
    padding: 18px; border-radius: 24px; background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09); margin-bottom: 14px;
}
.compact-exercise-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.small-card img { height: 140px; }
.small-card .exercise-body h3 { margin: 0 0 10px; font-size: 17px; }
.archive-row {
    display: grid; grid-template-columns: minmax(160px,.5fr) 100px 1fr; gap: 12px; align-items: center;
    padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.045); margin-top: 8px;
}
.archive-row small { color: var(--muted); line-height: 1.9; }
.empty-state { padding: 24px; border-radius: 22px; background: rgba(255,255,255,.055); color: var(--muted); text-align: center; }
.sticky-form { position: sticky; top: 20px; }
.two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; max-height: 220px; overflow: auto; padding-left: 4px; }
.check-card {
    display: flex !important; gap: 8px; align-items: center; padding: 10px; border-radius: 14px;
    background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); color: var(--text) !important;
}
.check-card input { width: auto; accent-color: #d9b86f; }
.rich-plan { margin-bottom: 12px; align-items: flex-start; }
.form-card input[type="date"] { direction: ltr; text-align: left; }
@media (max-width: 1100px) {
    .sticky-form { position: static; }
    .compact-exercise-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px) {
    .compact-exercise-grid, .two-col, .check-grid { grid-template-columns: 1fr; }
    .archive-row { grid-template-columns: 1fr; }
}

/* Attendance calendar */
.attendance-shell { display: grid; grid-template-columns: minmax(0, 1.35fr) 380px; gap: 18px; margin-bottom: 18px; align-items: start; }
.attendance-calendar-card { overflow: hidden; }
.calendar-head { align-items: flex-start; }
.calendar-filter { min-width: 240px; }
.calendar-toolbar {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    padding: 12px; border-radius: 20px; background: rgba(255,255,255,.055); margin-bottom: 12px;
}
.calendar-toolbar strong { color: var(--primary-2); font-size: 20px; }
.calendar-weekdays, .attendance-calendar { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 8px; }
.calendar-weekdays span {
    color: var(--muted); font-size: 12px; text-align: center; padding: 8px 4px;
}
.calendar-day {
    min-height: 112px; padding: 10px; border-radius: 20px; border: 1px solid rgba(255,255,255,.1);
    background: rgba(255,255,255,.045); color: var(--text); cursor: pointer; text-align: right;
    display: flex; flex-direction: column; justify-content: space-between; gap: 6px; transition: .18s ease;
}
.calendar-day:hover { transform: translateY(-3px); border-color: rgba(217,184,111,.45); background: rgba(217,184,111,.08); }
.calendar-day.selected { outline: 2px solid var(--primary); box-shadow: 0 0 0 8px rgba(217,184,111,.12); }
.calendar-day .day-number { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 13px; background: rgba(255,255,255,.08); font-weight: 800; }
.calendar-day b { font-size: 14px; }
.calendar-day small { color: var(--muted); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.calendar-day.muted-day { opacity: .38; }
.calendar-day.present, .attendance-record.present { border-color: rgba(54,211,153,.35); background: linear-gradient(180deg, rgba(54,211,153,.13), rgba(255,255,255,.045)); }
.calendar-day.absent, .attendance-record.absent { border-color: rgba(251,113,133,.35); background: linear-gradient(180deg, rgba(251,113,133,.13), rgba(255,255,255,.045)); }
.calendar-day.late, .attendance-record.late { border-color: rgba(251,191,36,.35); background: linear-gradient(180deg, rgba(251,191,36,.13), rgba(255,255,255,.045)); }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; color: var(--muted); }
.calendar-legend span { display: inline-flex; gap: 7px; align-items: center; padding: 8px 10px; border-radius: 999px; background: rgba(255,255,255,.055); }
.calendar-legend i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.calendar-legend i.present, .status-picker span.present { background: rgba(54,211,153,.16); color: var(--success); }
.calendar-legend i.absent, .status-picker span.absent { background: rgba(251,113,133,.16); color: var(--danger); }
.calendar-legend i.late, .status-picker span.late { background: rgba(251,191,36,.16); color: var(--warning); }
.calendar-legend i.empty { background: rgba(255,255,255,.18); }
.attendance-side .inner-form { display: grid; gap: 12px; }
.selected-date-preview { padding: 11px 12px; border-radius: 16px; background: rgba(217,184,111,.1); border: 1px solid rgba(217,184,111,.22); color: var(--primary-2); font-size: 13px; }
.status-picker { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.status-picker label { padding: 9px; border-radius: 16px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; }
.status-picker input { width: auto; accent-color: #d9b86f; }
.status-picker span { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 5px 8px; background: rgba(255,255,255,.08); }

/* Athlete Strava-like weekly chart */
.strava-card { margin-top: 18px; overflow: hidden; position: relative; }
.strava-card::before {
    content: ""; position: absolute; inset: auto -60px -90px auto; width: 240px; height: 240px; border-radius: 50%;
    background: radial-gradient(circle, rgba(252,76,2,.20), transparent 68%); pointer-events: none;
}
.attendance-score { display: grid; justify-items: end; gap: 4px; }
.attendance-score strong { font-size: 44px; line-height: 1; color: #fc4c02; }
.attendance-score span { color: var(--muted); font-size: 13px; }
.weekly-chart {
    min-height: 260px; display: grid; grid-template-columns: repeat(8, minmax(0,1fr)); gap: 12px;
    align-items: end; padding: 18px 8px 6px; border-radius: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
    border: 1px solid rgba(255,255,255,.08);
}
.week-column { display: grid; grid-template-rows: 1fr auto auto; gap: 8px; min-height: 220px; align-items: end; text-align: center; }
.week-bar-shell {
    height: 170px; border-radius: 999px; background: rgba(255,255,255,.08); display: flex; align-items: end; padding: 5px; overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.week-bar {
    width: 100%; min-height: 8px; border-radius: 999px;
    background: linear-gradient(180deg, #ff8a3d, #fc4c02 70%, #c93c00);
    box-shadow: 0 10px 24px rgba(252,76,2,.25);
}
.week-column b { color: var(--text); font-size: 16px; }
.week-column small { color: var(--muted); direction: ltr; }
.strava-summary { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-top: 12px; }
.strava-summary div { padding: 13px; border-radius: 18px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08); }
.strava-summary span, .strava-summary b { display: block; }
.strava-summary span { color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.strava-summary b { color: var(--primary-2); }

@media (max-width: 1100px) {
    .attendance-shell { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .calendar-weekdays, .attendance-calendar { gap: 5px; }
    .calendar-day { min-height: 86px; padding: 8px; border-radius: 16px; }
    .calendar-day small { display: none; }
    .status-picker, .strava-summary { grid-template-columns: 1fr; }
    .weekly-chart { gap: 7px; overflow-x: auto; grid-template-columns: repeat(8, 58px); }
}


/* Strava-inspired line chart for athlete attendance */
.strava-line-card {
    margin-top: 18px;
    background: linear-gradient(180deg, rgba(16,18,22,.96), rgba(12,14,18,.94));
    border-color: rgba(255,255,255,.10);
    overflow: hidden;
}
.strava-topline {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 22px;
}
.strava-topline h2 {
    margin: 8px 0 4px;
    font-size: clamp(34px, 5vw, 54px);
    letter-spacing: -1px;
    color: #f8fafc;
}
.strava-topline span, .strava-period-head p { color: rgba(255,255,255,.72); }
.ghost-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 18px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.20);
    background: rgba(255,255,255,.04);
    color: #f8fafc;
    transition: .18s ease;
    white-space: nowrap;
}
.ghost-button:hover { transform: translateY(-2px); border-color: rgba(252,76,2,.65); background: rgba(252,76,2,.10); }
.strava-period-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 12px;
}
.strava-period-head p { margin: 0 0 6px; font-size: 16px; }
.strava-period-head b { font-size: 26px; }
.presence-line-chart {
    position: relative;
    padding: 4px 72px 46px 0;
    min-height: 310px;
}
.presence-line-chart svg {
    width: 100%;
    height: 260px;
    display: block;
    overflow: visible;
}
.grid-line { stroke: rgba(255,255,255,.28); stroke-width: 2; }
.grid-line.muted { stroke: rgba(255,255,255,.18); }
.area-fill { fill: rgba(252,76,2,.28); }
.presence-line {
    fill: none;
    stroke: #fc4c02;
    stroke-width: 6;
    stroke-linejoin: round;
    stroke-linecap: round;
    filter: drop-shadow(0 8px 18px rgba(252,76,2,.22));
}
.presence-dot {
    fill: #111;
    stroke: #fc4c02;
    stroke-width: 5;
}
.presence-line-chart svg circle:last-child {
    fill: #fc4c02;
    stroke: rgba(252,76,2,.32);
    stroke-width: 18;
}
.chart-side-labels {
    position: absolute;
    inset: 0 0 46px auto;
    width: 64px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: rgba(255,255,255,.82);
    font-size: 18px;
    text-align: left;
    direction: rtl;
}
.chart-month-labels {
    position: absolute;
    left: 72px;
    right: 0;
    bottom: 8px;
    display: flex;
    justify-content: space-between;
    color: rgba(255,255,255,.82);
    letter-spacing: 2px;
    direction: ltr;
}
.strava-cta {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 64px;
    margin-top: 14px;
    border-radius: 999px;
    background: #fc4c02;
    color: #fff;
    font-weight: 900;
    font-size: 19px;
    box-shadow: 0 18px 34px rgba(252,76,2,.24);
}
.strava-cta:hover { transform: translateY(-2px); }

/* Athlete monthly attendance calendar like Strava streak */
.athlete-calendar-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 18px;
    background: linear-gradient(135deg, rgba(252,76,2,.18), rgba(255,255,255,.055));
}
.athlete-calendar-hero h2 { margin: 6px 0 8px; font-size: clamp(28px, 4vw, 46px); }
.athlete-calendar-hero p { color: var(--muted); max-width: 720px; line-height: 1.9; }
.calendar-nav-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.strava-month-card {
    background: #101113;
    border-color: rgba(255,255,255,.10);
    overflow: hidden;
}
.month-stat-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 18px;
    margin-bottom: 28px;
}
.month-stat-row div { display: grid; gap: 8px; }
.month-stat-row span { color: rgba(255,255,255,.72); font-size: 16px; }
.month-stat-row b { font-size: clamp(28px, 4vw, 42px); color: #f8fafc; }
.athlete-month-weekdays, .athlete-month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(54px, 1fr));
    gap: 14px;
    direction: ltr;
}
.athlete-month-weekdays {
    color: rgba(255,255,255,.74);
    font-size: 22px;
    margin-bottom: 18px;
    text-align: center;
}
.athlete-day {
    aspect-ratio: 1 / 1;
    min-height: 74px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.035);
    border: 2px solid rgba(255,255,255,.045);
    color: rgba(255,255,255,.86);
    font-size: clamp(18px, 2.6vw, 30px);
    transition: .18s ease;
}
.athlete-day:hover { transform: scale(1.04); border-color: rgba(252,76,2,.5); }
.athlete-day.muted { opacity: .22; }
.athlete-day.present {
    background: #f8fafc;
    color: #111;
    border-color: #f8fafc;
    box-shadow: 0 12px 26px rgba(255,255,255,.08);
}
.athlete-day.late {
    background: rgba(251,191,36,.16);
    color: #fbbf24;
    border-color: rgba(251,191,36,.38);
}
.athlete-day.absent {
    background: rgba(251,113,133,.14);
    color: #fb7185;
    border-color: rgba(251,113,133,.34);
}
.athlete-day.empty { background: rgba(255,255,255,.035); }
.activity-icon {
    width: 62%;
    height: 62%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: clamp(18px, 2.4vw, 30px);
    line-height: 1;
    filter: grayscale(1);
}
.absent-icon, .late-icon {
    width: 62%;
    height: 62%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-weight: 900;
}
.strava-legend { margin-top: 24px; }

@media (max-width: 850px) {
    .strava-topline, .athlete-calendar-hero, .strava-period-head { flex-direction: column; }
    .presence-line-chart { padding-right: 50px; }
    .chart-side-labels { width: 46px; font-size: 13px; }
    .month-stat-row { grid-template-columns: 1fr; }
    .athlete-month-weekdays, .athlete-month-grid { gap: 8px; grid-template-columns: repeat(7, minmax(34px, 1fr)); }
    .athlete-day { min-height: 42px; font-size: 16px; }
}

/* ==========================================================
   Premium minimal Strava-like athlete attendance UI overrides
   ========================================================== */
:root {
    --bg: #090b0f;
    --bg-soft: #111318;
    --card: rgba(255,255,255,.055);
    --card-border: rgba(255,255,255,.095);
    --text: #f5f7fb;
    --muted: #8f98a8;
    --primary: #fc4c02;
    --primary-2: #ff7a2f;
    --shadow: 0 18px 48px rgba(0,0,0,.32);
    --radius: 24px;
}
body {
    background:
        radial-gradient(circle at 70% 14%, rgba(252,76,2,.10), transparent 28%),
        radial-gradient(circle at 16% 92%, rgba(255,255,255,.035), transparent 24%),
        linear-gradient(135deg, #080a0e 0%, #0e1117 48%, #07090c 100%);
}
.glass-card, .feature-card, .kpi-card {
    background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.09);
    box-shadow: 0 18px 50px rgba(0,0,0,.30);
    backdrop-filter: blur(18px);
}
.btn.primary {
    background: linear-gradient(135deg, #ff7a2f, #fc4c02);
    color: #fff;
    box-shadow: 0 12px 24px rgba(252,76,2,.18);
}
.pill, .badge {
    background: rgba(252,76,2,.10);
    color: #ffb58d;
    border-color: rgba(252,76,2,.22);
}
.brand-mark {
    background: linear-gradient(135deg, #ff7a2f, #fc4c02);
    color: #fff;
    box-shadow: 0 14px 32px rgba(252,76,2,.22);
}
.nav-block a:hover { border-color: rgba(252,76,2,.22); background: rgba(252,76,2,.07); }
.minimal-welcome {
    padding: 18px 20px;
    border-radius: 24px;
}
.minimal-welcome h2 { margin: 4px 0 6px; }
.weekly-premium-card {
    position: relative;
    overflow: hidden;
    padding: 26px;
    margin-top: 18px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 36% 28%, rgba(252,76,2,.10), transparent 25%),
        linear-gradient(180deg, rgba(30,34,41,.78), rgba(14,16,21,.82));
}
.weekly-premium-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.025), transparent);
}
.weekly-card-head {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: auto 1fr 1fr auto;
    gap: 18px;
    align-items: center;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(255,255,255,.075);
}
.weekly-icon-badge, .mini-chart-icon {
    width: 58px;
    height: 58px;
    border-radius: 22px;
    display: grid;
    place-items: center;
    color: #fc4c02;
    background: radial-gradient(circle, rgba(252,76,2,.22), rgba(255,255,255,.055));
    border: 1px solid rgba(252,76,2,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07);
}
.weekly-main-stat span, .weekly-target-stat span, .weekly-mini-metrics span { color: var(--muted); display: block; }
.weekly-main-stat strong {
    display: block;
    margin-top: 4px;
    font-size: clamp(36px, 5vw, 58px);
    font-weight: 900;
    letter-spacing: -1px;
}
.weekly-target-stat b {
    display: block;
    margin-top: 6px;
    font-size: 21px;
    color: #fff;
}
.soft-pill {
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.12);
    color: #f7f7f7;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.soft-pill:hover { background: rgba(252,76,2,.08); border-color: rgba(252,76,2,.30); }
.weekly-chart-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin: 22px 0 4px;
}
.weekly-chart-title h3 { margin: 0 0 6px; font-size: 25px; }
.weekly-chart-title p { margin: 0; color: var(--muted); }
.weekly-mini-metrics { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.weekly-mini-metrics span {
    padding: 9px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.07);
    font-size: 13px;
}
.weekly-mini-metrics b { color: #ff9a5c; margin-right: 4px; }
.refined-chart { padding: 0 62px 42px 0; min-height: 288px; }
.refined-chart svg { height: 250px; }
.refined-chart .grid-line { stroke: rgba(255,255,255,.13); stroke-width: 1.3; stroke-dasharray: 5 8; }
.refined-chart .grid-line:last-of-type { stroke-dasharray: none; }
.refined-chart .area-fill { fill: url(#unused); fill: rgba(252,76,2,.17); }
.refined-chart .presence-line {
    stroke: #fc4c02;
    stroke-width: 4.2;
    filter: drop-shadow(0 8px 16px rgba(252,76,2,.18));
}
.refined-chart .presence-dot {
    fill: #1c2027;
    stroke: #fc4c02;
    stroke-width: 3.2;
}
.refined-chart svg circle:last-child {
    fill: #fff;
    stroke: #fc4c02;
    stroke-width: 5;
    filter: drop-shadow(0 0 14px rgba(252,76,2,.45));
}
.refined-chart .chart-side-labels { width: 56px; font-size: 14px; color: rgba(255,255,255,.62); }
.refined-chart .chart-month-labels { left: 58px; font-size: 13px; color: rgba(255,255,255,.62); letter-spacing: 0; }
.minimal-progress-link {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 76px;
    padding: 14px 18px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.08);
    transition: .18s ease;
}
.minimal-progress-link:hover { transform: translateY(-2px); border-color: rgba(252,76,2,.22); }
.minimal-progress-link b, .minimal-progress-link small { display: block; }
.minimal-progress-link b { font-size: 17px; }
.minimal-progress-link small { color: var(--muted); margin-top: 4px; }
.minimal-progress-link em {
    margin-right: auto;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-style: normal;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.08);
    color: #fff;
    font-size: 26px;
}
.minimal-calendar-hero {
    padding: 22px 24px;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.032));
}
.minimal-calendar-hero h2 { font-size: clamp(26px, 3.5vw, 40px); margin: 4px 0 8px; }
.premium-month-card {
    padding: 26px;
    border-radius: 32px;
    background:
        radial-gradient(circle at 78% 35%, rgba(252,76,2,.08), transparent 24%),
        linear-gradient(180deg, rgba(19,22,28,.82), rgba(11,13,17,.82));
}
.month-card-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 126px;
    gap: 20px;
    align-items: stretch;
}
.month-calendar-area { min-width: 0; }
.compact-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}
.compact-stats div {
    padding: 15px 16px;
    border-radius: 20px;
    background: rgba(255,255,255,.038);
    border: 1px solid rgba(255,255,255,.065);
}
.compact-stats span { color: var(--muted); font-size: 13px; }
.compact-stats b { font-size: clamp(24px, 3vw, 34px); margin-top: 4px; }
.refined-weekdays {
    gap: 10px;
    margin: 10px 0 12px;
    font-size: 14px;
    letter-spacing: .5px;
    color: rgba(255,255,255,.52);
}
.refined-month-grid {
    gap: 11px;
    grid-template-columns: repeat(7, minmax(46px, 1fr));
}
.refined-month-grid .athlete-day {
    min-height: 58px;
    font-size: clamp(15px, 2vw, 20px);
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.055);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}
.refined-month-grid .athlete-day.present {
    background: rgba(252,76,2,.105);
    color: #ff8a45;
    border-color: rgba(252,76,2,.28);
    box-shadow: 0 10px 22px rgba(252,76,2,.08), inset 0 1px 0 rgba(255,255,255,.04);
}
.refined-month-grid .athlete-day.present::after {
    content: "";
    position: absolute;
}
.refined-month-grid .athlete-day { position: relative; }
.refined-month-grid .athlete-day.present .activity-icon { filter: none; font-size: clamp(14px, 2vw, 20px); }
.refined-month-grid .athlete-day.absent {
    background: rgba(251,113,133,.07);
    color: #fb7185;
    border-color: rgba(251,113,133,.20);
}
.refined-month-grid .athlete-day.late {
    background: rgba(251,191,36,.08);
    color: #fbbf24;
    border-color: rgba(251,191,36,.22);
}
.refined-month-grid .athlete-day.empty { color: rgba(255,255,255,.70); }
.refined-month-grid .athlete-day.muted { opacity: .20; }
.activity-icon, .absent-icon, .late-icon { width: auto; height: auto; background: transparent; }
.streak-rail {
    border-radius: 26px;
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.075);
    display: grid;
    justify-items: center;
    align-content: start;
    gap: 8px;
    padding: 18px 12px;
    color: var(--muted);
}
.streak-rail .flame { font-size: 24px; filter: drop-shadow(0 0 14px rgba(252,76,2,.28)); }
.streak-rail strong { color: #fc4c02; font-size: 34px; margin-top: 10px; }
.rail-bar {
    width: 18px;
    height: 230px;
    border-radius: 999px;
    background: rgba(255,255,255,.055);
    margin: 12px 0;
    position: relative;
    overflow: hidden;
}
.rail-bar i {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 78%;
    border-radius: inherit;
    background: linear-gradient(180deg, #ff8a45, #fc4c02);
    box-shadow: 0 0 22px rgba(252,76,2,.42);
}
.minimal-legend {
    margin-top: 18px;
    justify-content: center;
}
.calendar-legend.minimal-legend span {
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.06);
}
@media (max-width: 1100px) {
    .weekly-card-head { grid-template-columns: auto 1fr; }
    .weekly-card-head .soft-pill { grid-column: 1 / -1; justify-self: start; }
    .month-card-main { grid-template-columns: 1fr; }
    .streak-rail { grid-template-columns: auto 1fr auto auto; align-items: center; align-content: center; }
    .rail-bar { width: 100%; height: 12px; margin: 0 8px; }
    .rail-bar i { width: 78%; height: 100%; right: 0; left: auto; }
}
@media (max-width: 720px) {
    .weekly-premium-card, .premium-month-card { padding: 18px; border-radius: 24px; }
    .weekly-chart-title, .athlete-calendar-hero { flex-direction: column; align-items: stretch; }
    .weekly-mini-metrics { justify-content: flex-start; }
    .compact-stats { grid-template-columns: 1fr; }
    .refined-month-grid { gap: 7px; grid-template-columns: repeat(7, minmax(34px, 1fr)); }
    .refined-month-grid .athlete-day { min-height: 38px; font-size: 13px; }
    .refined-chart { padding-right: 44px; }
}


/* Login */
.login-body {
    min-height: 100vh;
    margin: 0;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 72% 18%, rgba(252,76,2,.22), transparent 30%),
        radial-gradient(circle at 20% 88%, rgba(255,255,255,.08), transparent 28%),
        linear-gradient(135deg, #080b10, #111722 58%, #050608);
}
.login-shell { width: min(94vw, 520px); padding: 24px; }
.login-card {
    padding: 30px;
    border-radius: 32px;
    background: rgba(255,255,255,.075);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 28px 90px rgba(0,0,0,.45);
    backdrop-filter: blur(24px);
}
.login-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.login-brand h1 { margin: 0 0 4px; font-size: 26px; letter-spacing: -.4px; }
.login-brand p { margin: 0; color: var(--muted); }
.login-tabs {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    padding: 6px; margin-bottom: 22px; border-radius: 20px;
    background: rgba(0,0,0,.22); border: 1px solid rgba(255,255,255,.08);
}
.login-tabs a { text-align: center; padding: 12px; border-radius: 16px; color: #cbd5e1; }
.login-tabs a.active { background: rgba(252,76,2,.16); color: #fff; border: 1px solid rgba(252,76,2,.28); box-shadow: 0 12px 30px rgba(252,76,2,.10); }
.login-form { display: grid; gap: 10px; }
.login-form label { color: #cbd5e1; font-size: 13px; margin-top: 4px; }
.login-form input {
    width: 100%; padding: 14px 16px; border-radius: 17px;
    color: #fff; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.11); outline: none;
}
.login-form input:focus { border-color: rgba(252,76,2,.48); box-shadow: 0 0 0 4px rgba(252,76,2,.10); }
.btn-login {
    margin-top: 10px; border: 0; border-radius: 18px; padding: 14px 18px; cursor: pointer;
    background: linear-gradient(135deg, #ff8a45, #fc4c02); color: #fff; font-weight: 700;
    box-shadow: 0 18px 42px rgba(252,76,2,.22);
}
.login-error { padding: 12px 14px; border-radius: 16px; color: #fecdd3; background: rgba(251,113,133,.11); border: 1px solid rgba(251,113,133,.22); }
.demo-users { margin-top: 18px; display: grid; gap: 6px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.logout-link { padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.10); color: #e5e7eb; }
.btn-primary { display: inline-flex; padding: 12px 18px; border-radius: 16px; background: linear-gradient(135deg, #ff8a45, #fc4c02); color: white; font-weight: 700; }


/* Bigger attendance icons */
.attendance-status-icon {
    width: 56px;
    height: 56px;
    margin: 4px auto 2px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
}
.coach-present-icon {
    background: rgba(54,211,153,.16);
    color: #36d399;
    box-shadow: 0 10px 22px rgba(54,211,153,.12);
}
.coach-absent-icon {
    background: rgba(251,113,133,.16);
    color: #fb7185;
    box-shadow: 0 10px 22px rgba(251,113,133,.12);
}
.coach-late-icon {
    background: rgba(251,191,36,.16);
    color: #fbbf24;
    box-shadow: 0 10px 22px rgba(251,191,36,.12);
}
.big-icon {
    width: 72%;
    height: 72%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-weight: 900;
    line-height: 1;
}
.activity-icon.big-icon {
    font-size: clamp(28px, 3vw, 42px);
    color: #111;
    filter: none;
}
.absent-icon.big-icon {
    font-size: clamp(34px, 3.2vw, 50px);
    color: #fb7185;
    background: rgba(251,113,133,.10);
}
.late-icon.big-icon {
    font-size: clamp(32px, 3vw, 44px);
    color: #fbbf24;
    background: rgba(251,191,36,.10);
}
.day-text {
    font-size: clamp(18px, 2.6vw, 30px);
}
.athlete-day.present .activity-icon.big-icon {
    background: transparent;
}
.athlete-day.absent .absent-icon.big-icon,
.athlete-day.late .late-icon.big-icon {
    width: 76%;
    height: 76%;
}
@media (max-width: 760px) {
    .attendance-status-icon {
        width: 42px;
        height: 42px;
        font-size: 28px;
        border-radius: 14px;
    }
    .activity-icon.big-icon { font-size: 26px; }
    .absent-icon.big-icon { font-size: 34px; }
}


/* Chat, athlete edit, and final attendance icon polish */
.athlete-day.present {
    background: rgba(54,211,153,.10) !important;
    color: #36d399 !important;
    border-color: rgba(54,211,153,.42) !important;
    box-shadow: 0 14px 30px rgba(54,211,153,.10), inset 0 0 0 1px rgba(54,211,153,.10) !important;
}
.athlete-day.present .activity-icon.big-icon {
    color: #36d399 !important;
    font-size: clamp(36px, 4vw, 58px) !important;
    filter: none !important;
    text-shadow: 0 0 18px rgba(54,211,153,.28);
}
.athlete-day.absent {
    background: rgba(251,113,133,.12) !important;
    border-color: rgba(251,113,133,.42) !important;
}
.athlete-day.absent .absent-icon.big-icon {
    font-size: clamp(42px, 4.4vw, 64px) !important;
    color: #fb7185 !important;
    text-shadow: 0 0 18px rgba(251,113,133,.25);
}
.chat-shell { min-height: 680px; }
.premium-chat-shell { padding: 18px; }
.chat-head { margin-bottom: 12px; }
.chat-head p { color: var(--muted); margin: 6px 0 0; }
.chat-list {
    min-height: 460px;
    max-height: 62vh;
    padding: 14px;
    border-radius: 24px;
    background: rgba(0,0,0,.16);
    border: 1px solid rgba(255,255,255,.07);
}
.chat-bubble span { line-height: 1.9; }
.chat-attachment {
    display: grid;
    gap: 8px;
    color: var(--muted);
    text-decoration: none;
    margin-top: 6px;
}
.chat-attachment img {
    width: min(260px, 100%);
    max-height: 220px;
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 12px 28px rgba(0,0,0,.20);
}
.chat-form {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    margin-top: 14px;
    align-items: center;
}
.file-chip {
    min-height: 46px;
    padding: 0 16px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.055);
    color: #dbeafe;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    white-space: nowrap;
}
.file-chip input { display: none; }
.coach-chat-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.chat-athlete-list { display: grid; gap: 10px; align-content: start; }
.chat-athlete-list p { color: var(--muted); margin-top: -4px; }
.chat-athlete-item {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.07);
    color: var(--text);
}
.chat-athlete-item.active,
.chat-athlete-item:hover {
    background: rgba(252,76,2,.10);
    border-color: rgba(252,76,2,.26);
}
.chat-athlete-item img { width: 44px; height: 44px; border-radius: 16px; object-fit: cover; }
.chat-athlete-item b, .chat-athlete-item small { display: block; }
.chat-athlete-item small { color: var(--muted); margin-top: 3px; }
.edit-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: none;
    place-items: center;
    padding: 20px;
    background: rgba(0,0,0,.62);
    backdrop-filter: blur(10px);
}
.edit-modal-backdrop.open { display: grid; }
.edit-athlete-modal {
    width: min(720px, 96vw);
    max-height: 92vh;
    overflow: auto;
}
.athlete-edit-form { display: grid; gap: 12px; }
.athlete-edit-form label { display: grid; gap: 6px; color: #dbeafe; }
.three-col { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.active-check { justify-content: start !important; }
.active-check input { width: auto; }
@media (max-width: 900px) {
    .coach-chat-layout { grid-template-columns: 1fr; }
    .chat-form { grid-template-columns: 1fr; }
    .three-col { grid-template-columns: 1fr; }
}

.activity-icon.big-icon svg,
.attendance-status-icon svg {
    width: 82%;
    height: 82%;
    display: block;
}
.athlete-day.present .activity-icon.big-icon svg {
    width: 92%;
    height: 92%;
}
.coach-present-icon svg { width: 88%; height: 88%; }


/* Athlete user management */
.create-athlete-form,
.login-edit-box {
    padding: 16px;
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.08);
}
.login-edit-box h3 {
    margin: 0 0 12px;
    color: #ffb58d;
    font-size: 16px;
}
.alert-card.success,
.alert-card.danger {
    margin-bottom: 16px;
}
.edit-athlete-modal .section-head p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.8;
}


/* Theme picker and extra themes */
.theme-picker { position: relative; }
.theme-toggle {
    width: 42px; height: 42px; border-radius: 16px; border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06); color: var(--text); cursor: pointer; font-size: 20px;
}
.theme-menu {
    position: absolute; top: 50px; left: 0; min-width: 170px; padding: 10px; border-radius: 20px;
    background: rgba(16,18,24,.96); border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 18px 40px rgba(0,0,0,.35); display: none; z-index: 50;
    transform-origin: left top; animation: themeSlide .18s ease;
}
.theme-menu.open { display: grid; gap: 8px; }
.theme-menu button {
    text-align: left; direction: ltr; padding: 11px 12px; border-radius: 14px; border: 0;
    background: rgba(255,255,255,.055); color: #f8fafc; cursor: pointer; font-weight: 800;
}
.theme-menu button:hover { background: rgba(252,76,2,.16); color: #fff; }
@keyframes themeSlide { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: translateX(0); } }
body[data-theme="midnight"] {
    --bg: #020617; --bg-soft: #08111f; --card: rgba(15,23,42,.68); --card-border: rgba(96,165,250,.16);
    --text: #eaf2ff; --muted: #8ea3c5; --primary: #38bdf8; --primary-2: #7dd3fc;
    background: radial-gradient(circle at 80% 12%, rgba(56,189,248,.16), transparent 28%), linear-gradient(135deg, #020617, #07111f 55%, #020617);
}
body[data-theme="midnight"] .btn.primary,
body[data-theme="midnight"] .brand-mark { background: linear-gradient(135deg, #38bdf8, #2563eb); box-shadow: 0 14px 32px rgba(37,99,235,.22); }
body[data-theme="midnight"] .pill,
body[data-theme="midnight"] .badge { background: rgba(56,189,248,.10); color: #bae6fd; border-color: rgba(56,189,248,.22); }
body[data-theme="light"] {
    --bg: #f6f7fb; --bg-soft: #ffffff; --card: rgba(255,255,255,.84); --card-border: rgba(15,23,42,.10);
    --text: #111827; --muted: #64748b; --primary: #fc4c02; --primary-2: #e85b18; --shadow: 0 18px 48px rgba(15,23,42,.10);
    background: radial-gradient(circle at 75% 8%, rgba(252,76,2,.11), transparent 28%), linear-gradient(135deg, #f8fafc, #eef2f7);
}
body[data-theme="light"] .sidebar,
body[data-theme="light"] .glass-card,
body[data-theme="light"] .feature-card,
body[data-theme="light"] .kpi-card { background: rgba(255,255,255,.88); color: #111827; border-color: rgba(15,23,42,.09); }
body[data-theme="light"] .nav-block a,
body[data-theme="light"] input,
body[data-theme="light"] select,
body[data-theme="light"] textarea { color: #111827; background: rgba(15,23,42,.04); border-color: rgba(15,23,42,.10); }
body[data-theme="light"] .theme-menu { background: rgba(255,255,255,.98); }
body[data-theme="light"] .theme-menu button { color: #111827; background: rgba(15,23,42,.05); }
body[data-theme="light"] .chat-bubble, body[data-theme="light"] .notification-item, body[data-theme="light"] .compact-row { background: rgba(15,23,42,.045); }

.kpi-button { width: 100%; text-align: right; cursor: pointer; border: 1px solid var(--card-border); color: var(--text); }
.kpi-button small { color: var(--muted); }
.popup-backdrop, .edit-modal-backdrop {
    position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.58); backdrop-filter: blur(8px);
    display: none; align-items: center; justify-content: center; padding: 20px;
}
.popup-backdrop.open, .edit-modal-backdrop.open { display: flex; }
.messages-popup { width: min(680px, 96vw); max-height: 82vh; overflow: auto; }
.message-preview-row {
    display: grid; grid-template-columns: 54px 1fr auto; gap: 12px; align-items: center; padding: 12px;
    border-radius: 18px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08); margin-bottom: 10px;
}
.message-preview-row img { width: 54px; height: 54px; border-radius: 18px; object-fit: cover; }
.message-preview-row b, .message-preview-row span, .message-preview-row small { display: block; }
.message-preview-row span, .message-preview-row small { color: var(--muted); }
.message-preview-row em { width: 32px; height: 32px; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; font-style: normal; font-weight: 900; }
.clickable-notification { text-decoration: none; color: inherit; border: 1px solid rgba(255,255,255,.08); }
.clickable-notification:hover { transform: translateY(-2px); border-color: rgba(252,76,2,.35); }
.profile-card { display: grid; gap: 22px; max-width: 720px; }
.profile-preview { display: flex; align-items: center; gap: 16px; }
.profile-large-avatar { width: 110px; height: 110px; border-radius: 34px; object-fit: cover; border: 1px solid rgba(255,255,255,.14); }
.profile-upload-form { display: grid; gap: 14px; }
.inner-form small, label small { display: block; color: var(--muted); margin-top: 7px; line-height: 1.7; }

/* Green athlete attendance icons */
.athlete-day.present {
    background: rgba(34,197,94,.13) !important;
    color: #22c55e !important;
    border-color: rgba(34,197,94,.45) !important;
    box-shadow: 0 14px 32px rgba(34,197,94,.14) !important;
}
.activity-icon.big-icon, .athlete-day.present .activity-icon.big-icon {
    color: #22c55e !important;
    background: rgba(34,197,94,.10) !important;
    font-size: clamp(38px, 4.2vw, 62px) !important;
    filter: none !important;
}
.absent-icon.big-icon {
    color: #fb7185 !important;
    font-size: clamp(42px, 4.4vw, 68px) !important;
}
.coach-present-icon { color: #22c55e !important; background: rgba(34,197,94,.14) !important; font-size: 42px !important; }
.coach-absent-icon { color: #fb7185 !important; font-size: 44px !important; }

.dumbbell-svg { width: 1.15em; height: 1.15em; display: block; }
.attendance-status-icon .dumbbell-svg { width: 42px; height: 42px; }
.activity-icon.big-icon .dumbbell-svg { width: 58px; height: 58px; }
@media(max-width:760px){ .activity-icon.big-icon .dumbbell-svg{width:36px;height:36px;} .attendance-status-icon .dumbbell-svg{width:32px;height:32px;} }


/* Workout builder jalali modal and improved light theme */
.workout-builder-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) 420px; gap: 18px; align-items: start; }
.workout-builder-card { padding: 24px; }
.builder-head { display: flex; justify-content: space-between; gap: 16px; align-items: start; margin-bottom: 18px; }
.builder-head h2 { margin: 6px 0 8px; }
.builder-head p, .builder-days-header p { color: var(--muted); line-height: 1.9; margin: 0; }
.builder-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.builder-days-header { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.08); margin-bottom: 14px; }
.builder-days-list { display: grid; gap: 14px; }
.builder-day-card { padding: 16px; border-radius: 22px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.08); }
.builder-day-title { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 12px; }
.builder-day-title b, .builder-day-title span { display:block; }
.builder-day-title span { color: var(--muted); margin-top: 4px; }
.builder-item-grid { display: grid; gap: 10px; }
.builder-exercise-row { display: grid; grid-template-columns: minmax(160px, 1fr) 80px 90px 100px minmax(160px, 1fr); gap: 8px; align-items: center; padding: 10px; border-radius: 16px; background: rgba(255,255,255,.04); }
.exercise-row-title b, .exercise-row-title small { display:block; }
.exercise-row-title small { color: var(--muted); margin-top: 3px; }
.wide-action { width: 100%; margin-top: 16px; }
.danger-lite { color: #fb7185; border-color: rgba(251,113,133,.22); }
.modal-backdrop { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 18px; background: rgba(0,0,0,.62); backdrop-filter: blur(10px); }
.modal-backdrop[hidden] { display: none; }
.workout-day-modal { width: min(920px, 100%); max-height: 88vh; overflow: auto; padding: 22px; }
.modal-head { display:flex; justify-content:space-between; align-items:start; gap:12px; margin-bottom:16px; }
.modal-head h3 { margin: 0 0 6px; }
.modal-head p { margin:0; color:var(--muted); }
.icon-button { width: 42px; height:42px; border-radius: 14px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); color: var(--text); font-size: 25px; cursor:pointer; }
.muscle-chip-grid { display:flex; flex-wrap:wrap; gap:8px; margin: 8px 0 16px; }
.muscle-chip { border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.055); color:var(--text); border-radius:999px; padding:9px 13px; cursor:pointer; }
.muscle-chip.selected { background: rgba(252,76,2,.16); border-color: rgba(252,76,2,.48); color:#ffb58d; }
.modal-exercise-list { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; max-height: 340px; overflow:auto; padding: 4px; margin-top: 8px; }
.exercise-select-card { display:none; align-items:center; gap:10px; padding:12px; border-radius:18px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.08); cursor:pointer; }
.exercise-select-card input { width:auto; accent-color: var(--primary); }
.exercise-select-card b, .exercise-select-card small { display:block; }
.exercise-select-card small { color:var(--muted); margin-top:4px; }
.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
body[data-theme="light"] {
    --bg: #f3f6fb;
    --bg-soft: #ffffff;
    --card: rgba(255,255,255,.92);
    --card-border: rgba(30,64,175,.12);
    --text: #101827;
    --muted: #64748b;
    --primary: #f97316;
    --primary-2: #2563eb;
    background:
        radial-gradient(circle at 84% 8%, rgba(249,115,22,.13), transparent 28%),
        radial-gradient(circle at 12% 86%, rgba(37,99,235,.12), transparent 30%),
        linear-gradient(135deg, #f8fbff 0%, #eef4ff 48%, #fff7ed 100%);
    color: #101827;
}
body[data-theme="light"] .sidebar,
body[data-theme="light"] .glass-card,
body[data-theme="light"] .feature-card,
body[data-theme="light"] .kpi-card {
    background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.84));
    color: #101827;
    border-color: rgba(30,64,175,.10);
    box-shadow: 0 18px 45px rgba(15,23,42,.08);
}
body[data-theme="light"] .topbar { background: rgba(255,255,255,.74); border: 1px solid rgba(30,64,175,.08); border-radius: 24px; padding: 14px 18px; }
body[data-theme="light"] input,
body[data-theme="light"] select,
body[data-theme="light"] textarea {
    color: #101827;
    background: rgba(248,250,252,.92);
    border-color: rgba(37,99,235,.14);
}
body[data-theme="light"] .nav-block a { color:#1f2937; background: rgba(255,255,255,.56); border-color: rgba(37,99,235,.08); }
body[data-theme="light"] .nav-block a:hover { background: rgba(249,115,22,.10); border-color: rgba(249,115,22,.22); }
body[data-theme="light"] .btn.primary { background: linear-gradient(135deg, #fb923c, #f97316); color:#fff; box-shadow: 0 14px 26px rgba(249,115,22,.20); }
body[data-theme="light"] .pill,
body[data-theme="light"] .badge { background: rgba(37,99,235,.08); color: #1d4ed8; border-color: rgba(37,99,235,.16); }
body[data-theme="light"] .chat-shell { background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(239,246,255,.86)); }
body[data-theme="light"] .chat-list { background: radial-gradient(circle at 80% 10%, rgba(249,115,22,.08), transparent 28%); border-radius: 20px; }
body[data-theme="light"] .chat-bubble.coach { background: linear-gradient(135deg, #fff7ed, #ffedd5); color:#7c2d12; border: 1px solid rgba(249,115,22,.18); }
body[data-theme="light"] .chat-bubble.athlete { background: linear-gradient(135deg, #eff6ff, #dbeafe); color:#1e3a8a; border: 1px solid rgba(37,99,235,.16); }
body[data-theme="light"] .chat-bubble small { color:#64748b; }
body[data-theme="light"] .chat-input { background: rgba(255,255,255,.82); border:1px solid rgba(37,99,235,.10); padding: 10px; border-radius: 22px; }
body[data-theme="light"] .builder-day-card,
body[data-theme="light"] .builder-exercise-row,
body[data-theme="light"] .exercise-select-card,
body[data-theme="light"] .muscle-chip { background: rgba(248,250,252,.92); border-color: rgba(37,99,235,.10); color:#101827; }
body[data-theme="light"] .muscle-chip.selected { background: rgba(249,115,22,.12); border-color: rgba(249,115,22,.34); color:#c2410c; }
@media (max-width: 1100px) {
    .workout-builder-layout { grid-template-columns: 1fr; }
    .workout-plans-list { order: 2; }
}
@media (max-width: 760px) {
    .builder-head, .builder-day-title, .modal-actions { flex-direction: column; align-items: stretch; }
    .builder-form-grid, .modal-exercise-list { grid-template-columns: 1fr; }
    .builder-exercise-row { grid-template-columns: 1fr 1fr; }
    .exercise-row-title { grid-column: 1 / -1; }
}

/* Fix category-based workout builder, theme-aware dropdowns, Persian date picker */
.add-day-button {
    border: 0;
    min-width: 210px;
    border-radius: 24px;
    padding: 13px 16px;
    display: grid;
    grid-template-columns: 44px 1fr;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 12px;
    text-align: right;
    cursor: pointer;
    color: #fff;
    background:
        radial-gradient(circle at 20% 18%, rgba(255,255,255,.28), transparent 28%),
        linear-gradient(135deg, #ff8a3d, #fc4c02);
    box-shadow: 0 18px 34px rgba(252,76,2,.22);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.add-day-button:hover { transform: translateY(-3px); filter: saturate(1.05); box-shadow: 0 22px 42px rgba(252,76,2,.30); }
.add-day-button span {
    grid-row: 1 / 3;
    width: 44px;
    height: 44px;
    border-radius: 17px;
    display: grid;
    place-items: center;
    font-size: 30px;
    font-weight: 900;
    background: rgba(255,255,255,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.22);
}
.add-day-button b { font-size: 15px; }
.add-day-button small { color: rgba(255,255,255,.76); margin-top: 2px; }

select { color-scheme: dark; }
select option {
    background: #151820;
    color: #f8fafc;
}
body[data-theme="midnight"] select option {
    background: #08111f;
    color: #eaf2ff;
}
body[data-theme="light"] select { color-scheme: light; }
body[data-theme="light"] select option {
    background: #ffffff;
    color: #101827;
}
body[data-theme="light"] h1,
body[data-theme="light"] h2,
body[data-theme="light"] h3,
body[data-theme="light"] h4,
body[data-theme="light"] label,
body[data-theme="light"] .section-head h2,
body[data-theme="light"] .section-head h3,
body[data-theme="light"] .form-card h2,
body[data-theme="light"] .builder-head h2,
body[data-theme="light"] .builder-days-header h3 {
    color: #0f172a !important;
}
body[data-theme="light"] .eyebrow,
body[data-theme="light"] .form-card label,
body[data-theme="light"] label small,
body[data-theme="light"] .builder-head p,
body[data-theme="light"] .builder-days-header p,
body[data-theme="light"] .exercise-select-card small,
body[data-theme="light"] .compact-row span,
body[data-theme="light"] .plan-card span {
    color: #64748b !important;
}
body[data-theme="light"] .add-day-button {
    background: linear-gradient(135deg, #fb923c, #f97316);
    box-shadow: 0 18px 34px rgba(249,115,22,.22);
}
.exercise-media {
    height: 210px;
    display: grid;
    place-items: center;
    gap: 6px;
    background: radial-gradient(circle, rgba(252,76,2,.22), rgba(255,255,255,.05));
    color: var(--primary-2);
}
.exercise-media span { font-size: 44px; }
.exercise-media small { color: var(--muted); }

.jalali-date-input { cursor: pointer; background-image: linear-gradient(90deg, transparent, rgba(252,76,2,.05)); }
.jalali-picker-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(0,0,0,.38);
    backdrop-filter: blur(8px);
}
.jalali-picker-backdrop.open { display: flex; }
.jalali-picker {
    width: min(430px, 96vw);
    border-radius: 28px;
    padding: 18px;
    background: linear-gradient(180deg, rgba(19,22,29,.98), rgba(12,14,18,.98));
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 24px 60px rgba(0,0,0,.42);
    color: #f8fafc;
}
.jalali-picker-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.jalali-picker-title { font-weight: 900; font-size: 18px; }
.jalali-picker-head button {
    width: 40px; height: 40px; border: 0; border-radius: 14px; cursor: pointer;
    background: rgba(255,255,255,.08); color: #f8fafc; font-size: 18px;
}
.jalali-picker-weekdays, .jalali-picker-days { display:grid; grid-template-columns: repeat(7, 1fr); gap: 7px; direction: rtl; }
.jalali-picker-weekdays span { text-align:center; color: rgba(255,255,255,.58); font-size: 12px; padding: 6px 0; }
.jalali-picker-day {
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.05);
    color: #f8fafc;
    border-radius: 15px;
    min-height: 42px;
    cursor: pointer;
    font-weight: 800;
}
.jalali-picker-day:hover, .jalali-picker-day.selected {
    background: rgba(252,76,2,.18);
    border-color: rgba(252,76,2,.48);
    color: #ffb58d;
}
body[data-theme="light"] .jalali-picker {
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    border-color: rgba(37,99,235,.13);
    color: #0f172a;
}
body[data-theme="light"] .jalali-picker-head button,
body[data-theme="light"] .jalali-picker-day {
    background: rgba(37,99,235,.05);
    border-color: rgba(37,99,235,.10);
    color: #0f172a;
}
body[data-theme="light"] .jalali-picker-weekdays span { color: #64748b; }
body[data-theme="light"] .jalali-picker-day:hover,
body[data-theme="light"] .jalali-picker-day.selected {
    background: rgba(249,115,22,.12);
    border-color: rgba(249,115,22,.34);
    color: #c2410c;
}
@media(max-width:760px){ .add-day-button{width:100%;} }


/* Exercise media upload preview */
.exercise-card .exercise-video {
    width: 100%;
    height: 210px;
    object-fit: cover;
    display: block;
    background: rgba(0,0,0,.35);
}
.exercise-video-link {
    margin-top: 12px;
    width: max-content;
    font-size: 13px;
    min-height: 36px;
    padding: 7px 12px;
}

/* Exercise bank submenus and category manager */
.nav-group {
    display: grid;
    gap: 6px;
    margin: 6px 0;
    padding: 10px;
    border-radius: 18px;
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.06);
}
.nav-group-title {
    color: var(--primary-2);
    font-size: 12px;
    font-weight: 800;
    padding: 0 6px 4px;
}
.nav-group a { padding: 9px 12px !important; font-size: 13px; }
.coach-subnav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
    padding: 12px;
}
.coach-subnav a {
    padding: 10px 16px;
    border-radius: 999px;
    color: var(--muted);
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.075);
    transition: .18s ease;
}
.coach-subnav a:hover,
.coach-subnav a.active {
    color: #fff;
    background: linear-gradient(135deg, rgba(255,122,47,.32), rgba(252,76,2,.22));
    border-color: rgba(252,76,2,.35);
}
.single-main-form { grid-template-columns: minmax(0, 760px); justify-content: center; }
.exercise-create-card { max-width: 780px; }
.form-actions-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.form-error {
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(251,113,133,.10);
    border: 1px solid rgba(251,113,133,.25);
    color: #fb7185;
}
.exercises-library-card { padding: 22px; }
.exercise-library-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 14px;
}
.exercise-library-item {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 14px;
    padding: 12px;
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.075);
    transition: .18s ease;
}
.exercise-library-item:hover { transform: translateY(-3px); border-color: rgba(252,76,2,.28); }
.exercise-thumb { height: 110px; border-radius: 18px; overflow: hidden; background: rgba(255,255,255,.05); }
.exercise-thumb img, .exercise-thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.exercise-library-body { display: grid; gap: 8px; min-width: 0; }
.exercise-title-line { display: flex; justify-content: space-between; gap: 8px; align-items: start; }
.exercise-title-line h3 { margin: 0; font-size: 17px; }
.exercise-library-body p { margin: 0; color: var(--muted); line-height: 1.8; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.category-manager-layout {
    display: grid;
    grid-template-columns: 360px minmax(0,1fr);
    gap: 18px;
    align-items: start;
}
.category-create-card { position: sticky; top: 20px; }
.category-list-card { padding: 22px; }
.category-list { display: grid; gap: 10px; }
.category-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 12px;
    border-radius: 20px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.075);
}
.category-edit-form {
    display: grid;
    grid-template-columns: minmax(160px,.7fr) minmax(160px,1fr) auto;
    gap: 10px;
    align-items: center;
}
.category-name-box { display: grid; gap: 5px; }
.category-name-box small { color: var(--muted); }
button:disabled { opacity: .45; cursor: not-allowed; }
.compact-add {
    width: auto;
    min-width: 170px;
    text-decoration: none;
}
body[data-theme="light"] .coach-subnav a,
body[data-theme="light"] .category-row,
body[data-theme="light"] .exercise-library-item,
body[data-theme="light"] .nav-group {
    background: rgba(255,255,255,.75);
    border-color: rgba(30,41,59,.10);
}
body[data-theme="light"] .coach-subnav a.active,
body[data-theme="light"] .coach-subnav a:hover {
    color: #9a3412;
    background: linear-gradient(135deg, rgba(255,237,213,.95), rgba(254,215,170,.75));
    border-color: rgba(249,115,22,.25);
}
@media (max-width: 980px) {
    .category-manager-layout { grid-template-columns: 1fr; }
    .category-create-card { position: static; }
    .category-edit-form { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .exercise-library-item { grid-template-columns: 1fr; }
    .exercise-thumb { height: 190px; }
    .category-row { grid-template-columns: 1fr; }
}

/* AmFit brand and registered workout management */
.brand-logo-wrap {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 14px 32px rgba(34,197,94,.16);
    overflow: hidden;
    flex: 0 0 auto;
}
.brand-logo-wrap img {
    width: 94%;
    height: 94%;
    object-fit: contain;
    display: block;
}
body[data-theme="light"] .brand-logo-wrap { background: #fff; border-color: rgba(15,23,42,.10); }
body[data-theme="midnight"] .brand-logo-wrap { background: rgba(255,255,255,.96); box-shadow: 0 14px 32px rgba(56,189,248,.18); }

.workout-list-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 24px;
    margin-bottom: 18px;
    background:
        radial-gradient(circle at 12% 20%, rgba(34,197,94,.16), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
}
.workout-list-hero h2 { margin: 6px 0 8px; font-size: clamp(24px, 3vw, 38px); }
.workout-list-hero p { margin: 0; color: var(--muted); line-height: 1.9; }
.compact-add { min-width: 230px; text-decoration: none; }
.registered-workouts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 16px;
}
.registered-workout-card {
    padding: 20px;
    display: grid;
    gap: 16px;
    transition: .18s ease;
    overflow: hidden;
    position: relative;
}
.registered-workout-card::before {
    content: "";
    position: absolute;
    inset: -90px auto auto -90px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(34,197,94,.12), transparent 70%);
    pointer-events: none;
}
.registered-workout-card:hover { transform: translateY(-4px); border-color: rgba(34,197,94,.28); }
.workout-card-top,
.workout-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.workout-card-top h3 { margin: 5px 0 0; font-size: 22px; }
.status-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    color: #86efac;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.22);
    white-space: nowrap;
}
.workout-meta-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 10px;
}
.workout-meta-strip span,
.workout-day-preview span {
    display: grid;
    gap: 5px;
    padding: 12px;
    border-radius: 17px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.075);
    color: var(--text);
}
.workout-meta-strip b,
.workout-day-preview small { color: var(--muted); font-size: 12px; font-weight: 500; }
.workout-day-preview {
    display: grid;
    gap: 8px;
}
.workout-actions form { margin: 0; }
.danger-btn {
    background: rgba(251,113,133,.12);
    color: #fb7185;
    border: 1px solid rgba(251,113,133,.25);
    font-weight: 800;
}
.edit-workout-shell { padding: 24px; }
.edit-days-stack { display: grid; gap: 14px; margin-top: 18px; }
.builder-day-card.edit-mode { background: rgba(255,255,255,.045); }
.builder-item-grid.edit-grid { display: grid; gap: 10px; }
.builder-exercise-row.edit-row {
    grid-template-columns: minmax(180px,1.2fr) repeat(3, minmax(100px,.55fr)) minmax(220px,1fr);
    align-items: end;
}
.builder-exercise-row.edit-row label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; }
.builder-exercise-row.edit-row label input { margin-top: 0; }
body[data-theme="light"] .registered-workout-card,
body[data-theme="light"] .workout-list-hero,
body[data-theme="light"] .edit-workout-shell {
    background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.92));
}
body[data-theme="light"] .workout-meta-strip span,
body[data-theme="light"] .workout-day-preview span,
body[data-theme="light"] .builder-day-card.edit-mode {
    background: rgba(15,23,42,.035);
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .status-mini { color: #15803d; background: rgba(34,197,94,.12); }
@media (max-width: 1100px) {
    .registered-workouts-grid { grid-template-columns: 1fr; }
    .builder-exercise-row.edit-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    .workout-list-hero, .workout-card-top, .workout-actions { flex-direction: column; align-items: stretch; }
    .workout-meta-strip { grid-template-columns: 1fr; }
    .builder-exercise-row.edit-row { grid-template-columns: 1fr; }
}


/* Collapsible sidebar submenus */
.nav-group.collapsible {
    padding: 6px;
    border-radius: 18px;
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.06);
}
.nav-group-toggle {
    width: 100%;
    min-height: 42px;
    border: 0;
    outline: 0;
    border-radius: 14px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: transparent;
    color: var(--text);
    font-family: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: .18s ease;
}
.nav-group-toggle:hover {
    background: rgba(34,197,94,.09);
    color: #86efac;
}
.nav-group-toggle i {
    font-style: normal;
    transition: transform .18s ease;
    color: var(--muted);
}
.nav-group.open .nav-group-toggle i { transform: rotate(180deg); }
.nav-submenu {
    display: grid;
    gap: 6px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height .24s ease, opacity .18s ease, transform .18s ease, padding .18s ease;
    padding: 0 6px;
}
.nav-group.open .nav-submenu {
    max-height: 620px;
    opacity: 1;
    transform: translateY(0);
    padding: 6px;
}
.nav-submenu a {
    margin: 0;
    padding-right: 18px;
    position: relative;
}
.nav-submenu a::before {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    transform: translateY(-50%);
    background: rgba(134,239,172,.75);
}
body[data-theme="light"] .nav-group.collapsible {
    background: rgba(255,255,255,.78);
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .nav-group-toggle:hover {
    background: rgba(22,163,74,.09);
    color: #15803d;
}
body[data-theme="light"] .nav-submenu a::before { background: rgba(22,163,74,.75); }

/* AmFit transparent logo and login polish */
.brand-logo-wrap {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}
.brand-logo-wrap img {
    width: 110%;
    height: 110%;
}
.login-brand-hero {
    display: grid !important;
    justify-items: center;
    text-align: center;
    gap: 8px;
    margin-bottom: 22px;
}
.login-logo-mark {
    width: 190px;
    height: 150px;
    display: grid;
    place-items: center;
    background: transparent;
    border: 0;
    box-shadow: none;
    overflow: visible;
}
.login-logo-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.login-brand-hero h1 {
    margin: 0;
    font-size: clamp(34px, 5vw, 48px);
    line-height: 1;
    letter-spacing: .4px;
    color: var(--text);
}
.login-brand-hero p {
    margin: 4px 0 0;
    color: var(--muted);
}
body[data-theme="light"] .login-brand-hero h1 { color: #0f172a; }

/* AmFit responsive/collapsible sidebar + theme logos */
.sidebar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 22px;
}
.sidebar-head .brand { margin-bottom: 0; min-width: 0; }
.brand-logo-wrap {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}
.brand-logo { display: none !important; }
body[data-theme="light"] .logo-light { display: block !important; }
body[data-theme="dark"] .logo-dark { display: block !important; }
body[data-theme="midnight"] .logo-midnight { display: block !important; }
.sidebar-collapse-button,
.mobile-menu-button {
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.06);
    color: var(--text);
    cursor: pointer;
    transition: .18s ease;
}
.sidebar-collapse-button {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    font-size: 27px;
    line-height: 1;
}
.sidebar-collapse-button:hover {
    border-color: rgba(34,197,94,.34);
    background: rgba(34,197,94,.11);
    transform: translateX(2px);
}
.sidebar-collapse-button span { grid-area: 1 / 1; }
.sidebar-collapse-button .collapse-right { display: none; }
.app-shell {
    transition: grid-template-columns .22s ease;
}
.app-shell.sidebar-collapsed {
    grid-template-columns: 88px minmax(0, 1fr);
}
.app-shell.sidebar-collapsed .sidebar {
    padding-inline: 13px;
    overflow-x: hidden;
}
.app-shell.sidebar-collapsed .brand-text,
.app-shell.sidebar-collapsed .nav-title,
.app-shell.sidebar-collapsed .nav-block a,
.app-shell.sidebar-collapsed .nav-group-toggle span,
.app-shell.sidebar-collapsed .nav-submenu {
    opacity: 0;
    width: 0;
    height: 0;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden;
    pointer-events: none;
}
.app-shell.sidebar-collapsed .nav-block,
.app-shell.sidebar-collapsed .sidebar-head {
    justify-items: center;
}
.app-shell.sidebar-collapsed .brand {
    justify-content: center;
}
.app-shell.sidebar-collapsed .brand-logo-wrap {
    width: 58px;
    height: 58px;
}
.app-shell.sidebar-collapsed .nav-group.collapsible {
    padding: 0;
    border: 0;
    background: transparent;
}
.app-shell.sidebar-collapsed .nav-group-toggle {
    width: 44px;
    height: 44px;
    padding: 0;
    justify-content: center;
}
.app-shell.sidebar-collapsed .nav-group-toggle i { display: none; }
.app-shell.sidebar-collapsed .sidebar-collapse-button .collapse-left { display: none; }
.app-shell.sidebar-collapsed .sidebar-collapse-button .collapse-right { display: block; }
.app-shell.sidebar-collapsed .sidebar-collapse-button:hover { transform: translateX(-2px); }
.mobile-menu-button {
    display: none;
    position: fixed;
    top: 14px;
    right: 14px;
    z-index: 1200;
    width: 48px;
    height: 48px;
    border-radius: 18px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    flex-direction: column;
    backdrop-filter: blur(18px);
}
.mobile-menu-button span {
    width: 22px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: .18s ease;
}
.mobile-menu-button.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mobile-menu-button.open span:nth-child(2) { opacity: 0; }
.mobile-menu-button.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.sidebar-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.46);
    backdrop-filter: blur(6px);
    z-index: 999;
    opacity: 0;
    transition: .18s ease;
}
.sidebar-backdrop.open { opacity: 1; }
body[data-theme="light"] .sidebar-collapse-button,
body[data-theme="light"] .mobile-menu-button {
    background: rgba(255,255,255,.88);
    color: #0f172a;
    border-color: rgba(15,23,42,.10);
    box-shadow: 0 12px 30px rgba(15,23,42,.10);
}
body[data-theme="midnight"] .sidebar-collapse-button:hover,
body[data-theme="midnight"] .mobile-menu-button:hover {
    border-color: rgba(56,189,248,.34);
    background: rgba(56,189,248,.11);
}

/* Urgent message edit/delete UI */
.urgent-manager-grid { align-items: start; }
.form-hint { margin-top: -2px; color: var(--muted); line-height: 1.8; font-size: 13px; }
.urgent-list { display: grid; gap: 12px; }
.urgent-edit-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 14px;
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
}
.urgent-edit-card.info { border-color: rgba(96,165,250,.26); }
.urgent-edit-card.success { border-color: rgba(54,211,153,.26); }
.urgent-edit-card.warning { border-color: rgba(251,191,36,.28); }
.urgent-edit-card.danger { border-color: rgba(251,113,133,.30); }
.urgent-edit-form { display: grid; gap: 10px; }
.urgent-edit-top { display: grid; grid-template-columns: minmax(0, 1fr) 170px; gap: 10px; }
.urgent-edit-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
.urgent-edit-footer small { color: var(--muted); }
.icon-danger-button {
    min-height: 42px;
    padding: 0 15px;
    border: 1px solid rgba(251,113,133,.32);
    border-radius: 16px;
    background: rgba(251,113,133,.10);
    color: #fb7185;
    cursor: pointer;
    transition: .18s ease;
}
.icon-danger-button:hover { background: rgba(251,113,133,.18); transform: translateY(-2px); }
body[data-theme="light"] .urgent-edit-card {
    background: rgba(248,250,252,.94);
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .form-hint,
body[data-theme="light"] .urgent-edit-footer small { color: #64748b; }

@media (max-width: 1100px) {
    .mobile-menu-button { display: flex; }
    .app-shell,
    .app-shell.sidebar-collapsed { grid-template-columns: 1fr; }
    .main-content { padding-top: 76px; }
    .sidebar {
        position: fixed !important;
        top: 0;
        right: 0;
        z-index: 1100;
        width: min(86vw, 330px);
        height: 100vh !important;
        transform: translateX(105%);
        transition: transform .22s ease;
        border-left: 1px solid var(--card-border);
        box-shadow: -18px 0 50px rgba(0,0,0,.34);
    }
    .sidebar.mobile-open { transform: translateX(0); }
    .sidebar-backdrop { display: block; pointer-events: none; }
    .sidebar-backdrop.open { pointer-events: auto; }
    .sidebar-collapse-button { display: none; }
    .app-shell.sidebar-collapsed .brand-text,
    .app-shell.sidebar-collapsed .nav-title,
    .app-shell.sidebar-collapsed .nav-block a,
    .app-shell.sidebar-collapsed .nav-group-toggle span,
    .app-shell.sidebar-collapsed .nav-submenu {
        opacity: 1;
        width: auto;
        height: auto;
        padding: revert-layer;
        margin: revert-layer;
        overflow: visible;
        pointer-events: auto;
    }
}
@media (max-width: 720px) {
    .urgent-edit-card { grid-template-columns: 1fr; }
    .urgent-edit-top { grid-template-columns: 1fr; }
    .urgent-edit-footer { align-items: stretch; flex-direction: column; }
}


/* --- Menu & logout polish fixes --- */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.brand-logo-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
    object-position: center;
}
.sidebar-head {
    align-items: flex-start;
}
.brand {
    max-width: 100%;
}
.power-logout {
    width: 42px;
    height: 42px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    border-radius: 14px;
    background: rgba(239,68,68,.10);
    border: 1px solid rgba(239,68,68,.24);
    color: #ef4444;
    box-shadow: 0 12px 24px rgba(239,68,68,.12);
}
.power-logout svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    stroke-width: 2.1;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.power-logout:hover {
    background: rgba(239,68,68,.16);
    border-color: rgba(239,68,68,.36);
    color: #f87171;
    transform: translateY(-1px);
}
body[data-theme="light"] .power-logout {
    background: rgba(239,68,68,.08);
    border-color: rgba(239,68,68,.18);
    color: #dc2626;
}
.app-shell.sidebar-collapsed {
    grid-template-columns: 96px minmax(0, 1fr);
}
.app-shell.sidebar-collapsed .sidebar {
    padding-inline: 10px;
}
.app-shell.sidebar-collapsed .sidebar-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
}
.app-shell.sidebar-collapsed .brand {
    width: 100%;
    justify-content: center;
}
.app-shell.sidebar-collapsed .brand-logo-wrap {
    width: 64px;
    height: 64px;
    margin-inline: auto;
    overflow: hidden;
}
.app-shell.sidebar-collapsed .sidebar-collapse-button {
    order: 2;
}
.mobile-menu-button.open {
    right: auto;
    left: 14px;
}
@media (max-width: 1100px) {
    .mobile-menu-button {
        right: auto;
        left: 14px;
    }
    .sidebar-head {
        padding-left: 58px;
    }
    .sidebar.mobile-open .sidebar-head {
        padding-left: 58px;
    }
}


/* --- Athlete workout cards: clear order + larger metrics --- */
.workout-exercise-card {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.04));
    border: 1px solid rgba(255,255,255,.10);
}
.workout-exercise-card > img {
    height: 230px;
}
.workout-order-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    min-width: 62px;
    height: 62px;
    padding: 7px 10px;
    border-radius: 22px;
    display: grid;
    place-items: center;
    gap: 0;
    background: rgba(7,10,16,.76);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 16px 34px rgba(0,0,0,.28);
    backdrop-filter: blur(16px);
}
.workout-order-badge small {
    font-size: 10px;
    color: rgba(255,255,255,.68);
    line-height: 1;
}
.workout-order-badge b {
    font-size: 24px;
    color: #fff;
    line-height: 1;
}
.workout-order-badge.compact {
    min-width: 54px;
    height: 54px;
    border-radius: 19px;
}
.workout-order-badge.compact b { font-size: 21px; }
.workout-exercise-body {
    padding: 18px;
}
.workout-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.workout-title-row h3 {
    margin: 0;
    font-size: clamp(19px, 2.1vw, 26px);
    line-height: 1.5;
    letter-spacing: -.2px;
}
.workout-status-chip {
    white-space: nowrap;
    padding: 8px 11px;
    border-radius: 999px;
    font-size: 12px;
    color: #cbd5e1;
    background: rgba(255,255,255,.075);
    border: 1px solid rgba(255,255,255,.09);
}
.workout-status-chip.done {
    color: #6ee7b7;
    background: rgba(16,185,129,.12);
    border-color: rgba(16,185,129,.24);
}
.workout-status-chip.pending {
    color: #d7dde8;
}
.workout-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}
.workout-metrics span {
    min-height: 70px;
    padding: 11px 13px;
    border-radius: 18px;
    display: grid;
    align-content: center;
    gap: 5px;
    background: rgba(255,255,255,.075);
    border: 1px solid rgba(255,255,255,.09);
}
.workout-metrics small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.2;
}
.workout-metrics b {
    color: #fff;
    font-size: clamp(18px, 2vw, 24px);
    line-height: 1.25;
    font-weight: 900;
}
.workout-metrics.compact span { min-height: 62px; padding: 9px 11px; }
.workout-metrics.compact b { font-size: 18px; }
body[data-theme="light"] .workout-exercise-card {
    background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.92));
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .workout-order-badge {
    background: rgba(15,23,42,.88);
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .workout-title-row h3,
body[data-theme="light"] .workout-metrics b {
    color: #0f172a;
}
body[data-theme="light"] .workout-metrics span,
body[data-theme="light"] .workout-status-chip {
    background: rgba(15,23,42,.045);
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .workout-status-chip.done {
    color: #15803d;
    background: rgba(34,197,94,.10);
    border-color: rgba(34,197,94,.20);
}
@media (max-width: 760px) {
    .workout-metrics { grid-template-columns: 1fr; }
    .workout-title-row { flex-direction: column; }
    .workout-exercise-card > img { height: 190px; }
    .workout-order-badge {
        min-width: 54px;
        height: 54px;
        border-radius: 18px;
    }
}

/* Sports medicine, VIP, athlete overview and PDF export UI */
.vip-option-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(251,191,36,.12), rgba(255,255,255,.045));
    border: 1px solid rgba(251,191,36,.24);
    color: var(--text);
}
.vip-option-card input { width: auto; accent-color: #fbbf24; }
.vip-option-card b, .vip-option-card small { display: block; }
.vip-option-card small { color: var(--muted); margin-top: 4px; }
.vip-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    color: #fbbf24;
    background: rgba(251,191,36,.13);
    border: 1px solid rgba(251,191,36,.30);
    font-size: 12px;
    font-weight: 800;
}
.athlete-name-link { display: inline-flex; align-items: center; gap: 8px; color: var(--primary-2); font-weight: 800; }
.athlete-name-link:hover { text-decoration: underline; }
.sports-med-hero, .athlete-overview-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 24px;
    margin-bottom: 18px;
    background: radial-gradient(circle at 15% 20%, rgba(34,197,94,.13), transparent 28%), linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.035));
}
.sports-med-hero h2, .athlete-overview-hero h2 { margin: 6px 0; font-size: clamp(26px, 4vw, 42px); }
.sports-athlete-filter { min-width: 260px; display: grid; gap: 8px; }
.sports-med-form { display: grid; gap: 18px; }
.med-section { padding: 22px; }
.four-col { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.three-col { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.medical-question-list, .risk-grid, .posture-grid { display: grid; gap: 10px; }
.medical-question-row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 110px;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border-radius: 18px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
}
.medical-question-row b {
    width: 32px; height: 32px; border-radius: 12px; display: grid; place-items: center;
    background: rgba(34,197,94,.12); color: #86efac;
}
.switch-check { display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.switch-check input { width: auto; accent-color: #22c55e; }
.switch-check em { font-style: normal; color: var(--muted); }
.risk-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.posture-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.posture-card {
    display: grid;
    gap: 8px;
    padding: 14px;
    border-radius: 20px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
}
.posture-card b, .posture-card small { display: block; }
.posture-card small { color: var(--muted); line-height: 1.7; }
.profile-card.med-athlete-card { margin-top: 18px; padding: 22px; }
.medical-profile-view { display: grid; gap: 14px; }
.medical-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 10px;
}
.medical-summary-grid span, .medical-note-box {
    padding: 14px;
    border-radius: 18px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
}
.medical-summary-grid b, .medical-note-box b { display: block; color: var(--primary-2); margin-bottom: 6px; }
.medical-note-box p { margin: 0; color: var(--muted); line-height: 1.9; }
.overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.overview-plan-card {
    padding: 16px;
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
    margin-bottom: 12px;
    display: grid;
    gap: 12px;
}
.overview-plan-card b, .overview-plan-card span { display: block; }
.compact-meal-list { display: grid; gap: 8px; }
.compact-meal-list span { padding: 10px; border-radius: 14px; background: rgba(255,255,255,.055); color: var(--muted); }
.compact-meal-list b { color: var(--text); }
body[data-theme="light"] .vip-option-card,
body[data-theme="light"] .medical-question-row,
body[data-theme="light"] .posture-card,
body[data-theme="light"] .medical-summary-grid span,
body[data-theme="light"] .medical-note-box,
body[data-theme="light"] .overview-plan-card,
body[data-theme="light"] .compact-meal-list span {
    background: rgba(248,250,252,.92);
    border-color: rgba(15,23,42,.08);
    color: #0f172a;
}
body[data-theme="light"] .medical-note-box p,
body[data-theme="light"] .posture-card small,
body[data-theme="light"] .compact-meal-list span { color: #475569; }
@media (max-width: 1100px) {
    .four-col, .risk-grid, .posture-grid, .overview-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .sports-med-hero, .athlete-overview-hero { flex-direction: column; align-items: stretch; }
}
@media (max-width: 720px) {
    .four-col, .three-col, .risk-grid, .posture-grid, .medical-summary-grid, .overview-grid { grid-template-columns: 1fr; }
    .medical-question-row { grid-template-columns: 32px 1fr; }
    .switch-check { grid-column: 2; justify-content: flex-start; }
}

/* Athlete overview clickable cards and detail pages */
.clickable-overview-card {
    padding: 0 !important;
    overflow: hidden;
    transition: .18s ease;
}
.clickable-overview-card:hover {
    transform: translateY(-3px);
    border-color: rgba(34,197,94,.28);
    box-shadow: 0 18px 42px rgba(0,0,0,.22);
}
.overview-card-link {
    display: grid;
    gap: 12px;
    padding: 16px;
}
.overview-card-actions {
    display: flex;
    gap: 8px;
    padding: 0 16px 16px;
    flex-wrap: wrap;
}
.mini-action {
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.065);
    border: 1px solid rgba(255,255,255,.09);
    color: var(--text);
    font-size: 13px;
    transition: .18s ease;
}
.mini-action.primary {
    background: rgba(34,197,94,.12);
    border-color: rgba(34,197,94,.26);
    color: #86efac;
}
.mini-action:hover { transform: translateY(-2px); }
.detail-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 24px;
    margin-bottom: 18px;
}
.detail-hero h2 { margin: 6px 0 8px; font-size: clamp(28px, 4vw, 44px); }
.detail-hero p { color: var(--muted); margin: 0; }
.detail-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.vip-chip.big { padding: 10px 14px; border-radius: 999px; }
.plan-detail-days { display: grid; gap: 16px; }
.workout-detail-day { padding: 20px; }
.workout-detail-list { display: grid; gap: 12px; }
.workout-detail-item {
    display: grid;
    grid-template-columns: 48px 112px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 12px;
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
}
.exercise-order-badge, .meal-order {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: rgba(34,197,94,.14);
    color: #86efac;
    border: 1px solid rgba(34,197,94,.24);
    font-weight: 900;
    font-size: 18px;
}
.exercise-detail-media {
    width: 112px;
    height: 82px;
    border-radius: 18px;
    overflow: hidden;
    background: rgba(255,255,255,.06);
}
.exercise-detail-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: #86efac; }
.exercise-detail-main h3 { margin: 0 0 7px; font-size: 20px; }
.exercise-detail-main p { color: var(--muted); margin: 0 0 10px; line-height: 1.8; }
.large-metrics { justify-content: flex-start; }
.large-metrics span {
    padding: 10px 13px;
    border-radius: 16px;
    font-size: 14px;
    background: rgba(255,255,255,.08);
}
.large-metrics b { font-size: 20px; margin-left: 4px; }
.nutrition-detail-grid { display: grid; gap: 14px; }
.nutrition-detail-card {
    display: grid;
    grid-template-columns: 54px minmax(0,1fr);
    gap: 14px;
    align-items: start;
    padding: 18px;
}
.nutrition-detail-card h3 { margin: 6px 0 14px; font-size: 22px; }
.nutrition-detail-card p { color: var(--muted); line-height: 1.9; }
.meal-detail-metrics { display: flex; flex-wrap: wrap; gap: 8px; }
.meal-detail-metrics span { padding: 10px 12px; border-radius: 16px; background: rgba(249,115,22,.10); border: 1px solid rgba(249,115,22,.18); }
.meal-detail-metrics b { display: block; color: var(--muted); font-size: 12px; margin-bottom: 4px; }
.medical-disclosure summary {
    cursor: pointer;
    list-style: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 10px 16px;
    border-radius: 16px;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.24);
    color: #86efac;
    font-weight: 800;
    margin-bottom: 16px;
}
.medical-disclosure summary::-webkit-details-marker { display: none; }
.medical-profile-view { display: grid; gap: 16px; }
.medical-subtitle { margin: 8px 0 0; font-size: 20px; }
.readonly-med-list { display: grid; gap: 8px; }
.medical-question-row.readonly { align-items: center; }
.answer-chip {
    min-width: 54px;
    text-align: center;
    padding: 7px 10px;
    border-radius: 999px;
    font-style: normal;
    font-weight: 800;
}
.answer-chip.yes { color: #fca5a5; background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.22); }
.answer-chip.no { color: #86efac; background: rgba(34,197,94,.12); border: 1px solid rgba(34,197,94,.22); }
.posture-read-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.posture-read-grid span {
    display: grid;
    gap: 5px;
    padding: 13px;
    border-radius: 18px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
}
.posture-read-grid small { color: var(--muted); line-height: 1.7; }
.posture-read-grid em { font-style: normal; color: #86efac; font-weight: 800; }
body[data-theme="light"] .overview-plan-card,
body[data-theme="light"] .workout-detail-item,
body[data-theme="light"] .posture-read-grid span,
body[data-theme="light"] .nutrition-detail-card {
    background: rgba(248,250,252,.92);
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .mini-action { background: rgba(15,23,42,.045); color: #0f172a; border-color: rgba(15,23,42,.08); }
body[data-theme="light"] .mini-action.primary { background: rgba(34,197,94,.10); color: #15803d; border-color: rgba(34,197,94,.22); }
body[data-theme="light"] .medical-disclosure summary { color: #15803d; }
@media (max-width: 760px) {
    .detail-hero { flex-direction: column; align-items: stretch; }
    .workout-detail-item { grid-template-columns: 1fr; }
    .exercise-detail-media { width: 100%; height: 180px; }
    .posture-read-grid { grid-template-columns: 1fr; }
    .nutrition-detail-card { grid-template-columns: 1fr; }
}


/* Typography polish */
body, button, input, select, textarea {
    font-family: "IRYekan", Tahoma, Arial, sans-serif !important;
    font-weight: 400;
    letter-spacing: -0.01em;
}
h1, h2, h3, h4, .brand strong, .btn, .nav-block a, .nav-group-toggle, .kpi-card b, .feature-card b {
    font-family: "IRYekan", Tahoma, Arial, sans-serif !important;
    font-weight: 700;
}
.compact-row, .plan-card, .meal-card, .chat-bubble, .notification-item {
    line-height: 1.85;
}


/* Coach athletes page: collapsed create form + clickable dashboard athletes */
.collapsible-create-card {
    padding: 0 !important;
    overflow: hidden;
}
.create-athlete-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px;
    border-radius: var(--radius);
    transition: .18s ease;
}
.create-athlete-summary::-webkit-details-marker { display: none; }
.create-athlete-summary h2 { margin: 0 0 6px; }
.create-athlete-summary p { margin: 0; color: var(--muted); line-height: 1.8; }
.summary-toggle-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 128px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(34,197,94,.12);
    color: #86efac;
    border: 1px solid rgba(34,197,94,.22);
    font-size: 13px;
    white-space: nowrap;
}
.collapsible-create-card[open] .summary-toggle-badge::before { content: ""; }
.collapsible-create-card[open] .summary-toggle-badge { background: rgba(251,113,133,.10); color: #fb7185; border-color: rgba(251,113,133,.22); }
.collapsible-create-card[open] .summary-toggle-badge { font-size: 0; }
.collapsible-create-card[open] .summary-toggle-badge::after { content: "بستن فرم"; font-size: 13px; }
.collapsible-create-card .create-athlete-form {
    padding: 0 24px 24px;
    animation: softReveal .18s ease both;
}
.create-athlete-summary:hover {
    background: rgba(255,255,255,.035);
}
.athlete-dashboard-link {
    color: inherit;
    transition: .18s ease;
}
.athlete-dashboard-link:hover {
    transform: translateY(-2px);
    border-color: rgba(34,197,94,.28);
    background: rgba(34,197,94,.075);
}
.athlete-dashboard-link b {
    color: var(--text);
}
body[data-theme="light"] .summary-toggle-badge {
    background: rgba(34,197,94,.10);
    color: #15803d;
    border-color: rgba(34,197,94,.20);
}
body[data-theme="light"] .collapsible-create-card[open] .summary-toggle-badge {
    background: rgba(239,68,68,.08);
    color: #dc2626;
    border-color: rgba(239,68,68,.18);
}
body[data-theme="light"] .athlete-dashboard-link:hover {
    background: rgba(34,197,94,.08);
    border-color: rgba(34,197,94,.18);
}
@media (max-width: 720px) {
    .create-athlete-summary { flex-direction: column; align-items: stretch; }
    .summary-toggle-badge { width: 100%; }
}
@keyframes softReveal {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}


/* Exercise builder difficulty filter + clearer video links */
.difficulty-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}
.difficulty-chip {
    min-height: 38px;
    padding: 8px 13px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.055);
    color: var(--text);
    cursor: pointer;
    transition: .18s ease;
}
.difficulty-chip:hover,
.difficulty-chip.selected {
    border-color: rgba(34,197,94,.36);
    background: rgba(34,197,94,.13);
    color: #86efac;
    transform: translateY(-1px);
}
.exercise-has-video {
    align-self: center;
    font-style: normal;
    font-size: 11px;
    padding: 6px 9px;
    border-radius: 999px;
    color: #86efac;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.22);
    white-space: nowrap;
}
.video-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: fit-content;
    min-height: 38px;
    margin: 8px 0 2px;
    padding: 8px 13px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(34,197,94,.18), rgba(34,197,94,.08));
    color: #86efac;
    border: 1px solid rgba(34,197,94,.26);
    font-size: 13px;
    font-weight: 800;
}
.video-action:hover { transform: translateY(-1px); border-color: rgba(34,197,94,.44); background: rgba(34,197,94,.16); }
body[data-theme="light"] .difficulty-chip { color: #0f172a; background: rgba(15,23,42,.04); border-color: rgba(15,23,42,.10); }
body[data-theme="light"] .difficulty-chip:hover,
body[data-theme="light"] .difficulty-chip.selected { color: #166534; background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.26); }
body[data-theme="light"] .video-action,
body[data-theme="light"] .exercise-has-video { color: #166534; background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.22); }


.inline-exercise-link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dashed rgba(245,158,11,.35);
}
.inline-exercise-link:hover { color: var(--accent); border-bottom-color: var(--accent); }
.exercise-thumb-link {
    display: inline-flex;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(15,23,42,.18);
}
.exercise-thumb-link.large { display:block; }
.tiny-video-link {
    justify-self: end;
    align-self: center;
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
    font-size: .9rem;
}
.enhanced-compact-row { grid-template-columns: 72px 1fr auto; }
body[data-theme="light"] .inline-exercise-link { border-bottom-color: rgba(217,119,6,.35); }

/* Exercise library search/edit polish */
.exercise-search-bar {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 180px 160px auto auto;
    gap: 10px;
    align-items: center;
    margin: 18px 0 22px;
    padding: 12px;
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.08);
}
.exercise-modal-search {
    margin-bottom: 10px;
    border-color: rgba(245,158,11,.20);
    background: rgba(255,255,255,.07);
}
.clickable-card { position: relative; }
.exercise-card-main-link {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}
.exercise-library-body a,
.exercise-thumb video,
.exercise-thumb img { position: relative; z-index: 2; }
.exercise-edit-card { align-content: start; }
.edit-exercise-layout { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
.exercise-preview-card { padding: 18px; position: sticky; top: 22px; }
.exercise-preview-card img,
.exercise-preview-card video {
    width: 100%;
    aspect-ratio: 1.35 / 1;
    object-fit: cover;
    border-radius: 22px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
    margin: 10px 0 14px;
}
body[data-theme="light"] .exercise-search-bar,
body[data-theme="light"] .exercise-modal-search {
    background: rgba(248,250,252,.92);
    border-color: rgba(15,23,42,.10);
}
body[data-theme="light"] .exercise-preview-card img,
body[data-theme="light"] .exercise-preview-card video {
    border-color: rgba(15,23,42,.10);
}
@media (max-width: 900px) {
    .exercise-search-bar { grid-template-columns: 1fr; }
    .edit-exercise-layout { grid-template-columns: 1fr; }
    .exercise-preview-card { position: static; }
}

/* Themed native dropdown polish */
select,
.themed-select {
    color-scheme: dark;
    background-color: rgba(255,255,255,.075) !important;
    color: var(--text) !important;
    border: 1px solid var(--card-border) !important;
}
select option,
.themed-select option {
    background-color: #111827 !important;
    color: #f8fafc !important;
}
select option:checked,
.themed-select option:checked,
select option:hover,
.themed-select option:hover {
    background-color: #1f2937 !important;
    color: #ffffff !important;
}
body[data-theme="midnight"] select,
body[data-theme="midnight"] .themed-select { color-scheme: dark; background-color: rgba(15,23,42,.88) !important; }
body[data-theme="midnight"] select option,
body[data-theme="midnight"] .themed-select option {
    background-color: #06111f !important;
    color: #e0f2fe !important;
}
body[data-theme="light"] select,
body[data-theme="light"] .themed-select {
    color-scheme: light;
    background-color: #ffffff !important;
    color: #0f172a !important;
    border-color: rgba(15,23,42,.14) !important;
}
body[data-theme="light"] select option,
body[data-theme="light"] .themed-select option {
    background-color: #ffffff !important;
    color: #0f172a !important;
}
body[data-theme="light"] select option:checked,
body[data-theme="light"] .themed-select option:checked {
    background-color: #eaf4ef !important;
    color: #0f172a !important;
}
.card-action-row { position: relative; z-index: 3; }
.card-edit-hint { color: var(--muted); font-size: 12px; align-self: center; }
.exercise-card-main-link { z-index: 1; }
.exercise-library-body .exercise-video-link { position: relative; z-index: 4; }


/* Link/file execution upload controls */
.input-with-action {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}
.clear-link-button {
    min-height: 44px;
    padding: 0 14px;
    border-radius: 14px;
    border: 1px solid rgba(251,113,133,.28);
    background: rgba(251,113,133,.09);
    color: #fb7185;
    cursor: pointer;
    font-weight: 700;
    transition: .18s ease;
}
.clear-link-button:hover {
    background: rgba(251,113,133,.16);
    transform: translateY(-1px);
}
body[data-theme="light"] .clear-link-button {
    color: #dc2626;
    background: rgba(220,38,38,.07);
    border-color: rgba(220,38,38,.18);
}
@media (max-width: 640px) {
    .input-with-action { grid-template-columns: 1fr; }
}


/* Remove green dots from collapsible sidebar submenu items */
.nav-submenu a::before {
    content: none !important;
    display: none !important;
}
.nav-submenu a {
    padding-right: 14px;
}
body[data-theme="light"] .nav-submenu a::before {
    content: none !important;
    display: none !important;
}


/* Final UI polish: workout builder, quick actions, footer branding, about */
.single-column-builder {
    grid-template-columns: minmax(0, 1fr) !important;
    max-width: 1180px;
    margin-inline: auto;
}
.vip-top-option {
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(34,197,94,.12), rgba(255,255,255,.045));
    border: 1px solid rgba(34,197,94,.22);
}
.vip-top-option b { font-size: 18px; color: #86efac; }
body[data-theme="light"] .vip-top-option {
    background: linear-gradient(135deg, rgba(34,197,94,.10), rgba(255,255,255,.9));
    border-color: rgba(22,163,74,.18);
}
body[data-theme="light"] .vip-top-option b { color: #15803d; }
.quick-actions-panel { padding: 20px; }
.quick-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.quick-action-card {
    min-height: 126px;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,.09);
    background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035));
    display: grid;
    align-content: center;
    gap: 8px;
    transition: .18s ease;
}
.quick-action-card:hover {
    transform: translateY(-3px);
    border-color: rgba(34,197,94,.28);
    background: linear-gradient(180deg, rgba(34,197,94,.12), rgba(255,255,255,.04));
}
.quick-action-card b { font-size: 16px; }
.quick-action-card small { color: var(--muted); line-height: 1.8; }
.quick-icon {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    color: #86efac;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.20);
    font-size: 20px;
    font-weight: 900;
}
.primary-action {
    background: radial-gradient(circle at 20% 20%, rgba(34,197,94,.22), transparent 34%), linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
}
body[data-theme="light"] .quick-action-card {
    background: rgba(255,255,255,.86);
    border-color: rgba(15,23,42,.08);
    box-shadow: 0 14px 32px rgba(15,23,42,.06);
}
body[data-theme="light"] .quick-action-card:hover { background: #f0fdf4; border-color: rgba(22,163,74,.18); }
body[data-theme="light"] .quick-icon { color: #15803d; background: rgba(22,163,74,.10); }
.sidebar {
    display: flex;
    flex-direction: column;
}
.sidebar-footer-brand {
    margin-top: auto;
    padding: 16px 12px 8px;
    border-top: 1px solid rgba(255,255,255,.08);
    color: var(--muted);
    display: grid;
    gap: 4px;
    text-align: center;
    font-size: 11px;
    line-height: 1.7;
}
.sidebar-footer-brand b { color: rgba(255,255,255,.76); font-size: 11px; }
.sidebar-footer-brand span { direction: ltr; }
body[data-theme="light"] .sidebar-footer-brand { border-top-color: rgba(15,23,42,.08); color: #64748b; }
body[data-theme="light"] .sidebar-footer-brand b { color: #334155; }
.app-shell.sidebar-collapsed .sidebar-footer-brand {
    opacity: 0;
    height: 0;
    padding: 0;
    overflow: hidden;
}
.login-powered {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,.08);
    text-align: center;
    display: grid;
    gap: 4px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.7;
}
.login-powered b { color: rgba(255,255,255,.78); }
.login-powered span { direction: ltr; }
.about-hero {
    padding: 26px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin-bottom: 18px;
    background: radial-gradient(circle at 12% 20%, rgba(34,197,94,.14), transparent 34%), var(--card);
}
.about-hero h2 { margin: 8px 0; font-size: clamp(24px, 3vw, 38px); }
.about-hero p { color: var(--muted); line-height: 2; margin: 0; max-width: 760px; }
.about-hero img { width: 150px; height: 110px; object-fit: contain; }
.about-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.about-info-card {
    padding: 20px;
    display: grid;
    gap: 10px;
    min-height: 170px;
    align-content: center;
}
.about-info-card span { color: var(--muted); }
.about-info-card b { font-size: 20px; }
.about-info-card p { margin: 0; color: var(--muted); line-height: 2; }
.about-info-card a {
    justify-self: start;
    padding: 9px 12px;
    border-radius: 999px;
    background: rgba(34,197,94,.10);
    color: #86efac;
    border: 1px solid rgba(34,197,94,.18);
}
.about-info-card.highlight { grid-column: span 2; }
body[data-theme="light"] .login-powered { border-top-color: rgba(15,23,42,.08); color: #64748b; }
body[data-theme="light"] .login-powered b { color: #334155; }
body[data-theme="light"] .about-info-card a { color: #15803d; background: rgba(22,163,74,.10); }
body[data-theme="light"] .about-hero p,
body[data-theme="light"] .about-info-card p,
body[data-theme="light"] .about-info-card span { color: #64748b; }
@media(max-width: 900px) {
    .quick-action-grid, .about-card-grid { grid-template-columns: 1fr; }
    .about-info-card.highlight { grid-column: auto; }
    .about-hero { flex-direction: column; align-items: flex-start; }
}

/* Multi-language selector */
.language-picker { position: relative; display: inline-flex; align-items: center; }
.language-toggle {
    min-width: 72px;
    height: 42px;
    padding: 0 12px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.07);
    color: var(--text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    cursor: pointer;
    transition: .18s ease;
    font-weight: 800;
}
.language-toggle:hover { transform: translateY(-1px); border-color: rgba(34,197,94,.32); background: rgba(34,197,94,.10); }
.language-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    min-width: 184px;
    padding: 10px;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(15,23,42,.96);
    box-shadow: 0 22px 50px rgba(0,0,0,.34);
    backdrop-filter: blur(20px);
    display: none;
    z-index: 1300;
}
.language-menu.open { display: grid; gap: 8px; }
.language-menu button {
    border: 0;
    width: 100%;
    display: grid;
    grid-template-columns: 30px 34px 1fr;
    gap: 8px;
    align-items: center;
    text-align: start;
    color: var(--text);
    background: rgba(255,255,255,.055);
    border-radius: 14px;
    padding: 10px;
    cursor: pointer;
    transition: .18s ease;
}
.language-menu button:hover,
.language-menu button.active { background: rgba(34,197,94,.14); color: #bbf7d0; }
.language-menu small { color: var(--muted); }
.login-lang-row { display:flex; justify-content:center; margin-bottom: 12px; }
.login-lang-row .language-menu { left: 50%; transform: translateX(-50%); }
body[data-theme="light"] .language-toggle { background: rgba(255,255,255,.88); color: #0f172a; border-color: rgba(15,23,42,.10); }
body[data-theme="light"] .language-menu { background: rgba(255,255,255,.98); border-color: rgba(15,23,42,.10); box-shadow: 0 22px 50px rgba(15,23,42,.14); }
body[data-theme="light"] .language-menu button { color: #0f172a; background: rgba(15,23,42,.045); }
body[data-theme="light"] .language-menu button:hover,
body[data-theme="light"] .language-menu button.active { background: rgba(34,197,94,.11); color: #15803d; }
body[data-lang="en"] { direction: ltr; }
body[data-lang="en"] .sidebar { border-left: 0; border-right: 1px solid var(--card-border); }
body[data-lang="en"] .topbar,
body[data-lang="en"] .section-head,
body[data-lang="en"] .workout-title-row,
body[data-lang="en"] .quick-action-grid,
body[data-lang="en"] .about-hero { direction: ltr; }
body[data-lang="en"] .nav-block a,
body[data-lang="en"] .nav-group-toggle,
body[data-lang="en"] input,
body[data-lang="en"] select,
body[data-lang="en"] textarea,
body[data-lang="en"] th,
body[data-lang="en"] td { text-align: left; }
body[data-lang="en"] .brand { direction: ltr; }
body[data-lang="en"] .language-menu { left: auto; right: 0; }
@media (max-width: 720px) {
    .top-actions { flex-wrap: wrap; border-radius: 24px; }
    .language-menu { left: auto; right: 0; }
}

/* Subscription and payment settings */
.coach-subscription-top-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.07);
    color: var(--text);
    white-space: nowrap;
}
.coach-subscription-top-badge b { font-size: 13px; }
.coach-subscription-top-badge span { color: var(--muted); font-size: 12px; }
.coach-subscription-top-badge.pro { border-color: rgba(232,200,120,.44); background: rgba(232,200,120,.14); color: #fde68a; }
.coach-subscription-top-badge.classic { border-color: rgba(251,113,133,.42); background: rgba(251,113,133,.12); color: #fb7185; }
.coach-subscription-top-badge.expired { border-color: rgba(239,68,68,.48); background: rgba(239,68,68,.14); color: #f87171; }
.subscription-hero {
    display: grid;
    grid-template-columns: minmax(0,1fr) 260px;
    gap: 20px;
    align-items: center;
    padding: 28px;
    margin-bottom: 18px;
}
.subscription-hero h2 { margin: 10px 0 8px; font-size: clamp(28px,4vw,48px); }
.subscription-hero p { margin: 0; color: var(--muted); line-height: 2; }
.subscription-status-card {
    min-height: 190px;
    padding: 24px;
    border-radius: 28px;
    border: 1px solid var(--card-border);
    background: rgba(255,255,255,.07);
    display: grid;
    align-content: center;
    justify-items: center;
    text-align: center;
    gap: 8px;
}
.subscription-status-card span {
    padding: 8px 14px;
    border-radius: 999px;
    font-weight: 900;
}
.subscription-status-card strong { font-size: 52px; line-height: 1; }
.subscription-status-card small, .subscription-status-card em { color: var(--muted); font-style: normal; }
.subscription-status-card.pro { background: radial-gradient(circle at top, rgba(232,200,120,.24), rgba(255,255,255,.06)); border-color: rgba(232,200,120,.36); }
.subscription-status-card.pro span, .gold-tag { background: rgba(232,200,120,.16); color: #fde68a; border-color: rgba(232,200,120,.34); }
.subscription-status-card.classic { background: radial-gradient(circle at top, rgba(251,113,133,.22), rgba(255,255,255,.06)); border-color: rgba(251,113,133,.34); }
.subscription-status-card.classic span, .danger-tag { background: rgba(251,113,133,.14); color: #fb7185; border-color: rgba(251,113,133,.34); }
.subscription-status-card.expired { background: radial-gradient(circle at top, rgba(239,68,68,.22), rgba(255,255,255,.06)); border-color: rgba(239,68,68,.34); }
.coach-pricing-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-bottom: 18px; }
.price-card { padding: 26px; border: 1px solid var(--card-border); border-radius: 30px; background: var(--card); box-shadow: var(--shadow); }
.price-card h3 { margin: 16px 0 8px; font-size: 28px; }
.price { display: flex; align-items: baseline; gap: 8px; margin: 14px 0; color: var(--primary-2); }
.price strong { font-size: 52px; }
.list { list-style: none; padding: 0; margin: 18px 0; display: grid; gap: 10px; color: var(--muted); }
.list li::before { content: '✓'; color: var(--success); margin-left: 8px; }
.red-action { background: linear-gradient(135deg,#fb7185,#ef4444)!important; color: #fff!important; }
.gold-action { background: linear-gradient(135deg,#fde68a,#d9b86f)!important; color: #16130b!important; }
.settings-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.8fr); gap: 18px; }
.sms-balance-card { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 16px 0; }
.sms-balance-card div { padding: 18px; border-radius: 22px; background: rgba(255,255,255,.07); border: 1px solid var(--card-border); }
.sms-balance-card small { color: var(--muted); display: block; }
.sms-balance-card b { font-size: 28px; color: var(--primary-2); }
.transaction-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-radius: 18px; border: 1px solid var(--card-border); background: rgba(255,255,255,.055); margin-bottom: 10px; }
.transaction-row span { display: block; color: var(--muted); font-size: 12px; margin-top: 5px; }
.transaction-row.paid em { color: var(--success); }
.transaction-row.failed em { color: var(--danger); }
.transaction-row.pending em { color: var(--warning); }
.payment-security-note { padding: 18px 22px; margin-top: 18px; display: grid; gap: 6px; color: var(--muted); }
.payment-security-note b { color: var(--text); }
.payment-result-card { max-width: 560px; margin: 60px auto; padding: 40px; text-align: center; }
.payment-result-icon { width: 82px; height: 82px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 20px; font-size: 40px; font-weight: 900; }
.payment-result-card.success .payment-result-icon { background: rgba(54,211,153,.16); color: var(--success); }
.payment-result-card.danger .payment-result-icon { background: rgba(251,113,133,.16); color: var(--danger); }
@media (max-width: 900px) {
    .subscription-hero, .coach-pricing-grid, .settings-grid { grid-template-columns: 1fr; }
    .coach-subscription-top-badge span { display: none; }
    .sms-balance-card { grid-template-columns: 1fr; }
}


/* Finance transactions page */
.finance-hero-card .section-head { align-items: center; }
.finance-transaction-list {
    display: grid;
    gap: 12px;
}
.finance-transaction-item {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) auto;
    gap: 12px;
    align-items: center;
    padding: 16px;
    border: 1px solid var(--card-border);
    border-radius: 22px;
    background: rgba(255,255,255,.045);
}
.finance-transaction-main {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.finance-transaction-main b {
    display: block;
    color: var(--text);
    font-size: 1rem;
}
.finance-transaction-main small,
.finance-transaction-ref {
    color: var(--muted);
}
.finance-status-dot {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: #f59e0b;
    box-shadow: 0 0 0 6px rgba(245,158,11,.12);
    flex: 0 0 auto;
}
.finance-transaction-item.paid .finance-status-dot {
    background: #22c55e;
    box-shadow: 0 0 0 6px rgba(34,197,94,.12);
}
.finance-transaction-item.failed .finance-status-dot,
.finance-transaction-item.expired .finance-status-dot {
    background: #ef4444;
    box-shadow: 0 0 0 6px rgba(239,68,68,.12);
}
.finance-transaction-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: flex-end;
}
.finance-transaction-meta strong { white-space: nowrap; }
.finance-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 800;
    color: #fbbf24;
    background: rgba(245,158,11,.12);
    border: 1px solid rgba(245,158,11,.2);
    white-space: nowrap;
}
.finance-status-badge.paid {
    color: #86efac;
    background: rgba(34,197,94,.12);
    border-color: rgba(34,197,94,.2);
}
.finance-status-badge.failed,
.finance-status-badge.expired {
    color: #fda4af;
    background: rgba(239,68,68,.12);
    border-color: rgba(239,68,68,.2);
}
.finance-transaction-ref {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: .82rem;
    direction: ltr;
    justify-content: flex-end;
}
.finance-transaction-ref span {
    padding: 7px 10px;
    border-radius: 12px;
    background: rgba(255,255,255,.05);
}
body[data-theme="light"] .finance-transaction-item { background: rgba(255,255,255,.78); }
body[data-theme="light"] .finance-transaction-ref span { background: rgba(15,23,42,.05); }
@media (max-width: 720px) {
    .finance-transaction-item { grid-template-columns: 1fr; }
    .finance-transaction-meta { justify-content: space-between; }
    .finance-transaction-ref { justify-content: flex-start; }
}

/* InBody minimal cards */
.inbody-hero-card {
    padding: 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.inbody-hero-main { display: flex; align-items: center; gap: 16px; min-width: 0; }
.inbody-hero-main img {
    width: 76px;
    height: 76px;
    border-radius: 26px;
    object-fit: cover;
    border: 1px solid var(--card-border);
    background: rgba(255,255,255,.06);
}
.inbody-hero-main h2 { margin: 4px 0 6px; }
.inbody-hero-main p { color: var(--muted); margin: 0; line-height: 1.8; }
.inbody-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.inbody-form-grid label { display: grid; gap: 8px; color: var(--text); }
.inbody-form-grid small { color: var(--muted); line-height: 1.7; }
.inbody-notes-field { grid-column: 1 / -1; }
.inbody-submit { grid-column: 1 / -1; justify-self: end; min-width: 190px; }
.inbody-list { display: grid; gap: 12px; }
.inbody-test-card {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border-radius: 24px;
    border: 1px solid var(--card-border);
    background: rgba(255,255,255,.055);
    transition: .18s ease;
}
.inbody-test-card:hover { transform: translateY(-2px); border-color: rgba(30,211,21,.34); background: rgba(30,211,21,.07); }
.inbody-file-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(30,211,21,.18), rgba(255,255,255,.06));
    color: var(--primary-2);
    font-weight: 900;
    letter-spacing: .5px;
}
.inbody-test-card b { display: block; margin-bottom: 5px; }
.inbody-test-card span, .inbody-test-card small { display: block; color: var(--muted); line-height: 1.8; }
.inbody-test-card em { color: var(--primary-2); font-style: normal; font-weight: 800; }
.inbody-profile-entry {
    padding: 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 18px;
}
.inbody-profile-entry h2 { margin: 4px 0 6px; }
.inbody-profile-entry p { margin: 0; color: var(--muted); line-height: 1.8; }
body[data-theme="light"] .inbody-test-card,
body[data-theme="light"] .inbody-upload-card,
body[data-theme="light"] .inbody-hero-card,
body[data-theme="light"] .inbody-profile-entry {
    background: rgba(255,255,255,.92);
    border-color: rgba(15,23,42,.08);
}
@media (max-width: 760px) {
    .inbody-hero-card, .inbody-profile-entry { display: grid; }
    .inbody-form-grid { grid-template-columns: 1fr; }
    .inbody-submit { width: 100%; justify-self: stretch; }
    .inbody-test-card { grid-template-columns: 58px minmax(0, 1fr); }
    .inbody-test-card em { grid-column: 2; }
}


/* Login video background */
.login-video-bg {
    position: fixed;
    inset: 0;
    z-index: -2;
    overflow: hidden;
    background: #05070b;
}

.login-video-bg video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .60;
    filter: blur(10px) saturate(1.08) contrast(1.06);
    transform: scale(1.04);
}

.login-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        radial-gradient(circle at 72% 18%, rgba(30,211,21,.18), transparent 32%),
        radial-gradient(circle at 15% 78%, rgba(249,115,22,.14), transparent 34%),
        linear-gradient(135deg, rgba(3,7,18,.82), rgba(3,7,18,.58) 46%, rgba(3,7,18,.84));
    backdrop-filter: blur(2px);
}

body:has(.login-video-bg) {
    background: #05070b !important;
}

body:has(.login-video-bg) .app-shell,
body:has(.login-video-bg) .main-content {
    background: transparent !important;
}

body:has(.login-video-bg) .topbar,
body:has(.login-video-bg) .sidebar,
body:has(.login-video-bg) .mobile-menu-button,
body:has(.login-video-bg) .sidebar-backdrop {
    display: none !important;
}

body:has(.login-video-bg) .app-shell {
    display: block !important;
    min-height: 100vh;
}

body:has(.login-video-bg) .main-content {
    min-height: 100vh;
    padding: 0 !important;
    display: grid;
    place-items: center;
}

body:has(.login-video-bg) .glass-card,
body:has(.login-video-bg) .login-card,
body:has(.login-video-bg) .auth-card {
    background: rgba(8, 12, 18, .66) !important;
    border-color: rgba(255,255,255,.16) !important;
    box-shadow: 0 30px 90px rgba(0,0,0,.42) !important;
    backdrop-filter: blur(24px) saturate(1.1) !important;
}

body[data-theme="light"]:has(.login-video-bg) .glass-card,
body[data-theme="light"]:has(.login-video-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .auth-card {
    background: rgba(255,255,255,.72) !important;
    border-color: rgba(15,23,42,.10) !important;
}

@media (max-width: 760px) {
    .login-video-bg video {
        filter: blur(8px) saturate(1.06) contrast(1.05);
        transform: scale(1.08);
    }
}


/* Coach-selected panel background */
.coach-panel-bg-layer {
    position: fixed;
    inset: 0;
    z-index: -3;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: .60;
    filter: blur(12px) saturate(1.08) contrast(1.04);
    transform: scale(1.035);
    pointer-events: none;
}

body.has-panel-bg::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background:
        radial-gradient(circle at 76% 12%, rgba(30,211,21,.16), transparent 32%),
        radial-gradient(circle at 12% 86%, rgba(249,115,22,.12), transparent 30%),
        linear-gradient(135deg, rgba(4,8,15,.76), rgba(4,8,15,.50) 48%, rgba(4,8,15,.82));
    backdrop-filter: blur(2px);
}

body[data-theme="light"].has-panel-bg::before {
    background:
        radial-gradient(circle at 76% 12%, rgba(30,211,21,.10), transparent 34%),
        radial-gradient(circle at 12% 86%, rgba(249,115,22,.09), transparent 30%),
        linear-gradient(135deg, rgba(248,250,252,.84), rgba(248,250,252,.62) 48%, rgba(248,250,252,.88));
}

body.has-panel-bg .sidebar,
body.has-panel-bg .topbar,
body.has-panel-bg .glass-card,
body.has-panel-bg .feature-card,
body.has-panel-bg .kpi-card {
    backdrop-filter: blur(24px) saturate(1.08);
}

.panel-background-settings-card {
    overflow: hidden;
}

.panel-bg-preview {
    min-height: 220px;
    border-radius: 28px;
    border: 1px solid var(--card-border);
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
    margin-bottom: 18px;
}

.panel-bg-preview::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(4,8,15,.42);
    backdrop-filter: blur(6px);
}

.panel-bg-preview span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    font-weight: 800;
}

.panel-bg-upload-form {
    display: grid;
    gap: 12px;
}

.panel-bg-remove-form {
    margin-top: 12px;
}

body[data-theme="light"] .panel-bg-preview::before {
    background: rgba(15,23,42,.20);
}


/* Login video app-size fix */
body:has(.login-video-bg) .login-video-bg {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #05070b;
}

body:has(.login-video-bg) .login-video-bg video {
    position: absolute;
    top: 0;
    left: 50%;
    right: auto;
    width: min(100vw, 540px);
    height: 100svh;
    max-width: 540px;
    max-height: 100svh;
    object-fit: cover;
    object-position: center center;
    transform: translateX(-50%) !important;
    opacity: .60;
    filter: blur(7px) saturate(1.05) contrast(1.04);
}

body:has(.login-video-bg) .login-video-bg::before,
body:has(.login-video-bg) .login-video-bg::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: max(0px, calc((100vw - 540px) / 2));
    z-index: 1;
    background: rgba(3, 7, 18, .78);
    backdrop-filter: blur(18px);
    pointer-events: none;
}

body:has(.login-video-bg) .login-video-bg::before { right: 0; }
body:has(.login-video-bg) .login-video-bg::after { left: 0; }
body:has(.login-video-bg) .login-video-overlay { z-index: 2; }

@media (max-width: 540px) {
    body:has(.login-video-bg) .login-video-bg video {
        width: 100vw;
        max-width: 100vw;
        height: 100svh;
        object-fit: cover;
        transform: translateX(-50%) !important;
        filter: blur(5px) saturate(1.04) contrast(1.03);
    }

    body:has(.login-video-bg) .login-video-bg::before,
    body:has(.login-video-bg) .login-video-bg::after { display: none; }
}


/* Club / sales panels */
.quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
}
.quick-action-card {
    display: block;
    padding: 20px;
    border-radius: 24px;
    border: 1px solid var(--card-border, rgba(255,255,255,.12));
    background: rgba(255,255,255,.06);
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.quick-action-card:hover {
    transform: translateY(-2px);
    border-color: rgba(30,211,21,.35);
    background: rgba(30,211,21,.08);
}
.quick-action-card b { display:block; font-size:1.05rem; margin-bottom:6px; }
.quick-action-card span { color: var(--muted, #94a3b8); font-size:.92rem; }


.multi-role-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 540px) {
    .multi-role-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


.admin-login-card .btn-login {
    background: linear-gradient(135deg, #f97316, #f59e0b);
}

.club-login-card .btn-login {
    background: linear-gradient(135deg, #16a34a, #22c55e);
}


/* Admin & club panels: remove redundant floating mobile menu */
body.role-admin .mobile-menu-button,
body.role-clubadmin .mobile-menu-button {
    display: none !important;
}

/* Minimal admin entity lists */
.admin-list-hero {
    margin-bottom: 18px;
}

.admin-list-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.admin-search-form {
    display: flex;
    gap: 10px;
    align-items: center;
    flex: 1;
    min-width: 280px;
}

.admin-search-form input {
    flex: 1;
    min-width: 220px;
}

.admin-entity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}

.admin-entity-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
    border-radius: 26px;
    text-decoration: none;
    color: inherit;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.10);
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.admin-entity-card:hover {
    transform: translateY(-2px);
    border-color: rgba(249,115,22,.34);
    background: rgba(249,115,22,.075);
}

.entity-main {
    display: flex;
    align-items: center;
    gap: 14px;
}

.entity-avatar {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: rgba(255,255,255,.075);
    border: 1px solid rgba(255,255,255,.10);
    font-size: 1.4rem;
}

.entity-main h3 {
    margin: 0 0 5px;
    font-size: 1.1rem;
}

.entity-main p,
.entity-meta span {
    color: var(--muted, #94a3b8);
}

.entity-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.entity-meta span {
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    font-size: .86rem;
}

.entity-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.status-pill {
    padding: 7px 12px;
    border-radius: 999px;
    font-size: .86rem;
    font-weight: 800;
}

.status-pill.ok {
    color: #86efac;
    background: rgba(34,197,94,.13);
    border: 1px solid rgba(34,197,94,.25);
}

.status-pill.off {
    color: #fca5a5;
    background: rgba(239,68,68,.12);
    border: 1px solid rgba(239,68,68,.24);
}

.edit-link {
    color: #fed7aa;
    font-weight: 800;
}

.empty-state {
    padding: 34px;
    text-align: center;
    color: var(--muted, #94a3b8);
    border: 1px dashed rgba(255,255,255,.16);
    border-radius: 24px;
}

.soft-divider {
    border: 0;
    border-top: 1px solid rgba(255,255,255,.10);
    margin: 18px 0;
}

.check-row {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
}

.check-row input {
    width: auto !important;
}

.mini-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
}

.mini-stat-grid article {
    padding: 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
}

.mini-stat-grid span {
    display: block;
    color: var(--muted, #94a3b8);
    margin-bottom: 8px;
}

.mini-stat-grid b {
    font-size: 1.45rem;
}

@media (max-width: 720px) {
    .admin-search-form {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-search-form input {
        min-width: 0;
    }

    .admin-entity-grid {
        grid-template-columns: 1fr;
    }
}


/* Safety: never render duplicated nav/menu blocks inside header actions */
.top-actions .nav-block {
    display: none !important;
}

/* Powered by links */
.sidebar-footer-brand a,
.login-powered a {
    color: inherit;
    text-decoration: none;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    transition: opacity .18s ease, transform .18s ease;
}

.sidebar-footer-brand a:hover,
.login-powered a:hover {
    opacity: .82;
    transform: translateY(-1px);
}


/* Club dashboard summary card */
.club-summary-card {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 1.6fr;
    gap: 18px;
    align-items: stretch;
    padding: 24px;
    border-radius: 32px;
    margin: 18px 0 22px;
    background:
        radial-gradient(circle at 8% 18%, rgba(250, 204, 21, .12), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 26px 80px rgba(0,0,0,.22);
}

.club-summary-main {
    padding: 18px;
    border-radius: 26px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.08);
}

.club-summary-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-radius: 999px;
    color: #fde68a;
    background: rgba(250, 204, 21, .12);
    border: 1px solid rgba(250, 204, 21, .22);
    font-weight: 800;
    font-size: .86rem;
    margin-bottom: 14px;
}

.club-summary-main h2 {
    margin: 0 0 8px;
    font-size: clamp(1.55rem, 3vw, 2.25rem);
}

.club-summary-main p {
    margin: 0;
    color: var(--muted, #94a3b8);
    line-height: 1.9;
}

.club-summary-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.club-summary-metrics article {
    min-height: 142px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px;
    border-radius: 26px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
}

.club-summary-metrics span,
.club-summary-metrics small {
    color: var(--muted, #94a3b8);
}

.club-summary-metrics b {
    display: block;
    margin: 8px 0;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1;
    color: #fff;
}

.ok-text {
    color: #86efac !important;
}

.off-text {
    color: #fca5a5 !important;
}

@media (max-width: 900px) {
    .club-summary-card {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .club-summary-metrics {
        grid-template-columns: 1fr;
    }
}


/* Professional reporting and progress expansion */
.pro-hero-card {
    padding: 28px;
    border-radius: 34px;
    margin-bottom: 20px;
    background:
        radial-gradient(circle at 15% 18%, rgba(34,197,94,.13), transparent 32%),
        radial-gradient(circle at 82% 20%, rgba(249,115,22,.13), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.12);
}

.pro-hero-card h2 {
    margin: 8px 0;
    font-size: clamp(1.65rem, 3vw, 2.4rem);
}

.pro-hero-card p {
    margin: 0;
    color: var(--muted, #94a3b8);
    line-height: 1.9;
}

.pro-metric-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
    margin: 18px 0 22px;
}

.pro-metric-grid article {
    padding: 20px;
    border-radius: 28px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 18px 55px rgba(0,0,0,.18);
}

.pro-metric-grid span,
.pro-metric-grid small {
    display: block;
    color: var(--muted, #94a3b8);
}

.pro-metric-grid b {
    display: block;
    margin: 10px 0 6px;
    font-size: clamp(1.8rem, 4vw, 3rem);
    color: #fff;
}

.grid-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.inline-form {
    min-width: 240px;
}

.inline-form select {
    width: 100%;
}

.alert-stack {
    display: grid;
    gap: 12px;
}

.smart-alert-card {
    padding: 16px 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.10);
}

.smart-alert-card.warning {
    border-color: rgba(250,204,21,.25);
    background: rgba(250,204,21,.08);
}

.smart-alert-card.danger {
    border-color: rgba(239,68,68,.25);
    background: rgba(239,68,68,.08);
}

.smart-alert-card p {
    color: var(--muted, #94a3b8);
    margin: 6px 0 0;
}

.progress-bars {
    display: grid;
    gap: 12px;
}

.progress-bars article {
    padding: 16px;
    border-radius: 22px;
    background: rgba(255,255,255,.052);
    border: 1px solid rgba(255,255,255,.09);
}

.progress-bars span {
    display: block;
    color: var(--muted, #94a3b8);
    margin: 8px 0 10px;
}

.mini-bar {
    height: 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    overflow: hidden;
}

.mini-bar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(34,197,94,.75), rgba(249,115,22,.75));
}

.btn.tiny {
    padding: 7px 11px;
    font-size: .82rem;
    border-radius: 12px;
}

textarea {
    min-height: 120px;
    resize: vertical;
}

@media (max-width: 900px) {
    .grid-two {
        grid-template-columns: 1fr;
    }
}


/* Luxury nutrition builder and professional page polish */
.nutrition-lux-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 22px;
    padding: 30px;
    border-radius: 36px;
    margin-bottom: 20px;
    background:
        radial-gradient(circle at 12% 18%, rgba(249,115,22,.18), transparent 32%),
        radial-gradient(circle at 88% 20%, rgba(34,197,94,.13), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.13);
    box-shadow: 0 28px 90px rgba(0,0,0,.26);
}

.nutrition-lux-hero h2 {
    margin: 8px 0;
    font-size: clamp(1.7rem, 3vw, 2.6rem);
}

.nutrition-lux-hero p {
    margin: 0;
    color: var(--muted, #94a3b8);
    line-height: 1.9;
    max-width: 820px;
}

.nutrition-hero-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.nutrition-builder-shell {
    display: grid;
    gap: 20px;
}

.nutrition-main-card,
.nutrition-days-card {
    border-radius: 34px;
}

.nutrition-days-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 16px;
}

.nutrition-day-editor {
    padding: 18px;
    border-radius: 28px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.065), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.105);
}

.day-editor-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.day-editor-head span {
    min-width: 58px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: #fed7aa;
    background: rgba(249,115,22,.12);
    border: 1px solid rgba(249,115,22,.22);
    font-weight: 900;
}

.day-editor-head input {
    flex: 1;
}

.nutrition-day-editor textarea {
    min-height: 210px;
    font-size: .92rem;
    line-height: 2;
}

.nutrition-submit {
    margin-top: 18px;
}

.nutrition-plan-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 16px;
}

.nutrition-plan-card {
    padding: 20px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 10% 10%, rgba(34,197,94,.10), transparent 36%),
        rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.10);
    display: grid;
    gap: 16px;
}

.nutrition-plan-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.nutrition-plan-top span {
    color: var(--muted, #94a3b8);
}

.nutrition-plan-top h3 {
    margin: 6px 0 0;
    font-size: 1.22rem;
}

.nutrition-plan-top b {
    color: #fed7aa;
    background: rgba(249,115,22,.12);
    border: 1px solid rgba(249,115,22,.22);
    padding: 8px 12px;
    border-radius: 999px;
    white-space: nowrap;
}

.nutrition-plan-stats {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.nutrition-plan-stats span {
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.065);
    color: var(--muted, #94a3b8);
    font-size: .86rem;
}

.nutrition-detail-days {
    display: grid;
    gap: 18px;
}

.nutrition-detail-day {
    padding: 22px;
    border-radius: 34px;
}

.lux-meal-list {
    display: grid;
    gap: 12px;
}

.lux-meal-card {
    background:
        linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 26px;
}

.add-meal-form {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,.10);
}

.four-col {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.alert-card.success {
    padding: 14px 18px;
    border-radius: 18px;
    color: #86efac;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.24);
    margin-bottom: 14px;
}

.alert-card.danger {
    padding: 14px 18px;
    border-radius: 18px;
    color: #fca5a5;
    background: rgba(239,68,68,.12);
    border: 1px solid rgba(239,68,68,.24);
    margin-bottom: 14px;
}

textarea,
input,
select {
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

textarea:focus,
input:focus,
select:focus {
    border-color: rgba(249,115,22,.42) !important;
    box-shadow: 0 0 0 4px rgba(249,115,22,.10);
}

@media (max-width: 900px) {
    .nutrition-lux-hero {
        flex-direction: column;
        align-items: stretch;
        padding: 22px;
    }

    .four-col {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .four-col {
        grid-template-columns: 1fr;
    }
}


/* Nutrition food database and no-typing builder */
.nutrition-db-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 16px;
    margin: 18px 0 22px;
}

.nutrition-db-card {
    display: grid;
    grid-template-columns: 54px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 20px;
    border-radius: 30px;
    color: inherit;
    text-decoration: none;
    background:
        radial-gradient(circle at 10% 15%, rgba(249,115,22,.14), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.12);
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.nutrition-db-card:hover,
.nutrition-db-card.active {
    transform: translateY(-2px);
    border-color: rgba(249,115,22,.36);
    background:
        radial-gradient(circle at 10% 15%, rgba(249,115,22,.20), transparent 38%),
        linear-gradient(135deg, rgba(255,255,255,.095), rgba(255,255,255,.045));
}

.nutrition-db-card > span {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: rgba(255,255,255,.075);
    border: 1px solid rgba(255,255,255,.12);
    font-size: 1.55rem;
}

.nutrition-db-card h3 {
    margin: 0 0 6px;
    font-size: 1.18rem;
}

.nutrition-db-card p {
    margin: 0;
    color: var(--muted, #94a3b8);
    line-height: 1.75;
}

.nutrition-db-card b {
    min-width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: #fed7aa;
    background: rgba(249,115,22,.12);
    border: 1px solid rgba(249,115,22,.22);
}

.food-db-details {
    border-radius: 28px;
}

.food-db-details > summary,
.food-item-collapse > summary {
    cursor: pointer;
    list-style: none;
}

.food-db-details > summary::-webkit-details-marker,
.food-item-collapse > summary::-webkit-details-marker {
    display: none;
}

.food-db-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 20px;
    border-radius: 24px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
    font-weight: 900;
}

.food-db-list {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.food-item-collapse {
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.08);
    overflow: hidden;
}

.food-item-collapse > summary {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 15px 16px;
}

.food-item-collapse > summary small {
    color: var(--muted, #94a3b8);
}

.food-item-collapse > summary b {
    color: #86efac;
    white-space: nowrap;
}

.food-item-body {
    padding: 0 16px 16px;
    color: var(--muted, #94a3b8);
}

.smart-nutrition-days-grid {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}

.smart-day-editor {
    display: grid;
    gap: 12px;
}

.meal-slot-card {
    padding: 14px;
    border-radius: 22px;
    background: rgba(0,0,0,.16);
    border: 1px solid rgba(255,255,255,.085);
    display: grid;
    gap: 10px;
}

.meal-slot-top {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: center;
}

.meal-slot-top b {
    color: #fed7aa;
    white-space: nowrap;
}

.food-multi-select {
    min-height: 128px;
    padding: 10px !important;
}

.food-multi-select option {
    padding: 8px;
}

@media (max-width: 640px) {
    .nutrition-db-card {
        grid-template-columns: 48px 1fr;
    }

    .nutrition-db-card b {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .food-item-collapse > summary {
        grid-template-columns: 1fr;
    }

    .meal-slot-top {
        grid-template-columns: 1fr;
    }
}


/* Dynamic nutrition builder popup picker */
.food-picker-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}

.food-picker-modal.open {
    display: block;
}

.food-picker-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.62);
    backdrop-filter: blur(10px);
}

.food-picker-panel {
    position: relative;
    width: min(920px, calc(100vw - 28px));
    max-height: min(760px, calc(100vh - 34px));
    overflow: auto;
    margin: 18px auto;
    padding: 22px;
    border-radius: 34px;
    box-shadow: 0 34px 110px rgba(0,0,0,.46);
}

.food-picker-tools {
    display: grid;
    grid-template-columns: 1fr 240px;
    gap: 12px;
    margin: 14px 0;
}

.food-picker-list {
    display: grid;
    gap: 10px;
    max-height: 440px;
    overflow: auto;
    padding-left: 4px;
}

.food-picker-item {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    border-radius: 20px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
    cursor: pointer;
}

.food-picker-item b,
.food-picker-item small {
    display: block;
}

.food-picker-item small {
    color: var(--muted, #94a3b8);
}

.food-picker-item em {
    color: #86efac;
    font-style: normal;
    white-space: nowrap;
}

.selected-foods-box {
    min-height: 48px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 10px;
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    border: 1px dashed rgba(255,255,255,.12);
}

.muted-text {
    color: var(--muted, #94a3b8);
}

.food-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(249,115,22,.24);
    background: rgba(249,115,22,.12);
    color: #fff;
    border-radius: 999px;
    padding: 7px 10px;
    cursor: pointer;
}

.food-chip small {
    color: #fed7aa;
}

.food-chip i {
    font-style: normal;
    color: #fca5a5;
    font-weight: 900;
}

.meal-slot-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.meal-auto-totals {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.meal-auto-totals span {
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(34,197,94,.10);
    border: 1px solid rgba(34,197,94,.18);
    color: #bbf7d0;
    font-size: .84rem;
}

.add-meal-slot-btn {
    margin-top: 8px;
}

.editable-meal-card form {
    width: 100%;
}

.compact-day-form {
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255,255,255,.09);
}

.add-meal-details {
    margin-top: 14px;
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.09);
    overflow: hidden;
}

.add-meal-details summary {
    cursor: pointer;
    padding: 14px 16px;
    font-weight: 900;
    color: #fed7aa;
}

@media (max-width: 720px) {
    .food-picker-tools {
        grid-template-columns: 1fr;
    }

    .food-picker-item {
        grid-template-columns: auto 1fr;
    }

    .food-picker-item em,
    .food-picker-item > small {
        grid-column: 2;
    }
}


/* Clean wizard nutrition builder */
.clean-builder-hero {
    margin-bottom: 18px;
}

.clean-nutrition-builder {
    display: grid;
    gap: 18px;
}

.wizard-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 2px;
}

.wizard-step {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 58px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    color: var(--muted, #94a3b8);
    cursor: pointer;
}

.wizard-step span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: #fff;
    font-weight: 900;
}

.wizard-step.active {
    color: #fff;
    border-color: rgba(249,115,22,.34);
    background: linear-gradient(135deg, rgba(249,115,22,.16), rgba(255,255,255,.055));
}

.wizard-step.active span {
    color: #111827;
    background: #fed7aa;
}

.wizard-panel {
    display: none;
}

.wizard-panel.active {
    display: block;
}

.clean-day-list {
    display: grid;
    gap: 12px;
}

.clean-day-card {
    border-radius: 28px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.09);
    overflow: hidden;
}

.clean-day-card[open] {
    border-color: rgba(249,115,22,.22);
    background:
        radial-gradient(circle at 12% 5%, rgba(249,115,22,.11), transparent 30%),
        rgba(255,255,255,.052);
}

.clean-day-card > summary {
    cursor: pointer;
    list-style: none;
    display: grid;
    grid-template-columns: minmax(280px, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 18px;
}

.clean-day-card > summary::-webkit-details-marker {
    display: none;
}

.day-summary-title {
    display: flex;
    align-items: center;
    gap: 12px;
}

.day-summary-title span {
    min-width: 62px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: #fed7aa;
    background: rgba(249,115,22,.13);
    border: 1px solid rgba(249,115,22,.23);
    font-weight: 900;
}

.day-summary-title input {
    max-width: 260px;
}

.day-summary-stats {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.day-summary-stats b,
.day-summary-stats small {
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.065);
    color: var(--muted, #94a3b8);
    white-space: nowrap;
}

.day-summary-stats b {
    color: #fff;
}

.day-meal-area {
    padding: 0 18px 18px;
}

.meal-summary-list {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
}

.empty-day-state {
    padding: 18px;
    border-radius: 20px;
    border: 1px dashed rgba(255,255,255,.14);
    color: var(--muted, #94a3b8);
    text-align: center;
}

.clean-meal-card {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border-radius: 22px;
    background: rgba(0,0,0,.16);
    border: 1px solid rgba(255,255,255,.085);
}

.clean-meal-card h3 {
    margin: 0 0 5px;
    font-size: 1rem;
}

.clean-meal-card p {
    margin: 0;
    color: var(--muted, #94a3b8);
    line-height: 1.8;
}

.clean-meal-card small {
    color: #fed7aa;
}

.clean-meal-stats {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.clean-meal-stats span {
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(34,197,94,.10);
    border: 1px solid rgba(34,197,94,.18);
    color: #bbf7d0;
    font-size: .8rem;
}

.nutrition-final-preview {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.nutrition-final-preview article,
.preview-day-card {
    padding: 18px;
    border-radius: 24px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
}

.nutrition-final-preview span {
    display: block;
    color: var(--muted, #94a3b8);
    margin-bottom: 8px;
}

.nutrition-final-preview b {
    font-size: 1.7rem;
}

.preview-day-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}

.preview-day-card b,
.preview-day-card span,
.preview-day-card small {
    display: block;
}

.preview-day-card span,
.preview-day-card small {
    color: var(--muted, #94a3b8);
    margin-top: 6px;
}

.meal-editor-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}

.meal-editor-modal.open {
    display: block;
}

.modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.62);
    backdrop-filter: blur(10px);
}

.meal-editor-panel {
    position: relative;
    width: min(1080px, calc(100vw - 28px));
    max-height: min(820px, calc(100vh - 32px));
    overflow: auto;
    margin: 16px auto;
    padding: 22px;
    border-radius: 34px;
    box-shadow: 0 34px 110px rgba(0,0,0,.46);
}

.meal-editor-grid {
    display: grid;
    grid-template-columns: minmax(280px, .85fr) minmax(340px, 1.15fr);
    gap: 18px;
}

.meal-editor-main {
    display: grid;
    gap: 14px;
    align-content: start;
    padding: 16px;
    border-radius: 26px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.08);
}

.clean-selected-foods {
    min-height: 78px;
}

.clean-modal-totals {
    margin: 0;
}

.food-picker-clean {
    display: grid;
    gap: 12px;
}

.food-picker-card-list {
    display: grid;
    gap: 10px;
    max-height: 520px;
    overflow: auto;
    padding-left: 4px;
}

.food-select-card {
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    gap: 10px;
    align-items: center;
    text-align: right;
    padding: 13px 14px;
    border-radius: 20px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
    color: inherit;
    cursor: pointer;
}

.food-select-card:hover {
    border-color: rgba(249,115,22,.30);
    background: rgba(249,115,22,.075);
}

.food-select-card span b,
.food-select-card span small {
    display: block;
}

.food-select-card span small,
.food-select-card > small {
    color: var(--muted, #94a3b8);
}

.food-select-card em {
    color: #86efac;
    font-style: normal;
    white-space: nowrap;
}

.food-select-card i {
    font-style: normal;
    color: #fed7aa;
    white-space: nowrap;
}

.food-picker-tools {
    display: grid;
    grid-template-columns: 1fr 210px;
    gap: 10px;
}

@media (max-width: 900px) {
    .wizard-steps {
        grid-template-columns: 1fr;
    }

    .clean-day-card > summary {
        grid-template-columns: 1fr;
    }

    .day-summary-stats {
        justify-content: flex-start;
    }

    .meal-editor-grid {
        grid-template-columns: 1fr;
    }

    .clean-meal-card {
        grid-template-columns: 1fr;
    }

    .clean-meal-stats {
        justify-content: flex-start;
    }

    .food-select-card {
        grid-template-columns: 1fr;
    }

    .food-picker-tools {
        grid-template-columns: 1fr;
    }
}


/* FIX: meal editor modal panel must be above its blurred backdrop */
.meal-editor-modal {
    isolation: isolate;
}

.meal-editor-modal .modal-backdrop {
    z-index: 1;
}

.meal-editor-modal .meal-editor-panel {
    z-index: 2;
}

/* Some layouts create stacking contexts; force the modal content to stay clickable/visible */
.meal-editor-modal.open .meal-editor-panel {
    display: block;
    pointer-events: auto;
}


/* Nutrition units and quantity chips */
.food-qty-chip {
    display: inline-grid;
    grid-template-columns: 28px auto auto 28px 22px;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(249,115,22,.24);
    background: rgba(249,115,22,.12);
    color: #fff;
    border-radius: 999px;
    padding: 6px 8px;
}

.food-qty-chip button {
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.13);
    color: #fff;
    cursor: pointer;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.food-qty-chip small {
    color: #fed7aa;
    white-space: nowrap;
}

.food-qty-chip i {
    font-style: normal;
    color: #fca5a5;
    cursor: pointer;
    font-weight: 900;
    text-align: center;
}

.food-qty-chip b {
    white-space: nowrap;
}

@media (max-width: 560px) {
    .food-qty-chip {
        grid-template-columns: 28px 1fr 28px 22px;
    }

    .food-qty-chip small {
        grid-column: 2 / 3;
        font-size: .78rem;
    }
}

/* Progress center clean redesign */
.progress-center-hero {
    margin-bottom: 14px;
    background:
        radial-gradient(circle at 12% 12%, rgba(34,197,94,.14), transparent 34%),
        radial-gradient(circle at 88% 10%, rgba(59,130,246,.10), transparent 30%),
        rgba(255,255,255,.045);
}

.progress-center-head {
    align-items: center;
    gap: 18px;
}

.page-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(34,197,94,.11);
    border: 1px solid rgba(34,197,94,.18);
    color: #86efac;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .3px;
    margin-bottom: 8px;
}

.athlete-select-form label {
    display: grid;
    gap: 8px;
    color: var(--muted, #94a3b8);
    font-size: .86rem;
    font-weight: 800;
}

.compact-progress-metrics {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
    margin: 14px 0;
}

.compact-progress-metrics article {
    padding: 16px 18px;
    border-radius: 22px;
}

.compact-progress-metrics b {
    font-size: clamp(1.45rem, 3vw, 2.15rem);
    margin: 7px 0 4px;
}

.progress-summary-card {
    margin-bottom: 16px;
}

.progress-delta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.progress-delta-grid article {
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(15,23,42,.22);
    border: 1px solid rgba(255,255,255,.08);
}

.progress-delta-grid span {
    display: block;
    color: var(--muted, #94a3b8);
    font-size: .82rem;
    margin-bottom: 7px;
}

.progress-delta-grid b {
    display: block;
    font-size: 1.15rem;
    color: var(--text, #fff);
    direction: ltr;
    text-align: right;
}

.progress-formula-note {
    margin-top: 14px;
    padding: 13px 15px;
    border-radius: 18px;
    line-height: 1.9;
    color: var(--muted, #94a3b8);
    background: rgba(34,197,94,.075);
    border: 1px solid rgba(34,197,94,.14);
}

.progress-formula-note b {
    color: var(--text, #fff);
}

.progress-entry-grid {
    gap: 14px;
    margin-bottom: 16px;
}

.progress-clean-form .three-col {
    gap: 10px;
}

.progress-clean-form input,
.progress-clean-form select {
    min-height: 44px;
}

.progress-timeline-card .section-head {
    margin-bottom: 12px;
}

.upgraded-progress-bars {
    gap: 10px;
}

.upgraded-progress-bars article {
    padding: 14px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255,255,255,.062), rgba(255,255,255,.032));
    border: 1px solid rgba(255,255,255,.10);
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.upgraded-progress-bars article:hover {
    transform: translateY(-2px);
    border-color: rgba(34,197,94,.22);
    background: linear-gradient(135deg, rgba(34,197,94,.085), rgba(255,255,255,.035));
}

.progress-row-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.progress-row-top b {
    font-size: .98rem;
}

.progress-row-top strong {
    min-width: 54px;
    text-align: center;
    direction: ltr;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.18);
    color: #86efac;
    font-size: .86rem;
}

.progress-row-values {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.progress-row-values span {
    width: auto;
    margin: 0;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.075);
    color: var(--muted, #94a3b8);
    font-size: .82rem;
    direction: ltr;
}

.upgraded-progress-bars .mini-bar {
    height: 12px;
    background: rgba(15,23,42,.35);
    border: 1px solid rgba(255,255,255,.07);
}

.upgraded-progress-bars .mini-bar i {
    transition: width .35s ease;
}

.upgraded-progress-bars small {
    display: block;
    margin-top: 9px;
    color: var(--muted, #94a3b8);
    font-size: .8rem;
    direction: ltr;
    text-align: right;
}

.upgraded-progress-bars em {
    display: block;
    margin-top: 8px;
    color: var(--text, #fff);
    opacity: .78;
    font-style: normal;
    line-height: 1.8;
}

.empty-state {
    padding: 18px;
    border-radius: 18px;
    background: rgba(255,255,255,.05);
    border: 1px dashed rgba(255,255,255,.12);
    color: var(--muted, #94a3b8);
    text-align: center;
}

.nav-submenu .nav-disabled,
.nav-submenu span.nav-disabled {
    min-height: 40px;
    margin: 0;
    padding: 10px 18px 10px 10px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-radius: 14px;
    color: rgba(148,163,184,.72);
    background: rgba(148,163,184,.08);
    border: 1px dashed rgba(148,163,184,.18);
    cursor: not-allowed;
    user-select: none;
    font-weight: 800;
}

.nav-submenu .nav-disabled::before {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    transform: translateY(-50%);
    background: rgba(148,163,184,.55);
}

.nav-submenu .nav-disabled small {
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.18);
    color: #86efac;
    font-size: .72rem;
    white-space: nowrap;
}

body[data-theme="light"] .progress-delta-grid article,
body[data-theme="light"] .upgraded-progress-bars article,
body[data-theme="light"] .progress-row-values span,
body[data-theme="light"] .empty-state {
    background: rgba(255,255,255,.78);
    border-color: rgba(15,23,42,.08);
}

body[data-theme="light"] .progress-formula-note {
    background: rgba(22,163,74,.08);
    border-color: rgba(22,163,74,.16);
}

body[data-theme="light"] .page-kicker,
body[data-theme="light"] .progress-row-top strong,
body[data-theme="light"] .nav-submenu .nav-disabled small {
    color: #15803d;
}

body[data-theme="light"] .nav-submenu .nav-disabled {
    color: rgba(71,85,105,.70);
    background: rgba(148,163,184,.10);
    border-color: rgba(71,85,105,.14);
}

@media (max-width: 760px) {
    .progress-center-head,
    .progress-summary-card .section-head {
        align-items: stretch;
    }

    .inline-form {
        min-width: 0;
        width: 100%;
    }

    .progress-delta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .progress-row-values {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .progress-row-values span {
        text-align: center;
    }
}

/* Today check-in, coach approval, and theme menu fix */
.topbar,
.top-actions {
    position: relative;
    overflow: visible;
    z-index: 2500;
}

.theme-picker {
    position: relative;
    z-index: 8000;
}

.theme-menu {
    z-index: 9000 !important;
}

.theme-menu.open {
    pointer-events: auto;
}

.today-hero-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.today-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 190px;
    padding: 12px 16px;
    border-radius: 999px;
    font-weight: 900;
    font-size: .86rem;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.06);
}

.today-status-pill.pending { color: #fde68a; background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.22); }
.today-status-pill.approved { color: #86efac; background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.22); }
.today-status-pill.rejected { color: #fecaca; background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.22); }

.today-check-card {
    overflow: visible;
}

.modern-toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.switch-row {
    display: grid !important;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 5px 12px;
    align-items: center;
    padding: 16px;
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.10);
    cursor: pointer;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.switch-row:hover {
    transform: translateY(-2px);
    border-color: rgba(34,197,94,.24);
    background: linear-gradient(135deg, rgba(34,197,94,.09), rgba(255,255,255,.04));
}

.switch-row input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.switch-ui {
    grid-row: 1 / 3;
    width: 58px;
    height: 34px;
    border-radius: 999px;
    padding: 4px;
    background: rgba(148,163,184,.22);
    border: 1px solid rgba(255,255,255,.12);
    transition: .18s ease;
}

.switch-ui i {
    display: block;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 8px 18px rgba(0,0,0,.22);
    transform: translateX(0);
    transition: transform .18s ease;
}

.switch-row input:checked + .switch-ui {
    background: linear-gradient(135deg, #22c55e, #16a34a);
    border-color: rgba(34,197,94,.55);
}

.switch-row input:checked + .switch-ui i {
    transform: translateX(-24px);
}

.switch-row strong {
    color: var(--text, #fff);
    font-size: 1rem;
}

.switch-row small {
    color: var(--muted, #94a3b8);
    line-height: 1.7;
}

.compact-inputs {
    margin-top: 14px;
}

.watch-score-card {
    display: grid;
    gap: 14px;
    padding: 18px;
    border-radius: 28px;
    background:
        radial-gradient(circle at 12% 20%, rgba(34,197,94,.16), transparent 28%),
        linear-gradient(135deg, rgba(15,23,42,.60), rgba(15,23,42,.22));
    border: 1px solid rgba(255,255,255,.10);
}

.subtle-score-card {
    background:
        radial-gradient(circle at 12% 20%, rgba(59,130,246,.14), transparent 28%),
        linear-gradient(135deg, rgba(15,23,42,.52), rgba(15,23,42,.20));
}

.watch-score-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.watch-score-head b,
.watch-score-head span {
    display: block;
}

.watch-score-head b {
    font-size: 1.05rem;
    color: var(--text, #fff);
    margin-bottom: 5px;
}

.watch-score-head span {
    color: var(--muted, #94a3b8);
    line-height: 1.8;
    font-size: .88rem;
}

.watch-score-head strong {
    width: 58px;
    height: 58px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    color: #0f172a;
    background: conic-gradient(from 180deg, #22c55e, #a3e635, #fbbf24, #22c55e);
    box-shadow: 0 16px 34px rgba(34,197,94,.20);
    font-size: 1.45rem;
    font-weight: 1000;
}

.watch-range {
    --range-percent: 50%;
    height: 16px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #22c55e var(--range-percent), rgba(255,255,255,.11) var(--range-percent));
    appearance: none;
}

.watch-range::-webkit-slider-thumb {
    appearance: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    border: 5px solid #22c55e;
    box-shadow: 0 10px 26px rgba(0,0,0,.28);
    cursor: pointer;
}

.watch-range::-moz-range-thumb {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #fff;
    border: 5px solid #22c55e;
    box-shadow: 0 10px 26px rgba(0,0,0,.28);
    cursor: pointer;
}

.range-scale {
    display: flex;
    justify-content: space-between;
    color: var(--muted, #94a3b8);
    font-size: .78rem;
    font-weight: 800;
}

.coach-approval-card {
    margin-top: 18px;
}

.approval-list {
    display: grid;
    gap: 12px;
}

.approval-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
    gap: 14px;
    align-items: center;
    padding: 16px;
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
}

.approval-main b,
.approval-main span,
.approval-main small,
.approval-main em {
    display: block;
}

.approval-main b {
    font-size: 1.05rem;
    margin-bottom: 4px;
}

.approval-main span,
.approval-main small {
    color: var(--muted, #94a3b8);
    line-height: 1.8;
}

.approval-main em {
    margin-top: 7px;
    font-style: normal;
    color: var(--text, #fff);
    opacity: .82;
    line-height: 1.8;
}

.approval-actions {
    display: grid;
    gap: 10px;
}

.reject-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

body[data-theme="light"] .switch-row,
body[data-theme="light"] .approval-item {
    background: rgba(255,255,255,.82);
    border-color: rgba(15,23,42,.08);
}

body[data-theme="light"] .watch-score-card {
    background: radial-gradient(circle at 12% 20%, rgba(22,163,74,.12), transparent 28%), #ffffff;
    border-color: rgba(15,23,42,.08);
}

body[data-theme="light"] .today-status-pill.pending { color: #b45309; }
body[data-theme="light"] .today-status-pill.approved { color: #15803d; }
body[data-theme="light"] .today-status-pill.rejected { color: #b91c1c; }

@media (max-width: 980px) {
    .modern-toggle-grid,
    .approval-item {
        grid-template-columns: 1fr;
    }

    .reject-form {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .today-hero-card,
    .watch-score-head {
        align-items: stretch;
        flex-direction: column;
    }

    .today-status-pill {
        width: 100%;
    }
}

.kpi-grid {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

/* AmFit update: directional workout/mood sliders, training record binding, cleaner coach approvals */
.app-shell,
.main-content,
.content-area,
.page-body,
.glass-card,
.section-card,
.topbar,
.top-actions {
    overflow: visible;
}
.theme-picker { z-index: 12000 !important; }
.theme-menu {
    z-index: 13000 !important;
    pointer-events: auto;
}

.watch-range {
    direction: ltr;
    width: 100%;
    cursor: pointer;
    background: linear-gradient(90deg, transparent 0%, transparent var(--range-percent), rgba(255,255,255,.12) var(--range-percent), rgba(255,255,255,.12) 100%), linear-gradient(90deg, #22c55e 0%, #f59e0b 52%, #ef4444 100%);
}
.watch-range.mood-range {
    background: linear-gradient(90deg, transparent 0%, transparent var(--range-percent), rgba(255,255,255,.12) var(--range-percent), rgba(255,255,255,.12) 100%), linear-gradient(90deg, #ef4444 0%, #f59e0b 45%, #22c55e 100%);
}
.watch-range::-webkit-slider-thumb {
    border-color: var(--thumb-color, #22c55e);
}
.watch-range::-moz-range-thumb {
    border-color: var(--thumb-color, #22c55e);
}
.difficulty-range + .range-scale span:last-child { color: #fca5a5; }
.mood-range + .range-scale span:first-child { color: #fca5a5; }
.mood-range + .range-scale span:last-child { color: #86efac; }

.record-hero-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.record-entry-card { overflow: visible; }
.record-form { gap: 16px; }
.record-move-select {
    display: grid;
    gap: 6px;
    padding: 16px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.10);
}
.record-move-select label { display: grid; gap: 8px; }
.record-move-select small { color: var(--muted); line-height: 1.8; }
.record-bottom-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr);
    gap: 12px;
    align-items: stretch;
}
.record-rpe-card { min-height: 100%; }
.record-done-switch {
    min-height: 100%;
    align-content: center;
    margin: 0;
}
body[data-theme="light"] .record-move-select {
    background: rgba(255,255,255,.88);
    border-color: rgba(15,23,42,.08);
}

.coach-approval-card {
    background: radial-gradient(circle at 12% 10%, rgba(34,197,94,.12), transparent 30%), linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
}
.approval-list { gap: 14px; }
.approval-item {
    position: relative;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 18px;
    border-radius: 28px;
    background: linear-gradient(135deg, rgba(15,23,42,.56), rgba(15,23,42,.22));
    border: 1px solid rgba(255,255,255,.105);
    box-shadow: 0 18px 48px rgba(0,0,0,.18);
}
.approval-item::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 18px;
    bottom: 18px;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, #22c55e, #86efac);
}
.approval-main b { font-size: 1.12rem; }
.approval-main span {
    display: inline-flex;
    width: fit-content;
    margin: 4px 0 8px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.08);
    font-weight: 800;
}
.approval-main small {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--text);
    opacity: .82;
}
.approval-actions {
    min-width: 250px;
    align-self: stretch;
    align-content: center;
}
.approval-actions .btn {
    width: 100%;
    border-radius: 16px;
    min-height: 42px;
}
.approval-actions .btn.primary {
    background: linear-gradient(135deg, #22c55e, #16a34a);
    box-shadow: 0 14px 28px rgba(34,197,94,.18);
}
.reject-form input {
    border-radius: 16px;
}
body[data-theme="light"] .coach-approval-card {
    background: radial-gradient(circle at 12% 10%, rgba(34,197,94,.10), transparent 30%), rgba(255,255,255,.90);
}
body[data-theme="light"] .approval-item {
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,250,252,.88));
    border-color: rgba(15,23,42,.08);
    box-shadow: 0 18px 40px rgba(15,23,42,.06);
}
body[data-theme="light"] .approval-main span {
    background: rgba(15,23,42,.045);
    border-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .approval-main small { color: #334155; }

@media (max-width: 980px) {
    .record-bottom-grid,
    .approval-item { grid-template-columns: 1fr; }
    .approval-actions { min-width: 0; }
}
@media (max-width: 680px) {
    .record-hero-card { flex-direction: column; align-items: stretch; }
}

/* AmFit hotfix: correct left-to-right slider fill, cleaner athlete record card, live coach approval panel */
.is-hidden { display: none !important; }

.watch-range,
.watch-range.mood-range {
    direction: ltr !important;
    height: 12px;
    border-radius: 999px;
    background-color: rgba(255,255,255,.13);
    background-repeat: no-repeat !important;
    background-position: left center !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.09), inset 0 -1px 0 rgba(0,0,0,.22);
}

.range-scale {
    direction: ltr !important;
    flex-direction: row !important;
    padding-inline: 2px;
}

.difficulty-range + .range-scale span:first-child { color: #86efac; }
.difficulty-range + .range-scale span:last-child { color: #fca5a5; }
.mood-range + .range-scale span:first-child { color: #fca5a5; }
.mood-range + .range-scale span:last-child { color: #86efac; }

.watch-score-card {
    gap: 12px;
    padding: 16px 18px;
}

.watch-score-head strong {
    transition: background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.watch-score-head strong:hover { transform: scale(1.02); }

.record-entry-card {
    padding: 24px;
    border-radius: 30px;
    background: radial-gradient(circle at 15% 0%, rgba(34,197,94,.10), transparent 32%), rgba(255,255,255,.045);
}

.record-form.inner-form {
    display: grid;
    gap: 18px;
}

.record-move-select {
    padding: 18px;
    border-radius: 26px;
}

.record-form .three-col {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: end;
}

.record-form label {
    display: grid;
    gap: 8px;
    font-weight: 800;
}

.record-form input,
.record-form select {
    min-height: 56px;
    border-radius: 18px;
}

.record-bottom-grid {
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 16px;
}

.record-done-switch {
    border-radius: 26px;
    padding: 20px;
}

.record-done-switch strong { font-size: 1.15rem; }

.record-rpe-card {
    border-radius: 26px;
    padding: 18px 20px;
}

.record-form > label:last-of-type input {
    min-height: 58px;
}

.coach-approval-card {
    margin-top: 18px;
    padding: 20px;
    border-radius: 30px;
}

.coach-approval-head {
    margin-bottom: 12px;
}

.approval-item.live-new {
    animation: approvalPulse .7s ease-out;
}

@keyframes approvalPulse {
    from { transform: translateY(-6px); border-color: rgba(34,197,94,.55); box-shadow: 0 0 0 8px rgba(34,197,94,.10); }
    to { transform: translateY(0); }
}

.approval-item {
    gap: 18px;
}

.approval-actions {
    min-width: 220px;
}

.approval-actions .btn.primary {
    color: #052e16;
    font-weight: 1000;
}

@media (max-width: 980px) {
    .record-form .three-col,
    .record-bottom-grid {
        grid-template-columns: 1fr;
    }
}


/* AmFit update: IRYekan fallback, notification center, animated matte login background */
.notification-picker { position: relative; z-index: 12500; }
.notification-toggle {
    position: relative; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.14);
    border-radius: 16px; background: rgba(255,255,255,.075); color: var(--text); cursor: pointer;
    display: inline-grid; place-items: center; transition: .18s ease;
}
.notification-toggle:hover { transform: translateY(-1px); border-color: rgba(217,184,111,.35); background: rgba(217,184,111,.10); }
.notification-toggle svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.notification-badge {
    position: absolute; top: -7px; inset-inline-start: -7px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px;
    background: linear-gradient(135deg, #ef4444, #fb7185); color: #fff; display: none; place-items: center; font-size: 11px; font-weight: 900;
    box-shadow: 0 8px 18px rgba(239,68,68,.28);
}
.notification-badge.has-items { display: grid; }
.notification-menu {
    position: absolute; top: calc(100% + 10px); inset-inline-end: 0; width: min(360px, 88vw); max-height: 420px; overflow: auto;
    padding: 12px; border-radius: 24px; background: rgba(8,13,22,.92); border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 24px 70px rgba(0,0,0,.38); backdrop-filter: blur(22px) saturate(1.08); display: none;
}
.notification-menu.open { display: grid; gap: 10px; }
.notification-menu-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding: 4px 4px 8px; }
.notification-menu-head b { font-size: 15px; }
.notification-menu-head button { border:0; border-radius:999px; padding:7px 10px; cursor:pointer; color:#cbd5e1; background:rgba(255,255,255,.075); }
.notification-empty { padding: 16px; border-radius: 18px; background: rgba(255,255,255,.055); color: var(--muted); text-align:center; }
.notification-mini-item { padding: 12px; border-radius: 18px; background: rgba(255,255,255,.065); border: 1px solid rgba(255,255,255,.08); display:grid; gap:5px; }
.notification-mini-item.success { border-color: rgba(34,197,94,.25); background: rgba(34,197,94,.08); }
.notification-mini-item.warning { border-color: rgba(245,158,11,.25); background: rgba(245,158,11,.08); }
.notification-mini-item.danger { border-color: rgba(239,68,68,.25); background: rgba(239,68,68,.08); }
.notification-mini-item b { font-size: 14px; }
.notification-mini-item span { color: var(--muted); font-size: 12px; line-height: 1.7; }
body[data-theme="light"] .notification-menu { background: rgba(255,255,255,.95); border-color: rgba(15,23,42,.10); box-shadow: 0 24px 60px rgba(15,23,42,.14); }
body[data-theme="light"] .notification-toggle { background: rgba(15,23,42,.045); border-color: rgba(15,23,42,.08); color: #0f172a; }

.login-animated-bg {
    position: fixed;
    inset: 0;
    z-index: -2;
    overflow: hidden;
    background:
        radial-gradient(circle at 52% 46%, rgba(34,197,94,.10), transparent 32%),
        linear-gradient(135deg, #020617 0%, #07111d 46%, #06140f 100%);
    isolation: isolate;
}
.login-animated-bg::before,
.login-animated-bg::after,
.login-orbit {
    content: "";
    position: absolute;
    pointer-events: none;
    will-change: transform, opacity;
}
.login-animated-bg::before {
    width: 72vmax;
    height: 72vmax;
    right: -22vmax;
    top: -28vmax;
    border-radius: 50%;
    background:
        conic-gradient(from 90deg,
            rgba(34,197,94,0),
            rgba(34,197,94,.70),
            rgba(217,184,111,.34),
            rgba(249,115,22,.62),
            rgba(34,197,94,0));
    filter: blur(54px);
    opacity: .36;
    animation: amfitAuraSpin 18s linear infinite, amfitAuraFloat 9s ease-in-out infinite alternate;
}
.login-animated-bg::after {
    width: 58vmax;
    height: 58vmax;
    left: -20vmax;
    bottom: -22vmax;
    border-radius: 40% 60% 45% 55%;
    background:
        radial-gradient(circle at 35% 35%, rgba(249,115,22,.58), transparent 44%),
        radial-gradient(circle at 70% 70%, rgba(34,197,94,.55), transparent 46%);
    filter: blur(50px);
    opacity: .44;
    animation: amfitBlobDrift 13s ease-in-out infinite alternate;
}
.login-orbit {
    inset: 10%;
    border: 1px solid rgba(217,184,111,.10);
    border-radius: 38% 62% 54% 46%;
    transform-origin: center;
    mix-blend-mode: screen;
}
.login-orbit-a {
    box-shadow: 0 0 80px rgba(34,197,94,.10), inset 0 0 70px rgba(34,197,94,.045);
    animation: amfitOrbit 22s linear infinite;
}
.login-orbit-b {
    inset: 18%;
    border-color: rgba(249,115,22,.10);
    box-shadow: 0 0 70px rgba(249,115,22,.11), inset 0 0 64px rgba(217,184,111,.04);
    animation: amfitOrbitReverse 28s linear infinite;
}
.login-matte-overlay {
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.018) 1px, transparent 1px),
        radial-gradient(circle at 50% 42%, rgba(255,255,255,.045), transparent 26%),
        linear-gradient(135deg, rgba(2,6,23,.90), rgba(8,13,24,.72) 48%, rgba(2,6,23,.93));
    background-size: 46px 46px, 46px 46px, auto, auto;
    backdrop-filter: blur(16px) saturate(1.08);
}
@keyframes amfitAuraSpin { to { transform: rotate(360deg); } }
@keyframes amfitAuraFloat {
    0% { translate: 0 0; scale: 1; }
    100% { translate: -8vw 12vh; scale: 1.10; }
}
@keyframes amfitBlobDrift {
    0% { transform: translate3d(0,0,0) rotate(0deg) scale(1); }
    50% { transform: translate3d(14vw,-9vh,0) rotate(18deg) scale(1.08); }
    100% { transform: translate3d(6vw,-16vh,0) rotate(-10deg) scale(.96); }
}
@keyframes amfitOrbit { to { transform: rotate(360deg); } }
@keyframes amfitOrbitReverse { to { transform: rotate(-360deg); } }
@media (prefers-reduced-motion: reduce) {
    .login-animated-bg::before,
    .login-animated-bg::after,
    .login-orbit { animation: none !important; }
}
body:has(.login-animated-bg) { background: #05070b !important; }
body:has(.login-animated-bg) .login-card {
    background: linear-gradient(145deg, rgba(10,15,25,.76), rgba(8,12,20,.60)) !important;
    border-color: rgba(255,255,255,.16) !important;
    box-shadow: 0 30px 90px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.06) !important;
    backdrop-filter: blur(24px) saturate(1.1) !important;
}

.record-done-switch small.remove-helper { display:none !important; }

/* Admin tariffs / dynamic subscription packages */
.tariff-builder-card { overflow: visible; }
.tariff-form textarea, .tariff-admin-row textarea { min-height: 96px; resize: vertical; line-height: 1.9; }
.tariff-admin-list { display: grid; gap: 16px; }
.tariff-admin-row { padding: 18px; border: 1px solid var(--card-border); border-radius: 26px; background: rgba(255,255,255,.055); display: grid; gap: 14px; }
.tariff-admin-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tariff-admin-top > div { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tariff-admin-top small { color: var(--muted); }
.tariff-row-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.muted-price { color: var(--muted); margin-inline-start: auto; font-weight: 900; }
.switch-lite { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: var(--muted); font-weight: 800; }
.switch-lite input { position: absolute; opacity: 0; pointer-events: none; }
.switch-lite span { width: 48px; height: 26px; border-radius: 999px; background: rgba(148,163,184,.25); border: 1px solid var(--card-border); position: relative; transition: .2s ease; }
.switch-lite span::after { content: ''; width: 20px; height: 20px; border-radius: 50%; background: #fff; position: absolute; top: 2px; right: 3px; transition: .2s ease; box-shadow: 0 8px 18px rgba(0,0,0,.2); }
.switch-lite input:checked + span { background: linear-gradient(135deg, var(--primary), var(--primary-2)); }
.switch-lite input:checked + span::after { right: 23px; }
.dynamic-pricing-grid .price-card { display: flex; flex-direction: column; gap: 6px; }
.dynamic-pricing-grid .price-card .btn, .dynamic-pricing-grid .price-card form { margin-top: auto; }
.plan-meta-row { display: flex; gap: 10px; flex-wrap: wrap; margin: 4px 0 12px; }
.plan-meta-row span { padding: 8px 12px; border-radius: 999px; border: 1px solid var(--card-border); background: rgba(255,255,255,.06); color: var(--muted); font-weight: 800; font-size: 13px; }
.tariff-feature-list { margin-bottom: 10px; }
@media (max-width: 760px) {
  .tariff-admin-top, .tariff-row-actions { align-items: stretch; flex-direction: column; }
  .muted-price { margin-inline-start: 0; }
}

/* AmFit update: mobile menu and all modal layers must sit above every header/form with blurred locked background */
@media (max-width: 900px) {
    .topbar,
    .top-actions,
    .theme-picker,
    .notification-picker,
    .language-picker {
        z-index: auto !important;
    }
    .mobile-menu-button {
        z-index: 42000 !important;
    }
    .sidebar-backdrop {
        z-index: 40000 !important;
        background: rgba(2, 6, 14, .56) !important;
        -webkit-backdrop-filter: blur(14px) saturate(1.08) !important;
        backdrop-filter: blur(14px) saturate(1.08) !important;
    }
    .sidebar {
        z-index: 41000 !important;
    }
    .sidebar.mobile-open {
        z-index: 41000 !important;
        box-shadow: -24px 0 80px rgba(0,0,0,.46);
    }
    body.menu-open {
        overflow: hidden !important;
        touch-action: none;
    }
    body.menu-open .main-content {
        filter: blur(2px);
        pointer-events: none;
        user-select: none;
    }
    body.menu-open .mobile-menu-button,
    body.menu-open .sidebar,
    body.menu-open .sidebar-backdrop {
        filter: none !important;
        pointer-events: auto;
    }
}

body.modal-open {
    overflow: hidden !important;
    touch-action: none;
}

/* Universal modal/popup elevation */
.meal-editor-modal,
.food-picker-modal,
.popup-backdrop,
.edit-modal-backdrop,
.jalali-picker-backdrop,
.modal-backdrop[role="dialog"],
.modal-backdrop:not(.meal-editor-modal .modal-backdrop) {
    z-index: 50000 !important;
}

.meal-editor-modal.open,
.food-picker-modal.open,
.popup-backdrop.open,
.edit-modal-backdrop.open,
.jalali-picker-backdrop.open {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.meal-editor-modal .modal-backdrop,
.food-picker-backdrop,
.popup-backdrop,
.edit-modal-backdrop,
.jalali-picker-backdrop {
    background: rgba(3,7,18,.68) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.12) !important;
    backdrop-filter: blur(16px) saturate(1.12) !important;
}

.meal-editor-panel,
.food-picker-panel,
.messages-popup,
.edit-athlete-modal,
.jalali-picker,
.workout-day-modal {
    position: relative;
    z-index: 50010 !important;
    isolation: isolate;
    box-shadow: 0 34px 110px rgba(0,0,0,.52) !important;
}

/* Nutrition meal modal: bigger, cleaner mobile food picker */
.meal-editor-modal {
    z-index: 50000 !important;
    align-items: center;
    justify-content: center;
}
.meal-editor-modal.open { display: flex !important; }
.meal-editor-panel {
    width: min(1120px, calc(100vw - 24px)) !important;
    max-height: min(880px, calc(100dvh - 28px)) !important;
    margin: 0 auto !important;
    overflow: auto;
    overscroll-behavior: contain;
}
.food-picker-clean {
    min-width: 0;
}
.food-picker-card-list {
    max-height: min(560px, 54dvh) !important;
    padding: 2px 2px 2px 6px;
    overscroll-behavior: contain;
}
.food-select-card {
    min-height: 68px;
    padding: 15px 16px !important;
    border-radius: 22px !important;
}
.food-select-card span b { font-size: 15px; }
.food-select-card span small,
.food-select-card > small,
.food-select-card em,
.food-select-card i { font-size: 13px; }

@media (max-width: 700px) {
    .meal-editor-modal.open {
        align-items: flex-end;
        padding: 10px;
    }
    .meal-editor-panel {
        width: 100% !important;
        max-height: calc(100dvh - 24px) !important;
        border-radius: 28px 28px 22px 22px !important;
        padding: 16px !important;
    }
    .meal-editor-panel .section-head {
        gap: 10px;
        margin-bottom: 12px;
    }
    .meal-editor-panel .section-head h2 {
        font-size: 22px;
    }
    .meal-editor-panel .section-head p {
        font-size: 12px;
        line-height: 1.7;
    }
    .meal-editor-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    .meal-editor-main {
        padding: 12px !important;
        gap: 10px !important;
        border-radius: 22px !important;
    }
    .food-picker-tools {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        position: sticky;
        top: -16px;
        z-index: 3;
        padding: 10px 0;
        background: linear-gradient(180deg, rgba(8,13,22,.96), rgba(8,13,22,.78));
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
    }
    .food-picker-card-list {
        max-height: 42dvh !important;
        gap: 9px !important;
    }
    .food-select-card {
        grid-template-columns: 1fr auto !important;
        min-height: 74px;
        gap: 7px !important;
    }
    .food-select-card > small,
    .food-select-card em {
        display: none;
    }
}

/* Fix: nutrition meal editor modal was cut on mobile and inner content could not scroll */
.meal-editor-modal.open {
    position: fixed !important;
    inset: 0 !important;
    display: block !important;
    width: 100vw !important;
    height: 100dvh !important;
    padding: max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
}

.meal-editor-modal .modal-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
}

.meal-editor-modal .meal-editor-panel {
    position: relative !important;
    z-index: 1 !important;
    width: min(1120px, calc(100vw - 28px)) !important;
    max-height: calc(100dvh - max(28px, env(safe-area-inset-top)) - max(28px, env(safe-area-inset-bottom))) !important;
    margin: 0 auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: pan-y !important;
}

@media (max-width: 700px) {
    .meal-editor-modal.open {
        display: block !important;
        padding: max(10px, env(safe-area-inset-top)) 10px max(12px, env(safe-area-inset-bottom)) !important;
    }

    .meal-editor-modal .meal-editor-panel {
        width: 100% !important;
        max-height: calc(100dvh - max(20px, env(safe-area-inset-top)) - max(20px, env(safe-area-inset-bottom))) !important;
        margin: 0 auto !important;
        padding: 14px !important;
        border-radius: 26px !important;
        display: block !important;
    }

    .meal-editor-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .food-picker-clean {
        min-height: 0 !important;
    }

    .food-picker-card-list {
        max-height: 46dvh !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        padding-bottom: 14px !important;
    }

    .meal-editor-main,
    .food-picker-clean {
        flex: none !important;
    }
}

/* Hotfix: nutrition builder full-page scroll + safe modal lock
   The generic .modal-backdrop selector previously made body.modal-open active even when
   the meal modal was closed, so the nutrition page looked cut in half and could not scroll. */
html, body {
    min-height: 100%;
    overflow-y: auto;
}
body.modal-open {
    overflow: hidden !important;
}
.clean-nutrition-builder,
.wizard-panel,
.clean-day-list {
    min-height: 0;
}
.main-content {
    min-height: 100dvh;
    padding-bottom: max(96px, env(safe-area-inset-bottom));
}
@media (max-width: 900px) {
    .main-content {
        padding-bottom: max(120px, env(safe-area-inset-bottom));
    }
    .clean-nutrition-builder .button-row {
        padding-bottom: 18px;
    }
}

/* ===== Coach header, refined attendance calendar and SMS-ready UI ===== */
.report-header-preview{
    width:100%; min-height:110px; border-radius:22px; overflow:hidden; border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; margin:14px 0;
}
.report-header-preview img{width:100%; max-height:180px; object-fit:cover; display:block;}
.sms-template-form textarea{min-height:92px; resize:vertical; line-height:1.9;}
.sms-inline-switch{margin:8px 0 14px;}
.modern-switch-line{display:flex; align-items:center; gap:10px; cursor:pointer; color:var(--text);}
.modern-switch-line input{display:none;}
.modern-switch-line span{width:48px;height:26px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);position:relative;transition:.2s ease;}
.modern-switch-line span:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;right:3px;top:2px;transition:.2s ease;}
.modern-switch-line input:checked + span{background:linear-gradient(135deg,#22c55e,#16a34a);}
.modern-switch-line input:checked + span:before{right:23px;}
.refined-attendance-calendar{gap:10px;}
.refined-calendar-weekdays{background:rgba(255,255,255,.035); border-radius:18px; padding:10px;}
.refined-calendar-day{
    min-height:98px; border-radius:20px; padding:10px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:6px;
    background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025)); border:1px solid rgba(255,255,255,.10); overflow:hidden;
}
.refined-calendar-day .day-number{font-size:1.05rem;font-weight:900; opacity:.95;}
.attendance-state-chip{font-size:.72rem;font-weight:900;border-radius:999px;padding:4px 9px;background:rgba(255,255,255,.10);line-height:1;}
.refined-calendar-day.present .attendance-state-chip{background:rgba(34,197,94,.14);color:#86efac;}
.refined-calendar-day.absent .attendance-state-chip{background:rgba(239,68,68,.13);color:#fca5a5;}
.refined-calendar-day.late .attendance-state-chip{background:rgba(245,158,11,.14);color:#fcd34d;}
.workout-mini-subtitle{font-size:.68rem;line-height:1.55;color:rgba(226,232,240,.76);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:right;width:100%;}
.empty-note{opacity:.42;}
.refined-attendance-side{position:sticky;top:18px;}
.refined-status-picker label span{border-radius:16px;padding:10px 14px;}
.sms-confirm-card{max-width:460px;text-align:right;}
.modal-actions-row{display:flex;align-items:center;gap:10px;justify-content:flex-start;flex-wrap:wrap;margin-top:18px;}
.amfit-modal-backdrop.show{display:flex;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;background:rgba(2,6,23,.58);backdrop-filter:blur(18px);padding:18px;}
.amfit-modal-card{background:linear-gradient(145deg,rgba(20,24,31,.96),rgba(11,15,22,.96));border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:24px;box-shadow:0 28px 80px rgba(0,0,0,.45);}
body.modal-open{overflow:hidden;}
.sms-mini-action{padding:8px 14px;font-size:.82rem;}
.athlete-month-grid.attendance-calendar-with-subtitles{gap:8px;}
.refined-athlete-day{min-height:74px!important;display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:flex-start!important;gap:4px;padding:8px!important;border-radius:18px!important;position:relative;}
.visible-day-number{font-size:.84rem;font-weight:900;opacity:.9;}
.mini-status-icon{position:absolute;top:7px;left:8px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.8rem;}
.mini-status-icon svg{width:18px;height:18px;}
.athlete-workout-subtitle{font-size:.58rem;line-height:1.35;color:rgba(226,232,240,.74);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:right;width:100%;padding-left:18px;}

@media (max-width: 768px){
    .refined-calendar-day{min-height:82px;border-radius:16px;padding:8px;}
    .workout-mini-subtitle{font-size:.6rem;-webkit-line-clamp:2;}
    .attendance-shell.upgraded-attendance-shell{grid-template-columns:1fr!important;}
    .refined-attendance-side{position:relative;top:auto;}
    .report-header-preview{min-height:80px;}
}

/* ===== Attendance calendar icon-only refinement + themed urgent SMS modal ===== */
.refined-calendar-day,
.refined-athlete-day {
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center;
}
.refined-calendar-day .day-number,
.refined-athlete-day .visible-day-number {
    align-self: flex-start;
    opacity: .82;
}
.attendance-calendar-icon {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 2px auto 0;
    font-size: 1.45rem;
    font-weight: 1000;
    line-height: 1;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.07);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 24px rgba(0,0,0,.18);
}
.attendance-calendar-icon svg {
    width: 25px;
    height: 25px;
    display: block;
}
.attendance-calendar-icon.present {
    color: #86efac;
    background: linear-gradient(145deg, rgba(34,197,94,.20), rgba(20,83,45,.15));
    border-color: rgba(34,197,94,.25);
}
.attendance-calendar-icon.absent {
    color: #fecaca;
    background: linear-gradient(145deg, rgba(239,68,68,.22), rgba(127,29,29,.14));
    border-color: rgba(239,68,68,.25);
}
.attendance-calendar-icon.late {
    color: #fde68a;
    background: linear-gradient(145deg, rgba(245,158,11,.22), rgba(120,53,15,.14));
    border-color: rgba(245,158,11,.25);
}
.refined-calendar-day.present,
.refined-calendar-day.absent,
.refined-calendar-day.late,
.refined-athlete-day.present,
.refined-athlete-day.absent,
.refined-athlete-day.late {
    background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
}
.workout-mini-subtitle,
.athlete-workout-subtitle {
    width: 100%;
    padding: 0 3px !important;
    text-align: center !important;
    font-weight: 800;
    line-height: 1.45;
    color: rgba(226,232,240,.80);
    -webkit-line-clamp: 2;
}
.athlete-workout-subtitle { font-size: .62rem; }
.workout-mini-subtitle { font-size: .68rem; }
#urgentSmsModal:not(.show) { display: none !important; }
#urgentSmsModal.show { display: flex !important; }
.urgent-sms-modal-card {
    width: min(94vw, 480px);
    text-align: right;
    direction: rtl;
}
.sms-preview-box {
    display: grid;
    gap: 8px;
    margin: 16px 0 4px;
    padding: 14px;
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.10);
}
.sms-preview-box b { color: var(--text); font-size: 1rem; }
.sms-preview-box span { color: var(--muted); line-height: 1.85; font-size: .9rem; }
body[data-theme="light"] .attendance-calendar-icon {
    background: rgba(15,23,42,.04);
    border-color: rgba(15,23,42,.10);
}
body[data-theme="light"] .workout-mini-subtitle,
body[data-theme="light"] .athlete-workout-subtitle { color: #475569; }
body[data-theme="light"] .sms-preview-box {
    background: linear-gradient(145deg, rgba(15,23,42,.035), rgba(255,255,255,.72));
    border-color: rgba(15,23,42,.08);
}
@media (max-width: 768px){
    .attendance-calendar-icon { width: 34px; height: 34px; border-radius: 13px; font-size: 1.25rem; }
    .attendance-calendar-icon svg { width: 22px; height: 22px; }
    .workout-mini-subtitle { font-size: .58rem; }
    .athlete-workout-subtitle { font-size: .54rem; }
}

/* ===== Attendance calendar mobile cleanup + strict short workout labels ===== */
.workout-mini-subtitle,
.athlete-workout-subtitle {
    direction: rtl;
    unicode-bidi: plaintext;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: normal;
}

@media (max-width: 640px) {
    .premium-month-card,
    .refined-attendance-calendar-card {
        overflow: visible;
    }

    .athlete-month-weekdays,
    .athlete-month-grid,
    .calendar-weekdays,
    .attendance-calendar {
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 5px !important;
        width: 100%;
    }

    .athlete-month-weekdays span,
    .calendar-weekdays span {
        font-size: 10px !important;
        padding: 5px 0 !important;
        min-width: 0;
    }

    .refined-athlete-day,
    .refined-calendar-day {
        min-width: 0 !important;
        min-height: 70px !important;
        height: auto !important;
        aspect-ratio: auto !important;
        border-radius: 14px !important;
        padding: 5px 3px 6px !important;
        gap: 3px !important;
        align-items: center !important;
        justify-content: flex-start !important;
        overflow: hidden !important;
    }

    .refined-athlete-day .visible-day-number,
    .refined-calendar-day .day-number {
        align-self: center !important;
        width: auto !important;
        height: auto !important;
        min-width: 18px;
        padding: 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
        font-size: .68rem !important;
        line-height: 1.1 !important;
        margin: 0 !important;
    }

    .attendance-calendar-icon {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        border-radius: 10px !important;
        font-size: 1.05rem !important;
        margin: 0 auto !important;
    }

    .attendance-calendar-icon svg {
        width: 18px !important;
        height: 18px !important;
    }

    .workout-mini-subtitle,
    .athlete-workout-subtitle {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 1px !important;
        margin: 0 !important;
        font-size: .46rem !important;
        line-height: 1.25 !important;
        text-align: center !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        -webkit-line-clamp: unset !important;
        -webkit-box-orient: unset !important;
    }

    .workout-mini-subtitle.empty-note {
        display: none !important;
    }

    .month-stat-row.compact-stats {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        margin-bottom: 14px !important;
    }

    .month-card-main {
        grid-template-columns: 1fr !important;
    }

    .streak-rail {
        display: none !important;
    }
}


/* ===== Final attendance calendar polish: strict short labels, square modern cards ===== */
.attendance-calendar.final-modern-calendar,
.refined-attendance-calendar {
    gap: 12px !important;
}
.refined-calendar-day {
    min-height: 104px !important;
    aspect-ratio: 1 / .92;
    border-radius: 22px !important;
    padding: 10px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    background:
        radial-gradient(circle at 50% 30%, rgba(34,197,94,.10), transparent 42%),
        linear-gradient(145deg, rgba(255,255,255,.085), rgba(255,255,255,.025)) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 16px 36px rgba(0,0,0,.18);
}
.refined-calendar-day.present { border-color: rgba(34,197,94,.35) !important; }
.refined-calendar-day.absent { border-color: rgba(239,68,68,.32) !important; }
.refined-calendar-day.late { border-color: rgba(245,158,11,.32) !important; }
.refined-calendar-day .day-number {
    align-self: flex-start !important;
    min-width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255,255,255,.08) !important;
    border: 1px solid rgba(255,255,255,.08);
    font-size: .95rem !important;
}
.refined-calendar-day .attendance-calendar-icon {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    border-radius: 18px !important;
    margin: 4px auto 0 !important;
    font-size: 1.75rem !important;
}
.refined-calendar-day .attendance-calendar-icon svg { width: 30px !important; height: 30px !important; }
.workout-mini-subtitle,
.athlete-workout-subtitle {
    direction: rtl !important;
    unicode-bidi: plaintext !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.35 !important;
}

@media (max-width: 640px) {
    .athlete-month-grid,
    .attendance-calendar {
        gap: 6px !important;
    }
    .refined-athlete-day {
        min-height: 82px !important;
        border-radius: 16px !important;
        padding: 5px 3px 7px !important;
    }
    .refined-calendar-day {
        min-height: 86px !important;
        aspect-ratio: 1 / 1 !important;
        border-radius: 17px !important;
        padding: 6px 4px !important;
        gap: 4px !important;
    }
    .refined-calendar-day .day-number {
        min-width: 26px !important;
        height: 26px !important;
        border-radius: 11px !important;
        font-size: .78rem !important;
    }
    .refined-calendar-day .attendance-calendar-icon {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        border-radius: 14px !important;
        font-size: 1.25rem !important;
    }
    .refined-calendar-day .attendance-calendar-icon svg { width: 23px !important; height: 23px !important; }
    .athlete-workout-subtitle,
    .workout-mini-subtitle {
        font-size: .48rem !important;
        font-weight: 900 !important;
        letter-spacing: -.02em;
        max-width: 100% !important;
    }
}

/* ===== Coach attendance calendar: match athlete calendar, calm and readable ===== */
.attendance-calendar.final-modern-calendar,
.refined-attendance-calendar {
    gap: 8px !important;
}
.refined-calendar-day {
    aspect-ratio: 1 / 1 !important;
    min-height: 74px !important;
    border-radius: 18px !important;
    padding: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.025)) !important;
    border: 1px solid rgba(255,255,255,.105) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 10px 26px rgba(0,0,0,.14) !important;
}
.refined-calendar-day:hover {
    transform: translateY(-2px) !important;
    border-color: rgba(252,76,2,.36) !important;
}
.refined-calendar-day .day-number {
    align-self: center !important;
    min-width: 26px !important;
    width: 26px !important;
    height: 26px !important;
    border-radius: 11px !important;
    background: rgba(255,255,255,.08) !important;
    border: 1px solid rgba(255,255,255,.07) !important;
    font-size: .82rem !important;
    line-height: 1 !important;
}
.refined-calendar-day .attendance-calendar-icon {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    border-radius: 15px !important;
    margin: 1px auto 0 !important;
    font-size: 1.35rem !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 24px rgba(0,0,0,.16) !important;
}
.refined-calendar-day .attendance-calendar-icon svg {
    width: 24px !important;
    height: 24px !important;
}
.refined-calendar-day.present,
.refined-calendar-day.absent,
.refined-calendar-day.late {
    background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.025)) !important;
}
.workout-mini-subtitle,
.athlete-workout-subtitle {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    -webkit-line-clamp: unset !important;
    font-weight: 900 !important;
}
.workout-mini-subtitle { font-size: .58rem !important; }
.sms-target-label {
    display: block;
    margin: 14px 0 7px;
    color: var(--muted);
    font-weight: 900;
    font-size: .85rem;
}
.sms-target-select {
    width: 100%;
    margin-bottom: 12px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.07);
    color: var(--text);
    padding: 12px 14px;
    outline: none;
}
body[data-theme="light"] .sms-target-select {
    background: rgba(15,23,42,.035);
    border-color: rgba(15,23,42,.10);
    color: #111827;
}
@media (max-width: 640px) {
    .refined-calendar-day {
        min-height: 70px !important;
        border-radius: 15px !important;
        padding: 5px 3px 6px !important;
        gap: 3px !important;
    }
    .refined-calendar-day .day-number {
        width: 20px !important;
        height: 20px !important;
        min-width: 20px !important;
        border-radius: 8px !important;
        font-size: .65rem !important;
    }
    .refined-calendar-day .attendance-calendar-icon {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        border-radius: 11px !important;
        font-size: 1.05rem !important;
    }
    .refined-calendar-day .attendance-calendar-icon svg {
        width: 19px !important;
        height: 19px !important;
    }
    .workout-mini-subtitle {
        font-size: .44rem !important;
        line-height: 1.2 !important;
    }
}

/* ===== Hotfix: coach athlete edit modal scroll + clean attendance calendar mobile/light ===== */
.edit-modal-backdrop.open{
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: clamp(10px, 3vw, 24px) !important;
    background: rgba(2,6,23,.62) !important;
    backdrop-filter: blur(18px) saturate(1.15) !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
}
.edit-athlete-modal{
    width: min(760px, 96vw) !important;
    max-height: min(92dvh, 860px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    padding-bottom: max(22px, env(safe-area-inset-bottom)) !important;
}
body.modal-open .main-content{
    overflow: hidden !important;
    touch-action: none !important;
}
@media (max-width: 680px){
    .edit-modal-backdrop.open{ align-items: stretch !important; padding: 10px !important; }
    .edit-athlete-modal{ width: 100% !important; max-height: calc(100dvh - 20px) !important; border-radius: 24px !important; }
}

/* Coach attendance calendar: reset to athlete-style, readable and stable */
.attendance-calendar-card{ overflow: visible !important; }
.refined-attendance-calendar-card .calendar-weekdays,
.refined-attendance-calendar-card .attendance-calendar,
.final-modern-calendar{
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: clamp(6px, .8vw, 10px) !important;
}
.refined-calendar-weekdays{ padding: 8px !important; }
.refined-calendar-weekdays span{ font-size: .75rem !important; font-weight: 900 !important; color: var(--muted) !important; }
.final-modern-calendar .calendar-day,
.final-modern-calendar .refined-calendar-day{
    aspect-ratio: 1 / 1 !important;
    min-height: unset !important;
    height: auto !important;
    border-radius: 22px !important;
    padding: 8px !important;
    display: grid !important;
    grid-template-rows: auto 1fr auto !important;
    align-items: center !important;
    justify-items: center !important;
    text-align: center !important;
    gap: 3px !important;
    overflow: hidden !important;
    background: rgba(15, 23, 42, .56) !important;
    border: 1px solid rgba(148, 163, 184, .18) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.045), 0 10px 28px rgba(0,0,0,.14) !important;
}
.final-modern-calendar .calendar-day:hover{ transform: translateY(-2px) !important; }
.final-modern-calendar .calendar-day .day-number{
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    border-radius: 12px !important;
    font-size: .82rem !important;
    background: rgba(255,255,255,.075) !important;
    justify-self: start !important;
    color: var(--text) !important;
}
.final-modern-calendar .attendance-calendar-icon{
    width: clamp(34px, 4.6vw, 48px) !important;
    height: clamp(34px, 4.6vw, 48px) !important;
    min-width: clamp(34px, 4.6vw, 48px) !important;
    border-radius: 16px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto !important;
    font-size: clamp(1.3rem, 2.7vw, 2rem) !important;
    line-height: 1 !important;
}
.final-modern-calendar .attendance-calendar-icon svg{ width: 66% !important; height: 66% !important; }
.final-modern-calendar .calendar-day.present .attendance-calendar-icon{ color: #86efac !important; background: rgba(34,197,94,.18) !important; border: 1px solid rgba(34,197,94,.26) !important; }
.final-modern-calendar .calendar-day.absent .attendance-calendar-icon{ color: #fecaca !important; background: rgba(239,68,68,.18) !important; border: 1px solid rgba(239,68,68,.28) !important; }
.final-modern-calendar .calendar-day.late .attendance-calendar-icon{ color: #fde68a !important; background: rgba(245,158,11,.18) !important; border: 1px solid rgba(245,158,11,.28) !important; }
.final-modern-calendar .workout-mini-subtitle{
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(.52rem, .95vw, .68rem) !important;
    line-height: 1.25 !important;
    text-align: center !important;
    color: rgba(226,232,240,.80) !important;
    white-space: normal !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    padding: 0 2px !important;
}
.final-modern-calendar .empty-note{ display: none !important; }
.final-modern-calendar .calendar-day.muted-day{ opacity: .32 !important; }
.final-modern-calendar .calendar-day.selected{ outline: 2px solid var(--primary) !important; box-shadow: 0 0 0 5px rgba(217,184,111,.13) !important; }
@media (max-width: 760px){
    .attendance-shell{ gap: 12px !important; }
    .refined-attendance-calendar-card{ padding: 12px !important; border-radius: 24px !important; }
    .calendar-toolbar{ padding: 8px !important; border-radius: 16px !important; gap: 6px !important; }
    .calendar-toolbar .btn{ padding: 8px 9px !important; font-size: .72rem !important; }
    .calendar-toolbar strong{ font-size: .92rem !important; }
    .refined-calendar-weekdays{ gap: 4px !important; padding: 5px !important; border-radius: 14px !important; }
    .refined-calendar-weekdays span{ font-size: .56rem !important; padding: 5px 1px !important; }
    .final-modern-calendar{ gap: 4px !important; }
    .final-modern-calendar .calendar-day,
    .final-modern-calendar .refined-calendar-day{
        border-radius: 14px !important;
        padding: 4px 2px 5px !important;
        gap: 1px !important;
    }
    .final-modern-calendar .calendar-day .day-number{
        width: 18px !important;
        height: 18px !important;
        min-width: 18px !important;
        border-radius: 7px !important;
        font-size: .55rem !important;
    }
    .final-modern-calendar .attendance-calendar-icon{
        width: 27px !important;
        height: 27px !important;
        min-width: 27px !important;
        border-radius: 10px !important;
        font-size: .95rem !important;
    }
    .final-modern-calendar .workout-mini-subtitle{
        font-size: .42rem !important;
        line-height: 1.12 !important;
        -webkit-line-clamp: 2 !important;
        letter-spacing: -.03em;
    }
    .calendar-legend{ gap: 6px !important; }
    .calendar-legend span{ padding: 6px 8px !important; font-size: .68rem !important; }
}
@media (max-width: 420px){
    .final-modern-calendar{ gap: 3px !important; }
    .final-modern-calendar .calendar-day,
    .final-modern-calendar .refined-calendar-day{ border-radius: 12px !important; padding: 3px 1px 4px !important; }
    .final-modern-calendar .attendance-calendar-icon{ width: 24px !important; height: 24px !important; min-width: 24px !important; }
    .final-modern-calendar .workout-mini-subtitle{ font-size: .38rem !important; }
}

body[data-theme="light"] .refined-calendar-weekdays{
    background: rgba(255,255,255,.72) !important;
    border: 1px solid rgba(15,23,42,.08) !important;
}
body[data-theme="light"] .final-modern-calendar .calendar-day,
body[data-theme="light"] .final-modern-calendar .refined-calendar-day{
    background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(241,245,249,.92)) !important;
    border-color: rgba(15,23,42,.11) !important;
    color: #0f172a !important;
    box-shadow: 0 8px 20px rgba(15,23,42,.06) !important;
}
body[data-theme="light"] .final-modern-calendar .calendar-day .day-number{
    background: rgba(15,23,42,.06) !important;
    color: #0f172a !important;
}
body[data-theme="light"] .final-modern-calendar .workout-mini-subtitle{
    color: #334155 !important;
}
body[data-theme="light"] .final-modern-calendar .calendar-day.present{
    border-color: rgba(22,163,74,.28) !important;
    background: linear-gradient(145deg, #ffffff, #ecfdf5) !important;
}
body[data-theme="light"] .final-modern-calendar .calendar-day.absent{
    border-color: rgba(220,38,38,.26) !important;
    background: linear-gradient(145deg, #ffffff, #fff1f2) !important;
}
body[data-theme="light"] .final-modern-calendar .calendar-day.late{
    border-color: rgba(217,119,6,.26) !important;
    background: linear-gradient(145deg, #ffffff, #fffbeb) !important;
}

/* === AmFit update: coach attendance calendar aligned with athlete calendar === */
.coach-like-athlete-calendar{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px!important;direction:ltr!important;align-items:stretch!important;}
.coach-attendance-weekdays{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px!important;direction:ltr!important;text-align:center!important;margin-bottom:8px!important;}
.coach-like-athlete-calendar .calendar-day{appearance:none!important;-webkit-appearance:none!important;border:1px solid rgba(255,255,255,.09)!important;background:rgba(255,255,255,.045)!important;color:inherit!important;cursor:pointer!important;text-align:inherit!important;aspect-ratio:1/1!important;min-height:0!important;height:auto!important;overflow:hidden!important;}
.coach-like-athlete-calendar .calendar-day .visible-day-number{position:absolute!important;top:8px!important;inset-inline-end:8px!important;min-width:28px!important;height:28px!important;border-radius:12px!important;display:grid!important;place-items:center!important;background:rgba(255,255,255,.08)!important;font-weight:900!important;color:#fff!important;font-size:.92rem!important;}
.coach-like-athlete-calendar .attendance-calendar-icon{margin:auto auto 2px!important;width:40px!important;height:40px!important;border-radius:15px!important;display:grid!important;place-items:center!important;font-size:1.55rem!important;line-height:1!important;}
.coach-like-athlete-calendar .attendance-calendar-icon svg{width:26px!important;height:26px!important;}
.coach-like-athlete-calendar .athlete-workout-subtitle{display:block!important;width:100%!important;text-align:center!important;margin-top:0!important;font-size:.64rem!important;line-height:1.35!important;font-weight:850!important;color:rgba(255,255,255,.86)!important;white-space:normal!important;overflow:hidden!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;direction:rtl!important;}
.coach-like-athlete-calendar .calendar-day.present{border-color:rgba(34,197,94,.34)!important;background:linear-gradient(145deg,rgba(34,197,94,.18),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.absent{border-color:rgba(239,68,68,.34)!important;background:linear-gradient(145deg,rgba(239,68,68,.16),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.late{border-color:rgba(245,158,11,.34)!important;background:linear-gradient(145deg,rgba(245,158,11,.15),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.muted{opacity:.38!important;}
.coach-like-athlete-calendar .calendar-day.selected{outline:2px solid var(--primary)!important;box-shadow:0 0 0 5px rgba(217,184,111,.14)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day{background:#fff!important;border-color:rgba(15,23,42,.10)!important;color:#0f172a!important;box-shadow:0 12px 30px rgba(15,23,42,.06)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day .visible-day-number{background:#f1f5f9!important;color:#0f172a!important;}
body[data-theme="light"] .coach-like-athlete-calendar .athlete-workout-subtitle{color:#334155!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.present{background:linear-gradient(145deg,#ecfdf5,#ffffff)!important;border-color:rgba(22,163,74,.25)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.absent{background:linear-gradient(145deg,#fef2f2,#ffffff)!important;border-color:rgba(220,38,38,.24)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.late{background:linear-gradient(145deg,#fffbeb,#ffffff)!important;border-color:rgba(217,119,6,.25)!important;}
@media (max-width: 760px){
  .coach-like-athlete-calendar{gap:5px!important;}
  .coach-attendance-weekdays{gap:5px!important;font-size:.72rem!important;}
  .coach-like-athlete-calendar .calendar-day{border-radius:15px!important;padding:5px 3px 6px!important;}
  .coach-like-athlete-calendar .calendar-day .visible-day-number{top:5px!important;inset-inline-end:5px!important;min-width:22px!important;height:22px!important;border-radius:10px!important;font-size:.78rem!important;}
  .coach-like-athlete-calendar .attendance-calendar-icon{width:31px!important;height:31px!important;border-radius:12px!important;font-size:1.25rem!important;}
  .coach-like-athlete-calendar .attendance-calendar-icon svg{width:21px!important;height:21px!important;}
  .coach-like-athlete-calendar .athlete-workout-subtitle{font-size:.48rem!important;line-height:1.25!important;-webkit-line-clamp:2!important;}
}

/* === Final update: cleaner coach attendance calendar, top home action, settings polish === */
.top-home-link{
    width:46px;height:46px;border-radius:16px;display:grid;place-items:center;
    color:var(--text);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
    text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);transition:.18s ease;
}
.top-home-link:hover{transform:translateY(-1px);background:rgba(255,255,255,.13)}
.top-home-link svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body[data-theme="light"] .top-home-link{background:#fff;border-color:rgba(15,23,42,.10);color:#0f172a;box-shadow:0 8px 24px rgba(15,23,42,.06)}

/* Coach attendance calendar: same visual language as athlete calendar, but larger and cleaner */
.coach-like-athlete-calendar{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:12px!important;
}
.coach-like-athlete-calendar .calendar-day{
    border-radius:24px!important;
    padding:12px 10px 13px!important;
    aspect-ratio:1/1!important;
    min-height:118px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    position:relative!important;
    overflow:hidden!important;
    background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025))!important;
    border:1px solid rgba(255,255,255,.11)!important;
}
.coach-like-athlete-calendar .calendar-day .visible-day-number{
    position:absolute!important;
    top:10px!important;
    left:10px!important;
    right:auto!important;
    inset-inline-start:auto!important;
    inset-inline-end:auto!important;
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    border-radius:14px!important;
    display:grid!important;
    place-items:center!important;
    background:rgba(255,255,255,.10)!important;
    color:#f8fafc!important;
    font-size:1rem!important;
    font-weight:1000!important;
}
.coach-like-athlete-calendar .attendance-calendar-icon{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    border-radius:18px!important;
    margin:18px auto 8px!important;
    font-size:2rem!important;
    display:grid!important;
    place-items:center!important;
}
.coach-like-athlete-calendar .attendance-calendar-icon svg{
    width:35px!important;
    height:35px!important;
}
.coach-like-athlete-calendar .athlete-workout-subtitle{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0 4px!important;
    text-align:center!important;
    font-size:.72rem!important;
    line-height:1.45!important;
    font-weight:900!important;
    color:rgba(226,232,240,.86)!important;
    white-space:normal!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
}
.coach-like-athlete-calendar .calendar-day.present{border-color:rgba(34,197,94,.36)!important;background:linear-gradient(145deg,rgba(34,197,94,.18),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.absent{border-color:rgba(239,68,68,.36)!important;background:linear-gradient(145deg,rgba(239,68,68,.16),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.late{border-color:rgba(245,158,11,.36)!important;background:linear-gradient(145deg,rgba(245,158,11,.15),rgba(255,255,255,.035))!important;}

body[data-theme="light"] .coach-like-athlete-calendar .calendar-day{
    background:linear-gradient(145deg,#ffffff,#f8fafc)!important;
    border-color:rgba(15,23,42,.12)!important;
    color:#0f172a!important;
    box-shadow:0 12px 28px rgba(15,23,42,.07)!important;
}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day .visible-day-number{
    background:#f1f5f9!important;
    color:#0f172a!important;
}
body[data-theme="light"] .coach-like-athlete-calendar .athlete-workout-subtitle{color:#1e293b!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.present{background:linear-gradient(145deg,#ecfdf5,#ffffff)!important;border-color:rgba(22,163,74,.30)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.absent{background:linear-gradient(145deg,#fef2f2,#ffffff)!important;border-color:rgba(220,38,38,.28)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.late{background:linear-gradient(145deg,#fffbeb,#ffffff)!important;border-color:rgba(217,119,6,.28)!important;}

@media (max-width:760px){
    .coach-like-athlete-calendar{gap:7px!important;}
    .coach-attendance-weekdays{gap:7px!important;}
    .coach-like-athlete-calendar .calendar-day{
        border-radius:17px!important;
        min-height:86px!important;
        padding:8px 4px 8px!important;
    }
    .coach-like-athlete-calendar .calendar-day .visible-day-number{
        top:6px!important;left:6px!important;width:24px!important;min-width:24px!important;height:24px!important;border-radius:10px!important;font-size:.78rem!important;
    }
    .coach-like-athlete-calendar .attendance-calendar-icon{
        width:38px!important;height:38px!important;min-width:38px!important;border-radius:14px!important;margin:15px auto 5px!important;font-size:1.45rem!important;
    }
    .coach-like-athlete-calendar .attendance-calendar-icon svg{width:25px!important;height:25px!important;}
    .coach-like-athlete-calendar .athlete-workout-subtitle{font-size:.54rem!important;line-height:1.25!important;-webkit-line-clamp:2!important;}
}
@media (max-width:420px){
    .coach-like-athlete-calendar{gap:5px!important;}
    .coach-like-athlete-calendar .calendar-day{min-height:76px!important;border-radius:15px!important;padding:7px 2px!important;}
    .coach-like-athlete-calendar .attendance-calendar-icon{width:32px!important;height:32px!important;min-width:32px!important;margin:14px auto 4px!important;}
    .coach-like-athlete-calendar .attendance-calendar-icon svg{width:21px!important;height:21px!important;}
    .coach-like-athlete-calendar .athlete-workout-subtitle{font-size:.47rem!important;}
}

/* Settings page clean-up */
.subscription-hero,
.panel-background-settings-card,
.report-header-settings-card,
.sms-template-settings-card,
.settings-grid > .glass-card{
    border-radius:30px!important;
}
.panel-background-settings-card,
.report-header-settings-card,
.sms-template-settings-card{
    margin-top:18px!important;
}
.report-header-preview{
    min-height:190px!important;
    background:rgba(255,255,255,.04)!important;
}
.report-header-preview img{
    width:100%!important;
    max-height:360px!important;
    object-fit:contain!important;
    background:#fff!important;
}
.sms-template-form{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:12px 16px!important;
}
.sms-template-form label{margin-top:0!important;}
.sms-template-form textarea{min-height:116px!important;}
.sms-template-form .form-hint,
.sms-template-form .wide-action{grid-column:1/-1!important;}
@media (max-width:900px){.sms-template-form{grid-template-columns:1fr!important;}.sms-template-form .form-hint,.sms-template-form .wide-action{grid-column:auto!important;}}

/* ===== Final hotfix: coach attendance calendar exactly aligned with athlete calendar ===== */
.coach-attendance-weekdays,
.coach-like-athlete-calendar{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    direction:ltr!important;
    gap:10px!important;
    width:100%!important;
}
.coach-attendance-weekdays{
    margin:0 0 10px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
}
.coach-attendance-weekdays span{
    text-align:center!important;
    font-weight:900!important;
    color:var(--muted)!important;
    font-size:.82rem!important;
}
.coach-like-athlete-calendar .calendar-day,
.coach-like-athlete-calendar .refined-athlete-day{
    appearance:none!important;
    -webkit-appearance:none!important;
    width:100%!important;
    aspect-ratio:1/1!important;
    min-width:0!important;
    min-height:92px!important;
    height:auto!important;
    border-radius:20px!important;
    padding:9px 7px 8px!important;
    display:grid!important;
    grid-template-rows:auto 1fr auto!important;
    align-items:center!important;
    justify-items:center!important;
    gap:4px!important;
    text-align:center!important;
    position:relative!important;
    overflow:hidden!important;
    cursor:pointer!important;
    background:rgba(255,255,255,.045)!important;
    border:1px solid rgba(255,255,255,.09)!important;
    color:var(--text)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 10px 24px rgba(0,0,0,.13)!important;
}
.coach-like-athlete-calendar .calendar-day:hover{transform:translateY(-1px)!important;border-color:rgba(252,76,2,.34)!important;}
.coach-like-athlete-calendar .calendar-day .visible-day-number{
    position:static!important;
    justify-self:start!important;
    align-self:start!important;
    width:28px!important;
    min-width:28px!important;
    height:28px!important;
    padding:0!important;
    border-radius:11px!important;
    display:grid!important;
    place-items:center!important;
    background:rgba(255,255,255,.075)!important;
    color:var(--text)!important;
    font-size:.78rem!important;
    font-weight:1000!important;
    line-height:1!important;
}
.coach-like-athlete-calendar .attendance-calendar-icon{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    border-radius:16px!important;
    margin:0 auto!important;
    display:grid!important;
    place-items:center!important;
    font-size:1.65rem!important;
    line-height:1!important;
    border:1px solid rgba(255,255,255,.11)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 22px rgba(0,0,0,.16)!important;
}
.coach-like-athlete-calendar .attendance-calendar-icon svg{width:30px!important;height:30px!important;}
.coach-like-athlete-calendar .athlete-workout-subtitle{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-height:1.15em!important;
    padding:0 2px!important;
    margin:0!important;
    text-align:center!important;
    direction:rtl!important;
    unicode-bidi:plaintext!important;
    color:rgba(226,232,240,.82)!important;
    font-size:.62rem!important;
    line-height:1.25!important;
    font-weight:900!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    -webkit-line-clamp:unset!important;
}
.coach-like-athlete-calendar .calendar-day.present{border-color:rgba(34,197,94,.34)!important;background:linear-gradient(145deg,rgba(34,197,94,.18),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.absent{border-color:rgba(239,68,68,.34)!important;background:linear-gradient(145deg,rgba(239,68,68,.16),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.late{border-color:rgba(245,158,11,.34)!important;background:linear-gradient(145deg,rgba(245,158,11,.15),rgba(255,255,255,.035))!important;}
.coach-like-athlete-calendar .calendar-day.muted{opacity:.35!important;}
.coach-like-athlete-calendar .calendar-day.selected{outline:2px solid var(--primary)!important;box-shadow:0 0 0 5px rgba(252,76,2,.13)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day{
    background:#fff!important;
    border-color:rgba(15,23,42,.10)!important;
    color:#0f172a!important;
    box-shadow:0 8px 22px rgba(15,23,42,.06)!important;
}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day .visible-day-number{background:#f1f5f9!important;color:#0f172a!important;}
body[data-theme="light"] .coach-like-athlete-calendar .athlete-workout-subtitle{color:#334155!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.present{background:linear-gradient(145deg,#ecfdf5,#fff)!important;border-color:rgba(22,163,74,.26)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.absent{background:linear-gradient(145deg,#fef2f2,#fff)!important;border-color:rgba(220,38,38,.24)!important;}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day.late{background:linear-gradient(145deg,#fffbeb,#fff)!important;border-color:rgba(217,119,6,.25)!important;}
.report-scale-control{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09)}
.report-scale-control input{flex:1;accent-color:var(--primary)}
.report-scale-control strong{min-width:58px;text-align:center;font-weight:1000;color:var(--text)}
.report-scale-only-form{margin-top:12px!important;}
body[data-theme="light"] .report-scale-control{background:rgba(15,23,42,.035);border-color:rgba(15,23,42,.08)}
body[data-theme="light"] .report-scale-control strong{color:#0f172a}
@media (max-width:760px){
    .coach-attendance-weekdays,.coach-like-athlete-calendar{gap:6px!important;}
    .coach-attendance-weekdays span{font-size:.62rem!important;}
    .coach-like-athlete-calendar .calendar-day,
    .coach-like-athlete-calendar .refined-athlete-day{
        min-height:72px!important;
        border-radius:15px!important;
        padding:5px 2px 5px!important;
        gap:2px!important;
    }
    .coach-like-athlete-calendar .calendar-day .visible-day-number{
        width:20px!important;min-width:20px!important;height:20px!important;border-radius:8px!important;font-size:.58rem!important;
    }
    .coach-like-athlete-calendar .attendance-calendar-icon{
        width:30px!important;height:30px!important;min-width:30px!important;border-radius:11px!important;font-size:1.08rem!important;
    }
    .coach-like-athlete-calendar .attendance-calendar-icon svg{width:20px!important;height:20px!important;}
    .coach-like-athlete-calendar .athlete-workout-subtitle{font-size:.43rem!important;line-height:1.14!important;}
}

/* ===== Hotfix: show workout title under attendance icon on coach desktop calendar ===== */
.coach-like-athlete-calendar .calendar-day .athlete-workout-subtitle{
    grid-row:3!important;
    align-self:end!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    min-height:18px!important;
    color:rgba(226,232,240,.9)!important;
    font-size:.68rem!important;
    line-height:1.25!important;
    font-weight:900!important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
body[data-theme="light"] .coach-like-athlete-calendar .calendar-day .athlete-workout-subtitle{
    color:#1e293b!important;
}
@media (max-width:760px){
    .coach-like-athlete-calendar .calendar-day .athlete-workout-subtitle{
        min-height:14px!important;
        font-size:.46rem!important;
        line-height:1.15!important;
    }
}

/* ===== Hotfix: coach attendance desktop workout subtitle visibility ===== */
@media (min-width: 761px){
    .coach-like-athlete-calendar .calendar-day,
    .coach-like-athlete-calendar .refined-athlete-day{
        min-height:116px!important;
        grid-template-rows:30px 52px 24px!important;
        padding:10px 8px 9px!important;
    }
    .coach-like-athlete-calendar .attendance-calendar-icon{
        align-self:center!important;
        justify-self:center!important;
        margin:0 auto!important;
    }
    .coach-like-athlete-calendar .athlete-workout-subtitle{
        display:block!important;
        visibility:visible!important;
        opacity:1!important;
        min-height:18px!important;
        height:18px!important;
        line-height:18px!important;
        font-size:.68rem!important;
        white-space:nowrap!important;
        overflow:hidden!important;
        text-overflow:ellipsis!important;
        text-align:center!important;
        justify-self:stretch!important;
        align-self:end!important;
        z-index:2!important;
    }
}

/* Unified SMS settings: one card only, with remaining count and templates */
.sms-settings-single-grid{grid-template-columns:minmax(0,1fr)!important;}
.sms-settings-unified-card{overflow:visible;}
.sms-purchase-row{display:grid;grid-template-columns:minmax(160px,.35fr) minmax(220px,.65fr);gap:14px;align-items:end;margin:14px 0 22px;}
.unified-sms-template-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-items:start;}
.unified-sms-template-form label{margin:0!important;font-weight:900;color:var(--text);}
.unified-sms-template-form textarea{min-height:112px!important;resize:vertical;line-height:1.9;}
.unified-sms-template-form .form-hint,.unified-sms-template-form .wide-action{grid-column:1/-1!important;}
@media (max-width:900px){.sms-purchase-row,.unified-sms-template-form{grid-template-columns:1fr!important}.unified-sms-template-form .form-hint,.unified-sms-template-form .wide-action{grid-column:auto!important}}

/* AmFit hard fix: mobile navigation and popups must overlay every panel layer */
@media (max-width: 900px) {
    body.menu-open,
    body.modal-open {
        overflow: hidden !important;
        position: fixed !important;
        width: 100% !important;
        inset-inline-start: 0 !important;
        overscroll-behavior: none !important;
    }

    .mobile-menu-button {
        position: fixed !important;
        top: max(14px, env(safe-area-inset-top)) !important;
        right: 14px !important;
        z-index: 2147483647 !important;
    }

    .sidebar-backdrop {
        position: fixed !important;
        inset: 0 !important;
        z-index: 2147483600 !important;
        background: rgba(3, 7, 18, .66) !important;
        -webkit-backdrop-filter: blur(18px) saturate(1.14) !important;
        backdrop-filter: blur(18px) saturate(1.14) !important;
    }

    .sidebar {
        position: fixed !important;
        top: 0 !important;
        bottom: 0 !important;
        right: 0 !important;
        left: auto !important;
        width: min(86vw, 340px) !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        z-index: 2147483620 !important;
        transform: translateX(110%) !important;
    }

    .sidebar.mobile-open {
        transform: translateX(0) !important;
    }

    body.menu-open .topbar,
    body.menu-open .top-actions,
    body.menu-open .notification-menu,
    body.menu-open .theme-menu,
    body.menu-open .language-menu,
    body.menu-open .main-content {
        pointer-events: none !important;
    }

    body.menu-open .sidebar,
    body.menu-open .sidebar *,
    body.menu-open .sidebar-backdrop,
    body.menu-open .mobile-menu-button,
    body.menu-open .mobile-menu-button * {
        pointer-events: auto !important;
    }
}

/* AmFit hard fix: universal modal/popup surface */
.popup-backdrop,
.edit-modal-backdrop,
.jalali-picker-backdrop,
.meal-editor-modal,
.food-picker-modal,
.modal-backdrop,
.food-picker-backdrop,
.sms-modal-backdrop,
.urgent-sms-modal,
[class*="modal-backdrop"],
[class*="popup-backdrop"] {
    z-index: 2147483500 !important;
}

.popup-backdrop.open,
.edit-modal-backdrop.open,
.jalali-picker-backdrop.open,
.meal-editor-modal.open,
.food-picker-modal.open,
.modal-backdrop.open,
.modal-backdrop:not([hidden]),
.sms-modal-backdrop.open,
.urgent-sms-modal.open {
    background: rgba(3, 7, 18, .68) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
}

.edit-athlete-modal,
.messages-popup,
.meal-editor-panel,
.food-picker-panel,
.jalali-picker,
.workout-day-modal,
.glass-modal,
.modal-card,
.popup-card,
.sms-modal-card {
    max-height: calc(100dvh - 32px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    z-index: 2147483550 !important;
}
body.amfit-scroll-locked {
    position: fixed !important;
    width: 100% !important;
    inset-inline-start: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
}


/* Sales admin management actions */
.admin-create-panel {
    margin-bottom: 18px;
}

.admin-create-panel .compact-head {
    margin-bottom: 12px;
}

.admin-inline-create {
    gap: 16px;
}

.admin-check-row {
    align-items: center;
    justify-content: center;
    min-height: 54px;
}

.admin-action-card {
    color: inherit;
}

.admin-entity-main-link {
    display: flex;
    flex-direction: column;
    gap: 14px;
    color: inherit;
    text-decoration: none;
}

.admin-card-actions {
    gap: 12px;
    align-items: flex-end;
}

.admin-action-buttons {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.admin-action-buttons form {
    margin: 0;
}

.btn.danger {
    color: #fecaca;
    background: rgba(239,68,68,.12);
    border: 1px solid rgba(239,68,68,.28);
}

.btn.danger:hover {
    background: rgba(239,68,68,.20);
    border-color: rgba(239,68,68,.44);
}

body[data-theme="light"] .admin-entity-card,
body[data-theme="light"] .admin-create-panel {
    background: rgba(255,255,255,.84);
    border-color: rgba(15,23,42,.08);
}

@media (max-width: 720px) {
    .admin-card-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-action-buttons,
    .admin-action-buttons .btn,
    .admin-action-buttons form,
    .admin-action-buttons button {
        width: 100%;
    }

    .admin-action-buttons {
        justify-content: stretch;
    }
}

/* Sales admin plan management enhancements */
.plan-summary-chip{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 14px;border:1px solid var(--card-border);border-radius:18px;background:rgba(255,255,255,.055);min-height:58px}
.plan-summary-chip small{color:var(--muted);font-size:.84rem}.plan-summary-chip b{font-size:.95rem}.sms-plan-list{display:grid;gap:12px;margin:14px 0 22px}.dynamic-sms-plan-row{grid-template-columns:minmax(180px,1fr) auto auto!important;align-items:center!important;margin:0!important;padding:14px;border:1px solid var(--card-border);border-radius:18px;background:rgba(255,255,255,.045)}.dynamic-sms-plan-row>div:first-child{display:grid;gap:4px}.dynamic-sms-plan-row small{color:var(--muted)}@media(max-width:760px){.dynamic-sms-plan-row{grid-template-columns:1fr!important}.dynamic-sms-plan-row .btn{width:100%}}

/* Sales admin cleanup + dynamic payment links */
.sales-admin-clean-card {
    border-radius: 30px;
    background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.035));
    box-shadow: 0 20px 60px rgba(0,0,0,.12);
}
.sales-admin-page-head {
    align-items: flex-start;
    gap: 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-bottom: 18px;
}
.sales-admin-page-head p {
    max-width: 880px;
    line-height: 2;
}
.sales-plan-form {
    gap: 18px;
}
.sales-plan-form .three-col,
.admin-inline-create .three-col,
.admin-inline-create .two-col {
    gap: 14px;
}
.payment-url-field {
    position: relative;
}
.payment-url-field input {
    direction: ltr;
    text-align: left;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}
.payment-url-field small {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.8;
}
.sales-plan-active {
    border: 1px solid var(--card-border);
    border-radius: 18px;
    background: rgba(255,255,255,.045);
}
.tariff-admin-row {
    padding: 20px;
    border-radius: 28px;
    gap: 16px;
    background:
        radial-gradient(circle at 90% 0%, rgba(34,197,94,.10), transparent 28%),
        rgba(255,255,255,.052);
}
.tariff-admin-row .three-col {
    gap: 14px;
}
.tariff-admin-row input,
.tariff-admin-row select,
.tariff-admin-row textarea,
.sales-plan-form input,
.sales-plan-form select,
.sales-plan-form textarea,
.admin-inline-create input,
.admin-inline-create select,
.admin-inline-create textarea {
    min-height: 50px;
    border-radius: 16px;
}
.tariff-row-actions {
    padding-top: 4px;
    justify-content: flex-end;
}
.admin-list-hero .section-head,
.admin-create-panel .section-head,
.admin-list-card .admin-list-toolbar {
    gap: 16px;
}
.admin-create-panel,
.admin-list-card,
.admin-list-hero {
    border-radius: 30px;
}
.admin-inline-create {
    display: grid;
    gap: 16px;
}
.admin-entity-grid {
    gap: 16px;
}
.admin-entity-card {
    border-radius: 26px;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.admin-entity-card:hover {
    transform: translateY(-2px);
}
.admin-card-actions {
    border-top: 1px solid rgba(255,255,255,.07);
    padding-top: 12px;
}
body[data-theme="light"] .sales-admin-clean-card,
body[data-theme="light"] .tariff-admin-row,
body[data-theme="light"] .sales-plan-active,
body[data-theme="light"] .admin-list-hero,
body[data-theme="light"] .admin-create-panel,
body[data-theme="light"] .admin-list-card {
    background: rgba(255,255,255,.88);
    border-color: rgba(15,23,42,.09);
    box-shadow: 0 18px 50px rgba(15,23,42,.07);
}
body[data-theme="light"] .sales-admin-page-head,
body[data-theme="light"] .admin-card-actions {
    border-color: rgba(15,23,42,.08);
}
@media (max-width: 760px) {
    .sales-admin-page-head,
    .admin-list-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .tariff-admin-row,
    .sales-admin-clean-card,
    .admin-create-panel,
    .admin-list-card,
    .admin-list-hero {
        border-radius: 22px;
        padding: 16px;
    }
    .tariff-row-actions .btn,
    .tariff-row-actions a,
    .admin-search-form .btn,
    .admin-search-form a {
        width: 100%;
    }
}

/* AmFit fix 2026-06-23: mobile menu backdrop must stay BEHIND the actual menu.
   The sidebar is lifted to <body> by site.js on mobile open to avoid stacking-context bugs. */
@media (max-width: 1100px) {
    .sidebar-backdrop {
        z-index: 50000 !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
    .sidebar-backdrop.open {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
    .sidebar {
        z-index: 50020 !important;
        visibility: visible !important;
        opacity: 1 !important;
        filter: none !important;
        -webkit-filter: none !important;
    }
    .sidebar.mobile-open {
        z-index: 50020 !important;
        transform: translateX(0) !important;
        pointer-events: auto !important;
    }
    .mobile-menu-button {
        z-index: 50040 !important;
    }
    body.menu-open .sidebar,
    body.menu-open .sidebar *,
    body.menu-open .mobile-menu-button,
    body.menu-open .mobile-menu-button * {
        filter: none !important;
        -webkit-filter: none !important;
        pointer-events: auto !important;
    }
    body.menu-open .main-content,
    body.menu-open .topbar,
    body.menu-open .top-actions {
        pointer-events: none !important;
    }
}


/* AmFit fix: local-only media + themed mobile-menu scrolling */
.sidebar,
.nav-block,
.nav-submenu {
    scrollbar-width: thin;
    scrollbar-color: rgba(217,184,111,.42) rgba(4,8,15,.68);
}
.sidebar::-webkit-scrollbar,
.nav-block::-webkit-scrollbar,
.nav-submenu::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}
.sidebar::-webkit-scrollbar-track,
.nav-block::-webkit-scrollbar-track,
.nav-submenu::-webkit-scrollbar-track {
    background: rgba(4,8,15,.72);
    border-radius: 999px;
}
.sidebar::-webkit-scrollbar-thumb,
.nav-block::-webkit-scrollbar-thumb,
.nav-submenu::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(217,184,111,.58), rgba(34,197,94,.38));
    border: 2px solid rgba(4,8,15,.72);
    border-radius: 999px;
}
body[data-theme="light"] .sidebar,
body[data-theme="light"] .nav-block,
body[data-theme="light"] .nav-submenu {
    scrollbar-color: rgba(15,23,42,.32) rgba(241,245,249,.95);
}
body[data-theme="light"] .sidebar::-webkit-scrollbar-track,
body[data-theme="light"] .nav-block::-webkit-scrollbar-track,
body[data-theme="light"] .nav-submenu::-webkit-scrollbar-track {
    background: rgba(241,245,249,.96);
}
body[data-theme="light"] .sidebar::-webkit-scrollbar-thumb,
body[data-theme="light"] .nav-block::-webkit-scrollbar-thumb,
body[data-theme="light"] .nav-submenu::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(15,23,42,.34), rgba(34,197,94,.34));
    border-color: rgba(241,245,249,.96);
}
@media (max-width: 1100px) {
    .sidebar.mobile-open {
        background: linear-gradient(180deg, rgba(4,8,15,.98), rgba(9,14,24,.98)) !important;
        scrollbar-color: rgba(217,184,111,.52) rgba(4,8,15,.92) !important;
    }
    body[data-theme="midnight"] .sidebar.mobile-open {
        background: linear-gradient(180deg, rgba(3,7,18,.98), rgba(8,13,23,.98)) !important;
    }
    body[data-theme="light"] .sidebar.mobile-open {
        background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98)) !important;
        scrollbar-color: rgba(15,23,42,.34) rgba(241,245,249,.96) !important;
    }
}


/* AmFit coach medical/delete/date/modal fixes */
.compact-actions { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.compact-actions form { margin: 0; }
.ghost-danger, .mini-delete-btn { border-color: rgba(239,68,68,.28) !important; color: #fecaca !important; background: rgba(239,68,68,.08) !important; }
.ghost-danger:hover, .mini-delete-btn:hover { background: rgba(239,68,68,.18) !important; color: #fff !important; }
body[data-theme="light"] .ghost-danger, body[data-theme="light"] .mini-delete-btn { color: #b91c1c !important; background: rgba(239,68,68,.08) !important; }

#dayModalBackdrop.modal-backdrop,
.modal-backdrop#dayModalBackdrop {
    z-index: 2147483400 !important;
    background: rgba(2, 6, 23, .82) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.15) !important;
    backdrop-filter: blur(22px) saturate(1.15) !important;
}
#dayModalBackdrop .workout-day-modal {
    z-index: 2147483500 !important;
    background: linear-gradient(145deg, rgba(15,23,42,.98), rgba(17,24,39,.96)) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
}
body[data-theme="light"] #dayModalBackdrop .workout-day-modal {
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,250,252,.96)) !important;
    border-color: rgba(15,23,42,.12) !important;
}
body.modal-open { overflow: hidden !important; }

.sports-med-form .med-section textarea { min-height: 96px; }
.sports-med-form .four-col label { min-width: 0; }
@media (max-width: 780px) { .compact-actions { justify-content: flex-start; } }


/* AmFit update: stable Latin/number typography and larger readable digits in all panels */
@font-face {
    font-family: "AmFitLatinNumbers";
    src: local("Segoe UI"), local("Inter"), local("Roboto"), local("Arial");
    unicode-range: U+0020-007E;
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
body, button, input, select, textarea {
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
}
input, select, textarea, .form-control, .jalali-date-input {
    font-size: 15.5px;
    line-height: 1.7;
}
input[type="number"], input[type="tel"], input[type="date"], input[dir="ltr"], .latin-number, .numeric-value, .kpi-card strong, .kpi-card b {
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
    font-size: 1.02em;
    font-variant-numeric: tabular-nums;
    letter-spacing: .01em;
}
::placeholder {
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
}

/* AmFit typography correction: keep Persian UI standard; apply Latin/number font only where needed */
html, body {
    font-family: "IRYekan", Tahoma, Arial, sans-serif !important;
    font-weight: 500;
    text-rendering: optimizeLegibility;
}
body, p, span, div, label, a, li, td, th, small, strong, b {
    font-family: "IRYekan", Tahoma, Arial, sans-serif !important;
}
/* Standard Persian header scale/weight */
h1, h2, h3, h4, h5, h6,
.topbar h1,
.hero-card h2,
.athlete-calendar-hero h2,
.minimal-calendar-hero h2,
.workout-list-hero h2,
.login-brand h1,
.strava-hero-title,
.page-title,
.card-title,
.section-title,
.form-card h2,
.form-card h3,
.panel-title {
    font-family: "IRYekan", Tahoma, Arial, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.45 !important;
}
.topbar h1,
.page-title,
.hero-card h2 {
    font-size: clamp(24px, 3vw, 42px) !important;
}
.form-card h2,
.section-title,
.card-title {
    font-size: clamp(20px, 2.2vw, 30px) !important;
}
.form-card h3,
.panel-title,
.workout-card-top h3,
.exercise-title-line h3 {
    font-size: clamp(17px, 1.7vw, 22px) !important;
}
/* Menus and buttons should not look bulky */
.sidebar,
.sidebar a,
.nav-block,
.nav-block a,
.nav-group,
.nav-group a,
.nav-title,
.btn,
.btn-primary,
button,
.action-btn,
.pill,
.tab-btn,
.chip,
.menu-item,
.top-actions button,
.icon-button,
.login-form button,
.add-day-button,
.ghost-danger,
.mini-delete-btn {
    font-family: "IRYekan", Tahoma, Arial, sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}
.sidebar a,
.nav-group a,
.nav-block a,
.menu-item {
    font-size: 14px !important;
    line-height: 1.75 !important;
}
.nav-title {
    font-size: 12px !important;
    font-weight: 500 !important;
}
.btn,
.btn-primary,
button,
.action-btn,
.tab-btn,
.chip {
    font-size: 14px;
    line-height: 1.65;
}
/* Keep form values and English/numeric data readable without affecting Persian headings */
input, select, textarea, .form-control, .jalali-date-input {
    font-family: "IRYekan", "AmFitLatinNumbers", Tahoma, Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.8 !important;
    letter-spacing: 0 !important;
}
input[type="number"],
input[type="tel"],
input[type="email"],
input[type="password"],
input[type="date"],
input[dir="ltr"],
.latin-number,
.numeric-value,
.en-number,
.stat-number,
.kpi-card strong,
.kpi-card b,
.metric strong,
.attendance-score strong,
.month-stat-row b,
.compact-stats b {
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: .01em;
}
.kpi-card strong,
.kpi-card b,
.metric strong {
    font-weight: 700 !important;
}
/* Mobile: slightly tighter Persian menu typography */
@media (max-width: 780px) {
    .topbar h1,
    .page-title,
    .hero-card h2 { font-size: clamp(22px, 7vw, 34px) !important; }
    .sidebar a,
    .nav-group a,
    .nav-block a { font-size: 13.5px !important; }
    .btn,
    .btn-primary,
    button,
    .action-btn { font-size: 13.5px !important; }
}

/* AmFit refinement: smaller page headers, cleaner login typography, larger powered/footer labels */
.topbar h1,
.page-title,
.hero-card h2,
.athlete-calendar-hero h2,
.minimal-calendar-hero h2,
.workout-list-hero h2,
.sports-med-hero h2,
.athlete-overview-hero h2,
.detail-hero h2,
.subscription-hero h2,
.builder-head h2,
.builder-days-header h2,
.clean-builder-hero h2,
.report-hero h2,
.progress-hero h2 {
    font-size: clamp(20px, 2.35vw, 32px) !important;
    font-weight: 700 !important;
    line-height: 1.38 !important;
}
.hero-card h2,
.login-card h2,
.glass-card h2 {
    font-size: clamp(22px, 2.55vw, 34px) !important;
}
.form-card h2,
.section-title,
.card-title {
    font-size: clamp(18px, 1.95vw, 26px) !important;
    font-weight: 700 !important;
}
.form-card h3,
.panel-title,
.workout-card-top h3,
.exercise-title-line h3 {
    font-size: clamp(16px, 1.55vw, 20px) !important;
    font-weight: 650 !important;
}

/* Login page: smaller Persian copy, stronger English/platform text */
.login-card,
.login-form label,
.login-brand-hero p,
.login-tabs a,
.login-error {
    font-size: 13px !important;
    font-weight: 500 !important;
}
.login-brand-hero p {
    color: rgba(226,232,240,.72) !important;
    line-height: 1.8 !important;
}
body[data-theme="light"] .login-brand-hero p { color: #64748b !important; }
.login-form input {
    font-size: 16px !important;
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: .01em !important;
}
.login-form input[dir="rtl"],
.login-form input:not([dir]) {
    font-size: 15px !important;
}
.btn-login {
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
}
.login-card {
    box-shadow: 0 28px 90px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.login-powered {
    margin-top: 22px !important;
    padding-top: 16px !important;
}
.login-powered a,
.sidebar-footer-brand a {
    text-decoration: none !important;
}
.login-powered b,
.sidebar-footer-brand b {
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
    font-size: 13.5px !important;
    font-weight: 800 !important;
    letter-spacing: .015em !important;
    line-height: 1.35 !important;
}
.login-powered span,
.sidebar-footer-brand span {
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .02em !important;
    line-height: 1.4 !important;
}
.sidebar-footer-brand {
    padding-top: 16px !important;
}

/* Subscription badge: show only the day number, more visible */
.coach-subscription-top-badge span {
    font-family: "AmFitLatinNumbers", "IRYekan", Tahoma, Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    color: rgba(255,255,255,.86) !important;
}
body[data-theme="light"] .coach-subscription-top-badge span { color: #334155 !important; }
.coach-subscription-top-badge b {
    font-size: 13px !important;
    font-weight: 750 !important;
}

@media (max-width: 780px) {
    .topbar h1,
    .page-title,
    .hero-card h2,
    .athlete-calendar-hero h2,
    .minimal-calendar-hero h2,
    .workout-list-hero h2,
    .sports-med-hero h2,
    .athlete-overview-hero h2,
    .detail-hero h2,
    .subscription-hero h2 {
        font-size: clamp(19px, 5.8vw, 28px) !important;
        line-height: 1.42 !important;
    }
    .login-powered b,
    .sidebar-footer-brand b { font-size: 13px !important; }
    .login-powered span,
    .sidebar-footer-brand span { font-size: 12.5px !important; }
    .coach-subscription-top-badge span { font-size: 14.5px !important; }
}

/* AmFit refinement: compact section titles and remove helper copy under title blocks */
.section-head h2,
.section-head h3,
.create-athlete-summary h2,
.admin-create-panel .section-head h2,
.admin-list-hero .section-head h2,
.glass-card > h2,
.section-card > h2,
.form-card > h2,
.login-card h2 {
    font-size: clamp(16px, 1.45vw, 22px) !important;
    font-weight: 650 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    margin-bottom: 0 !important;
}
.section-head p,
.create-athlete-summary p,
.admin-create-panel .section-head p,
.admin-list-hero .section-head p,
.section-card > p.form-hint,
.glass-card > p.form-hint,
.title-helper,
.section-helper,
.block-helper,
.card-helper {
    display: none !important;
}
.create-athlete-summary {
    padding: 16px 20px !important;
    min-height: 64px !important;
}
.summary-toggle-badge {
    min-width: 108px !important;
    padding: 8px 12px !important;
    font-size: 12.5px !important;
}
.section-head {
    margin-bottom: 12px !important;
    align-items: center !important;
}
@media (max-width: 780px) {
    .section-head h2,
    .section-head h3,
    .create-athlete-summary h2,
    .glass-card > h2,
    .section-card > h2,
    .form-card > h2 {
        font-size: 17px !important;
    }
    .create-athlete-summary { padding: 14px 16px !important; }
}

/* AmFit login motion upgrade: minimal premium kinetic background */
.login-body {
    min-height: 100dvh;
    overflow: hidden;
}
.login-animated-bg {
    position: fixed !important;
    inset: 0 !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 74% 18%, rgba(34,197,94,.20), transparent 28%),
        radial-gradient(circle at 18% 82%, rgba(252,76,2,.18), transparent 30%),
        linear-gradient(135deg, #030712 0%, #07111f 46%, #03130d 100%) !important;
}
.login-animated-bg::before {
    content: "";
    position: absolute;
    width: 74vmax;
    height: 74vmax;
    right: -24vmax;
    top: -34vmax;
    border-radius: 50%;
    background:
        conic-gradient(from 0deg,
            transparent 0 18%,
            rgba(34,197,94,.34) 24%,
            transparent 33% 55%,
            rgba(252,76,2,.28) 64%,
            transparent 72% 100%);
    filter: blur(18px);
    opacity: .58;
    animation: amfitLoginSpin 18s linear infinite;
}
.login-animated-bg::after {
    content: "";
    position: absolute;
    inset: -40px;
    background:
        linear-gradient(115deg, transparent 0 34%, rgba(255,255,255,.055) 42%, transparent 50% 100%),
        repeating-linear-gradient(90deg, rgba(255,255,255,.028) 0 1px, transparent 1px 82px),
        repeating-linear-gradient(0deg, rgba(255,255,255,.018) 0 1px, transparent 1px 82px);
    transform: translate3d(-6%, 0, 0) rotate(.001deg);
    animation: amfitLoginScan 9s ease-in-out infinite alternate;
    opacity: .44;
}
.login-orbit {
    position: absolute !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    box-shadow:
        inset 0 0 32px rgba(255,255,255,.04),
        0 0 80px rgba(34,197,94,.10) !important;
    background: radial-gradient(circle, rgba(255,255,255,.07), transparent 62%) !important;
    backdrop-filter: blur(2px);
}
.login-orbit-a {
    width: 420px !important;
    height: 420px !important;
    left: -130px !important;
    bottom: -130px !important;
    animation: amfitFloatA 7.5s ease-in-out infinite alternate !important;
}
.login-orbit-b {
    width: 220px !important;
    height: 220px !important;
    right: 12% !important;
    top: 16% !important;
    animation: amfitFloatB 6.5s ease-in-out infinite alternate !important;
}
.login-matte-overlay {
    position: absolute !important;
    inset: 0 !important;
    background:
        radial-gradient(circle at 50% 45%, transparent 0 18%, rgba(3,7,18,.18) 54%, rgba(3,7,18,.64) 100%),
        linear-gradient(180deg, rgba(3,7,18,.24), rgba(3,7,18,.78)) !important;
    pointer-events: none;
}
.login-card {
    position: relative;
    isolation: isolate;
    border: 1px solid rgba(255,255,255,.13) !important;
    box-shadow:
        0 30px 95px rgba(0,0,0,.48),
        0 0 0 1px rgba(255,255,255,.035) inset !important;
}
.login-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, rgba(34,197,94,.55), transparent 28%, rgba(252,76,2,.42) 72%, transparent);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: .45;
    z-index: -1;
    animation: amfitBorderPulse 4.5s ease-in-out infinite alternate;
}
.login-form input {
    min-height: 48px !important;
}
.login-form label {
    font-size: 12.5px !important;
    font-weight: 500 !important;
    color: rgba(226,232,240,.78) !important;
}
.login-brand-hero p {
    font-size: 13px !important;
    font-weight: 500 !important;
}
.login-powered {
    font-size: 14px !important;
}
.login-powered b {
    font-size: 14.5px !important;
    letter-spacing: .01em !important;
}
.login-powered span {
    font-size: 13.5px !important;
}
@keyframes amfitLoginSpin {
    to { transform: rotate(360deg) scale(1.04); }
}
@keyframes amfitLoginScan {
    from { transform: translate3d(-8%, -2%, 0); opacity: .28; }
    to { transform: translate3d(8%, 2%, 0); opacity: .52; }
}
@keyframes amfitFloatA {
    from { transform: translate3d(0,0,0) scale(1); }
    to { transform: translate3d(40px,-24px,0) scale(1.06); }
}
@keyframes amfitFloatB {
    from { transform: translate3d(0,0,0) scale(.94); }
    to { transform: translate3d(-28px,36px,0) scale(1.08); }
}
@keyframes amfitBorderPulse {
    from { opacity: .24; filter: hue-rotate(0deg); }
    to { opacity: .62; filter: hue-rotate(18deg); }
}
@media (prefers-reduced-motion: reduce) {
    .login-animated-bg::before,
    .login-animated-bg::after,
    .login-orbit,
    .login-card::before { animation: none !important; }
}

/* AmFit 2026-06-24: animated login border, fixed sidebar footer, dynamic submenu height, notification halo */
.sidebar {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}
.sidebar-head {
    flex: 0 0 auto !important;
}
.sidebar-menu-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 4px 0 14px !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(217,184,111,.42) rgba(255,255,255,.055);
}
.sidebar-menu-scroll::-webkit-scrollbar { width: 7px; }
.sidebar-menu-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.045); border-radius: 999px; }
.sidebar-menu-scroll::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(217,184,111,.62), rgba(34,197,94,.34)); border-radius: 999px; }
body[data-theme="light"] .sidebar-menu-scroll { scrollbar-color: rgba(15,23,42,.24) rgba(15,23,42,.045); }
body[data-theme="light"] .sidebar-menu-scroll::-webkit-scrollbar-track { background: rgba(15,23,42,.04); }
body[data-theme="light"] .sidebar-menu-scroll::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(15,23,42,.28), rgba(217,184,111,.42)); }
.sidebar-footer-brand {
    flex: 0 0 auto !important;
    margin-top: 12px !important;
    padding: 12px 12px !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    border-radius: 20px !important;
    background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.035)) !important;
    box-shadow: 0 16px 36px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.055) !important;
    backdrop-filter: blur(14px) saturate(1.06) !important;
}
body[data-theme="light"] .sidebar-footer-brand {
    background: rgba(255,255,255,.76) !important;
    border-color: rgba(15,23,42,.08) !important;
    box-shadow: 0 14px 32px rgba(15,23,42,.07) !important;
}
.sidebar-footer-brand a { display: grid !important; gap: 2px !important; }
.sidebar-footer-brand b { font-size: 13.5px !important; line-height: 1.35 !important; }
.sidebar-footer-brand span { font-size: 12.5px !important; line-height: 1.35 !important; }
.nav-block { margin-bottom: 14px !important; }
.nav-submenu {
    max-height: 0;
    will-change: max-height, opacity, transform;
    transition: max-height .26s cubic-bezier(.2,.8,.2,1), opacity .18s ease, transform .18s ease, padding .18s ease !important;
}
.nav-group.open .nav-submenu {
    max-height: 720px;
}
@media (max-width: 1100px) {
    .sidebar {
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }
    .sidebar-menu-scroll {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        padding-bottom: 14px !important;
    }
    .sidebar-footer-brand {
        margin-bottom: max(8px, env(safe-area-inset-bottom)) !important;
    }
}
.app-shell.sidebar-collapsed .sidebar-menu-scroll {
    overflow: hidden !important;
}

/* Login card: rotating premium border around the form */
.login-card {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
}
.login-card::before {
    content: "" !important;
    position: absolute !important;
    inset: -2px !important;
    border-radius: inherit !important;
    padding: 2px !important;
    background: conic-gradient(from 0deg,
        rgba(34,197,94,.08),
        rgba(34,197,94,.82),
        rgba(217,184,111,.22),
        rgba(252,76,2,.76),
        rgba(96,165,250,.20),
        rgba(34,197,94,.08)) !important;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
    -webkit-mask-composite: xor !important;
    mask-composite: exclude !important;
    opacity: .82 !important;
    z-index: 0 !important;
    animation: amfitLoginBorderOrbit 5.2s linear infinite !important;
    pointer-events: none !important;
}
.login-card::after {
    content: "" !important;
    position: absolute !important;
    inset: 1px !important;
    border-radius: calc(var(--radius, 26px) + 5px) !important;
    background:
        radial-gradient(circle at 18% 12%, rgba(34,197,94,.14), transparent 28%),
        radial-gradient(circle at 84% 86%, rgba(252,76,2,.13), transparent 30%) !important;
    z-index: -1 !important;
    pointer-events: none !important;
}
.login-card > * { position: relative; z-index: 1; }
@keyframes amfitLoginBorderOrbit {
    to { transform: rotate(360deg); }
}

/* Top notification/action bar: subtle rotating halo only around the frame */
.top-actions:has(.notification-picker) {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    border-color: rgba(255,255,255,.10) !important;
}
.top-actions:has(.notification-picker)::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1px;
    background: conic-gradient(from 0deg,
        transparent 0 22%,
        rgba(34,197,94,.55) 30%,
        transparent 42% 62%,
        rgba(252,76,2,.48) 72%,
        transparent 84% 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: .66;
    animation: amfitTopbarHalo 7s linear infinite;
    pointer-events: none;
    z-index: 0;
}
.top-actions:has(.notification-picker) > * {
    position: relative;
    z-index: 1;
}
body[data-theme="light"] .top-actions:has(.notification-picker)::before {
    opacity: .42;
    background: conic-gradient(from 0deg,
        transparent 0 22%,
        rgba(22,163,74,.42) 30%,
        transparent 42% 62%,
        rgba(249,115,22,.40) 72%,
        transparent 84% 100%);
}
@keyframes amfitTopbarHalo { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .login-card::before,
    .top-actions:has(.notification-picker)::before { animation: none !important; }
}

/* AmFit 2026-06-24: frame-only ring fixes + taller fixed sidebar menu */
@property --amfit-ring-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}
@keyframes amfitFrameRingSpin {
    to { --amfit-ring-angle: 360deg; }
}

/* Login: keep the motion strictly on the outer frame, not inside the form */
body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card {
    --amfit-login-card-bg: rgba(8,13,22,.84);
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    border: 1.5px solid transparent !important;
    background:
        linear-gradient(145deg, var(--amfit-login-card-bg), rgba(8,13,22,.72)) padding-box,
        conic-gradient(from var(--amfit-ring-angle),
            rgba(34,197,94,.12),
            rgba(34,197,94,.88),
            rgba(217,184,111,.42),
            rgba(249,115,22,.82),
            rgba(34,197,94,.12)) border-box !important;
    box-shadow:
        0 24px 80px rgba(0,0,0,.38),
        0 0 34px rgba(34,197,94,.08) !important;
    animation: amfitFrameRingSpin 5.8s linear infinite !important;
}
body[data-theme="light"]:has(.login-animated-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .login-card,
body[data-theme="light"] .login-card {
    --amfit-login-card-bg: rgba(255,255,255,.94);
    background:
        linear-gradient(145deg, rgba(255,255,255,.96), rgba(248,250,252,.92)) padding-box,
        conic-gradient(from var(--amfit-ring-angle),
            rgba(22,163,74,.10),
            rgba(22,163,74,.58),
            rgba(217,184,111,.34),
            rgba(249,115,22,.50),
            rgba(22,163,74,.10)) border-box !important;
}
.login-card::before,
.login-card::after {
    display: none !important;
    content: none !important;
}
.login-card > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Coach/Athlete notification top bar: frame-only halo, no light inside content */
.top-actions:has(.notification-picker) {
    --amfit-topbar-bg: rgba(255,255,255,.07);
    --amfit-topbar-ring-opacity: .72;
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    border: 1.3px solid transparent !important;
    background:
        linear-gradient(145deg, var(--amfit-topbar-bg), var(--amfit-topbar-bg)) padding-box,
        conic-gradient(from var(--amfit-ring-angle),
            transparent 0 18%,
            rgba(34,197,94,var(--amfit-topbar-ring-opacity)) 28%,
            transparent 39% 59%,
            rgba(249,115,22,.58) 70%,
            transparent 82% 100%) border-box !important;
    animation: amfitFrameRingSpin 7.5s linear infinite !important;
    box-shadow: 0 0 22px rgba(34,197,94,.055) !important;
}
body[data-theme="light"] .top-actions:has(.notification-picker) {
    --amfit-topbar-bg: rgba(255,255,255,.74);
    --amfit-topbar-ring-opacity: .46;
}
.top-actions:has(.notification-picker)::before,
.top-actions:has(.notification-picker)::after {
    display: none !important;
    content: none !important;
}
.top-actions:has(.notification-picker) > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Sidebar: footer is fixed, menu itself gets the maximum height; closed menu shows more items, open submenu scrolls */
.sidebar {
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    padding-top: 18px !important;
    padding-bottom: 12px !important;
}
.sidebar-head {
    flex: 0 0 auto !important;
    margin-bottom: 8px !important;
}
.sidebar .brand {
    margin-bottom: 14px !important;
}
.sidebar-menu-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-top: 2px !important;
    padding-bottom: 10px !important;
}
.sidebar-footer-brand {
    flex: 0 0 auto !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
    padding: 10px 10px !important;
}
.nav-block {
    margin-bottom: 8px !important;
    gap: 6px !important;
}
.nav-title {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}
.nav-block a,
.nav-group-toggle,
.nav-disabled {
    min-height: 39px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
}
.nav-submenu {
    overflow: hidden !important;
    max-height: 0 !important;
    transition: max-height .26s cubic-bezier(.2,.8,.2,1), opacity .18s ease, transform .18s ease, padding .18s ease !important;
}
.nav-group.open .nav-submenu {
    max-height: 760px !important;
    overflow: visible !important;
}
@media (max-width: 1100px) {
    .sidebar {
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding-top: max(16px, env(safe-area-inset-top)) !important;
        padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
    }
    .sidebar-menu-scroll {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
    }
    .sidebar-footer-brand {
        margin-bottom: 0 !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .login-card,
    .top-actions:has(.notification-picker) {
        animation: none !important;
    }
}

/* AmFit 2026-06-24: hard fix - ring light strictly outside frame + maximum sidebar height */
@property --amfit-frame-angle-v2 {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}
@keyframes amfitFrameAngleV2 {
    to { --amfit-frame-angle-v2: 360deg; }
}

/* LOGIN CARD: no center light, only outer border ring */
body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card {
    --amfit-login-inner-bg: rgba(8, 13, 22, .91);
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    background: var(--amfit-login-inner-bg) !important;
    box-shadow: 0 26px 82px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.035) inset !important;
    animation: none !important;
}
body[data-theme="light"] .login-card,
body[data-theme="light"]:has(.login-animated-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .login-card {
    --amfit-login-inner-bg: rgba(255,255,255,.96);
    background: var(--amfit-login-inner-bg) !important;
}
.login-card::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: conic-gradient(from var(--amfit-frame-angle-v2),
        rgba(34,197,94,0) 0deg,
        rgba(34,197,94,.95) 42deg,
        rgba(217,184,111,.58) 96deg,
        rgba(249,115,22,.88) 148deg,
        rgba(34,197,94,0) 210deg,
        rgba(96,165,250,.26) 282deg,
        rgba(34,197,94,0) 360deg) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    animation: amfitFrameAngleV2 5.2s linear infinite !important;
}
.login-card::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 2px !important;
    border-radius: calc(var(--radius, 26px) - 1px) !important;
    background:
        radial-gradient(circle at 14% 10%, rgba(34,197,94,.055), transparent 30%),
        radial-gradient(circle at 88% 86%, rgba(249,115,22,.045), transparent 28%),
        var(--amfit-login-inner-bg) !important;
    z-index: 1 !important;
    pointer-events: none !important;
}
.login-card > * {
    position: relative !important;
    z-index: 2 !important;
}
body[data-theme="light"] .login-card::after {
    background:
        radial-gradient(circle at 14% 10%, rgba(22,163,74,.045), transparent 30%),
        radial-gradient(circle at 88% 86%, rgba(249,115,22,.035), transparent 28%),
        var(--amfit-login-inner-bg) !important;
}

/* NOTIFICATION BAR: no center light, only outer frame ring */
.top-actions:has(.notification-picker) {
    --amfit-top-actions-inner-bg: rgba(255,255,255,.072);
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.105) !important;
    background: var(--amfit-top-actions-inner-bg) !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.12) !important;
    animation: none !important;
}
body[data-theme="light"] .top-actions:has(.notification-picker) {
    --amfit-top-actions-inner-bg: rgba(255,255,255,.76);
    border-color: rgba(15,23,42,.075) !important;
}
.top-actions:has(.notification-picker)::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    background: conic-gradient(from var(--amfit-frame-angle-v2),
        rgba(34,197,94,0) 0deg,
        rgba(34,197,94,.82) 42deg,
        rgba(217,184,111,.42) 94deg,
        rgba(249,115,22,.70) 148deg,
        rgba(34,197,94,0) 218deg,
        rgba(96,165,250,.20) 285deg,
        rgba(34,197,94,0) 360deg) !important;
    z-index: 0 !important;
    pointer-events: none !important;
    animation: amfitFrameAngleV2 6.8s linear infinite !important;
}
.top-actions:has(.notification-picker)::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 2px !important;
    border-radius: inherit !important;
    background: var(--amfit-top-actions-inner-bg) !important;
    z-index: 1 !important;
    pointer-events: none !important;
}
.top-actions:has(.notification-picker) > * {
    position: relative !important;
    z-index: 2 !important;
}

/* Sidebar: use almost full viewport for items; footer fixed; scroll only when submenu increases content */
.sidebar {
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-height: 100dvh !important;
    padding: 10px 12px 8px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
.sidebar-head { flex: 0 0 auto !important; margin-bottom: 4px !important; }
.sidebar .brand { margin-bottom: 8px !important; gap: 8px !important; }
.brand-logo-wrap, .brand-mark { width: 42px !important; height: 42px !important; border-radius: 15px !important; }
.brand strong { font-size: 15px !important; line-height: 1.35 !important; }
.brand small { font-size: 10.5px !important; line-height: 1.35 !important; }
.sidebar-menu-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    padding: 0 0 4px !important;
}
.nav-block { gap: 4px !important; margin-bottom: 5px !important; }
.nav-title { font-size: 10.5px !important; padding: 3px 9px !important; line-height: 1.35 !important; }
.nav-block a,
.nav-group-toggle,
.nav-disabled {
    min-height: 31px !important;
    padding: 6px 10px !important;
    border-radius: 12px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}
.nav-group-toggle i { font-size: 11px !important; }
.nav-submenu { padding-inline-start: 8px !important; gap: 3px !important; }
.nav-submenu a,
.nav-submenu .nav-disabled {
    min-height: 28px !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
    font-size: 11.5px !important;
}
.nav-group.open .nav-submenu {
    max-height: 820px !important;
    overflow: visible !important;
}
.sidebar-footer-brand {
    flex: 0 0 auto !important;
    margin-top: 5px !important;
    padding: 7px 8px !important;
    border-radius: 15px !important;
    line-height: 1.45 !important;
    font-size: 11px !important;
}
.sidebar-footer-brand b { font-size: 11.5px !important; }
.sidebar-footer-brand span { font-size: 11px !important; }
@media (max-width: 1100px) {
    .sidebar {
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding: max(10px, env(safe-area-inset-top)) 12px max(8px, env(safe-area-inset-bottom)) !important;
    }
    .sidebar-menu-scroll { overflow-y: auto !important; }
}
@media (prefers-reduced-motion: reduce) {
    .login-card::before,
    .top-actions:has(.notification-picker)::before {
        animation: none !important;
    }
}

/* AmFit 2026-06-24: login/topbar true border-only ring + restore sidebar typography */
@property --amfit-border-orbit-final {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}
@keyframes amfitBorderOrbitFinal {
    to { --amfit-border-orbit-final: 360deg; }
}

/* Remove all pseudo ring layers so no light can appear inside the login form */
.login-card::before,
.login-card::after {
    display: none !important;
    content: none !important;
    animation: none !important;
}
body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card {
    --amfit-login-final-bg: rgba(8, 13, 22, .92);
    border: 2px solid transparent !important;
    border-radius: 28px !important;
    background:
        linear-gradient(145deg, var(--amfit-login-final-bg), rgba(8,13,22,.86)) padding-box,
        conic-gradient(from var(--amfit-border-orbit-final),
            rgba(34,197,94,.10) 0deg,
            rgba(34,197,94,.95) 42deg,
            rgba(217,184,111,.70) 95deg,
            rgba(249,115,22,.92) 150deg,
            rgba(34,197,94,.10) 218deg,
            rgba(96,165,250,.32) 286deg,
            rgba(34,197,94,.10) 360deg) border-box !important;
    background-clip: padding-box, border-box !important;
    overflow: hidden !important;
    box-shadow: 0 26px 82px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.035) inset !important;
    animation: amfitBorderOrbitFinal 5.2s linear infinite !important;
}
body[data-theme="light"] .login-card,
body[data-theme="light"]:has(.login-animated-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .login-card {
    --amfit-login-final-bg: rgba(255,255,255,.96);
    background:
        linear-gradient(145deg, rgba(255,255,255,.97), rgba(248,250,252,.94)) padding-box,
        conic-gradient(from var(--amfit-border-orbit-final),
            rgba(22,163,74,.10) 0deg,
            rgba(22,163,74,.70) 42deg,
            rgba(217,184,111,.48) 95deg,
            rgba(249,115,22,.62) 150deg,
            rgba(22,163,74,.10) 218deg,
            rgba(59,130,246,.22) 286deg,
            rgba(22,163,74,.10) 360deg) border-box !important;
}
.login-card > * { position: relative !important; z-index: 1 !important; }

/* Notification/action bar: true border-only ring; no center glow */
.top-actions:has(.notification-picker)::before,
.top-actions:has(.notification-picker)::after {
    display: none !important;
    content: none !important;
    animation: none !important;
}
.top-actions:has(.notification-picker) {
    --amfit-topbar-final-bg: rgba(255,255,255,.075);
    border: 2px solid transparent !important;
    background:
        linear-gradient(145deg, var(--amfit-topbar-final-bg), var(--amfit-topbar-final-bg)) padding-box,
        conic-gradient(from var(--amfit-border-orbit-final),
            transparent 0 18%,
            rgba(34,197,94,.72) 29%,
            rgba(217,184,111,.45) 43%,
            transparent 55% 64%,
            rgba(249,115,22,.62) 75%,
            transparent 88% 100%) border-box !important;
    background-clip: padding-box, border-box !important;
    overflow: hidden !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.12) !important;
    animation: amfitBorderOrbitFinal 6.8s linear infinite !important;
}
body[data-theme="light"] .top-actions:has(.notification-picker) {
    --amfit-topbar-final-bg: rgba(255,255,255,.78);
}
.top-actions:has(.notification-picker) > * { position: relative !important; z-index: 1 !important; }

/* Sidebar: restore normal menu font; increase usable height instead of shrinking text */
.sidebar {
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 6px 12px 6px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
.sidebar-head { flex: 0 0 auto !important; margin-bottom: 4px !important; }
.sidebar .brand { margin-bottom: 8px !important; gap: 9px !important; }
.brand-logo-wrap, .brand-mark { width: 44px !important; height: 44px !important; border-radius: 16px !important; }
.brand strong { font-size: 16px !important; line-height: 1.35 !important; }
.brand small { font-size: 11.5px !important; line-height: 1.45 !important; }
.sidebar-menu-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    padding: 0 0 6px !important;
}
.nav-block { gap: 6px !important; margin-bottom: 8px !important; }
.nav-title { font-size: 11.5px !important; padding: 5px 10px !important; line-height: 1.45 !important; }
.nav-block a,
.nav-group-toggle,
.nav-disabled {
    min-height: 38px !important;
    padding: 8px 12px !important;
    border-radius: 14px !important;
    font-size: 13.5px !important;
    line-height: 1.55 !important;
}
.nav-group-toggle i { font-size: 13px !important; }
.nav-submenu { padding-inline-start: 10px !important; gap: 5px !important; }
.nav-submenu a,
.nav-submenu .nav-disabled {
    min-height: 34px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    font-size: 12.8px !important;
}
.nav-group.open .nav-submenu {
    max-height: 900px !important;
    overflow: visible !important;
}
.sidebar-footer-brand {
    flex: 0 0 auto !important;
    margin-top: 5px !important;
    padding: 8px 10px !important;
    border-radius: 16px !important;
}
.sidebar-footer-brand b { font-size: 12.5px !important; }
.sidebar-footer-brand span { font-size: 12px !important; }
@media (max-width: 1100px) {
    .sidebar {
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding: max(6px, env(safe-area-inset-top)) 12px max(6px, env(safe-area-inset-bottom)) !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .login-card,
    .top-actions:has(.notification-picker) {
        animation: none !important;
    }
}

/* AmFit 2026-06-24: final hard override - NO center rotating light, edge-strips only */
@keyframes amfitEdgeLightRun {
    0% {
        background-position: -220% 0, 100% -220%, 220% 100%, 0 220%;
        opacity: .72;
    }
    50% { opacity: .98; }
    100% {
        background-position: 220% 0, 100% 220%, -220% 100%, 0 -220%;
        opacity: .72;
    }
}

/* Login form: plain inner surface + animated light ONLY on the 2px edges */
body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 28px !important;
    background: linear-gradient(145deg, rgba(8,13,22,.94), rgba(8,13,22,.88)) !important;
    background-clip: border-box !important;
    animation: none !important;
    box-shadow: 0 26px 82px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.035) inset !important;
}
body[data-theme="light"] .login-card,
body[data-theme="light"]:has(.login-animated-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .login-card {
    background: linear-gradient(145deg, rgba(255,255,255,.97), rgba(248,250,252,.94)) !important;
    border-color: rgba(15,23,42,.10) !important;
}
.login-card::after {
    display: none !important;
    content: none !important;
    animation: none !important;
}
.login-card::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
    background:
        linear-gradient(90deg, transparent 0%, rgba(34,197,94,0) 22%, rgba(34,197,94,.95) 44%, rgba(217,184,111,.82) 55%, rgba(249,115,22,.92) 67%, transparent 100%) 0 0 / 220% 2px no-repeat,
        linear-gradient(180deg, transparent 0%, rgba(34,197,94,0) 22%, rgba(34,197,94,.86) 44%, rgba(217,184,111,.70) 55%, rgba(249,115,22,.82) 67%, transparent 100%) 100% 0 / 2px 220% no-repeat,
        linear-gradient(270deg, transparent 0%, rgba(34,197,94,0) 22%, rgba(34,197,94,.95) 44%, rgba(217,184,111,.82) 55%, rgba(249,115,22,.92) 67%, transparent 100%) 100% 100% / 220% 2px no-repeat,
        linear-gradient(0deg, transparent 0%, rgba(34,197,94,0) 22%, rgba(34,197,94,.86) 44%, rgba(217,184,111,.70) 55%, rgba(249,115,22,.82) 67%, transparent 100%) 0 100% / 2px 220% no-repeat !important;
    animation: amfitEdgeLightRun 4.8s linear infinite !important;
}
.login-card > * {
    position: relative !important;
    z-index: 2 !important;
}

/* Coach/Athlete notification bar: same edge-only light, absolutely no center conic/radial layer */
.top-actions:has(.notification-picker) {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.105) !important;
    background: rgba(255,255,255,.075) !important;
    background-clip: border-box !important;
    animation: none !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.12) !important;
}
body[data-theme="light"] .top-actions:has(.notification-picker) {
    background: rgba(255,255,255,.78) !important;
    border-color: rgba(15,23,42,.08) !important;
}
.top-actions:has(.notification-picker)::after {
    display: none !important;
    content: none !important;
    animation: none !important;
}
.top-actions:has(.notification-picker)::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
    background:
        linear-gradient(90deg, transparent 0%, rgba(34,197,94,0) 26%, rgba(34,197,94,.78) 46%, rgba(217,184,111,.54) 58%, rgba(249,115,22,.72) 70%, transparent 100%) 0 0 / 220% 2px no-repeat,
        linear-gradient(180deg, transparent 0%, rgba(34,197,94,0) 26%, rgba(34,197,94,.70) 46%, rgba(217,184,111,.46) 58%, rgba(249,115,22,.62) 70%, transparent 100%) 100% 0 / 2px 220% no-repeat,
        linear-gradient(270deg, transparent 0%, rgba(34,197,94,0) 26%, rgba(34,197,94,.78) 46%, rgba(217,184,111,.54) 58%, rgba(249,115,22,.72) 70%, transparent 100%) 100% 100% / 220% 2px no-repeat,
        linear-gradient(0deg, transparent 0%, rgba(34,197,94,0) 26%, rgba(34,197,94,.70) 46%, rgba(217,184,111,.46) 58%, rgba(249,115,22,.62) 70%, transparent 100%) 0 100% / 2px 220% no-repeat !important;
    animation: amfitEdgeLightRun 5.8s linear infinite !important;
}
.top-actions:has(.notification-picker) > * {
    position: relative !important;
    z-index: 2 !important;
}

@media (prefers-reduced-motion: reduce) {
    .login-card::before,
    .top-actions:has(.notification-picker)::before {
        animation: none !important;
    }
}

/* AmFit 2026-06-24: SVG path border light - moving only on rounded frame, never inside */
@keyframes amfitSvgFrameDashMove {
    from { stroke-dashoffset: 0; }
    to { stroke-dashoffset: -360; }
}
.login-card::before,
.login-card::after,
.top-actions:has(.notification-picker)::before,
.top-actions:has(.notification-picker)::after {
    display: none !important;
    content: none !important;
    animation: none !important;
    background: none !important;
}
body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card {
    position: relative !important;
    isolation: isolate !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    border-radius: 28px !important;
    background: linear-gradient(145deg, rgba(8,13,22,.94), rgba(8,13,22,.88)) !important;
    animation: none !important;
    box-shadow: 0 26px 82px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.035) inset !important;
}
body[data-theme="light"] .login-card,
body[data-theme="light"]:has(.login-animated-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .login-card {
    background: linear-gradient(145deg, rgba(255,255,255,.97), rgba(248,250,252,.94)) !important;
    border-color: rgba(15,23,42,.10) !important;
}
.top-actions:has(.notification-picker) {
    position: relative !important;
    isolation: isolate !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.105) !important;
    background: rgba(255,255,255,.075) !important;
    animation: none !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.12) !important;
}
body[data-theme="light"] .top-actions:has(.notification-picker) {
    background: rgba(255,255,255,.78) !important;
    border-color: rgba(15,23,42,.08) !important;
}
.login-card > *:not(.amfit-svg-frame-ring),
.top-actions:has(.notification-picker) > *:not(.amfit-svg-frame-ring) {
    position: relative !important;
    z-index: 2 !important;
}
.amfit-svg-frame-ring {
    position: absolute;
    inset: -4px;
    width: calc(100% + 8px);
    height: calc(100% + 8px);
    z-index: 4;
    pointer-events: none;
    overflow: visible;
    contain: layout style paint;
}
.amfit-svg-frame-ring .amfit-frame-track {
    fill: none;
    stroke: rgba(255,255,255,.09);
    stroke-width: 1.1;
    vector-effect: non-scaling-stroke;
}
.amfit-svg-frame-ring .amfit-frame-segment {
    fill: none;
    stroke-width: 2.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 58 302;
    animation: amfitSvgFrameDashMove 4.2s linear infinite;
    vector-effect: non-scaling-stroke;
}
.top-actions:has(.notification-picker) .amfit-svg-frame-ring {
    inset: -3px;
    width: calc(100% + 6px);
    height: calc(100% + 6px);
}
.top-actions:has(.notification-picker) .amfit-svg-frame-ring .amfit-frame-segment {
    stroke-width: 2.1;
    stroke-dasharray: 42 318;
    animation-duration: 5.2s;
}
body[data-theme="light"] .amfit-svg-frame-ring .amfit-frame-track {
    stroke: rgba(15,23,42,.08);
}
@media (prefers-reduced-motion: reduce) {
    .amfit-svg-frame-ring .amfit-frame-segment { animation: none !important; }
}

/* Sidebar height only; restore readable menu typography and keep footer fixed */
.sidebar {
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 10px 16px 8px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
.sidebar .brand { margin-bottom: 14px !important; gap: 12px !important; }
.brand-logo-wrap, .brand-mark { width: 48px !important; height: 48px !important; border-radius: 18px !important; }
.brand strong { font-size: 18px !important; line-height: 1.35 !important; }
.brand small { font-size: 12px !important; line-height: 1.45 !important; }
.sidebar-menu-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 0 8px !important;
}
.nav-block { gap: 8px !important; margin-bottom: 14px !important; }
.nav-title { font-size: 12px !important; padding: 7px 12px !important; line-height: 1.5 !important; }
.nav-block a,
.nav-group-toggle,
.nav-disabled {
    min-height: 42px !important;
    padding: 10px 14px !important;
    border-radius: 16px !important;
    font-size: 14.5px !important;
    line-height: 1.6 !important;
}
.nav-submenu { padding-inline-start: 12px !important; gap: 7px !important; }
.nav-submenu a,
.nav-submenu .nav-disabled {
    min-height: 38px !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    font-size: 13.5px !important;
}
.sidebar-footer-brand {
    flex: 0 0 auto !important;
    margin-top: 8px !important;
    padding: 10px 12px !important;
    border-radius: 18px !important;
}
.sidebar-footer-brand b { font-size: 13px !important; }
.sidebar-footer-brand span { font-size: 12.5px !important; }

/* AmFit 2026-06-24: FINAL border-mask ring fix
   The animated light is drawn only on the masked border area. No SVG injection, no inner glow. */
@keyframes amfitMaskedBorderSpinFinal {
    to { transform: rotate(360deg); }
}

.amfit-svg-frame-ring {
    display: none !important;
}

body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card {
    position: relative !important;
    isolation: isolate !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 28px !important;
    background: linear-gradient(145deg, rgba(8,13,22,.95), rgba(8,13,22,.89)) !important;
    animation: none !important;
}

body[data-theme="light"] .login-card,
body[data-theme="light"]:has(.login-animated-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .login-card {
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,250,252,.95)) !important;
}

.login-card::after,
.top-actions:has(.notification-picker)::after {
    display: none !important;
    content: none !important;
    animation: none !important;
    background: none !important;
}

.login-card::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: -3px !important;
    padding: 3px !important;
    border-radius: 31px !important;
    pointer-events: none !important;
    z-index: 3 !important;
    box-sizing: border-box !important;
    background: conic-gradient(
        from 0deg,
        transparent 0deg,
        transparent 42deg,
        rgba(34,197,94,.98) 74deg,
        rgba(217,184,111,.92) 96deg,
        rgba(249,115,22,.98) 118deg,
        transparent 158deg,
        transparent 360deg
    ) !important;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
    -webkit-mask-composite: xor !important;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
    mask-composite: exclude !important;
    filter: drop-shadow(0 0 8px rgba(34,197,94,.42)) drop-shadow(0 0 10px rgba(249,115,22,.22)) !important;
    animation: amfitMaskedBorderSpinFinal 4.6s linear infinite !important;
    transform-origin: 50% 50% !important;
}

.login-card > * {
    position: relative !important;
    z-index: 4 !important;
}

.top-actions:has(.notification-picker) {
    position: relative !important;
    isolation: isolate !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.105) !important;
    background: rgba(255,255,255,.075) !important;
    animation: none !important;
}

body[data-theme="light"] .top-actions:has(.notification-picker) {
    background: rgba(255,255,255,.78) !important;
}

.top-actions:has(.notification-picker)::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: -2px !important;
    padding: 2px !important;
    border-radius: calc(var(--radius-lg, 18px) + 2px) !important;
    pointer-events: none !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
    background: conic-gradient(
        from 0deg,
        transparent 0deg,
        transparent 50deg,
        rgba(34,197,94,.86) 82deg,
        rgba(217,184,111,.64) 104deg,
        rgba(249,115,22,.82) 126deg,
        transparent 164deg,
        transparent 360deg
    ) !important;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
    -webkit-mask-composite: xor !important;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
    mask-composite: exclude !important;
    filter: drop-shadow(0 0 7px rgba(34,197,94,.34)) drop-shadow(0 0 8px rgba(249,115,22,.18)) !important;
    animation: amfitMaskedBorderSpinFinal 5.4s linear infinite !important;
    transform-origin: 50% 50% !important;
}

.top-actions:has(.notification-picker) > * {
    position: relative !important;
    z-index: 2 !important;
}

/* Sidebar: keep readable font, maximize usable menu height without shrinking typography */
.sidebar {
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}
.sidebar .brand { margin-bottom: 8px !important; }
.sidebar-menu-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}
.nav-block a,
.nav-group-toggle,
.nav-disabled {
    font-size: 14.5px !important;
}
.nav-submenu a,
.nav-submenu .nav-disabled {
    font-size: 13.5px !important;
}

@media (prefers-reduced-motion: reduce) {
    .login-card::before,
    .top-actions:has(.notification-picker)::before {
        animation: none !important;
    }
}

/* AmFit 2026-06-24: final request - remove animated light completely, use static soft yellow drop shadow */
.login-card::before,
.login-card::after,
.top-actions:has(.notification-picker)::before,
.top-actions:has(.notification-picker)::after,
.amfit-svg-frame-ring {
    display: none !important;
    content: none !important;
    animation: none !important;
    background: none !important;
    mask: none !important;
    -webkit-mask: none !important;
    filter: none !important;
}

body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card {
    position: relative !important;
    overflow: visible !important;
    border: 1px solid rgba(217,184,111,.36) !important;
    animation: none !important;
    background: linear-gradient(145deg, rgba(8,13,22,.90), rgba(8,13,22,.76)) !important;
    box-shadow:
        0 0 0 1px rgba(217,184,111,.10),
        0 0 18px rgba(217,184,111,.22),
        0 0 42px rgba(217,184,111,.13),
        0 24px 80px rgba(0,0,0,.36) !important;
}

body[data-theme="light"] .login-card,
body[data-theme="light"]:has(.login-animated-bg) .login-card,
body[data-theme="light"]:has(.login-video-bg) .login-card {
    border-color: rgba(181,133,31,.30) !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow:
        0 0 0 1px rgba(181,133,31,.09),
        0 0 18px rgba(181,133,31,.18),
        0 0 42px rgba(181,133,31,.10),
        0 22px 70px rgba(15,23,42,.12) !important;
}

.login-card > * {
    position: relative !important;
    z-index: 1 !important;
}

.top-actions:has(.notification-picker) {
    position: relative !important;
    isolation: auto !important;
    overflow: visible !important;
    animation: none !important;
    border: 1px solid rgba(217,184,111,.28) !important;
    background: rgba(255,255,255,.075) !important;
    box-shadow:
        0 0 0 1px rgba(217,184,111,.08),
        0 0 14px rgba(217,184,111,.18),
        0 0 32px rgba(217,184,111,.10) !important;
}

body[data-theme="light"] .top-actions:has(.notification-picker) {
    border-color: rgba(181,133,31,.22) !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow:
        0 0 0 1px rgba(181,133,31,.06),
        0 0 14px rgba(181,133,31,.14),
        0 0 30px rgba(181,133,31,.08) !important;
}

.top-actions:has(.notification-picker) > * {
    position: relative !important;
    z-index: 1 !important;
}

/* AmFit login background upgrade: premium moving ambient light, no border animation */
.login-animated-bg {
    background:
        radial-gradient(circle at 18% 24%, rgba(34,197,94,.14), transparent 22%),
        radial-gradient(circle at 82% 78%, rgba(249,115,22,.12), transparent 24%),
        linear-gradient(135deg,#020617 0%,#07101c 42%,#05140f 100%) !important;
}
.login-animated-bg::before,
.login-animated-bg::after {
    display:block !important;
    content:"";
    position:absolute;
    inset:auto;
    border-radius:50%;
    filter:blur(70px);
    opacity:.55;
    pointer-events:none;
}
.login-animated-bg::before {
    width:42vmax;
    height:42vmax;
    left:-8vmax;
    top:-10vmax;
    background:radial-gradient(circle, rgba(34,197,94,.9), rgba(34,197,94,0));
    animation:amfitAmbientFloatA 12s ease-in-out infinite alternate;
}
.login-animated-bg::after {
    width:36vmax;
    height:36vmax;
    right:-8vmax;
    bottom:-10vmax;
    background:radial-gradient(circle, rgba(249,115,22,.85), rgba(249,115,22,0));
    animation:amfitAmbientFloatB 14s ease-in-out infinite alternate;
}
.login-orbit {
    border:1px solid rgba(255,255,255,.06) !important;
    backdrop-filter:blur(2px);
}
.login-orbit-a {
    animation:amfitAmbientOrbitA 18s linear infinite !important;
}
.login-orbit-b {
    animation:amfitAmbientOrbitB 24s linear infinite reverse !important;
}
@keyframes amfitAmbientFloatA {
    0%{transform:translate3d(0,0,0) scale(1)}
    50%{transform:translate3d(18vw,10vh,0) scale(1.18)}
    100%{transform:translate3d(6vw,22vh,0) scale(.92)}
}
@keyframes amfitAmbientFloatB {
    0%{transform:translate3d(0,0,0) scale(1)}
    50%{transform:translate3d(-16vw,-12vh,0) scale(1.14)}
    100%{transform:translate3d(-4vw,-20vh,0) scale(.95)}
}
@keyframes amfitAmbientOrbitA { to { transform: rotate(360deg); } }
@keyframes amfitAmbientOrbitB { to { transform: rotate(-360deg); } }

/* AmFit fix: static navy login background, no animated background lights */
body:has(.login-animated-bg) {
    background: #061426 !important;
}

.login-animated-bg {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(30, 64, 175, .30) 0%, transparent 38%),
        linear-gradient(145deg, #071a33 0%, #061426 48%, #020817 100%) !important;
}

.login-animated-bg::before,
.login-animated-bg::after,
.login-orbit,
.login-orbit-a,
.login-orbit-b {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    animation: none !important;
    transform: none !important;
    background: none !important;
    filter: none !important;
}

.login-matte-overlay {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background:
        linear-gradient(180deg, rgba(2, 8, 23, .08), rgba(2, 8, 23, .38)),
        radial-gradient(circle at 50% 100%, rgba(14, 165, 233, .10), transparent 48%) !important;
    animation: none !important;
}

body:has(.login-animated-bg) .login-card,
body:has(.login-animated-bg) .auth-card {
    box-shadow: 0 24px 90px rgba(0, 0, 0, .42), 0 0 34px rgba(245, 158, 11, .18) !important;
}

/* AmFit final login polish: compact dark navy card + green animated button, no moving background lights */
body.login-body,
body:has(.login-animated-bg) {
    background: #071a33 !important;
    min-height: 100vh !important;
}

.login-animated-bg {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 50% -12%, rgba(37,99,235,.20) 0%, rgba(37,99,235,.08) 24%, transparent 48%),
        linear-gradient(145deg, #09203f 0%, #071a33 48%, #041126 100%) !important;
}

.login-animated-bg::before,
.login-animated-bg::after,
.login-orbit,
.login-orbit-a,
.login-orbit-b,
.login-matte-overlay {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    animation: none !important;
    transform: none !important;
    background: none !important;
}

.login-shell {
    width: min(92vw, 430px) !important;
    padding: 16px !important;
}

body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card,
.login-card,
.admin-login-card,
.club-login-card {
    width: 100% !important;
    padding: 22px 22px 18px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(217,184,111,.24) !important;
    background:
        linear-gradient(180deg, rgba(4,15,34,.96), rgba(3,11,26,.94)) !important;
    box-shadow:
        0 0 0 1px rgba(217,184,111,.06),
        0 0 26px rgba(217,184,111,.18),
        0 22px 70px rgba(0,0,0,.46) !important;
    backdrop-filter: blur(18px) saturate(125%) !important;
}

.login-card::before,
.login-card::after,
.admin-login-card::before,
.admin-login-card::after,
.club-login-card::before,
.club-login-card::after {
    display: none !important;
    content: none !important;
    animation: none !important;
}

.login-lang-row {
    margin-bottom: 8px !important;
}

.login-brand,
.login-brand-hero {
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 14px !important;
    text-align: center !important;
}

.login-logo-mark {
    width: 74px !important;
    height: 74px !important;
    border-radius: 22px !important;
    padding: 8px !important;
    background: rgba(255,255,255,.04) !important;
    box-shadow: 0 12px 32px rgba(0,0,0,.22) !important;
}

.login-logo-mark img {
    max-width: 100% !important;
    max-height: 100% !important;
}

.login-brand-hero p,
.login-brand p {
    margin: 4px 0 0 !important;
    font-size: 12.5px !important;
    line-height: 1.8 !important;
    font-weight: 400 !important;
    color: rgba(226,232,240,.68) !important;
}

.login-tabs {
    margin: 4px 0 14px !important;
    padding: 4px !important;
    border-radius: 17px !important;
    background: rgba(2,6,23,.34) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
}

.login-tabs a {
    padding: 9px 10px !important;
    border-radius: 13px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
}

.login-tabs a.active {
    background: rgba(34,197,94,.16) !important;
    color: #dcfce7 !important;
    border-color: rgba(34,197,94,.26) !important;
    box-shadow: 0 10px 22px rgba(34,197,94,.10) !important;
}

.login-form {
    gap: 8px !important;
}

.login-form label {
    margin-top: 2px !important;
    font-size: 12px !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
    color: rgba(226,232,240,.70) !important;
}

.login-form input {
    min-height: 42px !important;
    padding: 10px 13px !important;
    border-radius: 15px !important;
    font-size: 14.5px !important;
    background: rgba(2,8,23,.58) !important;
    border: 1px solid rgba(148,163,184,.16) !important;
    color: #f8fafc !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035) !important;
}

.login-form input:focus {
    border-color: rgba(34,197,94,.46) !important;
    box-shadow:
        0 0 0 4px rgba(34,197,94,.10),
        inset 0 1px 0 rgba(255,255,255,.04) !important;
}

.login-form .btn-login,
.btn-login {
    position: relative !important;
    overflow: hidden !important;
    min-height: 45px !important;
    margin-top: 10px !important;
    border: 0 !important;
    border-radius: 16px !important;
    color: #052e16 !important;
    font-weight: 800 !important;
    font-size: 14.5px !important;
    letter-spacing: -.15px !important;
    background:
        linear-gradient(135deg, #86efac 0%, #22c55e 42%, #16a34a 100%) !important;
    box-shadow:
        0 12px 28px rgba(34,197,94,.25),
        inset 0 1px 0 rgba(255,255,255,.35) !important;
    transform: translateZ(0) !important;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
}

.login-form .btn-login::before,
.btn-login::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    transform: translateX(115%) skewX(-22deg) !important;
    width: 38% !important;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent) !important;
    animation: amfitLoginButtonShine 3.2s ease-in-out infinite !important;
    pointer-events: none !important;
}

.login-form .btn-login:hover,
.btn-login:hover {
    transform: translateY(-1px) !important;
    filter: saturate(1.08) brightness(1.03) !important;
    box-shadow:
        0 16px 34px rgba(34,197,94,.32),
        0 0 0 4px rgba(34,197,94,.08),
        inset 0 1px 0 rgba(255,255,255,.42) !important;
}

.login-form .btn-login:active,
.btn-login:active {
    transform: translateY(0) scale(.99) !important;
}

@keyframes amfitLoginButtonShine {
    0%, 46% { transform: translateX(135%) skewX(-22deg); opacity: 0; }
    55% { opacity: .9; }
    72% { transform: translateX(-240%) skewX(-22deg); opacity: 0; }
    100% { transform: translateX(-240%) skewX(-22deg); opacity: 0; }
}

.login-powered {
    margin-top: 14px !important;
    padding-top: 12px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

.login-powered b {
    font-size: 12.5px !important;
}

.login-powered span {
    font-size: 12px !important;
}

.login-error {
    padding: 9px 11px !important;
    border-radius: 14px !important;
    font-size: 12.5px !important;
}

@media (max-width: 520px) {
    .login-shell { width: min(94vw, 410px) !important; padding: 12px !important; }
    .login-card { padding: 20px 18px 16px !important; border-radius: 22px !important; }
    .login-logo-mark { width: 68px !important; height: 68px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .login-form .btn-login::before,
    .btn-login::before { animation: none !important; }
}

/* 2026-06-24 final login refinement: top-left language switch, larger transparent logo, darker navy background, pearl button */
body.login-body,
body.admin-login-body,
body.club-login-body {
    background: #07111f !important;
}
.login-animated-bg {
    background:
        radial-gradient(circle at 18% 12%, rgba(59,130,246,.08), transparent 34%),
        radial-gradient(circle at 82% 88%, rgba(14,165,233,.06), transparent 30%),
        linear-gradient(180deg, #081222 0%, #06101c 100%) !important;
}
.login-matte-overlay {
    background: linear-gradient(180deg, rgba(3,8,17,.28), rgba(2,6,12,.42)) !important;
}
.login-shell {
    width: min(94vw, 460px) !important;
}
.login-card,
body:has(.login-animated-bg) .login-card,
body:has(.login-video-bg) .login-card {
    position: relative;
    background: linear-gradient(180deg, rgba(7,16,31,.96), rgba(5,13,26,.96)) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: 0 30px 70px rgba(0,0,0,.42), 0 0 28px rgba(217,166,52,.10) !important;
    border-radius: 28px !important;
    padding: 24px 24px 20px !important;
}
.login-lang-row {
    position: absolute !important;
    top: 16px !important;
    left: 16px !important;
    right: auto !important;
    margin: 0 !important;
    justify-content: flex-start !important;
    z-index: 4 !important;
    direction: ltr;
}
.login-lang-row .language-picker {
    position: relative;
}
.login-lang-row .language-toggle {
    min-width: 56px;
    height: 40px;
    border-radius: 14px;
    background: rgba(255,255,255,.05) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #e5edf8 !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.18);
}
.login-lang-row .language-menu {
    left: 0 !important;
    right: auto !important;
    transform: none !important;
}
.login-brand-hero {
    margin-top: 6px !important;
    margin-bottom: 16px !important;
    gap: 10px !important;
    padding-top: 18px !important;
}
.login-logo-mark {
    width: 110px !important;
    height: 110px !important;
    min-width: 110px !important;
    min-height: 110px !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    display: grid;
    place-items: center;
}
.login-logo-mark img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
    filter: drop-shadow(0 10px 26px rgba(0,0,0,.18));
}
.login-brand-hero p {
    margin-top: -2px !important;
    color: rgba(231,238,248,.78) !important;
}
.login-form {
    gap: 9px !important;
}
.login-form label {
    color: rgba(230,238,247,.82) !important;
}
.login-form input {
    background: rgba(255,255,255,.045) !important;
    border-color: rgba(255,255,255,.08) !important;
    color: #f8fbff !important;
}
.login-form input:focus {
    border-color: rgba(255,255,255,.18) !important;
    box-shadow: 0 0 0 4px rgba(255,255,255,.05) !important;
}
.btn-login {
    margin-top: 8px !important;
    background: linear-gradient(180deg, #fbf8f2 0%, #ede6da 100%) !important;
    color: #15253b !important;
    border: 1px solid rgba(255,255,255,.68) !important;
    box-shadow: 0 16px 34px rgba(8,15,28,.26), 0 2px 0 rgba(255,255,255,.55) inset !important;
    border-radius: 16px !important;
    transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
    position: relative;
    overflow: hidden;
}
.btn-login::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.16) 34%, rgba(255,255,255,.75) 50%, rgba(255,255,255,.16) 66%, transparent 100%);
    transform: translateX(-130%);
    animation: amfitPearlSweep 2.6s ease-in-out infinite;
    pointer-events: none;
}
.btn-login:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 40px rgba(8,15,28,.30), 0 2px 0 rgba(255,255,255,.66) inset !important;
    filter: brightness(1.01);
}
.btn-login:active {
    transform: translateY(0);
}
.login-powered {
    margin-top: 16px !important;
}
@keyframes amfitPearlSweep {
    0%, 15% { transform: translateX(-130%); opacity: .0; }
    30% { opacity: .72; }
    55% { transform: translateX(130%); opacity: .88; }
    100% { transform: translateX(130%); opacity: 0; }
}


/* 2026-06-24 final override: force pearl-white flat login button, remove all previous green variants */
body.login-body .login-card .btn-login,
body.admin-login-body .login-card .btn-login,
body.club-login-body .login-card .btn-login,
.login-body .btn-login,
.admin-login-body .btn-login,
.club-login-body .btn-login,
.login-card .btn-login,
button.btn-login[type="submit"] {
    background: linear-gradient(180deg, #fffdf8 0%, #f4efe6 52%, #e8dfd2 100%) !important;
    background-color: #f4efe6 !important;
    color: #102033 !important;
    border: 1px solid rgba(255, 255, 255, .72) !important;
    box-shadow:
        0 14px 28px rgba(0, 0, 0, .22),
        inset 0 1px 0 rgba(255, 255, 255, .86) !important;
    text-shadow: none !important;
    filter: none !important;
}

body.login-body .login-card .btn-login::before,
body.admin-login-body .login-card .btn-login::before,
body.club-login-body .login-card .btn-login::before,
.login-body .btn-login::before,
.admin-login-body .btn-login::before,
.club-login-body .btn-login::before,
.login-card .btn-login::before,
button.btn-login[type="submit"]::before {
    background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.18) 36%, rgba(255,255,255,.72) 50%, rgba(255,255,255,.18) 64%, transparent 100%) !important;
}

body.login-body .login-card .btn-login:hover,
body.admin-login-body .login-card .btn-login:hover,
body.club-login-body .login-card .btn-login:hover,
.login-body .btn-login:hover,
.admin-login-body .btn-login:hover,
.club-login-body .btn-login:hover,
.login-card .btn-login:hover,
button.btn-login[type="submit"]:hover {
    background: linear-gradient(180deg, #ffffff 0%, #f7f1e8 50%, #ebe1d2 100%) !important;
    background-color: #f7f1e8 !important;
    color: #102033 !important;
    box-shadow:
        0 16px 32px rgba(0, 0, 0, .26),
        inset 0 1px 0 rgba(255, 255, 255, .9) !important;
}

/* 2026-06-24 aesthetic refinement requested by user */
body.login-body .login-shell,
body.admin-login-body .login-shell,
body.club-login-body .login-shell {
    width: min(92vw, 450px) !important;
}
body.login-body .login-card,
body.admin-login-body .login-card,
body.club-login-body .login-card {
    padding: 20px 22px 18px !important;
    min-height: auto !important;
}
body.login-body .login-brand-hero,
body.admin-login-body .login-brand-hero,
body.club-login-body .login-brand-hero {
    padding-top: 8px !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    gap: 8px !important;
}
body.login-body .login-logo-mark,
body.admin-login-body .login-logo-mark,
body.club-login-body .login-logo-mark {
    width: 100px !important;
    height: 100px !important;
    min-width: 100px !important;
    min-height: 100px !important;
}
body.login-body .login-brand-hero p,
body.admin-login-body .login-brand-hero p,
body.club-login-body .login-brand-hero p {
    margin-top: -4px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: rgba(232,239,248,.82) !important;
}
body.login-body .login-tabs,
body.admin-login-body .login-tabs,
body.club-login-body .login-tabs {
    margin: 4px 0 12px !important;
    padding: 4px !important;
}
body.login-body .login-tabs a,
body.admin-login-body .login-tabs a,
body.club-login-body .login-tabs a {
    font-size: 14px !important;
    font-weight: 600 !important;
}
body.login-body .login-tabs a.active,
body.admin-login-body .login-tabs a.active,
body.club-login-body .login-tabs a.active {
    background: rgba(34, 197, 94, .12) !important;
    border: 1px solid rgba(34, 197, 94, .34) !important;
    color: #f4fff7 !important;
    box-shadow: 0 10px 22px rgba(34,197,94,.08) !important;
}
body.login-body .login-form,
body.admin-login-body .login-form,
body.club-login-body .login-form {
    gap: 7px !important;
}
body.login-body .login-form label,
body.admin-login-body .login-form label,
body.club-login-body .login-form label {
    font-size: 12.5px !important;
    font-weight: 500 !important;
}
body.login-body .login-powered,
body.admin-login-body .login-powered,
body.club-login-body .login-powered {
    margin-top: 14px !important;
}
body.login-body .login-card .btn-login,
body.admin-login-body .login-card .btn-login,
body.club-login-body .login-card .btn-login,
body.login-body button.btn-login[type="submit"],
body.admin-login-body button.btn-login[type="submit"],
body.club-login-body button.btn-login[type="submit"] {
    background: linear-gradient(180deg, #fbfcfe 0%, #eef2f7 52%, #e2e8f0 100%) !important;
    background-color: #eef2f7 !important;
    color: #122235 !important;
    border: 1px solid rgba(255,255,255,.86) !important;
    box-shadow: 0 12px 24px rgba(4, 10, 24, .18), inset 0 1px 0 rgba(255,255,255,.96) !important;
}
body.login-body .login-card .btn-login:hover,
body.admin-login-body .login-card .btn-login:hover,
body.club-login-body .login-card .btn-login:hover,
body.login-body button.btn-login[type="submit"]:hover,
body.admin-login-body button.btn-login[type="submit"]:hover,
body.club-login-body button.btn-login[type="submit"]:hover {
    background: linear-gradient(180deg, #ffffff 0%, #f3f6fa 52%, #e8edf4 100%) !important;
    background-color: #f3f6fa !important;
    color: #102033 !important;
    box-shadow: 0 14px 28px rgba(4, 10, 24, .22), inset 0 1px 0 rgba(255,255,255,1) !important;
}
