.ssf-brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:clamp(20px,2vw,30px);letter-spacing:-.035em;line-height:1.2;margin:10px 0 24px}.ssf-brand svg{width:43px;height:43px;flex:none}.ssf-board{--ssf-bg:#fff;--ssf-txt:#18243a;--ssf-border:#e6ebf1;--ssf-sub:#687586;background:var(--ssf-bg);color:var(--ssf-txt);border-radius:15px;border:1px solid var(--ssf-border);padding:20px;box-sizing:border-box;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;margin:14px auto;max-width:1100px}.ssf-board *{box-sizing:border-box}.ssf-board-head{display:flex;justify-content:space-between;gap:14px;align-items:center;border-bottom:1px solid var(--ssf-border);padding-bottom:16px}.ssf-board-head h2{font-size:clamp(18px,2vw,24px);margin:0;font-weight:800;color:inherit}.ssf-board-head time{color:var(--ssf-sub);white-space:nowrap;font-size:14px}.ssf-game{display:grid;grid-template-columns:96px 1fr 54px;align-items:center;gap:16px;border-bottom:1px solid var(--ssf-border);padding:15px 3px}.ssf-match-status{display:flex;flex-direction:column;gap:8px;text-align:center;color:var(--ssf-sub);font-size:12px}.ssf-match-status span{font-weight:800}.ssf-match-teams,.ssf-match-score{display:flex;flex-direction:column;gap:10px}.ssf-match-teams{font-weight:650;min-width:0}.ssf-match-teams span{overflow-wrap:anywhere}.ssf-match-score{text-align:right;font-size:16px}.ssf-empty{padding:24px 4px;color:var(--ssf-sub);margin:0}.ssf-footnote{text-align:right;color:var(--ssf-sub);font-size:11px;padding-top:12px}.ssf-theme-t03{--ssf-bg:#101929;--ssf-txt:#f7fbff;--ssf-border:#27364a;--ssf-sub:#b3bdca}.ssf-theme-t07{--ssf-bg:#fff;--ssf-txt:#193326;--ssf-border:#d5e9de;--ssf-sub:#5d776d;border-top:4px solid #087c43}@media(max-width:480px){.ssf-board{padding:13px;border-radius:10px}.ssf-game{grid-template-columns:54px 1fr 34px;gap:9px;padding:12px 0}.ssf-match-status{font-size:10px}.ssf-match-teams{font-size:13px}.ssf-match-score{font-size:14px}.ssf-board-head time{font-size:12px}}
/* v0.1.2 shared basketball display components */
.ssf-board.ssf-module{width:100%;max-width:1100px;overflow:hidden}
.ssf-module .ssf-date-nav{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:12px 0 3px}
.ssf-module .ssf-date-nav a{display:inline-flex;min-width:34px;height:30px;padding:0 9px;align-items:center;justify-content:center;color:var(--ssf-txt);border:1px solid var(--ssf-border);border-radius:7px;text-decoration:none;font-size:14px;line-height:1}
.ssf-module .ssf-date-nav a:hover,.ssf-module .ssf-date-nav a:focus{background:var(--ssf-border);text-decoration:none}
.ssf-module .ssf-game{grid-template-columns:72px minmax(0,1fr) 52px 22px;gap:12px}
.ssf-module .ssf-match-teams{gap:7px}
.ssf-module .ssf-match-teams strong{font-size:14px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.ssf-module .ssf-league{font-size:11px;color:var(--ssf-sub);font-weight:600;line-height:1.3}
.ssf-module .ssf-match-detail{font-size:26px;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:32px;text-decoration:none!important;color:var(--ssf-txt)}
.ssf-module .ssf-match-detail:hover{opacity:.7}
.ssf-module .ssf-match-status .ssf-live{color:#16a34a;font-weight:850}
.ssf-module .ssf-stale{color:#b45309;font-weight:650;margin-left:8px}
.ssf-module .ssf-standings-season{padding:12px 2px;font-size:12px;color:var(--ssf-sub)}
.ssf-module .ssf-standings-group{color:var(--ssf-txt);font-size:16px;line-height:1.4;margin:22px 0 8px}
.ssf-module .ssf-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ssf-module .ssf-standings-table{width:100%;border-collapse:collapse;color:var(--ssf-txt);font-size:13px;min-width:460px}
.ssf-module .ssf-standings-table th,.ssf-module .ssf-standings-table td{padding:11px 8px;border-bottom:1px solid var(--ssf-border);text-align:right;white-space:nowrap}
.ssf-module .ssf-standings-table th:nth-child(2),.ssf-module .ssf-standings-table td:nth-child(2){text-align:left;white-space:normal}
.ssf-module .ssf-standings-table th:first-child,.ssf-module .ssf-standings-table td:first-child{text-align:left}
.ssf-module .ssf-standings-table thead{background:var(--ssf-border)}
.ssf-module .ssf-detail-league{font-size:13px;font-weight:650;color:var(--ssf-sub);margin:14px 0 0}
.ssf-module .ssf-detail-time{color:var(--ssf-sub);font-size:13px;margin:8px 0}
.ssf-module .ssf-detail-score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;padding:20px 6px;text-align:center}
.ssf-module .ssf-detail-score>strong{font-size:clamp(24px,5vw,38px);white-space:nowrap}
.ssf-module .ssf-detail-score>div{font-size:clamp(13px,2vw,18px);font-weight:750;overflow-wrap:anywhere}
.ssf-module .ssf-detail-line{font-size:12px;color:var(--ssf-sub);margin:7px 0}
@media(max-width:480px){
 .ssf-module .ssf-game{grid-template-columns:45px minmax(0,1fr) 34px 17px;gap:7px}
 .ssf-module .ssf-match-teams strong{font-size:12px}
 .ssf-module .ssf-league{font-size:10px}
 .ssf-module .ssf-match-detail{font-size:20px;min-width:16px}
 .ssf-module .ssf-detail-score{gap:8px}
 .ssf-module .ssf-standings-table{font-size:12px}
 .ssf-module .ssf-standings-table th,.ssf-module .ssf-standings-table td{padding:8px 5px}
}

/* v0.1.3: optional managed SEO/page content via [ssf_site_content]. */
.ssf-site-content{max-width:100%;margin:0 0 24px}.ssf-site-content h1{font-size:clamp(1.6rem,3.5vw,2.6rem);line-height:1.2;margin:0 0 12px}.ssf-site-content .ssf-content-intro{font-size:1.05rem;line-height:1.7;opacity:.9;margin:0 0 16px}.ssf-site-content .ssf-content-body{line-height:1.75}.ssf-site-content .ssf-content-body p{margin:0 0 14px}

/* v0.1.4 Template Center: namespaced managed homepage, three genuinely different layouts. */
.ssf-factory-home{--ssf-accent:#145ac9;--ssf-surface:#fff;--ssf-ink:#162239;--ssf-line:#e3e9f2;--ssf-muted:#586b80;color:var(--ssf-ink);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:15px;line-height:1.6;background:#f3f6fb;overflow-x:clip}
.ssf-factory-home *{box-sizing:border-box}.ssf-factory-home a{color:inherit;text-decoration:none}.ssf-factory-home a:hover{text-decoration:underline}.ssf-factory-shell{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:0 0 28px}.ssf-factory-masthead{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px;padding:14px 0;border-bottom:1px solid var(--ssf-line)}
.ssf-factory-mark{display:inline-flex;align-items:center;gap:10px;min-width:0;font-size:clamp(19px,2vw,25px);font-weight:850;line-height:1.2;letter-spacing:-.035em}.ssf-factory-mark svg{width:42px;height:42px;flex:none}.ssf-factory-mark span{overflow-wrap:anywhere}.ssf-factory-nav{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:flex-end;font-size:13px;font-weight:750}.ssf-factory-nav a{padding:8px 2px;white-space:nowrap}.ssf-factory-nav a:hover{color:var(--ssf-accent)}
.ssf-factory-main{padding:18px 0 8px}.ssf-factory-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(270px,1fr);gap:16px;align-items:start}.ssf-factory-hero{grid-column:1/-1;padding:26px 30px;border-radius:16px;background:#fff;border:1px solid var(--ssf-line);box-shadow:0 5px 24px rgba(15,40,78,.035)}.ssf-factory-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--ssf-accent);font-size:11px;font-weight:850;margin:0 0 9px}.ssf-factory-hero h1{font-weight:850;line-height:1.14;letter-spacing:-.04em;font-size:clamp(26px,4vw,45px);margin:0;color:var(--ssf-ink)}.ssf-factory-tagline{font-size:clamp(14px,1.6vw,18px);line-height:1.65;color:var(--ssf-muted);max-width:850px;margin:12px 0 0}
.ssf-factory-slot{min-width:0}.ssf-factory-slot .ssf-board{margin:0!important;max-width:none!important;width:100%!important}.ssf-factory-slot--scores,.ssf-factory-slot--standings,.ssf-factory-slot--news,.ssf-factory-slot--home_body,.ssf-factory-slot--about{grid-column:1}.ssf-factory-slot--schedule,.ssf-factory-slot--results{grid-column:2}
.ssf-factory-slot .ssf-board{box-shadow:0 4px 15px rgba(17,40,80,.035);--ssf-bg:#fff;--ssf-txt:#162239;--ssf-border:#e3e9f2;--ssf-sub:#65768a}.ssf-factory-slot .ssf-board .ssf-game{grid-template-columns:58px minmax(0,1fr) 40px 14px;gap:8px}.ssf-factory-slot .ssf-board .ssf-match-teams strong{font-size:13px}.ssf-factory-slot .ssf-board .ssf-match-status{font-size:10px}
.ssf-factory-text,.ssf-factory-news{background:#fff;border:1px solid var(--ssf-line);border-radius:14px;padding:24px 27px;overflow:hidden}.ssf-factory-text h2,.ssf-factory-news h2{font-size:22px;line-height:1.25;margin:0 0 14px;color:var(--ssf-ink)}.ssf-factory-text p{margin:0 0 12px;color:var(--ssf-muted)}.ssf-factory-news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.ssf-factory-story{border:1px solid var(--ssf-line);border-radius:12px;padding:16px}.ssf-factory-story h3{font-size:16px;line-height:1.4;margin:0 0 8px;color:var(--ssf-ink)}.ssf-factory-story p{font-size:13px;color:var(--ssf-muted);margin:0}.ssf-factory-footer{margin-top:12px;padding:20px 0;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;border-top:1px solid var(--ssf-line);font-size:12px;color:var(--ssf-muted)}
.ssf-preview-ribbon{padding:7px 16px;text-align:center;font-size:12px;letter-spacing:.02em;background:#fef3c7;color:#813d00;font-weight:800}
/* Dark dashboard: full-width dual panels with a dark hero and broader cards. */
.ssf-factory-home.ssf-layout-t03{--ssf-ink:#f4f8ff;--ssf-muted:#adbdd2;--ssf-line:#263b55;background:#081321;color:var(--ssf-ink)}.ssf-layout-t03 .ssf-factory-masthead{border-bottom-color:#213650}.ssf-layout-t03 .ssf-factory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ssf-layout-t03 .ssf-factory-hero{background:linear-gradient(125deg,#0d2744,#071825 70%);border-color:#28466a;min-height:180px;display:flex;flex-direction:column;justify-content:center}.ssf-layout-t03 .ssf-factory-eyebrow{color:#7ad0fc}.ssf-layout-t03 .ssf-factory-slot--scores,.ssf-layout-t03 .ssf-factory-slot--schedule,.ssf-layout-t03 .ssf-factory-slot--results,.ssf-layout-t03 .ssf-factory-slot--standings{grid-column:auto}.ssf-layout-t03 .ssf-factory-slot--home_body,.ssf-layout-t03 .ssf-factory-slot--news,.ssf-layout-t03 .ssf-factory-slot--about{grid-column:1/-1}.ssf-layout-t03 .ssf-factory-slot .ssf-board{--ssf-bg:#101f32;--ssf-txt:#eaf4ff;--ssf-border:#2a3d55;--ssf-sub:#aebfd2;background:var(--ssf-bg);border-color:var(--ssf-border);box-shadow:none}.ssf-layout-t03 .ssf-factory-text,.ssf-layout-t03 .ssf-factory-news{background:#101f32;border-color:#2a3d55}.ssf-layout-t03 .ssf-factory-story{border-color:#304157}.ssf-layout-t03 .ssf-factory-mark svg{filter:drop-shadow(0 1px 6px rgba(6,148,255,.2))}
/* Green league portal: asymmetric hero + score-centred wide single column sections. */
.ssf-factory-home.ssf-layout-t07{--ssf-ink:#17332a;--ssf-muted:#537568;--ssf-line:#d3e7dc;background:#eef7f1}.ssf-layout-t07 .ssf-factory-masthead{border-bottom-color:#c8e2d3}.ssf-layout-t07 .ssf-factory-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.ssf-layout-t07 .ssf-factory-hero{position:relative;overflow:hidden;background:#0d603e;border:0;border-left:8px solid var(--ssf-accent);min-height:200px}.ssf-layout-t07 .ssf-factory-hero:after{content:"";position:absolute;width:210px;height:210px;right:-55px;top:-75px;border-radius:100%;border:28px solid rgba(255,255,255,.08);pointer-events:none}.ssf-layout-t07 .ssf-factory-hero h1{color:#fff}.ssf-layout-t07 .ssf-factory-eyebrow{color:#c7f7dd}.ssf-layout-t07 .ssf-factory-tagline{color:#e4ffef}.ssf-layout-t07 .ssf-factory-slot--scores,.ssf-layout-t07 .ssf-factory-slot--standings,.ssf-layout-t07 .ssf-factory-slot--news,.ssf-layout-t07 .ssf-factory-slot--home_body,.ssf-layout-t07 .ssf-factory-slot--about{grid-column:1/-1}.ssf-layout-t07 .ssf-factory-slot--schedule,.ssf-layout-t07 .ssf-factory-slot--results{grid-column:span 1}.ssf-layout-t07 .ssf-factory-slot .ssf-board{--ssf-bg:#fff;--ssf-txt:#173b2b;--ssf-border:#d8ebdf;--ssf-sub:#688577;border-top:3px solid var(--ssf-accent)}.ssf-layout-t07 .ssf-factory-text,.ssf-layout-t07 .ssf-factory-news{border-color:#d3e8da}
@media(max-width:860px){.ssf-factory-home .ssf-factory-grid{grid-template-columns:minmax(0,1fr)}.ssf-factory-home .ssf-factory-slot,.ssf-factory-home .ssf-factory-hero{grid-column:1/-1}.ssf-factory-home .ssf-factory-masthead{align-items:flex-start;flex-direction:column;gap:8px;min-height:0}.ssf-factory-home .ssf-factory-nav{justify-content:flex-start}.ssf-layout-t03 .ssf-factory-grid,.ssf-layout-t07 .ssf-factory-grid{grid-template-columns:minmax(0,1fr)}.ssf-layout-t03 .ssf-factory-slot,.ssf-layout-t07 .ssf-factory-slot{grid-column:1/-1}}
@media(max-width:480px){.ssf-factory-home .ssf-factory-shell{width:calc(100% - 20px)}.ssf-factory-hero{padding:22px 17px;border-radius:12px}.ssf-factory-mark{font-size:18px}.ssf-factory-mark svg{width:34px;height:34px}.ssf-factory-nav{gap:0 12px;font-size:12px}.ssf-factory-slot .ssf-board{padding:12px}.ssf-factory-text,.ssf-factory-news{padding:17px}.ssf-factory-home .ssf-board .ssf-match-teams strong{font-size:12px}.ssf-factory-home .ssf-board .ssf-game{grid-template-columns:45px minmax(0,1fr) 34px 15px;gap:5px}}

/* v0.1.14.1: standalone managed homepage shell; no theme header/footer involved. */
body.ssf-managed-home{margin:0;padding:0;min-height:100vh;background:#f3f6fb}
body.ssf-managed-home>.ssf-factory-home{min-height:100vh}

/* v0.1.15.7 Football / Highlightly read-only widgets */
.ssf-football .ssf-fb-table-wrap{max-width:100%;overflow-x:auto;margin-top:12px}
.ssf-football .ssf-fb-table{width:100%;border-collapse:collapse;min-width:600px}
.ssf-football .ssf-fb-table th,.ssf-football .ssf-fb-table td{padding:8px 10px;border-bottom:1px solid #dce5e0;text-align:center;white-space:nowrap}
.ssf-football .ssf-fb-table th:nth-child(2),.ssf-football .ssf-fb-table td:nth-child(2){text-align:left}
.ssf-fb-odds-market{padding:10px;border-bottom:1px solid #e5e5e5}.ssf-fb-odds-market span{display:inline-block;margin:5px 7px 5px 0}

.ssf-fb-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.ssf-fb-team{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #e4e8e9;border-radius:8px;min-width:0}.ssf-fb-team span{overflow-wrap:anywhere}.ssf-fb-team img{object-fit:contain;flex:0 0 36px}

.ssf-fb-lineups{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.ssf-fb-lineups ul,.ssf-fb-player-list{margin:0;padding:0 0 0 20px}.ssf-fb-lineups li,.ssf-fb-player-list li{margin:0 0 5px}
