/* /federation/{CODE} and the federation directory.
   Hand-written and scoped under .fp: the compiled Tailwind file is purged at
   build time, so a new view cannot rely on utility classes it has never seen.
   Colours: saffron = main button + section accents, cosmic = links,
   gold = the partner badge only, the brand gradient = the partner band only.
   Nothing here goes below 15px. At 640px and below every table becomes cards. */
.fp{--saf:#f15c0a;--saf50:#fff8ed;--saf200:#ffdba8;--cos:#4f46e5;--cos50:#eef2ff;--ink:#1f2230;--ink5:#677288;--ink3:#b1b8c4;--ink2:#d5d9e0;--ink1:#eceef2;--ink0:#f6f7f9;--gold:#b45309;--gold50:#fffbeb;--gold3:#fcd34d;
  --display:'Plus Jakarta Sans','Inter',sans-serif;
  color:var(--ink);font-size:16px;line-height:1.5;background:#fff;overflow-wrap:break-word}
.fp *{box-sizing:border-box}
.fp h1,.fp h2,.fp h3,.fp p,.fp ul,.fp ol,.fp dl,.fp dd,.fp figure{margin:0;padding:0}
.fp ul,.fp ol{list-style:none}
.fp a{color:var(--cos);text-decoration:none;font-weight:600}
.fp a:hover{text-decoration:underline}
.fp [hidden]{display:none !important}
.fp-in{max-width:1080px;margin:0 auto;padding:0 20px}
.fp-ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* hero */
.fp-hero{background:linear-gradient(135deg,#eef2ff 0%,#fff 50%,#fff8ed 100%);padding:20px 0 28px;border-bottom:1px solid var(--ink1)}
.fp-hero-in{display:flex;gap:32px;align-items:center;justify-content:space-between}
.fp-hero-main{min-width:0;flex:1}
.fp-crumb{display:flex;gap:8px;font-size:15px;color:var(--ink5);margin-bottom:18px}
.fp-id{display:flex;gap:16px;align-items:center}
.fp-crest{width:72px;height:72px;border-radius:14px;border:1px solid var(--ink2);background:#fff;display:grid;place-items:center;flex:none;overflow:hidden}
.fp-crest img{max-width:100%;max-height:100%;width:auto;height:auto;display:block}
.fp-crest-flag img{width:54px;border-radius:3px;box-shadow:0 0 0 1px var(--ink1)}
.fp h1{font:800 26px/1.2 var(--display);letter-spacing:-.01em;text-wrap:balance}
.fp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px;color:var(--ink5);font-size:15px}
.fp-code{display:inline-flex;align-items:center;gap:6px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border:1px solid var(--ink2);border-radius:6px;color:var(--ink);background:#fff}
.fp-code img{width:20px;height:auto;border-radius:2px;display:block}
.fp-ribbon{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:8px 12px;border:1px solid var(--gold3);background:var(--gold50);color:var(--gold);border-radius:8px;font-size:15px;font-weight:700}
.fp-quiet{margin-top:16px;font-size:15px;color:var(--ink5)}
.fp-hero-art{display:none;flex:none;width:260px}
.fp-hero-art img{width:100%;height:auto;display:block;border-radius:12px;box-shadow:0 12px 32px rgba(31,34,48,.16),0 0 0 1px rgba(31,34,48,.08)}
.fp-nums{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.fp-nums div{background:#fff;border:1px solid var(--ink1);border-radius:12px;padding:14px 16px;color:var(--ink5)}
.fp-nums .fp-ico{color:var(--saf);width:22px;height:22px;display:block;margin-bottom:8px}
.fp-nums b{display:block;font:800 26px/1.15 var(--display);font-variant-numeric:tabular-nums;color:var(--ink)}
.fp-nums span{font-size:15px;display:block}
.fp-delta{display:block;font-style:normal;font-size:15px;color:var(--ink5);margin-top:2px}
.fp-doors{display:grid;gap:10px;margin-top:20px}
.fp-btn{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;border-radius:10px;font:700 16px/1 inherit;font-family:inherit;border:1.5px solid var(--ink2);background:#fff;color:var(--ink) !important;text-decoration:none !important;cursor:pointer}
.fp-btn.main{background:var(--saf);border-color:var(--saf);color:#fff !important}
.fp-btn:focus-visible,.fp button:focus-visible,.fp a:focus-visible{outline:3px solid #6366f1;outline-offset:2px}
.fp-doorhint{font-size:15px;color:var(--ink5);margin-top:8px}

/* sticky section tabs — scroll sideways on phones */
.fp-tabs{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--ink1)}
.fp-tabs ul{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:0 20px;max-width:1080px;margin:0 auto}
.fp-tabs ul::-webkit-scrollbar{display:none}
.fp-tabs a{display:block;white-space:nowrap;padding:14px 10px 12px;font-size:15px;font-weight:600;color:var(--ink5);border-bottom:2px solid transparent;text-decoration:none}
.fp-tabs a.on{color:var(--ink);border-bottom-color:var(--saf)}

.fp-sec{padding:36px 0;border-bottom:1px solid var(--ink1);scroll-margin-top:56px}
.fp-sec:last-of-type{border-bottom:0}
.fp h2{font:800 21px/1.25 var(--display);padding-left:12px;border-left:3px solid var(--saf)}
.fp h2.fp-h2-gap{margin-top:28px}
.fp h3{font:700 16px/1.3 inherit;font-family:inherit;margin:24px 0 10px}
.fp-lede{color:var(--ink5);font-size:15px;margin-top:6px}
.fp-cap{font-size:15px;color:var(--ink5);margin-top:10px}

/* top players */
.fp-seg{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.fp-seg button{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--ink2);background:#fff;font:600 15px inherit;font-family:inherit;color:var(--ink);cursor:pointer}
.fp-seg button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.fp-fmt{display:flex;gap:20px;margin-top:14px;border-bottom:1px solid var(--ink1)}
.fp-fmt button{min-height:44px;padding:0 2px;border:0;background:none;font:600 15px inherit;font-family:inherit;color:var(--ink5);border-bottom:2px solid transparent;cursor:pointer}
.fp-fmt button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--saf)}
.fp-podium{display:grid;gap:10px;margin-top:16px}
.fp-podium li{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"av name rtg" "av sub rtg";column-gap:12px;align-items:center;border:1px solid var(--ink1);border-radius:12px;padding:12px 14px;position:relative;background:#fff}
.fp-av{grid-area:av;width:48px;height:48px;border-radius:50%;background:var(--cos50);color:#3730a3;font:800 16px var(--display);display:grid;place-items:center}
.fp-podium li:first-child .fp-av{background:var(--saf50);color:#9a3412}
.fp-pod-rank{position:absolute;left:44px;top:8px;min-width:22px;height:22px;border-radius:11px;background:var(--ink);color:#fff;font-size:13px;font-weight:700;display:grid;place-items:center;padding:0 5px;border:2px solid #fff}
.fp-pod-name{grid-area:name;font-weight:700;font-size:17px;min-width:0}
.fp-pod-sub{grid-area:sub;font-size:15px;color:var(--ink5);display:flex;gap:8px;align-items:center}
.fp-pod-rtg{grid-area:rtg;font:800 22px var(--display);font-variant-numeric:tabular-nums}
.fp-ttl{font-style:normal;font-size:15px;font-weight:700;color:var(--ink5)}
.fp-pod-sub .fp-ttl{color:var(--ink);background:var(--ink1);border-radius:5px;padding:0 6px}
.fp-tbl{width:100%;border-collapse:collapse;margin-top:10px}
.fp-tbl th{font-size:15px;font-weight:600;color:var(--ink5);text-align:left;padding:10px 8px;border-bottom:1px solid var(--ink1)}
.fp-tbl td{padding:11px 8px;border-bottom:1px solid var(--ink1);font-size:16px;vertical-align:baseline}
.fp-tbl .n{width:56px;color:var(--ink5);font-variant-numeric:tabular-nums}
.fp-tbl .r{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.fp-tbl .y{text-align:right;color:var(--ink5);font-variant-numeric:tabular-nums;width:90px}
.fp-tbl th.r,.fp-tbl th.y{font-weight:600;color:var(--ink5)}
.fp-tbl .lb{display:none}
.fp-more{margin-top:14px;min-height:44px;padding:0 16px;border-radius:10px;border:1.5px solid var(--ink2);background:#fff;font:600 15px inherit;font-family:inherit;color:var(--ink);cursor:pointer}
.fp-empty{padding:20px 0;color:var(--ink5);font-size:15px}

/* statistics */
.fp-two{display:grid;grid-template-columns:minmax(0,1fr);gap:0 40px}
.fp-kv{margin-top:14px}
.fp-kv div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--ink1)}
.fp-kv dt{color:var(--ink5)}
.fp-kv dd{font-weight:700;font-variant-numeric:tabular-nums}
.fp-titles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fp-titles li{border:1px solid var(--ink1);border-radius:10px;padding:10px 8px;text-align:center}
.fp-titles b{display:block;font:800 20px/1.2 var(--display);font-variant-numeric:tabular-nums}
.fp-titles span{font-size:15px;color:var(--ink5);font-weight:600}
.fp-titles li.z b{color:var(--ink3)}
.fp-bars{display:flex;align-items:flex-end;gap:2px;height:150px;border-bottom:1px solid var(--ink2);padding-top:22px;margin-top:8px}
.fp-bars div{flex:1;position:relative;background:var(--cos);border-radius:4px 4px 0 0;min-height:1px}
.fp-bars div.z{background:var(--ink2)}
.fp-bars div:hover,.fp-bars div:focus{background:#312e81;outline:0}
.fp-bars div i{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font:600 13px inherit;font-family:inherit;font-style:normal;color:var(--ink);white-space:nowrap;padding-bottom:3px;display:none}
.fp-bars div.mx i,.fp-bars div:hover i,.fp-bars div:focus i{display:block}
.fp-bars:hover div.mx:not(:hover) i{display:none}
.fp-axis{display:flex;gap:2px;margin-top:4px}
.fp-axis span{flex:1;min-width:0;font-size:12px;color:var(--ink5);text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.fp-axis span:nth-child(even){visibility:hidden}
.fp details{margin-top:8px;font-size:15px}
.fp summary{color:var(--cos);font-weight:600;cursor:pointer;min-height:44px;display:flex;align-items:center}
.fp-on{margin-top:24px;padding:16px;border:1px solid var(--ink1);border-radius:12px;background:var(--ink0)}
.fp-on b{font:800 22px var(--display)}
.fp-src{font-size:15px;color:var(--ink5);margin-top:20px}

/* officials, achievements, reports */
.fp-off{margin-top:8px}
.fp-off li{display:flex;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--ink1)}
.fp-off li span{color:var(--ink5)}
.fp-ach li{padding:14px 0;border-bottom:1px solid var(--ink1)}
.fp-ach time{display:block;font-size:15px;color:var(--ink5);font-weight:600}
.fp-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:16px -20px 0;padding:0 20px 8px;scrollbar-width:thin}
.fp-rail{align-items:flex-start}
.fp-rail figure{flex:0 0 240px;scroll-snap-align:start}
.fp-rail img{width:100%;height:auto;max-height:420px;object-fit:cover;border-radius:12px;display:block;background:var(--ink1)}
.fp-rail figcaption{font-size:15px;margin-top:6px}
.fp-rail small{display:block;font-size:15px;color:var(--ink5)}
.fp-partner{background:#1f2230 linear-gradient(135deg,#312e81 0%,#1f2230 52%,#7f2f12 100%);color:#fff;border-radius:16px;padding:24px 20px}
.fp-partner .k{font-size:15px;font-weight:700;color:#fcd34d}
.fp-partner .t{font:800 22px/1.25 var(--display);margin-top:6px;text-wrap:balance}
.fp-partner a{color:#fff;text-decoration:underline;display:inline-block;margin-top:14px}
.fp-rep li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--ink1)}
.fp-rep small{display:block;font-size:15px;color:var(--ink5)}
.fp a.fp-lock{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--ink5);white-space:nowrap}
.fp-lock .fp-ico{width:16px;height:16px}

/* offer + enquiry */
.fp-cards{display:grid;gap:12px;margin-top:16px}
.fp-card{border:1px solid var(--ink2);border-radius:12px;padding:16px}
.fp-card b{display:block;font-size:17px}
.fp-card p{color:var(--ink5);font-size:15px;margin-top:4px}
.fp-form{display:grid;gap:14px;max-width:640px}
.fp-form label{display:grid;gap:6px;font-weight:600;font-size:15px}
.fp-form input,.fp-form textarea{width:100%;min-height:52px;border:1.5px solid var(--ink2);border-radius:10px;padding:12px 14px;font:400 16px inherit;font-family:inherit;color:var(--ink);background:#fff}
.fp-form input:focus,.fp-form textarea:focus{border-color:var(--saf);box-shadow:0 0 0 3px var(--saf200);outline:0}
.fp-flash{padding:12px 14px;border-radius:10px;font-weight:600;margin-bottom:14px;max-width:640px}
.fp-flash.ok{background:#ecfdf5;color:#065f46}
.fp-flash.bad{background:#fff1f2;color:#9f1239}
.fp-claim{margin-top:28px;padding-top:20px;border-top:1px solid var(--ink1);display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.fp-foot{padding:24px 0 36px;display:flex;flex-wrap:wrap;gap:10px}
.fp-foot a{width:44px;height:44px;border:1px solid var(--ink2);border-radius:10px;display:grid;place-items:center;color:var(--ink5)}

/* directory */
.fp-dir-search{width:100%;max-width:520px;min-height:52px;border:1.5px solid var(--ink2);border-radius:10px;padding:0 14px;font:400 16px inherit;font-family:inherit;margin-top:16px}
.fp-dir{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:20px}
.fp-dir a{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 12px;border:1px solid var(--ink1);border-radius:10px;color:var(--ink);font-weight:600}
.fp-dir a:hover{border-color:var(--ink3);text-decoration:none}
.fp-dir img{width:30px;height:auto;border-radius:3px;box-shadow:0 0 0 1px var(--ink1);flex:none}
.fp-dir small{margin-left:auto;font-size:15px;color:var(--ink5);font-weight:400;white-space:nowrap}
.fp-dir span{min-width:0}

/* Phones: every table becomes cards. */
@media (max-width:640px){
  .fp-tbl,.fp-tbl tbody,.fp-tbl tr,.fp-tbl td{display:block;width:100%}
  .fp-tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .fp-tbl tr{position:relative;padding:12px 0 12px 40px;border-bottom:1px solid var(--ink1)}
  .fp-tbl td{border:0;padding:0;text-align:left !important}
  .fp-tbl .n{position:absolute;left:0;top:12px;width:32px;font-weight:700}
  .fp-tbl .nm{font-weight:600;font-size:17px}
  .fp-tbl .r,.fp-tbl .y{display:inline-block;width:auto;margin-right:16px;font-size:15px}
  .fp-tbl .lb{display:inline;color:var(--ink5);font-weight:400}
  .fp-axis span{visibility:hidden}
  .fp-axis span:nth-child(4n+1){visibility:visible}
}
@media (min-width:700px){
  .fp h1{font-size:34px}
  .fp-hero{padding:28px 0 36px}
  .fp-crest{width:88px;height:88px}
  .fp-hero-art{display:block}
  .fp-nums{grid-template-columns:repeat(4,1fr);gap:12px}
  .fp-nums b{font-size:30px}
  .fp-doors{grid-template-columns:1fr 1fr;max-width:520px}
  .fp-podium{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fp-podium li{grid-template-columns:auto 1fr;grid-template-areas:"av rtg" "name name" "sub sub";row-gap:6px;padding:16px}
  .fp-pod-rtg{justify-self:end;font-size:26px}
  .fp-two{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fp-titles{grid-template-columns:repeat(8,1fr)}
  .fp-kv-narrow{max-width:calc(50% - 20px)}
  .fp-cards{grid-template-columns:repeat(3,1fr)}
  .fp-form{grid-template-columns:1fr 1fr}
  .fp-form .wide{grid-column:1 / -1}
  .fp-form .fp-btn{justify-self:start}
  .fp-rail figure{flex-basis:280px}
  .fp-off{columns:2;column-gap:40px}
  .fp-off li{break-inside:avoid}
  .fp-partner{padding:32px}
  .fp-dir{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1000px){
  .fp-in,.fp-tabs ul{padding-left:32px;padding-right:32px}
  .fp-rail{margin-inline:0;padding-inline:0}
  .fp-hero-art{width:300px}
  .fp-dir{grid-template-columns:repeat(3,minmax(0,1fr))}
}
