/* SWAT Bracket Tree — connected bracket inside #swat-bracket-results.
   Uses the child theme's existing tokens (style.css :root and the light palette),
   so dark/light appearance follows the visitor preference automatically.
   Geometry (card width/height, gaps, row heights) must match G in swat-bracket-tree.js. */

#swat-postseason :is(#swat-ps-panel-bracket,#swat-bracket-results,.swat-bt-group){min-width:0;max-width:100%}
#swat-postseason .swat-bt-group{margin:0 0 24px}
#swat-postseason .swat-bt-group>h3{margin:16px 0 4px;font:700 var(--gd-item,20px)/1.2 var(--gd-head);color:var(--gd-ink)}
#swat-postseason .swat-bt-hint{margin:0 0 8px;font-size:var(--gd-meta,14px);color:var(--gd-muted)}
@media (min-width:900px){#swat-postseason .swat-bt-hint{display:none}}

/* The tree scrolls sideways inside its own box; the page never scrolls horizontally. */
#swat-postseason .swat-bt-scroll{box-sizing:border-box;min-width:0;width:100%;max-width:100%;contain:inline-size;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-padding-inline:8px;border-radius:var(--gd-control-radius,10px);padding:0 0 8px}
#swat-postseason .swat-bt-scroll:focus-visible{outline:2px solid var(--gd-accent);outline-offset:2px}

#swat-postseason .swat-bt{position:relative;font-size:1rem;line-height:1.2;color:var(--gd-ink);font-family:var(--gd-body)}
#swat-postseason .swat-bt-lines{position:absolute;inset:0 auto auto 0;overflow:visible;pointer-events:none}
#swat-postseason .swat-bt-line{fill:none;stroke:var(--gd-line-strong);stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linejoin:round}
#swat-postseason .swat-bt-line.is-decided{stroke:var(--gd-accent)}

#swat-postseason .swat-bt-round{position:absolute;top:0;margin:0;height:2.25em;display:flex;align-items:center;font:600 1em/1.25 var(--gd-body);letter-spacing:.03em;text-transform:uppercase;color:var(--gd-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Card: .5em pad · 1.75em header · 2 × 2.5em teams · 1.5em time/field · .5em pad = 9.25em */
#swat-postseason .swat-bt-game{position:absolute;box-sizing:border-box;width:13.5em;height:9.25em;padding:.5em .625em;margin:0;display:flex;flex-direction:column;background:var(--gd-surface);border:1px solid var(--gd-line);border-left:4px solid var(--gd-line-strong);border-radius:var(--gd-control-radius,10px);box-shadow:var(--shadow-1);scroll-margin:96px 24px}
#swat-postseason .swat-bt-game.is-championship{border-left-color:var(--gd-accent)}
#swat-postseason .swat-bt-game.is-live{border-color:var(--swat-ok);border-left-color:var(--swat-ok)}
#swat-postseason .swat-bt-game.is-followed{box-shadow:0 0 0 2px var(--gd-accent)}
#swat-postseason .swat-bt-game:focus{outline:3px solid var(--gd-accent);outline-offset:2px}
#swat-postseason .swat-bt-game:target{outline:3px solid var(--gd-accent);outline-offset:2px}

#swat-postseason .swat-bt-head{box-sizing:border-box;flex:0 0 1.75em;height:1.75em;position:relative;display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}
#swat-postseason .swat-bt-num{font:600 1rem/1.25 var(--gd-body);color:var(--gd-ink);text-decoration:none;white-space:nowrap;min-height:0;padding:0;margin:0}
/* The theme gives every link a 44px min-height; inside fixed-geometry cards each link instead
   stretches its hit area over its whole row (full card width × 2.5em). */
#swat-postseason .swat-bt :is(a,p,header){min-height:0}
#swat-postseason a.swat-bt-name::after,#swat-postseason a.swat-bt-num::after{content:"";position:absolute;inset:0}
#swat-postseason .swat-bt-head .swat-bt-status{position:relative;z-index:1;pointer-events:none}
#swat-postseason a.swat-bt-num{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
#swat-postseason .swat-bt-status{font-size:.875rem;font-weight:600;color:var(--gd-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#swat-postseason .swat-bt-status.is-live{color:var(--swat-ok)}
#swat-postseason .swat-bt-status.is-final{color:var(--gd-ink)}
#swat-postseason .swat-bt-status:is(.is-delayed,.is-pending){color:var(--swat-warn)}
#swat-postseason .swat-bt-status.is-cancelled{color:var(--swat-bad)}

#swat-postseason .swat-bt-team{box-sizing:border-box;flex:0 0 2.5em;height:2.5em;position:relative;display:grid;grid-template-columns:1.75em minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;border-top:1px solid var(--gd-line)}
#swat-postseason .swat-bt-team+.swat-bt-team{border-bottom:1px solid var(--gd-line)}
#swat-postseason .swat-bt-seed{display:inline-flex;align-items:center;justify-content:center;height:1.5em;min-width:1.5em;border-radius:4px;background:var(--gd-surface-2);color:var(--gd-ink);font:600 .875rem/1 var(--gd-body);font-variant-numeric:tabular-nums}
#swat-postseason .swat-bt-seed:empty{background:none}
#swat-postseason .swat-bt-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font-size:1rem;font-weight:600;color:var(--gd-ink);text-decoration:none;padding:0;margin:0;min-height:0;line-height:1.15}
#swat-postseason a.swat-bt-name:hover,#swat-postseason a.swat-bt-name:focus-visible{text-decoration:underline}
#swat-postseason .swat-bt-team.is-placeholder .swat-bt-name{font-weight:500;font-style:normal;color:var(--gd-muted)}
#swat-postseason .swat-bt-team.is-placeholder a.swat-bt-name{text-decoration:underline dotted;text-underline-offset:3px}
#swat-postseason .swat-bt-score{font:700 1.125rem/1 var(--gd-body);font-variant-numeric:tabular-nums;min-width:1.25em;text-align:right}
#swat-postseason .swat-bt-team.is-win .swat-bt-name,#swat-postseason .swat-bt-team.is-win .swat-bt-score{color:var(--gd-gold-text);font-weight:700}
#swat-postseason .swat-bt-team.is-lose .swat-bt-name,#swat-postseason .swat-bt-team.is-lose .swat-bt-score{color:var(--gd-muted);font-weight:500}
#swat-postseason .swat-bt-team.is-mine{grid-template-columns:1.75em minmax(0,1fr) auto auto}
#swat-postseason .swat-bt-star{color:var(--gd-gold-text);font-size:.875rem;line-height:1}

#swat-postseason .swat-bt-when{flex:1 1 1.5em;min-height:0;margin:0;display:flex;align-items:flex-end;font-size:.875rem;line-height:1.4;font-weight:500;color:var(--gd-muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

#swat-postseason .swat-bt-champ{position:absolute;box-sizing:border-box;height:4.5em;padding:.5em .75em;display:flex;flex-direction:column;justify-content:center;gap:2px;background:var(--gd-surface);border:2px solid var(--gd-accent);border-radius:var(--gd-control-radius,10px)}
#swat-postseason .swat-bt-champ-k{font:600 .875rem/1.2 var(--gd-body);letter-spacing:.03em;text-transform:uppercase;color:var(--gd-gold-text)}
#swat-postseason .swat-bt-champ :is(a,strong){font:600 1rem/1.25 var(--gd-body);color:var(--gd-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Existing full game cards stay available under the tree (follow stars, Report score). */
#swat-postseason .swat-bt-cards{margin-top:4px}

@media (forced-colors:active){
	#swat-postseason .swat-bt-line{stroke:CanvasText}
	#swat-postseason .swat-bt-game,#swat-postseason .swat-bt-champ{border-color:CanvasText}
}
@media print{
	#swat-postseason .swat-bt-scroll{overflow:visible}
}
/* Source placeholders ("Winner of Game 3", "#1 Seed TBD") stay on one line. */
#swat-postseason .swat-bt-team.is-placeholder .swat-bt-name{display:block;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem}

