.psfpl-root { --psf-burgundy:#9e1b32; --psf-green:#0b3d2e; --psf-gold:#d4af37; --psf-off-white:#faf9f6; --psf-ink:#20231f; --psf-muted:#69716c; --psf-line:#e4e3de; color:var(--psf-ink); container-type:inline-size; font-family:inherit; line-height:1.45; width:100%; }
.psfpl-root *, .psfpl-root *::before, .psfpl-root *::after { box-sizing:border-box; }
.psfpl-root button, .psfpl-root select { font:inherit; }
.psf-controls { align-items:center; background:var(--psf-off-white); border:1px solid rgba(11,61,46,.35); border-left:5px solid var(--psf-green); border-radius:10px; display:flex; gap:.8rem; justify-content:space-between; margin-bottom:1rem; padding:.65rem; }
.psf-view-switch { background:#fff; border:1px solid var(--psf-line); border-radius:8px; display:inline-flex; padding:3px; }
.psf-view-switch button { background:transparent; border:0; border-radius:6px; color:var(--psf-green); cursor:pointer; font-size:.72rem; font-weight:850; letter-spacing:.04em; min-height:38px; padding:.55rem .75rem; text-transform:uppercase; }
.psf-view-switch button.is-active { background:var(--psf-burgundy); color:#fff; }
.psf-view-switch button:focus-visible, .psf-week select:focus-visible, .psfpl-root a:focus-visible { outline:3px solid rgba(212,175,55,.65); outline-offset:2px; }
.psf-week { align-items:center; color:var(--psf-green); display:flex; font-size:.68rem; font-weight:850; gap:.45rem; letter-spacing:.04em; text-transform:uppercase; }
.psf-week select { appearance:none; background:#fff linear-gradient(45deg,transparent 50%,var(--psf-burgundy) 50%) calc(100% - 14px) 50%/5px 5px no-repeat; border:1px solid #c9d0cc; border-radius:7px; color:var(--psf-ink); cursor:pointer; font-weight:750; min-height:38px; padding:.45rem 1.75rem .45rem .65rem; }
.psfpl-card { background:#fff; border:1px solid var(--psf-line); border-top:4px solid var(--psf-gold); border-radius:14px; box-shadow:0 7px 20px rgba(11,61,46,.05); overflow:hidden; padding:clamp(.9rem,3cqw,1.2rem); }
.psfpl-card h3 { color:var(--psf-green); font-size:clamp(1rem,4.4cqw,1.25rem); font-weight:900; letter-spacing:.035em; line-height:1.15; margin:0 0 .9rem; text-transform:uppercase; }
.psfpl-grid { display:grid; gap:.62rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.psfpl-position { align-items:center; background:var(--psf-off-white); border:1px solid var(--psf-line); border-left:5px solid var(--position-color); border-radius:9px; display:grid; gap:.18rem .45rem; grid-template-columns:auto minmax(0,1fr) auto; min-height:76px; padding:.65rem; }
.psfpl-pill { align-items:center; background:var(--position-color); border-radius:999px; color:#fff; display:inline-flex; font-size:.62rem; font-weight:900; height:29px; justify-content:center; letter-spacing:.04em; min-width:40px; padding:0 .5rem; }
.psfpl-site { font-size:.72rem; font-weight:800; line-height:1.2; min-width:0; overflow-wrap:anywhere; }
.psfpl-site a { color:var(--psf-green); text-decoration:none; }
.psfpl-site a:hover { color:var(--psf-burgundy); text-decoration:underline; }
.psfpl-score .psf-accuracy { color:var(--psf-ink); font-size:.9rem; font-weight:900; white-space:nowrap; }
.psfpl-position small { color:var(--psf-muted); font-size:.55rem; font-weight:750; grid-column:2/-1; letter-spacing:.035em; }
.psfpl-position.is-empty { grid-template-columns:auto 1fr; }
.psf-muted { color:var(--psf-muted); font-size:.65rem; font-weight:750; }
.psf-empty { align-items:center; background:var(--psf-off-white); display:flex; flex-direction:column; grid-column:1/-1; justify-content:center; min-height:170px; padding:1rem; text-align:center; }
.psf-empty > span { background:linear-gradient(90deg,var(--psf-burgundy) 0 67%,var(--psf-gold) 67%); border-radius:999px; height:5px; width:52px; }
.psf-empty p, .psf-loading { color:var(--psf-muted); font-size:.76rem; font-weight:750; letter-spacing:.02em; margin:.65rem 0 0; text-transform:uppercase; }
.psf-loading { grid-column:1/-1; padding:2rem; text-align:center; }
.psf-sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
@container (max-width:560px) { .psfpl-grid { grid-template-columns:1fr; } .psfpl-position { min-height:70px; } }
@container (max-width:420px) { .psf-controls { align-items:stretch; flex-direction:column; } .psf-view-switch { display:grid; grid-template-columns:1fr 1fr; } .psf-week { justify-content:space-between; } }
@media (prefers-reduced-motion:reduce) { .psfpl-root * { scroll-behavior:auto!important; transition-duration:.01ms!important; } }
