:root {
  --primary: #69AD48;
  --primary-dark: #4e8932;
  --bg: #f4f8f1;
  --card: #ffffff;
  --text: #19311a;
  --muted: #6b7a6c;
  --border: #dbe7d6;
  --shadow: 0 14px 34px rgba(20, 40, 18, 0.08);
  --radius: 24px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; background: linear-gradient(180deg, #f8fbf6 0%, #f1f6ee 100%); color: var(--text); }
body { padding-bottom: 92px; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
.auth-shell { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; }
.auth-card, .content-card, .module-card, .hero-card, .member-card-ui { background: var(--card); box-shadow: var(--shadow); border-radius: var(--radius); }
.auth-card { width: 100%; max-width: 460px; padding: 28px; }
.brand-head { text-align: center; margin-bottom: 20px; }
.brand-mark { width: 78px; height: 78px; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; border-radius: 22px; background: linear-gradient(135deg, #69AD48, #8ad35f); color: white; font-size: 26px; font-weight: 700; }
.subtitle, .eyebrow, .form-message, .muted-center { color: var(--muted); }
.subtitle.on-dark, .muted-center.on-dark { color: rgba(255,255,255,.82); }
.eyebrow { text-transform: uppercase; letter-spacing: .09em; font-size: 12px; font-weight: 700; margin-bottom: 10px; }
.auth-form { display: grid; gap: 10px; }
.auth-form input[type="text"], .auth-form input[type="password"], .auth-form input[type="email"] { width: 100%; padding: 14px 16px; border-radius: 15px; border: 1px solid var(--border); outline: none; background:#fff; box-shadow: inset 0 1px 2px rgba(15,23,42,.04); }
.auth-form input[type="email"]:focus, .auth-form input[type="text"]:focus, .auth-form input[type="password"]:focus { border-color:#69AD48; box-shadow:0 0 0 4px rgba(105,173,72,.12); }
.remember-line { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.btn-primary, .btn-secondary { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 16px; padding: 14px 18px; cursor: pointer; font-weight: 700; }
.btn-primary { background: linear-gradient(135deg, var(--primary), #7cc856); color: white; }
.btn-secondary { background: #edf5e9; color: var(--text); }
.btn-small { padding: 10px 14px; border-radius: 12px; font-size: 13px; }
.btn-block { width: 100%; }
.btn-back { white-space: nowrap; }
.form-message.error { color: #b42318; }
.demo-box { margin-top: 18px; padding: 16px; border-radius: 18px; background: #f9fbf7; border: 1px dashed var(--border); }
.admin-box { border-color: #d5c7f8; background: linear-gradient(180deg, #fbf8ff 0%, #ffffff 100%); }
.demo-title { font-weight: 700; margin-bottom: 8px; }
.topbar { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 20px 18px 8px; max-width: 1100px; margin: 0 auto; }
.topbar.enhanced { padding-top: 18px; align-items: flex-start; }
.topbar.compact { justify-content: flex-start; }
.title-wrap { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.title-main { display: flex; align-items: center; gap: 14px; }
.title-main h1 { margin-bottom: 4px; }
.topbar-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.page { max-width: 1100px; margin: 0 auto; padding: 12px 16px 24px; }
.simple-page { max-width: 760px; }
.wide-page { max-width: 1100px; }
.hero-card { padding: 26px; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.hero-inner { border: 1px solid rgba(255,255,255,.55); }
.hero-dashboard { background: linear-gradient(135deg, #ffffff 0%, #f4f9ef 100%); }
.hero-news { background: linear-gradient(135deg, #ffffff 0%, #f5f9ff 100%); }
.hero-planning { background: linear-gradient(135deg, #ffffff 0%, #fff9f2 100%); }
.hero-card-zone { background: linear-gradient(135deg, #ffffff 0%, #f2fffb 100%); }
.hero-program { background: linear-gradient(135deg, #ffffff 0%, #fff7fd 100%); }
.hero-body { background: linear-gradient(135deg, #ffffff 0%, #f4f9ff 100%); }
.hero-notifs { background: linear-gradient(135deg, #ffffff 0%, #fffdf4 100%); }
.hero-profile { background: linear-gradient(135deg, #ffffff 0%, #faf7ff 100%); }
.hero-admin { background: linear-gradient(135deg, #ffffff 0%, #faf7ff 100%); }
.hero-side { display: flex; gap: 12px; align-items: center; }
.hero-badge, .hero-mini { display: flex; align-items: center; justify-content: center; color: white; font-weight: 700; }
.hero-badge { width: 88px; height: 88px; border-radius: 24px; background: linear-gradient(135deg, #69AD48, #8ad35f); }
.hero-mini { width: 54px; height: 54px; border-radius: 18px; background: linear-gradient(135deg, #49a3ff, #3d7fff); }
.grid-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.admin-grid { margin-top: 6px; }
.module-card { position: relative; overflow: hidden; padding: 20px; min-height: 170px; transition: transform .18s ease, box-shadow .18s ease; }
.module-card:hover { transform: translateY(-3px); }
.module-card::after { content: ''; position: absolute; right: -12px; bottom: -12px; width: 90px; height: 90px; border-radius: 28px; opacity: .12; }
.icon-badge { width: 54px; height: 54px; border-radius: 18px; display: inline-flex; align-items: center; justify-content: center; font-size: 26px; margin-bottom: 12px; color: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.10); }
.icon-green { background: linear-gradient(135deg, #69AD48, #8ad35f); }
.icon-blue { background: linear-gradient(135deg, #4da3ff, #3d7fff); }
.icon-orange { background: linear-gradient(135deg, #ff9f43, #ffbf69); }
.icon-teal { background: linear-gradient(135deg, #14b8a6, #2dd4bf); }
.icon-pink { background: linear-gradient(135deg, #d444f1, #f472b6); }
.icon-yellow { background: linear-gradient(135deg, #f59e0b, #facc15); }
.icon-purple { background: linear-gradient(135deg, #7c3aed, #a78bfa); }
.module-news { background: linear-gradient(180deg, #fff 0%, #f9fbff 100%); }
.module-news::after { background: #4da3ff; }
.module-planning { background: linear-gradient(180deg, #fff 0%, #fffaf5 100%); }
.module-planning::after { background: #ff9f43; }
.module-cardm { background: linear-gradient(180deg, #fff 0%, #f8fffb 100%); }
.module-cardm::after { background: #17b26a; }
.module-program { background: linear-gradient(180deg, #fff 0%, #fff8fd 100%); }
.module-program::after { background: #d444f1; }
.module-body { background: linear-gradient(180deg, #fff 0%, #f8fbff 100%); }
.module-body::after { background: #3b82f6; }
.module-notif { background: linear-gradient(180deg, #fff 0%, #fffdf7 100%); }
.module-notif::after { background: #f59e0b; }
.module-profile { background: linear-gradient(180deg, #fff 0%, #faf7ff 100%); }
.module-profile::after { background: #7c3aed; }
.split-section { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 18px; }
.content-card { padding: 22px; }
.highlighted-admin { margin-bottom: 18px; }
.section-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.accent-green { border-left: 6px solid #69AD48; }
.accent-blue { border-left: 6px solid #4da3ff; }
.accent-orange { border-left: 6px solid #ff9f43; }
.accent-pink { border-left: 6px solid #f472b6; }
.accent-purple { border-left: 6px solid #7c3aed; }
.list-cards { display: grid; gap: 12px; }
.enhanced-list .mini-card { background: linear-gradient(180deg, #ffffff 0%, #f9fbf8 100%); }
.mini-card, .notif-item { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 18px; background: #f9fbf8; border: 1px solid var(--border); }
.mini-card .icon-badge, .notif-item .icon-badge { width: 44px; height: 44px; border-radius: 14px; font-size: 22px; margin-bottom: 0; }
.notif-item.unread { background: #f2fbef; }
.schedule-list { display: grid; gap: 12px; }
.schedule-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px; background: #f9fbf8; border: 1px solid var(--border); border-radius: 18px; flex-wrap: wrap; }
.schedule-card { background: linear-gradient(180deg, #ffffff 0%, #f9fbf8 100%); }
.action-stack { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.badge-open { color: #0f9f62; font-style: normal; font-weight: 700; }
.pill { display: inline-flex; align-items: center; justify-content: center; padding: 8px 12px; border-radius: 999px; background: #eef4ea; font-size: 12px; font-weight: 700; }
.pill-orange { background: #fff0df; color: #b45309; }
.pill-green { background: #e9f8ee; color: #0f9f62; }
.member-card-ui { padding: 24px; background: linear-gradient(135deg, #1e2f1d 0%, #69AD48 100%); color: white; }
.member-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.avatar-circle { width: 64px; height: 64px; border-radius: 20px; background: rgba(255,255,255,.16); display: flex; align-items: center; justify-content: center; font-size: 28px; }
.fake-qr { margin: 24px auto 14px; width: 180px; height: 180px; background:
  linear-gradient(90deg, #fff 10px, transparent 10px) 0 0/30px 30px,
  linear-gradient(#fff 10px, transparent 10px) 0 0/30px 30px,
  #0f160f; display: flex; align-items: center; justify-content: center; color: white; border-radius: 12px; border: 8px solid white; font-weight: 700; }
.profile-list { display: grid; gap: 12px; }
.profile-list > div { display: flex; justify-content: space-between; gap: 10px; padding: 14px; background: #f9fbf8; border: 1px solid var(--border); border-radius: 16px; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.stat-box { padding: 18px; border-radius: 18px; background: #f9fbf8; border: 1px solid var(--border); text-align: center; }
.stat-box strong { display: block; font-size: 24px; margin-bottom: 6px; }
.info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.info-box { padding: 16px; border-radius: 18px; background: linear-gradient(180deg, #ffffff 0%, #f9fbf8 100%); border: 1px solid var(--border); }
.mt-16 { margin-top: 16px; }
.bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 6px; padding: 10px; background: rgba(255,255,255,.98); border-top: 1px solid var(--border); backdrop-filter: blur(8px); }
.bottom-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 8px 4px; border-radius: 16px; font-size: 11px; text-align:center; min-width:0; }
.bottom-nav a.active { background: #eef7e9; color: var(--primary-dark); font-weight: 700; }
.bottom-nav .icon-badge { width: 34px; height: 34px; border-radius: 12px; margin-bottom: 2px; font-size: 18px; box-shadow: none; }
code { background: #eef4ea; padding: 2px 6px; border-radius: 8px; }
@media (max-width: 720px) {
  .topbar, .topbar.enhanced { flex-direction: column; align-items: flex-start; }
  .title-main { align-items: flex-start; }
  .hero-card { flex-direction: column; align-items: flex-start; }
  .stats-grid { grid-template-columns: 1fr; }
}


.btn-danger { background: linear-gradient(135deg, #ef4444, #f97316); color: #fff; border: 0; }
.tabs-card { padding: 12px; }
.tab-links { display: flex; gap: 10px; flex-wrap: wrap; }
.tab-link { display: inline-flex; align-items: center; justify-content: center; padding: 12px 16px; border-radius: 14px; background: #f3f7f0; font-weight: 700; }
.tab-link.active { background: linear-gradient(135deg, var(--primary), #7cc856); color: #fff; }
.alert-box { padding: 14px 18px; border-radius: 18px; margin-bottom: 14px; font-weight: 700; }
.alert-success { background: #e9f8ee; color: #0f9f62; border: 1px solid #b8ebca; }
.alert-error { background: #fff1f2; color: #b42318; border: 1px solid #fecdd3; }
.split-admin { align-items: start; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-form-grid label { display: grid; gap: 8px; font-weight: 700; }
.admin-form-grid input[type="text"],
.admin-form-grid input[type="number"],
.admin-form-grid input[type="date"],
.admin-form-grid input[type="time"],
.admin-form-grid select,
.admin-form-grid textarea {
  width: 100%; padding: 14px 16px; border-radius: 15px; border: 1px solid var(--border); outline: none; font: inherit; background: #fff;
}
.admin-form-grid textarea { resize: vertical; }
.full-span { grid-column: 1 / -1; }
.form-inline-checks { display: flex; gap: 12px; flex-wrap: wrap; }
.switch-line { display: inline-flex !important; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; background: #f8fbf6; border: 1px solid var(--border); font-weight: 700; }
.form-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.admin-list { display: grid; gap: 12px; }
.admin-item-card { border: 1px solid var(--border); border-radius: 18px; padding: 16px; background: linear-gradient(180deg, #fff 0%, #f9fbf8 100%); }
.admin-item-main { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.admin-item-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.admin-item-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.admin-item-actions form { margin: 0; }
.day-group-card { border: 1px solid var(--border); border-radius: 20px; overflow: hidden; background: linear-gradient(180deg, #fff 0%, #f9fbf8 100%); }
.day-group-head { padding: 14px 16px; font-weight: 800; background: #f3f8ef; border-bottom: 1px solid var(--border); }
.days-stack { gap: 16px; }
@media (max-width: 720px) {
  .admin-form-grid { grid-template-columns: 1fr; }
}

.vertical-stack { align-items: flex-end; }
.inline-form { margin: 0; }
@media (max-width: 720px) {
  .vertical-stack { align-items: flex-start; }
}

.pill-purple { background: #f3e8ff; color: #7c3aed; }
.mb-8 { margin-bottom: 8px; }
.date-strip-card { overflow: hidden; }
.date-strip-actions { display: flex; gap: 8px; }
.date-strip { display: flex; gap: 12px; overflow-x: auto; padding: 4px 2px 6px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.date-strip::-webkit-scrollbar { height: 6px; }
.date-strip::-webkit-scrollbar-thumb { background: #d7e4d1; border-radius: 999px; }
.date-chip { min-width: 78px; padding: 12px 10px; border-radius: 18px; background: linear-gradient(180deg, #fff 0%, #f7faf4 100%); border: 1px solid var(--border); display: flex; flex-direction: column; align-items: center; gap: 4px; scroll-snap-align: center; box-shadow: 0 8px 18px rgba(20,40,18,.04); }
.date-chip.active { background: linear-gradient(135deg, #69AD48, #8ad35f); color: #fff; border-color: transparent; }
.date-chip-top, .date-chip-bottom { font-size: 12px; font-weight: 700; opacity: .85; text-transform: uppercase; }
.date-chip strong { font-size: 24px; line-height: 1; }
.planning-day-card { align-items: center; }
.planning-actions { min-width: 205px; }
.compact-form-grid { grid-template-columns: minmax(220px, 320px); }
.reservation-admin-grid { display: grid; gap: 10px; margin-top: 14px; }
.reservation-user-card { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; padding: 14px; border-radius: 16px; border: 1px solid var(--border); background: #f9fbf8; }
.waitlist-card { background: #fff8ef; border-color: #f7d7a8; }
@media (max-width: 720px) {
  .date-chip { min-width: 74px; }
  .planning-actions { min-width: 100%; }
  .reservation-user-card { align-items: flex-start; }
}

.full-form-admin { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 980px) { .full-form-admin { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .full-form-admin { grid-template-columns: 1fr; } }
.day-group-body { padding: 14px; }
.activity-card { border-left: 6px solid var(--activity-color, #69AD48); }
.pill-activity { background: color-mix(in srgb, var(--activity-color, #69AD48) 14%, white); color: var(--activity-color, #2f5d28); }
.class-thumb, .news-thumb { width: 92px; height: 92px; object-fit: cover; border-radius: 18px; border: 1px solid var(--border); flex: 0 0 92px; }
.news-thumb { width: 100%; height: 180px; margin-bottom: 12px; }
.schedule-main { display: grid; gap: 6px; flex: 1; min-width: 220px; }
.upload-preview { display:flex; align-items:center; }
.admin-preview-img { width: 120px; height: 90px; object-fit: cover; border-radius: 16px; border: 1px solid var(--border); }
.news-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.news-card { overflow: hidden; }
.news-body { margin-top: 10px; color: #38503b; }
.compact-reservations-list { gap: 10px; }
.reservation-summary-card { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 16px; border-radius:18px; border:1px solid var(--border); background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--activity-color, #69AD48) 7%, white) 100%); }
@media (max-width:720px) { .reservation-summary-card { align-items:flex-start; flex-direction:column; } .class-thumb { width:100%; height:160px; flex-basis:auto; } .planning-day-card { align-items:flex-start; } }
.auth-card-wide { max-width: 760px; }
.install-app-box { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:16px 18px; border-radius:18px; background:linear-gradient(135deg,#f3f8ef,#fff); border:1px solid var(--border); margin:14px 0 18px; }
.auth-tabs { display:flex; gap:10px; margin-bottom:16px; }
.auth-panel { display:none; }
.auth-panel.active { display:grid; }
.password-rules { display:flex; gap:8px; flex-wrap:wrap; margin-top:4px; }
.password-rules span { padding:8px 10px; border-radius:999px; background:#f4f6f2; border:1px solid var(--border); font-size:12px; font-weight:700; color:#6b7280; }
.password-rules span.ok { background:#e9f8ee; border-color:#b8ebca; color:#0f9f62; }
.course-detail-card { display:grid; grid-template-columns: minmax(280px, 420px) 1fr; gap:20px; }
.course-detail-image { width:100%; height:100%; min-height:260px; object-fit:cover; border-radius:22px; border:1px solid var(--border); }
.course-detail-body { display:grid; gap:16px; }
.detail-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:12px; }
.detail-grid > div { padding:14px 16px; border-radius:16px; background:#f8fbf6; border:1px solid var(--border); display:grid; gap:6px; }
.course-detail-text { line-height:1.6; color:#38503b; }
.activity-inline-head { display:flex; gap:12px; align-items:center; }
.small-thumb { width:68px; height:68px; flex:0 0 68px; }
@media (max-width: 720px) { .install-app-box { flex-direction:column; align-items:flex-start; } .course-detail-card { grid-template-columns: 1fr; } .detail-grid { grid-template-columns: 1fr; } }

.profile-hero-v11 { align-items: center; }
.profile-hero-main { display:flex; align-items:center; gap:18px; }
.profile-avatar-large, .member-photo-zone { width:110px; height:110px; border-radius:28px; overflow:hidden; background:linear-gradient(135deg,#edf5e9,#dfeeda); display:flex; align-items:center; justify-content:center; font-size:42px; font-weight:800; color:#446a34; border:1px solid var(--border); }
.profile-avatar-large img, .member-photo-zone img { width:100%; height:100%; object-fit:cover; }
.member-card-vertical { max-width:380px; margin:0 auto; background:linear-gradient(180deg,#17331a 0%,#224828 100%); color:#fff; border-radius:34px; padding:24px; box-shadow: var(--shadow); display:grid; gap:16px; }
.member-card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.member-pill { background:rgba(255,255,255,.14); color:#fff; }
.member-card-name { font-size:28px; font-weight:800; line-height:1.1; }
.member-card-email { color:rgba(255,255,255,.82); }
.member-qr-box { background:#fff; border-radius:24px; padding:16px; display:flex; align-items:center; justify-content:center; }
.member-code-line { text-align:center; font-weight:700; letter-spacing:.08em; color:rgba(255,255,255,.88); }
.pseudo-qr { width:180px; height:180px; display:block; }
.body-stats-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.chart-wrap { padding:10px 4px 0; }
.body-chart { width:100%; height:auto; display:block; }
@media (max-width:720px) {
  .profile-hero-main { flex-direction:column; align-items:flex-start; }
  .body-stats-grid { grid-template-columns:1fr 1fr; }
}


.centered-photo,.centered-name{text-align:center}
.real-qr-box img{width:100%;max-width:260px;border-radius:18px;display:block;margin:0 auto;background:#fff;padding:10px}
.member-card-name.centered-name{font-size:1.4rem;font-weight:800;margin-top:12px}
.body-stats-icons .stat-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.stat-emoji{font-size:1.6rem}
.program-exercise-list{display:grid;gap:16px;margin-top:16px}
.exercise-card{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:14px;border:1px solid rgba(0,0,0,.06);border-radius:18px;background:#fff}
.exercise-thumb{width:110px;height:110px;object-fit:cover;border-radius:14px}
.exercise-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.exercise-meta{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.program-log-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
.program-log-form .full-span{grid-column:1/-1}
.active-soft{outline:2px solid rgba(105,173,72,.35);background:#f8fff3}

.member-card-v13 { max-width: 420px; }
.member-photo-zone-v13 { width: 170px; height: 170px; margin: 0 auto; border-radius: 38px; }
.member-photo-zone-v13 img { object-position: center center; }
.member-name-v13 { text-align:center; width:100%; }
.member-qr-box-v13 { padding: 14px; min-height: 288px; }
.member-qr-box-v13 img { width: 258px; height: 258px; object-fit: contain; display:block; }
.program-admin-layout { display:grid; grid-template-columns: 320px minmax(0,1fr) 340px; gap:18px; align-items:start; }
.program-main-column { min-width:0; }
.program-panel { border-radius:24px; }
.sticky-panel { position: sticky; top: 92px; }
.program-admin-exercise-grid { display:grid; grid-template-columns: 280px minmax(0,1fr); gap:16px; margin-top:16px; }
.exercise-editor-card { padding:16px; border:1px solid var(--border); border-radius:18px; background:#f9fbf8; }
.exercise-admin-card { background:#fff; }
.exercise-admin-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; }
.compact-editor-row { margin-top: 14px; }
.program-pick-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap:14px; }
.program-pick-card { padding:16px 18px; border:1px solid var(--border); border-radius:18px; display:flex; justify-content:space-between; gap:12px; align-items:center; background:linear-gradient(180deg,#fff,#f9fbf8); }
.program-coach-tips { padding:16px 18px; border-radius:18px; background:#f8fbf6; border:1px solid var(--border); line-height:1.65; }
.exercise-card-v13 { border:1px solid var(--border); border-radius:22px; padding:18px; background:linear-gradient(180deg,#fff,#fbfcfa); display:grid; gap:14px; }
.exercise-top-row { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; flex-wrap:wrap; }
.modern-program-form { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:12px; }
.modern-program-form label { display:grid; gap:8px; font-weight:700; }
.modern-program-form input { width:100%; padding:13px 14px; border-radius:14px; border:1px solid var(--border); background:#fff; }
.program-done-row { grid-column:1 / -1; display:flex; justify-content:flex-end; }
@media (max-width: 1180px) { .program-admin-layout { grid-template-columns: 1fr; } .sticky-panel { position:static; } }
@media (max-width: 860px) { .program-admin-exercise-grid { grid-template-columns: 1fr; } .modern-program-form { grid-template-columns:1fr; } .member-qr-box-v13 img { width:230px; height:230px; } }

/* V14 refinements */
.member-card-v13 { max-width: 430px; }
.member-photo-zone-v13 { width: 180px; height: 180px; margin: 0 auto; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.member-photo-zone-v13 img { width:100%; height:100%; object-fit:cover; object-position:center center; display:block; }
.member-card-name.centered-name.member-name-v13 { text-align:center; width:100%; font-size:1.7rem; margin-top:4px; }
.member-qr-box-v13 { padding: 18px; min-height: 320px; }
.member-qr-box-v13 img { width: 290px; height: 290px; max-width:none; }
.program-top-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.done-pill-large { font-size: .95rem; padding: 10px 14px; }
.exercise-done { border: 2px solid rgba(105,173,72,.45); background: linear-gradient(180deg, rgba(105,173,72,.12), #fff); }
.done-summary-box { margin-top: 14px; background: #f4fbef; border: 1px solid rgba(105,173,72,.25); border-radius: 16px; padding: 14px 16px; }
.done-cta { min-width: 220px; }
.empty-program-state { text-align:center; }
.compact-filter-grid { margin: 14px 0 18px; grid-template-columns: 1.4fr 1fr auto; align-items:end; }
.history-card-strong { border-left: 4px solid #69AD48; }
@media (max-width: 860px) {
  .member-qr-box-v13 img { width: 258px; height: 258px; }
  .compact-filter-grid { grid-template-columns: 1fr; }
}


/* V15 */
.member-card-v15 { max-width: 440px; }
.member-photo-zone-v15 { width: 182px; height: 182px; }
.member-qr-box-v15 { padding: 22px; min-height: 360px; display:flex; align-items:center; justify-content:center; }
.member-qr-box-v15 img { width: 328px; height: 328px; max-width: none; padding: 0; background:#fff; border-radius: 12px; }

.program-exercise-stack { display:grid; gap:16px; margin-top:18px; }
.exercise-row-card { display:grid; grid-template-columns: 112px minmax(0,1fr) 260px; gap:18px; padding:18px; border:1px solid var(--border); border-radius:22px; background:linear-gradient(180deg,#fff,#fbfcfa); align-items:start; }
.exercise-row-media { display:flex; align-items:flex-start; justify-content:center; }
.exercise-thumb-row, .exercise-thumb-placeholder { width:112px; height:112px; border-radius:18px; object-fit:cover; border:1px solid var(--border); background:#f5f8f1; display:flex; align-items:center; justify-content:center; font-size:34px; }
.exercise-row-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.exercise-row-head h4 { margin:0 0 4px; font-size:1.08rem; }
.exercise-inline-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.meta-chip { display:inline-flex; align-items:center; padding:9px 12px; border-radius:999px; background:#f7faf5; border:1px solid var(--border); font-weight:700; font-size:.9rem; color:#45604a; }
.exercise-row-desc { margin-top:12px; color:#425649; line-height:1.55; }
.exercise-row-action { min-width:0; }
.program-complete-panel { display:grid; gap:12px; padding:14px; border-radius:18px; background:#f8fbf6; border:1px solid var(--border); }
.program-complete-panel label { display:grid; gap:6px; font-weight:700; color:#375043; }
.program-complete-panel input, .program-complete-panel textarea { width:100%; padding:12px 14px; border-radius:14px; border:1px solid var(--border); background:#fff; }
.done-cta-v15 { width:100%; min-width:0; }
.exercise-row-done-visual { display:flex; align-items:center; justify-content:center; min-height:100%; }
.done-summary-box-v15 { margin-top:14px; }
.exercise-done .exercise-row-card { border-color: rgba(105,173,72,.4); }

.admin-builder-shell { display:grid; grid-template-columns: 360px minmax(0,1fr); gap:20px; align-items:start; }
.admin-builder-sidebar, .admin-builder-main { min-width:0; }
.program-builder-nav { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.builder-tab { display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:999px; border:1px solid var(--border); background:#f7faf5; color:#35533e; font-weight:700; }
.builder-tab.active { background:#2b5036; color:#fff; border-color:#2b5036; }
.builder-screen-grid { display:grid; gap:18px; }
.builder-screen-card { border:1px solid var(--border); border-radius:22px; padding:18px; background:linear-gradient(180deg,#fff,#fafcf9); }
.btn-danger-soft { background:linear-gradient(180deg,#fff1f1,#ffe3e3); color:#bb2c2c; border:1px solid #f0b5b5; box-shadow:none; }

.sortable-stack { display:grid; gap:14px; }
.sortable-card { display:grid; grid-template-columns: 42px minmax(0,1fr); gap:12px; padding:14px; border:1px solid var(--border); border-radius:20px; background:#fff; }
.sortable-card.dragging { opacity:.5; }
.sortable-handle { width:42px; min-height:42px; border-radius:14px; background:#eef5ea; display:flex; align-items:center; justify-content:center; font-size:20px; cursor:grab; color:#446a34; font-weight:800; }
.sortable-main { min-width:0; }

.builder-workbench { display:grid; grid-template-columns: 220px 320px minmax(0,1fr); gap:18px; align-items:start; }
.builder-session-sidebar, .builder-library-pane, .builder-canvas-pane { border:1px solid var(--border); border-radius:22px; padding:18px; background:linear-gradient(180deg,#fff,#fafcf9); min-width:0; }
.builder-session-list { display:grid; gap:10px; margin-top:10px; }
.session-chip { display:block; padding:12px 14px; border-radius:16px; border:1px solid var(--border); background:#f7faf5; font-weight:700; color:#395540; }
.session-chip.active { background:#224828; color:#fff; border-color:#224828; }
.builder-note, .builder-empty-state { color:#5f6f67; line-height:1.55; }
.library-toolbar { display:grid; grid-template-columns: minmax(0,1fr) 180px; gap:12px; margin-top:12px; }
.library-filter { display:grid; gap:6px; font-weight:700; color:#35533f; }
.library-filter input, .library-filter select { width:100%; padding:12px 14px; border-radius:14px; border:1px solid var(--border); background:#fff; }
.library-mini-list { display:grid; gap:12px; margin-top:16px; max-height:780px; overflow:auto; padding-right:4px; }
.library-mini-card { display:grid; grid-template-columns: 58px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px; border:1px solid var(--border); border-radius:16px; background:#fff; cursor:grab; }
.library-mini-card strong { display:block; line-height:1.2; }
.library-mini-card p { margin:4px 0 0; color:#66766f; font-size:.9rem; }
.library-inline-add { margin:0; }
.drop-legend { margin-top:12px; color:#61746b; }
.drop-zone { margin-top:10px; padding:18px; border-radius:18px; border:2px dashed #b9d7b3; background:#f7fbf4; color:#45654e; font-weight:700; text-align:center; }
.drop-zone.drag-over { background:#eef8e8; border-color:#69AD48; }
.library-item { scroll-margin-top: 80px; }

.auth-card .field input[type="email"], .auth-card input[type="email"] { padding:14px 16px; border-radius:16px; border:1px solid var(--border); background:#fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }

@media (max-width: 1200px) {
  .builder-workbench { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
  .admin-builder-shell { grid-template-columns: 1fr; }
  .exercise-row-card { grid-template-columns: 94px minmax(0,1fr); }
  .exercise-row-action { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .exercise-row-card { grid-template-columns: 1fr; }
  .exercise-row-media { justify-content:flex-start; }
  .member-qr-box-v15 img { width: 300px; height: 300px; }
  .library-toolbar { grid-template-columns:1fr; }
}


/* V16 */
.member-qr-box-v15 { padding: 16px; min-height: 380px; }
.member-qr-box-v15 img { width: 356px; height: 356px; max-width: none; object-fit: contain; }
.program-admin-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.program-admin-card-tile{border:1px solid var(--border);border-radius:22px;padding:18px;background:linear-gradient(180deg,#fff,#f8fbff);display:flex;flex-direction:column;justify-content:space-between;gap:16px;box-shadow:0 12px 30px rgba(15,23,42,.05)}
.program-admin-card-tile strong{font-size:1.05rem;display:block;margin-bottom:6px}
.program-admin-card-tile.empty{align-items:flex-start;justify-content:flex-start}
.tile-actions{display:grid;gap:10px}
.tile-inline-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn-full{display:flex;justify-content:center;width:100%}
.builder-quick-links{display:grid;gap:10px}
.builder-mini-program-list{display:grid;gap:10px}
.builder-mini-program{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:#fff;text-decoration:none;color:inherit}
.builder-mini-program span{font-size:.9rem;color:var(--muted)}
.exercise-row-card{grid-template-columns:96px minmax(0,1fr) 220px;gap:16px;align-items:center}
.exercise-row-main{display:grid;gap:10px}
.exercise-row-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.exercise-row-head h4{margin:0 0 4px;font-size:1.05rem}
.exercise-inline-meta{display:flex;gap:8px;flex-wrap:wrap}
.exercise-row-action{display:flex;align-items:center;justify-content:flex-end}
.program-complete-panel{display:grid;gap:10px;width:100%;background:linear-gradient(180deg,#f9fbff,#eef5ff);border:1px solid #d9e6ff;border-radius:18px;padding:14px}
.program-complete-panel label{display:grid;gap:6px;font-size:.85rem;color:#3c4a62}
.program-complete-panel input,.program-complete-panel textarea,.program-complete-panel select,.library-toolbar input,.library-toolbar select{border:1px solid #d7deeb;background:#fff;border-radius:14px;padding:11px 13px;box-shadow:inset 0 1px 1px rgba(15,23,42,.03)}
.program-complete-panel textarea{min-height:84px;resize:vertical}
.done-cta-v15{padding:13px 16px;font-weight:700}
.exercise-row-done-visual{display:flex;justify-content:center;width:100%}
.done-summary-box-v15{background:linear-gradient(180deg,#effaf1,#e6f7e9);border:1px solid #b7e1bf;border-radius:18px;padding:12px 14px}
.library-toolbar{align-items:end}
.library-filter span{display:block;font-size:.84rem;color:var(--muted);margin-bottom:6px}
.sortable-card.dragging,.library-mini-card.dragging{opacity:.55;transform:scale(.98)}
.drop-zone{min-height:84px;border:2px dashed #8bb5ff;background:linear-gradient(180deg,#f7fbff,#eef5ff);border-radius:18px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#355287}
.drop-zone.drag-over{background:linear-gradient(180deg,#eef7ff,#dfefff);border-color:#4f86f7}
.builder-note,.drop-legend{font-size:.9rem;color:var(--muted)}
.compact-editor-row .form-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn-danger-soft{background:linear-gradient(180deg,#fff4f4,#ffe3e3);color:#c53030;border:1px solid #f2b9b9}
@media (max-width: 860px){.exercise-row-card{grid-template-columns:1fr}.exercise-row-action{justify-content:stretch}.member-qr-box-v15 img{width:320px;height:320px}}

/* V17 clearer programs */
.program-builder-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding:8px;border-radius:18px;background:#f3f6fb}
.builder-tab{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:14px;background:#fff;border:1px solid #dbe4f0;color:#1f2937;font-weight:700;text-decoration:none;box-shadow:0 6px 16px rgba(16,24,40,.05)}
.builder-tab.active{background:#1f7a5a;color:#fff;border-color:#1f7a5a}
.builder-quick-links{display:grid;gap:10px}
.builder-quick-links .btn-full{width:100%;justify-content:center}
.sortable-card{position:relative;display:grid;grid-template-columns:auto auto 1fr;gap:14px;align-items:flex-start}
.sortable-handle{cursor:grab;user-select:none;font-size:22px;line-height:1;padding:12px 8px;color:#64748b}
.sortable-card.dragging{opacity:.6;border-color:#1f7a5a;background:#eefbf5}
.sortable-actions{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.sort-btn{border:1px solid #d0d7e2;background:#fff;border-radius:10px;padding:6px 8px;font-weight:700;cursor:pointer}
.sort-btn:hover{background:#f8fafc}
.builder-manual-create,.exercise-add-options{padding:16px;border:1px dashed #cbd5e1;border-radius:18px;background:#f8fbff}
.exercise-add-options{display:flex;justify-content:space-between;align-items:center;gap:12px}
.library-toolbar{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-top:14px}
.library-filter span{display:block;font-size:13px;font-weight:700;color:#475569;margin-bottom:6px}
.library-filter input,.library-filter select{width:100%}
.small-thumb{width:62px;height:62px;object-fit:cover;border-radius:14px;background:#eef2f7;border:1px solid #d9e2ee}
.exercise-sort-card .admin-form-grid{margin-top:12px}
.exercise-admin-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.activity-inline-head{display:flex;gap:12px;align-items:center}
.program-exercise-stack{display:grid;gap:14px}
.exercise-row-card{display:grid;grid-template-columns:96px minmax(0,1fr) 300px;gap:16px;align-items:start;padding:16px;border:1px solid #dbe4f0;border-radius:20px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.exercise-thumb-row{width:96px;height:96px;object-fit:cover;border-radius:18px;background:#eef2f7}
.exercise-thumb-placeholder{display:flex;align-items:center;justify-content:center;font-size:30px}
.exercise-row-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.exercise-row-head h4{margin:0 0 4px;font-size:20px}
.exercise-inline-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.meta-chip{padding:7px 10px;border-radius:999px;background:#eef6ff;color:#1d4ed8;font-weight:700;font-size:13px}
.exercise-row-desc{margin-top:10px;color:#475569}
.exercise-row-action{min-width:0}
.program-complete-panel{display:grid;gap:10px;padding:14px;border-radius:18px;background:#f8fbff;border:1px solid #dbe4f0}
.program-complete-panel input,.program-complete-panel textarea{width:100%}
.exercise-done{border-color:#8fd0a8;background:#f3fbf5}
.exercise-row-done-visual{display:flex;align-items:center;justify-content:center;min-height:100%}
.done-summary-box{margin-top:12px;padding:12px;border-radius:16px;background:#fff;border:1px solid #b7e3c7}
.btn-danger-soft{background:#fff5f5;color:#b42318;border:1px solid #fecaca}
.btn-danger-soft:hover{background:#fee2e2}
@media (max-width: 960px){
  .exercise-row-card{grid-template-columns:1fr}
  .exercise-row-media{order:1}.exercise-row-main{order:2}.exercise-row-action{order:3}
  .exercise-add-options{flex-direction:column;align-items:flex-start}
}

/* V18 desktop programs */
.program-admin-page{max-width:min(1700px,calc(100vw - 24px));width:min(1700px,calc(100vw - 24px))}
.admin-builder-shell{grid-template-columns:260px minmax(0,1fr)}
.library-desktop-shell{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:20px;align-items:start}
.library-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px}
.library-square-card{display:grid;gap:10px;align-content:start;padding:16px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(180deg,#fff,#f8fbff);text-decoration:none;color:inherit;min-height:210px;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.library-square-card.selected{border-color:#1f7a5a;box-shadow:0 0 0 2px rgba(31,122,90,.12),0 18px 36px rgba(15,23,42,.08)}
.library-square-media{display:flex;align-items:center;justify-content:center;height:82px}
.library-square-media .small-thumb{width:82px;height:82px}
.library-editor-panel{position:sticky;top:18px}
.assign-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;align-items:start}
.assign-user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.assign-user-card{display:grid;gap:10px;align-content:start;text-align:left;padding:16px;border-radius:20px;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#f8fbff);cursor:pointer;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.assign-user-card.selected{border-color:#1f7a5a;background:#effaf5;box-shadow:0 0 0 2px rgba(31,122,90,.12),0 16px 32px rgba(15,23,42,.08)}
.assign-user-avatar{width:56px;height:56px;border-radius:18px;background:#eef5ea;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:28px;overflow:hidden}
.assign-user-avatar img{width:100%;height:100%;object-fit:cover}
.assign-user-avatar.large{width:72px;height:72px}
.assign-selected-card{display:flex;gap:14px;align-items:center;padding:16px;border-radius:20px;border:1px dashed #cbd5e1;background:#f8fbff}
.assign-selected-card.has-selection{border-style:solid;border-color:#8bd1ad;background:#effaf5}
.assign-search-toolbar{grid-template-columns:minmax(0,1fr) auto}
.exercise-builder-stage{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:18px;align-items:start}
.builder-editor-panel{border:1px solid var(--border);border-radius:22px;padding:18px;background:linear-gradient(180deg,#fff,#fafcf9);position:sticky;top:18px}
.exercise-admin-list-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center}
.exercise-admin-list-media .small-thumb{width:72px;height:72px;border-radius:16px}
.exercise-admin-list-main strong{display:block;font-size:1rem;margin-bottom:4px}
.exercise-admin-list-main p{margin:0;color:#64748b}
.exercise-admin-list-actions{display:grid;gap:8px;justify-items:end}
.builder-workbench{grid-template-columns:220px 340px minmax(0,1fr)}
.builder-library-pane .library-mini-list{display:grid;grid-template-columns:1fr;gap:10px;max-height:700px}
.builder-library-pane .library-mini-card{padding:12px;border-radius:18px}
.builder-library-pane .library-mini-card strong{font-size:.95rem}
@media (max-width: 1280px){
  .library-desktop-shell,.assign-layout,.exercise-builder-stage{grid-template-columns:1fr}
  .library-editor-panel,.builder-editor-panel{position:static}
}


/* V19 refinements */
.wide-page.program-admin-page{max-width:calc(100vw - 16px);width:calc(100vw - 16px)}
.page.program-admin-page{padding-left:8px;padding-right:8px}
.hidden{display:none!important}
.btn-link{background:none;border:none;color:#1f7a5a;font-weight:700;padding:0;cursor:pointer;text-decoration:underline}
.builder-workbench{grid-template-columns:210px 380px minmax(0,1fr)}
.exercise-builder-stage{grid-template-columns:minmax(0,1fr)}
.exercise-admin-list-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid #dbe4f0;border-radius:18px;background:#fff}
.exercise-admin-list-media .small-thumb,.library-square-media .small-thumb{width:72px;height:72px;object-fit:cover;border-radius:16px}
.exercise-admin-list-main strong{display:block;font-size:1rem;line-height:1.2}
.exercise-admin-list-main p{margin:6px 0;color:#66766f}
.exercise-inline-meta{display:flex;flex-wrap:wrap;gap:8px}
.exercise-admin-list-actions{display:flex;gap:8px;align-items:center}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.52);display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;z-index:1200;overflow:auto}
.modal-card{width:min(980px,96vw);background:#fff;border-radius:24px;padding:22px;border:1px solid #dbe4f0;box-shadow:0 24px 80px rgba(15,23,42,.22)}
.modal-large{width:min(1100px,96vw)}
.library-mini-list{display:grid;gap:12px;max-height:720px;overflow:auto;padding-right:4px}
.library-mini-card{grid-template-columns:64px minmax(0,1fr) auto;min-height:88px}
.builder-manual-create{background:#fffef8;border:1px dashed #f2c46d}
.program-builder-nav{position:sticky;top:8px;z-index:5}
.session-chip{padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:#fff;text-decoration:none;color:inherit;font-weight:700}
.session-chip.active{background:#1f7a5a;color:#fff;border-color:#1f7a5a}
@media (max-width:1200px){
  .builder-workbench{grid-template-columns:1fr}
  .exercise-admin-list-card{grid-template-columns:64px minmax(0,1fr)}
  .exercise-admin-list-actions{grid-column:1 / -1;justify-content:flex-end}
}


.builder-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.38);backdrop-filter:blur(2px);z-index:1190}
.builder-edit-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(960px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;z-index:1200;box-shadow:0 24px 80px rgba(15,23,42,.22)}
.sortable-handle{cursor:grab;user-select:none}
.sortable-handle:active{cursor:grabbing}
.wide-page.program-admin-page,.page.program-admin-page{max-width:calc(100vw - 10px)!important;width:calc(100vw - 10px)!important}
.program-admin-page .content-card,.program-admin-page .hero-card{max-width:none}

.wide-page{max-width:1400px;margin:0 auto;}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.quick-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.metric-card,.mini-badge-card{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:18px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.05);}
.metric-card strong{display:block;font-size:1.5rem;line-height:1;}
.metric-card p,.mini-badge-card p,.timeline-card p,.compact-exercise p{margin:.25rem 0 0;color:#5b6170;}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}
.stack-list{display:flex;flex-direction:column;gap:12px;}
.compact-course,.compact-exercise{border-left:4px solid var(--activity-color, #69AD48);}
.compact-exercise.is-done{background:linear-gradient(180deg, rgba(105,173,72,.08), rgba(105,173,72,.02));}
.timeline-list{display:flex;flex-direction:column;gap:14px;position:relative;}
.timeline-item{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:start;}
.timeline-dot{display:flex;justify-content:center;align-items:center;padding-top:4px;}
.timeline-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:18px;padding:14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.04);}
.search-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.search-row .input{flex:1;min-width:260px;}
.compact-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
@media (max-width: 900px){.grid-2,.quick-metrics{grid-template-columns:1fr 1fr;}}
@media (max-width: 640px){.grid-2,.quick-metrics{grid-template-columns:1fr;}.timeline-item{grid-template-columns:44px 1fr;}}


.today-course-row { align-items:center; }
.today-course-row .grow { flex:1; }
.today-course-actions { display:flex; align-items:center; gap:8px; }
.done-pill { display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:999px; background:#e9f8ee; color:#0f9f62; font-weight:800; border:1px solid #b8ebca; }
.timeline-list { gap: 12px; }
.timeline-item { display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border:1px solid var(--border); border-radius:18px; background:linear-gradient(180deg,#fff 0%,#f9fbf8 100%); }
.timeline-dot { width:40px; height:40px; border-radius:14px; background:#eef4ea; display:flex; align-items:center; justify-content:center; font-size:18px; flex:0 0 40px; }
.coach-search-bar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.coach-search-input { flex:1; min-width:280px; display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:18px; background:#f7faf4; border:1px solid var(--border); }
.coach-search-input input { border:0; background:transparent; width:100%; outline:none; font:inherit; }
.member-tile-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.member-tile { display:flex; gap:12px; align-items:center; padding:14px; border-radius:18px; border:1px solid var(--border); background:linear-gradient(180deg,#fff 0%,#f9fbf8 100%); }
.member-tile.active { border-color:#69AD48; box-shadow:0 12px 24px rgba(105,173,72,.14); background:linear-gradient(180deg,#fff 0%,#eef7e9 100%); }
.member-avatar-tile { width:48px; height:48px; border-radius:16px; background:linear-gradient(135deg,#69AD48,#8fd162); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:18px; flex:0 0 48px; }
.admin-manual-card textarea.input, .admin-manual-card textarea { min-height:140px; }
.trophy-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.trophy-card { padding:16px; border-radius:20px; border:1px solid var(--border); background:linear-gradient(180deg,#fff 0%,#f9fbf8 100%); display:grid; gap:8px; }
.trophy-card.is-locked { filter:grayscale(1); opacity:.65; }
.trophy-card.is-unlocked { box-shadow:0 14px 28px rgba(105,173,72,.15); border-color:#cde4c0; }
.trophy-emoji { width:52px; height:52px; border-radius:18px; display:flex; align-items:center; justify-content:center; font-size:26px; background:#fff7d6; }
.progress-card { padding:14px; border-radius:18px; background:#f7faf4; border:1px solid var(--border); }
.progress-bar { height:12px; border-radius:999px; background:#e8efe4; overflow:hidden; }
.progress-bar span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#69AD48,#9fdf6f); }
@media (max-width: 720px) {
  .coach-search-bar { flex-direction:column; align-items:stretch; }
  .today-course-row { align-items:flex-start; }
  .today-course-actions { width:100%; justify-content:flex-start; }
}

.pill-gray{background:#eef1f5;color:#78808c;}
.trophy-grid-big{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.trophy-card.trophy-muted{background:linear-gradient(180deg,#f5f6f8,#eceff3);color:#7b8390;filter:saturate(.25);}
.trophy-card.trophy-muted .trophy-emoji{filter:grayscale(1);opacity:.8;}
.modern-notif-form .input, .modern-notif-form textarea{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:12px 14px;}
.modern-notif-form label{display:flex;flex-direction:column;gap:8px;font-weight:600;color:#2a3342;}
.btn-done-course{min-width:92px;}

.page.wide-page{max-width:1480px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.scenario-card,.challenge-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:16px;box-shadow:var(--shadow)}
.scenario-top{display:flex;gap:12px;align-items:flex-start}
.scenario-top .grow{flex:1}
.modal-overlay{position:fixed;inset:0;background:rgba(16,24,40,.5);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1200}
.modal-card{background:#fff;border-radius:24px;box-shadow:0 20px 60px rgba(16,24,40,.24);width:min(760px,100%);padding:24px;border:1px solid var(--border)}
.wide-modal{width:min(900px,100%)}
.notifications-admin-page .modern-notif-form .input,
.notifications-admin-page .modern-notif-form textarea,
.notifications-admin-page .modern-notif-form select{background:#fbfcfe}
.trophy-card.is-unlocked{animation:trophyPulse 1.8s ease-in-out infinite alternate}
@keyframes trophyPulse{from{transform:translateY(0);box-shadow:var(--shadow)}to{transform:translateY(-3px);box-shadow:0 14px 34px rgba(105,173,72,.22)}}
.member-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.member-tile{display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;border:1px solid var(--border);background:#fff;color:inherit;text-decoration:none;box-shadow:var(--shadow)}
.member-tile.active{border-color:#69AD48;background:#eef7e9}
.member-avatar-tile{width:44px;height:44px;border-radius:14px;background:#eef7e9;color:#29512f;display:flex;align-items:center;justify-content:center;font-weight:800}
.coach-search-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.coach-search-input{display:flex;align-items:center;gap:10px;flex:1;background:#fff;border:1px solid var(--border);border-radius:18px;padding:0 14px;min-height:52px;box-shadow:var(--shadow)}
.coach-search-input .input{border:none;box-shadow:none;background:transparent;padding-left:0}
.today-course-actions{display:flex;align-items:center;justify-content:flex-end;min-width:112px}
.btn-done-course{white-space:nowrap}
.done-pill{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:#e8f7ea;color:#186a2e;font-weight:800}
.challenge-card .progress-bar{height:12px}
.challenge-card .progress-bar span{background:linear-gradient(90deg,#69AD48,#8bd15f)}
@media (max-width: 980px){.grid-3{grid-template-columns:1fr}.page.wide-page{max-width:100%}}

[hidden]{display:none !important;}

.btn-delete-soft{background:#fff1f1;color:#c53b3b;border:1px solid #f1c5c5;border-radius:14px;padding:10px 14px;font-weight:700;cursor:pointer}
.btn-delete-soft:hover{background:#ffe3e3}
.scenario-card-clean{display:flex;flex-direction:column;gap:10px}
.scenario-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.pagination-bar{display:flex;justify-content:flex-end;gap:10px}
.metric-link{text-decoration:none;color:inherit}
.trophy-burst{position:relative;overflow:hidden}
.trophy-burst:after{content:'✨';position:absolute;top:10px;right:12px;font-size:20px;opacity:.9}

.btn-delete-soft{appearance:none;border:0;background:linear-gradient(180deg,#fff2f2,#ffe0e0);color:#b42318;padding:10px 14px;border-radius:14px;font-weight:700;display:inline-flex;align-items:center;gap:8px;box-shadow:0 6px 14px rgba(180,35,24,.08);cursor:pointer}
.btn-delete-soft:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(180,35,24,.15)}
.btn-delete-soft .trash{font-size:16px}
.sent-pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px}
.sent-pagination .btn-secondary[disabled]{opacity:.45;pointer-events:none}
.scenario-card-clean{background:linear-gradient(180deg,#fff,#fcfcff);border:1px solid #e8eaf2;border-radius:22px;padding:16px;display:grid;gap:10px}
.scenario-top{display:flex;gap:12px;align-items:flex-start}
.grow{flex:1}
.challenge-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.challenge-admin-card,.challenge-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--border);border-radius:20px;padding:16px;display:grid;gap:10px}
.challenge-admin-card .inline-tools{display:flex;gap:8px;flex-wrap:wrap}
.reward-sections{display:grid;gap:16px}
.reward-streaks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.reward-streak-card{padding:16px;border-radius:20px;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#fbfcff);display:grid;gap:6px;text-align:center}
.reward-streak-card strong{font-size:26px}
.rewards-nav-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.goal-ring{position:relative;height:12px;background:#edf1f7;border-radius:999px;overflow:hidden}
.goal-ring span{display:block;height:100%;background:linear-gradient(90deg,#69ad48,#a9d86a);border-radius:999px}
.challenge-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.week-label-fr{font-weight:700;color:#1f2937}
.home-hero-persona{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.toast-trophy{position:fixed;right:18px;bottom:96px;z-index:1400;background:#111827;color:#fff;padding:14px 16px;border-radius:18px;box-shadow:0 14px 36px rgba(17,24,39,.28);display:flex;gap:10px;align-items:center;opacity:0;transform:translateY(12px);pointer-events:none;transition:.28s ease}
.toast-trophy.show{opacity:1;transform:translateY(0)}
.push-card{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
@media (max-width:760px){.reward-streaks{grid-template-columns:1fr}.bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr))}.wide-page{max-width:100%;}}

.bottom-nav a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.bottom-nav a{min-height:58px;}


/* V31 premium */
.hero-focus-grid{align-items:stretch}
.action-link{text-decoration:none;color:inherit}
.mini-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:12px;border:1px solid rgba(20,30,60,.12);background:#fff;color:#23314d;text-decoration:none;font-weight:700}
.trophy-overlay{position:fixed;inset:0;background:rgba(11,18,33,.72);display:flex;align-items:center;justify-content:center;padding:24px;z-index:9999;opacity:0;pointer-events:none;transition:opacity .25s ease}
.trophy-overlay.show{opacity:1;pointer-events:auto}
.trophy-overlay-card{position:relative;max-width:520px;width:min(100%,520px);background:linear-gradient(180deg,#fff9eb 0%,#ffffff 80%);border-radius:28px;padding:28px 24px 24px;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.28);overflow:hidden}
.trophy-overlay-glow{position:absolute;inset:auto -10% 78% -10%;height:180px;background:radial-gradient(circle at center, rgba(255,193,7,.45), rgba(255,193,7,0));pointer-events:none}
.trophy-overlay-emoji{font-size:64px;line-height:1;margin-bottom:10px;animation:trophyPop .9s ease}
@keyframes trophyPop{0%{transform:scale(.7) translateY(12px);opacity:0}60%{transform:scale(1.08) translateY(0);opacity:1}100%{transform:scale(1)}}
.push-card .btn-primary[disabled]{opacity:.6;pointer-events:none}


.install-app-box-premium{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.25rem;border-radius:24px;background:linear-gradient(135deg,#f6fff1,#ffffff);border:1px solid rgba(105,173,72,.18);box-shadow:0 18px 45px rgba(33,62,24,.08);margin-bottom:1rem}.install-app-copy{flex:1}.install-status{margin:.45rem 0 0;color:#5e6f61;font-size:.93rem}.install-btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-width:190px}.install-btn.success{background:#2d8f54}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin 0.8s linear infinite}.browser-toggle{width:100%;margin:0 0 1rem;border:0;background:transparent;color:#2f6e2f;font-weight:700;font-size:.98rem;cursor:pointer;padding:.4rem .2rem;text-align:center}.browser-toggle::after{content:'▾';margin-left:.45rem;display:inline-block;transition:transform .2s ease}.browser-toggle.open::after{transform:rotate(180deg)}#browserLoginPanel[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}


.logo-mark { background: linear-gradient(135deg, #ffffff, #eff8e8); box-shadow: 0 12px 28px rgba(26,58,18,.10); }
.logo-mark img { width: 100%; height: 100%; object-fit: contain; display: block; }
.topbar-logo { width: 42px; height: 42px; object-fit: contain; border-radius: 14px; background: #fff; padding: 6px; box-shadow: 0 8px 18px rgba(20,40,18,.08); border: 1px solid rgba(105,173,72,.16); }
.install-app-box-premium { position: relative; overflow: hidden; }
.install-app-box-premium::after { content: ''; position: absolute; inset: auto -60px -80px auto; width: 220px; height: 220px; background: radial-gradient(circle, rgba(105,173,72,.14), transparent 68%); pointer-events: none; }
.install-app-copy strong { display:block; font-size: 1.1rem; margin-bottom: .2rem; }
.install-btn.info { background: linear-gradient(135deg, #5b8def, #4f7ae7); }
.browser-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border-radius:18px; border:1px solid rgba(105,173,72,.18); background:linear-gradient(135deg,#f6fff1,#ffffff); box-shadow:0 12px 28px rgba(33,62,24,.06); color:#245b2b; font-weight:800; }
.browser-toggle:hover { transform: translateY(-1px); }
.browser-toggle-label { text-align:left; }
.browser-toggle-icon { width:28px; height:28px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#edf6e8; color:#3c7b33; transition:transform .2s ease; }
.browser-toggle::after { content:none; }
.browser-toggle.open .browser-toggle-icon { transform: rotate(180deg); }
#browserLoginPanel { padding-top: 6px; }
@media (max-width: 720px) {
  .install-btn { width: 100%; }
  .topbar-logo { width: 38px; height: 38px; }
}


.app-opened-hint {
  margin: 0 0 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(135deg, #eaf7e4, #f8fcf5);
  border: 1px solid var(--border);
  color: var(--primary-dark);
  font-weight: 700;
  text-align: center;
}
.browser-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: #fff;
  color: #24422a;
  font-weight: 700;
  cursor: pointer;
  margin-bottom: 12px;
}
.browser-toggle.open .browser-toggle-icon {
  transform: rotate(180deg);
}
.browser-toggle-icon {
  transition: transform .2s ease;
}
.install-btn[disabled] {
  opacity: .75;
  cursor: not-allowed;
}
.install-app-box-premium .brand-mark img,
.brand-head .brand-mark img,
.topbar-logo {
  object-fit: contain;
}

.topbar-logo, .logo-plain { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }
.dashboard-header-simple { padding-bottom: 0; }
.dashboard-title-main h1 { font-size: 28px; margin: 0; }
.dashboard-clean .content-card, .dashboard-clean .module-card { border-radius: 22px; }
.simple-title .title-inline { display:flex; align-items:center; gap:12px; }
.simple-title .title-inline h3, .dashboard-mini-card h3 { margin:0; }
.dashboard-lead-card .push-card { justify-content:flex-start; }
.dashboard-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.dashboard-mini-card { min-height: 102px; display:flex; align-items:center; justify-content:flex-start; padding: 18px; }
.dashboard-mini-card::after { display:none; }
.dashboard-mini-card .title-inline { display:flex; align-items:center; gap:12px; }
.dashboard-mini-card p { display:none; }
.dashboard-focus-card .focus-inline-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.dashboard-focus-card .mini-card.compact { min-height: 92px; align-items:center; }
.profile-actions-row { display:flex; gap:12px; flex-wrap:wrap; }
.nav-count { position:absolute; top:4px; right:14px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:#ef4444; color:#fff; font-size:10px; line-height:18px; font-weight:700; text-align:center; }
.bottom-nav { grid-template-columns: repeat(6, minmax(0,1fr)); gap:4px; padding:8px 6px calc(8px + env(safe-area-inset-bottom)); }
.bottom-nav a { position:relative; padding:6px 2px; font-size:10px; }
.bottom-nav .icon-badge { width:30px; height:30px; font-size:16px; }
.bottom-nav a span:last-child { font-size:10px; }
@media (max-width: 720px) {
  .dashboard-card-grid, .dashboard-focus-card .focus-inline-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-mini-card { min-height: 96px; }
}
