/* Standalone tracker theme. Every selector stays inside the page template. */
.gsnlt-country-search { margin-block-start: .35rem; }
.gsnlt-country-search summary { cursor: pointer; font-size: .85rem; }
.gsnlt-country-search label { margin-block-start: .35rem; }
.gsnlt-controls .gsnlt-country-search input {
    min-inline-size: 0;
    inline-size: 100%;
    max-inline-size: 16rem;
    background: #19152b;
    color: #fff;
    border: 1px solid #a98bff;
    border-radius: 4px;
}
.gsnlt {
    --ink: #f5f1ff;
    --muted: #c5c9df;
    --base: #0b1026;
    --panel: #171b38;
    --edge: #444970;
    --pink: #ff6fae;
    --peach: #ffb067;
    --violet: #a98bff;
    background: var(--base);
    color: var(--ink);
    font: 400 1rem/1.55 system-ui, sans-serif;
    isolation: isolate;
    overflow-wrap: anywhere;
    padding: clamp(.75rem, 2vw, 1.65rem) max(.75rem, calc((100% - 88rem) / 2)) 3rem;
}
.gsnlt *, .gsnlt *::before, .gsnlt *::after { box-sizing: border-box; }
.gsnlt [hidden] { display: none !important; }
.gsnlt-shell { display: grid; gap: 1rem; min-width: 0; }
.gsnlt h1, .gsnlt h2, .gsnlt h3, .gsnlt h4, .gsnlt p, .gsnlt dl { color: inherit; margin: 0; }
.gsnlt h2, .gsnlt h3, .gsnlt h4 { line-height: 1.2; }
.gsnlt h2 { font: 750 clamp(1.4rem, 2.8vw, 2rem)/1.15 system-ui, sans-serif; }
.gsnlt h3 { font: 750 1.2rem/1.2 system-ui, sans-serif; }
.gsnlt h4 { font: 700 1rem/1.25 system-ui, sans-serif; }
.gsnlt a { color: var(--peach); text-decoration: underline; text-underline-offset: .2em; }
.gsnlt a:hover { color: var(--ink); }
.gsnlt :focus-visible { outline: 3px solid var(--peach); outline-offset: 4px; }
.gsnlt .gsnlt-kicker {
    color: var(--peach);
    font-size: .74rem;
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.gsnlt-hero {
    position: relative;
    z-index: 0;
    padding: clamp(1rem, 2.25vw, 2rem);
    border: 1px solid #654467;
    border-radius: 1rem;
    overflow: hidden;
    background: linear-gradient(100deg, #16132e 38%, #241739 73%, #38204b);
}
.gsnlt-hero::after {
    content: "";
    pointer-events: none;
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(180deg, transparent 65%, #211932 66%, #211932 100%),
        radial-gradient(circle at 83% 80%, #ffb067 0%, #ff83a8 11%, transparent 11.5%),
        radial-gradient(ellipse at 80% 90%, #923675 0%, transparent 50%);
    mask-image: linear-gradient(90deg, transparent 46%, #000 91%);
}
.gsnlt-hero h1 {
    font: 880 clamp(1.85rem, 4.5vw, 4.2rem)/1.05 system-ui, sans-serif;
    letter-spacing: -.052em;
    margin-block: .12em .15em;
    text-transform: uppercase;
}
.gsnlt .gsnlt-deck { color: var(--peach); font-weight: 750; font-size: clamp(.92rem, 1.6vw, 1.2rem); }
.gsnlt .gsnlt-intro { color: var(--muted); margin-block: .22rem 0; font-size: .86rem; }
.gsnlt-jump { display: inline-flex; align-items: center; gap: .45rem; min-height: 32px; margin-top: .25rem; font-size: .85rem; font-weight: 700; }
.gsnlt-overview, .gsnlt-schedule {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
}
.gsnlt-overview > div, .gsnlt-schedule > li {
    background: var(--panel);
    border: 1px solid var(--edge);
    border-radius: .85rem;
    min-width: 0;
    padding: .9rem 1rem;
}
.gsnlt-overview > div { min-block-size: 6rem; padding: .62rem .8rem; }
.gsnlt-overview dt { color: var(--muted); font-size: .73rem; font-weight: 750; letter-spacing: .065em; text-transform: uppercase; }
.gsnlt-overview dd { font-size: clamp(1.02rem, 2.15vw, 1.4rem); font-weight: 800; line-height: 1.22; margin: .32rem 0; }
.gsnlt .gsnlt-caption, .gsnlt .gsnlt-map-credit { color: var(--muted); font-size: .84rem; font-weight: 400; line-height: 1.45; }
.gsnlt-numeric { font-variant-numeric: tabular-nums; }
.gsnlt-box {
    display: grid;
    gap: .75rem;
    min-width: 0;
    padding: clamp(.7rem, 1.6vw, 1.25rem);
    background: #121731;
    border: 1px solid var(--edge);
    border-radius: 1.05rem;
}
.gsnlt-section-head, .gsnlt-controls { display: flex; align-items: end; flex-wrap: wrap; gap: .75rem; }
.gsnlt-section-head { justify-content: space-between; }
.gsnlt-controls { align-items: start; }
.gsnlt-controls > div { min-width: 0; flex: 1 1 auto; }
.gsnlt-controls label { display: block; font-size: .85rem; font-weight: 700; }
.gsnlt-controls select {
    width: 100%;
    max-width: 15rem;
    min-height: 44px;
    margin: .25rem 0 0;
    padding: .45rem .6rem;
    border: 1px solid #858aad;
    border-radius: .45rem;
    background: var(--base);
    color: var(--ink);
    color-scheme: dark;
    font: inherit;
    font-size: .95rem;
}
.gsnlt-map-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 17rem); gap: .7rem; align-items: start; }
.gsnlt-map-stage {
    min-width: 0;
    background: #151930;
    border: 1px solid #595b7e;
    border-radius: .75rem;
    overflow: hidden;
}
.gsnlt-map-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem;
    padding: .38rem .55rem;
    background: #191c35;
    border-bottom: 1px solid #444970;
}
.gsnlt-map-tools button {
    min-width: 44px;
    min-height: 44px;
    padding: .3rem .65rem;
    border: 1px solid #747a9e;
    border-radius: .4rem;
    background: #292b48;
    color: var(--ink);
    font: 700 .88rem/1.1 system-ui, sans-serif;
    text-transform: none;
    cursor: pointer;
}
.gsnlt-map-tools button:is(:disabled,[aria-disabled="true"]) { color: var(--muted); cursor: default; background: #20233b; }
.gsnlt-map-tools button[aria-pressed="true"] { background: #443453; border-color: var(--peach); color: var(--peach); }
.gsnlt-map-tools [data-map-action="touch"], .gsnlt-touch-help { display: none; }
.gsnlt-zoom-level { color: var(--muted); font-size: .8rem; font-variant-numeric: tabular-nums; min-width: 3.1rem; text-align: center; }
.gsnlt-viewport {
    background:
        linear-gradient(#8b7cc714 1px, transparent 1px) center / 34px 34px,
        linear-gradient(90deg, #8b7cc714 1px, transparent 1px) center / 34px 34px,
        radial-gradient(ellipse at 55% 45%, #232343, #10152c 75%);
    touch-action: pan-y pinch-zoom;
}
.gsnlt .gsnlt-viewport:focus-visible { outline-offset: -4px; }
.gsnlt-viewport[data-touch-mode] { touch-action: none; }
.gsnlt-map { display: block; width: 100%; height: auto; aspect-ratio: 1000 / 468; user-select: none; }
.gsnlt-map [data-code] {
    fill: #45485d;
    stroke: #e0e1ed;
    stroke-opacity: .7;
    stroke-width: .64;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}
.gsnlt-map [data-state="unknown"] { fill: #393d51; }
.gsnlt-map [data-state="available"] { fill: url(#gsnlt-sunset); }
.gsnlt-map [data-preview] { filter: brightness(1.23); stroke-opacity: 1; stroke-width: 1; }
.gsnlt-map [data-selected] { stroke: #fff; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 3 1; }
.gsnlt[data-enhanced] .gsnlt-map [data-code] { cursor: pointer; }
.gsnlt[data-enhanced] .gsnlt-viewport[data-dragging] .gsnlt-map { cursor: grabbing; }
.gsnlt[data-enhanced] .gsnlt-viewport[data-dragging] .gsnlt-map [data-code] { cursor: inherit; }
.gsnlt-lighting rect { transform-box: fill-box; transform-origin: center bottom; }
.gsnlt .gsnlt-map-help, .gsnlt .gsnlt-map-credit { padding: .3rem .6rem; font-size: .76rem; color: var(--muted); }
.gsnlt-details {
    background: linear-gradient(145deg, #22213d, var(--panel) 75%);
    border: 1px solid #5f5275;
    border-top-color: #ab6f9a;
    border-radius: .75rem;
    min-height: 23rem;
    min-width: 0;
    padding: .85rem;
}
.gsnlt-details h3 { margin-block: .25rem .55rem; }
.gsnlt-details dl { display: grid; gap: .24rem; margin-top: .45rem; }
.gsnlt-details dl > div { border-top: 1px solid #ffffff23; padding-top: .22rem; }
.gsnlt-details dt { color: var(--muted); font-size: .68rem; letter-spacing: .055em; text-transform: uppercase; }
.gsnlt-details dd { margin: 0; font-size: .85rem; line-height: 1.35; }
.gsnlt .gsnlt-badge {
    width: fit-content;
    background: #282b48;
    border: 1px solid #858aad;
    border-radius: .35rem;
    color: var(--ink);
    font-size: .76rem;
    font-weight: 750;
    padding: .27rem .48rem;
    text-transform: uppercase;
}
.gsnlt-details[data-state="soon"] .gsnlt-badge,
.gsnlt-details[data-state="available"] .gsnlt-badge { color: var(--peach); border-color: var(--peach); }
.gsnlt-cohort { padding-block: .55rem; border-bottom: 1px solid var(--edge); }
.gsnlt-cohort:last-child { border-bottom: 0; }
.gsnlt-cohort p, .gsnlt-cohort a { font-size: .85rem; }
.gsnlt .gsnlt-cohort-time { font-size: 1.1rem; font-weight: 750; }
.gsnlt-cohort progress { display: block; width: 100%; accent-color: var(--pink); }
.gsnlt-legend, .gsnlt-schedule, .gsnlt-sources { margin: 0; padding: 0; list-style: none; }
.gsnlt-legend, .gsnlt-sources { display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.gsnlt-legend li { display: flex; align-items: center; gap: .35rem; font-size: .82rem; }
.gsnlt-legend span { width: .9rem; height: .9rem; border: 1px solid #cdd0e0; background: #45485d; border-radius: .2rem; }
.gsnlt-legend [data-legend="unknown"] { background: #393d51; border-color: #a4a8be; }
.gsnlt-legend [data-legend="soon"] { background: linear-gradient(135deg, var(--pink) 50%, #30354d 50%); }
.gsnlt-legend [data-legend="available"] { background: linear-gradient(135deg, var(--peach), var(--pink), var(--violet)); }
.gsnlt-schedule { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.gsnlt-schedule > li { display: grid; gap: .42rem; align-content: start; }
.gsnlt-unconfirmed summary { cursor: pointer; min-height: 44px; padding-block: .5rem; font-weight: 700; }
.gsnlt-unconfirmed ul { columns: 4 10rem; padding-inline-start: 1.25rem; margin-block: .5rem 0; }
.gsnlt #gsnlt-schedule { scroll-margin-top: 6rem; }
.gsnlt .gsnlt-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 52rem) {
    .gsnlt-map-grid { grid-template-columns: minmax(0, 1fr); }
    .gsnlt-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gsnlt-hero::after { opacity: .45; }
    .gsnlt-details { min-height: 22rem; }
}
@media (max-width: 29rem) {
    .gsnlt-controls { width: 100%; }
    .gsnlt-controls select { max-width: none; }
    .gsnlt-controls > div { flex: 1 1 8rem; }
}
@media (any-pointer: coarse), (hover: none) {
    .gsnlt-map-tools [data-map-action="touch"], .gsnlt-touch-help { display: inline; }
    .gsnlt-desktop-help { display: none; }
}
@media (prefers-reduced-motion: no-preference) {
    .gsnlt-map [data-finish] { animation: gsnlt-unlocked 850ms ease-out; }
    @keyframes gsnlt-unlocked { 38% { stroke: #fff5dd; stroke-opacity: 1; stroke-width: 2.7; } }
}
@media (forced-colors: active) {
    .gsnlt-map [data-code] { stroke: CanvasText; }
    .gsnlt-map [data-state="available"], .gsnlt-map [data-selected] { stroke: Highlight; stroke-width: 2; }
}


/* One pointer-only tooltip, plus a separate touch summary outside the map viewport. */
.gsnlt-tooltip {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 30;
    width: min(18rem, calc(100vw - 20px));
    max-height: calc(100vh - 16px);
    padding: .75rem .85rem;
    pointer-events: none;
    transform: translate3d(-200vw, -200vh, 0);
    border: 1px solid #795373;
    border-radius: .65rem;
    background: #12172f;
    box-shadow: 0 .45rem 1.25rem #070a17a0;
    font-size: .85rem;
    overflow: hidden;
}
.gsnlt-summary-copy { display: grid; gap: .23rem; min-width: 0; }
.gsnlt-summary-copy .gsnlt-summary-status {
    color: var(--peach);
    font-size: .75rem;
    font-weight: 750;
    text-transform: uppercase;
}
.gsnlt .gsnlt-summary-time { color: var(--ink); font-size: .85rem; font-weight: 750; text-transform: uppercase; }
.gsnlt .gsnlt-summary-players { color: var(--muted); font-size: .8rem; }
.gsnlt-summary-copy [data-summary-label] { color: var(--pink); font-weight: 750; text-transform: uppercase; }
.gsnlt-touch-summary {
    display: grid;
    gap: .6rem;
    padding: .8rem;
    border: 1px solid #795373;
    border-radius: .65rem;
    background: #171b38;
}
.gsnlt-touch-summary button {
    min-height: 44px;
    width: fit-content;
    border: 1px solid var(--peach);
    border-radius: .4rem;
    background: #292b48;
    color: var(--ink);
    padding: .45rem .7rem;
    font: 700 .85rem/1.15 system-ui, sans-serif;
    cursor: pointer;
}
.gsnlt-details { scroll-margin-top: 6rem; }
.gsnlt-details dd small, .gsnlt-details dd a { display: block; }
.gsnlt-details .gsnlt-launch-message { color: var(--pink); font-weight: 750; text-transform: uppercase; }
@media (prefers-reduced-motion: no-preference) {
    .gsnlt-tooltip:not([hidden]) { animation: gsnlt-tooltip-in 140ms ease-out; }
    @keyframes gsnlt-tooltip-in { from { opacity: .55; } }
}
