/* Travespert Team dashboard (/team/, [travespert_team_dashboard]).
   2026-10-18 v2: Cleopatra-style app shell (github.com/moesaid/cleopatra, MIT) with the main website's
   amber accent and pill buttons. Trips and partners open in a slide-over panel (.tv-dr) instead of an
   accordion. The section's .tv-td-body itself becomes the fixed panel, so all existing JS keeps working.
   Tokens are tuned on body.tv-team-page only; the public site is untouched. */

body.tv-team-page {
  --tv-ink: #1c1c1c;
  --tv-body: #333333;
  --tv-muted: #5f5f5f;
  --tv-muted-soft: #8c8c8c;
  --tv-canvas: #ffffff;
  --tv-surface: #f7f7f5;
  --tv-hairline: #e3e3df;
  --tv-hairline-soft: #ededea;
  --tv-ok: #157347;
  --tv-ok-bg: #e9f7ef;
  --tv-no: #c62828;
  --tv-no-bg: #fdecec;
  --tv-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --tv-font-display: var(--tv-font);
  --tv-fs-h1: clamp(24px, 2.4vw, 30px);
  --tv-fs-h2: 20px;
  --tv-fs-lead: 16px;
  --tv-fs-body: 15px;
  --tv-fs-sm: 14px;
  --tv-fs-xs: 12.5px;
  --tv-ls-display: -0.02em;
  --tv-radius-xs: 6px;
  --tv-radius-sm: 10px;
  --tv-radius-md: 14px;
  --tv-radius-lg: 18px;
  --tv-shadow-card: 0 1px 2px rgba(28, 28, 28, .05), 0 1px 1px rgba(28, 28, 28, .03);
  --tv-shadow-float: 0 18px 50px rgba(28, 28, 28, .18);
  --tv-cl-side-w: 268px;
  --tv-cl-top-h: 64px;
  --tv-cl-bar: 0px;
  /* soft accent pairs (icon tiles) */
  --ac-amber: #8f6300; --ac-amber-bg: #fff4d6;
  --ac-green: #157347; --ac-green-bg: #e6f6ec;
  --ac-blue: #1d5fd1;  --ac-blue-bg: #e8f0fe;
  --ac-violet: #6d3fd1; --ac-violet-bg: #f0eafd;
  --ac-rose: #c2410c;  --ac-rose-bg: #fff0e6;
  background: var(--tv-surface);
  font-family: var(--tv-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.tv-team-page.admin-bar { --tv-cl-bar: 32px; }
@media (max-width: 782px) { body.tv-team-page.admin-bar { --tv-cl-bar: 46px; } }
html.tv-dr-lock, html.tv-dr-lock body { overflow: hidden; }

/* Hide the public site chrome: the dashboard is its own app */
body.tv-team-page #brx-header,
body.tv-team-page #brx-footer,
body.tv-team-page .tv-wa-fab,
body.tv-team-page #brx-content > h1 { display: none !important; }
body.tv-team-page #brx-content { width: 100%; max-width: none; margin: 0; padding: 0; }

.tv-td { color: var(--tv-body); font-family: var(--tv-font); font-size: var(--tv-fs-body); line-height: 1.5; }
.tv-td [hidden] { display: none !important; }
.tv-td button, .tv-td input, .tv-td select, .tv-td textarea { font-family: var(--tv-font); }
.tv-td a { text-decoration: none; }
.tv-cl-ic { width: 18px; height: 18px; flex: none; display: block; }

/* Icon tiles */
.tv-ico { width: 40px; height: 40px; flex: none; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--ac-amber-bg); color: var(--ac-amber); }
.tv-ico .tv-cl-ic { width: 20px; height: 20px; }
.tv-ico--green { background: var(--ac-green-bg); color: var(--ac-green); }
.tv-ico--blue { background: var(--ac-blue-bg); color: var(--ac-blue); }
.tv-ico--violet { background: var(--ac-violet-bg); color: var(--ac-violet); }
.tv-ico--rose { background: var(--ac-rose-bg); color: var(--ac-rose); }
.tv-ico--avatar { border-radius: 999px; font-size: 14px; font-weight: 700; letter-spacing: .02em; }

/* ---------------- Gate screen ---------------- */
.tv-td-gate { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 48px 16px; background: var(--tv-surface); font-family: var(--tv-font); box-sizing: border-box; }
.tv-td-gate__card { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-lg); box-shadow: var(--tv-shadow-card); padding: clamp(28px, 5vw, 40px); max-width: 420px; text-align: center; }
.tv-td-gate__ic { width: 56px; height: 56px; border-radius: 16px; background: var(--tv-primary-tint); color: var(--tv-primary-hover); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.tv-td-gate__ic svg { width: 28px; height: 28px; }
.tv-td-gate__card h1 { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; color: var(--tv-ink); margin: 0 0 8px; }
.tv-td-gate__card p { font-size: 15px; line-height: 1.6; color: var(--tv-muted); margin: 0 0 22px; }

/* ---------------- Buttons: the main website's pills ---------------- */
.tv-td .tv-btn, .tv-td-gate .tv-btn { height: 42px; padding: 0 22px; font-size: 14px; font-weight: 600; letter-spacing: .2px; border-radius: 999px; gap: 8px; white-space: nowrap; }
.tv-td .tv-btn--primary, .tv-td-gate .tv-btn--primary { background: var(--tv-primary); color: var(--tv-on-primary); box-shadow: 0 4px 14px rgba(255, 176, 0, .30); }
.tv-td .tv-btn--primary:hover, .tv-td-gate .tv-btn--primary:hover { background: var(--tv-primary-strong); color: #fff; transform: translateY(-1px); }
.tv-td .tv-btn--primary:disabled { background: var(--tv-primary-tint); color: var(--tv-muted-soft); box-shadow: none; transform: none; }
.tv-td .tv-btn--secondary, .tv-btn-ghost { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 42px; padding: 0 20px; border-radius: 999px; border: 1px solid var(--tv-ink); background: var(--tv-canvas); color: var(--tv-ink); font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; box-sizing: border-box; transition: background var(--tv-transition); }
.tv-td .tv-btn--secondary:hover, .tv-btn-ghost:hover { background: var(--tv-surface); }
@media (max-width: 767px) { .tv-td .tv-btn { width: auto; } }

/* ---------------- App shell ---------------- */
.tv-cl { min-height: calc(100vh - var(--tv-cl-bar)); }
.tv-cl-side { position: fixed; top: var(--tv-cl-bar); left: 0; bottom: 0; z-index: 60; width: var(--tv-cl-side-w); background: var(--tv-canvas); border-right: 1px solid var(--tv-hairline); display: flex; flex-direction: column; box-sizing: border-box; }
.tv-cl-brand { height: var(--tv-cl-top-h); flex: none; display: flex; align-items: center; gap: 11px; padding: 0 20px; border-bottom: 1px solid var(--tv-hairline); box-sizing: border-box; }
.tv-cl-brand__mark { width: 34px; height: 34px; border-radius: 10px; background: var(--tv-primary); color: var(--tv-ink); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 17px; flex: none; box-shadow: 0 4px 12px rgba(255, 176, 0, .35); }
.tv-cl-brand__name { font-size: 16px; font-weight: 700; color: var(--tv-ink); letter-spacing: -0.01em; }
.tv-cl-brand__name em { font-style: normal; color: var(--tv-primary-hover); font-weight: 600; }
.tv-cl-navlist { flex: 1 1 auto; overflow-y: auto; padding: 14px 12px 16px; display: flex; flex-direction: column; gap: 3px; }
.tv-cl-cat { margin: 18px 10px 6px; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tv-muted-soft); }
.tv-cl-cat:first-child { margin-top: 4px; }
.tv-cl-navlist .tv-td-tab,
.tv-cl-link { position: relative; width: 100%; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 12px; margin: 0; border: none; border-radius: 12px; background: transparent; color: var(--tv-body); font-size: 15px; font-weight: 500; line-height: 1.3; text-align: left; justify-content: flex-start; cursor: pointer; box-sizing: border-box; transition: background var(--tv-transition), color var(--tv-transition); }
.tv-cl-navlist .tv-td-tab span:not(.tv-td-tab__count),
.tv-cl-link span { flex: 1 1 auto; min-width: 0; }
.tv-cl-navlist .tv-td-tab .tv-cl-ic,
.tv-cl-link .tv-cl-ic { width: 20px; height: 20px; color: var(--tv-muted); }
.tv-cl-navlist .tv-td-tab:hover,
.tv-cl-link:hover { background: var(--tv-surface); color: var(--tv-ink); }
.tv-cl-navlist .tv-td-tab.is-active { background: var(--tv-primary-tint); color: var(--tv-ink); font-weight: 650; }
.tv-cl-navlist .tv-td-tab.is-active::before { content: ''; position: absolute; left: -12px; top: 10px; bottom: 10px; width: 4px; border-radius: 0 4px 4px 0; background: var(--tv-primary); }
.tv-cl-navlist .tv-td-tab.is-active .tv-cl-ic { color: var(--tv-primary-hover); }
.tv-td-tab__count { min-width: 22px; height: 22px; padding: 0 7px; border-radius: 999px; background: var(--tv-no); color: #fff; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; flex: none; }
.tv-cl-me { flex: none; display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-top: 1px solid var(--tv-hairline); }
.tv-cl-avatar { width: 38px; height: 38px; border-radius: 999px; background: var(--tv-primary-tint); color: var(--tv-primary-hover); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; letter-spacing: .02em; flex: none; box-shadow: inset 0 0 0 1px rgba(143, 99, 0, .15); }
.tv-cl-avatar--sm { width: 36px; height: 36px; }
.tv-cl-me__txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.tv-cl-me__txt strong { font-size: 14px; font-weight: 600; color: var(--tv-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-cl-me__txt span { font-size: 12.5px; color: var(--tv-muted); }
.tv-cl-logout, .tv-cl-iconbtn, .tv-cl-menu, .tv-dr-close { width: 40px; height: 40px; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid transparent; background: transparent; color: var(--tv-muted); cursor: pointer; padding: 0; transition: background var(--tv-transition), color var(--tv-transition), border-color var(--tv-transition); }
.tv-cl-logout:hover, .tv-cl-iconbtn:hover, .tv-cl-menu:hover, .tv-dr-close:hover { background: var(--tv-surface); color: var(--tv-ink); border-color: var(--tv-hairline); }
.tv-cl-backdrop, .tv-dr-backdrop { display: none; }

.tv-cl-body { margin-left: var(--tv-cl-side-w); min-width: 0; }
.tv-cl-top { position: sticky; top: var(--tv-cl-bar); z-index: 40; height: var(--tv-cl-top-h); display: flex; align-items: center; gap: 12px; padding: 0 32px; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--tv-hairline); box-sizing: border-box; }
.tv-cl-menu { display: none; color: var(--tv-ink); }
.tv-cl-crumb { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 15px; color: var(--tv-muted); }
.tv-cl-crumb__cur { color: var(--tv-ink); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-cl-top__right { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.tv-cl-content { padding: 30px 32px 90px; max-width: 1280px; box-sizing: border-box; }

/* Page header */
.tv-cl-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.tv-cl-head__row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.tv-cl-h1 { margin: 0; font-size: var(--tv-fs-h1); font-weight: 750; letter-spacing: -0.025em; line-height: 1.2; color: var(--tv-ink); }
.tv-cl-pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px; border-radius: 999px; background: var(--tv-primary-tint); color: var(--tv-primary-hover); font-size: 12.5px; font-weight: 600; }
.tv-cl-pill--live { background: var(--ac-green-bg); color: var(--ac-green); }
.tv-cl-pill--live::before { content: ''; width: 7px; height: 7px; border-radius: 999px; background: #22c55e; box-shadow: 0 0 0 3px rgba(34, 197, 94, .2); }
.tv-cl-pill--alert { background: var(--tv-no-bg); color: var(--tv-no); }
.tv-cl-sub { margin: 0; font-size: 15px; line-height: 1.6; color: var(--tv-muted); max-width: 720px; }

/* Stat cards */
.tv-cl-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.tv-cl-stat { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); padding: 18px 20px; box-shadow: var(--tv-shadow-card); display: flex; flex-direction: column; gap: 4px; }
.tv-cl-stat__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.tv-cl-stat__top span { font-size: 14px; font-weight: 600; color: var(--tv-muted); }
.tv-cl-stat__top i { width: 40px; height: 40px; border-radius: 12px; background: var(--ac-amber-bg); color: var(--ac-amber); display: inline-flex; align-items: center; justify-content: center; }
.tv-cl-stat:nth-child(2) .tv-cl-stat__top i { background: var(--ac-blue-bg); color: var(--ac-blue); }
.tv-cl-stat:nth-child(3) .tv-cl-stat__top i { background: var(--ac-green-bg); color: var(--ac-green); }
.tv-cl-stat:nth-child(4) .tv-cl-stat__top i { background: var(--ac-violet-bg); color: var(--ac-violet); }
.tv-cl-stat__top i .tv-cl-ic { width: 20px; height: 20px; }
.tv-cl-stat strong { font-size: 28px; font-weight: 750; letter-spacing: -0.02em; line-height: 1.15; color: var(--tv-ink); }
.tv-cl-stat em { font-style: normal; font-size: 13px; color: var(--tv-muted); }
.tv-cl-stat em b { font-weight: 700; color: var(--tv-ok); }
.tv-cl-stat em b.is-no { color: var(--tv-no); }

/* ---------------- Toolbar ---------------- */
.tv-td-toolbar { position: sticky; top: calc(var(--tv-cl-bar) + var(--tv-cl-top-h)); z-index: 20; margin: 0 -32px 14px; padding: 12px 32px; background: rgba(247, 247, 245, .94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.tv-td-toolbar__wrap { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.tv-td-search { position: relative; flex: 1 1 260px; min-width: 200px; max-width: 380px; display: flex; align-items: center; }
.tv-td-search svg { position: absolute; left: 15px; width: 18px; height: 18px; color: var(--tv-muted); pointer-events: none; }
.tv-td-searchinput { width: 100%; height: 44px; padding: 0 16px 0 42px; font-size: 15px; color: var(--tv-ink); background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: 999px; box-sizing: border-box; }
.tv-td-searchinput::placeholder { color: var(--tv-muted-soft); }
.tv-td-searchinput:focus { outline: none; border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .22); }
.tv-td-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.tv-td-chip { height: 40px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--tv-hairline); background: var(--tv-canvas); color: var(--tv-body); font-size: 14px; font-weight: 600; cursor: pointer; transition: all var(--tv-transition); }
.tv-td-chip:hover { border-color: var(--tv-primary); background: var(--tv-primary-tint); }
.tv-td-chip.is-active { background: var(--tv-primary); border-color: var(--tv-primary); color: var(--tv-on-primary); }
.tv-td-bulk { display: none; }

/* ---------------- List rows (trips + partners) ---------------- */
.tv-td-main { display: grid; gap: 10px; }
.tv-td-trip, .tv-tp { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); box-shadow: var(--tv-shadow-card); transition: border-color var(--tv-transition), box-shadow var(--tv-transition); }
.tv-td-trip:hover, .tv-tp:hover { border-color: #d3d0c6; box-shadow: 0 6px 18px rgba(28, 28, 28, .07); }
.tv-td-trip.is-open, .tv-tp.is-open { border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .18); }
.tv-td-trip.is-hidden { display: none; }
.tv-td-trip__head, .tv-tp__head { width: 100%; display: flex; align-items: center; gap: 16px; padding: 14px 18px; background: none; border: none; border-radius: inherit; text-align: left; cursor: pointer; justify-content: flex-start; color: inherit; }
.tv-td-chev { display: none !important; }
.tv-td-trip__title { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.tv-td-name { font-size: 16px; font-weight: 650; color: var(--tv-ink); line-height: 1.35; }
.tv-td-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tv-td-badge { font-size: 12.5px; font-weight: 600; padding: 2px 10px; border-radius: 999px; line-height: 1.6; }
.tv-td-badge--type { background: var(--tv-surface); color: var(--tv-body); box-shadow: inset 0 0 0 1px var(--tv-hairline); }
.tv-td-badge--price { background: var(--tv-primary-tint); color: var(--tv-primary-hover); }
.tv-td-badge--draft { background: #fff3e0; color: #b45309; }
.tv-td-badge--ok { background: var(--tv-ok-bg); color: var(--tv-ok); }
.tv-td-meta { flex: none; display: flex; flex-direction: column; gap: 2px; min-width: 112px; }
.tv-td-meta__lab { font-size: 12px; font-weight: 600; color: var(--tv-muted-soft); text-transform: uppercase; letter-spacing: .06em; }
.tv-td-meta__val { font-size: 14.5px; font-weight: 600; color: var(--tv-ink); white-space: nowrap; }
.tv-td-meta__val.is-none { color: var(--tv-muted-soft); font-weight: 500; }
.tv-td-meta .tv-td-badge--price { align-self: flex-start; font-size: 14px; padding: 2px 10px; }
.tv-td-go { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 16px; border-radius: 999px; background: var(--tv-surface); border: 1px solid var(--tv-hairline); color: var(--tv-ink); font-size: 14px; font-weight: 600; transition: all var(--tv-transition); }
.tv-td-go .tv-cl-ic { width: 16px; height: 16px; }
.tv-td-trip__head:hover .tv-td-go, .tv-tp__head:hover .tv-td-go { background: var(--tv-primary); border-color: var(--tv-primary); }
/* partner rows (markup from team-affiliates.php) */
.tv-tp__head .tv-td-trip__summary { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; }
.tv-tp__head .tv-td-count { font-size: 15px; font-weight: 650; color: var(--tv-ink); white-space: nowrap; }
.tv-tp__head .tv-td-next { font-size: 13px; color: var(--tv-muted); white-space: nowrap; }
.tv-tp__head .tv-td-badge--price { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; }
.tv-tp-due { background: var(--tv-no-bg); color: var(--tv-no); }

/* ---------------- Slide-over panel (the open section's .tv-td-body) ---------------- */
.tv-td-trip.is-open > .tv-td-body,
.tv-tp.is-open > .tv-td-body { position: fixed; z-index: 90; top: var(--tv-cl-bar); right: 0; bottom: 0; width: min(640px, 100vw); box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain; background: var(--tv-surface); border-left: 1px solid var(--tv-hairline); box-shadow: var(--tv-shadow-float); padding: 0 26px 40px; animation: tv-dr-in 220ms cubic-bezier(.2, .8, .2, 1); }
@keyframes tv-dr-in { from { transform: translateX(32px); opacity: 0; } to { transform: none; opacity: 1; } }
.tv-cl.has-drawer .tv-dr-backdrop { display: block; position: fixed; inset: 0; z-index: 85; background: rgba(28, 28, 28, .38); animation: tv-fade 200ms ease; }
@keyframes tv-fade { from { opacity: 0; } to { opacity: 1; } }
.tv-dr-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; gap: 14px; margin: 0 -26px 18px; padding: 18px 26px 16px; background: var(--tv-canvas); border-bottom: 1px solid var(--tv-hairline); }
.tv-dr-head__txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.tv-dr-kicker { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tv-primary-hover); }
.tv-dr-title { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; color: var(--tv-ink); }
.tv-dr-close { border-color: var(--tv-hairline); color: var(--tv-ink); }
.tv-dr-close .tv-cl-ic { width: 20px; height: 20px; }

/* Panel blocks */
.tv-td-body > .tv-td-price, .tv-td-body > .tv-td-list, .tv-td-body > .tv-td-add { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); padding: 16px 18px; }
.tv-td-sec { display: flex; align-items: center; gap: 10px; margin: 22px 0 10px; font-size: 15px; font-weight: 700; color: var(--tv-ink); }
.tv-td-sec .tv-ico { width: 32px; height: 32px; border-radius: 10px; }
.tv-td-sec .tv-ico .tv-cl-ic { width: 17px; height: 17px; }
.tv-td-sec:first-of-type { margin-top: 4px; }
.tv-td-view { display: inline-flex; align-items: center; gap: 8px; margin: 14px 0 0; height: 38px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--tv-hairline); background: var(--tv-canvas); font-size: 14px; font-weight: 600; color: var(--tv-ink); }
.tv-td-view .tv-cl-ic { width: 16px; height: 16px; color: var(--tv-primary-hover); }
.tv-td-view:hover { border-color: var(--tv-primary); background: var(--tv-primary-tint); }

/* Price */
.tv-td-price { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 12px; margin: 0; }
.tv-td-price__lab { font-size: 14px; font-weight: 650; color: var(--tv-ink); flex: 1 1 100%; }
.tv-td-price__cur { width: 42px; height: 42px; border-radius: 12px; background: var(--ac-amber-bg); color: var(--ac-amber); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; }
.tv-td-priceinput { width: 140px; height: 42px; text-align: left; font-size: 18px; font-weight: 700; color: var(--tv-ink); border: 1px solid var(--tv-hairline); border-radius: 12px; background: var(--tv-canvas); padding: 0 14px; -moz-appearance: textfield; box-sizing: border-box; }
.tv-td-priceinput:focus { outline: none; border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .22); }
.tv-td-priceinput::-webkit-outer-spin-button, .tv-td-priceinput::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tv-td-pricenote { flex: 1 1 100%; font-size: 13px; color: var(--tv-muted); }

/* Departures */
.tv-td-list { margin: 0; display: grid; gap: 10px; }
.tv-td-empty { color: var(--tv-muted); font-size: 14.5px; margin: 4px 0; }
.tv-td-month { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tv-primary-hover); margin: 6px 0 -2px; }
.tv-td-month:first-child { margin-top: 0; }
.tv-td-dep { display: grid; grid-template-columns: auto auto 1fr auto; grid-template-areas: "date date date rm" "cap slots booked full"; align-items: center; gap: 12px 16px; padding: 12px 14px; border: 1px solid var(--tv-hairline-soft); border-radius: 12px; background: var(--tv-surface); }
.tv-td-dep__date { grid-area: date; display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 650; color: var(--tv-ink); }
.tv-td-dep__date::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: #22c55e; flex: none; }
.tv-td-dep.is-full .tv-td-dep__date::before { background: var(--tv-no); }
.tv-td-dep.is-past .tv-td-dep__date::before { background: var(--tv-muted-soft); }
.tv-td-tag { font-size: 11.5px; font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.tv-td-tag--past { background: var(--tv-hairline-soft); color: var(--tv-muted); }
.tv-td-dep.is-past { opacity: .65; }
.tv-td-cap { grid-area: cap; display: inline-flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: var(--tv-muted); text-transform: uppercase; letter-spacing: .05em; }
.tv-td-dep__slots { grid-area: slots; display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.tv-td-booked { grid-area: booked; justify-self: start; font-size: 13px; font-weight: 600; color: var(--ac-blue); background: var(--ac-blue-bg); border-radius: 999px; padding: 4px 11px; white-space: nowrap; }
.tv-td-fulltog { grid-area: full; }
.tv-td-remove { grid-area: rm; }
.tv-td-step { width: 36px; height: 36px; border-radius: 999px; border: 1px solid var(--tv-hairline); background: var(--tv-canvas); color: var(--tv-ink); font-size: 18px; font-weight: 600; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; transition: all var(--tv-transition); }
.tv-td-step:hover { background: var(--tv-primary); border-color: var(--tv-primary); }
.tv-td-seats, .tv-td-capinput { width: 60px; height: 36px; text-align: center; font-size: 16px; font-weight: 700; color: var(--tv-ink); border: 1px solid var(--tv-hairline); border-radius: 10px; background: var(--tv-canvas); -moz-appearance: textfield; box-sizing: border-box; padding: 0; }
.tv-td-seats:focus, .tv-td-capinput:focus { outline: none; border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .22); }
.tv-td-seats::-webkit-outer-spin-button, .tv-td-seats::-webkit-inner-spin-button,
.tv-td-capinput::-webkit-outer-spin-button, .tv-td-capinput::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tv-td-slotlab { font-size: 13px; color: var(--tv-muted); }
/* Slots Full as a switch */
.tv-td-fulltog { display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; color: var(--tv-body); cursor: pointer; white-space: nowrap; }
.tv-td-fulltog input { -webkit-appearance: none; appearance: none; position: relative; width: 40px; height: 24px; margin: 0; border-radius: 999px; background: #d6d4cc; cursor: pointer; transition: background var(--tv-transition); flex: none; }
.tv-td-fulltog input::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform var(--tv-transition); }
.tv-td-fulltog input:checked { background: var(--tv-no); }
.tv-td-fulltog input:checked::after { transform: translateX(16px); }
.tv-td-fulltog input:focus-visible { outline: 3px solid var(--tv-primary); outline-offset: 2px; }
.tv-td-dep.is-full .tv-td-dep__date { color: var(--tv-no); }
.tv-td-dep.is-full .tv-td-dep__slots { opacity: .5; }
.tv-td-remove { width: 36px; height: 36px; border-radius: 999px; border: 1px solid transparent; background: transparent; color: var(--tv-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; transition: all var(--tv-transition); }
.tv-td-remove:hover { border-color: #f5c2c2; color: var(--tv-no); background: var(--tv-no-bg); }
.tv-td-remove svg { width: 18px; height: 18px; }
.tv-td-pasttog { justify-self: start; margin: 6px 0 0; padding: 0; background: none; border: none; color: var(--tv-primary-hover); font-size: 14px; font-weight: 600; cursor: pointer; }
.tv-td-pasttog:hover { text-decoration: underline; }
.tv-td-past { display: grid; gap: 10px; }

/* Add departure */
.tv-td-add__row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.tv-td-add label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--tv-ink); }
.tv-td-add input { font-size: 15px; color: var(--tv-ink); border: 1px solid var(--tv-hairline); border-radius: 10px; background: var(--tv-canvas); height: 42px; padding: 0 12px; box-sizing: border-box; }
.tv-td-add input[type=number] { width: 96px; }
.tv-td-add input:focus { outline: none; border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .22); }
.tv-td-msg { margin: 12px 0 0; font-size: 14px; font-weight: 600; min-height: 1.2em; }
.tv-td-msg.is-ok, .tv-td-msg.is-err { position: sticky; bottom: 12px; display: inline-block; padding: 8px 14px; border-radius: 999px; box-shadow: var(--tv-shadow-float); }
.tv-td-msg.is-ok { color: var(--tv-ok); background: var(--tv-ok-bg); }
.tv-td-msg.is-err { color: var(--tv-no); background: var(--tv-no-bg); }
.tv-td-noresults { text-align: center; color: var(--tv-muted); padding: 30px; border: 1px dashed var(--tv-hairline); border-radius: var(--tv-radius-md); background: var(--tv-canvas); }

/* ---------------- Affiliates panel ---------------- */
.tv-ta-intro { margin: 10px 0 2px; }
.tv-ta-h2 { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 700; letter-spacing: -0.01em; color: var(--tv-ink); margin: 0 0 4px; }
.tv-ta-intro p, .tv-ta-note { font-size: 14px; color: var(--tv-muted); margin: 0; line-height: 1.6; }
.tv-ta-list { display: grid; gap: 12px; }
.tv-ta-card { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-left: 4px solid var(--tv-primary); border-radius: var(--tv-radius-md); box-shadow: var(--tv-shadow-card); padding: 18px 20px; }
.tv-ta-card.is-rejected { border-left-color: var(--tv-hairline); background: var(--tv-surface); }
.tv-ta-card__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.tv-ta-name { font-size: 16px; font-weight: 650; color: var(--tv-ink); margin: 0; line-height: 1.35; }
.tv-ta-meta { font-size: 13.5px; color: var(--tv-muted); margin: 3px 0 0; }
.tv-ta-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 24px; margin: 14px 0 0; }
.tv-ta-fields > div { min-width: 0; }
.tv-ta-fields dt { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tv-muted-soft); margin: 0 0 3px; }
.tv-ta-fields dd { margin: 0; font-size: 14.5px; color: var(--tv-body); overflow-wrap: anywhere; }
.tv-ta-fields a { color: var(--tv-primary-hover); font-weight: 500; }
.tv-ta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.tv-ta-reject, .tv-ta-reject-confirm, .tv-ta-reject-cancel { height: 42px; padding: 0 20px; border-radius: 999px; border: 1px solid var(--tv-hairline); background: var(--tv-canvas); color: var(--tv-body); font-size: 14px; font-weight: 600; cursor: pointer; }
.tv-ta-reject:hover, .tv-ta-reject-cancel:hover { background: var(--tv-surface); }
.tv-ta-reject:hover { border-color: var(--tv-no); color: var(--tv-no); }
.tv-ta-reject-confirm { border-color: var(--tv-no); background: var(--tv-no); color: #fff; }
.tv-ta-reject-confirm:hover { background: #a61f1f; }
.tv-ta-rejectbox { flex: 1 1 100%; display: grid; gap: 10px; }
.tv-ta-rejectbox label { font-size: 14px; font-weight: 600; color: var(--tv-ink); display: grid; gap: 6px; }
.tv-ta-reason { width: 100%; box-sizing: border-box; font-size: 15px; padding: 10px 12px; border: 1px solid var(--tv-hairline); border-radius: 10px; resize: vertical; }
.tv-ta-reason:focus { outline: none; border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .22); }
.tv-ta-rejectbtns { display: flex; gap: 8px; flex-wrap: wrap; }
.tv-ta button:disabled { opacity: .55; cursor: wait; }
.tv-ta-done { margin: 0; padding: 14px 18px; border-radius: var(--tv-radius-md); font-size: 14px; font-weight: 600; }
.tv-ta-done.is-ok { background: var(--tv-ok-bg); color: var(--tv-ok); }
.tv-ta-done.is-err { background: var(--tv-no-bg); color: var(--tv-no); }
.tv-ta-empty { margin: 0; padding: 26px 20px; text-align: center; background: var(--tv-canvas); border: 1px dashed var(--tv-hairline); border-radius: var(--tv-radius-md); color: var(--tv-muted); font-size: 14.5px; }
.tv-ta-rejected { margin-top: 4px; }
.tv-ta-rejected summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--tv-primary-hover); padding: 6px 0; }
.tv-ta-rejected .tv-ta-note { margin: 4px 0 12px; }

/* Partner tiles = stat cards with icons */
.tv-tp-tilewrap { margin-bottom: 10px; }
.tv-tp-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.tv-tp-tile { position: relative; background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); box-shadow: var(--tv-shadow-card); padding: 18px 20px 18px 74px; min-height: 92px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; gap: 3px; }
.tv-tp-tile::before { content: ''; position: absolute; left: 20px; top: 50%; width: 40px; height: 40px; margin-top: -20px; border-radius: 12px; background: var(--ac-amber-bg); }
.tv-tp-tile::after { content: ''; position: absolute; left: 30px; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: var(--ac-amber); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.tv-tp-tile:nth-child(1) { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.tv-tp-tile:nth-child(2) { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E"); }
.tv-tp-tile:nth-child(3) { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='20' height='14' rx='2'/%3E%3Cpath d='M16 13h.01M2 10h20M6 6V4h12v2'/%3E%3C/svg%3E"); }
.tv-tp-tile:nth-child(4) { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.tv-tp-tile:nth-child(5) { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpath d='M22 4 12 14.01l-3-3'/%3E%3C/svg%3E"); }
.tv-tp-tile:nth-child(2)::before { background: var(--ac-rose-bg); } .tv-tp-tile:nth-child(2)::after { background: var(--ac-rose); }
.tv-tp-tile:nth-child(4)::before { background: var(--ac-blue-bg); } .tv-tp-tile:nth-child(4)::after { background: var(--ac-blue); }
.tv-tp-tile:nth-child(5)::before { background: var(--ac-green-bg); } .tv-tp-tile:nth-child(5)::after { background: var(--ac-green); }
.tv-tp-tile span { font-size: 13.5px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--tv-muted); }
.tv-tp-tile strong { font-size: 24px; font-weight: 750; letter-spacing: -0.02em; color: var(--tv-ink); line-height: 1.2; }
.tv-tp-tile em { font-style: normal; font-size: 12.5px; color: var(--tv-muted); }
.tv-tp-tile.is-due { border-color: var(--tv-primary); background: #fffcf3; }
.tv-tp-tile.is-alert strong { color: var(--tv-no); }
.tv-tp-intro { margin-top: 26px; }
.tv-tp-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tv-tp-list { display: grid; gap: 10px; }
.tv-tp-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 0; }
.tv-tp-stats div { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.tv-tp-stats span { font-size: 13px; color: var(--tv-muted); font-weight: 600; }
.tv-tp-stats strong { font-size: 19px; font-weight: 700; color: var(--tv-ink); }
.tv-tp-stats .is-due { background: #fffcf3; border-color: var(--tv-primary); }
.tv-tp .tv-td-body > .tv-ta-fields { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); padding: 16px 18px; margin-top: 12px; grid-template-columns: 1fr; }
.tv-tp code { font-size: 14px; font-weight: 700; background: var(--tv-primary-tint); padding: 3px 9px; border-radius: 6px; color: var(--tv-ink); }
.tv-tp-copy { margin-left: 6px; height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--tv-hairline); background: var(--tv-canvas); font-size: 13px; font-weight: 600; color: var(--tv-ink); cursor: pointer; vertical-align: middle; }
.tv-tp-copy:hover { border-color: var(--tv-primary); background: var(--tv-primary-tint); }
.tv-tp-pay { margin-top: 12px; padding: 16px 18px; border: 1px solid var(--tv-primary); background: #fffcf3; border-radius: var(--tv-radius-md); display: grid; gap: 10px; }
.tv-tp-pay__lead { margin: 0; font-size: 14.5px; color: var(--tv-ink); }
.tv-tp-pay label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; color: var(--tv-ink); }
.tv-tp-pay input { height: 42px; padding: 0 12px; font-size: 15px; border: 1px solid var(--tv-hairline); border-radius: 10px; background: var(--tv-canvas); box-sizing: border-box; width: 100%; }
.tv-tp-pay input:focus { outline: none; border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .22); }
.tv-tp-pay .tv-btn { justify-self: start; }
.tv-tp-pay .tv-btn:disabled { opacity: .55; cursor: wait; }
.tv-tp-h4 { margin: 22px 0 10px; font-size: 15px; font-weight: 700; color: var(--tv-ink); }
.tv-tp-table { border: 1px solid var(--tv-hairline); border-radius: 12px; overflow: hidden; background: var(--tv-canvas); }
.tv-tp-tr { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; padding: 12px 14px; font-size: 14px; color: var(--tv-body); border-top: 1px solid var(--tv-hairline-soft); align-items: center; }
.tv-tp-tr:first-child { border-top: none; }
.tv-tp-th { display: none; }
.tv-tp-tr span[data-l]::before { content: attr(data-l) ": "; font-weight: 600; color: var(--tv-muted); }
.tv-tp-payouts { margin: 0; padding: 12px 14px 12px 32px; font-size: 14px; color: var(--tv-body); display: grid; gap: 6px; background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: 12px; }
.tv-ta-card.is-target { outline: 3px solid var(--tv-primary); outline-offset: 2px; }

/* ---------------- Homestays panel ---------------- */
body.tv-team-page .tv-hsd-intro { margin-bottom: 14px; }
body.tv-team-page .tv-hsd-intro > h2 { display: none; }
.tv-hsd-help { background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); padding: 0 16px; }
.tv-hsd-help summary { display: flex; align-items: center; gap: 10px; min-height: 48px; cursor: pointer; font-size: 14.5px; font-weight: 600; color: var(--tv-ink); list-style: none; }
.tv-hsd-help summary::-webkit-details-marker { display: none; }
.tv-hsd-help summary .tv-ico { width: 30px; height: 30px; border-radius: 9px; background: var(--ac-blue-bg); color: var(--ac-blue); }
.tv-hsd-help summary .tv-ico .tv-cl-ic { width: 16px; height: 16px; }
.tv-hsd-help[open] summary { border-bottom: 1px solid var(--tv-hairline-soft); margin-bottom: 10px; }
.tv-hsd-help p { padding-bottom: 6px; }
.tv-hsd-switch { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin-bottom: 14px; }
.tv-hsd-sw { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--tv-radius-md); border: 1px solid var(--tv-hairline); background: var(--tv-canvas); text-align: left; cursor: pointer; color: var(--tv-ink); transition: all var(--tv-transition); justify-content: flex-start; }
.tv-hsd-sw:hover { border-color: var(--tv-primary); }
.tv-hsd-sw.is-active { border-color: var(--tv-primary); background: #fffcf3; box-shadow: 0 0 0 3px rgba(255, 176, 0, .18); }
.tv-hsd-sw .tv-ico { width: 38px; height: 38px; }
.tv-hsd-sw__txt { display: flex; flex-direction: column; min-width: 0; }
.tv-hsd-sw__txt b { font-size: 15px; font-weight: 650; }
.tv-hsd-sw__txt small { font-size: 13px; color: var(--tv-muted); }
body.tv-team-page .tv-hsd-home { border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); padding: 20px 22px; box-shadow: var(--tv-shadow-card); }
body.tv-team-page .tv-hsd-home__head { align-items: center; margin-bottom: 14px; }
body.tv-team-page .tv-hsd-home__head h3 { font-size: 18px; font-weight: 700; color: var(--tv-ink); }
body.tv-team-page .tv-hsd-home__head h3 span { font-weight: 500; }
body.tv-team-page .tv-hsd-home__head a { display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--tv-hairline); font-weight: 600; color: var(--tv-ink); }
body.tv-team-page .tv-hsd-home__head a:hover { border-color: var(--tv-primary); background: var(--tv-primary-tint); }
body.tv-team-page .tv-hsd-rate { padding: 12px 14px; border-radius: 12px; background: #fffcf3; border: 1px solid #f3dfa6; }
body.tv-team-page .tv-hsd-rate label { font-weight: 650; font-size: 14.5px; }
body.tv-team-page .tv-hsd-rate__in { border-width: 1px; border-radius: 10px; height: 42px; box-sizing: border-box; }
body.tv-team-page .tv-hsd-rateval { font-weight: 700; font-size: 17px; }
body.tv-team-page .tv-hsd-ratebtn { height: 42px; padding: 0 22px; border-radius: 999px; background: var(--tv-primary); color: var(--tv-on-primary); font-weight: 600; font-size: 14px; box-shadow: 0 4px 14px rgba(255, 176, 0, .30); }
body.tv-team-page .tv-hsd-ratebtn:hover { background: var(--tv-primary-strong); color: #fff; }
body.tv-team-page .tv-hsd-room { padding: 16px 0 6px; }
body.tv-team-page .tv-hsd-room__name b { font-size: 15.5px; font-weight: 650; }
body.tv-team-page .tv-hsd-room__name span { font-size: 13.5px; font-weight: 500; }
body.tv-team-page .tv-hsd-cell span { font-size: 12px; font-weight: 600; letter-spacing: .04em; }
body.tv-team-page .tv-hsd-cell input { border-width: 1px; border-radius: 10px; font-weight: 700; font-size: 17px; padding: 10px 2px; }
body.tv-team-page .tv-hsd-all { font-weight: 500; font-size: 14px; }
body.tv-team-page .tv-hsd-allval { height: 38px; font-weight: 700; font-size: 15px; border-radius: 10px; box-sizing: border-box; }
body.tv-team-page .tv-hsd-allbtn { height: 38px; padding: 0 18px; border: 1px solid var(--tv-ink); border-radius: 999px; font-weight: 600; font-size: 14px; }
body.tv-team-page .tv-hsd-allbtn:hover { background: var(--tv-primary-tint); }

/* ---------------- Responsive ---------------- */
@media (max-width: 1199px) {
  .tv-cl-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-td-meta--next { display: none; }
}
@media (max-width: 991px) {
  .tv-cl-side { transform: translateX(-100%); transition: transform 200ms ease; }
  .tv-cl.is-nav-open .tv-cl-side { transform: none; box-shadow: var(--tv-shadow-float); }
  .tv-cl.is-nav-open .tv-cl-backdrop { display: block; position: fixed; inset: 0; z-index: 55; background: rgba(28, 28, 28, .38); }
  .tv-cl-body { margin-left: 0; }
  .tv-cl-menu { display: inline-flex; margin-left: -8px; }
  .tv-cl-top { padding: 0 20px; }
  .tv-cl-content { padding: 22px 20px 80px; }
  .tv-td-toolbar { margin: 0 -20px 12px; padding: 10px 20px; }
}
@media (max-width: 767px) {
  .tv-cl-top { padding: 0 14px; }
  .tv-cl-content { padding: 18px 14px 72px; }
  .tv-td-toolbar { margin: 0 -14px 10px; padding: 10px 14px; }
  .tv-cl-stats { gap: 10px; }
  .tv-cl-stat { padding: 14px; }
  .tv-cl-stat strong { font-size: 22px; }
  .tv-cl-stat__top { margin-bottom: 6px; }
  .tv-cl-stat__top i { width: 34px; height: 34px; border-radius: 10px; }
  .tv-cl-stat__top i .tv-cl-ic { width: 17px; height: 17px; }
  .tv-td-search { max-width: none; flex-basis: 100%; }
  .tv-td-chip { height: 36px; padding: 0 14px; font-size: 13.5px; }
  .tv-td-trip__head { flex-wrap: wrap; gap: 10px 12px; padding: 14px; }
  .tv-td-trip__title { flex-basis: calc(100% - 100px); }
  .tv-td-meta { min-width: 0; }
  .tv-td-meta--count { order: 5; margin-left: 52px; }
  .tv-td-meta--price { order: 6; }
  .tv-td-go { margin-left: auto; padding: 0 12px; }
  .tv-td-go span { display: none; }
  .tv-tp__head { flex-wrap: wrap; padding: 14px; }
  .tv-tp__head .tv-td-trip__summary { flex-direction: row; align-items: center; gap: 10px; width: 100%; padding-left: 52px; justify-content: flex-start; text-align: left; box-sizing: border-box; }
  .tv-td-trip.is-open > .tv-td-body, .tv-tp.is-open > .tv-td-body { width: 100vw; border-left: none; padding: 0 16px 40px; }
  .tv-dr-head { margin: 0 -16px 14px; padding: 14px 16px; }
  .tv-dr-title { font-size: 18px; }
  .tv-td-body > .tv-td-price, .tv-td-body > .tv-td-list, .tv-td-body > .tv-td-add { padding: 14px; }
  .tv-td-dep { grid-template-columns: 1fr auto; grid-template-areas: "date rm" "slots slots" "cap booked" "full full"; padding: 12px; }
  .tv-td-cap { flex-direction: row; align-items: center; gap: 8px; }
  .tv-td-booked { justify-self: end; }
  .tv-td-add label { flex: 1 1 40%; }
  .tv-ta-card { padding: 16px; }
  .tv-ta-actions .tv-btn, .tv-ta-reject { flex: 1 1 auto; }
  .tv-tp-tiles { grid-template-columns: 1fr 1fr; gap: 10px; }
  .tv-tp-tile { padding: 62px 14px 14px; min-height: 0; }
  .tv-tp-tile::before { top: 14px; left: 14px; margin-top: 0; }
  .tv-tp-tile::after { top: 24px; left: 24px; margin-top: 0; }
  .tv-tp-tile strong { font-size: 20px; }
  .tv-tp-tr { grid-template-columns: 1fr; }
  .tv-tp-tools .tv-td-search { flex: 1 1 100%; }
  .tv-hsd-switch { grid-template-columns: 1fr 1fr; }
  .tv-hsd-sw { padding: 10px; gap: 8px; }
  .tv-hsd-sw .tv-ico { display: none; }
  body.tv-team-page .tv-hsd-home { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .tv-cl-side { transition: none; }
  .tv-td-trip.is-open > .tv-td-body, .tv-tp.is-open > .tv-td-body, .tv-cl.has-drawer .tv-dr-backdrop { animation: none; }
}

/* 2026-10-18 v2.1: departure card, cleaner spacing. Row 1 = date + booked + delete; row 2 = three
   equal-height controls (Total slots / Slots left stepper / Slots full), each with the same label above. */
.tv-td-dep { grid-template-columns: auto auto auto 1fr auto; grid-template-areas: "date date date booked rm" "cap slots full . ."; align-items: center; gap: 14px 28px; padding: 14px 16px 16px; background: var(--tv-canvas); border-color: var(--tv-hairline); }
.tv-td-dep__date { font-size: 15px; }
.tv-td-booked { justify-self: end; font-size: 12.5px; padding: 4px 10px; }
.tv-td-remove { width: 34px; height: 34px; margin-right: -6px; }
.tv-td-cap, .tv-td-dep__slots, .tv-td-fulltog { align-self: end; }
.tv-td-cap, .tv-td-dep__slots .tv-td-slotlab, .tv-td-fulltog span { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tv-muted); line-height: 1; }
.tv-td-cap { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.tv-td-cap span { display: block; }
.tv-td-capinput { width: 64px; height: 40px; border-radius: 10px; font-size: 16px; }
/* stepper: label on top, then one joined control */
.tv-td-dep__slots { display: grid; grid-template-columns: 38px 52px 38px; grid-template-rows: auto 40px; row-gap: 7px; column-gap: 0; align-items: stretch; }
.tv-td-dep__slots .tv-td-slotlab { grid-column: 1 / -1; grid-row: 1; }
.tv-td-dep__slots .tv-td-step[data-op="dec"] { grid-column: 1; grid-row: 2; border-radius: 10px 0 0 10px; border-right: none; }
.tv-td-dep__slots .tv-td-seats { grid-column: 2; grid-row: 2; width: 52px; height: 40px; border-radius: 0; }
.tv-td-dep__slots .tv-td-step[data-op="inc"] { grid-column: 3; grid-row: 2; border-radius: 0 10px 10px 0; border-left: none; }
.tv-td-dep__slots .tv-td-step { width: 38px; height: 40px; font-size: 18px; background: var(--tv-surface); }
.tv-td-dep__slots .tv-td-step:hover { background: var(--tv-primary); border-color: var(--tv-primary); }
/* Slots full: label on top, switch vertically centred in the same 40px band */
.tv-td-fulltog { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 7px; }
.tv-td-fulltog input { margin: 8px 0; }
@media (max-width: 767px) {
  .tv-td-dep { grid-template-columns: auto auto 1fr auto; grid-template-areas: "date date booked rm" "cap slots full full"; gap: 12px 16px; padding: 12px 14px 14px; }
  .tv-td-cap { flex-direction: column; align-items: flex-start; gap: 7px; }
  .tv-td-capinput { width: 56px; }
  .tv-td-dep__slots { grid-template-columns: 36px 46px 36px; }
  .tv-td-dep__slots .tv-td-seats { width: 46px; }
  .tv-td-dep__slots .tv-td-step { width: 36px; }
  .tv-td-fulltog { justify-self: end; align-items: flex-end; }
}

/* 2026-10-18: Affiliates tab "Make a referral link" (.tv-lg, markup in team-affiliates.php linkgen_html) */
.tv-lg { margin: 6px 0 4px; background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: var(--tv-radius-md); box-shadow: var(--tv-shadow-card); padding: 18px 20px; }
.tv-lg__head { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 14px; }
.tv-lg__head .tv-ta-h2 { margin-bottom: 2px; }
.tv-lg__form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 260px) auto; gap: 12px; align-items: end; }
.tv-lg__form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--tv-ink); min-width: 0; }
.tv-lg-url, .tv-lg-aff, .tv-lg-result { width: 100%; height: 44px; box-sizing: border-box; padding: 0 14px; font-size: 15px; color: var(--tv-ink); background: var(--tv-canvas); border: 1px solid var(--tv-hairline); border-radius: 12px; }
.tv-lg-aff { padding-right: 34px; cursor: pointer; }
.tv-lg-url:focus, .tv-lg-aff:focus, .tv-lg-result:focus { outline: none; border-color: var(--tv-primary); box-shadow: 0 0 0 3px rgba(255, 176, 0, .22); }
.tv-lg__form .tv-btn { height: 44px; }
.tv-lg__out { display: flex; gap: 10px; align-items: center; margin-top: 12px; padding: 12px; border-radius: 12px; background: #fffcf3; border: 1px solid #f3dfa6; }
.tv-lg-result { flex: 1 1 auto; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13.5px; background: var(--tv-canvas); }
.tv-lg__out .tv-btn, .tv-lg__out .tv-btn-ghost { flex: none; height: 44px; }
.tv-lg .tv-lg-msg:empty { display: none; }
@media (max-width: 767px) {
  .tv-lg { padding: 16px; }
  .tv-lg__form { grid-template-columns: 1fr; }
  .tv-lg__form .tv-btn { width: 100%; }
  .tv-lg__out { flex-wrap: wrap; }
  .tv-lg-result { flex-basis: 100%; }
  .tv-lg__out .tv-btn { flex: 1 1 auto; }
}
