/* Fast Tournament v2 — isolated styles, no store/admin business logic. */
:root {
  --ft-blue: #1769ff;
  --ft-blue-dark: #0d51d7;
  --ft-blue-soft: #eaf2ff;
  --ft-bg: #f4f7fb;
  --ft-card: #ffffff;
  --ft-card-2: #f8fafc;
  --ft-text: #0f172a;
  --ft-muted: #64748b;
  --ft-border: #e2e8f0;
  --ft-green: #16a34a;
  --ft-green-soft: #eaf8ef;
  --ft-red: #dc2626;
  --ft-red-soft: #fff0f0;
  --ft-amber: #d97706;
  --ft-amber-soft: #fff7e8;
  --ft-cyan: #0891b2;
  --ft-cyan-soft: #e9f8fb;
  --ft-shadow: 0 18px 50px rgba(15, 23, 42, .08);
  --ft-shadow-sm: 0 8px 24px rgba(15, 23, 42, .07);
  --ft-radius: 24px;
  --ft-radius-sm: 17px;
}

[data-theme="dark"] {
  --ft-bg: #080d16;
  --ft-card: #101824;
  --ft-card-2: #0c1420;
  --ft-text: #f8fafc;
  --ft-muted: #94a3b8;
  --ft-border: #213047;
  --ft-blue-soft: #122749;
  --ft-green-soft: #10291a;
  --ft-red-soft: #321617;
  --ft-amber-soft: #30230f;
  --ft-cyan-soft: #102931;
  --ft-shadow: 0 18px 50px rgba(0, 0, 0, .28);
  --ft-shadow-sm: 0 8px 24px rgba(0, 0, 0, .24);
}

html[data-theme="dark"] { color-scheme: dark; }
html[data-theme="light"] { color-scheme: light; }
* { box-sizing: border-box; }
.ft-body {
  margin: 0;
  min-height: 100vh;
  background: var(--ft-bg);
  color: var(--ft-text);
  font-family: Inter, "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  padding-bottom: 98px;
}
.ft-body a { color: inherit; text-decoration: none; }
.ft-body button, .ft-body input, .ft-body textarea, .ft-body select { font: inherit; }
.ft-icon { width: 20px; height: 20px; flex: 0 0 auto; }
.ft-container { width: min(1180px, calc(100% - 32px)); margin-inline: auto; }
.ft-main { min-height: calc(100vh - 72px); }
.ft-home-shell, .ft-detail-shell, .ft-my-shell, .ft-wallet-shell, .ft-admin-shell { padding: 30px 0 60px; }

.ft-topbar {
  position: sticky;
  z-index: 90;
  top: 0;
  height: 72px;
  border-bottom: 1px solid color-mix(in srgb, var(--ft-border) 85%, transparent);
  background: color-mix(in srgb, var(--ft-bg) 90%, transparent);
  backdrop-filter: blur(18px);
}
.ft-topbar-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ft-brand { display: inline-flex; align-items: center; gap: 12px; min-width: 190px; }
.ft-brand-mark {
  display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px;
  background: var(--ft-blue); color: #fff; box-shadow: 0 8px 20px rgba(23, 105, 255, .22);
}
.ft-brand-mark .ft-icon { width: 21px; height: 21px; }
.ft-brand > span:last-child { display: grid; line-height: 1.15; }
.ft-brand b { font-size: 15px; font-weight: 850; letter-spacing: -.2px; }
.ft-brand small { margin-top: 4px; color: var(--ft-muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.ft-desktop-nav { display: flex; align-items: center; gap: 5px; padding: 5px; border: 1px solid var(--ft-border); border-radius: 15px; background: var(--ft-card); }
.ft-desktop-nav a { padding: 9px 13px; border-radius: 11px; color: var(--ft-muted); font-size: 13px; font-weight: 750; transition: .18s ease; }
.ft-desktop-nav a:hover { color: var(--ft-blue); background: var(--ft-blue-soft); }
.ft-top-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 190px; }
.ft-store-link, .ft-icon-button, .ft-avatar, .ft-login-link {
  display: inline-flex; align-items: center; justify-content: center; height: 42px; border: 1px solid var(--ft-border); background: var(--ft-card); color: var(--ft-text);
}
.ft-store-link { gap: 7px; padding: 0 13px; border-radius: 14px; font-size: 12px; font-weight: 800; }
.ft-icon-button { width: 42px; border-radius: 14px; cursor: pointer; }
.ft-icon-button > span { display: grid; place-items: center; }
.ft-theme-sun { display: none!important; }
[data-theme="light"] .ft-theme-moon { display: none!important; }
[data-theme="light"] .ft-theme-sun { display: grid!important; }
.ft-avatar { width: 42px; border-radius: 50%; background: var(--ft-blue); color: #fff; border-color: var(--ft-blue); font-weight: 900; }
.ft-login-link { padding: 0 16px; border-radius: 14px; color: #fff; background: var(--ft-blue); border-color: var(--ft-blue); font-weight: 800; font-size: 13px; }

.ft-home-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin: 10px 0 26px; }
.ft-home-intro h1, .ft-page-hero h1, .ft-admin-hero h1 { margin: 8px 0 11px; font-size: clamp(34px, 5vw, 58px); line-height: .98; letter-spacing: -.055em; font-weight: 900; }
.ft-home-intro h1 span { color: var(--ft-blue); }
.ft-home-intro p, .ft-page-hero p, .ft-admin-hero p { max-width: 680px; margin: 0; color: var(--ft-muted); font-size: 15px; line-height: 1.7; }
.ft-eyebrow { color: var(--ft-blue); font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.ft-home-intro-badge { display: flex; align-items: center; gap: 12px; min-width: 270px; padding: 15px 17px; border: 1px solid var(--ft-border); border-radius: 19px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-home-intro-badge > .ft-icon { width: 29px; height: 29px; color: var(--ft-blue); }
.ft-home-intro-badge span { display: grid; }
.ft-home-intro-badge b { font-size: 13px; }
.ft-home-intro-badge small { margin-top: 4px; color: var(--ft-muted); font-size: 11px; }

.ft-wallet-card, .ft-wallet-page-card {
  position: relative; overflow: hidden; padding: 24px; border-radius: 26px; background: var(--ft-blue); color: #fff; box-shadow: 0 20px 48px rgba(23, 105, 255, .24);
}
.ft-wallet-card::after, .ft-wallet-page-card::after { content: ""; position: absolute; width: 230px; height: 230px; right: -100px; top: -120px; border: 45px solid rgba(255,255,255,.08); border-radius: 50%; pointer-events: none; }
.ft-wallet-card-head, .ft-wallet-page-top { position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; }
.ft-wallet-symbol { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: rgba(255,255,255,.16); }
.ft-wallet-card-head > div, .ft-wallet-page-top > div { display: grid; flex: 1; }
.ft-wallet-card-head small, .ft-wallet-page-top small { color: rgba(255,255,255,.74); font-size: 11px; font-weight: 750; }
.ft-wallet-card-head strong { margin-top: 4px; font-size: 28px; letter-spacing: -.035em; }
.ft-wallet-card-head > a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: rgba(255,255,255,.14); }
.ft-wallet-card-stats, .ft-wallet-page-stats { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 20px; }
.ft-wallet-card-stats span, .ft-wallet-page-stats span { padding: 13px 14px; border-radius: 15px; background: rgba(255,255,255,.11); display: grid; }
.ft-wallet-card-stats small, .ft-wallet-page-stats small { color: rgba(255,255,255,.68); font-size: 10px; }
.ft-wallet-card-stats b, .ft-wallet-page-stats b { margin-top: 4px; font-size: 13px; }
.ft-wallet-card-actions, .ft-wallet-page-actions { position: relative; z-index: 1; display: flex; gap: 10px; margin-top: 17px; }
.ft-wallet-card > p, .ft-wallet-page-card > p { position: relative; z-index: 1; margin: 14px 0 0; color: rgba(255,255,255,.72); font-size: 11px; }
.ft-wallet-guest { min-height: 210px; display: grid; align-content: center; }
.ft-wallet-guest .ft-button { justify-self: start; margin-top: 8px; }

.ft-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 43px; padding: 0 16px; border: 0; border-radius: 14px;
  font-size: 12px; font-weight: 850; cursor: pointer; transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}
.ft-button:hover { transform: translateY(-1px); }
.ft-button:active { transform: scale(.98); }
.ft-button-primary { background: var(--ft-blue); color: #fff; box-shadow: 0 10px 20px rgba(23,105,255,.18); }
.ft-button-secondary { background: var(--ft-card-2); color: var(--ft-text); border: 1px solid var(--ft-border); }
.ft-button-danger { background: var(--ft-red); color: #fff; }
.ft-button-light { background: #fff; color: var(--ft-blue-dark); }
.ft-button-soft { background: rgba(255,255,255,.13); color: #fff; border: 1px solid rgba(255,255,255,.13); }
.ft-button-block { width: 100%; }
.ft-button .ft-icon { width: 17px; height: 17px; }

.ft-section { margin-top: 34px; }
.ft-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.ft-section-heading h2 { margin: 4px 0 0; font-size: 23px; line-height: 1.15; letter-spacing: -.035em; }
.ft-section-heading p { margin: 6px 0 0; color: var(--ft-muted); font-size: 12px; }
.ft-section-heading > a { color: var(--ft-blue); font-size: 12px; font-weight: 850; }
.ft-section-heading.compact { align-items: center; margin-bottom: 18px; }
.ft-count-badge { padding: 7px 10px; border: 1px solid var(--ft-border); border-radius: 999px; color: var(--ft-muted); background: var(--ft-card); font-size: 10px; font-weight: 800; white-space: nowrap; }

.ft-continue-card { display: grid; grid-template-columns: 118px minmax(0,1fr) auto; align-items: center; gap: 20px; padding: 17px; border: 1px solid var(--ft-border); border-radius: var(--ft-radius); background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-continue-poster { width: 118px; height: 104px; overflow: hidden; border-radius: 18px; background: var(--ft-blue-soft); display: grid; place-items: center; color: var(--ft-blue); }
.ft-continue-poster img { width: 100%; height: 100%; object-fit: cover; }
.ft-continue-poster .ft-icon { width: 35px; height: 35px; }
.ft-continue-content h3 { margin: 8px 0 3px; font-size: 20px; letter-spacing: -.025em; }
.ft-continue-content p { margin: 0; color: var(--ft-muted); font-size: 12px; }
.ft-continue-content > small { display: block; margin-top: 7px; color: var(--ft-muted); font-size: 10px; }
.ft-continue-note { margin-top: 10px; font-size: 11px; font-weight: 700; color: var(--ft-text); }
.ft-status-chip { display: inline-flex; align-items: center; width: max-content; max-width: 100%; padding: 6px 9px; border-radius: 999px; background: var(--ft-blue-soft); color: var(--ft-blue); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; }
.tone-danger .ft-status-chip { color: var(--ft-red); background: var(--ft-red-soft); }
.tone-winner .ft-status-chip, .tone-ready .ft-status-chip { color: var(--ft-green); background: var(--ft-green-soft); }
.tone-warning .ft-status-chip { color: var(--ft-amber); background: var(--ft-amber-soft); }
.tone-live .ft-status-chip { color: var(--ft-red); background: var(--ft-red-soft); }

.ft-featured-card { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0,1.1fr); overflow: hidden; border: 1px solid var(--ft-border); border-radius: 28px; background: var(--ft-card); box-shadow: var(--ft-shadow); transition: transform .2s ease, box-shadow .2s ease; }
.ft-featured-card:hover { transform: translateY(-3px); box-shadow: 0 24px 60px rgba(15,23,42,.13); }
.ft-featured-media { position: relative; min-height: 340px; background: #0f1a2a; overflow: hidden; }
.ft-featured-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ft-featured-media::after { content: ""; position: absolute; inset: auto 0 0; height: 36%; background: linear-gradient(transparent, rgba(0,0,0,.46)); pointer-events: none; }
.ft-poster-placeholder { width: 100%; height: 100%; min-height: 220px; display: grid; place-items: center; align-content: center; gap: 10px; color: #fff; background: #111b2d; }
.ft-poster-placeholder .ft-icon { width: 48px; height: 48px; }
.ft-poster-placeholder span { font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.ft-live-badge, .ft-detail-status { position: absolute; z-index: 2; top: 16px; left: 16px; padding: 8px 11px; border-radius: 999px; background: rgba(10,17,29,.78); color: #fff; backdrop-filter: blur(10px); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.ft-featured-body { display: flex; flex-direction: column; justify-content: center; padding: 34px; }
.ft-card-topline { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.ft-card-topline span { color: var(--ft-blue); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; }
.ft-card-topline small { color: var(--ft-amber); font-size: 10px; font-weight: 850; }
.ft-featured-body h3 { margin: 15px 0 8px; font-size: clamp(27px, 4vw, 42px); line-height: 1.05; letter-spacing: -.05em; }
.ft-featured-body > p { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--ft-muted); font-size: 12px; }
.ft-featured-body > p .ft-icon { width: 16px; height: 16px; }
.ft-featured-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin: 24px 0 17px; }
.ft-featured-metrics span { display: grid; padding: 12px; border: 1px solid var(--ft-border); border-radius: 15px; background: var(--ft-card-2); }
.ft-featured-metrics small { color: var(--ft-muted); font-size: 9px; }
.ft-featured-metrics b { margin-top: 4px; font-size: 12px; }
.ft-slot-row { display: flex; align-items: center; gap: 10px; }
.ft-slot-row > div { flex: 1; height: 7px; overflow: hidden; border-radius: 999px; background: var(--ft-border); }
.ft-slot-row i { display: block; height: 100%; border-radius: inherit; background: var(--ft-blue); }
.ft-slot-row > b { min-width: 58px; color: var(--ft-muted); font-size: 10px; text-align: right; }
.ft-card-cta { display: inline-flex; align-items: center; gap: 7px; margin-top: 24px; color: var(--ft-blue); font-size: 12px; font-weight: 900; }
.ft-card-cta .ft-icon { width: 16px; height: 16px; }

.ft-tournament-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; margin-top: 16px; }
.ft-tournament-card { overflow: hidden; border: 1px solid var(--ft-border); border-radius: 21px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); transition: transform .18s ease; }
.ft-tournament-card:hover { transform: translateY(-2px); }
.ft-tournament-thumb { position: relative; height: 150px; background: var(--ft-blue-soft); color: var(--ft-blue); display: grid; place-items: center; overflow: hidden; }
.ft-tournament-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ft-tournament-thumb > .ft-icon { width: 38px; height: 38px; }
.ft-tournament-thumb small { position: absolute; left: 11px; bottom: 11px; padding: 6px 8px; border-radius: 999px; background: rgba(7,13,22,.76); color: #fff; font-size: 8px; font-weight: 850; }
.ft-tournament-card-body { padding: 15px; }
.ft-tournament-card-body h3 { margin: 0 0 6px; font-size: 15px; line-height: 1.25; }
.ft-tournament-card-body > p { margin: 0; color: var(--ft-muted); font-size: 10px; }
.ft-mini-stats { display: flex; justify-content: space-between; gap: 8px; margin: 15px 0 12px; font-size: 10px; font-weight: 800; }
.ft-slot-row.compact > div { height: 5px; }
.ft-slot-row.compact > b { min-width: 40px; font-size: 9px; }

.ft-benefits { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin-top: 34px; }
.ft-benefits article { display: flex; gap: 12px; align-items: center; padding: 16px; border: 1px solid var(--ft-border); border-radius: 19px; background: var(--ft-card); }
.ft-benefits article > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--ft-blue-soft); color: var(--ft-blue); }
.ft-benefits div { display: grid; }
.ft-benefits b { font-size: 12px; }
.ft-benefits small { margin-top: 4px; color: var(--ft-muted); font-size: 9px; line-height: 1.4; }

.ft-alert { margin-bottom: 16px; padding: 13px 15px; border-radius: 15px; border: 1px solid var(--ft-border); background: var(--ft-card); font-size: 12px; font-weight: 750; }
.ft-alert.ok, .ft-alert.success { color: var(--ft-green); background: var(--ft-green-soft); border-color: color-mix(in srgb, var(--ft-green) 26%, var(--ft-border)); }
.ft-alert.danger, .ft-alert.error { color: var(--ft-red); background: var(--ft-red-soft); border-color: color-mix(in srgb, var(--ft-red) 25%, var(--ft-border)); }
.ft-alert.warn, .ft-alert.warning { color: var(--ft-amber); background: var(--ft-amber-soft); border-color: color-mix(in srgb, var(--ft-amber) 25%, var(--ft-border)); }
.ft-empty-state { display: grid; place-items: center; min-height: 280px; padding: 34px; border: 1px dashed var(--ft-border); border-radius: 24px; background: var(--ft-card); text-align: center; }
.ft-empty-state > span { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 20px; background: var(--ft-blue-soft); color: var(--ft-blue); }
.ft-empty-state > span .ft-icon { width: 29px; height: 29px; }
.ft-empty-state h3 { margin: 17px 0 6px; font-size: 18px; }
.ft-empty-state p { max-width: 470px; margin: 0 0 17px; color: var(--ft-muted); font-size: 11px; line-height: 1.6; }
.ft-empty-inline { padding: 22px; border: 1px dashed var(--ft-border); border-radius: 16px; color: var(--ft-muted); background: var(--ft-card-2); text-align: center; font-size: 11px; }

/* Detail */
.ft-back-link { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; color: var(--ft-muted); font-size: 11px; font-weight: 800; }
.ft-back-link .ft-icon { width: 16px; height: 16px; transform: rotate(180deg); }
.ft-detail-hero { display: grid; grid-template-columns: minmax(290px,.82fr) minmax(0,1.18fr); gap: 30px; align-items: center; padding: 19px; border: 1px solid var(--ft-border); border-radius: 28px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-detail-poster { position: relative; overflow: hidden; height: 330px; border-radius: 21px; background: #111b2d; }
.ft-detail-poster > img { width: 100%; height: 100%; object-fit: cover; }
.ft-detail-intro { padding: 12px 20px 12px 0; }
.ft-detail-intro h1 { margin: 9px 0 13px; font-size: clamp(30px,4vw,49px); line-height: 1.02; letter-spacing: -.055em; }
.ft-detail-intro > p { display: flex; align-items: center; gap: 8px; margin: 7px 0; color: var(--ft-muted); font-size: 11px; }
.ft-detail-intro > p .ft-icon { width: 16px; height: 16px; }
.ft-detail-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 22px 0 17px; }
.ft-detail-summary span { display: grid; padding: 12px; border-radius: 15px; background: var(--ft-card-2); border: 1px solid var(--ft-border); }
.ft-detail-summary small { color: var(--ft-muted); font-size: 8px; }
.ft-detail-summary b { margin-top: 4px; font-size: 11px; }
.ft-detail-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(320px,.7fr); gap: 18px; align-items: start; margin-top: 18px; }
.ft-detail-content { display: grid; gap: 18px; }
.ft-content-card, .ft-action-card { border: 1px solid var(--ft-border); border-radius: var(--ft-radius); background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-content-card { padding: 22px; }
.ft-action-card { position: sticky; top: 90px; padding: 22px; }
.ft-action-card.static { position: static; }
.ft-action-card-head h2 { margin: 6px 0 0; font-size: 23px; letter-spacing: -.035em; }
.ft-action-card > p { color: var(--ft-muted); font-size: 11px; line-height: 1.65; }
.ft-podium { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: 9px; margin-top: 22px; }
.ft-podium article { display: grid; place-items: center; padding: 16px 10px; border-radius: 18px; border: 1px solid var(--ft-border); background: var(--ft-card-2); text-align: center; }
.ft-podium article.first { min-height: 160px; border-color: color-mix(in srgb, var(--ft-blue) 38%, var(--ft-border)); background: var(--ft-blue-soft); }
.ft-podium article.second { min-height: 133px; }
.ft-podium article.third { min-height: 117px; }
.ft-podium article > span { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 50%; background: var(--ft-card); border: 1px solid var(--ft-border); color: var(--ft-blue); font-weight: 900; }
.ft-podium small { margin-top: 9px; color: var(--ft-muted); font-size: 9px; }
.ft-podium b { margin-top: 4px; font-size: 13px; }
.ft-note { color: var(--ft-muted); font-size: 10px; line-height: 1.6; }
.ft-format-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 17px 0; }
.ft-format-strip span { display: flex; align-items: center; gap: 8px; padding: 12px; border: 1px solid var(--ft-border); border-radius: 14px; background: var(--ft-card-2); }
.ft-format-strip .ft-icon { color: var(--ft-blue); width: 17px; height: 17px; }
.ft-format-strip b { font-size: 10px; }
.ft-content-card > p { color: var(--ft-muted); font-size: 11px; line-height: 1.65; }
.ft-accordion { margin-top: 14px; border-top: 1px solid var(--ft-border); }
.ft-accordion summary { display: flex; justify-content: space-between; align-items: center; padding: 17px 0 8px; cursor: pointer; font-size: 11px; font-weight: 850; list-style: none; }
.ft-accordion summary::-webkit-details-marker { display: none; }
.ft-accordion summary span { font-size: 18px; color: var(--ft-blue); }
.ft-accordion > div { padding: 8px 0 2px; color: var(--ft-muted); font-size: 10px; line-height: 1.7; }
.ft-roster-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.ft-roster-grid article { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--ft-border); border-radius: 14px; background: var(--ft-card-2); }
.ft-roster-grid article span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 9px; background: var(--ft-blue-soft); color: var(--ft-blue); font-size: 10px; font-weight: 900; }
.ft-roster-grid article b { font-size: 11px; }

.ft-step-indicator { display: grid; grid-template-columns: repeat(4,1fr); align-items: center; gap: 6px; margin: 19px 0; position: relative; }
.ft-step-indicator i { height: 5px; border-radius: 999px; background: var(--ft-border); }
.ft-step-indicator i.done, .ft-step-indicator i.active { background: var(--ft-blue); }
.ft-step-indicator i.active { animation: ftPulseBar 1.8s ease-in-out infinite; }
.ft-step-indicator span { grid-column: 1/-1; color: var(--ft-muted); font-size: 9px; font-weight: 800; }
@keyframes ftPulseBar { 50% { opacity: .55; } }
.ft-form-stack { display: grid; gap: 12px; }
.ft-form-stack label, .ft-form-grid label { display: grid; gap: 7px; }
.ft-form-stack label > span, .ft-form-grid label > span { color: var(--ft-muted); font-size: 10px; font-weight: 750; }
.ft-form-stack input, .ft-form-stack textarea, .ft-form-stack select, .ft-form-grid input, .ft-form-grid textarea, .ft-form-grid select {
  width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid var(--ft-border); border-radius: 14px; outline: none; background: var(--ft-card-2); color: var(--ft-text); font-size: 12px; transition: border-color .16s ease, box-shadow .16s ease;
}
.ft-form-stack textarea, .ft-form-grid textarea { resize: vertical; }
.ft-form-stack input:focus, .ft-form-stack textarea:focus, .ft-form-stack select:focus, .ft-form-grid input:focus, .ft-form-grid textarea:focus, .ft-form-grid select:focus { border-color: var(--ft-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ft-blue) 15%, transparent); }
.ft-state-box { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border-radius: 16px; border: 1px solid var(--ft-border); background: var(--ft-card-2); }
.ft-state-box > span:first-child { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 12px; flex: 0 0 auto; }
.ft-state-box > div { display: grid; }
.ft-state-box b { font-size: 11px; }
.ft-state-box small { margin-top: 4px; color: var(--ft-muted); font-size: 9px; line-height: 1.45; }
.ft-state-box.success { background: var(--ft-green-soft); border-color: color-mix(in srgb,var(--ft-green) 24%,var(--ft-border)); }
.ft-state-box.success > span { color: var(--ft-green); background: color-mix(in srgb,var(--ft-green) 12%,transparent); }
.ft-state-box.danger { background: var(--ft-red-soft); border-color: color-mix(in srgb,var(--ft-red) 24%,var(--ft-border)); }
.ft-state-box.danger > span { color: var(--ft-red); background: color-mix(in srgb,var(--ft-red) 12%,transparent); }
.ft-state-box.warning { background: var(--ft-amber-soft); border-color: color-mix(in srgb,var(--ft-amber) 24%,var(--ft-border)); }
.ft-state-box.warning > span { color: var(--ft-amber); background: color-mix(in srgb,var(--ft-amber) 12%,transparent); }
.ft-state-box.info { background: var(--ft-cyan-soft); border-color: color-mix(in srgb,var(--ft-cyan) 24%,var(--ft-border)); }
.ft-state-box.info > span { color: var(--ft-cyan); background: color-mix(in srgb,var(--ft-cyan) 12%,transparent); }
.ft-spinner { width: 21px!important; height: 21px!important; border: 2px solid color-mix(in srgb,var(--ft-cyan) 25%,transparent); border-top-color: var(--ft-cyan); border-radius: 50%!important; animation: ftSpin .85s linear infinite; background: transparent!important; }
@keyframes ftSpin { to { transform: rotate(360deg); } }
.ft-reservation-timer { display: flex; align-items: center; justify-content: space-between; margin: 13px 0; padding: 12px 14px; border-radius: 14px; background: var(--ft-amber-soft); color: var(--ft-amber); }
.ft-reservation-timer span { font-size: 10px; font-weight: 800; }
.ft-reservation-timer b { font-size: 17px; font-variant-numeric: tabular-nums; }
.ft-balance-mini { display: flex; align-items: center; gap: 10px; padding: 12px; margin-bottom: 12px; border: 1px solid var(--ft-border); border-radius: 15px; background: var(--ft-card-2); }
.ft-balance-mini > span { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 12px; background: var(--ft-blue-soft); color: var(--ft-blue); }
.ft-balance-mini > div { display: grid; flex: 1; }
.ft-balance-mini small { color: var(--ft-muted); font-size: 8px; }
.ft-balance-mini b { margin-top: 3px; font-size: 12px; }
.ft-balance-mini a { color: var(--ft-blue); font-size: 9px; font-weight: 850; }
.ft-payment-breakdown { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 12px 0; }
.ft-payment-breakdown.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.ft-payment-breakdown.vertical { grid-template-columns: 1fr; }
.ft-payment-breakdown span { display: grid; padding: 11px; border: 1px solid var(--ft-border); border-radius: 13px; background: var(--ft-card-2); }
.ft-payment-breakdown small { color: var(--ft-muted); font-size: 8px; }
.ft-payment-breakdown b { margin-top: 4px; font-size: 11px; }
.ft-pay-option { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 10px; align-items: center; margin: 12px 0; padding: 13px; border: 1px solid var(--ft-border); border-radius: 16px; background: var(--ft-card-2); }
.ft-pay-option > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--ft-blue-soft); color: var(--ft-blue); }
.ft-pay-option > div { display: grid; }
.ft-pay-option b { font-size: 11px; }
.ft-pay-option small { margin-top: 3px; color: var(--ft-muted); font-size: 8px; }
.ft-pay-option button { grid-column: 1/-1; min-height: 40px; border: 0; border-radius: 12px; background: var(--ft-blue); color: #fff; font-size: 10px; font-weight: 850; cursor: pointer; }
.ft-payment-divider { display: flex; align-items: center; gap: 9px; margin: 16px 0; color: var(--ft-muted); font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }
.ft-payment-divider::before, .ft-payment-divider::after { content: ""; height: 1px; flex: 1; background: var(--ft-border); }
.ft-payment-choice { display: grid; gap: 8px; }
.ft-payment-choice label { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--ft-border); border-radius: 15px; cursor: pointer; background: var(--ft-card-2); }
.ft-payment-choice label.selected { border-color: var(--ft-blue); background: var(--ft-blue-soft); }
.ft-payment-choice input { position: absolute; opacity: 0; pointer-events: none; }
.ft-payment-choice label > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 12px; background: var(--ft-card); color: var(--ft-blue); }
.ft-payment-choice label > div { display: grid; }
.ft-payment-choice b { font-size: 10px; }
.ft-payment-choice small { margin-top: 3px; color: var(--ft-muted); font-size: 8px; }
.ft-qris-box { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 13px; align-items: center; padding: 12px; border: 1px solid var(--ft-border); border-radius: 16px; background: var(--ft-card-2); }
.ft-qris-box img, .ft-qris-empty { width: 112px; height: 112px; object-fit: contain; border-radius: 12px; background: #fff; }
.ft-qris-empty { display: grid; place-items: center; padding: 10px; color: #64748b; text-align: center; font-size: 8px; }
.ft-qris-box > div:last-child { display: grid; }
.ft-qris-box small { color: var(--ft-muted); font-size: 9px; }
.ft-qris-box strong { margin-top: 5px; font-size: 19px; letter-spacing: -.03em; }
.ft-refund-success, .ft-winner-box { display: grid; margin: 14px 0; padding: 17px; border-radius: 18px; background: var(--ft-blue); color: #fff; text-align: center; }
.ft-refund-success small, .ft-winner-box small { color: rgba(255,255,255,.7); font-size: 9px; }
.ft-refund-success strong, .ft-winner-box strong { margin: 6px 0; font-size: 25px; }
.ft-winner-box > span { font-size: 10px; font-weight: 900; letter-spacing: .13em; }

/* My tournaments */
.ft-page-hero, .ft-admin-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.ft-page-hero h1, .ft-admin-hero h1 { font-size: clamp(31px,4vw,48px); }
.ft-mini-wallet { display: flex; align-items: center; gap: 11px; min-width: 255px; padding: 14px; border-radius: 18px; background: var(--ft-blue); color: #fff; box-shadow: 0 12px 30px rgba(23,105,255,.22); }
.ft-mini-wallet > span { display: grid; place-items: center; width: 41px; height: 41px; border-radius: 13px; background: rgba(255,255,255,.13); }
.ft-mini-wallet > div { display: grid; flex: 1; }
.ft-mini-wallet small { color: rgba(255,255,255,.7); font-size: 8px; }
.ft-mini-wallet b { margin-top: 4px; font-size: 14px; }
.ft-mini-wallet > .ft-icon { width: 17px; height: 17px; }
.ft-filter-tabs, .ft-admin-tabs { display: flex; align-items: center; gap: 7px; overflow-x: auto; scrollbar-width: none; padding: 5px; margin-bottom: 18px; border: 1px solid var(--ft-border); border-radius: 16px; background: var(--ft-card); }
.ft-filter-tabs::-webkit-scrollbar, .ft-admin-tabs::-webkit-scrollbar { display: none; }
.ft-filter-tabs a, .ft-admin-tabs a { flex: 0 0 auto; padding: 10px 15px; border-radius: 12px; color: var(--ft-muted); font-size: 11px; font-weight: 850; }
.ft-filter-tabs a.active, .ft-admin-tabs a.active { color: #fff; background: var(--ft-blue); }
.ft-my-list { display: grid; gap: 14px; }
.ft-my-card { overflow: hidden; border: 1px solid var(--ft-border); border-radius: 23px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-my-card-main { display: grid; grid-template-columns: 105px minmax(0,1fr) auto; align-items: center; gap: 15px; padding: 15px; }
.ft-my-thumb { width: 105px; height: 90px; border-radius: 16px; overflow: hidden; background: var(--ft-blue-soft); color: var(--ft-blue); display: grid; place-items: center; }
.ft-my-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ft-my-thumb .ft-icon { width: 30px; height: 30px; }
.ft-my-copy h2 { margin: 7px 0 3px; font-size: 18px; letter-spacing: -.025em; }
.ft-my-copy p { margin: 0; color: var(--ft-muted); font-size: 10px; }
.ft-my-copy > small { display: flex; align-items: center; gap: 5px; margin-top: 7px; color: var(--ft-muted); font-size: 9px; }
.ft-my-copy > small .ft-icon { width: 13px; height: 13px; }
.ft-my-arrow { color: var(--ft-muted); }
.ft-my-status-panel { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 15px; border-top: 1px solid var(--ft-border); background: var(--ft-card-2); }
.ft-my-status-panel > div { display: grid; }
.ft-my-status-panel b { font-size: 11px; }
.ft-my-status-panel p { margin: 4px 0 0; color: var(--ft-muted); font-size: 9px; }
.ft-my-status-panel small { margin-top: 6px; font-size: 9px; font-weight: 800; }
.ft-refund-line, .ft-win-line { color: var(--ft-green); }
.ft-danger-line { color: var(--ft-red); }

/* Wallet */
.ft-wallet-page-card { padding: 27px; }
.ft-wallet-page-top strong { margin-top: 5px; font-size: 34px; letter-spacing: -.04em; }
.ft-wallet-role-chip { padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.14); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.ft-wallet-page-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
.ft-balance-tip { display: flex; align-items: center; gap: 13px; margin-top: 16px; padding: 15px; border: 1px solid color-mix(in srgb,var(--ft-amber) 25%,var(--ft-border)); border-radius: 18px; background: var(--ft-amber-soft); }
.ft-balance-tip > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: color-mix(in srgb,var(--ft-amber) 12%,transparent); color: var(--ft-amber); }
.ft-balance-tip > div { flex: 1; display: grid; }
.ft-balance-tip b { font-size: 11px; }
.ft-balance-tip p { margin: 4px 0 0; color: var(--ft-muted); font-size: 9px; }
.ft-balance-tip > a { color: var(--ft-amber); font-size: 10px; font-weight: 850; }
.ft-wallet-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; margin-top: 17px; align-items: start; }
.ft-transaction-list, .ft-withdraw-list { display: grid; }
.ft-transaction-list > article { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--ft-border); }
.ft-transaction-list > article:last-child { border-bottom: 0; }
.ft-transaction-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; }
.ft-transaction-icon.credit { color: var(--ft-green); background: var(--ft-green-soft); }
.ft-transaction-icon.debit { color: var(--ft-red); background: var(--ft-red-soft); }
.ft-transaction-icon .ft-icon { width: 17px; height: 17px; }
.ft-transaction-list article > div { display: grid; }
.ft-transaction-list b { font-size: 10px; }
.ft-transaction-list small { margin-top: 4px; color: var(--ft-muted); font-size: 8px; }
.ft-transaction-list strong { font-size: 11px; }
.ft-transaction-list strong.credit { color: var(--ft-green); }
.ft-transaction-list strong.debit { color: var(--ft-red); }
.ft-withdraw-list { gap: 11px; }
.ft-withdraw-list > article { padding: 14px; border: 1px solid var(--ft-border); border-radius: 16px; background: var(--ft-card-2); }
.ft-withdraw-head { display: flex; justify-content: space-between; gap: 10px; }
.ft-withdraw-head > div { display: grid; }
.ft-withdraw-head b { font-size: 11px; }
.ft-withdraw-head small { margin-top: 4px; color: var(--ft-muted); font-size: 8px; }
.ft-proof-link { display: inline-flex; align-items: center; gap: 5px; color: var(--ft-blue); font-size: 9px; font-weight: 850; }
.ft-proof-link .ft-icon { width: 13px; height: 13px; }
.status-paid { color: var(--ft-cyan); background: var(--ft-cyan-soft); }
.status-rejected { color: var(--ft-red); background: var(--ft-red-soft); }
.status-received { color: var(--ft-green); background: var(--ft-green-soft); }

.ft-sheet[hidden], .fta-modal[hidden] { display: none!important; }
.ft-sheet { position: fixed; z-index: 300; inset: 0; display: grid; align-items: end; }
.ft-sheet-backdrop { position: absolute; inset: 0; border: 0; background: rgba(2,6,13,.65); backdrop-filter: blur(4px); }
.ft-sheet-card { position: relative; z-index: 1; width: min(560px, calc(100% - 20px)); max-height: min(88vh,780px); overflow-y: auto; margin: 0 auto 10px; padding: 19px; border: 1px solid var(--ft-border); border-radius: 25px; background: var(--ft-card); box-shadow: 0 24px 70px rgba(0,0,0,.28); animation: ftSheetIn .22s ease both; }
.ft-sheet-card.compact { width: min(500px, calc(100% - 20px)); }
@keyframes ftSheetIn { from { transform: translateY(24px); opacity: 0; } }
.ft-sheet-handle { width: 42px; height: 4px; border-radius: 99px; margin: 0 auto 15px; background: var(--ft-border); }
.ft-sheet-head { display: flex; align-items: start; justify-content: space-between; gap: 15px; margin-bottom: 17px; }
.ft-sheet-head h2 { margin: 5px 0 0; font-size: 23px; letter-spacing: -.035em; }
.ft-sheet-head > button { width: 36px; height: 36px; border: 1px solid var(--ft-border); border-radius: 12px; background: var(--ft-card-2); color: var(--ft-text); cursor: pointer; font-size: 21px; }
.ft-withdraw-review { display: grid; gap: 8px; padding: 13px; border: 1px solid var(--ft-border); border-radius: 16px; background: var(--ft-card-2); }
.ft-withdraw-review span { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ft-withdraw-review small { color: var(--ft-muted); font-size: 9px; }
.ft-withdraw-review b { font-size: 10px; }
.ft-withdraw-review .total { padding-top: 9px; border-top: 1px solid var(--ft-border); }
.ft-withdraw-review strong { color: var(--ft-blue); font-size: 18px; }
body.ft-sheet-open { overflow: hidden; }

/* Admin FT */
.ft-admin-hero { align-items: center; }
.ft-admin-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 24px; }
.ft-admin-stats article { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--ft-border); border-radius: 19px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-admin-stats article > span { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 14px; color: var(--ft-blue); background: var(--ft-blue-soft); }
.ft-admin-stats article > div { display: grid; }
.ft-admin-stats small { color: var(--ft-muted); font-size: 9px; }
.ft-admin-stats b { margin-top: 4px; font-size: 18px; }
.ft-admin-group { margin-top: 27px; }
.ft-admin-card-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.ft-admin-tournament-card { padding: 17px; border: 1px solid var(--ft-border); border-radius: 21px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-admin-card-status { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ft-admin-card-status > span { color: var(--ft-blue); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.ft-admin-card-status small { color: var(--ft-muted); font-size: 8px; }
.ft-admin-card-main { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 15px; }
.ft-admin-card-main h3 { margin: 0 0 5px; font-size: 17px; letter-spacing: -.02em; }
.ft-admin-card-main p { margin: 0; color: var(--ft-muted); font-size: 9px; }
.ft-admin-team-count { display: grid; min-width: 66px; padding: 9px; border-radius: 13px; background: var(--ft-blue-soft); color: var(--ft-blue); text-align: center; }
.ft-admin-team-count b { font-size: 14px; }
.ft-admin-team-count small { margin-top: 2px; font-size: 7px; text-transform: uppercase; }
.ft-admin-card-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 14px 0; }
.ft-admin-card-metrics span { display: grid; padding: 9px; border: 1px solid var(--ft-border); border-radius: 12px; background: var(--ft-card-2); }
.ft-admin-card-metrics small { color: var(--ft-muted); font-size: 7px; }
.ft-admin-card-metrics b { margin-top: 3px; font-size: 10px; }
.ft-admin-warning { margin: 10px 0; padding: 10px; border-radius: 12px; color: var(--ft-amber); background: var(--ft-amber-soft); font-size: 9px; line-height: 1.5; }
.ft-admin-tournament-card > .ft-button { margin-top: 9px; }
.ft-create-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 17px; align-items: start; }
.ft-create-form { padding: 24px; }
.ft-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.ft-form-grid .wide { grid-column: 1/-1; }
.ft-create-preview { position: sticky; top: 91px; padding: 22px; border: 1px solid var(--ft-border); border-radius: 23px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-create-preview h2 { margin: 6px 0 18px; font-size: 22px; letter-spacing: -.035em; }
.ft-preview-money { display: grid; padding: 17px; border-radius: 17px; background: var(--ft-blue); color: #fff; }
.ft-preview-money small { color: rgba(255,255,255,.7); font-size: 9px; }
.ft-preview-money strong { margin-top: 5px; font-size: 25px; }
.ft-podium.preview { margin-top: 14px; }
.ft-podium.preview article { min-height: auto; padding: 12px 6px; }
.ft-podium.preview article.first { min-height: 125px; }
.ft-podium.preview article.second { min-height: 105px; }
.ft-podium.preview article.third { min-height: 95px; }
.ft-manage-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px; margin-bottom: 17px; border: 1px solid var(--ft-border); border-radius: 23px; background: var(--ft-card); }
.ft-manage-header h1 { margin: 9px 0 6px; font-size: 30px; letter-spacing: -.045em; }
.ft-manage-header p { margin: 0; color: var(--ft-muted); font-size: 10px; }
.ft-manage-header-stats { display: grid; grid-template-columns: repeat(3,minmax(105px,1fr)); gap: 8px; }
.ft-manage-header-stats span { display: grid; padding: 11px; border: 1px solid var(--ft-border); border-radius: 14px; background: var(--ft-card-2); }
.ft-manage-header-stats small { color: var(--ft-muted); font-size: 8px; }
.ft-manage-header-stats b { margin-top: 4px; font-size: 12px; }
.ft-manage-layout { display: grid; grid-template-columns: minmax(0,1.42fr) minmax(320px,.58fr); gap: 17px; align-items: start; }
.ft-manage-actions { display: grid; gap: 13px; position: sticky; top: 90px; }
.ft-admin-team-list { display: grid; gap: 9px; }
.ft-admin-team-list > article { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: start; padding: 13px; border: 1px solid var(--ft-border); border-radius: 16px; background: var(--ft-card-2); }
.ft-admin-team-list > article.disqualified { opacity: .72; border-color: color-mix(in srgb,var(--ft-red) 27%,var(--ft-border)); background: var(--ft-red-soft); }
.ft-team-number { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: var(--ft-blue); background: var(--ft-blue-soft); font-size: 10px; font-weight: 900; }
.ft-team-info > div:first-child { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ft-team-info b { font-size: 11px; }
.ft-team-info p { margin: 5px 0 0; color: var(--ft-muted); font-size: 8px; }
.ft-team-info details { margin-top: 7px; }
.ft-team-info summary { cursor: pointer; color: var(--ft-blue); font-size: 8px; font-weight: 850; }
.ft-inline-roster { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.ft-inline-roster span { padding: 5px 7px; border-radius: 8px; background: var(--ft-card); border: 1px solid var(--ft-border); font-size: 8px; }
.ft-team-actions { display: grid; gap: 6px; }
.ft-team-actions a, .ft-team-actions button { min-height: 30px; padding: 0 9px; border: 1px solid var(--ft-border); border-radius: 9px; background: var(--ft-card); color: var(--ft-text); cursor: pointer; font-size: 8px; font-weight: 800; }
.ft-team-actions button { color: var(--ft-red); }
.ft-live-dot-label { display: inline-flex; align-items: center; gap: 7px; color: var(--ft-red); font-size: 9px; font-weight: 900; letter-spacing: .09em; }
.ft-live-dot-label i { width: 8px; height: 8px; border-radius: 50%; background: var(--ft-red); box-shadow: 0 0 0 5px color-mix(in srgb,var(--ft-red) 12%,transparent); animation: ftLive 1.5s ease-in-out infinite; }
@keyframes ftLive { 50% { box-shadow: 0 0 0 8px transparent; } }
.ft-action-card.static h2 { margin: 8px 0 8px; font-size: 22px; letter-spacing: -.035em; }
.ft-winner-select { display: grid; gap: 7px; padding: 11px; border: 1px solid var(--ft-border); border-radius: 14px; background: var(--ft-card-2); }
.ft-winner-select > span { font-size: 9px; font-weight: 850; }
.ft-winner-select select { background: var(--ft-card); }
.ft-result-list { display: grid; gap: 8px; margin: 14px 0; }
.ft-result-list article { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; padding: 10px; border: 1px solid var(--ft-border); border-radius: 13px; background: var(--ft-card-2); }
.ft-result-list span { color: var(--ft-blue); font-size: 8px; font-weight: 900; }
.ft-result-list b { font-size: 10px; }
.ft-result-list strong { font-size: 10px; }

/* Participant bottom navigation */
.ft-bottom-nav { position: fixed; z-index: 120; left: 50%; bottom: max(12px, env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(510px, calc(100% - 22px)); display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; padding: 6px; border: 1px solid var(--ft-border); border-radius: 22px; background: color-mix(in srgb,var(--ft-card) 92%,transparent); box-shadow: 0 18px 45px rgba(15,23,42,.18); backdrop-filter: blur(18px); }
.ft-bottom-nav > a { position: relative; z-index: 2; min-width: 0; height: 57px; display: grid; place-items: center; align-content: center; gap: 4px; border-radius: 16px; color: var(--ft-muted); transition: color .2s ease; }
.ft-bottom-nav > a .ft-icon { width: 19px; height: 19px; }
.ft-bottom-nav > a b { font-size: 8px; font-weight: 850; white-space: nowrap; }
.ft-bottom-nav > a.active { color: #fff; }
.ft-nav-indicator { position: absolute; z-index: 1; top: 6px; left: 6px; width: calc((100% - 12px - 12px) / 4); height: 57px; border-radius: 16px; background: var(--ft-blue); box-shadow: 0 8px 18px rgba(23,105,255,.24); transition: transform .28s cubic-bezier(.2,.8,.2,1), width .2s ease; }

/* Admin Web UI */
.fta-shell { --fta-card: var(--ft-card); --fta-bg2: var(--ft-card-2); --fta-border: var(--ft-border); color: var(--ft-text); }
.fta-shell * { box-sizing: border-box; }
.fta-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.fta-overview article { display: flex; align-items: center; gap: 12px; min-height: 86px; padding: 15px; border: 1px solid var(--fta-border); border-radius: 18px; background: var(--fta-card); box-shadow: var(--ft-shadow-sm); }
.fta-overview article > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; color: var(--ft-blue); background: var(--ft-blue-soft); }
.fta-overview article > div { display: grid; }
.fta-overview small { color: var(--ft-muted); font-size: 10px; }
.fta-overview b { margin-top: 4px; font-size: 22px; }
.fta-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 5px; margin-bottom: 17px; border: 1px solid var(--fta-border); border-radius: 16px; background: var(--fta-card); scrollbar-width: none; }
.fta-tabs::-webkit-scrollbar { display: none; }
.fta-tabs a { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 10px 14px; border-radius: 11px; color: var(--ft-muted); font-size: 11px; font-weight: 800; }
.fta-tabs a.active { color: #fff; background: var(--ft-blue); }
.fta-tabs i { display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--ft-red); color: #fff; font-size: 8px; font-style: normal; }
.fta-section, .fta-panel { border: 1px solid var(--fta-border); border-radius: 21px; background: var(--fta-card); box-shadow: var(--ft-shadow-sm); }
.fta-section { padding: 18px; }
.fta-panel { padding: 19px; }
.fta-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-bottom: 16px; }
.fta-heading.compact { align-items: center; }
.fta-heading span, .fta-eyebrow { color: var(--ft-blue); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.fta-heading h2, .fta-panel h2 { margin: 5px 0 0; font-size: 21px; letter-spacing: -.035em; }
.fta-heading p, .fta-panel > p { margin: 5px 0 0; color: var(--ft-muted); font-size: 10px; line-height: 1.5; }
.fta-heading > b { padding: 7px 10px; border-radius: 999px; color: var(--ft-muted); background: var(--fta-bg2); border: 1px solid var(--fta-border); font-size: 9px; }
.fta-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.fta-payment-card, .fta-withdraw-card { padding: 16px; border: 1px solid var(--fta-border); border-radius: 18px; background: var(--fta-bg2); }
.fta-card-title { display: flex; justify-content: space-between; gap: 14px; }
.fta-card-title > div { display: grid; }
.fta-card-title span { color: var(--ft-blue); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.fta-card-title h3 { margin: 5px 0 3px; font-size: 16px; }
.fta-card-title p { margin: 0; color: var(--ft-muted); font-size: 9px; }
.fta-card-title > b { font-size: 14px; white-space: nowrap; }
.fta-person { display: flex; align-items: center; gap: 9px; margin: 13px 0; }
.fta-person > span, .fta-avatar { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 auto; border-radius: 12px; background: var(--ft-blue-soft); color: var(--ft-blue); font-size: 11px; font-weight: 900; }
.fta-person > div { display: grid; }
.fta-person b { font-size: 10px; }
.fta-person small { margin-top: 3px; color: var(--ft-muted); font-size: 8px; }
.fta-money-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 11px 0; }
.fta-money-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.fta-money-grid span { display: grid; padding: 10px; border: 1px solid var(--fta-border); border-radius: 12px; background: var(--fta-card); }
.fta-money-grid small { color: var(--ft-muted); font-size: 7px; }
.fta-money-grid b { margin-top: 4px; font-size: 10px; }
.fta-proof { position: relative; display: block; height: 170px; margin: 12px 0; overflow: hidden; border-radius: 14px; background: #0f172a; }
.fta-proof img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.fta-proof span { position: absolute; inset: auto 10px 10px; display: inline-flex; align-items: center; gap: 5px; width: max-content; padding: 7px 9px; border-radius: 10px; background: rgba(4,10,20,.75); color: #fff; font-size: 8px; font-weight: 800; }
.fta-proof .ft-icon { width: 12px; height: 12px; }
.fta-actions { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }
.fta-button { display: inline-flex; align-items: center; justify-content: center; min-height: 39px; padding: 0 13px; border: 1px solid transparent; border-radius: 12px; font-size: 10px; font-weight: 850; cursor: pointer; }
.fta-button.primary { color: #fff; background: var(--ft-blue); }
.fta-button.secondary { color: var(--ft-text); background: var(--fta-card); border-color: var(--fta-border); }
.fta-button.danger { color: #fff; background: var(--ft-red); }
.fta-button.danger-soft { color: var(--ft-red); background: var(--ft-red-soft); border-color: color-mix(in srgb,var(--ft-red) 24%,var(--fta-border)); }
.fta-button.full { width: 100%; }
.fta-list { display: grid; gap: 10px; }
.fta-refund-card, .fta-tournament-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--fta-border); border-radius: 16px; background: var(--fta-bg2); }
.fta-refund-card > .fta-status { grid-column: 1/-1; justify-self: start; }
.fta-refund-card h3, .fta-tournament-row h3 { margin: 5px 0; font-size: 14px; }
.fta-refund-card p, .fta-tournament-row p { margin: 0; color: var(--ft-muted); font-size: 9px; }
.fta-refund-card small { color: var(--ft-muted); font-size: 8px; }
.fta-refund-numbers, .fta-row-metrics { display: grid; grid-template-columns: repeat(2,minmax(100px,1fr)); gap: 7px; }
.fta-refund-numbers span, .fta-row-metrics span { display: grid; padding: 9px; border: 1px solid var(--fta-border); border-radius: 11px; background: var(--fta-card); }
.fta-refund-numbers small, .fta-row-metrics small { color: var(--ft-muted); font-size: 7px; }
.fta-refund-numbers b, .fta-row-metrics b { margin-top: 4px; font-size: 9px; }
.fta-status { display: inline-flex; align-items: center; width: max-content; padding: 6px 8px; border-radius: 999px; color: var(--ft-blue); background: var(--ft-blue-soft); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.fta-status.active, .fta-status.completed { color: var(--ft-green); background: var(--ft-green-soft); }
.fta-status.inactive, .fta-status.cancelled { color: var(--ft-red); background: var(--ft-red-soft); }
.fta-destination { display: grid; margin: 13px 0; padding: 12px; border: 1px solid var(--fta-border); border-radius: 13px; background: var(--fta-card); }
.fta-destination small { color: var(--ft-muted); font-size: 7px; }
.fta-destination b { margin-top: 4px; font-size: 12px; }
.fta-destination span { margin-top: 3px; color: var(--ft-muted); font-size: 8px; }
.fta-pay-form { display: grid; gap: 8px; }
.fta-pay-form label, .fta-panel label { display: grid; gap: 6px; }
.fta-pay-form label > span, .fta-panel label > span { color: var(--ft-muted); font-size: 8px; font-weight: 750; }
.fta-pay-form input, .fta-panel input, .fta-panel textarea, .fta-panel select { width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid var(--fta-border); border-radius: 12px; background: var(--fta-bg2); color: var(--ft-text); outline: none; font-size: 10px; }
.fta-pay-form input:focus, .fta-panel input:focus, .fta-panel textarea:focus { border-color: var(--ft-blue); }
.fta-two-column, .fta-settings-layout { display: grid; grid-template-columns: minmax(280px,.55fr) minmax(0,1.45fr); gap: 14px; align-items: start; }
.fta-admin-list { display: grid; gap: 8px; }
.fta-admin-list > article { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--fta-border); border-radius: 14px; background: var(--fta-bg2); }
.fta-admin-list > article > div { display: grid; }
.fta-admin-list b { font-size: 10px; }
.fta-admin-list small { margin-top: 3px; color: var(--ft-muted); font-size: 8px; }
.fta-row-metrics { grid-template-columns: repeat(4,minmax(90px,1fr)); }
.fta-tournament-row { grid-template-columns: minmax(220px,1fr) minmax(390px,1.5fr) auto; }
.fta-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; margin: 15px 0; }
.fta-form-grid .wide { grid-column: 1/-1; }
.fta-policy-card ul { display: grid; gap: 9px; margin: 17px 0 0; padding: 0; list-style: none; }
.fta-policy-card li { display: flex; justify-content: space-between; gap: 12px; padding: 11px; border: 1px solid var(--fta-border); border-radius: 12px; background: var(--fta-bg2); }
.fta-policy-card li b { font-size: 9px; }
.fta-policy-card li span { color: var(--ft-muted); font-size: 9px; text-align: right; }
.fta-empty { grid-column: 1/-1; display: grid; place-items: center; min-height: 240px; text-align: center; }
.fta-empty > span { display: grid; place-items: center; width: 55px; height: 55px; border-radius: 18px; background: var(--ft-blue-soft); color: var(--ft-blue); }
.fta-empty h3 { margin: 15px 0 5px; font-size: 16px; }
.fta-empty p { margin: 0; color: var(--ft-muted); font-size: 9px; }
.fta-empty-inline { padding: 18px; color: var(--ft-muted); text-align: center; font-size: 9px; }
.fta-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 15px; }
.fta-modal-backdrop { position: absolute; inset: 0; border: 0; background: rgba(2,6,13,.68); backdrop-filter: blur(4px); }
.fta-modal-card { position: relative; z-index: 1; width: min(470px,100%); padding: 18px; border: 1px solid var(--fta-border); border-radius: 21px; background: var(--fta-card); box-shadow: 0 25px 80px rgba(0,0,0,.3); }
.fta-modal-head { display: flex; align-items: start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.fta-modal-head span { color: var(--ft-blue); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.fta-modal-head h2 { margin: 5px 0 0; font-size: 20px; }
.fta-modal-head > button { width: 34px; height: 34px; border: 1px solid var(--fta-border); border-radius: 11px; background: var(--fta-bg2); color: var(--ft-text); cursor: pointer; font-size: 19px; }
.fta-modal-card form { display: grid; gap: 12px; }
.fta-modal-card label { display: grid; gap: 6px; }
.fta-modal-card label > span { color: var(--ft-muted); font-size: 9px; }
.fta-modal-card textarea { width: 100%; padding: 11px; border: 1px solid var(--fta-border); border-radius: 13px; background: var(--fta-bg2); color: var(--ft-text); resize: vertical; }

.ft-reveal { animation: ftReveal .35s ease both; }
@keyframes ftReveal { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 1000px) {
  .ft-desktop-nav { display: none; }
  .ft-featured-card { grid-template-columns: .9fr 1.1fr; }
  .ft-tournament-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ft-detail-layout, .ft-manage-layout { grid-template-columns: 1fr; }
  .ft-action-card, .ft-manage-actions, .ft-create-preview { position: static; }
  .ft-create-layout { grid-template-columns: 1fr; }
  .fta-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fta-tournament-row { grid-template-columns: 1fr; }
  .fta-row-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .ft-body { padding-bottom: 92px; }
  .ft-container { width: min(100% - 22px, 1180px); }
  .ft-topbar { height: 64px; }
  .ft-brand { min-width: 0; }
  .ft-brand-mark { width: 39px; height: 39px; border-radius: 14px; }
  .ft-brand b { font-size: 13px; }
  .ft-brand small { font-size: 8px; }
  .ft-top-actions { min-width: 0; }
  .ft-store-link span { display: none; }
  .ft-store-link { width: 40px; padding: 0; }
  .ft-icon-button, .ft-avatar { width: 40px; height: 40px; }
  .ft-home-shell, .ft-detail-shell, .ft-my-shell, .ft-wallet-shell, .ft-admin-shell { padding-top: 20px; }
  .ft-home-intro, .ft-page-hero, .ft-admin-hero { display: grid; align-items: start; gap: 16px; }
  .ft-home-intro h1, .ft-page-hero h1, .ft-admin-hero h1 { font-size: 37px; }
  .ft-home-intro-badge { width: 100%; min-width: 0; }
  .ft-wallet-card, .ft-wallet-page-card { padding: 20px; border-radius: 23px; }
  .ft-wallet-card-head strong { font-size: 25px; }
  .ft-wallet-card-actions, .ft-wallet-page-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ft-continue-card { grid-template-columns: 78px minmax(0,1fr); gap: 12px; }
  .ft-continue-poster { width: 78px; height: 78px; border-radius: 15px; }
  .ft-continue-card > .ft-button { grid-column: 1/-1; width: 100%; }
  .ft-featured-card { grid-template-columns: 1fr; }
  .ft-featured-media { min-height: 235px; }
  .ft-featured-body { padding: 21px; }
  .ft-featured-body h3 { font-size: 30px; }
  .ft-featured-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ft-featured-metrics span { padding: 10px 8px; }
  .ft-featured-metrics b { font-size: 10px; }
  .ft-tournament-grid { grid-template-columns: 1fr; }
  .ft-tournament-card { display: grid; grid-template-columns: 118px minmax(0,1fr); }
  .ft-tournament-thumb { height: 100%; min-height: 132px; }
  .ft-benefits { grid-template-columns: 1fr; }
  .ft-detail-hero { grid-template-columns: 1fr; padding: 13px; gap: 8px; }
  .ft-detail-poster { height: 270px; }
  .ft-detail-intro { padding: 14px 8px 9px; }
  .ft-detail-intro h1 { font-size: 32px; }
  .ft-detail-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ft-content-card, .ft-action-card { padding: 18px; border-radius: 21px; }
  .ft-podium article.first { min-height: 145px; }
  .ft-podium article.second { min-height: 122px; }
  .ft-podium article.third { min-height: 108px; }
  .ft-podium b { font-size: 11px; }
  .ft-format-strip { grid-template-columns: 1fr; }
  .ft-roster-grid { grid-template-columns: 1fr; }
  .ft-qris-box { grid-template-columns: 100px minmax(0,1fr); }
  .ft-qris-box img, .ft-qris-empty { width: 100px; height: 100px; }
  .ft-mini-wallet { width: 100%; min-width: 0; }
  .ft-my-card-main { grid-template-columns: 78px minmax(0,1fr) auto; padding: 12px; }
  .ft-my-thumb { width: 78px; height: 72px; }
  .ft-my-copy h2 { font-size: 15px; }
  .ft-my-status-panel { align-items: stretch; flex-direction: column; }
  .ft-my-status-panel .ft-button { width: 100%; }
  .ft-wallet-page-top strong { font-size: 29px; }
  .ft-wallet-page-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ft-wallet-page-stats span:last-child { grid-column: 1/-1; }
  .ft-balance-tip { align-items: flex-start; }
  .ft-balance-tip > a { display: none; }
  .ft-wallet-layout { grid-template-columns: 1fr; }
  .ft-admin-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ft-admin-card-list { grid-template-columns: 1fr; }
  .ft-form-grid { grid-template-columns: 1fr; }
  .ft-form-grid .wide { grid-column: auto; }
  .ft-manage-header { align-items: stretch; flex-direction: column; }
  .ft-manage-header-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ft-admin-team-list > article { grid-template-columns: auto minmax(0,1fr); }
  .ft-team-actions { grid-column: 1/-1; grid-template-columns: repeat(2,1fr); }
  .ft-bottom-nav { bottom: max(8px,env(safe-area-inset-bottom)); }
  .fta-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fta-overview article { min-height: 78px; padding: 12px; }
  .fta-overview b { font-size: 18px; }
  .fta-section, .fta-panel { padding: 14px; border-radius: 18px; }
  .fta-card-grid { grid-template-columns: 1fr; }
  .fta-two-column, .fta-settings-layout { grid-template-columns: 1fr; }
  .fta-admin-list > article { grid-template-columns: auto minmax(0,1fr) auto; }
  .fta-admin-list > article form { grid-column: 1/-1; }
  .fta-admin-list > article form .fta-button { width: 100%; }
  .fta-refund-card, .fta-tournament-row { grid-template-columns: 1fr; }
  .fta-refund-numbers { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fta-row-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fta-form-grid { grid-template-columns: 1fr; }
  .fta-form-grid .wide { grid-column: auto; }
}

@media (max-width: 430px) {
  .ft-container { width: calc(100% - 18px); }
  .ft-brand > span:last-child small { display: none; }
  .ft-top-actions { gap: 5px; }
  .ft-store-link, .ft-icon-button, .ft-avatar { width: 37px; height: 37px; border-radius: 12px; }
  .ft-home-intro h1, .ft-page-hero h1, .ft-admin-hero h1 { font-size: 34px; }
  .ft-wallet-card-stats { grid-template-columns: 1fr 1fr; }
  .ft-featured-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ft-featured-metrics span:last-child { grid-column: 1/-1; }
  .ft-podium { gap: 5px; }
  .ft-podium article { padding-inline: 5px; }
  .ft-podium b { font-size: 10px; }
  .ft-detail-poster { height: 235px; }
  .ft-my-card-main { grid-template-columns: 66px minmax(0,1fr); }
  .ft-my-thumb { width: 66px; height: 66px; }
  .ft-my-arrow { display: none; }
  .ft-admin-stats { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ft-admin-stats article { padding: 12px; }
  .ft-admin-stats article > span { width: 37px; height: 37px; }
  .ft-admin-card-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ft-admin-card-metrics span:last-child { grid-column: 1/-1; }
  .ft-manage-header-stats { grid-template-columns: 1fr 1fr; }
  .ft-manage-header-stats span:last-child { grid-column: 1/-1; }
  .ft-bottom-nav > a b { font-size: 7.5px; }
  .fta-overview { gap: 8px; }
  .fta-overview article { display: grid; align-content: center; gap: 7px; }
  .fta-overview article > span { width: 36px; height: 36px; }
  .fta-money-grid.three { grid-template-columns: 1fr 1fr; }
  .fta-money-grid.three span:last-child { grid-column: 1/-1; }
}

@media (prefers-reduced-motion: reduce) {
  .ft-reveal, .ft-sheet-card, .ft-step-indicator i.active, .ft-live-dot-label i, .ft-spinner { animation: none!important; }
  .ft-nav-indicator, .ft-button, .ft-featured-card, .ft-tournament-card { transition: none!important; }
}

/* Fast Tournament v3 polish — visual only, isolated to FT selectors. */
:root {
  --ft-blue: #1769ff;
  --ft-blue-dark: #0b4fc4;
  --ft-blue-soft: #eaf2ff;
  --ft-bg: #f3f6fb;
  --ft-card: #ffffff;
  --ft-card-2: #f7f9fc;
  --ft-text: #111827;
  --ft-muted: #526278;
  --ft-border: #dbe4ef;
  --ft-accent-text: #1059cf;
  --ft-shadow: 0 20px 55px rgba(15, 23, 42, .09);
  --ft-shadow-sm: 0 10px 28px rgba(15, 23, 42, .075);
}
[data-theme="dark"] {
  --ft-bg: #080d17;
  --ft-card: #111a28;
  --ft-card-2: #0c1522;
  --ft-text: #f8fafc;
  --ft-muted: #a8b5c8;
  --ft-border: #27364b;
  --ft-blue-soft: #10294d;
  --ft-accent-text: #86b6ff;
  --ft-shadow: 0 20px 60px rgba(0, 0, 0, .34);
  --ft-shadow-sm: 0 10px 30px rgba(0, 0, 0, .28);
}
.ft-body {
  font-weight: 500;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.ft-body h1, .ft-body h2, .ft-body h3, .ft-body b, .ft-body strong { text-wrap: balance; }
.ft-body p, .ft-body small { text-wrap: pretty; }
.ft-brand-mark { padding: 0; overflow: hidden; background: var(--ft-blue); box-shadow: 0 8px 20px rgba(23, 105, 255, .22); }
.ft-brand-logo, .ft-hero-brand-logo, .ft-poster-brand-logo { display: block; flex: 0 0 auto; }
.ft-brand-mark .ft-brand-logo { width: 21px; height: 21px; color: #fff; }
.ft-brand b { font-size: 15px; letter-spacing: -.025em; }
.ft-brand small { color: var(--ft-muted); font-size: 9px; letter-spacing: .14em; }
.ft-desktop-nav { padding: 4px; border-radius: 16px; box-shadow: 0 5px 18px rgba(15,23,42,.035); }
.ft-desktop-nav a { min-height: 38px; display: inline-flex; align-items: center; padding-inline: 15px; font-size: 12px; }
.ft-desktop-nav a.active { color: #fff; background: var(--ft-blue); box-shadow: 0 8px 18px rgba(23,105,255,.2); }
.ft-store-link:hover, .ft-icon-button:hover { border-color: color-mix(in srgb, var(--ft-blue) 38%, var(--ft-border)); color: var(--ft-blue); }
.ft-home-intro {
  position: relative;
  align-items: center;
  padding: 32px;
  margin: 8px 0 22px;
  overflow: hidden;
  border: 1px solid var(--ft-border);
  border-radius: 30px;
  background: var(--ft-card);
  box-shadow: var(--ft-shadow-sm), inset 5px 0 0 var(--ft-blue);
}
.ft-home-intro::after {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  right: -95px;
  bottom: -110px;
  border: 32px solid color-mix(in srgb, var(--ft-blue) 10%, transparent);
  border-radius: 50%;
  pointer-events: none;
}
.ft-home-intro > * { position: relative; z-index: 1; }
.ft-hero-brand { display: inline-flex; align-items: center; gap: 10px; }
.ft-hero-brand-logo { width: 23px; height: 23px; color: var(--ft-blue); filter: none; }
.ft-hero-brand > span { display: grid; line-height: 1.08; }
.ft-hero-brand small { color: var(--ft-muted); font-size: 8px; font-weight: 850; letter-spacing: .16em; }
.ft-hero-brand b { margin-top: 4px; color: var(--ft-accent-text); font-size: 11px; font-weight: 900; letter-spacing: .09em; }
.ft-home-intro h1 { margin-top: 16px; font-size: clamp(37px, 4.7vw, 56px); }
.ft-home-intro p, .ft-page-hero p, .ft-admin-hero p { color: var(--ft-muted); font-size: 14px; }
.ft-eyebrow, .fta-heading span, .fta-eyebrow { color: var(--ft-accent-text); }
.ft-home-intro-badge { min-width: 285px; padding: 17px 18px; border-radius: 20px; background: var(--ft-card-2); box-shadow: none; }
.ft-home-intro-badge > .ft-icon { color: var(--ft-accent-text); }
.ft-home-intro-badge b { font-size: 14px; }
.ft-home-intro-badge small { font-size: 11px; line-height: 1.45; }
.ft-wallet-card, .ft-wallet-page-card { border: 1px solid rgba(255,255,255,.14); box-shadow: 0 22px 52px rgba(23,105,255,.22); }
.ft-wallet-card-head small, .ft-wallet-page-top small { font-size: 11px; }
.ft-wallet-card-stats small, .ft-wallet-page-stats small { font-size: 10px; }
.ft-wallet-card-stats b, .ft-wallet-page-stats b { font-size: 13px; }
.ft-button { min-height: 45px; padding-inline: 17px; font-size: 12px; letter-spacing: -.01em; }
.ft-section { margin-top: 38px; }
.ft-section-heading h2 { font-size: 25px; }
.ft-section-heading p { color: var(--ft-muted); font-size: 12px; line-height: 1.55; }
.ft-count-badge { padding: 8px 12px; color: var(--ft-text); font-size: 10px; }
.ft-continue-card { padding: 18px; gap: 18px; }
.ft-continue-content p { font-size: 12px; }
.ft-continue-content > small { font-size: 10px; }
.ft-continue-note { color: var(--ft-muted); font-size: 11px; }
.ft-status-chip { color: var(--ft-accent-text); font-size: 9px; }
.ft-featured-card { border-radius: 27px; }
.ft-featured-media { min-height: 330px; }
.ft-poster-placeholder { background: #0d1727; }
.ft-poster-brand-logo { width: 42px; height: 42px; color: var(--ft-blue); }
.ft-poster-placeholder span { font-size: 10px; color: rgba(255,255,255,.8); }
.ft-card-topline span {
  padding: 7px 10px;
  border-radius: 999px;
  color: var(--ft-accent-text);
  background: var(--ft-blue-soft);
  font-size: 9px;
}
.ft-card-topline small { font-size: 10px; }
.ft-featured-body { padding: 36px; }
.ft-featured-body > p { font-size: 12px; }
.ft-featured-metrics span { padding: 14px; }
.ft-featured-metrics small { font-size: 9px; }
.ft-featured-metrics b { font-size: 13px; }
.ft-slot-row > b { color: var(--ft-text); }
.ft-tournament-card { border-radius: 22px; }
.ft-tournament-card-body { padding: 17px; }
.ft-tournament-card-body h3 { font-size: 16px; }
.ft-tournament-card-body > p { font-size: 10px; }
.ft-mini-stats { color: var(--ft-text); font-size: 10px; }
.ft-benefits article { min-height: 78px; padding: 18px; }
.ft-benefits b { font-size: 13px; }
.ft-benefits small { font-size: 10px; }
.ft-alert { font-size: 12px; line-height: 1.55; }
.ft-detail-hero { padding: 20px; }
.ft-detail-intro > p { font-size: 11px; }
.ft-detail-summary small, .ft-payment-breakdown small { font-size: 9px; }
.ft-detail-summary b, .ft-payment-breakdown b { font-size: 12px; }
.ft-content-card, .ft-action-card { border-radius: 23px; }
.ft-content-card { padding: 24px; }
.ft-action-card { padding: 24px; }
.ft-note, .ft-content-card > p { font-size: 11px; }
.ft-format-strip b, .ft-roster-grid article b { font-size: 11px; }
.ft-form-stack label > span, .ft-form-grid label > span { color: var(--ft-text); font-size: 10px; }
.ft-form-stack input, .ft-form-stack textarea, .ft-form-stack select, .ft-form-grid input, .ft-form-grid textarea, .ft-form-grid select { min-height: 48px; font-size: 12px; }
.ft-state-box b { font-size: 12px; }
.ft-state-box small { font-size: 10px; }
.ft-page-hero, .ft-admin-hero { padding: 24px; border: 1px solid var(--ft-border); border-radius: 25px; background: var(--ft-card); box-shadow: var(--ft-shadow-sm); }
.ft-page-hero h1, .ft-admin-hero h1 { margin-bottom: 8px; }
.ft-filter-tabs, .ft-admin-tabs { padding: 6px; border-radius: 17px; }
.ft-filter-tabs a, .ft-admin-tabs a { min-height: 40px; display: inline-flex; align-items: center; font-size: 11px; }
.ft-my-copy p { font-size: 11px; }
.ft-my-copy > small { font-size: 10px; }
.ft-my-status-panel b { font-size: 12px; }
.ft-my-status-panel p, .ft-my-status-panel small { font-size: 10px; }
.ft-transaction-list b { font-size: 11px; }
.ft-transaction-list small { font-size: 9px; }
.ft-transaction-list strong { font-size: 12px; }
.ft-withdraw-head b { font-size: 12px; }
.ft-withdraw-head small { font-size: 9px; }
.ft-admin-stats small { font-size: 10px; }
.ft-admin-card-status > span { color: var(--ft-accent-text); font-size: 9px; }
.ft-admin-card-status small { font-size: 9px; }
.ft-admin-card-main h3 { font-size: 18px; }
.ft-admin-card-main p { font-size: 10px; }
.ft-admin-team-count small { font-size: 8px; }
.ft-admin-card-metrics small { font-size: 8px; }
.ft-admin-card-metrics b { font-size: 11px; }
.ft-admin-warning { font-size: 10px; }
.ft-manage-header p { font-size: 11px; }
.ft-manage-header-stats small { font-size: 9px; }
.ft-manage-header-stats b { font-size: 12px; }
.ft-team-info b { font-size: 12px; }
.ft-team-info p, .ft-team-info summary, .ft-inline-roster span { font-size: 9px; }
.ft-team-actions a, .ft-team-actions button { min-height: 34px; font-size: 9px; }
.ft-bottom-nav { box-shadow: 0 20px 50px rgba(15,23,42,.24); }
.ft-bottom-nav > a b { font-size: 8.5px; }
.fta-shell { font-size: 13px; }
.fta-overview article { min-height: 92px; padding: 17px; }
.fta-overview small { font-size: 11px; }
.fta-tabs a { min-height: 41px; font-size: 11px; }
.fta-section { padding: 20px; }
.fta-panel { padding: 21px; }
.fta-heading h2, .fta-panel h2 { font-size: 22px; }
.fta-heading p, .fta-panel > p { font-size: 11px; }
.fta-heading > b { font-size: 10px; }
.fta-payment-card, .fta-withdraw-card { padding: 18px; }
.fta-card-title span { color: var(--ft-accent-text); font-size: 9px; }
.fta-card-title h3 { font-size: 17px; }
.fta-card-title p { font-size: 10px; }
.fta-person b { font-size: 11px; }
.fta-person small { font-size: 9px; }
.fta-money-grid small, .fta-refund-numbers small, .fta-row-metrics small { font-size: 8px; }
.fta-money-grid b, .fta-refund-numbers b, .fta-row-metrics b { font-size: 10px; }
.fta-button { min-height: 41px; font-size: 10px; }
.fta-refund-card h3, .fta-tournament-row h3 { font-size: 15px; }
.fta-refund-card p, .fta-tournament-row p { font-size: 10px; }
.fta-status { font-size: 8.5px; }
.fta-destination small { font-size: 8px; }
.fta-destination span { font-size: 9px; }
.fta-pay-form label > span, .fta-panel label > span { color: var(--ft-text); font-size: 9px; }
.fta-pay-form input, .fta-panel input, .fta-panel textarea, .fta-panel select { min-height: 44px; font-size: 11px; }
.fta-admin-list b { font-size: 11px; }
.fta-admin-list small { font-size: 9px; }
.fta-policy-card li b, .fta-policy-card li span { font-size: 10px; }
.fta-modal-head span { color: var(--ft-accent-text); font-size: 9px; }
.fta-modal-card label > span { color: var(--ft-text); font-size: 10px; }

@media (min-width: 1001px) {
  .ft-body { padding-bottom: 0; }
  .ft-bottom-nav { display: none; }
  .ft-topbar { height: 76px; }
  .ft-main { min-height: calc(100vh - 76px); }
}

@media (max-width: 760px) {
  .ft-home-intro { padding: 23px 21px; border-radius: 25px; box-shadow: var(--ft-shadow-sm), inset 4px 0 0 var(--ft-blue); }
  .ft-home-intro h1 { margin-top: 14px; font-size: 36px; }
  .ft-home-intro p, .ft-page-hero p, .ft-admin-hero p { font-size: 13px; }
  .ft-hero-brand-logo { width: 22px; height: 22px; }
  .ft-home-intro-badge { min-width: 0; }
  .ft-page-hero, .ft-admin-hero { padding: 20px; border-radius: 22px; }
  .ft-featured-media { min-height: 225px; }
  .ft-featured-body { padding: 22px; }
  .ft-tournament-card-body { padding: 14px; }
  .ft-content-card, .ft-action-card { padding: 19px; }
  .ft-admin-stats article { min-height: 76px; }
  .fta-shell { font-size: 12px; }
  .fta-overview article { min-height: 82px; }
  .fta-heading { align-items: flex-start; }
  .fta-heading p { max-width: 100%; }
}

@media (max-width: 430px) {
  .ft-brand-mark .ft-brand-logo { width: 20px; height: 20px; }
  .ft-brand b { font-size: 12px; }
  .ft-home-intro h1 { font-size: 33px; }
  .ft-wallet-card-actions, .ft-wallet-page-actions { grid-template-columns: 1fr; }
  .ft-featured-body h3 { font-size: 27px; }
  .ft-featured-metrics { grid-template-columns: 1fr 1fr; }
  .ft-tournament-card { grid-template-columns: 104px minmax(0,1fr); }
  .ft-tournament-thumb { min-height: 138px; }
  .ft-mini-stats { display: grid; gap: 4px; }
  .ft-bottom-nav > a b { font-size: 8px; }
  .fta-overview small { font-size: 9px; }
  .fta-overview b { font-size: 19px; }
}


/* FT hotfix: compact gamepad brand + readable wallet actions. */
.ft-body .ft-brand-mark {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: var(--ft-blue);
  color: #fff;
  overflow: hidden;
}
.ft-body .ft-brand-mark .ft-brand-logo {
  width: 21px;
  height: 21px;
  color: #fff;
}
.ft-body .ft-hero-brand-logo {
  width: 23px;
  height: 23px;
  color: var(--ft-blue);
}
.ft-body a.ft-button-light {
  background: #fff;
  color: #0d51d7;
  border: 1px solid rgba(255,255,255,.9);
  box-shadow: 0 8px 18px rgba(4,30,83,.12);
}
.ft-body a.ft-button-light:hover {
  background: #f4f8ff;
  color: #083fba;
}
.ft-body a.ft-button-soft {
  background: rgba(6,33,83,.22);
  color: #fff;
  border: 1px solid rgba(255,255,255,.28);
}
.ft-body a.ft-button-soft:hover {
  background: rgba(6,33,83,.34);
  color: #fff;
}
.ft-body a.ft-button-primary,
.ft-body a.ft-button-danger,
.ft-body a.ft-login-link,
.ft-body a.ft-avatar {
  color: #fff;
}
.ft-wallet-card-actions .ft-button,
.ft-wallet-page-actions .ft-button {
  min-width: 124px;
  font-weight: 900;
}
@media (max-width: 760px) {
  .ft-body .ft-brand-mark { width: 36px; height: 36px; border-radius: 11px; }
  .ft-body .ft-brand-mark .ft-brand-logo { width: 20px; height: 20px; }
  .ft-body .ft-hero-brand-logo { width: 21px; height: 21px; }
}

/* Fast Tournament Admin v3 — simple operation flow, isolated to FT. */
.ft-admin-v3 {
  --fta-surface: var(--ft-card);
  --fta-surface-soft: var(--ft-card-2);
  --fta-line: var(--ft-border);
}
.ft-admin-v3 .ft-eyebrow { color: var(--ft-blue); }
.ft-admin-pagebar,
.ft-admin-subpage-head,
.ft-admin-detail-head {
  border: 1px solid var(--fta-line);
  background: var(--fta-surface);
  box-shadow: var(--ft-shadow-sm);
}
.ft-admin-pagebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 24px;
  border-radius: 22px;
}
.ft-admin-pagebar h1,
.ft-admin-subpage-head h1,
.ft-admin-detail-head h1 {
  margin: 6px 0 7px;
  color: var(--ft-text);
  font-size: clamp(25px, 3.2vw, 37px);
  line-height: 1.08;
  letter-spacing: -.045em;
}
.ft-admin-pagebar p,
.ft-admin-subpage-head p,
.ft-admin-detail-head p {
  margin: 0;
  color: var(--ft-muted);
  font-size: 13px;
  line-height: 1.55;
}
.ft-admin-pagebar > .ft-button { flex: 0 0 auto; min-height: 46px; }

.ft-admin-quickstats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, .72fr)) minmax(220px, 1.35fr);
  gap: 10px;
  margin-top: 13px;
}
.ft-admin-quickstats article,
.ft-admin-quickstats > a {
  position: relative;
  min-width: 0;
  min-height: 76px;
  display: grid;
  align-content: center;
  padding: 14px 16px;
  border: 1px solid var(--fta-line);
  border-radius: 17px;
  background: var(--fta-surface);
}
.ft-admin-quickstats small { color: var(--ft-muted); font-size: 10px; font-weight: 750; }
.ft-admin-quickstats b { margin-top: 4px; color: var(--ft-text); font-size: 21px; letter-spacing: -.03em; }
.ft-admin-quickstats .attention { border-color: color-mix(in srgb, var(--ft-amber) 45%, var(--fta-line)); background: var(--ft-amber-soft); }
.ft-admin-quickstats .attention b { color: var(--ft-amber); }
.ft-admin-quickstats > a { background: var(--ft-blue); border-color: var(--ft-blue); }
.ft-admin-quickstats > a small { color: rgba(255,255,255,.75); }
.ft-admin-quickstats > a b { padding-right: 28px; color: #fff; font-size: 18px; }
.ft-admin-quickstats > a .ft-icon { position: absolute; right: 15px; top: 50%; width: 18px; height: 18px; color: #fff; transform: translateY(-50%); }

.ft-admin-action-zone,
.ft-admin-dashboard-section,
.ft-admin-all-view { margin-top: 28px; }
.ft-admin-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 13px;
}
.ft-admin-section-head h2 { margin: 4px 0 3px; color: var(--ft-text); font-size: 23px; letter-spacing: -.035em; }
.ft-admin-section-head p { margin: 0; color: var(--ft-muted); font-size: 12px; line-height: 1.5; }
.ft-admin-carousel-count,
.ft-admin-section-head > b {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid var(--fta-line);
  border-radius: 999px;
  background: var(--fta-surface);
  color: var(--ft-muted);
  font-size: 10px;
  font-weight: 850;
}
.ft-admin-carousel-count b { color: var(--ft-blue); }
.ft-admin-see-all {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--fta-line);
  border-radius: 12px;
  background: var(--fta-surface);
  color: var(--ft-blue)!important;
  font-size: 10px;
  font-weight: 850;
}
.ft-admin-see-all .ft-icon { width: 15px; height: 15px; }
.ft-admin-back {
  display: inline-flex;
  margin-bottom: 7px;
  color: var(--ft-blue)!important;
  font-size: 11px;
  font-weight: 850;
}

.ft-admin-action-carousel { position: relative; overflow: hidden; }
.ft-admin-action-track {
  display: flex;
  gap: 13px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding: 2px max(12%, 92px) 15px 0;
  overscroll-behavior-inline: contain;
}
.ft-admin-action-track::-webkit-scrollbar { display: none; }
.ft-admin-action-slide {
  flex: 0 0 min(760px, 87%);
  scroll-snap-align: start;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  min-height: 225px;
  padding: 23px;
  border: 1px solid color-mix(in srgb, var(--ft-amber) 34%, var(--fta-line));
  border-radius: 22px;
  background: var(--fta-surface);
  box-shadow: var(--ft-shadow-sm);
  opacity: .48;
  transform: scale(.97);
  transition: opacity .25s ease, transform .25s ease, border-color .25s ease;
}
.ft-admin-action-slide.active { opacity: 1; transform: scale(1); border-color: color-mix(in srgb, var(--ft-amber) 60%, var(--fta-line)); }
.ft-admin-urgent-label,
.ft-live-dot-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--ft-amber);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
}
.ft-admin-urgent-label i,
.ft-live-dot-label i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px color-mix(in srgb, currentColor 13%, transparent); }
.ft-admin-action-copy h3 { margin: 10px 0 5px; color: var(--ft-text); font-size: clamp(22px, 3vw, 31px); letter-spacing: -.045em; }
.ft-admin-action-copy > p { margin: 0; color: var(--ft-muted); font-size: 12px; }
.ft-admin-action-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 17px; }
.ft-admin-action-meta span { min-width: 105px; display: grid; padding: 10px 12px; border: 1px solid var(--fta-line); border-radius: 13px; background: var(--fta-surface-soft); }
.ft-admin-action-meta small { color: var(--ft-muted); font-size: 8px; }
.ft-admin-action-meta b { margin-top: 3px; color: var(--ft-text); font-size: 12px; }
.ft-admin-action-note { margin-top: 11px; padding: 10px 12px; border-radius: 12px; font-size: 10px; line-height: 1.5; }
.ft-admin-action-note.warning { color: var(--ft-amber); background: var(--ft-amber-soft); }
.ft-admin-action-note.danger { color: var(--ft-red); background: var(--ft-red-soft); }
.ft-admin-action-note.info { color: var(--ft-blue); background: var(--ft-blue-soft); }
.ft-admin-action-buttons { min-width: 176px; display: grid; gap: 9px; }
.ft-admin-action-buttons form { margin: 0; }
.ft-admin-action-buttons .ft-button { width: 100%; min-height: 44px; white-space: nowrap; }
.ft-admin-carousel-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 40px;
  height: 40px;
  border: 1px solid var(--fta-line);
  border-radius: 50%;
  background: var(--fta-surface);
  color: var(--ft-text);
  box-shadow: var(--ft-shadow-sm);
  cursor: pointer;
  font-size: 25px;
  line-height: 1;
  transform: translateY(-65%);
}
.ft-admin-carousel-arrow.prev { left: 8px; }
.ft-admin-carousel-arrow.next { right: 8px; }
.ft-admin-carousel-dots { display: flex; justify-content: center; gap: 5px; margin-top: -3px; }
.ft-admin-carousel-dots i { width: 6px; height: 6px; border-radius: 999px; background: var(--ft-border); transition: width .2s ease, background .2s ease; }
.ft-admin-carousel-dots i.active { width: 18px; background: var(--ft-blue); }
.ft-admin-clear-state {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 17px;
  border: 1px solid color-mix(in srgb, var(--ft-green) 25%, var(--fta-line));
  border-radius: 18px;
  background: var(--ft-green-soft);
}
.ft-admin-clear-state > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--ft-green); color: #fff; }
.ft-admin-clear-state div { display: grid; }
.ft-admin-clear-state b { color: var(--ft-text); font-size: 12px; }
.ft-admin-clear-state small { margin-top: 3px; color: var(--ft-muted); font-size: 10px; }

.ft-admin-standard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ft-admin-list-card {
  min-width: 0;
  display: grid;
  align-content: start;
  padding: 16px;
  border: 1px solid var(--fta-line);
  border-radius: 18px;
  background: var(--fta-surface);
  box-shadow: 0 5px 17px rgba(15,23,42,.045);
}
.ft-admin-list-card-top,
.ft-admin-list-card-body,
.ft-admin-list-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ft-admin-list-card-top time { color: var(--ft-muted); font-size: 9px; font-weight: 750; }
.ft-admin-list-card-body { margin-top: 14px; align-items: flex-start; }
.ft-admin-list-card-body > div { min-width: 0; }
.ft-admin-list-card-body h3 { overflow: hidden; margin: 0; color: var(--ft-text); font-size: 16px; letter-spacing: -.02em; white-space: nowrap; text-overflow: ellipsis; }
.ft-admin-list-card-body p { margin: 5px 0 0; color: var(--ft-muted); font-size: 10px; }
.ft-admin-slot-pill { flex: 0 0 auto; display: grid; min-width: 55px; padding: 7px 9px; border-radius: 11px; background: var(--ft-blue-soft); color: var(--ft-blue); text-align: center; }
.ft-admin-slot-pill b { font-size: 12px; }
.ft-admin-slot-pill small { margin-top: 1px; font-size: 7px; font-weight: 850; text-transform: uppercase; }
.ft-admin-slot-progress { height: 5px; overflow: hidden; margin: 14px 0 11px; border-radius: 999px; background: var(--fta-surface-soft); }
.ft-admin-slot-progress i { display: block; height: 100%; border-radius: inherit; background: var(--ft-blue); }
.ft-admin-list-card-foot { margin-top: auto; padding-top: 9px; border-top: 1px solid var(--fta-line); }
.ft-admin-list-card-foot > span { color: var(--ft-muted); font-size: 9px; }
.ft-admin-list-card-foot > span b { color: var(--ft-text); font-size: 9px; }
.ft-admin-list-card-foot > a { display: inline-flex; align-items: center; gap: 5px; color: var(--ft-blue)!important; font-size: 9px; font-weight: 900; white-space: nowrap; }
.ft-admin-list-card-foot .ft-icon { width: 13px; height: 13px; }
.ft-admin-empty-wide { grid-column: 1 / -1; padding: 19px; border: 1px dashed var(--fta-line); border-radius: 16px; color: var(--ft-muted); background: var(--fta-surface); text-align: center; font-size: 11px; }

.ft-admin-subpage-head { padding: 21px 23px; margin-bottom: 15px; border-radius: 21px; }
.ft-admin-subpage-head > div > a { display: inline-flex; margin-bottom: 9px; color: var(--ft-blue)!important; font-size: 11px; font-weight: 850; }
.ft-admin-create-v3 .ft-content-card { box-shadow: var(--ft-shadow-sm); }
.ft-admin-create-v3 .ft-create-preview { box-shadow: var(--ft-shadow-sm); }

.ft-admin-detail-head { padding: 20px 22px; margin-bottom: 13px; border-radius: 21px; }
.ft-admin-detail-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.ft-admin-detail-title > div { min-width: 0; }
.ft-admin-detail-title .ft-button { flex: 0 0 auto; }
.ft-admin-detail-metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; margin-top: 17px; }
.ft-admin-detail-metrics span { display: grid; padding: 10px 11px; border: 1px solid var(--fta-line); border-radius: 13px; background: var(--fta-surface-soft); }
.ft-admin-detail-metrics small { color: var(--ft-muted); font-size: 8px; }
.ft-admin-detail-metrics b { overflow: hidden; margin-top: 3px; color: var(--ft-text); font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.ft-admin-detail-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr); gap: 13px; align-items: start; }
.ft-admin-participants { min-width: 0; box-shadow: var(--ft-shadow-sm); }
.ft-admin-participants .ft-admin-section-head { align-items: center; }
.ft-admin-detail-action { position: sticky; top: 89px; }
.ft-admin-team-list-v3 { display: grid; gap: 8px; margin-top: 15px; }
.ft-admin-team-list-v3 > article {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--fta-line);
  border-radius: 15px;
  background: var(--fta-surface-soft);
}
.ft-admin-team-list-v3 > article.disqualified { border-color: color-mix(in srgb, var(--ft-red) 38%, var(--fta-line)); background: var(--ft-red-soft); }
.ft-admin-team-summary { min-width: 0; }
.ft-admin-team-summary > div { display: flex; align-items: center; gap: 7px; min-width: 0; }
.ft-admin-team-summary h3 { overflow: hidden; margin: 0; color: var(--ft-text); font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.ft-admin-team-summary p { margin: 4px 0 0; color: var(--ft-muted); font-size: 9px; }
.ft-admin-team-summary > small { display: block; margin-top: 4px; color: var(--ft-red); font-size: 8px; }
.ft-team-actions-v3 { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.ft-team-actions-v3 button,
.ft-team-actions-v3 a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 9px;
  border: 1px solid var(--fta-line);
  border-radius: 9px;
  background: var(--fta-surface);
  color: var(--ft-text)!important;
  cursor: pointer;
  font-size: 8px;
  font-weight: 850;
  white-space: nowrap;
}
.ft-team-actions-v3 button:hover,
.ft-team-actions-v3 a:hover { border-color: color-mix(in srgb, var(--ft-blue) 50%, var(--fta-line)); color: var(--ft-blue)!important; }
.ft-team-actions-v3 .danger { color: var(--ft-red)!important; }
.ft-admin-result-card .ft-form-stack { margin-top: 16px; }
.ft-admin-result-card > .ft-button-soft { margin-top: 10px; color: var(--ft-blue)!important; background: var(--ft-blue-soft); border: 1px solid color-mix(in srgb, var(--ft-blue) 25%, var(--fta-line)); }
[data-theme="dark"] .ft-admin-result-card > .ft-button-soft { color: #d8e7ff!important; }

.ft-bottom-nav.ft-bottom-nav-admin { grid-template-columns: repeat(2, 1fr); width: min(380px, calc(100% - 22px)); }
.ft-desktop-nav.ft-desktop-nav-admin { min-width: 230px; justify-content: center; }

@media (max-width: 1000px) {
  .ft-admin-quickstats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-admin-standard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-admin-detail-layout { grid-template-columns: 1fr; }
  .ft-admin-detail-action { position: static; }
  .ft-admin-action-track { padding-right: 9%; }
  .ft-admin-action-slide { flex-basis: 89%; }
}

@media (max-width: 760px) {
  .ft-admin-v3 { padding-top: 16px; }
  .ft-admin-pagebar { align-items: stretch; padding: 18px; border-radius: 19px; }
  .ft-admin-pagebar > .ft-button { width: 100%; }
  .ft-admin-pagebar,
  .ft-admin-detail-title { flex-direction: column; }
  .ft-admin-pagebar h1,
  .ft-admin-subpage-head h1,
  .ft-admin-detail-head h1 { font-size: 27px; }
  .ft-admin-pagebar p,
  .ft-admin-subpage-head p,
  .ft-admin-detail-head p { font-size: 11px; }
  .ft-admin-quickstats { gap: 8px; }
  .ft-admin-quickstats article,
  .ft-admin-quickstats > a { min-height: 68px; padding: 12px 13px; border-radius: 15px; }
  .ft-admin-quickstats b { font-size: 18px; }
  .ft-admin-quickstats > a b { font-size: 14px; }
  .ft-admin-section-head { align-items: flex-start; }
  .ft-admin-section-head h2 { font-size: 20px; }
  .ft-admin-section-head p { font-size: 10px; }
  .ft-admin-see-all { min-height: 34px; padding-inline: 10px; font-size: 9px; }
  .ft-admin-action-track { gap: 10px; padding: 2px 10% 14px 0; }
  .ft-admin-action-slide { flex: 0 0 90%; grid-template-columns: 1fr; gap: 16px; min-height: 0; padding: 18px; border-radius: 19px; }
  .ft-admin-action-copy h3 { font-size: 23px; }
  .ft-admin-action-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ft-admin-action-meta span { min-width: 0; padding: 9px; }
  .ft-admin-action-buttons { min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-admin-action-buttons form { min-width: 0; }
  .ft-admin-action-buttons .ft-button { padding-inline: 9px; font-size: 10px; white-space: normal; }
  .ft-admin-carousel-arrow { display: none; }
  .ft-admin-standard-grid { grid-template-columns: 1fr; }
  .ft-admin-list-card { padding: 14px; }
  .ft-admin-detail-head { padding: 17px; }
  .ft-admin-detail-title { align-items: stretch; }
  .ft-admin-detail-title .ft-button { width: 100%; }
  .ft-admin-detail-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-admin-participants .ft-admin-section-head { align-items: stretch; flex-direction: column; }
  .ft-admin-participants .ft-admin-section-head .ft-button { width: 100%; }
  .ft-admin-team-list-v3 > article { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .ft-team-actions-v3 { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ft-team-actions-v3 button,
  .ft-team-actions-v3 a { min-width: 0; padding: 0 6px; }
}

@media (max-width: 430px) {
  .ft-admin-quickstats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-admin-quickstats > a b { font-size: 12px; }
  .ft-admin-action-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-admin-action-meta span:last-child { grid-column: 1 / -1; }
  .ft-admin-action-buttons { grid-template-columns: 1fr; }
  .ft-team-actions-v3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-team-actions-v3 .danger { grid-column: 1 / -1; }
}

/* Owner-controlled global motion levels. */
html[data-rz-motion="full"] .ft-admin-action-slide.active{transition-duration:.36s}
html[data-rz-motion="high"] .ft-reveal{animation-duration:.34s}
html[data-rz-motion="medium"] .ft-reveal{animation-duration:.23s;transform:none}
html[data-rz-motion="medium"] .ft-admin-action-slide{transition-duration:.18s}
html[data-rz-motion="low"] .ft-reveal,html[data-rz-motion="low"] .ft-sheet-card,html[data-rz-motion="low"] .ft-step-indicator i.active,html[data-rz-motion="low"] .ft-live-dot-label i,html[data-rz-motion="low"] .ft-admin-action-slide{animation:none!important;transition-duration:.1s!important}
html[data-rz-motion="off"] .ft-reveal,html[data-rz-motion="off"] .ft-sheet-card,html[data-rz-motion="off"] .ft-step-indicator i.active,html[data-rz-motion="off"] .ft-live-dot-label i,html[data-rz-motion="off"] .ft-spinner,html[data-rz-motion="off"] .ft-admin-action-slide{animation:none!important;transition:none!important}
