/* ═══ EMPTY STATE & TOAST ═══ */
.empty{text-align:center;padding:48px 20px;color:var(--text-muted)}
.empty-icon{font-size:36px;opacity:0.3;margin-bottom:10px}
.empty-text{font-size:14px}

/* TOAST */
.toast{position:fixed;bottom:calc(var(--nav-h) + var(--safe-bottom) + 12px);left:16px;right:16px;background:var(--earth);color:var(--white);padding:14px 18px;border-radius:10px;font-size:13px;z-index:200;transform:translateY(20px);opacity:0;transition:all 0.3s;text-align:center;pointer-events:none}
.toast.show{transform:translateY(0);opacity:1}
#cal-tooltip{display:none;position:fixed;z-index:300;background:var(--white);border:1px solid var(--sand);border-radius:10px;padding:10px 14px;box-shadow:0 4px 20px rgba(0,0,0,0.13);width:200px;pointer-events:none}

/* ═══ LOADING SCREEN ═══ */
.loading-screen{position:fixed;inset:0;background:var(--cream);display:flex;align-items:center;justify-content:center;z-index:300;transition:opacity 0.4s;flex-direction:column;gap:6px}
.loading-screen.hidden{opacity:0;pointer-events:none}
.loading-logo{font-family:'Cormorant Garamond',serif;font-size:32px;color:var(--earth)}
.loading-logo span{color:var(--hay);font-style:italic}
.loading-barn{font-size:12px;color:var(--text-muted);letter-spacing:0.06em}

/* ═══ WEATHER CARD ═══ */
.weather-card{background:var(--white);border-radius:10px;border:1px solid var(--sand);padding:14px 16px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}
.weather-left{display:flex;align-items:center;gap:12px}
.weather-icon{font-size:28px}
.weather-temp{font-family:'Cormorant Garamond',serif;font-size:32px;color:var(--earth);line-height:1}
.weather-cond{font-size:12px;color:var(--text-muted);margin-top:2px}
.weather-forecast{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}
.weather-day{text-align:center;flex-shrink:0}
.weather-day-name{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.06em}
.weather-day-high{font-size:13px;font-weight:500;color:var(--earth);margin-top:2px}
.weather-day-rain{font-size:10px;color:#0c447c;margin-top:1px}

/* ═══ LUNGE REQUESTS ═══ */
.lunge-request-btn{width:100%;padding:12px;border-radius:8px;border:none;background:#f0e8ff;color:#5b2d8e;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;transition:all 0.15s}
.lunge-request-btn:active{background:#e0d0ff}
.lunge-request-btn.requested{background:#e8f4ed;color:#2d6a4f}
.lunge-badge{display:inline-block;font-size:10px;padding:2px 8px;border-radius:10px;font-weight:500}
.lunge-badge.pending{background:#f0e8ff;color:#5b2d8e}
.lunge-badge.accepted{background:#e8f4ed;color:#2d6a4f}
.lunge-badge.declined{background:#fdecea;color:#3a3a3a}
.request-card{background:var(--white);border-radius:10px;border:1px solid var(--sand);padding:14px 16px;margin-bottom:10px}
.request-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.request-card-name{font-size:14px;font-weight:500;color:var(--earth)}
.request-card-meta{font-size:12px;color:var(--text-muted);margin-top:2px}
.request-actions{display:flex;gap:8px;margin-top:10px}

/* ═══ SEARCH DROPDOWN ═══ */
.search-dropdown-wrap{position:relative}
.search-btn{background:none;border:1px solid var(--sand);border-radius:8px;padding:6px 10px;font-size:13px;color:var(--earth);cursor:pointer;display:flex;align-items:center;gap:6px;font-family:'DM Sans',sans-serif}
.search-btn:active{background:var(--cream-dark)}
.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:220px;background:var(--white);border:1px solid var(--sand);border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,0.12);z-index:200;overflow:hidden;display:none}
.search-dropdown.open{display:block}
.search-dropdown-section{padding:10px 14px 8px;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--cream-dark);user-select:none}
.search-dropdown-section:active{background:var(--cream-dark)}
.search-dropdown-section-arrow{font-size:10px;transition:transform 0.2s}
.search-dropdown-section-body{overflow:hidden;transition:max-height 0.25s ease}
.search-dropdown-section-body.collapsed{max-height:0!important}
.search-dropdown-item{padding:10px 14px;font-size:14px;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--cream-dark)}
.search-dropdown-item:last-child{border-bottom:none}
.search-dropdown-item:active{background:var(--cream-dark)}
.search-dropdown-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}
.search-dropdown-sub{font-size:11px;color:var(--text-muted);margin-top:1px}

/* ═══ SECTION LABEL ═══ */
.section-label{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;margin-top:4px}

/* ═══ TRAINER AVAILABILITY INLINE ═══ */
.trainer-avail-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.trainer-chip{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px}
.trainer-chip.available{background:#e8f4ed;color:#2d6a4f}
.trainer-chip.unavailable{background:var(--cream-dark);color:var(--text-muted)}
.trainer-chip-dot{width:7px;height:7px;border-radius:50%}

/* ═══════════════════════════════════════════
   APPLE-SLEEK UI (2026 redesign)
   ═══════════════════════════════════════════ */

/* ── Top header bar ── */
.sm-top{display:flex;align-items:flex-end;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 8px) 20px 10px;flex-shrink:0}
.sm-top-meta{font-size:13px;color:var(--text-muted);letter-spacing:-0.08px;font-weight:500}
.sm-top-barn{font-size:10px;color:var(--text-faint);letter-spacing:0.08em;text-transform:uppercase;margin-top:2px}
.sm-top-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--hay) 0%,var(--hay-light) 100%);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--earth);box-shadow:0 1px 2px rgba(0,0,0,0.08);flex-shrink:0}

/* ── Large title ── */
.sm-large-title{padding:4px 20px 8px}
.sm-large-title h1{font-family:var(--serif);font-size:38px;line-height:1.05;font-weight:500;color:var(--earth);margin:0;letter-spacing:-0.02em}
.sm-large-title h1 em{color:var(--hay-dark);font-style:italic;font-weight:500}
.sm-large-title .sub{font-size:14px;color:var(--text-muted);margin-top:4px;letter-spacing:-0.08px}

/* ── Eyebrow label ── */
.sm-eyebrow{font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}

/* ── Cards ── */
.sm-card{background:var(--paper);border-radius:18px;padding:16px 18px;margin:0 16px 12px;box-shadow:0 1px 0 rgba(0,0,0,0.02),0 4px 16px rgba(60,40,20,0.04)}
.sm-card.flush{padding:0;overflow:hidden}

/* ── "Up Next" hero card ── */
.sm-hero{margin:0 16px 14px;background:var(--primary);border-radius:22px;padding:18px 20px 20px;color:#fff;position:relative;overflow:hidden;box-shadow:0 8px 24px rgba(160,50,40,0.28)}
.sm-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 80% at 100% 0%,rgba(200,169,110,0.22) 0%,transparent 60%);pointer-events:none}
.sm-hero-eyebrow{font-size:11px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--hay);margin-bottom:6px}
.sm-hero-name{font-family:var(--serif);font-size:34px;line-height:1;font-weight:500;letter-spacing:-0.01em}
.sm-hero-meta{font-size:14px;color:rgba(255,255,255,0.72);margin-top:8px;letter-spacing:-0.08px}
.sm-hero-time{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--hay);margin-top:14px;letter-spacing:-0.08px}

/* ── Schedule list rows ── */
.sm-sched-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-top:0.5px solid var(--hair)}
.sm-sched-row:first-child{border-top:none}
.sm-sched-done{opacity:0.45}
.sm-sched-time{width:50px;flex-shrink:0;font-size:13px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--earth);letter-spacing:-0.08px}
.sm-sched-time .ampm{font-size:10px;font-weight:500;color:var(--text-muted);margin-left:1px}
.sm-sched-rail{width:3px;align-self:stretch;border-radius:2px;flex-shrink:0;min-height:20px}
.sm-sched-body{flex:1;min-width:0}
.sm-sched-title{font-size:15px;font-weight:500;color:var(--text);letter-spacing:-0.24px}
.sm-sched-meta{font-size:13px;color:var(--text-muted);margin-top:2px;letter-spacing:-0.08px}
.sm-sched-notes{font-size:12px;color:var(--text);background:rgba(200,169,110,0.12);border-radius:6px;padding:5px 8px;margin-top:6px;line-height:1.4}
.sm-sched-empty{padding:16px 18px;font-size:13px;color:var(--text-muted);font-style:italic}

/* ── Booking-type badges ── */
.sm-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:0.02em;padding:3px 8px;border-radius:8px;background:var(--ios-fill);color:var(--text-mid);flex-shrink:0}
.sm-badge.lesson{background:#e8f0e0;color:#3b6d11}
.sm-badge.arena{background:#e8dcc8;color:#6b4c35}
.sm-badge.vet{background:#fdecea;color:#8b2020}
.sm-badge.farrier{background:#e8f4fd;color:#0c447c}
.sm-badge.lunge{background:#f0e8ff;color:#5b2d8e}
.sm-badge.turnout{background:#e0f4e8;color:#1a5c35}
.sm-badge.competition{background:#fdf0e0;color:#633806}

/* ── Weather card (Apple-sleek) ── */
.sm-weather{display:flex;align-items:center;gap:14px;padding:14px 18px}
.sm-weather-icon{font-size:28px;line-height:1;flex-shrink:0}
.sm-weather-temp{font-family:var(--serif);font-size:36px;font-weight:500;line-height:1;color:var(--earth)}
.sm-weather-sub{font-size:13px;color:var(--text-muted);margin-top:2px;letter-spacing:-0.08px}
.sm-weather-days{display:flex;gap:14px;flex:1;justify-content:flex-end}
.sm-weather-day{display:flex;flex-direction:column;align-items:center;gap:3px}
.sm-weather-day .d{font-size:10px;font-weight:600;letter-spacing:0.06em;color:var(--text-muted);text-transform:uppercase}
.sm-weather-day .i{font-size:14px;line-height:1}
.sm-weather-day .t{font-size:13px;font-weight:500;color:var(--earth);font-variant-numeric:tabular-nums}

/* ── Section header row (eyebrow + see-all) ── */
.rh-sched-group{margin-bottom:4px}
.rh-sched-group-head{display:flex;align-items:center;justify-content:space-between;padding:4px 20px 10px}
.rh-see-all-btn{background:none;border:none;color:var(--earth-light);font-size:13px;font-weight:500;letter-spacing:-0.08px;cursor:pointer;font-family:inherit}

/* ── Stats bar (staff home) ── */
.sm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 16px 12px}
.sm-stat{background:var(--paper);border-radius:14px;padding:12px;box-shadow:0 1px 0 rgba(0,0,0,0.02),0 2px 8px rgba(60,40,20,0.03)}
.sm-stat .v{font-family:var(--serif);font-size:28px;line-height:1;color:var(--earth);font-weight:500}
.sm-stat .l{font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);margin-top:6px;font-weight:600}
.sm-stat-alert .v{color:var(--warn)}

/* ── Child / rider person rows ── */
.sm-person-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-top:0.5px solid var(--hair)}
.sm-person-row:first-child{border-top:none}
.sm-person-avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--hay) 0%,var(--hay-light) 100%);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:18px;font-weight:500;color:var(--earth)}
.sm-person-name{font-size:16px;font-weight:500;color:var(--text);letter-spacing:-0.24px}
.sm-person-next{font-size:13px;color:var(--earth-light);margin-top:1px;font-weight:500;letter-spacing:-0.08px}
.sm-person-meta{font-size:13px;color:var(--text-muted);margin-top:1px;letter-spacing:-0.08px}
.sm-chevron{color:var(--text-faint);flex-shrink:0;font-size:18px;font-weight:300}

/* ── Trainer status chips ── */
.sm-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;background:var(--paper);border:0.5px solid var(--hair-2);border-radius:999px;padding:6px 12px;color:var(--text-mid);box-shadow:0 1px 2px rgba(0,0,0,0.02)}
.sm-chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.sm-chip.on .sm-chip-dot{background:var(--success)}
.sm-chip.on{color:var(--text-mid)}
.sm-chip.off{color:var(--text-faint)}
.sm-chip.off .sm-chip-dot{background:var(--text-faint)}

/* ── Primary CTA button ── */
.sm-cta{display:block;width:calc(100% - 32px);margin:8px 16px 20px;padding:16px;background:var(--earth);color:#fff;border:none;border-radius:14px;font-family:var(--sf);font-size:16px;font-weight:600;letter-spacing:-0.24px;cursor:pointer}
.sm-cta:active{opacity:0.85}

/* ── iOS-style glass tab bar ── */
.sm-tabs{position:absolute;left:0;right:0;bottom:0;height:calc(72px + var(--safe-bottom));background:rgba(253,250,245,0.82);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border-top:0.5px solid var(--hair-2);display:flex;align-items:flex-start;padding:6px 8px 0;z-index:50}
.sm-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;color:var(--text-faint);font-size:10px;font-weight:500;letter-spacing:0.02em;background:none;border:none;cursor:pointer;font-family:var(--sf)}
.sm-tab.active{color:var(--earth)}
.sm-tab svg{width:24px;height:24px}

/* ═══ Header with inline weather (rider/parent home) ═══ */
.sm-large-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.sm-large-title-text{flex:1;min-width:0}
.sm-header-weather{display:flex;align-items:center;gap:10px;flex-shrink:0;padding-top:4px}
.sm-header-weather-icon{font-size:30px;line-height:1}
.sm-header-weather-temp{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1;color:var(--earth)}
.sm-header-weather-sub{font-size:11px;color:var(--text-muted);margin-top:2px;letter-spacing:-0.08px}

/* ═══ Trainer-on-duty card (replaces .rh-info-tile) ═══ */
.rh-trainer-card{display:flex;align-items:center;gap:12px}
.rh-trainer-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}
.rh-trainer-body{flex:1;min-width:0}
.rh-trainer-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-trainer-hours{font-size:12px;color:var(--text-muted);margin-top:2px}
