/* The player page, in the old portal's look: its stylesheet scoped to .pv. Colours come from theme.js. */
.pv *{box-sizing:border-box}
.pv [hidden]{display:none!important}
.pv img{max-width:100%}
.pv{margin:0;background:var(--paper);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
.pv h1,
.pv h2,
.pv h3,
.pv h4{font-family:var(--display);margin:0;text-wrap:pretty;letter-spacing:-0.012em}
.pv p{margin:0}
.pv :focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px;border-radius:4px}
.pv .app{display:grid;grid-template-columns:246px minmax(0,1fr);min-height:100vh}
.pv .rail{background:var(--chrome);color:var(--chrome-fg);display:flex;flex-direction:column;gap:16px;padding:24px 16px;position:sticky;top:env(safe-area-inset-top,0px);align-self:start;height:100vh;height:100dvh;overflow-y:auto}
.pv .brand{display:flex;flex-direction:column;gap:2px}
.pv .brand b{font-family:var(--display);font-size:.95rem;font-weight:700;letter-spacing:.02em}
.pv .brand span{font-size:.75rem;color:var(--chrome-muted);letter-spacing:.04em;text-transform:uppercase}
.pv .club{border:1px solid var(--chrome-line);border-radius:var(--r);padding:8px 12px;background:var(--chrome-2);display:flex;flex-direction:column;gap:2px}
.pv .club b{font-family:var(--display);font-size:.9rem}
.pv .club span{font-size:.75rem;color:var(--chrome-muted)}
.pv .rolewrap{display:flex;flex-direction:column;gap:8px}
.pv .viewing{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--chrome-muted)}
.pv .role-now{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--chrome-line);border-radius:9px;padding:8px 8px}
.pv .role-now b{font-family:var(--display);font-size:.84rem;font-weight:600;color:var(--chrome-fg)}
.pv .role-now a{font-size:.75rem;color:var(--chrome-link,var(--brass-mark));text-decoration:none;white-space:nowrap}
.pv .role-now a:hover{text-decoration:underline}
.pv .nav{display:flex;flex-direction:column;gap:1px;position:relative}
.pv .nav a{text-decoration:none;font-size:.875rem;padding:8px 12px;border-radius:7px;color:var(--chrome-muted);display:flex;align-items:center;gap:8px}
.pv .nav a:hover{background:var(--chrome-2);color:var(--chrome-fg)}
.pv .nav a[aria-current="location"]{background:var(--chrome-2);color:var(--chrome-fg);box-shadow:inset 2px 0 0 var(--chrome-accent,var(--brass-mark))}
.pv .nav .n{font-family:var(--mono);font-size:.75rem}
.pv .main{min-width:0}
.pv .wrap{max-width:900px;margin-inline:auto;padding-inline:32px;padding-block:24px 72px;display:flex;flex-direction:column;gap:16px}
.pv .app:not(.room) .sec{display:flex;flex-direction:column;gap:12px;scroll-margin-top:16px;min-width:0}
.pv .app:not(.room) .sec + .sec{border-top:1px solid var(--line);padding-top:24px}
.pv .app:not(.room) .sec-head{display:flex;flex-direction:column;gap:4px}
.pv .app:not(.room) .kicker{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
.pv h1{font-size:2rem;font-weight:600;line-height:1.15}
.pv h2{font-size:1.5rem;font-weight:600;line-height:1.2}
.pv h3{font-size:1rem;font-weight:600;line-height:1.3}
.pv .app:not(.room) .lede{font-size:1rem;color:var(--fg-2)}
.pv .app:not(.room) .note{font-size:.84rem;color:var(--muted);line-height:1.55}
.pv .app:not(.room) .sep{height:1px;background:var(--line);border:0;margin:2px 0}
.pv .app:not(.room) .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .g2{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.pv .app:not(.room) .g4{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}
.pv .app:not(.room) .rows{display:flex;flex-direction:column;gap:16px}
.pv .app:not(.room) .group{display:flex;flex-direction:column;gap:8px}
.pv .app:not(.room) .row-label{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv .app:not(.room) .pill{align-self:flex-start;font-size:.75rem;font-family:var(--display);font-weight:600;letter-spacing:.04em;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface-2);white-space:nowrap}
.pv .app:not(.room) .pill.brass{color:var(--brass);background:var(--brass-soft);border-color:color-mix(in srgb,var(--brass-mark) 35%,transparent)}
.pv .app:not(.room) .tbc{font-size:.75rem;font-family:var(--mono);color:var(--brass);background:var(--brass-soft);border:1px dashed color-mix(in srgb,var(--brass-mark) 50%,transparent);padding:1px 8px;border-radius:5px;white-space:nowrap}
.pv .app:not(.room) .num-link{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--fg);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;white-space:nowrap}
.pv .app:not(.room) .num-link:hover{text-decoration-color:var(--brass-mark)}
.pv .app:not(.room) .banner{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-left:3px solid var(--brass-mark);background:var(--surface);border-radius:var(--r);padding:16px 16px}
.pv .app:not(.room) .banner.privacy{border-left-color:var(--good)}
.pv .app:not(.room) .banner b{font-family:var(--display);font-size:.9rem}
.pv .app:not(.room) .banner p{font-size:.86rem;color:var(--fg-2)}
.pv .app:not(.room) .wm-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.pv .app:not(.room) .nm{font-family:var(--display);font-weight:600;font-size:1rem}
.pv .app:not(.room) .ro{font-size:.8rem;color:var(--muted)}
.pv .app:not(.room) .wm-contact{display:flex;gap:8px 24px;flex-wrap:wrap;font-size:.9rem}
.pv .app:not(.room) .tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.pv .app:not(.room) table{width:100%;border-collapse:collapse;font-size:.86rem}
.pv .app:not(.room) th{text-align:left;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:8px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
.pv .app:not(.room) td{padding:8px 16px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.pv .app:not(.room) tr:last-child td{border-bottom:0}
.pv .app:not(.room) .person{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .person .hd{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.pv .app:not(.room) .person.soon{background:transparent;border-style:dashed}
.pv .app:not(.room) .person.soon .nm{color:var(--muted)}
.pv .app:not(.room) dl.spec{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0;font-size:.86rem}
.pv .app:not(.room) dl.spec dt{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.pv .app:not(.room) dl.spec dd{margin:0;color:var(--fg-2)}
.pv .app:not(.room) .res h3{font-size:.98rem}
.pv .app:not(.room) .crisis{background:var(--surface);border:1px solid color-mix(in srgb,var(--alert) 35%,var(--line));border-radius:var(--r);overflow:hidden}
.pv .app:not(.room) .crisis header{background:var(--alert-soft);padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.pv .app:not(.room) .crisis header b{font-family:var(--display);color:var(--alert);font-size:.95rem}
.pv .app:not(.room) .crisis header p{font-size:.84rem;color:var(--fg-2)}
.pv .app:not(.room) .lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line-soft);border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .line{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;background:var(--surface);min-width:0}
.pv .app:not(.room) .line .who{font-size:.84rem;min-width:0;display:flex;flex-direction:column}
.pv .app:not(.room) .line .who b{font-family:var(--display);font-weight:600}
.pv .app:not(.room) .copy{all:unset;cursor:pointer;flex:none;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:4px 8px;border-radius:6px}
.pv .app:not(.room) .copy:hover{color:var(--fg);border-color:var(--muted)}
.pv .app:not(.room) .copy:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .heavy{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);padding:16px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .heavy p{font-size:.86rem;color:var(--fg-2);line-height:1.7}
.pv #toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,16px);background:var(--chrome);color:var(--chrome-fg);border:1px solid var(--chrome-line);padding:8px 16px;border-radius:9px;font-size:.84rem;opacity:0;transition:.2s;pointer-events:none;z-index:60;max-width:calc(100% - 32px);text-align:center}
.pv #toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:1199px){.pv .app:not(.room) .g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.pv .app{grid-template-columns:minmax(0,1fr)}
.pv .rail{z-index:30;height:auto;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 12px;padding:calc(8px + env(safe-area-inset-top,0)) 16px 8px;top:0;overflow:visible;border-bottom:1px solid var(--chrome-line)}
.pv .club{order:1;border:0;background:none;padding:0;min-width:0}
.pv .brand{display:none}
.pv .rolewrap{order:2}
.pv .viewing,
.pv .role-now b{display:none}
.pv .role-now{border:0;padding:0}
.pv .nav{order:3;flex:0 0 100%;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:1px;scrollbar-width:none}
.pv .nav::-webkit-scrollbar{display:none}
.pv .nav a{white-space:nowrap;border:1px solid var(--chrome-line);padding:8px 8px;font-size:.8rem}
.pv .nav a[aria-current="location"]{box-shadow:none;border-color:var(--chrome-accent,var(--brass-mark))}
.pv .wrap{padding-inline:16px;padding-block:24px 64px;gap:16px}
.pv .app:not(.room) .sec{scroll-margin-top:118px}
.pv .app:not(.room) .sec + .sec{padding-top:24px}
.pv h1{font-size:1.6rem}
.pv h2{font-size:1.3rem}}
@media (max-width:640px){.pv .app:not(.room) .g2,
.pv .app:not(.room) .g4,
.pv .app:not(.room) .lines{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.pv *{transition:none!important;animation:none!important}}
.pv .app:not(.room) a.card-link{color:var(--fg);text-decoration:none;transition:border-color .15s,transform .15s}
.pv .app:not(.room) a.card-link:hover{border-color:var(--brass-mark);transform:translateY(-1px)}
.pv .app:not(.room) a.card-link:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .open{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brass)}
.pv .app:not(.room) .open svg,
.pv .app:not(.room) .topic svg,
.pv .app:not(.room) .back svg{width:15px;height:15px;flex:none}
.pv .app:not(.room) .open svg,
.pv .app:not(.room) .topic svg{transition:transform .15s}
.pv .app:not(.room) a.card-link:hover .open svg,
.pv .app:not(.room) a.topic:hover svg{transform:translateX(3px)}
.pv .app:not(.room) .topic{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:16px}
.pv .app:not(.room) .topic h3{font-size:1rem}
.pv .app:not(.room) .topic svg{color:var(--brass)}
.pv .app:not(.room) .person .who{display:flex;flex-direction:column;gap:1px}
.pv .app:not(.room) .back{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:.84rem;color:var(--muted);text-decoration:none}
.pv .app:not(.room) .back:hover{color:var(--fg)}
.pv .app:not(.room) .body-text{font-size:.95rem;color:var(--fg-2)}
.pv .app:not(.room) .frame{border:1px dashed var(--line);border-radius:var(--r);padding:16px 16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;min-width:0}
.pv .app:not(.room) .card.flush{padding:0;gap:0;overflow:hidden}
.pv .app:not(.room) .lib-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px;border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .lib-item:first-child{border-top:0}
.pv .app:not(.room) .lib-item .t{display:flex;flex-direction:column;gap:2px;min-width:0}
.pv .app:not(.room) .lib-item .t b{font-family:var(--display);font-size:.95rem;font-weight:600}
.pv .app:not(.room) .lib-item .t span{font-size:.86rem;color:var(--fg-2)}
.pv .app:not(.room) .note a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.pv .app:not(.room) .note a:hover{color:var(--fg)}
@media (max-width:640px){.pv .app:not(.room) .g4.topics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pv .club{flex-direction:row;align-items:center;gap:8px}
.pv .club .crest{width:40px;height:40px;flex:none;object-fit:contain}
.pv .club .ct{display:flex;flex-direction:column;gap:2px;min-width:0}
.pv .club .dot{display:none;font-style:normal}
@media (max-width:900px){.pv .club .crest{width:30px;height:30px}
.pv .club{gap:8px}
.pv .club .brk{display:none}
.pv .club .dot{display:inline}}
.pv .demo-bar{background:var(--brass-soft);color:var(--fg);border:1px solid var(--brass-mark);border-radius:var(--r);padding:8px 12px;font-size:.84rem}
.pv .demo-bar b{font-family:var(--display)}
@media (max-width:900px){.pv .demo-bar{padding:8px 12px;font-size:.8rem}}
.pv .app:not(.room) .tbc.demo-hide{background:var(--sunk);border-color:var(--line);color:var(--muted)}
.pv .demo-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.pv .demo-tier{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;font-weight:600;white-space:nowrap}
.pv .demo-tier select{font:inherit;font-weight:600;padding:4px 8px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit}
.pv .app:not(.room) [data-needs].off{display:none}
.pv .app:not(.room) .tier-note{display:none;font-size:.84rem;color:var(--muted)}
.pv .app:not(.room) .tier-note.on{display:block}
html.no-physio .pv .app:not(.room) #physio,
html.no-physio .pv .nav a[href$="#physio"]{display:none}
.pv .app:not(.room) .nt-list{display:flex;flex-direction:column;gap:8px}
.pv .app:not(.room) .nt{display:flex;flex-direction:column;gap:4px;padding:12px 16px}
.pv .app:not(.room) .nt-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pv .app:not(.room) .nt-top b{font-family:var(--display);font-size:.95rem}
.pv .app:not(.room) .nt-to{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brass);border:1px solid var(--brass-mark);border-radius:999px;padding:2px 8px}
.pv .app:not(.room) .nt-to.urgent{color:var(--paper);background:var(--alert);border-color:var(--alert)}
.pv .app:not(.room) .nt p{margin:0;font-size:.9rem;color:var(--fg-2);line-height:1.5}
.pv .app:not(.room) .nt-meta{font-size:.76rem;color:var(--muted)}
.pv .app:not(.room) .nt-more{all:unset;cursor:pointer;align-self:flex-start;font-family:var(--display);font-size:.8rem;font-weight:600;color:var(--brass);text-decoration:underline;text-underline-offset:3px}
.pv .app:not(.room) .wk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pv .app:not(.room) .wk .card{gap:4px;padding:12px 16px}
.pv .app:not(.room) .wk .k{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv .app:not(.room) .wk b{font-family:var(--display);font-size:.98rem}
.pv .app:not(.room) .wk .s{font-size:.82rem;color:var(--fg-2)}
.pv .app:not(.room) .wk a.card{text-decoration:none;color:var(--fg)}
@media (max-width:640px){.pv .app:not(.room) .wk{grid-template-columns:minmax(0,1fr)}}
.pv .app:not(.room) .ph-list{display:flex;flex-direction:column;gap:12px}
.pv .app:not(.room) .ph{gap:8px}
.pv .app:not(.room) .ph-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.pv .app:not(.room) .ph-head b{font-family:var(--display);font-size:1rem}
.pv .app:not(.room) .ph-head span{font-size:.82rem;color:var(--muted)}
.pv .app:not(.room) .ph-note{font-size:.84rem;color:var(--fg-2);margin:0}
.pv .app:not(.room) .ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pv .app:not(.room) .slot{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:52px;padding:8px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:inherit;color:inherit;text-align:left;cursor:pointer}
.pv .app:not(.room) .slot .t{font-family:var(--display);font-weight:600;font-size:.9rem}
.pv .app:not(.room) .slot .n{font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.pv .app:not(.room) .slot.free{border-style:dashed}
.pv .app:not(.room) .slot.free .n{color:var(--brass)}
.pv .app:not(.room) .slot.taken{cursor:default;background:var(--surface-2)}
.pv .app:not(.room) .slot.mine{border-color:var(--good);background:var(--good-soft)}   /* booked on this phone: green (dim, 27 Oct 2026) */
.pv .app:not(.room) .slot.mine .t{color:var(--good)}
.pv .app:not(.room) .slot.mine .n{color:var(--fg)}
.pv .app:not(.room) .ph-cal{margin-top:8px;color:var(--good);border-color:var(--good)}
.pv .app:not(.room) .slot:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .ph-empty{font-size:.88rem;color:var(--muted)}
.pv .ph-np-wrap{position:fixed;inset:0;z-index:60;display:none;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.45)}
.pv .ph-np-wrap.on{display:flex}
.pv .ph-np-wrap .ph-np{width:100%;max-width:520px;max-height:82vh;display:flex;flex-direction:column;gap:8px;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0));border-radius:18px 18px 0 0;background:var(--surface);color:var(--fg)}
@media (min-width:641px){.pv .ph-np-wrap{align-items:center}
.pv .ph-np-wrap .ph-np{border-radius:18px;max-height:70vh;width:calc(100% - 48px);padding-bottom:16px;box-shadow:0 12px 40px rgba(0,0,0,.28)}}
@media (min-width:901px){.pv .ph-np-wrap{left:246px}}
.pv .ph-np-wrap .ph-np h3{margin:0;font-size:1.05rem}
.pv .ph-np-wrap .ph-np p{margin:0;font-size:.84rem;color:var(--fg-2)}
.pv .ph-np-wrap .ph-np input{font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--fg)}
.pv .ph-np-list{overflow:auto;display:flex;flex-direction:column;gap:2px;min-height:0}
.pv .ph-np-list h4{margin:8px 0 2px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv .ph-np-list button{all:unset;cursor:pointer;padding:8px 8px;border-radius:8px;font-size:.95rem}
.pv .ph-np-list button:hover,
.pv .ph-np-list button:focus-visible{background:var(--surface-2);outline:none}
.pv .ph-np-foot{display:flex;justify-content:space-between;gap:8px;align-items:center}
.pv .ph-np-foot button:not(.btn){all:unset;cursor:pointer;font-family:var(--display);font-size:.84rem;font-weight:600;color:var(--brass);text-decoration:underline;text-underline-offset:3px}
.pv .ph-np-foot .btn{margin-right:auto}
.pv .app:not(.room) .me{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--fg-2)}
.pv .app:not(.room) .me b{font-family:var(--display);color:var(--fg)}
.pv .app:not(.room) .me button{all:unset;cursor:pointer;color:var(--brass);text-decoration:underline;text-underline-offset:3px;font-weight:600;font-size:.8rem}
.pv .app:not(.room) .card.tight{padding:12px 16px;gap:8px}
.pv .app:not(.room) .champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.pv .app:not(.room) .champ-col{display:flex;flex-direction:column;min-width:0;border-top:1px solid var(--line)}
.pv .app:not(.room) .champ-col:nth-child(-n+2){border-top:0}
.pv .app:not(.room) .champ-col:nth-child(even){border-left:1px solid var(--line-soft)}
.pv .app:not(.room) .champ-div{margin:0;padding:12px 16px 3px;font-family:var(--display);font-size:.84rem;font-weight:700;letter-spacing:.01em;color:var(--brass)}
.pv .app:not(.room) .champ{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px 8px 16px;min-height:46px;font-size:.88rem}
.pv .app:not(.room) .champ + .champ{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .champ .cname{line-height:1.3;min-width:0}
.pv .app:not(.room) .champ .icon-btn{flex:none}
.pv .app:not(.room) .topic{justify-content:flex-start;padding:16px 12px;gap:8px;container-type:inline-size}
.pv .app:not(.room) .topic .emo{flex:none;width:22px;font-size:18px;line-height:1;text-align:center;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif}
.pv .app:not(.room) .topic h3{white-space:nowrap;font-size:min(20px, calc((100cqi - 26px) * .096))}
.pv .app:not(.room) .g4.topics{grid-template-columns:repeat(3,minmax(0,1fr))}
.pv .app:not(.room) .crisis header{padding:8px 16px}
.pv .app:not(.room) .lines{grid-template-columns:repeat(3,minmax(0,1fr))}
.pv .app:not(.room) .lines::after{content:"";background:var(--surface)}
.pv .app:not(.room) .line{padding:8px 16px}
.pv .app:not(.room) .g3{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}
.pv .app:not(.room) .heavy{padding:12px 16px;gap:8px}
.pv .app:not(.room) .heavy h3{font-size:.95rem}
.pv .app:not(.room) .svc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.pv .app:not(.room) .svc li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.84rem;color:var(--fg-2)}
.pv .app:not(.room) .svc li span{min-width:0}
.pv .app:not(.room) .svc li a{flex:none}
@media (max-width:1199px){.pv .app:not(.room) .lines,
.pv .app:not(.room) .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
.pv .app:not(.room) .lines::after{display:none}
.pv .app:not(.room) .topic h3{font-size:min(20px, calc((100cqi - 26px) * .096))}}
@media (max-width:640px){.pv .app:not(.room) .lines,
.pv .app:not(.room) .g3{grid-template-columns:minmax(0,1fr)}
.pv .app:not(.room) .champ-div{padding:8px 12px 2px;font-size:.8rem}
.pv .app:not(.room) .champ{padding:4px 8px 4px 12px;min-height:44px;gap:8px}
.pv .app:not(.room) .g4.topics{grid-template-columns:minmax(0,1fr)}
.pv .app:not(.room) .topic h3{font-size:min(20px, calc((100cqi - 26px) * .096))}}
.pv .app:not(.room) .res{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 16px;border-top:1px solid var(--line-soft);color:inherit;text-decoration:none;transition:background .12s}
.pv .app:not(.room) .card.flush > .res:first-child{border-top:0}
.pv .app:not(.room) .res:hover{background:var(--surface-2)}
.pv .app:not(.room) .res:focus-visible{outline:2px solid var(--brass-mark);outline-offset:-2px}
.pv .app:not(.room) .res .t{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .res .h{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px}
.pv .app:not(.room) .res b{font-family:var(--display);font-size:.93rem;font-weight:600}
.pv .app:not(.room) .res .by{font-size:.75rem;color:var(--muted)}
.pv .app:not(.room) .res .ln{font-size:.84rem;color:var(--fg-2)}
.pv .app:not(.room) .res .ext{width:15px;height:15px;flex:none;color:var(--brass)}
.pv .app:not(.room) .res.off{cursor:default;flex-wrap:wrap}
.pv .app:not(.room) .res.off .t{flex:1 1 220px}
.pv .app:not(.room) .res.off .lock{margin-left:auto}
.pv .app:not(.room) .res.off:hover{background:transparent}
.pv .app:not(.room) .res.off b{color:var(--fg-2)}
.pv .app:not(.room) .res .lock{flex:none;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:3px 8px;white-space:nowrap}
@media (max-width:640px){.pv .app:not(.room) .res .lock{font-size:.75rem;padding:2px 8px}}
.pv .app:not(.room) .card.nudge{flex-direction:row;align-items:center;justify-content:space-between;gap:8px 16px;padding:12px 16px;text-align:left;flex-wrap:wrap}
.pv .app:not(.room) .nudge p{margin:0;font-size:.88rem;color:var(--fg-2)}
.pv .app:not(.room) .nudge p b{color:var(--fg)}
.pv .app:not(.room) .nudge .open{margin-top:0;flex:none}
.pv .app:not(.room) .spec a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--brass-mark);text-underline-offset:3px;overflow-wrap:anywhere}
.pv .app:not(.room) .spec a:hover{color:var(--brass)}
.pv .nav .ti,
.pv .nav .ls,
.pv .ph-only{display:none}
@media (max-width:900px){.pv .app{grid-template-rows:auto 1fr}
.pv .ph-only{display:inline}
.pv .rail{flex-wrap:nowrap;align-items:center;gap:12px;padding:calc(8px + env(safe-area-inset-top,0)) 16px 8px}   /* the header owns the phone's top inset, so nothing on the page sits under it (dim, 3 Nov 2026) */
.pv .club{flex:1 1 auto;min-width:0}
.pv .club .ct span{display:none}
.pv .club b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.95rem}
.pv .club .crest{width:28px;height:28px}
.pv .rolewrap{flex:none}
.pv .role-now a{display:inline-block;padding:8px 0;font-size:.78rem}
.pv .nav{position:fixed;left:0;right:0;bottom:0;z-index:40;order:0;flex:none;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;margin:0;overflow:visible;background:var(--chrome);border-top:1px solid var(--chrome-line);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0))}
.pv .nav a{flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:52px;padding:4px 2px;border:0;border-radius:10px;font-size:.75rem;font-weight:500;white-space:nowrap;color:var(--chrome-muted)}
.pv .nav a .n,
.pv .nav a .lt{display:none}
.pv .nav a .ti{display:block;width:22px;height:22px;flex:none}
.pv .nav a .ls{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pv .nav a[aria-current="location"]{color:var(--chrome-club,var(--chrome-fg));background:none;border:0;box-shadow:none;font-weight:800}
.pv .nav a[aria-current="location"] .ti{stroke-width:2.4}
.pv .wrap{padding-block:16px calc(96px + env(safe-area-inset-bottom,0));gap:16px}
.pv #toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.pv .app:not(.room) .sec{scroll-margin-top:64px;gap:12px}
.pv .app:not(.room) .sec + .sec{padding-top:24px}
.pv .app:not(.room) .sec-head{gap:4px}
.pv h1{font-size:1.45rem;line-height:1.2}
.pv h2{font-size:1.2rem}
.pv .app:not(.room) .lede{font-size:.94rem}
.pv .app:not(.room) .back{padding-block:4px}
.pv .app:not(.room) .btn{padding:8px 16px}
.pv .app:not(.room) .btn.sm{padding:8px 12px}
.pv .rail,
.pv .wrap{padding-left:max(16px,env(safe-area-inset-left,0));padding-right:max(16px,env(safe-area-inset-right,0))}
.pv .nav{padding-left:max(8px,env(safe-area-inset-left,0));padding-right:max(8px,env(safe-area-inset-right,0))}}
.pv .home-link{display:flex;min-width:0;flex:1 1 auto;color:inherit;text-decoration:none}
.pv .home-link .club{width:100%}
@media (min-width:901px){.pv .only-phone{display:none !important}}
@media (max-width:900px){.pv .only-desk{display:none !important}}
.pv .app:not(.room) .num-link,
.pv .app:not(.room) .call .num{font-family:var(--body) !important;font-variant-numeric:tabular-nums;letter-spacing:0;font-weight:600}
.pv .app:not(.room) .icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg);text-decoration:none;flex:none}
.pv .app:not(.room) .icon-btn svg{width:19px;height:19px}
.pv .app:not(.room) .icon-btn.go{background:var(--fg);border-color:var(--fg);color:var(--paper)}
.pv .app:not(.room) .icon-btn.sm{width:34px;height:34px}
.pv .app:not(.room) .icon-btn.sm svg{width:16px;height:16px}
.pv .app:not(.room) .docbar button svg{display:none}
@media (max-width:900px){.pv .app:not(.room) .sec-head .kicker{display:none}
.pv .app:not(.room) .sec-head .lede{display:none}
.pv .app:not(.room) .sec-head h2{font-size:1.15rem}
.pv .app:not(.room) .dir-row .num-link{text-decoration:none;padding:8px 12px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);font-size:.88rem}
.pv .app:not(.room) .urgent .dir-row .num-link{background:var(--alert-soft);border-color:color-mix(in srgb,var(--alert) 30%,transparent);color:var(--alert)}
.pv .app:not(.room) .docbar{padding:0;border:0;background:none;flex-wrap:nowrap;gap:8px}
.pv .app:not(.room) .docbar .doc-meta{font-size:.76rem;line-height:1.4}
.pv .doc-btns{display:flex;gap:8px;flex:none}   /* Print and Email side by side (dim, 30 Oct 2026) */
.pv .app:not(.room) .docbar button{flex:none;display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border-radius:999px}
.pv .app:not(.room) .docbar button svg{display:block;width:17px;height:17px}
.pv .app:not(.room) .docbar button .pl{display:none}}
@media (max-width:640px){.pv .app:not(.room) .mbody table:not(.kv) thead{display:none}
.pv .app:not(.room) .mbody table:not(.kv) tr{display:block;padding:8px 8px;border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .mbody table:not(.kv) tbody tr:first-child{border-top:0}
.pv .app:not(.room) .mbody table:not(.kv) td{display:block;border:0;padding:1px 0}
.pv .app:not(.room) .mbody table:not(.kv) td:first-child{font-weight:600;color:var(--fg)}
.pv .app:not(.room) .mbody table:not(.kv) td:not(:first-child)[data-label]::before{content:attr(data-label) "  ";font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}}
.pv .theme-tg{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--chrome-line);border-radius:9px;color:var(--chrome-muted);font-family:var(--body);font-size:.82rem;margin-top:auto}
.pv .rail .theme-tg{order:10}
.pv .theme-tg:hover{color:var(--chrome-fg)}
.pv .theme-tg:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .theme-tg svg{width:17px;height:17px;flex:none}
.pv .theme-tg .i-sun,
.pv .app:not(.room) .theme-dark .theme-tg .i-moon{display:none}
.pv .app:not(.room) .theme-dark .theme-tg .i-sun{display:block}
@media (max-width:900px){.pv .rail .theme-tg{margin:0;flex:none;width:36px;height:36px;padding:0;justify-content:center;border-radius:999px}
.pv .rail .theme-tg .tg-l{display:none}}
.pv .save-tip{display:flex;align-items:flex-start;gap:8px;padding:4px 8px 4px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-size:.84rem}
.pv .save-tip[hidden]{display:none !important}
.pv .save-tip details{flex:1;min-width:0}
.pv .save-tip summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:34px;font-family:var(--display);font-weight:600;font-size:.84rem;color:var(--fg)}
.pv .save-tip summary::-webkit-details-marker{display:none}
.pv .save-tip summary svg{width:17px;height:17px;flex:none;color:var(--brass)}
.pv .save-tip p{margin:0 0 8px;color:var(--fg-2)}
.pv .save-tip button{all:unset;cursor:pointer;flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:7px;color:var(--muted);font-size:1.15rem;line-height:1}
.pv .save-tip button:hover{color:var(--fg);background:var(--sunk)}
@media (min-width:901px){.pv .save-tip{display:none !important}}
@media (max-width:900px){.pv input,
.pv select,
.pv textarea,
.pv .app:not(.room) .gate input,
.pv .app:not(.room) .frm input,
.pv .app:not(.room) .frm select,
.pv .app:not(.room) .frm textarea{font-size:16px}
.pv a,
.pv button,
.pv input,
.pv select,
.pv textarea,
.pv label,
.pv summary,
.pv .nav a{touch-action:manipulation}}
.pv .app:not(.room) .reach{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pv .app:not(.room) .reach-btn{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 16px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--fg);text-decoration:none;min-width:0}
.pv .app:not(.room) .reach-btn .ri{width:24px;height:24px;flex:none}
.pv .app:not(.room) .reach-btn span{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .reach-btn b{font-family:var(--display);font-size:1rem;font-weight:600}
.pv .app:not(.room) .reach-btn small{font-size:.8rem;color:var(--fg-2)}
.pv .app:not(.room) .reach-btn.talk{background:var(--fg);border-color:var(--fg);color:var(--paper)}
.pv .app:not(.room) .reach-btn.talk small{color:inherit;opacity:.75}
.pv .app:not(.room) .reach-btn.urgent{background:var(--alert-soft);border-color:color-mix(in srgb,var(--alert) 40%,var(--line))}
.pv .app:not(.room) .reach-btn.urgent b,
.pv .app:not(.room) .reach-btn.urgent .ri{color:var(--alert)}
.pv .app:not(.room) .reach-btn:hover{filter:brightness(1.04)}
.pv .app:not(.room) .crisis{scroll-margin-top:16px}
.pv .app:not(.room) .calls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-soft);border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .call{display:flex;align-items:center;gap:8px;background:var(--surface);padding:12px 16px;min-width:0}
.pv .app:not(.room) .call a{flex:1 1 auto;display:flex;flex-direction:column;gap:3px;color:inherit;text-decoration:none;min-width:0}
.pv .app:not(.room) .call .t{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .call b{font-family:var(--display);font-weight:600;font-size:.88rem}
.pv .app:not(.room) .call small{font-size:.76rem;color:var(--fg-2)}
.pv .app:not(.room) .call .num{font-family:var(--mono);font-size:1.02rem;font-weight:500;color:var(--alert);align-self:flex-start}
.pv .app:not(.room) details.more{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) details.more > summary{list-style:none}
.pv .app:not(.room) details.more > summary::-webkit-details-marker{display:none}
.pv .app:not(.room) details.heavy-more{border-top:0}
@media (min-width:901px){.pv .app:not(.room) details.more > summary{display:none}}
@media (max-width:900px){.pv .app:not(.room) .reach{grid-template-columns:minmax(0,1fr)}
.pv .app:not(.room) .crisis{scroll-margin-top:64px}
.pv .app:not(.room) .calls{grid-template-columns:minmax(0,1fr)}
.pv .app:not(.room) .call{padding:0}
.pv .app:not(.room) .call a{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;min-height:60px}
.pv .app:not(.room) .call .num{align-self:center;flex:none;font-size:1.05rem;background:var(--alert-soft);padding:8px 8px;border-radius:8px}
.pv .app:not(.room) .copy{display:none}
.pv .app:not(.room) details.more > summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:12px 16px;min-height:48px;font-family:var(--display);font-weight:600;font-size:.9rem;color:var(--fg)}
.pv .app:not(.room) details.more > summary::after{content:"+";font-family:var(--body);font-weight:500;color:var(--muted);font-size:1.1rem}
.pv .app:not(.room) details.more[open] > summary::after{content:"\2212"}
.pv .app:not(.room) details.heavy-more{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.pv .app:not(.room) details.heavy-more[open] > .g3{padding:0 12px 12px}
.pv .app:not(.room) .g4.topics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pv .app:not(.room) .topic{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 8px;min-height:78px}
.pv .app:not(.room) .topic h3{white-space:normal;font-size:min(.86rem, calc(100cqi * .135));line-height:1.2}
.pv .app:not(.room) .topic .emo{width:auto;font-size:19px;text-align:left}
.pv .app:not(.room) .rows .g2{gap:8px}
.pv .app:not(.room) .person{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px}
.pv .app:not(.room) .person > .note{display:none}
.pv .app:not(.room) .person .open{margin:0;font-size:0;gap:0}
.pv .app:not(.room) .person .open svg{width:18px;height:18px}
.pv .app:not(.room) .person.league{flex-direction:column;align-items:stretch}
.pv .app:not(.room) .person.league > .note{display:block}
.pv .app:not(.room) .person.league .open{font-size:.84rem;gap:8px}
.pv .app:not(.room) .person.league .open svg{width:15px;height:15px}}
.pv .app:not(.room) .topic .ticon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:var(--brass-soft);color:var(--brass)}
.pv .app:not(.room) .topic .ticon svg{width:19px;height:19px;color:inherit;transform:none !important;transition:none}
.pv .app:not(.room) .topic{gap:12px}
.pv .app:not(.room) .topic h3{font-size:min(18px, calc((100cqi - 72px) * .088))}
.pv .app:not(.room) .wm-acts{display:flex;gap:8px;flex:none}
.pv .app:not(.room) .reach.one{grid-template-columns:minmax(0,1fr)}
.pv .app:not(.room) .reach.one .reach-btn{min-height:46px;padding:8px 16px;gap:8px}
.pv .app:not(.room) .reach.one .reach-btn .ri{width:20px;height:20px}
.pv .app:not(.room) .reach.one .reach-btn span{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:1px 8px}
.pv .app:not(.room) .reach.one .reach-btn b{font-size:.95rem}
.pv .app:not(.room) .reach.one .reach-btn small{font-size:.8rem}
.pv .app:not(.room) .anon{display:flex;align-items:center;gap:8px;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:.86rem;color:var(--fg-2)}
.pv .app:not(.room) .anon svg{width:17px;height:17px;flex:none;color:var(--good)}
.pv .app:not(.room) .anon b{color:var(--fg);font-weight:600}
.pv .app:not(.room) .privacy-line summary{list-style:none}
.pv .app:not(.room) .privacy-line summary::-webkit-details-marker{display:none}
.pv .app:not(.room) .ctas{display:flex;flex-wrap:wrap;gap:8px}
.pv .app:not(.room) .ctas .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:10px;font-family:var(--display);font-weight:600;font-size:.9rem;text-decoration:none;border:1px solid var(--line);background:var(--surface);color:var(--fg)}
.pv .app:not(.room) .ctas .btn.brass{background:var(--fg);border-color:var(--fg);color:var(--paper)}
.pv .app:not(.room) .ctas .btn:hover{filter:brightness(1.05)}
.pv .app:not(.room) .ctas .bi{width:17px;height:17px;flex:none}
@media (max-width:900px){.pv .app:not(.room) .topic{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:12px 8px 12px;min-height:0}
.pv .app:not(.room) .topic .ticon{width:40px;height:40px}
.pv .app:not(.room) .topic .ticon svg{width:21px;height:21px}
.pv .app:not(.room) .topic h3{white-space:nowrap;font-size:max(.75rem, min(.86rem, calc(100cqi * .112)));line-height:1.2;font-weight:600}   /* the longest label, Communication, clears the tile's edges */
.pv .app:not(.room) .privacy-line{border:1px solid var(--line);border-left:3px solid var(--good);border-radius:10px;background:var(--surface)}
.pv .app:not(.room) .privacy-line summary{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:.86rem;font-weight:500;color:var(--fg)}
.pv .app:not(.room) .privacy-line summary svg{width:17px;height:17px;flex:none;color:var(--good)}
.pv .app:not(.room) .privacy-line summary span{flex:1;min-width:0}
.pv .app:not(.room) .privacy-line summary::after{content:"+";color:var(--muted);font-size:1.05rem}
.pv .app:not(.room) .privacy-line[open] summary::after{content:"\2212"}
.pv .app:not(.room) .privacy-line p{margin:0;padding:0 12px 12px 40px;font-size:.84rem;color:var(--fg-2)}
.pv .app:not(.room) .small-print{margin-top:8px;font-size:.78rem}
.pv .app:not(.room) .wm-card{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
.pv .app:not(.room) .rows{gap:12px}
.pv .app:not(.room) .rows .g2{gap:0;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.pv .app:not(.room) .rows .person{border:0;border-radius:0;border-top:1px solid var(--line-soft);padding:12px 16px;gap:12px;background:none}
.pv .app:not(.room) .rows .person:first-child{border-top:0}
.pv .app:not(.room) .rows .fs-slide .person{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r)}
.pv .app:not(.room) .rows .person .who{flex:1;min-width:0}
.pv .app:not(.room) .rows .person .nm{font-size:.95rem}
.pv .app:not(.room) .av{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:var(--brass-soft);color:var(--brass);font-family:var(--display);font-weight:700;font-size:.8rem;letter-spacing:.02em}
.pv .app:not(.room) .call .num{display:inline-flex;align-items:center;gap:8px;font-size:1rem}
.pv .app:not(.room) .call .num .ti{width:15px;height:15px;flex:none}
.pv .app:not(.room) .ctas{gap:8px}
.pv .app:not(.room) .ctas .btn{flex:1;justify-content:center;padding:12px 12px}
.pv .app:not(.room) details.about summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:8px}
.pv .app:not(.room) details.about summary::-webkit-details-marker{display:none}
.pv .app:not(.room) details.about .peek{font-size:.95rem;color:var(--fg-2)}
.pv .app:not(.room) details.about .rm{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brass)}
.pv .app:not(.room) details.about[open] .peek,
.pv .app:not(.room) details.about[open] .rm{display:none}
.pv .app:not(.room) details.about .about-body{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.pv .app:not(.room) dl.spec{grid-template-columns:minmax(0,1fr);gap:1px}
.pv .app:not(.room) dl.spec dd{margin:0 0 8px}
.pv .app:not(.room) dl.spec dd:last-child{margin-bottom:0}}
.pv .app:not(.room) .ev{display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .ev-next{display:grid;grid-template-columns:72px minmax(0,1fr);gap:0;padding:0;overflow:hidden}
.pv .app:not(.room) .ev-date{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:12px 8px;background:var(--brass-soft);color:var(--brass);font-family:var(--display);text-transform:uppercase;letter-spacing:.06em}
.pv .app:not(.room) .ev-date .d{font-size:1.75rem;font-weight:700;line-height:1;letter-spacing:-0.02em;color:var(--fg)}
.pv .app:not(.room) .ev-date .w,
.pv .app:not(.room) .ev-date .m{font-size:.75rem;font-weight:600}
.pv .app:not(.room) .ev-body{display:flex;flex-direction:column;gap:8px;padding:16px 16px;min-width:0}
.pv .app:not(.room) .ev-kick{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--brass)}
.pv .app:not(.room) .ev-kick{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pv .app:not(.room) .ev-open{display:inline-flex;align-items:center;gap:4px;color:var(--muted);text-decoration:none;font-size:.75rem;letter-spacing:.06em}
.pv .app:not(.room) .ev-open .chev{width:16px;height:16px}
.pv .app:not(.room) .ev-open:hover{color:var(--fg)}
.pv .app:not(.room) .ev-open:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px;border-radius:6px}
.pv .app:not(.room) .ev-title{font-family:var(--display);font-size:1.12rem;font-weight:600;line-height:1.25;margin:0;color:var(--fg)}
.pv .app:not(.room) .ev-meta{font-size:.86rem;color:var(--fg-2);display:flex;flex-wrap:wrap;gap:3px 16px}
.pv .app:not(.room) .ev-meta span{display:inline-flex;align-items:center;gap:8px;min-width:0}
.pv .app:not(.room) .ev-meta svg{width:14px;height:14px;flex:none;color:var(--muted)}
.pv .app:not(.room) .ev-st,
.pv .app:not(.room) .ev-row .t .ev-st{color:var(--alert);font-weight:600}
.pv .app:not(.room) .ev-text{font-size:.88rem;color:var(--fg-2);margin:0;line-height:1.5}
.pv .app:not(.room) .ev-tags{display:flex;flex-wrap:wrap;gap:8px}
.pv .app:not(.room) .ev-tag{font-family:var(--mono);font-size:.75rem;letter-spacing:.03em;padding:2px 8px;border-radius:99px;border:1px solid var(--line);color:var(--fg-2);white-space:nowrap}
.pv .app:not(.room) .ev-tag.alert{border-color:transparent;background:var(--alert-soft,#F7E2E0);color:var(--alert,#9C2E29)}
.pv .app:not(.room) .ev-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.pv .app:not(.room) .ev-btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;border:1px solid var(--line);font-family:var(--display);font-size:.78rem;font-weight:600;color:var(--fg);background:var(--surface)}
.pv .app:not(.room) .ev-btn:hover{border-color:var(--brass-mark)}
.pv .app:not(.room) .ev-btn:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .ev-btn svg{width:15px;height:15px;flex:none}
.pv .app:not(.room) .ev-btn.primary{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv .app:not(.room) .ev-list{padding:0;gap:0;overflow:hidden}
.pv .app:not(.room) .ev-row{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .ev-row:first-child{border-top:0}
.pv .app:not(.room) .ev-row > summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px}
.pv .app:not(.room) .ev-row > summary::-webkit-details-marker{display:none}
.pv .app:not(.room) .ev-row > summary:focus-visible{outline:2px solid var(--brass-mark);outline-offset:-2px}
.pv .app:not(.room) .ev-chip{display:flex;flex-direction:column;align-items:center;line-height:1.05;font-family:var(--display);text-transform:uppercase}
.pv .app:not(.room) .ev-chip .d{font-size:1.15rem;font-weight:700;color:var(--fg)}
.pv .app:not(.room) .ev-chip .m{font-size:.75rem;font-weight:600;letter-spacing:.07em;color:var(--brass)}
.pv .app:not(.room) .ev-row .t{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .ev-row .t b{font-family:var(--display);font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .app:not(.room) .ev-row .t span{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .app:not(.room) .ev-row .chev{width:16px;height:16px;color:var(--muted);transition:transform .15s}
.pv .app:not(.room) .ev-row[open] .chev{transform:rotate(90deg)}
.pv .app:not(.room) .ev-row .more{display:flex;flex-direction:column;gap:8px;padding:0 16px 16px 72px}
.pv .app:not(.room) .ev-row.off .t b{text-decoration:line-through;color:var(--muted)}
.pv .app:not(.room) .ev-month{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:8px 0 -2px}
.pv .app:not(.room) .ev-turn{color:var(--good);font-weight:600}
.pv .app:not(.room) .ev-empty{display:flex;align-items:center;gap:12px;padding:16px 16px}
.pv .app:not(.room) .ev-empty svg{width:22px;height:22px;color:var(--muted);flex:none}
.pv .app:not(.room) .ev-empty p{margin:0;font-size:.88rem;color:var(--fg-2)}
.pv .app:not(.room) .ev-empty b{display:block;color:var(--fg);font-family:var(--display);font-weight:600}
.pv .app:not(.room) .ev-all{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);text-decoration:none}
.pv .app:not(.room) .ev-all svg{width:15px;height:15px}
.pv .app:not(.room) .ev-next.sm{grid-template-columns:56px minmax(0,1fr)}
.pv .app:not(.room) .ev-next.sm .ev-date{padding:8px 4px}
.pv .app:not(.room) .ev-next.sm .ev-date .d{font-size:1.35rem}
.pv .app:not(.room) .ev-next.sm .ev-date .w,
.pv .app:not(.room) .ev-next.sm .ev-date .m{font-size:.75rem}
.pv .app:not(.room) .ev-next.sm .ev-body{gap:4px;padding:8px 16px}
.pv .app:not(.room) .ev-next.sm .ev-kick{font-size:.75rem}
.pv .app:not(.room) .ev-next.sm .ev-title{font-size:.98rem}
.pv .app:not(.room) .ev-next.sm .ev-meta{font-size:.8rem}
.pv .app:not(.room) .ev-next.sm .ev-text{font-size:.82rem}
.pv .app:not(.room) .ev-next.sm .ev-tag{font-size:.75rem;padding:1px 8px}
.pv .app:not(.room) .ev-next.sm .ev-btn{padding:8px 8px;font-size:.75rem}
.pv .app:not(.room) .ev-next.sm .ev-btn svg{width:14px;height:14px}
.pv .app:not(.room) .ev-desk{display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .ev-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:46px;padding:8px 12px 8px 16px;flex-direction:row;text-decoration:none;color:var(--fg)}
.pv .app:not(.room) .ev-line .dt{font-family:var(--display);font-size:.92rem;font-weight:600;line-height:1.3;color:var(--brass);white-space:nowrap}   /* the date the same size as the title and on its line (dim, 24 Oct 2026) */
.pv .app:not(.room) .ev-line .t{display:flex;align-items:baseline;gap:8px;min-width:0}
.pv .app:not(.room) .ev-line .t b{font-family:var(--display);font-size:.92rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pv .app:not(.room) .ev-line .t span{font-size:.78rem;color:var(--muted);white-space:nowrap;flex:none}
.pv .app:not(.room) .ev-line .chev{width:16px;height:16px;color:var(--muted)}
.pv .app:not(.room) .ev-line .see{display:inline-flex;align-items:center;gap:2px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--muted);white-space:nowrap;flex:none}
.pv .app:not(.room) .ev-line:hover .see{color:var(--fg)}
.pv .app:not(.room) .ev-line.off .t b{text-decoration:line-through;color:var(--muted)}
.pv .app:not(.room) .ev-line .t .ev-st{color:var(--alert);font-weight:600}
.pv .app:not(.room) .ev-more{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font-family:var(--display);font-size:.86rem;font-weight:600;text-decoration:none}
.pv .app:not(.room) .ev-more svg{width:15px;height:15px}
.pv .app:not(.room) .ev-more:focus-visible,
.pv .app:not(.room) .ev-line:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
@media (max-width:640px){.pv .app:not(.room) .ev-next{grid-template-columns:60px minmax(0,1fr)}
.pv .app:not(.room) .ev-date .d{font-size:1.5rem}
.pv .app:not(.room) .ev-body{padding:12px 16px}
.pv .app:not(.room) .ev-row > summary{grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding:8px 16px}
.pv .app:not(.room) .ev-row .more{padding:0 16px 12px 64px}}
@media (prefers-reduced-motion:reduce){.pv .app:not(.room) .ev-row .chev{transition:none}}
.pv .app:not(.room) .fx{display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .fx-teams{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:1px}
.pv .app:not(.room) .fx-teams::-webkit-scrollbar{display:none}
.pv .app:not(.room) .fx-team{all:unset;box-sizing:border-box;cursor:pointer;flex:none;padding:8px 12px;border-radius:99px;border:1px solid var(--line);background:var(--surface);
  font-family:var(--display);font-size:.78rem;font-weight:600;color:var(--fg-2);white-space:nowrap}
/* THE SELECTION RULE (dim, 2 Nov 2026): anything picked, a pill, chip, tab, day or slot, wears the club's secondary colour: background and border var(--brass-mark), text var(--on-brass). Never plain white or var(--fg). */
.pv .app:not(.room) .fx-team[aria-pressed="true"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}   /* the picked team in the club colour (UI review, 2 Nov 2026) */
.pv .app:not(.room) .fx-team:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .fx-vs{font-weight:500;color:var(--muted);margin-right:4px}
.pv .app:not(.room) .fx-ha{font-family:var(--mono);font-size:.75rem;letter-spacing:.03em;padding:2px 8px;border-radius:99px;border:1px solid var(--line);color:var(--fg-2)}
.pv .app:not(.room) .fx-ha.home{border-color:transparent;background:var(--brass-soft);color:var(--brass)}
.pv .app:not(.room) .fx-last{font-size:.8rem;color:var(--muted);margin:0}
.pv .app:not(.room) .fx-last b{font-weight:600;color:var(--fg-2)}
.pv .app:not(.room) .fx-res{flex:none;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.75rem;color:var(--fg-2);white-space:nowrap}
.pv .app:not(.room) .fx-res i{font-style:normal;font-family:var(--display);font-weight:700;font-size:.75rem;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;
  background:var(--surface-2);color:var(--fg-2)}
.pv .app:not(.room) .fx-res i.w{background:var(--good-soft);color:var(--good)}
.pv .app:not(.room) .fx-res i.l{background:var(--alert-soft,#F7E2E0);color:var(--alert,#9C2E29)}
.pv .app:not(.room) .fx-list{padding:0;gap:0;overflow:hidden}
.pv .app:not(.room) .fx-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 16px;border-top:1px solid var(--line-soft);
  color:var(--fg);text-decoration:none}
.pv .app:not(.room) .fx-row:first-child{border-top:0}
.pv .app:not(.room) .fx-row.next{background:color-mix(in srgb,var(--brass-soft) 60%,transparent)}
.pv .app:not(.room) .fx-row.past .t b{color:var(--fg-2)}
.pv .app:not(.room) .fx-row .t{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .fx-row .t b{font-family:var(--display);font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .app:not(.room) .fx-row .t span{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .app:not(.room) .fx-row .rd{font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
.pv .app:not(.room) .fx-row:focus-visible{outline:2px solid var(--brass-mark);outline-offset:-2px}
.pv .app:not(.room) .fx-tag{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brass)}
.pv .app:not(.room) .fx-open{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:inherit;padding:4px 0 4px 8px}
.pv .app:not(.room) .see{display:inline-flex;align-items:center;gap:2px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--muted);white-space:nowrap;flex:none}
.pv .app:not(.room) .see .chev{width:16px;height:16px}
.pv .app:not(.room) .fx-open:hover .see,
.pv .app:not(.room) .ev-line:hover .see{color:var(--fg)}
.pv .app:not(.room) .fx-line .t b{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .fx-line .t span{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .fx-open .chev{width:18px;height:18px;color:var(--chrome-muted)}
.pv .app:not(.room) .fx-open:hover .chev{color:var(--chrome-fg)}
.pv .app:not(.room) .fx-open:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px;border-radius:6px}
.pv .app:not(.room) .fx-off{color:var(--alert);font-weight:600}
@media (max-width:640px){.pv .app:not(.room) .fx-row{grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding:8px 16px}}
/* the ladder (dim, 27 Oct 2026): a tight table, the club's own row in the club's soft colour, numbers in the mono face */
.pv .app:not(.room) .ld-table{padding:0;gap:0;overflow:hidden}
.pv .app:not(.room) .ld-row{display:grid;grid-template-columns:24px minmax(0,1fr) 30px 40px 58px;align-items:center;gap:4px;padding:8px 12px;border-top:1px solid var(--line-soft);font-size:.86rem}
.pv .app:not(.room) .ld-row:first-child{border-top:0}
.pv .app:not(.room) .ld-head{font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-2,transparent)}
.pv .app:not(.room) .ld-pos{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-align:center}
.pv .app:not(.room) .ld-name{font-family:var(--display);font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .app:not(.room) .ld-n{font-family:var(--mono);font-size:.8rem;text-align:right;color:var(--fg-2)}
.pv .app:not(.room) .ld-pts{font-weight:700;color:var(--fg)}
.pv .app:not(.room) .ld-row.us{background:color-mix(in srgb,var(--brass-soft) 60%,transparent)}
.pv .app:not(.room) .ld-row.us .ld-pos,.pv .app:not(.room) .ld-row.us .ld-name{color:var(--brass)}
.pv .app:not(.room) .ld-row:not(.ld-head):not(.us) .ld-name{color:var(--fg)}
@media (max-width:400px){.pv .app:not(.room) .ld-row{grid-template-columns:22px minmax(0,1fr) 28px 36px 52px;padding:8px 8px;gap:4px}
.pv .app:not(.room) .ld-row .ld-name{font-size:.84rem;white-space:normal;line-height:1.25;overflow-wrap:break-word}}   /* a long club name takes two lines on a phone, never cut short (28 Oct 2026) */
.pv .app:not(.room) .wo-group{display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .wo-group + .wo-group{margin-top:16px}
.pv .app:not(.room) .wo-sub{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.pv .app:not(.room) .wo-sub .ic{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--brass-soft);color:var(--brass)}
.pv .app:not(.room) .wo-sub .ic svg{width:18px;height:18px}
.pv .app:not(.room) .wo-sub h3{font-family:var(--display);font-size:1.08rem;font-weight:700;letter-spacing:-0.01em;margin:0;color:var(--fg)}
.pv .app:not(.room) .wo-sub .src{margin-left:auto;font-size:.76rem;color:var(--muted);text-align:right}
.pv .app:not(.room) .fx-line{background:var(--chrome);border:1.5px solid var(--chrome-accent);color:var(--chrome-fg)}
.pv .app:not(.room) .fx-line .dt{color:var(--chrome-fg)}
.pv .app:not(.room) .fx-line .t b{color:var(--chrome-fg)}
.pv .app:not(.room) .fx-line .t span{color:var(--chrome-muted);flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .fx-line .fx-vs{color:var(--chrome-muted)}
.pv .app:not(.room) .fx-line .chev{color:var(--chrome-muted)}
.pv .app:not(.room) .fx-line:focus-visible{outline:2px solid var(--chrome-accent);outline-offset:2px}
.pv .app:not(.room) .fx-prev{display:flex;flex-direction:column;gap:8px;min-width:0}
.pv .app:not(.room) .fx-prev .fx-row.next{background:var(--chrome);color:var(--chrome-fg)}
.pv .app:not(.room) .fx-prev .fx-row.next .t b,
.pv .app:not(.room) .fx-prev .fx-row.next .ev-chip .d{color:var(--chrome-fg)}
.pv .app:not(.room) .fx-prev .fx-row.next .t span,
.pv .app:not(.room) .fx-prev .fx-row.next .rd,
.pv .app:not(.room) .fx-prev .fx-row.next .fx-vs{color:var(--chrome-muted)}
.pv .app:not(.room) .fx-prev .fx-row.next .ev-chip .m,
.pv .app:not(.room) .fx-prev .fx-row.next .fx-tag{color:var(--chrome-fg)}
.pv .app:not(.room) .ci{gap:12px;padding:16px 16px}
.pv .app:not(.room) .ci-q{display:flex;flex-direction:column;gap:2px}
.pv .app:not(.room) .ci-q b{font-family:var(--display);font-size:1.02rem;font-weight:600;color:var(--fg)}
.pv .app:not(.room) .ci-q span{font-size:.82rem;color:var(--muted)}
.pv .app:not(.room) .ci-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.pv .app:not(.room) .ci-scale button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;place-items:center;height:48px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font-family:var(--display);font-size:1.12rem;font-weight:700;color:var(--fg);transition:border-color .15s,background .15s,transform .1s}
.pv .app:not(.room) .ci-scale button:hover{border-color:var(--brass-mark)}
.pv .app:not(.room) .ci-scale button:active{transform:scale(.96)}
.pv .app:not(.room) .ci-scale button:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .ci-scale button[aria-pressed="true"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv .app:not(.room) .ci-ends{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted);margin-top:2px}
.pv .app:not(.room) .ci-done{display:flex;align-items:flex-start;gap:8px}
.pv .app:not(.room) .ci-done svg{width:20px;height:20px;flex:none;color:var(--good,#2E7D4F);margin-top:1px}
.pv .app:not(.room) .ci-done p{margin:0;font-size:.9rem;color:var(--fg-2);line-height:1.5}
.pv .app:not(.room) .ci-done p b{color:var(--fg);font-family:var(--display);font-weight:600}
.pv .app:not(.room) .ci-help{display:flex;flex-direction:column;gap:8px}
.pv .app:not(.room) .ci-help p{margin:0;font-size:.9rem;color:var(--fg-2);line-height:1.5}
.pv .app:not(.room) .ci-help p b{color:var(--fg);font-family:var(--display);font-weight:600}
.pv .app:not(.room) .ci-acts{display:flex;flex-wrap:wrap;gap:8px}
.pv .app:not(.room) .ci-acts a{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--fg);text-decoration:none;font-family:var(--display);font-size:.8rem;font-weight:600}
.pv .app:not(.room) .ci-acts a:hover{border-color:var(--brass-mark)}
.pv .app:not(.room) .ci-acts a.go{background:var(--fg);border-color:var(--fg);color:var(--paper)}
.pv .app:not(.room) .ci-acts a.urgent{color:var(--alert);border-color:color-mix(in srgb,var(--alert) 35%,var(--line));background:var(--alert-soft)}
.pv .app:not(.room) .ci-acts svg{width:15px;height:15px;flex:none}
.pv .app:not(.room) .ci-small{font-size:.76rem;color:var(--muted);margin:0}
@media (max-width:640px){.pv .app:not(.room) .ci{padding:16px 16px}
.pv .app:not(.room) .ci-scale{gap:8px}
.pv .app:not(.room) .ci-scale button{height:46px}}
.pv .app:not(.room) .ci{transition:opacity .35s ease, max-height .45s ease, margin .45s ease, padding .45s ease, border-width .45s ease}
.pv .app:not(.room) .ci.ci-gone{opacity:0;max-height:0 !important;margin-top:-16px;padding-top:0;padding-bottom:0;border-width:0;overflow:hidden}
.pv .app:not(.room) .ci-x{all:unset;cursor:pointer;align-self:flex-start;font-family:var(--display);font-size:.78rem;font-weight:600;color:var(--muted);padding:4px 0}
.pv .app:not(.room) .ci-x:hover{color:var(--fg)}
@media (prefers-reduced-motion:reduce){.pv .app:not(.room) .ci-scale button,
.pv .app:not(.room) .ci{transition:none}}
.pv .app:not(.room) .ci-k{font-family:var(--display);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:8px 0 4px}
.pv .app:not(.room) .ci-lines{display:flex;flex-direction:column;gap:8px}
.pv .app:not(.room) .ci-line{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--fg);text-decoration:none}
.pv .app:not(.room) .ci-line svg{width:18px;height:18px;flex:none;color:var(--brass)}
.pv .app:not(.room) .ci-line span{display:flex;flex-direction:column;min-width:0}
.pv .app:not(.room) .ci-line b{font-family:var(--display);font-size:.92rem}
.pv .app:not(.room) .ci-line small{font-size:.8rem;color:var(--muted)}
.pv .app:not(.room) .sv-card{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;text-align:left;gap:12px;padding:12px 16px;border-left:3px solid var(--brass-mark)}
.pv .app:not(.room) .sv-card .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--brass-soft);color:var(--brass);flex:none}
.pv .app:not(.room) .sv-card .ic svg{width:20px;height:20px}
.pv .app:not(.room) .sv-card .t{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.pv .app:not(.room) .sv-card .t b{font-family:var(--display);font-size:.95rem;font-weight:600}
.pv .app:not(.room) .sv-card .t span{font-size:.82rem;color:var(--fg-2)}
.pv .app:not(.room) .sv-go{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;background:var(--brass-mark);color:var(--on-brass);font-family:var(--display);font-size:.8rem;font-weight:600;text-decoration:none;flex:none;white-space:nowrap}
.pv .app:not(.room) .sv-go:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .sv-note{font-size:.78rem;color:var(--muted);margin:8px 0 0}
.pv .app:not(.room) .sv-list{padding:0;gap:0;overflow:hidden}
.pv .app:not(.room) .sv-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 16px;border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .sv-row:first-child{border-top:0}
.pv .app:not(.room) .sv-row b{font-family:var(--display);font-size:.92rem;font-weight:600}
.pv .app:not(.room) .sv-row span.d{display:block;font-size:.8rem;color:var(--muted)}
.pv .app:not(.room) .sv-pill{font-size:.75rem;font-weight:600;padding:3px 8px;border-radius:99px;border:1px solid var(--line);color:var(--fg-2);white-space:nowrap}
.pv .app:not(.room) .sv-pill.sv-on{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv .app:not(.room) .sv-resume{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border:1px solid var(--line);border-left:3px solid var(--brass-mark);border-radius:10px;background:var(--surface);font-size:.84rem;color:var(--fg-2)}
.pv .app:not(.room) .sv-resume .ic{width:24px;height:24px;flex:none;display:grid;place-items:center;color:var(--brass)}
.pv .app:not(.room) .sv-resume .ic svg{width:17px;height:17px}
.pv .app:not(.room) .sv-resume .t{flex:1;min-width:0}
.pv .app:not(.room) .sv-resume a{color:var(--fg);font-weight:600;text-decoration:underline;text-decoration-color:var(--brass-mark);text-underline-offset:3px;white-space:nowrap}
.pv .app:not(.room) .sv-done{all:unset;box-sizing:border-box;cursor:pointer;flex:none;padding:4px 8px;border-radius:7px;border:1px solid var(--line);font-family:var(--display);font-size:.75rem;font-weight:600;color:var(--muted)}
.pv .app:not(.room) .sv-done:hover{color:var(--fg);border-color:var(--fg-2)}
.pv .app:not(.room) .sv-done:focus-visible,
.pv .app:not(.room) .sv-resume a:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) .sv-card,
.pv .app:not(.room) .sv-resume{transition:opacity .35s ease,max-height .45s ease,margin .45s ease,padding .45s ease}
.pv .app:not(.room) .sv-gone{opacity:0;max-height:0 !important;padding-top:0 !important;padding-bottom:0 !important;border-width:0 !important;overflow:hidden}
@media (prefers-reduced-motion:reduce){.pv .app:not(.room) .sv-card,
.pv .app:not(.room) .sv-resume{transition:none}}
@media (max-width:640px){.pv .app:not(.room) .sv-card{flex-wrap:wrap}
.pv .app:not(.room) .sv-card .t{flex:1 1 calc(100% - 60px)}
.pv .app:not(.room) .sv-go{margin-left:48px}}
.pv .app:not(.room) .btn.brass{color:var(--on-brass)}
.pv .app:not(.room) .tbc:not(.demo-hide){color:#DFAF52;background:#2E2514;border-color:rgba(217,169,74,.45)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pv .app:not(.room) .tbc:not(.demo-hide){color:#DFAF52;background:#2E2514;border-color:rgba(217,169,74,.45)}}
:root[data-theme="dark"] .pv .app:not(.room) .tbc:not(.demo-hide){color:#DFAF52;background:#2E2514;border-color:rgba(217,169,74,.45)}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .pv .role-now a{color:var(--chrome-fg)}}
:root[data-theme="light"] .pv .role-now a{color:var(--chrome-fg)}
.pv .app:not(.room) .legal-foot{margin:32px 0 8px;padding-top:16px;border-top:1px solid var(--line);font-size:.78rem;line-height:1.5;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 16px}
.pv .app:not(.room) .legal-foot a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.pv .app:not(.room) .legal-foot a:hover{color:var(--fg)}
.pv .app:not(.room) .anon a{color:var(--brass);text-underline-offset:2px}
.pv .app:not(.room) #flag .row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.pv .app:not(.room) #flag .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:10px;font-family:var(--display);font-weight:600;font-size:.9rem;text-decoration:none;cursor:pointer;border:1px solid var(--fg);background:var(--fg);color:var(--paper)}
.pv .app:not(.room) #flag .btn:hover{filter:brightness(1.05)}
.pv .app:not(.room) #flag .card{display:flex;flex-direction:column;gap:8px}
/* Touchbase additions: the light switch follows data-theme, a crest when the club has none, and the app's own
   card, list and details rules kept out of this page */
.pv .theme-tg .i-sun{display:none}
:root[data-theme="dark"] .pv .theme-tg .i-moon{display:none}
:root[data-theme="dark"] .pv .theme-tg .i-sun{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pv .theme-tg .i-moon{display:none}
:root:not([data-theme="light"]) .pv .theme-tg .i-sun{display:block}}
.pv .crest-txt{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:999px;background:var(--chrome-2);border:1px solid var(--chrome-line);color:var(--chrome-fg);font-family:var(--display);font-weight:700;font-size:.75rem;letter-spacing:.02em}
@media (max-width:900px){.pv .crest-txt{width:30px;height:30px;font-size:.75rem}}
.pv .app:not(.room) .card{margin:0;overflow:visible}
.pv .app:not(.room) .card.flush,
.pv .app:not(.room) .card.fx-list,
.pv .app:not(.room) .card.ev-list{overflow:hidden}
.pv .app:not(.room) .person .note{margin-top:0}
.pv .app:not(.room) .call{border-bottom:0;justify-content:flex-start}
.pv .app:not(.room) .ev{padding:0;border-bottom:0}
.pv .app:not(.room) details.more:not(.heavy-more){border:0;border-top:1px solid var(--line-soft);border-radius:0;background:none;margin:0}
.pv .app:not(.room) details.heavy-more{margin:0}
@media (min-width:901px){.pv .app:not(.room) details.heavy-more{border:0;border-radius:0;background:none}}
.pv .app:not(.room) .slot{min-width:0}
.pv .app:not(.room) .slot.free{color:inherit}
.pv .app:not(.room) .ci .ci-q span{margin-bottom:0}
.pv .demo-bar{margin:0}
.pv .demo-bar button{border-color:var(--line);color:var(--fg)}
.pv .demo-bar button[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--paper)}
.pv .app:not(.room) .partner{margin:16px 0 0}
.pv .app:not(.room) .nt-more{margin-top:2px}
/* The sample club's bar: one line on a phone */
.pv .demo-bar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px;background:var(--brass-soft);color:var(--fg);border:1px solid var(--brass-mark);border-radius:var(--r);padding:8px 8px 8px 12px;font-size:.84rem}
.pv .demo-what{min-width:0}
.pv .demo-tier{flex:none;font-weight:500}
.pv .demo-tier select{width:auto;min-height:34px;padding:4px 24px 4px 8px;font-size:.84rem;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:8px}
@media (max-width:900px){.pv .demo-more{display:none}
.pv .demo-bar{padding:4px 8px 4px 12px}
.pv .demo-tier select{font-size:15px;min-height:32px;padding:2px 24px 2px 8px}}
/* the club card on the rail keeps its own height on a computer */
@media (min-width:901px){.pv .home-link{flex:none}}
.pv .ph-role{display:none}
.pv .rail .theme-tg{margin-top:0}
.pv .rail .nav[hidden]{display:none}
/* Every other page in the same frame: staff rooms, the welfare room, the committee page, settings, the doors.
   The page's own cards and forms keep their layout; the frame, headings and spacing follow the player page. */
.pv .app.room .wrap{max-width:860px}
.pv .app.room .wrap > main{max-width:none;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:12px}
.pv .app.room main > *{margin-top:0;margin-bottom:0}
.pv .app.room main h1{font-size:1.75rem;font-weight:600;line-height:1.2}
.pv .app.room main h2{font-size:1.25rem;font-weight:600;line-height:1.25}
.pv .app.room main .card h2{font-size:1.1rem}
.pv .app.room main .lede{color:var(--fg-2)}
.pv .app.room main .card{display:block;margin-bottom:0;padding:16px 16px}
.pv .app.room main .card + .card,
.pv .app.room main .card + details,
.pv .app.room main details + .card{margin-top:0}
.pv .app.room main .card .lede{margin-bottom:12px}
.pv .app.room section.block{margin:0;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;scroll-margin-top:16px;min-width:0}
.pv .app.room section.block > h2{margin:0}
.pv .app.room section.block > .lede{margin:-4px 0 0}
.pv .app.room main > section.block:first-child{border-top:0;padding-top:0}
.pv .app.room main > form:first-child > section.block:first-of-type,.pv .app.room main > [hidden]:first-child + section.block{border-top:0;padding-top:0}
.pv .app.room main details.more{margin-bottom:0}
.pv .app.room .notice{margin-bottom:0;border-left:3px solid var(--info);border-radius:var(--r)}
.pv .app.room .stripe{margin-bottom:0;border-left:3px solid var(--brass-mark);border-radius:var(--r)}
.pv .app.room .doors{margin-top:4px}
.pv .app.room .door{border-radius:var(--r)}
.pv .app.room .door:hover{border-color:var(--brass-mark);transform:translateY(-1px)}
.pv .app.room .door{transition:border-color .15s,transform .15s}
.pv .app.room .door .go{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.pv .app.room .foot{margin-top:8px;padding-top:16px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.pv .app.room:not(.tabbed) .wrap:has(> .foot:last-child){padding-bottom:0}   /* a room with bottom tabs keeps its room for them */
.pv .app.room .foot a{color:inherit}
.pv .app.room .pill{align-self:auto}
.pv .app.room .tabs button{font-family:var(--display);font-weight:600;font-size:.82rem}
@media (max-width:900px){.pv .app.room .nav{display:none}
.pv .app.room .wrap{padding-block:16px calc(40px + env(safe-area-inset-bottom,0));gap:16px}
.pv .app.room .club .ct .ph-role{display:block;font-size:.75rem;color:var(--chrome-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app.room .role-now a{font-size:.84rem;font-weight:600}
.pv .app.room main h1{font-size:1.4rem}
.pv .app.room main h2{font-size:1.15rem}
.pv .app.room main .card{padding:16px 16px}
.pv .app.room section.block{padding-top:24px}}
@media print{.pv .rail,.pv .demo-bar,.pv .app:not(.room) .foot{display:none !important}
.pv .app{display:block}
.pv .wrap{padding:0;max-width:none}}
.pv .demo-what b{white-space:nowrap}
@media (max-width:480px){.pv .demo-tier .dt-l{display:none}}
/* the pages outside a club: sign-up, the league view, admin */
.pv .rail-x{display:flex;flex-direction:column;gap:8px}
.pv .rail-x .btn{min-height:38px;justify-content:flex-start;padding:8px 12px;border:1px solid var(--chrome-line);border-radius:9px;background:none;color:var(--chrome-fg);font-size:.84rem}
.pv .app.room .wrap > main.wide{max-width:none}
.pv .app.room .wrap:has(> main.wide){max-width:1100px}
@media (max-width:900px){.pv .rail-x{flex-direction:row}
.pv .rail-x .btn{min-height:34px;padding:4px 8px}}
.pv .app.room main > form > .card + .card,
.pv .app.room main > div > .card + .card{margin-top:16px}
.pv .app.room main .card > h2{margin-bottom:8px}
.pv .app.room main > form > .btn.block{margin-top:16px}
.pv .app:not(.room) .wk{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
/* the committee page on the Season Program and Round 1 Ready: a tab bar on a phone, results as cards to swipe */
@media (max-width:900px){.pv .app.room.tabbed .nav{display:grid}
.pv .app.room.tabbed .wrap{padding-bottom:calc(96px + env(safe-area-inset-bottom,0))}}
.pv .app.room.tabbed section.block{scroll-margin-top:72px}
.pv .cm-deck{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 0;margin:0 -2px;overscroll-behavior-x:contain}
.pv .cm-deck::-webkit-scrollbar{display:none}
/* Results as a scoreboard (dim, 29 Oct 2026): the boxes, then one card on its own page */
.pv .cm-board .cmb{gap:3px;padding:12px 12px 12px}
.pv .cm-board .cmt-v.txt{font-size:1.15rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
.pv .cm-board .cmt-s{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pv .cm-board-hint{margin:12px 0 0}
.pv .cm-slide.cm-one{min-height:0;width:100%}
.pv .cm-card-back{margin:16px 0 0}
.pv .cm-slide{flex:0 0 min(88%,460px);scroll-snap-align:center;display:flex;flex-direction:column;gap:8px;min-height:430px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px 24px 16px}
.pv .cm-k{margin:0;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pv .cm-big{margin:0;font-family:var(--display);font-size:2.4rem;font-weight:700;line-height:1.08;letter-spacing:-.02em;color:var(--fg);overflow-wrap:anywhere}
.pv .cm-big .u{font-size:1.1rem;font-weight:600;margin-left:3px;color:var(--fg-2);letter-spacing:0}
.pv .cm-sub{margin:0;font-size:.98rem;color:var(--fg-2)}
.pv .cm-body{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.pv .cm-foot{margin-top:auto;padding-top:16px;font-size:.88rem;color:var(--muted);line-height:1.5}
.pv .cm-track{height:14px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line-soft);overflow:hidden}
.pv .cm-track i{display:block;height:100%;background:var(--brass-mark);border-radius:999px}
.pv .cm-track.split{background:var(--muted)}
.pv .cm-ends{display:flex;justify-content:space-between;gap:8px;font-size:.92rem;color:var(--fg-2)}
.pv .cm-ends b,.pv .cm-line b,.pv .cm-legend b{color:var(--fg);font-weight:700}
.pv .cm-line{margin:0;font-size:.92rem;color:var(--fg-2)}
.pv .cm-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.88rem;color:var(--fg-2)}
.pv .cm-legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--muted);margin-right:8px;vertical-align:-1px}
.pv .cm-legend .sw.on{background:var(--brass-mark)}
.pv .cm-hb{display:flex;flex-direction:column;gap:8px}
.pv .cm-hr{display:grid;grid-template-columns:minmax(0,9.5em) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:.9rem;color:var(--fg-2)}
.pv .cm-hr .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .cm-hr .b{height:12px}
.pv .cm-hr .b i{display:block;height:100%;min-width:3px;border-radius:4px;background:var(--muted)}
.pv .cm-hr .v{font-variant-numeric:tabular-nums;white-space:nowrap}
.pv .cm-hr .v small{color:var(--muted);font-size:.8rem}
.pv .cm-hb.wk .cm-hr{grid-template-columns:4.5em minmax(0,1fr) auto}
.pv .cm-hr.on{color:var(--fg);font-weight:600}
.pv .cm-hr.on .b i{background:var(--brass-mark)}
.pv .cm-ck{margin:0;font-size:.86rem;color:var(--muted)}
.pv .cm-cols{display:flex;gap:24px;align-items:flex-end;height:170px;border-bottom:1px solid var(--line);padding:0 12px}
.pv .cm-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:8px;position:relative}
.pv .cm-col i{display:block;width:44px;border-radius:5px 5px 0 0;background:var(--muted)}
.pv .cm-col.on i{background:var(--brass-mark)}
.pv .cm-col .v{font-size:.88rem;color:var(--fg);text-align:center;font-variant-numeric:tabular-nums}
.pv .cm-col .y{position:absolute;bottom:-26px;font-size:.84rem;color:var(--muted)}
.pv .cm-cols{margin-bottom:32px}
.pv .cm-note{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}
.pv .cm-pill-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;color:var(--fg);text-decoration:none;font-family:var(--display);font-weight:600;font-size:.88rem;background:transparent}
.pv .cm-pill-btn:hover{border-color:var(--brass-mark)}
.pv .cm-dots{display:flex;justify-content:center;gap:8px;margin:2px 0}
.pv .cm-dots button{width:9px;height:9px;padding:0;border:0;border-radius:999px;background:var(--line);cursor:pointer;transition:width .2s,background .2s}
.pv .cm-dots button[aria-current="true"]{width:24px;background:var(--brass-mark)}
.pv .cm-asat{margin:0;font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.pv .app.room main .card.cm-how{padding:16px 24px}
.pv .cm-how h3{margin:0 0 8px;font-size:1.05rem}
.pv .cm-how ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.pv .cm-how li{position:relative;padding-left:24px;font-size:.92rem;color:var(--fg-2);line-height:1.5}
.pv .cm-how li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:2px;background:var(--brass-mark)}
.pv .cm-how li b{color:var(--fg)}
.pv .cm-rcs{overflow:hidden}
.pv .app.room main .card.cm-rcs,.pv .app.room main .card.cm-docs{padding:0}
.pv .cm-strip{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px;padding:16px 24px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.pv .cm-strip .big{font-family:var(--display);font-size:1.6rem;font-weight:700;letter-spacing:-.01em}
.pv .cm-strip span:last-child{font-size:.92rem;color:var(--fg-2)}
.pv .cm-rc{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px 24px;border-top:1px solid var(--line-soft)}
.pv .cm-strip + .cm-rc{border-top:0}
.pv .cm-rc .m{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.pv .cm-rc .m b{font-family:var(--display);font-size:.98rem;font-weight:600}
.pv .cm-rc .m > span:not(.pill){font-size:.86rem;color:var(--muted)}
.pv .cm-rc .m .pill{margin:8px 0 0;white-space:nowrap;padding:3px 8px;border:1px solid var(--line);background:transparent;font-size:.75rem}
.pv .cm-rc .m .pill.bad{color:var(--alert);border-color:color-mix(in srgb,var(--alert) 45%,transparent);background:var(--alert-soft)}
.pv .cm-rc .m .pill.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 45%,transparent);background:var(--good-soft)}
.pv .cm-rc .res{text-align:right;font-family:var(--display);font-size:1.3rem;font-weight:700;line-height:1.15;max-width:8em}
.pv .cm-rc .res .u{font-size:.85rem;font-weight:600}
.pv .cm-rc .res .none,.pv .cm-rc .res .few{font-size:.95rem;font-weight:600;color:var(--fg-2)}
.pv .cm-rc .res small{display:block;font-family:var(--body);font-size:.78rem;font-weight:400;color:var(--muted)}
.pv .cm-wu{border:1px solid var(--line);border-radius:14px;background:var(--surface);margin:0}
.pv .cm-wu + .cm-wu{margin-top:8px}
.pv .cm-wu summary{display:flex;align-items:center;gap:12px;padding:16px 16px;cursor:pointer;list-style:none}
.pv .cm-wu summary::-webkit-details-marker{display:none}
.pv .cm-wu .no{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--fg);color:var(--paper);font-family:var(--display);font-size:.84rem;font-weight:700}
.pv .cm-wu .t{flex:1;min-width:0;font-family:var(--display);font-weight:600;font-size:1rem}
.pv .cm-wu .pm{flex:none;width:14px;height:14px;position:relative;color:var(--muted)}
.pv .cm-wu .pm::before,.pv .cm-wu .pm::after{content:"";position:absolute;left:0;right:0;top:6px;height:2px;background:currentColor;border-radius:2px}
.pv .cm-wu .pm::after{transform:rotate(90deg);transition:transform .15s}
.pv .cm-wu[open] .pm::after{transform:rotate(0)}
.pv .cm-wu .in{padding:0 16px 16px}
.pv .cm-st{flex:none;display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;font-family:var(--display);font-size:.78rem;font-weight:600;color:var(--fg-2);white-space:nowrap}
.pv .cm-st i{width:7px;height:7px;border-radius:999px;background:currentColor}
.pv .cm-st.hot{background:var(--fg);border-color:var(--fg);color:var(--paper)}
.pv .cm-st.good{color:var(--good);background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 40%,transparent)}
.pv .cm-st.bad{color:var(--alert);background:var(--alert-soft);border-color:color-mix(in srgb,var(--alert) 40%,transparent)}
.pv .cm-docs{overflow:hidden}
.pv .cm-doc{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid var(--line-soft);color:var(--fg);text-decoration:none}
.pv .cm-doc:first-child{border-top:0}
.pv a.cm-doc:hover{background:var(--surface-2)}
.pv .cm-doc b{font-family:var(--display);font-weight:600;font-size:1rem}
.pv .cm-doc b small{display:block;font-family:var(--body);font-weight:400;font-size:.8rem;color:var(--muted);margin-top:2px}
.pv .cm-doc .go{flex:none;font-family:var(--display);font-weight:600;color:var(--brass)}
.pv .cm-back{color:var(--muted);text-decoration:none;font-size:.92rem}
@media (max-width:480px){.pv .cm-slide{flex-basis:86%;min-height:410px;padding:16px 16px 16px}
.pv .cm-big{font-size:2.1rem}
.pv .cm-wu .t{font-size:.95rem}
.pv .cm-hr{grid-template-columns:minmax(0,8em) minmax(0,1fr) auto}}
/* the staff page: the three rooms as tight rows, and Who to call in the club's colour, not alarm red */
.pv .app.room main .card.st-doors{padding:0;overflow:hidden}
.pv .st-door{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line-soft);color:var(--fg);text-decoration:none}
.pv .st-door:first-child{border-top:0}
.pv a.st-door:hover{background:var(--surface-2)}
.pv .st-door .ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--brass-soft);color:var(--brass)}
.pv .st-door .ic svg{width:18px;height:18px}
.pv .st-door .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.pv .st-door b{font-family:var(--display);font-weight:600;font-size:.98rem}
.pv .st-door small{font-size:.84rem;color:var(--muted)}
.pv .st-door .go{flex:none;font-size:1.4rem;line-height:1;color:var(--brass)}
.pv .st-door.off{opacity:.6}
.pv .st-door .lock{flex:none;font-size:.75rem;font-family:var(--display);font-weight:600;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:3px 8px;white-space:nowrap}
.pv .st-call .call .num{color:var(--brass);font-family:var(--body);font-weight:600;font-variant-numeric:tabular-nums}
/* the staff rooms, tightened (dim, 19 Oct 2026): the coach's notice form, the physio's sessions, the welfare manager's week, flags and surveys */
.pv .row2.tight{gap:8px;grid-template-columns:1fr 1fr}
.pv .row2.tight select,.pv .row2.tight input{min-width:0}
.pv .row2.tight .field,.pv .row4 .field,.pv .row-go .field{margin-bottom:8px}
.pv .row4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}
.pv .row4 .field{min-width:0}
.pv .row4 input{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding-left:8px;padding-right:8px;-webkit-appearance:none;appearance:none}
.pv .row-go{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.pv .row-go .btn{margin-bottom:8px}
.pv .row-go.two{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto}
.pv .app.room main .card.ph-sess{padding:12px 16px}
.pv .ph-sess .sh{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.pv .ph-sess .sh b{font-size:.95rem}
.pv .ph-sess .sh small{flex:0 0 100%;margin:0}
.pv .ph-slots{margin-top:8px;border-top:1px solid var(--line-soft)}
.pv .ph-head,.pv .ph-slot{display:grid;grid-template-columns:4.4em minmax(0,1fr) minmax(0,1.1fr);gap:8px;align-items:center}
.pv .ph-head{padding:8px 0 4px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pv .ph-slot{padding:3px 0}
.pv .ph-slot .tm{font-size:.88rem;font-variant-numeric:tabular-nums;color:var(--fg-2)}
.pv .ph-slot input{min-height:36px;padding:4px 8px;font-size:.9rem;border-radius:8px}
.pv .ph-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pv .ph-acts .btn{min-height:36px;padding:4px 12px;font-size:.86rem}
.pv .ph-acts .btn.quiet{margin-left:auto;color:var(--alert)}
.pv .check.tight label{padding:8px 16px;gap:0 8px}
.pv .check.tight span{font-size:.78rem;line-height:1.35}
.pv .wk-log{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 16px;border-top:1px solid var(--line-soft)}
.pv .wk-log .btn{min-height:38px;padding:8px 12px;font-size:.86rem}
.pv .wk-log .hint{margin:0;font-size:.78rem}
.pv .flag.tight{padding:8px 16px;gap:8px 8px;flex-wrap:nowrap}
.pv .flag.tight .t{flex:1 1 auto}
.pv .flag.tight .t b{font-size:.88rem}
.pv .flag.tight .t small{font-size:.76rem}
.pv .flag.tight .act{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.pv .flag.tight .act .btn{min-height:32px;padding:3px 8px;font-size:.8rem}
.pv .flag.tight .act .pill{margin:0;white-space:nowrap}
.pv .sv-row{align-items:center}
.pv .sv-act{flex:none;display:grid;justify-items:end;gap:8px;width:7.5em}
.pv .sv-act .pill{margin:0;white-space:nowrap}
.pv .sv-act .btn{min-height:36px;padding:4px 16px;font-size:.86rem;width:100%}
@media (max-width:480px){.pv .row-go{grid-template-columns:1fr}
.pv .row-go .btn{margin-bottom:0;width:100%}
.pv .row-go.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.pv .row-go.two .btn{grid-column:1/-1}
.pv .ph-head,.pv .ph-slot{grid-template-columns:3.9em minmax(0,1fr) minmax(0,1fr);gap:4px}}
/* the squad list: teams as a short list that scrolls, beside the names; each team's names behind its own drop-down */
.pv .sq-add{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px;align-items:start}
.pv .sq-add .field{margin-bottom:8px;min-width:0}
.pv .sq-add .lab{display:block;font-family:var(--display);font-weight:600;font-size:.9rem;margin-bottom:8px}
.pv .sq-teams,.pv .sq-add textarea{height:176px;box-sizing:border-box}
.pv .sq-teams{overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:4px;overscroll-behavior:contain}
.pv .sq-teams label{display:flex;align-items:center;gap:8px;margin:0;padding:8px 8px;border-radius:8px;cursor:pointer;font-family:var(--body);font-weight:500;font-size:.92rem;min-height:40px}
.pv .sq-teams input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}
.pv .sq-teams label:has(input:checked){background:var(--brass-mark);color:var(--on-brass);font-weight:600}
.pv .sq-teams label:has(input:focus-visible){outline:2px solid var(--brass-mark);outline-offset:1px}
.pv .sq-add textarea{resize:none;min-height:0}
.pv .sq-list + .sq-list{margin-top:8px}
.pv .sq-list summary{padding-top:8px;padding-bottom:8px;font-size:.92rem}
.pv .sq-list summary .n{margin-left:8px;font-family:var(--body);font-weight:500;font-size:.82rem;color:var(--muted)}
/* ── rooms off the player page: the page stays underneath with its scroll, Back brings it straight back ── */
.pv .app:not(.room) .pr-room{display:flex;flex-direction:column;gap:16px}
.pv .app:not(.room) .pr-back{align-self:flex-start;font-family:var(--display);font-size:.84rem;font-weight:600;color:var(--brass);text-decoration:none;padding:4px 0}
.pv .app:not(.room) .pr-back:hover{text-decoration:underline}
.pv .app:not(.room) .pr-room h1{margin:0}
.pv .app:not(.room) .pr-room .k{margin:0;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pv .app:not(.room) .pr-room .lede{margin:0;color:var(--fg-2)}
.pv .app:not(.room) .pr-room .ev-month{margin:8px 0 0}
.pv .app:not(.room) .pr-room .ph-list{display:flex;flex-direction:column;gap:12px}
@media (max-width:900px){.pv .app:not(.room) .pr-back{display:none}}
.pv .app:not(.room) a.nt-more{display:inline-flex;align-items:center;gap:2px}
.pv .app:not(.room) a.nt-more .chev{width:14px;height:14px}
/* the physio's later sessions: a date a line, each opening the full timetable */
.pv .app:not(.room) .ph-later{margin-top:8px}
.pv .app:not(.room) .ph-later .row-label{margin:0;padding:8px 16px 4px}
.pv .app:not(.room) .ph-day{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--line-soft);color:inherit;text-decoration:none;min-height:40px}   /* one tight row: the day and the time, no spots count (dim, 24 Oct 2026) */
.pv .app:not(.room) .ph-day b{font-family:var(--display);font-size:.95rem;flex:none}
.pv .app:not(.room) .ph-day span{flex:1 1 auto;font-size:.82rem;color:var(--muted);text-align:right;white-space:nowrap}
@media (max-width:359px){.pv .app:not(.room) .ph-day{gap:8px;padding:8px 8px}.pv .app:not(.room) .ph-day b{font-size:.86rem}.pv .app:not(.room) .ph-day span{font-size:.75rem}}
.pv .app:not(.room) .ph-day .chev{width:16px;height:16px;flex:none;color:var(--muted)}
/* what the league gives for free: cards to swipe, Medicare among them */
.pv .app:not(.room) .fs-deck{margin:0;padding:2px 0}
.pv .app:not(.room) .fs-slide{min-height:0;padding:0;border:0;background:none;flex:0 0 min(86%,420px)}
.pv .app:not(.room) .fs-slide .person{height:100%;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:16px 16px}
.pv .app:not(.room) .fs-slide .person > .note{display:block}
.pv .app:not(.room) .fs-slide .person .open{margin-top:auto;font-size:.84rem;gap:8px;align-self:flex-start}
.pv .app:not(.room) .fs-slide .person .open svg{width:14px;height:14px}
@media (min-width:901px){.pv .app:not(.room) .fs-slide{flex:0 0 min(48%,420px)}}
/* helplines: 000 in plain sight, the lines and the specific help behind two drop-downs, in the page's own colours */
.pv .app:not(.room) .hl{overflow:hidden}
.pv .app:not(.room) .hl-000{margin:0;padding:16px 16px;font-family:var(--display);font-weight:600;font-size:.98rem;color:var(--fg)}
.pv .app:not(.room) .hl-000 a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--brass-mark);text-underline-offset:3px;font-weight:700}
.pv .app:not(.room) .hl details.more{border:0;border-top:1px solid var(--line-soft);border-radius:0;background:none;margin:0}
.pv .app:not(.room) .hl details.more > summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:12px 16px;min-height:48px;font-family:var(--display);font-weight:600;font-size:.9rem;color:var(--fg);list-style:none}
.pv .app:not(.room) .hl details.more > summary::after{content:"+";font-family:var(--body);font-weight:500;color:var(--muted);font-size:1.1rem}
.pv .app:not(.room) .hl details.more[open] > summary::after{content:"\2212"}
.pv .app:not(.room) .hl .calls,.pv .app:not(.room) .hl .lines{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .hl .call .num{color:var(--fg);background:var(--surface-2)}
.pv .app:not(.room) .hl details.heavy-more[open] > .g3{padding:0 12px 12px}
@media (min-width:901px){.pv .app:not(.room) .hl .calls{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* club contacts: one list like the support network (initials, name, role, call), Committee and Wellness Champions tabs on Round 1 Ready */
.pv .app:not(.room) .ct-row{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 16px;min-width:0;border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .ct-row:first-child{border-top:0}
.pv .app:not(.room) .ct-row .av{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:var(--brass-soft);color:var(--brass);font-family:var(--display);font-weight:700;font-size:.8rem;letter-spacing:.02em}
.pv .app:not(.room) .ct-row .who{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .ct-row .nm{font-family:var(--display);font-weight:600;font-size:.95rem;line-height:1.25;overflow-wrap:anywhere}
.pv .app:not(.room) .ct-row .ro{font-size:.8rem;color:var(--muted);line-height:1.3}
.pv .app:not(.room) .ct-row .ro:empty{display:none}
.pv .app:not(.room) .ct-row .icon-btn{flex:none;width:40px;height:40px}
.pv .app:not(.room) .ct-row .icon-btn + .icon-btn{margin-left:-4px}
.pv .app:not(.room) .ct-tabs{display:flex;gap:3px;padding:3px;margin:0 0 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.pv .app:not(.room) .ct-tabs[hidden]{display:none}
.pv .app:not(.room) .ct-tabs button{all:unset;box-sizing:border-box;cursor:pointer;flex:1;text-align:center;padding:8px 8px;border-radius:9px;font-family:var(--display);font-size:.88rem;font-weight:600;color:var(--muted)}
.pv .app:not(.room) .ct-tabs button[aria-selected="true"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv .app:not(.room) .ct-tabs button:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .app:not(.room) [data-ct-panel] + .note{margin-top:12px}
/* helplines inside the drop-downs: a name, then a phone button, two to a row */
.pv .app:not(.room) .hl-grid,.pv .app:not(.room) .hl-heavy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .hl-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 16px;min-height:50px;min-width:0;border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .hl-grid > .hl-row:nth-child(-n+2){border-top:0}
.pv .app:not(.room) .hl-grid > .hl-row:nth-child(even){border-left:1px solid var(--line-soft)}
.pv .app:not(.room) .hl-row .who{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .hl-row b{font-family:var(--display);font-weight:600;font-size:.88rem;line-height:1.25}
.pv .app:not(.room) .hl-row small{font-size:.76rem;color:var(--muted);line-height:1.3}
.pv .app:not(.room) .hl-row .icon-btn svg{width:16px;height:16px}
.pv .app:not(.room) .hl-sub{display:flex;flex-direction:column;min-width:0;border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .hl-sub:nth-child(-n+2){border-top:0}
.pv .app:not(.room) .hl-sub:nth-child(even){border-left:1px solid var(--line-soft)}
.pv .app:not(.room) .hl-sub .hl-row{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .hl-sub .champ-div + .hl-row{border-top:0}
@media (max-width:560px){.pv .app:not(.room) .hl-heavy{grid-template-columns:minmax(0,1fr)}
.pv .app:not(.room) .hl-sub:nth-child(even){border-left:0}
.pv .app:not(.room) .hl-sub:nth-child(2){border-top:1px solid var(--line-soft)}}
/* the notices room: a team strip, then each team's notices as rows, spaced like the events room */
.pv .app:not(.room) .pr-room .ev-month{margin:16px 0 8px}
.pv .app:not(.room) .pr-room .nr-teams + [data-nr-list] > .ev-month:first-child{margin-top:8px}
.pv .app:not(.room) .nt-row .t span .ev-st{color:var(--alert);font-weight:600}
/* the committee's Free for the club: the player page's carousel, one card per program */
.pv .cm-free .fs-slide{min-height:0;padding:16px 16px;flex:0 0 min(86%,420px)}
@media (min-width:901px){.pv .cm-free .fs-slide{flex:0 0 min(48%,420px)}}
.pv .cm-free .fc{display:flex;flex-direction:column;gap:4px;height:100%}
.pv .cm-free .fc .pill{align-self:flex-start;margin-bottom:4px}
.pv .cm-free .fc .nm{font-family:var(--display);font-size:1rem;color:var(--fg)}
.pv .cm-free .fc .ro{font-size:.84rem;color:var(--muted)}
.pv .cm-free .fc .note{margin:8px 0 8px;font-size:.92rem;color:var(--fg-2);line-height:1.5}
.pv .cm-free .fc .open{margin-top:auto;align-self:flex-start;font-weight:600;font-size:.88rem;color:var(--brass-mark);text-decoration:none}
.pv .cm-free + .cm-dots{margin-top:8px}
.pv details.more.cm-how{margin-top:12px}
.pv details.more.cm-how ul{padding-top:2px}
/* the choose your view page: the club's banner, then one row per view */
.pv main.lb{display:block}
.pv .lb-ban{position:relative;overflow:hidden;isolation:isolate;border-radius:22px;color:var(--on-club,var(--on-brass));padding:24px 24px 24px;margin-top:2px;
  background:var(--club,var(--brass));
  background:radial-gradient(130% 100% at 0% 0%,rgba(255,255,255,.1),transparent 55%),linear-gradient(155deg,var(--club,var(--brass)) 35%,color-mix(in srgb,var(--club,var(--brass)) 78%,#000));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(0,0,0,.18),
    0 16px 26px -10px color-mix(in srgb,var(--club,var(--brass)) 55%,#000),0 -8px 20px -10px color-mix(in srgb,var(--club,var(--brass)) 45%,transparent),
    12px 0 22px -12px color-mix(in srgb,var(--brass) 50%,#000),-12px 0 22px -12px color-mix(in srgb,var(--brass) 50%,#000),0 2px 6px rgba(0,0,0,.14)}
/* a glaze of light that sweeps across the banner now and then; still for anyone who asks their phone for less motion */
.pv .lb-shine{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.pv .lb-shine::before{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:45%;transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.08) 30%,rgba(255,255,255,.32) 50%,rgba(255,255,255,.08) 70%,transparent);animation:lb-glaze 6s ease-in-out 1.2s infinite}
@keyframes lb-glaze{0%{left:-60%}30%,100%{left:130%}}
@media (prefers-reduced-motion:reduce){.pv .lb-shine::before{animation:none;display:none}}
/* fine diagonal lines fading out to the right, and a soft ring behind the crest: depth without noise */
.pv .lb-ban::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 1.5px,transparent 1.5px 12px);
  -webkit-mask-image:linear-gradient(100deg,#000,transparent 60%);mask-image:linear-gradient(100deg,#000,transparent 60%)}
.pv .lb-ban::after{content:"";position:absolute;z-index:-1;right:-70px;top:-70px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,255,255,.16),rgba(255,255,255,.05) 70%,transparent);box-shadow:0 0 0 18px rgba(255,255,255,.04),0 0 0 40px rgba(255,255,255,.025)}
/* the crest in full at the top right; a club with no crest gets its initials, faded, in the same place */
.pv .lb-mark{position:absolute;z-index:-1;right:16px;top:18px;width:92px;height:104px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 10px 16px rgba(0,0,0,.38))}
.pv .lb-mark.lb-txt{right:-14px;top:-6px;width:170px;height:150px;opacity:.22;transform:rotate(-10deg);filter:none}
.pv .lb-ban::after{right:-50px;top:-50px}
.pv .app main.lb .lb-ban h1.long{font-size:1.55rem}
.pv .app main.lb .lb-ban h1{margin-top:4px}
.pv .lb-txt{display:grid;place-items:center;font:800 4.4rem/1 var(--display);color:var(--on-club,var(--on-brass))}
.pv .lb-ban small{position:relative;display:block;font:700 .75rem/1.3 var(--display);letter-spacing:.12em;text-transform:uppercase;opacity:.7;max-width:70%}
.pv .app main.lb .lb-ban h1{position:relative;font-size:1.9rem;line-height:1.05;letter-spacing:-.01em;margin:8px 0 16px;text-shadow:0 2px 10px rgba(0,0,0,.18);color:var(--on-club,var(--on-brass));max-width:min(62%,340px)}
.pv .lb-code-k{position:relative;display:block;font:600 .74rem/1.3 var(--body);letter-spacing:0;text-transform:none;opacity:.78;margin:-8px 0 8px;max-width:70%}
.pv .lb-code{position:relative;display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;background:var(--on-club,var(--on-brass));color:var(--club,var(--brass));border-radius:999px;padding:8px 12px 8px 16px;box-shadow:0 6px 14px -6px rgba(0,0,0,.45),0 1px 2px rgba(0,0,0,.15)}
.pv .lb-code b{font:700 .95rem var(--mono);letter-spacing:.06em}
.pv .lb-code svg{width:16px;height:16px}
.pv .lb-said{position:relative;display:block;font-size:.8rem;min-height:0;margin-top:8px}
.pv .lb-said:empty{display:none}
.pv .lb-list{display:grid;gap:8px;margin-top:16px}
.pv .lb-row{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--box,var(--surface));border:1px solid var(--box-line,var(--line-soft));border-radius:16px;text-decoration:none;color:var(--box-fg,var(--fg));transition:border-color .15s,transform .15s}
.pv .lb-row:hover{border-color:var(--brass-mark);transform:translateY(-1px)}
.pv .lb-row .ic{width:42px;height:42px;border-radius:50%;border:2px solid var(--box-ic,var(--brass));color:var(--box-ic,var(--brass));display:grid;place-items:center;flex:none}
.pv .lb-row .ic svg{width:20px;height:20px}
.pv .lb-row .t{flex:1;min-width:0}
.pv .lb-row b{display:block;font:700 1rem/1.2 var(--display)}
.pv .lb-row small{display:block;color:var(--box-muted,var(--muted));font-size:.82rem;line-height:1.3;margin-top:2px}
.pv .lb-row .lk,.pv .lb-row .ch{display:grid;color:var(--box-muted,var(--muted));flex:none}
.pv .lb-row .lk svg{width:13px;height:13px}
.pv .lb-row .ch svg{width:18px;height:18px}
.pv .lb-alt{text-align:center;color:var(--muted);font-size:.88rem;margin:16px 0 0}
.pv .lb-alt a{color:var(--brass)}
/* the free committee page: the Season Program's report card and wrap up, greyed, with a tag */
.pv .cm-lock-tag{display:inline-block;vertical-align:middle;margin-left:8px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:3px 8px}
.pv .cm-lock-line{margin:0 0 8px;font-size:.9rem;color:var(--fg-2)}
.pv .cm-lock-line a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--brass-mark);text-underline-offset:3px}
.pv .cm-locked{opacity:.5;pointer-events:none;user-select:none;filter:grayscale(1)}
.pv .cm-locked .cm-wu{border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:8px}
.pv .cm-wu-s{display:flex;align-items:center;gap:12px;padding:16px 16px}
.pv .cm-wu-s .no{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-family:var(--display);font-weight:700;font-size:.85rem}
.pv .cm-wu-s .t{display:flex;flex-direction:column;gap:2px;font-family:var(--display);font-weight:600}
.pv .cm-wu-s .t small{font-family:var(--body);font-weight:400;font-size:.82rem;color:var(--muted)}
/* the sample club: locked documents and profiles, and a library that lists but links nothing */
.pv .demo-lock{border-style:dashed}
.pv .demo-lock p{margin:0 0 8px}
.pv .lib-item.locked{opacity:.7;cursor:default}
.pv .lib-item.locked .ln{font-size:.9rem}
.pv span.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
/* Back at the top left of a page, leading the small label over the heading */
.pv p.k.kb{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}
.pv .kb-back{display:inline-flex;align-items:center;font-family:var(--display);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);text-decoration:none;padding:8px 12px 8px 0;margin:-8px 0;border-right:1px solid var(--line)}
.pv .kb-back:only-child{border-right:0}
.pv .kb-back:hover{text-decoration:underline}
.pv .kb-t{min-width:0}
@media (max-width:900px){.pv .rolewrap.nolink{display:none}}
/* several physios on one night: a card each, swiped through */
.pv .ph-deck .cm-slide{min-height:0;padding:0;border:0;background:none;flex:0 0 min(90%,460px)}
.pv .ph-deck .cm-slide > .card{height:100%;margin:0}
.pv .ph-night{display:grid;gap:8px}
.pv .ph-night + .ph-night{margin-top:16px}
.pv .app .ph-head span.ph-who{color:var(--fg);font-weight:600;flex-basis:100%;order:-1;font-size:.9rem}
.pv .app .ph-deck .card.ph{padding:16px}
.pv .app .ph-deck .ph-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
/* the report card, tightened (dim, 19 Oct 2026): the pill sits beside the name, less padding, smaller figures */
.pv .cm-strip{padding:12px 16px}
.pv .cm-strip .big{font-size:1.2rem}
.pv .cm-strip span:last-child{font-size:.84rem}
.pv .cm-rc{gap:8px;padding:8px 16px;align-items:center}
.pv .cm-rc .m{flex-direction:row;flex-wrap:wrap;align-items:center;gap:2px 8px}
.pv .cm-rc .m b{font-size:.92rem}
.pv .cm-rc .m > span:not(.pill){flex-basis:100%;order:2;font-size:.8rem;line-height:1.35}
.pv .cm-rc .m .pill{margin:0;padding:1px 8px;font-size:.75rem}
.pv .cm-rc .res{font-size:1.05rem}
.pv .cm-rc .res small{font-size:.75rem}
.pv .cm-rc .res .none,.pv .cm-rc .res .few{font-size:.82rem}
.pv .cm-rc.more{grid-template-columns:1fr}
.pv .cm-rc.more .m > span{order:0}
/* Bring a Club on the committee page: room between the line, the Share button and How the credit works */
.pv #bring .card > p.small{margin:0}
.pv #bring .card > .share-row{margin:12px 0 8px}
.pv #bring .card > .share-row .btn{min-height:44px;font-size:.92rem}
/* locked club documents on the staff page: the Round 1 Ready tag on one line, lined up on the right, outlined in the club's colour */
.pv .call:has(> .pill.r1r){align-items:center;gap:12px}
.pv .call > .pill.r1r{flex:none;margin:0;white-space:nowrap;padding:3px 8px;border:1.5px solid var(--brass-mark);background:var(--brass-soft);color:var(--fg);font-size:.75rem;font-weight:600;letter-spacing:.02em}
/* the physio's team picker: a drop down of ticks, none ticked is every team */
.pv .tm-pick{position:relative}
.pv .tm-pick > summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .tm-pick > summary::-webkit-details-marker{display:none}
.pv .tm-pick > summary::after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px)}
.pv .tm-pick[open] > summary::after{transform:rotate(-135deg) translateY(-2px)}
.pv .tm-list{margin-top:4px;display:grid;gap:2px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);max-height:140px;overflow-y:auto;overscroll-behavior:contain}   /* opens in place with three teams showing, the rest a scroll away */
.pv .tm-list .chk{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 8px;border-radius:8px;font-size:.92rem}
.pv .ph-for{margin:0;font-size:.86rem;color:var(--fg-2)}
.pv .ph-for a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--brass-mark);text-underline-offset:3px}
.pv .row-go.two{align-items:start}
.pv .row-go.two > .btn{align-self:start;margin-top:calc(1.2em + 8px)}
@media (max-width:480px){.pv .row-go.two > .btn{margin-top:0}}
.pv .ph-pick{margin:0 0 12px}
/* the physio's sessions, organised by physio: the same pills as the player page's team strip */
.pv .ph-pick{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:1px}
.pv .ph-pick::-webkit-scrollbar{display:none}
.pv .ph-pick .fx-team{all:unset;box-sizing:border-box;cursor:pointer;flex:none;padding:8px 16px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-family:var(--display);font-size:.88rem;font-weight:600;color:var(--fg-2);white-space:nowrap}
.pv .ph-pick .fx-team[aria-pressed="true"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv .ph-pick .fx-team:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}

/* Section titles, app wide (dim, 21 Oct 2026): the club's colour, bold, in capitals, with a thin line of the club's colour where each
   new section begins. .sec-title gives any other heading the same look. */
.pv .app:not(.room) .sec-head h2,.pv .app.room section.block > h2,.pv .sec-title{color:var(--brass);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.pv .app:not(.room) .sec + .sec,.pv .app.room section.block{border-top-color:var(--brass-mark)}
/* events: the green nudge to book or add to the calendar, the other side of the red Sold out */
.pv .ev-tag.go{border-color:transparent;background:var(--good-soft);color:var(--good);font-weight:600;text-decoration:none}
.pv .ev-go,.pv .app .ev-row .t span.ev-go,.pv .app .ev-line .t span.ev-go,.pv .app .nt-row .t span span.ev-go{color:var(--good);font-weight:600}
.pv .faq .faq-q + .faq-q{margin-top:8px}
.pv .app:not(.room) .net-deck .fs-slide{flex:0 0 100%}
.pv .app:not(.room) .net-deck + .cm-dots{margin-top:8px}
/* Support network: two to a row with a round arrow, its own classes so other sections can change freely */
.pv .app:not(.room) .nw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.pv .app:not(.room) a.nw-cell{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 16px;min-width:0;border-top:1px solid var(--line-soft);color:inherit;text-decoration:none}
.pv .app:not(.room) a.nw-cell:hover{transform:none}
.pv .app:not(.room) .nw-cell:nth-child(-n+2){border-top:0}
.pv .app:not(.room) .nw-cell:nth-child(even){border-left:1px solid var(--line-soft)}
.pv .app:not(.room) .nw-cell .who{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .app:not(.room) .nw-cell .nm{font-family:var(--display);font-weight:600;font-size:.9rem;line-height:1.25;overflow-wrap:anywhere}
.pv .app:not(.room) .nw-cell .ro{font-size:.76rem;color:var(--muted);line-height:1.3}
.pv .app:not(.room) .nw-cell .icon-btn{flex:none}
@media (max-width:560px){.pv .app:not(.room) .nw-cell{gap:8px;padding:8px 8px 8px 12px}}
.pv .app:not(.room) .nb-head{margin:0;padding-top:16px;border-top:1px solid var(--brass-mark)}
/* the events page list: each event is a button that opens the form, drawn like the committee's document rows */
.pv button.cm-doc{width:100%;background:none;border:0;border-top:1px solid var(--line-soft);border-radius:0;text-align:left;font:inherit;cursor:pointer}
.pv button.cm-doc:first-child{border-top:0}
.pv button.cm-doc:hover{background:var(--surface-2)}
/* the events form: two columns throughout, like the physio's new session form, so it fits a phone with little scrolling */
.pv .ev-form{padding:16px}
.pv .ev-form h3{margin:0 0 8px;font-size:1.05rem}
.pv .ev-form .field{margin-bottom:8px;min-width:0}
.pv .ev-form label{font-size:.8rem;margin-bottom:3px;line-height:1.2;min-height:18px}
.pv .ev-form input,.pv .ev-form select{min-height:42px;padding-top:8px;padding-bottom:8px}
.pv .ev-form textarea{min-height:58px;padding-top:8px}
.pv .ev-form input:disabled{opacity:.6}
.pv .ev-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}
.pv .ev-grid input,.pv .ev-grid select{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding-left:8px;padding-right:8px}
.pv .ev-grid input[type=date],.pv .ev-grid input[type=time]{-webkit-appearance:none;appearance:none}
.pv .ev-cost-lab{display:flex;justify-content:flex-start;align-items:center;gap:12px}   /* the Free tick right beside Cost (dim, 24 Oct 2026) */
.pv .ev-free{display:inline-flex;align-items:center;gap:4px;font-family:var(--body);font-weight:400;font-size:.82rem}
.pv .ev-form .ev-free input{min-height:0;width:14px;height:14px;padding:0;margin:0}
.pv .ev-hint{margin:0 0 8px;font-size:.8rem}
.pv .ev-acts-row{display:flex;gap:8px;flex-wrap:wrap}
.pv .ev-acts-row .btn{flex:1 1 0;min-width:0}
.pv .ev-editing > .lede{display:none}
/* Round 1 Ready is circled only in the committee page's section titles (dim, 21 Oct 2026) */
.pv .cm-lock-tag{border-style:solid;border-color:currentColor}
/* the crest badge on the welcome banner: bigger, with a thick edge, a shadow and a passing light, all drawn in the crest's own
   shape by badge() in app.js; until it is drawn the crest shows flat */
.pv .lb-mark.lb-badge{right:10px;top:12px;width:128px;height:144px;filter:none;transform:rotate(-4deg)}
.pv .lb-badge img{display:block;width:100%;height:100%;object-fit:contain}
.pv .lb-badge.drawn img{visibility:hidden}
.pv .lb-badge-c{position:absolute;left:-26px;top:-26px;width:calc(100% + 52px);height:calc(100% + 52px);pointer-events:none}
/* the crest swivels 30 degrees each way, slowly, like a desk fan (dim, 27 Oct 2026); still when the phone asks for less motion */
.pv .lb-mark.lb-badge{animation:lb-fan 7s ease-in-out infinite alternate;will-change:transform}
@keyframes lb-fan{0%{transform:perspective(600px) rotate(-4deg) rotateY(-30deg)}100%{transform:perspective(600px) rotate(-4deg) rotateY(30deg)}}
@media (prefers-reduced-motion:reduce){.pv .lb-mark.lb-badge{animation:none}}
/* a heartbeat on Club settings and Make our club workbook until the club workbook is connected (dim, 21 Oct 2026).
   --beat is the page's ink, fixed on .pv so a box's own colours (a filled page's boxes) never make the ring vanish into the page */
.pv{--beat:var(--fg)}
.pv .wb-beat{animation:wb-beat 1.8s ease-in-out infinite}
@keyframes wb-beat{0%,45%,100%{transform:scale(1);box-shadow:0 0 0 0 color-mix(in srgb,var(--beat) 0%,transparent)}12%{transform:scale(1.035);box-shadow:0 0 0 5px color-mix(in srgb,var(--beat) 55%,transparent)}22%{transform:scale(1)}32%{transform:scale(1.03);box-shadow:0 0 0 12px color-mix(in srgb,var(--beat) 0%,transparent)}}
@media (prefers-reduced-motion:reduce){.pv .wb-beat{animation:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--beat) 60%,transparent)}}

/* Resets: the daily pop-up, the guided minute and the folder. Own rs- names, used nowhere else. */
.rs-veil{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.45)}
.rs-sheet{width:100%;max-width:520px;background:var(--surface);color:var(--fg);border-radius:20px 20px 0 0;padding:24px 24px calc(24px + env(safe-area-inset-bottom,0));box-shadow:0 -8px 30px rgba(0,0,0,.18)}
.rs-kick{display:block;font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rs-sheet h2{font-size:1.5rem;line-height:1.2;margin:8px 0}
.rs-sheet p{color:var(--fg-2);font-size:1rem;margin-bottom:16px}
.rs-row{display:flex;gap:8px}
.rs-row .btn{flex:1 1 0;min-height:50px}
.rs-link{background:none;border:0;padding:4px 0;font:inherit;color:var(--muted);text-decoration:underline;cursor:pointer}
.rs-sheet .rs-link{display:block;margin:16px auto 0;font-size:.86rem}
/* the daily offer as a small floating bar (dim, 23 Oct): no backdrop, the page stays usable, and it wears the opposite colours to the page so it stands out */
.rs-bar{--bar-bg:#16181C;--bar-fg:#FFFFFF;--bar-muted:rgba(255,255,255,.72);--bar-tile:rgba(255,255,255,.12);--bar-go:#FFFFFF;--bar-on-go:#111111}
:root[data-theme="dark"] .rs-bar{--bar-bg:#FFFFFF;--bar-fg:#111111;--bar-muted:#5E636B;--bar-tile:#EEF0F3;--bar-go:#111111;--bar-on-go:#FFFFFF}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rs-bar{--bar-bg:#FFFFFF;--bar-fg:#111111;--bar-muted:#5E636B;--bar-tile:#EEF0F3;--bar-go:#111111;--bar-on-go:#FFFFFF}}
.rs-veil.rs-float{top:auto;left:12px;right:12px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;background:none;pointer-events:none}
.rs-bar{pointer-events:auto;width:100%;max-width:520px;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 12px;background:var(--bar-bg);color:var(--bar-fg);border:0;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.35);font-family:var(--body);animation:rs-up .35s ease-out}
.rs-bar .rs-kick,.rs-bar .rs-bsub,.rs-bar .rs-x{color:var(--bar-muted)}
.rs-bar .rs-big{background:var(--bar-tile)}
.rs-bar .rs-big .ti{color:var(--bar-fg)}
.rs-bar .btn.brass{background:var(--bar-go);color:var(--bar-on-go);border-color:var(--bar-go)}
.rs-bt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
.rs-bar .rs-kick{font-size:.75rem}
.rs-bar b{font-family:var(--display);font-size:1rem;line-height:1.25}
.rs-bsub{font-size:.8rem}
.rs-bsub a{color:inherit}
.rs-bar .btn{flex:none;min-height:40px;padding:0 16px}
.rs-x{flex:none;width:36px;height:36px;border:0;border-radius:10px;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}
@keyframes rs-up{from{transform:translateY(16px);opacity:0}}
@media (prefers-reduced-motion:reduce){.rs-bar{animation:none}}
@media (max-width:900px){.pv:has(.nav) .rs-veil.rs-float{bottom:calc(78px + env(safe-area-inset-bottom,0px))}}
.rs-play{position:fixed;inset:0;z-index:75;display:flex;flex-direction:column;align-items:center;background:var(--surface);color:var(--fg);padding:calc(16px + env(safe-area-inset-top,0)) 24px calc(24px + env(safe-area-inset-bottom,0));overflow-y:auto}
.rs-top{width:100%;max-width:520px;display:flex;justify-content:space-between;align-items:center;color:var(--muted)}
.rs-ring{width:min(62vw,240px);aspect-ratio:1;margin:clamp(24px,9vh,80px) 0 32px;border-radius:50%;display:grid;place-items:center;background:var(--brass-soft);border:3px solid var(--brass-mark);transform:scale(.72);transition-property:transform;transition-timing-function:ease-in-out}
.rs-ring.rs-in{transform:scale(1)}
.rs-ring.rs-out{transform:scale(.72)}
.rs-ring b{font-family:var(--display);font-size:1.35rem}
.rs-say{max-width:340px;text-align:center;font-family:var(--display);font-weight:600;font-size:1.2rem;line-height:1.4}
.rs-time{margin-top:auto;padding-top:24px;font-family:var(--mono);color:var(--muted)}
.rs-end{width:100%;max-width:360px;margin:auto 0;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.rs-end .btn{width:100%;min-height:50px}
.rs-help{color:var(--fg-2);font-size:.92rem}
/* player resets play a slow visual behind them (dim, 28 Oct): the visual keeps its own colours, never the club's, so the screen goes dark and the ring turns to a thin outline */
.rs-play.rs-viz{background:#04050b;color:#f1f3fa}
.rs-viz-cv{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none;transition:opacity 1.5s}
.rs-viz-cv.rs-viz-end{opacity:.35}
.rs-viz>*:not(.rs-viz-cv){position:relative;z-index:1}
.rs-viz .rs-top,.rs-viz .rs-link,.rs-viz .rs-time{color:rgba(241,243,250,.78)}
.rs-viz .rs-ring{background:transparent;border:1.5px solid rgba(255,255,255,.4)}
.rs-viz .rs-ring b,.rs-viz .rs-say{text-shadow:0 1px 14px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,.8)}
.rs-viz .rs-help,.rs-viz .rs-help a,.rs-viz .rs-help-link{color:rgba(241,243,250,.85)}
/* box breathing: a square, and a bright line tracing one side every 4 seconds (dim, 29 Oct 2026) */
.rs-ring.rs-box,.rs-ring.rs-box.rs-in,.rs-ring.rs-box.rs-out{transform:none;border-radius:0;border-color:transparent;background:transparent;position:relative;width:min(58vw,220px)}
.rs-bx{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none}
.rs-bx-base{stroke:rgba(255,255,255,.28);stroke-width:.6}
.rs-bx-line{stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:384 384;stroke-dashoffset:384;filter:drop-shadow(0 0 6px rgba(190,220,255,.9))}
.rs-play:not(.rs-viz) .rs-bx-base{stroke:var(--line)}
.rs-play:not(.rs-viz) .rs-bx-line{stroke:var(--brass-mark);filter:none}
.pv .app:not(.room) .rs-habit{gap:0;padding:16px 16px;margin-bottom:12px}
.rs-habit h3{font-size:1.1rem;margin:8px 0 4px}
.rs-habit p{color:var(--fg-2);margin-bottom:12px}
.rs-tried{display:flex;align-items:center;gap:8px;margin:0!important;font-weight:600;color:var(--fg)!important}
.rs-tried .ti{width:20px;height:20px;color:var(--brass)}
.rs-list{display:grid;gap:8px}
.pv .app:not(.room) .rs-item{flex-direction:row;display:flex;align-items:center;gap:16px;width:100%;padding:16px 16px;text-align:left;font:inherit;color:var(--fg);cursor:pointer}
.rs-ic .ti{width:24px;height:24px;color:var(--brass)}
.rs-txt{display:flex;flex-direction:column;min-width:0}
.rs-txt b{font-family:var(--display);font-size:1rem}
.rs-txt span{color:var(--muted);font-size:.88rem;line-height:1.4}
.rs-min{margin-left:auto;flex:none;font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.rs-pref{margin-top:12px!important;font-size:.88rem;color:var(--muted)}
@media (min-width:900px){.rs-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.rs-ring,.rs-ring.rs-in,.rs-ring.rs-out{transform:none;transition:none}}
.pv .app:not(.room) .rs-open{text-decoration:none;margin-top:2px}
.rs-open .chev{width:20px;height:20px;margin-left:auto;flex:none;color:var(--muted)}
.rs-all{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:16px;font-family:var(--display);font-weight:600;color:var(--fg);text-decoration:none}
.rs-all .chev{width:18px;height:18px}
.rs-tools{display:flex;gap:16px}
.rs-help-link{color:var(--fg)}
.pv [data-rs-room] .rs-list{margin-top:16px}
/* the way in to the resets room (dim, 23 Oct): a filled door in the club's colours with an Open button, so it reads as a place to go */
.rs-door{display:flex;align-items:center;gap:16px;margin-top:8px;padding:16px;border-radius:var(--r);background:var(--chrome);color:var(--chrome-fg);border:1.5px solid var(--chrome-accent,var(--chrome-line));text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.rs-door .rs-txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.rs-door .rs-txt b{font-family:var(--display);font-size:1.08rem}
.rs-door .rs-txt span{font-size:.86rem;color:var(--chrome-muted)}
.rs-door-ic{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--chrome-2)}
.rs-door-ic .ti{width:24px;height:24px;color:var(--chrome-fg)}
.rs-door-go{flex:none;display:inline-flex;align-items:center;gap:2px;padding:8px 8px 8px 16px;border-radius:999px;background:var(--chrome-fg);color:var(--chrome);font-family:var(--display);font-weight:700;font-size:.9rem}
.rs-door-go .chev{width:16px;height:16px}
.pv .app:not(.room) .rs-sub{font-size:1.05rem;margin:8px 0 -4px}
/* the resets outside the player page (staff page, welfare room): the same rows */
.rs-veil *,.rs-play *{box-sizing:border-box}
.rs-list .rs-item{display:flex!important;flex-direction:row!important;align-items:center;gap:16px!important;width:100%;padding:16px 16px!important;margin:0 0 8px!important;text-align:left;font:inherit;color:var(--fg);cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.rs-play,.rs-sheet{font-family:var(--body)}
.rs-play h2,.rs-sheet h2{font-family:var(--display)}
/* the resets room (dim picked Hero and rows, 23 Oct): a calm card for right now, then swipeable rows of square cards coloured by when each suits */
/* in the club's own colours (dim, 23 Oct): the hero wears the club bar's colours, the cards the club's soft tint */
[class*="rs-t-"]{--t-bg:var(--brass-soft);--t-fg:var(--brass);--t-ink:var(--fg);--t-go:var(--fg);--t-on-go:var(--paper)}
.rs-hero{--t-bg:var(--chrome);--t-fg:var(--chrome-muted);--t-ink:var(--chrome-fg);--t-go:var(--chrome-fg);--t-on-go:var(--chrome);border:1.5px solid var(--chrome-accent,var(--chrome-line))!important}
.rs-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;margin-top:16px;padding:16px;border:0;border-radius:20px;background:var(--t-bg);color:var(--t-fg);font:inherit;text-align:left;cursor:pointer}
.rs-hero-art{position:absolute;right:-2px;top:12px;width:94px;height:94px;opacity:.3;color:var(--chrome-fg)}
.rs-hero-art svg{width:100%;height:100%}
.rs-hero-k{font-family:var(--display);font-weight:600;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.rs-hero b{font-family:var(--display);font-size:1.4rem;line-height:1.15;color:var(--t-ink);max-width:75%}
.rs-hero-line{color:var(--t-fg);font-size:.9rem;max-width:72%}
.rs-hero-go{margin-top:8px;padding:8px 16px;border-radius:999px;background:var(--t-go);color:var(--t-on-go);font-family:var(--display);font-weight:700;font-size:.95rem}
.rs-rail-h,main .rs-rail-h,.pv .app .rs-rail-h{margin:24px 0 8px!important;font-family:var(--display);font-size:.78rem!important;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rs-rail{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:0 16px 8px;scroll-snap-type:x proximity;scroll-padding-inline:16px;scrollbar-width:none}
.rs-rail::-webkit-scrollbar{display:none}
.rs-sq{flex:none;width:118px;height:118px;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:12px;border:0;border-radius:16px;background:var(--t-bg);color:var(--t-fg);font:inherit;text-align:left;cursor:pointer}
.rs-sq-ic svg{width:23px;height:23px}
.rs-sq-txt{display:flex;flex-direction:column;gap:2px}
.rs-sq b{font-family:var(--display);font-size:.88rem;line-height:1.2;color:var(--t-ink)}
.rs-sq small{font-family:var(--mono);font-size:.75rem;color:var(--muted)}
.rs-slim{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.rs-slim-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"i t m" "i w m";column-gap:12px;row-gap:1px;align-items:center;width:100%;padding:12px 16px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.rs-slim-row:last-child{border-bottom:0}
.rs-slim-ic{grid-area:i;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brass-soft)}
.rs-slim-ic .ti{width:20px;height:20px;color:var(--brass)}
.rs-slim-row b{grid-area:t;font-family:var(--display);font-size:.98rem;line-height:1.25}
.rs-slim-when{grid-area:w;font-size:.8rem;color:var(--muted)}
.rs-slim-min{grid-area:m;font-family:var(--mono);font-size:.76rem;color:var(--muted)}
.rs-slim-row:focus-visible{outline:3px solid var(--fg);outline-offset:-3px}
.rs-hero:focus-visible,.rs-sq:focus-visible{outline:3px solid var(--fg);outline-offset:2px}
@media (min-width:900px){.rs-rail{flex-wrap:wrap;overflow:visible;margin:0;padding:0}}
/* the player room's list (dim picked B Playlist, 2 Nov 2026): the For you rows (fy-row, above) with a small picture of each reset's visual */
.rs-len{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line)}
.rs-len button{min-width:0;padding:8px 4px;border:0;border-radius:999px;background:none;color:var(--muted);font-family:var(--display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}
.rs-len button[aria-pressed="true"]{background:var(--brass-mark);color:var(--on-brass);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.rs-len button:focus-visible{outline:3px solid var(--fg);outline-offset:-3px}
.rs-pl,.pv .app:not(.room) .card.rs-pl,.pv .app.room main .card.rs-pl{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}
.rs-pl-row{display:flex;align-items:center;gap:12px;width:100%;padding:16px 16px;border:0;background:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.rs-pl-row + .rs-pl-row{border-top:1px solid var(--line-soft)}
.rs-pl-row:hover{background:var(--surface-2)}
.rs-pl-row:focus-visible{outline:3px solid var(--fg);outline-offset:-3px}
.rs-pl-art{flex:none;width:52px;height:52px;border-radius:12px;object-fit:cover;background:#070512}
.rs-pl-ic{display:grid;place-items:center;background:var(--surface-2);color:var(--brass)}
.rs-pl-ic svg{width:22px;height:22px}
.rs-pl-t{flex:1;min-width:0}
.rs-pl-t b{display:block;font-family:var(--display);font-weight:700;font-size:1.02rem}
.rs-pl-t small{display:block;color:var(--muted);font-size:.86rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-pl-len{flex:none;font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.rs-when{display:inline-block;max-width:100%;padding:2px 8px;border-radius:999px;font-family:var(--display);font-weight:600;font-size:.75rem;line-height:1.45;border:1px solid var(--line);background:var(--surface-2);color:var(--fg-2);white-space:normal}
.rs-when.sun{background:#FFF3D6;border-color:#F2C46B;color:#6B4700}
.rs-when.day{background:#E3F0FF;border-color:#9CC3F0;color:#1F4E80}
.rs-when.game{background:#E6F5E8;border-color:#93CF9B;color:#1E5B28}
.rs-when.night{background:#ECE7FA;border-color:#B7A8E8;color:#43337A}
.rs-tiles .rs-tile .rs-when{background:none;border:0;padding:0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rs-when.sun{background:#3A2E12;border-color:#7A5F22;color:#F2CF7E}
  :root:not([data-theme="light"]) .rs-when.day{background:#14263B;border-color:#2F5683;color:#A9CCF5}
  :root:not([data-theme="light"]) .rs-when.game{background:#15301B;border-color:#2F6B3A;color:#A6DDB0}
  :root:not([data-theme="light"]) .rs-when.night{background:#251E3D;border-color:#4F4382;color:#C9BEF2}}
:root[data-theme="dark"] .rs-when.sun{background:#3A2E12;border-color:#7A5F22;color:#F2CF7E}
:root[data-theme="dark"] .rs-when.day{background:#14263B;border-color:#2F5683;color:#A9CCF5}
:root[data-theme="dark"] .rs-when.game{background:#15301B;border-color:#2F6B3A;color:#A6DDB0}
:root[data-theme="dark"] .rs-when.night{background:#251E3D;border-color:#4F4382;color:#C9BEF2}
main h2.rs-group,.rs-group{margin:24px 0 0;font-size:.82rem!important;font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* Club contacts: two rows a card, cards to swipe when there are more (dim, 23 Oct 2026) */
.pv .app:not(.room) .ct-deck .fs-slide{flex:0 0 100%}
.pv .app:not(.room) .ct-deck .ct-list{height:100%}
.pv .app:not(.room) .ct-deck + .cm-dots{margin-top:8px}
/* the free league and national support at the foot of Helplines */
.pv .app:not(.room) .hl-free{margin-top:16px}

/* ── committee meetings on the committee page (meetings.js, dim, 23 Oct 2026): own mt- classes ── */
.pv .mt-lede{color:var(--muted);font-size:.92rem;margin:0 0 12px}
.pv .mt-k{font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.pv .mt-head{margin:16px 0 8px}
.pv .mt-gap{margin-top:16px}
.pv .mt-next{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--brass-mark);border-radius:12px;padding:12px 16px;font-size:.85rem;line-height:1.45}   /* 25% smaller than the first cut (dim, 23 Oct 2026) */
.pv .mt-next .mt-k:first-child{color:var(--brass)}
.pv .mt-next h3{font-size:.95rem;margin:1px 0 3px}
.pv .mt-next .mt-k{font-size:.75rem;margin-bottom:4px}
.pv .mt-next .mt-gap{margin-top:8px}
.pv .mt-next .mt-where{font-size:.8rem}
.pv .mt-next .mt-acts{gap:8px;margin-top:8px}
.pv .mt-next .mt-acts .btn{min-height:36px;padding:8px 12px;font-size:.8rem;border-radius:8px}
.pv .mt-rep{color:var(--muted)}
.pv .mt-when{margin:0;color:var(--fg)}
.pv .mt-where{margin:2px 0 0;color:var(--muted);font-size:.92rem}
.pv .mt-agenda{margin:0;padding-left:24px}
.pv .mt-agenda li{margin:2px 0}
.pv .mt-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pv .mt-acts .btn{flex:1 1 auto}
.pv .mt-acts .btn.quiet{flex:0 0 auto}
.pv .mt-list{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pv .mt-row{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:12px;width:100%;padding:16px 16px;border-top:1px solid var(--line-soft)}
.pv .mt-row:first-child{border-top:0}
.pv .mt-row:focus-visible{outline:2px solid var(--brass-mark);outline-offset:-2px}
.pv .mt-x{flex:1;min-width:0}
.pv .mt-x b{display:block;font-family:var(--display);font-weight:600}
.pv .mt-x small{display:block;color:var(--muted);font-size:.82rem;margin-top:2px}
.pv .mt-go{flex:none;font-family:var(--display);font-weight:600;color:var(--brass)}
.pv .mt-pill{flex:none;font-family:var(--display);font-weight:600;font-size:.75rem;padding:4px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.pv .mt-pill.done{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.pv .mt-tag{display:inline-block;vertical-align:middle;font-family:var(--display);font-weight:600;font-size:.75rem;padding:2px 8px;border-radius:99px;background:var(--alert-soft);color:var(--alert)}
.pv .mt-new{margin-top:16px}
.pv .mt-form{padding:16px}
.pv .mt-form h3{margin:0 0 8px;font-size:1.05rem}
.pv .mt-field{margin-bottom:8px;min-width:0}
.pv .mt-field label{font-size:.8rem;margin-bottom:3px}
.pv .mt-form textarea{width:100%;box-sizing:border-box;font:inherit;line-height:1.5}
.pv .mt-opt{font-family:var(--body);font-weight:400;color:var(--muted)}
.pv .mt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}
.pv .mt-grid input,.pv .mt-grid select{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.pv .mt-grid input[type=date],.pv .mt-grid input[type=time]{-webkit-appearance:none;appearance:none}
.pv .mt-row-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pv .mt-row-btns .btn{flex:1 1 auto}
.pv .mt-row-btns .btn.quiet{flex:0 0 auto}
.pv .mt-warn{font-size:.86rem;color:var(--fg-2);background:var(--surface-2);border-radius:10px;padding:8px 12px;margin:8px 0}
.pv .mt-sumhead h3{font-size:1.15rem;margin:0}
.pv .mt-sumhead{margin-bottom:8px}
.pv .mt-was{margin:0 0 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 16px}
.pv .mt-was summary{cursor:pointer;font-family:var(--display);font-weight:600}
.pv .mt-was .mt-agenda{margin-top:8px}
.pv .mt-read{padding:16px 16px}
.pv .mt-read h4{font-family:var(--display);font-size:.98rem;margin:0 0 4px}
.pv .mt-bullets{margin:0 0 12px;padding-left:24px}
.pv .faq .faq-mail{margin-top:24px}
.pv .faq .faq-mail .hint{margin-top:12px}
.pv .faq-pts{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:8px}
.pv .faq-pts + p{margin-top:8px}
.pv p + .faq-pts{margin-top:8px}

/* the Welfare Sponsor: the whole welcome slides across to them and back every 2.5 seconds, and the way through to them at the foot of the player page */
.pv .sp-swap{position:relative;overflow:hidden;margin:-24px -24px -64px;padding:24px 24px 64px}
.pv .sp-track{display:flex;gap:48px;transition:transform .7s cubic-bezier(.65,0,.35,1)}
.pv .sp-pane{position:relative;flex:0 0 100%;min-width:0}
.pv .sp-pane > .lb-mark{right:-12px;top:-12px}
.pv .app main.lb .sp-face{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;color:inherit;text-decoration:none}
.pv .sp-face small{position:relative;max-width:min(58%,320px);font:700 .75rem/1.3 var(--display);letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.pv .sp-face .sp-name{position:relative;max-width:min(58%,320px);margin:4px 0 16px;font:700 1.9rem/1.05 var(--display);letter-spacing:-.01em;text-shadow:0 2px 10px rgba(0,0,0,.18)}
.pv .sp-face .sp-name.long{font-size:1.55rem}
.pv .sp-mark{position:absolute;right:-6px;top:-8px;width:128px;height:128px;display:grid;place-items:center;transform:rotate(-4deg);filter:drop-shadow(0 12px 16px rgba(0,0,0,.4))}
.pv .sp-mark img{max-width:100%;max-height:100%;object-fit:contain;border-radius:14px}
.pv .sp-face .sp-visit{position:relative;font-style:normal;font-weight:700;font-size:.9rem;background:var(--on-club,var(--on-brass));color:var(--club,var(--brass));border-radius:999px;padding:8px 16px;box-shadow:0 6px 14px -6px rgba(0,0,0,.45),0 1px 2px rgba(0,0,0,.15)}
@media (prefers-reduced-motion: reduce){.pv .sp-track{transition:none}}
.pv .partner .sp-go{border:1.5px solid currentColor;border-radius:999px;padding:4px 12px;font-weight:700;font-size:.78rem;white-space:nowrap}

/* each Welfare Sponsor at the foot of the player page: a small welcome banner of its own, name left and logo right (dim, 24 Oct 2026) */
.pv .spb{position:relative;display:flex;align-items:center;overflow:hidden;isolation:isolate;min-height:150px;margin:16px 0 0;padding:24px 24px;border-radius:22px;color:var(--on-club,var(--on-brass));text-decoration:none;
  background:var(--club,var(--brass));
  background:radial-gradient(130% 100% at 0% 0%,rgba(255,255,255,.1),transparent 55%),linear-gradient(155deg,var(--club,var(--brass)) 35%,color-mix(in srgb,var(--club,var(--brass)) 78%,#000));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 16px 26px -14px color-mix(in srgb,var(--club,var(--brass)) 55%,#000)}
.pv .spb + .spb{margin-top:12px}
.pv .spb-mark{position:absolute;right:16px;top:50%;width:112px;height:112px;display:grid;place-items:center;transform:translateY(-50%) rotate(-5deg);filter:drop-shadow(0 12px 16px rgba(0,0,0,.45))}
.pv .spb-mark[hidden]{display:none}
.pv .spb-mark img{max-width:100%;max-height:100%;object-fit:contain;border-radius:14px}
.pv .spb-t{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:58%}
.pv .spb-t small{font:700 .75rem/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.pv .spb-name{font:700 1.45rem/1.08 var(--display);letter-spacing:-.01em}
.pv .spb-name.long{font-size:1.2rem}
.pv .spb-go{margin-top:4px;font-style:normal;font-weight:700;font-size:.86rem;background:var(--on-club,var(--on-brass));color:var(--club,var(--brass));border-radius:999px;padding:8px 16px;box-shadow:0 6px 14px -6px rgba(0,0,0,.45)}
/* the physio room: clear space between sessions, and after the physio pills (dim, 24 Oct 2026) */
.pv .app.room main .card.ph-sess + .card.ph-sess{margin-top:16px}
.pv .app.room main [data-sessions] .ph-pick + .card.ph-sess{margin-top:4px}
/* Your plan on a free club: a small box in inverted colours (dim, 24 Oct 2026) */
.pv .plan-now{display:inline-flex;align-items:baseline;gap:8px;padding:8px 16px;border-radius:10px;background:var(--chrome);color:var(--chrome-fg);border:1.5px solid var(--chrome-accent,var(--chrome-line));margin:2px 0 16px}
.pv .plan-now span{font-size:.75rem;opacity:.75}
.pv .plan-now b{font-family:var(--display);font-weight:700;font-size:.95rem;letter-spacing:.12em}
.pv a.mt-row{color:var(--fg);text-decoration:none}
.pv .mt-more{margin:8px 0 0;font-size:.88rem}
.pv .mt-past{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 16px;margin-bottom:16px;scroll-margin-top:80px}
.pv .mt-past.mt-here{border-color:var(--brass-mark);box-shadow:0 0 0 1px var(--brass-mark)}
.pv .mt-past h3{font-size:1.05rem;margin:0 0 2px}
.pv .mt-past .mt-when{color:var(--muted);font-size:.88rem;margin-bottom:8px}
.pv .mt-past h4{font-family:var(--display);font-size:.95rem;margin:0 0 4px}
.pv .mt-sum{border-top:1px solid var(--line-soft);padding-top:12px;margin-top:4px}
.pv .mt-inner{padding:0}
/* program updates: a few details under each (dim, 24 Oct 2026) */
.pv .upd-pts{margin:8px 0 0;padding-left:16px;font-size:.84rem;color:var(--fg-2);display:flex;flex-direction:column;gap:3px}
/* the player page title on one line, on any phone (dim, 24 Oct 2026) */
.pv #h-start.one-line{white-space:nowrap;font-size:clamp(1.3rem,6.4vw,2rem)}

/* ── team sheets (dim, 24 Oct 2026): the preview card on What's on, the team on the club's ground, and the coach's check
   screen. Its own ts- classes, shared with no other section ── */
/* the team selection on What's on, laid out like the Fixture and Social events groups (dim, 24 Oct 2026): its own classes, the same look */
.pv .ts-wo{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0 0 16px}
.pv .ts-wo-sub{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.pv .ts-wo-sub .ic{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--brass-soft);color:var(--brass)}
.pv .ts-wo-sub .ic svg{width:18px;height:18px}
.pv .ts-wo-sub h3{font-family:var(--display);font-size:1.08rem;font-weight:700;letter-spacing:-0.01em;margin:0;color:var(--fg)}
.pv .ts-wo-sub .src{margin-left:auto;font-size:.76rem;color:var(--muted);text-align:right}
.pv .app:not(.room) .card.ts-line,.pv .app .card.ts-line{display:grid;flex-direction:row;text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:46px;padding:8px 12px 8px 16px;text-decoration:none;color:var(--fg);box-sizing:border-box}
.pv .ts-line .dt{font-family:var(--display);font-size:.92rem;font-weight:600;line-height:1.3;color:var(--brass);white-space:nowrap}
.pv .ts-line .t{display:flex;align-items:baseline;min-width:0}
.pv .ts-line .t b{font-family:var(--display);font-size:.92rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pv .ts-line .vs{font-family:var(--body);font-size:.78rem;font-weight:500;color:var(--muted);margin-right:4px}
.pv .ts-line .see{display:inline-flex;align-items:center;gap:2px;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--muted);white-space:nowrap;flex:none}
.pv .ts-line .chev{width:16px;height:16px}
.pv .ts-line:hover .see{color:var(--fg)}
.pv .ts-line:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv .ts-cards{display:flex;flex-direction:column;gap:8px}
/* two in view, the rest scroll inside the box (dim, 24 Oct 2026): notices and team selections */
.pv .two-up{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.pv .two-up.more{-webkit-mask-image:linear-gradient(#000 calc(100% - 18px),transparent);mask-image:linear-gradient(#000 calc(100% - 18px),transparent);padding-right:16px;scrollbar-width:none}
.pv .two-up.more::-webkit-scrollbar{display:none}
.pv [data-notices],.pv [data-ts-cards],.pv [data-wo]{position:relative}
.pv .two-bar{position:absolute;right:0;width:6px;border-radius:3px;background:color-mix(in srgb,var(--fg) 14%,transparent);pointer-events:none}
.pv .two-bar i{display:block;width:6px;border-radius:3px;background:var(--fg)}
.pv a.nt-link{text-decoration:none;color:inherit}
.pv .nt-go{float:right;display:inline-flex;align-items:center;gap:2px;font-family:var(--display);font-weight:700;color:var(--brass)}
.pv .nt-go .chev{width:14px;height:14px}
.pv .app:not(.room) .nt-list .two-up{display:flex;flex-direction:column;gap:8px}
.pv .ts-room .ts-title{font-size:1.08rem;margin:4px 0 8px}
.pv .ts-ground{position:relative;height:320px;margin:0 0 4px}
.pv .ts-field{position:absolute;left:30px;right:30px;top:0;bottom:0;border-radius:50%;overflow:hidden;background:var(--ts-g);box-shadow:inset 0 0 0 5px var(--ts-l)}
.pv .ts-field span{position:absolute;border:1.5px solid var(--ts-l);opacity:.75}
.pv .ts-field .sq{left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px}
.pv .ts-field .cc{left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%}
.pv .ts-field .arc{left:50%;width:170px;height:80px;margin-left:-85px}
.pv .ts-field .arc.t{top:5px;border-radius:0 0 85px 85px;border-top:0}
.pv .ts-field .arc.b{bottom:5px;border-radius:85px 85px 0 0;border-bottom:0}
.pv .ts-field .gs{left:50%;width:26px;height:14px;margin-left:-13px}
.pv .ts-field .gs.t{top:6px;border-top:0}
.pv .ts-field .gs.b{bottom:6px;border-bottom:0}
.pv .ts-field.crested .sq,.pv .ts-field.crested .cc{display:none}
/* soccer: a pitch, not an oval (dim, 26 Oct 2026): halfway line, centre circle, both penalty and goal boxes */
.pv .ts-field.ts-pitch{left:14px;right:14px;border-radius:10px}
.pv .ts-pitch .hw{left:5px;right:5px;top:50%;height:0;border-width:1.5px 0 0}
.pv .ts-pitch .cc{width:76px;height:76px;margin:-38px 0 0 -38px}
.pv .ts-pitch .pb{left:50%;width:150px;height:46px;margin-left:-75px}
.pv .ts-pitch .pb.t{top:5px;border-top:0}
.pv .ts-pitch .pb.b{bottom:5px;border-bottom:0}
.pv .ts-pitch .gb{left:50%;width:64px;height:18px;margin-left:-32px}
.pv .ts-pitch .gb.t{top:5px;border-top:0}
.pv .ts-pitch .gb.b{bottom:5px;border-bottom:0}
.pv .ts-pitch.crested .cc{display:block}
.pv .ts-srows{padding:16px 24px}
.pv .ts-tab.ts-none{background:transparent}
.pv .ts-form small{font-size:.75rem;color:var(--muted);flex-basis:100%}
.pv .ts-form{flex-wrap:wrap}
.pv .ts-srow.ts-wide{grid-template-columns:24px minmax(0,132px) minmax(0,132px);justify-content:space-between;margin-bottom:4px}
.pv .ts-srow.ts-wide .ts-chip:last-child{justify-self:end}
.pv .ts-pos{display:grid;gap:1px;min-width:0}
.pv .ts-pos small{font-family:var(--display);font-weight:700;font-size:.58rem;letter-spacing:.06em;line-height:1;color:var(--muted);padding-left:3px}
.pv .ts-eline .ts-pos .ts-spot{width:auto}
.pv .ts-row.ts-srow{grid-template-columns:24px repeat(var(--n),minmax(0,112px));justify-content:center}
.pv .ts-crest{position:absolute;left:50%;top:50%;width:220px;height:220px;margin:-110px 0 0 -110px;object-fit:contain;opacity:.22}
.pv .ts-rows{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:16px 0}
.pv .ts-row{display:grid;grid-template-columns:24px 1fr 1fr 1fr;gap:4px;align-items:center}
.pv .ts-tab{background:#6B6B6B;color:#fff;font-family:var(--display);font-weight:700;font-size:.75rem;height:26px;border-radius:5px;display:flex;align-items:center;justify-content:center}
.pv .ts-chip{display:flex;align-items:center;gap:4px;min-width:0;height:26px;padding:2px;background:#fff;color:#141414;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.pv .ts-chip .cap{font-style:normal;flex:none;margin-left:auto;margin-right:2px;width:15px;height:15px;border-radius:50%;background:var(--ts-l,#141414);color:var(--ts-g,#fff);font-family:var(--display);font-weight:800;font-size:.75rem;display:flex;align-items:center;justify-content:center}
.pv .ts-chip.empty{background:rgba(255,255,255,.35);box-shadow:none}
.pv .ts-chip i{font-style:normal;min-width:22px;height:22px;padding:0 3px;border-radius:4px;background:var(--ts-g,#141414);color:var(--ts-l,#fff);font-family:var(--display);font-weight:700;font-size:.75rem;display:flex;align-items:center;justify-content:center}
.pv .ts-chip i.no{min-width:5px;width:5px;padding:0}
.pv .ts-chip b{font-family:var(--display);font-weight:600;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .ts-room .ts-h{font-family:var(--display);font-weight:700;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:8px 0 4px}
.pv .ts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.pv .ts-grid.four{grid-template-columns:repeat(4,1fr)}
.pv .ts-grid .ts-chip{box-shadow:none;border:1px solid var(--line)}
.pv .ts-io{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.8rem;margin:8px 0 0;padding-top:8px;border-top:1px solid var(--line)}
.pv .ts-io .in{color:var(--good)}
/* the coach's side */
.pv .ts-coach .ts-snap{margin-top:12px;cursor:pointer}
.pv .ts-alt{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 16px}
.pv .ts-alt [hidden]+.btn{grid-column:1/-1}
.pv .app .ts-coach .card.ts-ed{margin-top:12px;padding:16px 8px}
.pv .ts-edh{padding:0 2px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.pv .ts-edh h3{font-family:var(--display);font-size:1.02rem;margin:0}
.pv .ts-edh p{margin:0}
.pv .ts-elines{display:flex;flex-direction:column;gap:4px}
.pv .ts-eline{display:grid;grid-template-columns:34px repeat(3,minmax(0,1fr));gap:3px;align-items:center}
.pv .ts-eline .ts-tab{align-self:stretch;height:auto;min-height:32px;font-size:.66rem;letter-spacing:-.02em;padding:0 2px;overflow:hidden}   /* FOL and EMG fit their box (dim, 28 Oct 2026) */
.pv .ts-said{grid-column:2/-1;margin:0;font-size:.75rem;color:var(--muted)}
.pv .ts-said b{font-family:var(--mono);color:var(--fg)}
.pv .ts-spot{display:flex;height:32px;border:1px solid var(--line);border-radius:7px;background:var(--surface);overflow:hidden}
.pv .ts-spot input{border:0;border-radius:0;background:transparent;font:inherit;font-size:.76rem;padding:0 3px;height:30px;min-height:0;width:auto;min-width:0;color:var(--fg)}
.pv .ts-spot input.n{width:20px;flex:none;text-align:center;border-right:1px solid var(--line);font-family:var(--mono);padding:0}
.pv .ts-spot input.nm{flex:1;width:0;font-weight:600;padding:0 2px 0 4px;letter-spacing:-.01em}
.pv .ts-form{display:flex;align-items:center;gap:8px;padding:0 4px;margin:0 0 8px}
.pv .ts-form>span{font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;color:var(--muted)}
.pv .ts-form select{min-height:0;height:36px;padding:0 8px;font-size:.9rem;border-radius:8px;width:auto}
.pv .ts-eform{padding:0 4px;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.pv .ts-eform .wide{grid-column:1/-1}
.pv .ts-eform label>span,.pv .ts-when>span{display:block;font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;color:var(--muted);margin-bottom:3px}
.pv .ts-eform input:not([type=radio]):not([type=checkbox]){min-height:0;height:36px;padding:0 8px;font-size:.85rem;border-radius:8px}
.pv .ts-when{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px}
.pv .ts-when>span{flex-basis:100%;margin:0}
.pv .ts-when label{display:flex;align-items:center;gap:8px;font-size:.88rem}
.pv .ts-when input[type=radio],.pv .ts-tick input{width:18px;height:18px;min-height:0;margin:0;padding:0}
.pv .ts-when input[data-ts-from]{flex:1;min-width:150px;width:auto}
.pv .ts-tick{display:flex;align-items:center;gap:8px;font-size:.85rem}
.pv .ts-ebtns{padding:0 4px;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:12px}
.pv .ts-ebtns .btn{min-height:44px;padding:8px 8px}
.pv .ts-spot.ts-unsure{background:#FFF1C9;border:1.5px solid #E0A400}
.pv .ts-spot.ts-unsure input{color:#141414}
.pv .ts-spot.ts-out{background:#FBE3E1;border:1.5px solid #C62828}
.pv .ts-spot.ts-out input{color:#141414}
.pv .ts-outs{margin:0 0 8px;font-size:.8rem;color:#C62828}
.pv .ts-outs b{font-weight:700}
.pv .ts-done{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:4px;border-radius:50%;background:var(--good,#2E7D4F);color:#fff;font-size:.75rem;font-weight:800}
.pv .ts-confirm{margin:8px 4px 0;padding:8px 12px;border-radius:8px;background:#FFF1C9;color:#141414;font-size:.88rem;font-weight:600}
/* past rounds in the fixture: press a played round and its team drops down as a plain grid (dim, 24 Oct 2026) */
.pv details.ts-drop>summary{list-style:none;cursor:pointer}
.pv details.ts-drop>summary::-webkit-details-marker{display:none}
.pv details.ts-drop>summary .ts-more{flex:none;font-family:var(--display);font-weight:700;font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:4px}
.pv details.ts-drop>summary .ts-more:after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.pv details.ts-drop[open]>summary .ts-more:after{transform:rotate(45deg)}
.pv .ts-dropbody{padding:16px 12px 12px}
.pv .ts-past .ts-prows{display:flex;flex-direction:column;gap:4px}
.pv .ts-past .ts-chip{box-shadow:none;border:1px solid var(--line)}
.pv .ts-past .ts-h{font-family:var(--display);font-weight:700;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:8px 0 4px}
.pv .ts-dropbody .fx-pq{display:inline-block;margin-top:8px;font-size:.82rem}
.pv .ts-earlier{margin-top:16px}
.pv .ts-earlier details.ts-drop>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;font-family:var(--display);font-weight:600;font-size:.92rem}
.pv .ts-earlier details.ts-drop+details.ts-drop{border-top:1px solid var(--line)}
.pv .app:not(.room) summary.fx-row{grid-template-columns:44px minmax(0,1fr) auto auto}
.pv .fx-list>details.ts-drop:not(:first-child){border-top:1px solid var(--line-soft)}
.pv details.ts-drop[open]>summary.fx-row{background:color-mix(in srgb,var(--brass-soft) 40%,transparent)}
@media (max-width:640px){.pv .app:not(.room) summary.fx-row{grid-template-columns:38px minmax(0,1fr) auto auto}}
/* the notice board about 40% smaller (dim, 24 Oct 2026): tighter cards, smaller type, one line of message, the rest in See all notices */
.pv .app:not(.room) .nt-list .nt{gap:2px;padding:8px 12px;border-radius:10px}
.pv .app:not(.room) .nt-list .nt-top{gap:8px}
.pv .app:not(.room) .nt-list .nt-top b{font-size:.82rem}
.pv .app:not(.room) .nt-list .nt-to{font-size:.75rem;letter-spacing:.04em;padding:1px 8px}   /* small team pills (dim, 26 Oct 2026) */
.pv .app:not(.room) .nt-list .nt p{font-size:.78rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .nt-list .nt-meta{font-size:.75rem}
.pv .app:not(.room) .nt-list .nt-go .chev{width:12px;height:12px}
.pv .app:not(.room) .nt-list .two-up{gap:8px}
.pv .app:not(.room) .nt-list .nt-top{flex-wrap:nowrap}
.pv .app:not(.room) .nt-list .nt-top b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .app:not(.room) .nt-list .nt-to{margin-left:auto;flex:none}   /* the team on the right, above See the team (dim, 24 Oct 2026) */

/* ── the tidier players page (dim, 25 Oct 2026): What's on as one dated list, For you rows, Help, and the pages they open ── */
.pv .vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pv .app:not(.room) .wo2{overflow:hidden;margin-top:12px}
.pv .app:not(.room) .wo2-row{display:flex;gap:16px;align-items:center;padding:12px 16px;color:var(--fg);text-decoration:none}
.pv .app:not(.room) .wo2-row + .wo2-row{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .wo2-row:hover{background:var(--surface-2)}
.pv .app:not(.room) .wo2-d{flex:none;width:46px;text-align:center;border-radius:10px;background:var(--surface-2);padding:4px 0;font-family:var(--display);line-height:1.05}
.pv .app:not(.room) .wo2-d b{display:block;font-size:1.15rem;font-weight:800}
.pv .app:not(.room) .wo2-d small{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pv .app:not(.room) .wo2-d.hot{background:var(--brass);color:var(--on-brass)}
.pv .app:not(.room) .wo2-d.hot small{color:var(--on-brass)}
.pv .app:not(.room) .wo2-m{flex:1;min-width:0}
.pv .app:not(.room) .wo2-m .k{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .wo2-m b{display:block;font-family:var(--display);font-weight:700;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .wo2-m b.off{text-decoration:line-through;color:var(--muted)}
.pv .app:not(.room) .wo2-m small{display:block;color:var(--muted);font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .wo2-pill{flex:none;background:var(--fg);color:var(--paper);border-radius:999px;padding:8px 12px;font-family:var(--display);font-weight:700;font-size:.8rem}
.pv .app:not(.room) .wo2-row .chev,.pv .app:not(.room) .fy-row .chev,.pv .app:not(.room) .nw6 .chev{flex:none;width:18px;height:18px;color:var(--muted)}
.pv .app:not(.room) .wo2-links{display:flex;gap:16px;margin-top:8px}
.pv .app:not(.room) .wo2-links .nt-more{display:inline-flex;align-items:center;gap:4px}
.pv .app:not(.room) .wo2-links .chev{width:14px;height:14px}
.pv .app:not(.room) .fy-list{overflow:hidden;margin-top:12px}
.pv .app:not(.room) .fy-row{display:flex;align-items:center;gap:12px;padding:16px 16px;color:var(--fg);text-decoration:none}
.pv .app:not(.room) .fy-row + .fy-row{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .fy-row:hover{background:var(--surface-2)}
.pv .app:not(.room) .fy-ic{flex:none;width:38px;height:38px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;color:var(--brass)}
.pv .app:not(.room) .fy-ic svg{width:20px;height:20px}
.pv .app:not(.room) .fy-t{flex:1;min-width:0}
.pv .app:not(.room) .fy-t b{display:block;font-family:var(--display);font-weight:700;font-size:1.02rem}
.pv .app:not(.room) .fy-t small{display:block;color:var(--muted);font-size:.86rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .hl0{display:flex;flex-direction:row;align-items:center;gap:8px;padding:12px 12px 12px 16px;margin-top:12px;min-width:0}
.pv .app:not(.room) .hl0 span{flex:1;min-width:0;font-family:var(--display);font-weight:700;font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .hl0 a{flex:none;background:var(--alert);color:#fff;text-decoration:none;font-family:var(--display);font-weight:800;border-radius:999px;padding:8px 16px;font-size:.95rem}
.pv .app:not(.room) .hl2-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.pv .app:not(.room) .hl2{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.pv .app:not(.room) .hl2 summary{list-style:none;display:flex;align-items:center;gap:16px;padding:16px;cursor:pointer}
.pv .app:not(.room) .hl2 summary::-webkit-details-marker{display:none}
.pv .app:not(.room) .hl2-ic{flex:none;width:44px;height:44px;border-radius:50%;background:var(--brass);color:var(--on-brass);display:grid;place-items:center}
.pv .app:not(.room) .hl2-ic svg{width:22px;height:22px}
.pv .app:not(.room) .hl2-t{flex:1;min-width:0}
.pv .app:not(.room) .hl2-t b{display:block;font-family:var(--display);font-weight:800;font-size:1.02rem;text-transform:uppercase;letter-spacing:.02em}
.pv .app:not(.room) .hl2-t small{display:block;color:var(--muted);font-size:.86rem;margin-top:2px}
.pv .app:not(.room) .hl2-pm{flex:none;width:18px;height:18px;position:relative}
.pv .app:not(.room) .hl2-pm::before,.pv .app:not(.room) .hl2-pm::after{content:"";position:absolute;left:2px;right:2px;top:8px;height:2px;border-radius:2px;background:var(--muted)}
.pv .app:not(.room) .hl2-pm::after{transform:rotate(90deg);transition:transform .2s}
.pv .app:not(.room) .hl2[open] .hl2-pm::after{transform:rotate(0)}
.pv .app:not(.room) .hl2-r{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .hl2-m{flex:1;min-width:0}
.pv .app:not(.room) .hl2-m b{display:block;font-family:var(--display);font-weight:700;font-size:.96rem}
.pv .app:not(.room) .hl2-m small{display:block;color:var(--muted);font-size:.84rem;line-height:1.35}
.pv .app:not(.room) .hl2-a{flex:none;display:flex;gap:8px}
.pv .app:not(.room) .hl2-sub{margin:0;padding:12px 16px 2px;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .hl2-sub + .hl2-r{border-top:0}
.pv .app:not(.room) .ph2-teams{margin:4px 0 16px}
.pv .app:not(.room) .ph2-head{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.pv .app:not(.room) .ph2-head b{font-family:var(--display);font-weight:800;font-size:1.1rem}
.pv .app:not(.room) .ph2-head span{color:var(--muted);font-size:.88rem}
.pv .app:not(.room) .ct2-lbl{margin-top:24px}
.pv .app:not(.room) .nw6-wrap .row-label{margin-top:16px}
.pv .app:not(.room) .nw6-list{overflow:hidden;margin-top:8px}
.pv .app:not(.room) .nw6{display:flex;gap:12px;align-items:center;padding:16px 16px;color:var(--fg);text-decoration:none}
.pv .app:not(.room) .nw6 + .nw6{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .nw6:hover{background:var(--surface-2)}
.pv .app:not(.room) .nw6-av{flex:none;width:72px;height:72px;border-radius:50%;background:var(--brass);color:var(--on-brass);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.6rem}
.pv .app:not(.room) .nw6-av{position:relative;overflow:hidden}
.pv .app:not(.room) .nw6-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pv .app:not(.room) .nw6-m{flex:1;min-width:0}
.pv .app:not(.room) .nw6-m b{display:block;font-family:var(--display);font-weight:700;font-size:1rem}
.pv .app:not(.room) .nw6-m small{display:block;color:var(--muted);font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .nw6-t{display:flex;flex-wrap:wrap;max-height:1.5rem;overflow:hidden;gap:8px;margin-top:8px}
.pv .app:not(.room) .nw6-t span{flex:none;white-space:nowrap;font-size:.75rem;font-weight:600;background:var(--surface-2);border-radius:999px;padding:3px 8px}
.pv .app:not(.room) .sg-box{margin-top:24px;padding:16px}
.pv .app:not(.room) .sg-box h3{margin:0;font-family:var(--display);font-weight:800;font-size:1.1rem}
.pv .app:not(.room) .sg-box p{margin:4px 0 12px;color:var(--muted);font-size:.9rem}
.pv .app:not(.room) .sg-chips{display:flex;flex-wrap:wrap;gap:8px}
.pv .app:not(.room) .sg-chip{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:var(--fg);border-radius:999px;padding:8px 12px;font-weight:600;font-size:.9rem}
.pv .app:not(.room) .sg-chip[aria-pressed="true"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv .app:not(.room) .sg-chip[aria-pressed="true"]::before{content:"\2713  "}
.pv .app:not(.room) .sg-chip:disabled{cursor:default;opacity:.6}
.pv .app:not(.room) .sg-send{display:block;width:100%;margin-top:16px;border:0;cursor:pointer;border-radius:999px;padding:12px;font-family:var(--display);font-weight:800;font-size:1rem;background:var(--fg);color:var(--paper);text-align:center}
.pv .app:not(.room) .sg-send.done{background:var(--good);color:#fff;cursor:default}
.pv .app:not(.room) .hb2{padding:0;overflow:hidden;margin:12px 0 16px}
.pv .app:not(.room) .hb2 summary{list-style:none;display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer}
.pv .app:not(.room) .hb2 summary::-webkit-details-marker{display:none}
.pv .app:not(.room) .hb2-t{flex:1;min-width:0}
.pv .app:not(.room) .hb2-t b{display:block;font-family:var(--display);font-weight:800;font-size:1.15rem;margin-top:2px}
.pv .app:not(.room) .hb2-ar{flex:none;width:34px;height:34px;padding:8px;border-radius:50%;background:var(--surface-2);transition:transform .2s}
.pv .app:not(.room) .hb2[open] .hb2-ar{transform:rotate(180deg)}
.pv .app:not(.room) .hb2-in{padding:0 16px 16px}
.pv .app:not(.room) .hb2-in p{margin:0 0 12px}
@media (prefers-reduced-motion:reduce){.pv .app:not(.room) .hb2-ar,.pv .app:not(.room) .hl2-pm::after{transition:none}}

/* dim's second pass (25 Oct 2026) */
.pv .app:not(.room) .nt-list .wo2-links{margin-top:2px}
.pv .app:not(.room) .wo2 .two-up.more{padding-right:0}
.pv .app:not(.room) .wo2 .two-up .wo2-row + .wo2-row{border-top:1px solid var(--line-soft)}
.pv .app:not(.room) .sg-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pv .app:not(.room) .sg-chip{padding:8px 4px;font-size:.78rem;line-height:1.2;text-align:center;min-height:44px}
.pv .app:not(.room) .hl2-m b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .hb2{transition:max-height .4s ease,opacity .35s ease,margin .4s ease,padding .4s ease,border-width .4s ease}
.pv .app:not(.room) .hb2.hb2-gone{max-height:0!important;opacity:0;margin:0;border-width:0}
.pv .app:not(.room) .nw6-wrap .row-label{margin-top:8px}
.pv .app:not(.room) .nw6-list{margin-top:8px}
.pv .app:not(.room) .nw6{padding:8px 16px;gap:8px}
.pv .app:not(.room) .nw6-av{width:4.125rem;height:4.125rem;font-size:1.45rem;align-self:flex-start;margin-top:8px}   /* top of the circle level with the name, bottom level with the tags (dim, 28 Oct 2026) */
.pv .app:not(.room) .nw6-m b{font-size:.95rem}
.pv .app:not(.room) .nw6-m small{font-size:.8rem}
.pv .app:not(.room) .nw6-t{margin-top:4px}
.pv .app:not(.room) .nw6-t span{font-size:.75rem;padding:2px 8px}
.pv .app:not(.room) [data-ct-panel] .ph-empty{margin-top:4px}
.pv .app:not(.room) .wo2-row{padding:8px 16px;gap:12px}
.pv .app:not(.room) .wo2-d{width:42px;padding:3px 0}
.pv .app:not(.room) .wo2-d b{font-size:1.05rem}
.pv .app:not(.room) .wo2-m b{font-size:.96rem;line-height:1.25}
.pv .app:not(.room) .wo2-m small{font-size:.8rem;line-height:1.3}
.pv .app:not(.room) .wo2-m .k{line-height:1.3}
.pv .app:not(.room) .wo2-pill{padding:4px 12px}
/* the Welfare Sponsor banner comes to life (dim's pick 1, 25 Oct 2026): a soft band of light crosses it every few seconds,
   like the crest on Choose your view, and the logo floats gently */
.pv .spb::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-18deg);animation:spb-sweep 4.5s ease-in-out infinite;z-index:2;pointer-events:none}
@keyframes spb-sweep{0%,55%{left:-60%}100%{left:130%}}
.pv .spb-mark{animation:spb-float 4.5s ease-in-out infinite}
@keyframes spb-float{0%,100%{transform:translateY(-50%) rotate(-5deg)}50%{transform:translateY(-56%) rotate(-3deg)}}
@media (prefers-reduced-motion:reduce){.pv .spb::after{display:none}.pv .spb-mark{animation:none}}
/* the coach and team manager rooms: two tabs at the top, like Club contacts (dim, 25 Oct 2026) */
.pv .sr-tabs{display:flex;gap:3px;padding:3px;margin:0 0 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.pv .sr-tabs button{all:unset;box-sizing:border-box;cursor:pointer;flex:1;text-align:center;padding:8px 8px;border-radius:9px;font-family:var(--display);font-size:.9rem;font-weight:600;color:var(--muted)}
.pv .sr-tabs button[aria-selected="true"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv .sr-tabs button:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
/* Who for in the events form: the team drop down, ticks at their usual size (dim, 25 Oct 2026) */
.pv .ev-form [data-who-pick] .chk{justify-content:flex-start;text-align:left}
.pv .ev-form [data-who-pick] input[type="checkbox"]{width:18px;height:18px;min-height:0;flex:none;padding:0;margin:0;appearance:auto;-webkit-appearance:checkbox}
.pv .ev-form [data-who-pick] > summary{font-size:.95rem}
/* the committee home (dim, 25 Oct 2026, option B): six tight tiles, then a short list; each opens its own room */
.pv .cmt-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pv .cmt{position:relative;display:flex;flex-direction:column;gap:1px;min-width:0;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--fg);text-decoration:none}
.pv .cmt:hover{background:var(--surface-2)}
.pv .cmt-k{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.pv .cmt-v{font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv .cmt-v .u{font-size:.85rem;font-weight:600;color:var(--muted)}
.pv .cmt-s{font-size:.78rem;line-height:1.3;color:var(--muted)}
.pv .cmt.hot{border-color:var(--alert)}
.pv .cmt.hot::after{content:"";position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--alert)}
.pv .cmt.lk{background:transparent;border-style:dashed}
.pv .cmt.lk .cm-lock-tag{align-self:flex-start;margin:4px 0 3px}
.pv .cmt.wide{grid-column:1 / -1}
.pv .cmt-with{grid-column:1 / -1;margin:8px 0 0;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pv .cmt-locked{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}   /* three boxes on one row, short names Meetings, Players, Alerts (dim, 29 Oct 2026) */
.pv .cmt.sm{padding:8px 8px;gap:2px}
.pv .cmt.sm .cmt-k{letter-spacing:.04em;color:var(--fg-2)}
.pv .cmt.sm .cmt-s{font-size:.75rem}
.pv .cmt-list{margin:0;padding:0}
.pv .cmt-row{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--fg);text-decoration:none}
.pv .cmt-row + .cmt-row{border-top:1px solid var(--line-soft)}
.pv .cmt-row:hover{background:var(--surface-2)}
.pv .cmt-ic{flex:none;width:34px;height:34px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;color:var(--brass)}
.pv .cmt-ic .ti{width:18px;height:18px}
.pv .cmt-t{flex:1;min-width:0}
.pv .cmt-t b{display:block;font-family:var(--display);font-weight:700;font-size:.98rem}
/* the pill stays on the title's line (dim, 27 Oct 2026): tighter, at the 12px floor, and the title never wraps around it */
.pv .cmt-t b{display:flex;align-items:center;gap:4px;min-width:0}
.pv .cmt-t b:has(.cm-lock-tag){font-size:.92rem}
.pv .cmt-t b .cm-lock-tag{flex:none;margin:0;font-size:.75rem;font-weight:500;letter-spacing:-.01em;text-transform:none;line-height:1.1;padding:2px 4px}
@media (max-width:900px){.pv .cmt-row{gap:8px}}
.pv .cmt-t small{display:block;color:var(--muted);font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .cmt-go{flex:none;color:var(--muted);font-size:1.3rem;line-height:1}
.pv .cmt-tag{flex:none;display:flex}   /* a plan pill where the arrow would be (dim, 29 Oct 2026) */
.pv .cmt-tag .cm-lock-tag{margin:0;font-size:.75rem;font-weight:500;letter-spacing:-.01em;text-transform:none;line-height:1.1;padding:3px 8px;white-space:nowrap}
.pv #cm-home{margin-top:4px}
.pv #cm-roomhead{margin:0 0 8px}
.pv #faq .cm-how{margin-bottom:8px}
/* a sponsor-paid Season Program: the committee's survey list under Results (dim, 26 Oct 2026) */
.pv .spf-svs{margin-top:24px}
.pv .spf-h{font-family:var(--display);font-size:1rem;margin:0 0 8px}
.pv .spf-sv{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line-soft)}
.pv .spf-sv:first-child{border-top:0}
.pv .spf-sv .t{flex:1;min-width:0}
.pv .spf-sv .t b{display:block;font-family:var(--display);font-size:.95rem}
.pv .spf-sv .t small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.pv .spf-sv .go{display:flex;align-items:center;gap:8px;flex:none}
.pv .spf-sv .go .btn{min-height:40px;padding:8px 16px;font-size:.88rem}
.pv .spf-svs .hint{margin-top:8px}

/* harsh sweep (dim, 26 Oct 2026): help page names wrap, thicker links */
.pv .app:not(.room) .hl2-m b{white-space:normal;overflow:visible;text-overflow:clip}
.pv .app:not(.room) .nt-more,.pv .anon a,.pv .note a,.pv .foot a{padding:8px 2px;margin:-8px -2px}
/* the sample club bar with two drop downs, plan and sport (dim, 27 Oct 2026): each as wide as its words; on a phone they sit on their own row */
.pv .demo-bar .demo-tier select{width:auto;max-width:100%}
/* the bar never runs past its own edge (dim, 3 Nov 2026): the words take what room is left, and when the two drop downs
   cannot fit beside them they drop to their own row together */
.pv .demo-bar{flex-wrap:wrap;row-gap:8px}
.pv .demo-bar .demo-what{flex:1 1 220px}
@media (max-width:900px){.pv .demo-bar .demo-what{flex-basis:auto}}
.pv .demo-bar .demo-pick{display:flex;flex:none;align-items:center;gap:8px;max-width:100%}
@media (max-width:640px){.pv .demo-bar .demo-what{flex:1 0 100%}
.pv .demo-bar .demo-pick{flex:1 0 100%}
.pv .demo-bar .demo-tier{flex:1 1 0;min-width:0}
.pv .demo-bar .demo-tier select{width:100%}
.pv .demo-bar .demo-sport{margin-left:0}}
/* the team pills stay at the top while a player scrolls the home page, so they can switch team any time (dim, 27 Oct 2026) */
.pv .app:not(.room) .fx-teams[data-team-strip]{position:sticky;top:0;z-index:20;background:var(--paper);margin:0 -4px;padding:8px 4px 8px;box-shadow:0 1px 0 var(--line-soft)}
@media (max-width:900px){.pv .app:not(.room) .fx-teams[data-team-strip]{top:var(--pv-bar,55px)}}
.pv .app:not(.room) .slot.mine .n{white-space:normal}
@media (max-width:640px){.pv .demo-bar .demo-tier:not(.demo-sport){flex-grow:1.4}}

/* colour that tells a player something at a glance (dim, 27 Oct 2026) */
/* A: an edge on each notice, by kind, drawn inside the card so nothing else moves */
.pv .app:not(.room) .nt.k-urgent{box-shadow:inset 4px 0 0 var(--alert)}
.pv .app:not(.room) .nt.k-physio{box-shadow:inset 4px 0 0 var(--ok)}
.pv .app:not(.room) .nt.k-team{box-shadow:inset 4px 0 0 var(--brass-mark)}
.pv .app:not(.room) .nt.k-training{box-shadow:inset 4px 0 0 var(--info)}
/* For you icons stay plain, like the rest of the page (dim, 28 Oct 2026, colours removed) */
/* C: free physio slots in green */
.pv .app:not(.room) .slot.free{border-color:color-mix(in srgb,var(--ok) 55%,var(--line))}
.pv .app:not(.room) .slot.free .n{color:var(--ok)}

/* the parents and guardians page (dim, 27 Oct 2026): the player page's look, with its own few parts */
.pv.pp .pp-fol{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 16px;font-size:.9rem;color:var(--muted)}
.pv.pp .pp-fol b{color:var(--fg);font-family:var(--display)}
.pv.pp .pp-fol button{all:unset;cursor:pointer;font-family:var(--display);font-weight:700;font-size:.82rem;color:var(--fg);border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 12px}
.pv.pp .pp-fol button:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv.pp .pp-teams{display:flex;flex-direction:column;margin:0 0 16px}
.pv.pp .pp-teams button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 16px;border-top:1px solid var(--line-soft);font-family:var(--display);font-weight:600}
.pv.pp .pp-teams button:first-child{border-top:0}
.pv.pp .pp-teams button:hover,.pv.pp .pp-teams button:focus-visible{background:var(--surface-2)}
.pv.pp .pp-teams i{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;border:1.5px solid var(--line);color:transparent}
.pv.pp .pp-teams i svg{width:14px;height:14px}
.pv.pp .pp-teams button[aria-pressed="true"]{background:var(--brass-soft);font-weight:800}
.pv.pp .pp-teams button[aria-pressed="true"] i{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}
.pv.pp .pp-quiet{display:flex;flex-direction:column;gap:2px;padding:16px;margin:0 0 16px}
.pv.pp .pp-quiet b{font-family:var(--display)}
.pv.pp .pp-quiet span{color:var(--muted);font-size:.9rem}
.pv.pp h1.pp-one{white-space:nowrap;margin-bottom:0}
.pv.pp .pp-week{background:var(--chrome);color:var(--chrome-fg);border-radius:16px;padding:16px;margin:0 0 16px}
.pv.pp .pp-week small{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome-muted)}
.pv.pp .pp-week h3{font-family:var(--display);font-size:1.2rem;margin:4px 0 2px;color:var(--chrome-fg)}
.pv.pp .pp-week p{margin:0;color:var(--chrome-muted);font-size:.9rem}
.pv.pp .pp-need{margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--chrome-fg) 20%,transparent);display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--chrome-fg);text-decoration:none}
.pv.pp .pp-need span{flex:1;min-width:0}
.pv.pp .pp-need b{background:var(--chrome-fg);color:var(--chrome);border-radius:999px;padding:8px 16px;font-family:var(--display);font-size:.84rem;white-space:nowrap}
.pv.pp .pp-game{padding:16px;margin:0 0 16px}
.pv.pp .pp-job{margin-top:16px}
.pv.pp .pp-jh{display:flex;flex-direction:column;margin:0 0 8px}
.pv.pp .pp-jh b{font-family:var(--display);font-size:.95rem}
.pv.pp .pp-jh small{color:var(--muted);font-size:.8rem}
.pv.pp .pp-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 16px}
@media (min-width:900px){.pv.pp .pp-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pv.pp .pp-tile{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 8px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--fg);text-decoration:none}
.pv.pp .pp-tile:hover{border-color:var(--brass-mark)}
.pv.pp .pp-tile .e,.pv.pp .pp-thero .e{width:48px;height:48px;border-radius:14px;background:var(--chrome);color:var(--chrome-fg);display:grid;place-items:center;box-shadow:inset 0 -3px 0 rgba(0,0,0,.12);flex:none}
.pv.pp .pp-tile .e svg{width:26px;height:26px}
.pv.pp .pp-tile b{font-family:var(--display);font-weight:700;font-size:.8rem;line-height:1.2}
.pv.pp .pp-asks .sg-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.pv.pp .pp-asks .sg-chip{text-align:center;justify-content:center}
.pv.pp .pp-thero{display:flex;gap:16px;align-items:center;margin:0 0 16px}
.pv.pp .pp-thero .e{width:58px;height:58px;border-radius:16px}
.pv.pp .pp-thero .e svg{width:30px;height:30px}
.pv.pp .pp-thero h1{margin:0 0 2px}
.pv.pp .pp-thero .lede{margin:0}
.pv.pp .pp-remember{padding:16px 16px;margin:0 0 16px;box-shadow:inset 4px 0 0 var(--ok)}
.pv.pp .pp-remember small{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv.pp .pp-remember p{margin:4px 0 0;font-family:var(--display);font-weight:600}
.pv.pp .pp-sub{margin:24px 0 8px}
/* the team manager's Volunteers tab (dim, 27 Oct 2026) */
.vol-game{margin:0 0 12px;padding:16px 16px}
.vol-role{display:flex;flex-direction:column;gap:8px;padding:8px 0;border-top:1px solid var(--line-soft);margin-top:8px}
.vol-ns{display:flex;flex-wrap:wrap;gap:8px}
.vol-n{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:.86rem}
.vol-n.free{border-style:dashed;border-color:color-mix(in srgb,var(--ok) 55%,var(--line));color:var(--ok);background:var(--surface)}
.vol-more{margin-top:12px}
.vol-game .linkish{all:unset;cursor:pointer;font-family:var(--display);font-weight:700;font-size:.8rem;color:var(--alert)}
/* the calendar button under a booked slot, in the booked green so it is easy to spot (dim, 27 Oct 2026) */
/* the booked slot spans the row and holds Add to calendar and Release inside it (dim, 27 Oct 2026) */
.pv .app:not(.room) .slot.mine{grid-column:1/-1;cursor:default}
.pv .app:not(.room) .ph-acts{display:flex;gap:8px;width:100%;margin-top:8px}
.pv .app:not(.room) .ev-btn.ph-cal{display:flex;justify-content:center;flex:1 1 auto;margin:0;padding:8px 12px;font-size:.88rem;color:#fff;border-color:var(--ok);background:var(--ok)}
.pv .app:not(.room) .ph-rel{flex:none;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font:inherit;font-size:.86rem;color:var(--muted);cursor:pointer}
/* the parents page, round 3 (dim, 27 Oct 2026): room to breathe, and a colour for each resource tile */
.pv.pp .pp-safe{margin-top:24px}
.pv.pp .app:not(.room) .lede.pp-rlede{margin:8px 0 24px}
.pv.pp [class*="pp-h"] .e{background:var(--fg);color:var(--paper)}   /* resource icons in the app's own colours turned around: dark on a light page, light on a dark one (dim, 28 Oct 2026) */
.pv.pp .pp-tile[class*="pp-h"] .e,.pv.pp .pp-thero[class*="pp-h"] .e{box-shadow:none}
.pv.pp .pp-fol{margin:16px 0 24px;padding:8px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.pv.pp h1 + .lede{margin-bottom:4px}
.pv.pp .pp-week{margin:0 0 24px}
.pv.pp .pp-doors{margin:0 0 8px}
/* a section opened from the bottom bar or the side menu sits with its title just under the bar and the team pills (dim, 27 Oct 2026) */
.pv .app:not(.room) .sec,.pv .app:not(.room) .crisis{scroll-margin-top:calc(var(--pv-stick,56px) + 14px)}
.pv .app:not(.room) .nt.k-other{box-shadow:inset 4px 0 0 color-mix(in srgb,var(--muted) 45%,var(--line))}   /* any other notice: a soft grey edge (dim, 27 Oct 2026) */
/* each round its own block on Volunteering, with clear space between (dim, 27 Oct 2026) */
.pv.pp .app:not(.room) .card.pp-game{margin:0 0 24px;padding:16px 16px}
.pv.pp .pp-game .ph2-head{padding-bottom:8px;border-bottom:1px solid var(--line-soft)}
.vol-game{margin:0 0 24px}
.vol-game .linkish.vol-plus{color:var(--ok)}
/* the parents home fits a phone screen, Club contacts included (dim picked A, 27 Oct 2026) */
.pv.pp h1.pp-homeh{font-size:1.45rem;margin:0}
.pv.pp .pp-homeh + .pp-fol{margin:8px 0 24px;padding:0;border:0}
.pv.pp .pp-homeh + .pp-fol button{padding:4px 8px;font-size:.78rem}
.pv.pp .pp-week{padding:12px 16px;margin:0 0 12px}
.pv.pp .pp-week h3{font-size:1.02rem;margin:2px 0 0}
.pv.pp .pp-week p{font-size:.84rem}
.pv.pp .pp-need{margin-top:8px;padding-top:8px;font-size:.84rem}
.pv.pp .pp-need b{padding:8px 12px;font-size:.8rem}
.pv.pp .app:not(.room) .pp-doors .fy-row{padding:16px 16px}
.pv.pp .pp-safe{margin-top:12px}
.pv .fu-hero{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:16px;margin-bottom:12px;background:var(--chrome);border:1.5px solid var(--chrome-accent,var(--chrome-line));color:var(--chrome-fg)}
.pv .fu-hero b{font-family:var(--display);font-weight:800;font-size:1.35rem;line-height:1.2}
.pv .fu-hero span{opacity:.9}
.pv .fu-card{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border-radius:14px;padding:16px;margin-bottom:8px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.pv .fu-ic{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center}
.pv .fu-ic svg{width:19px;height:19px}
.pv .fu-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pv .fu-t b{font-family:var(--display);font-weight:700;font-size:.98rem}
.pv .fu-t span{color:var(--fg-2);font-size:.88rem}
.pv .fu-t small{margin-top:3px;color:var(--muted);font-size:.78rem}
.pv.pp .ct-list + .pp-lines{margin-top:16px}
/* Volunteering: the next game open, one line a spot; later games fold to a line with how many spots are free (dim picked B, 28 Oct 2026) */
.pv.pp .vr-k{font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:24px 0 8px}
.pv.pp .vr-k:first-of-type{margin-top:4px}
.pv.pp .app:not(.room) .card.vr-card{padding:0;margin:0 0 8px;overflow:hidden}
.pv.pp .vr-head,.pv.pp .vr-later summary{display:flex;align-items:center;gap:16px;padding:16px 16px}
.pv.pp .vr-head{border-bottom:1px solid var(--line-soft)}
.pv.pp .vr-head .ev-chip,.pv.pp .vr-later .ev-chip{width:40px;flex:none}
.pv.pp .vr-head .t,.pv.pp .vr-later .t{flex:1;min-width:0;display:flex;flex-direction:column}
.pv.pp .vr-head .t b,.pv.pp .vr-later .t b{font-family:var(--display);font-size:1rem;line-height:1.25}
.pv.pp .vr-head .t span,.pv.pp .vr-later .t span{color:var(--muted);font-size:.84rem}
.pv.pp .vr-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--line-soft)}
.pv.pp .vr-head + .vr-row{border-top:0}
.pv.pp .vr-row b{font-family:var(--display);font-size:.95rem}
.pv.pp .vr-b{all:unset;box-sizing:border-box;font-family:var(--display);font-weight:700;font-size:.84rem;border-radius:999px;padding:8px 16px;white-space:nowrap;max-width:55%;overflow:hidden;text-overflow:ellipsis}
.pv.pp button.vr-b{cursor:pointer}
.pv.pp .vr-b:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv.pp .vr-b.help{background:var(--fg);color:var(--paper)}
.pv.pp .vr-b.name{background:var(--surface-2);color:var(--fg);font-family:var(--body);font-weight:600}
.pv.pp .vr-b.you{background:var(--ok-soft);color:var(--ok)}
.pv.pp .vr-later + .vr-later{border-top:1px solid var(--line-soft)}
.pv.pp .vr-later summary{cursor:pointer;list-style:none}
.pv.pp .vr-later summary::-webkit-details-marker{display:none}
.pv.pp .vr-later .chev{width:18px;height:18px;color:var(--muted);flex:none;transition:transform .15s}
.pv.pp .vr-later[open] .chev{transform:rotate(90deg)}
.pv.pp .vr-free{font-family:var(--display);font-weight:700;font-size:.76rem;color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:4px 8px;white-space:nowrap}
.pv.pp .vr-full{font-family:var(--display);font-weight:700;font-size:.76rem;color:var(--muted);white-space:nowrap}
.pv.pp .vr-body .vr-row:first-child{border-top:1px solid var(--line-soft)}
.pv.pp .vr-mine{display:flex;align-items:center;gap:8px;min-width:0}
.pv.pp .vr-cal{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ok);color:#fff}
.pv.pp .vr-cal svg{width:17px;height:17px}
.pv.pp .vr-cal:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv.pp .vr-mine .vr-b{max-width:none;overflow:visible}

/* the game week card and the quick tiles at the top of the home page (dim's option A, 28 Oct 2026) */
.pv .app:not(.room) .gw{background:var(--fg);color:var(--paper);border-radius:18px;padding:16px 16px 16px;margin:8px 0 12px}
.pv .app:not(.room) .gw-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pv .app:not(.room) .gw-k{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.pv .app:not(.room) .gw-n{font-family:var(--display);font-weight:800;font-size:.78rem;background:var(--paper);color:var(--fg);border-radius:99px;padding:4px 8px;white-space:nowrap}
.pv .app:not(.room) .gw h2{font-family:var(--display);font-size:1.35rem;line-height:1.2;margin:8px 0 4px;color:var(--paper);text-transform:none;letter-spacing:0}
.pv .app:not(.room) .gw p{margin:0;opacity:.85;font-size:.92rem}
.pv .app:not(.room) .gw-acts{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;margin-top:16px}   /* every button the same width, two or three (dim, 28 Oct 2026) */
.pv .app:not(.room) .gw-b{min-width:0;text-align:center;line-height:1.15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:12px;padding:8px 4px;min-height:44px;font-family:var(--display);font-weight:700;font-size:.84rem;color:var(--paper);text-decoration:none;border:1px solid color-mix(in srgb,var(--paper) 30%,transparent)}
.pv .app:not(.room) .gw-b.main{background:var(--paper);color:var(--fg);border-color:var(--paper)}
.pv .app:not(.room) .gw-b svg{width:17px;height:17px;flex:none}
.pv .app:not(.room) .gw-form{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--paper) 18%,transparent);font-size:.86rem}
.pv .app:not(.room) .gw-form > span:first-child{opacity:.75;flex:1}
.pv .app:not(.room) .gw-wl{display:inline-flex;gap:4px}
.pv .app:not(.room) .gw-wl i{font-style:normal;width:22px;height:22px;border-radius:6px;display:inline-grid;place-items:center;font-family:var(--display);font-weight:800;font-size:.75rem;border:1px solid color-mix(in srgb,var(--paper) 40%,transparent)}
.pv .app:not(.room) .gw-wl i.w{background:var(--ok);border-color:var(--ok);color:#fff}
.pv .app:not(.room) .gw-wl i.l{background:var(--alert);border-color:var(--alert);color:#fff}
.pv .app:not(.room) .gw-form b{font-family:var(--display)}
.pv .app:not(.room) .gw-tiles{display:grid;gap:8px;margin:0 0 16px}
.pv .app:not(.room) .gw-t{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 4px 8px;text-align:center;color:var(--fg);text-decoration:none;min-width:0}
.pv .app:not(.room) .gw-t svg{width:22px;height:22px}
.pv .app:not(.room) .gw-t b{font-family:var(--display);font-size:.84rem;line-height:1.15}
.pv .app:not(.room) .gw-t small{font-size:.75rem;color:var(--muted);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pv .app:not(.room) .anon + .nb{margin-top:16px}

/* the committee scoreboard (dim's option A, 28 Oct 2026) */
.pv .cmh-k{margin:2px 0 0;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv .cmh-h{margin:2px 0 12px;font-family:var(--display);font-size:1.45rem;font-weight:700;text-transform:none;letter-spacing:0;border:0;padding:0}
.pv .cms{padding:8px 12px}
.pv .cms .cmt-spw{position:relative;display:block;margin:auto 4px 0 0;border-top:8px solid transparent;box-sizing:content-box;height:24px;color:var(--fg)}
.pv .cms .cmt-sp{display:block;width:100%;height:24px;overflow:visible}
.pv .cms .cmt-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:currentColor;transform:translate(-50%,-50%)}
.pv .cms .cmt-sc{display:flex;justify-content:space-between;gap:4px;margin-top:4px;font-size:12px;line-height:1.2;color:var(--muted)}
.pv .cms .cmt-sc span:nth-child(2){opacity:.8}
.pv .cms .cms-up{color:var(--good)} .pv .cms .cms-dn{color:var(--alert)}
.pv .cms .cms-few{font-size:1.05rem}
.pv .cmh-sec{margin-top:24px}
.pv .cmh-sec > h2{margin:0 0 8px}
.pv .cmt.cmn{flex-direction:row;align-items:center;gap:12px;padding:12px 16px;border:0;border-radius:0;background:transparent}
.pv .cmt.cmn + .cmt.cmn{border-top:1px solid var(--line-soft)}
.pv .cmt.cmn:hover{background:var(--surface-2)}
.pv .cmt.cmn .cmt-v{font-size:1.2rem;flex:none}
.pv .cmt.cmn .cmt-s{display:block;font-size:.84rem;white-space:normal}
.pv .cmt.cmn.hot{box-shadow:inset 4px 0 0 var(--alert)}
.pv .cmt.cmn.hot::after{display:none}
.pv .cmt-team{cursor:default}
.pv .cmt-team:hover{background:transparent}
.pv .cmt-wl{display:inline-flex;gap:4px;flex:none}
.pv .cmt-wl i{font-style:normal;width:22px;height:22px;border-radius:6px;display:inline-grid;place-items:center;font-family:var(--display);font-weight:800;font-size:.75rem;border:1px solid var(--line);color:var(--muted)}
.pv .cmt-wl i.w{background:var(--ok);border-color:var(--ok);color:#fff}
.pv .cmt-wl i.l{background:var(--alert);border-color:var(--alert);color:#fff}
.pv .cmt-pos{flex:none;min-width:34px;text-align:right;font-family:var(--display);font-weight:800}

/* the parents home as one simple page (dim picked A, 28 Oct 2026): no bottom bar on a phone, bigger type, one game card */
@media (max-width:900px){.pv.pp .nav{display:none}
  .pv.pp .main .wrap{padding-bottom:calc(24px + env(safe-area-inset-bottom,0))}}
.pv.pp h1.pp-homeh{font-size:1.7rem}
.pv.pp .pp-next{background:var(--surface);border:2px solid var(--fg);border-radius:18px;padding:16px;margin:0 0 8px}
.pv.pp .pp-next small{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv.pp .pp-next .w{font-family:var(--display);font-weight:800;font-size:1.4rem;line-height:1.2;margin:8px 0 4px}
.pv.pp .pp-next .v{font-size:1.1rem;margin:0 0 2px}
.pv.pp .pp-next .m{color:var(--muted);font-size:1rem;margin:0}
.pv.pp .pp-two{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.pv.pp .pp-two a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:14px;padding:12px 8px;font-family:var(--display);font-weight:700;font-size:1rem;border:1px solid var(--line);color:var(--fg);text-decoration:none;background:var(--surface)}
.pv.pp .pp-two a.main{background:var(--fg);color:var(--paper);border-color:var(--fg)}
.pv.pp .pp-two svg{width:20px;height:20px;flex:none}
.pv.pp .pp-link{margin:8px 0 24px}
.pv.pp .pp-ask{padding:16px;margin:0 0 8px}
.pv.pp .pp-ask h2{font-family:var(--display);font-size:1.25rem;margin:0 0 4px;text-transform:none;letter-spacing:0;border:0;padding:0}
.pv.pp .pp-ask p{margin:0 0 16px;color:var(--muted);font-size:1.02rem}
.pv.pp .pp-btn{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:14px;background:var(--fg);color:var(--paper);font-family:var(--display);font-weight:700;font-size:1rem;text-decoration:none}
.pv.pp .pp-club{margin:32px 0 16px;padding-top:24px;border-top:1px solid var(--brass-mark)}   /* not .pp-h2: that names a tile colour on the Resources page */
.pv.pp .pp-evs{margin:0 0 8px}
.pv.pp .pp-ev{display:flex;align-items:center;gap:16px;padding:16px 16px}
.pv.pp .pp-ev + .pp-ev{border-top:1px solid var(--line-soft)}
.pv.pp .pp-ev .t{flex:1;min-width:0}
.pv.pp .pp-ev .t b{display:block;font-family:var(--display);font-size:1.05rem}
.pv.pp .pp-ev .t span{color:var(--muted);font-size:.95rem}
.pv.pp .pp-evb{flex:none;border-radius:999px;background:var(--fg);color:var(--paper);padding:8px 16px;font-family:var(--display);font-weight:700;font-size:.85rem;text-decoration:none}
.pv.pp .pp-evs + .pp-doors,.pv.pp .pp-link + .pp-doors{margin-top:24px}

/* more room on the parents page (dim, 28 Oct 2026: "too tight") */
.pv.pp h1.pp-homeh{margin:4px 0 0}
.pv.pp .pp-homeh + .pp-fol{margin:12px 0 32px}
.pv.pp .pp-next{margin:0 0 12px;padding:24px}
.pv.pp .pp-two{margin-top:24px}
.pv.pp .pp-link{margin:12px 0 32px}
.pv.pp .pp-club{margin:40px 0 16px;padding-top:24px}
.pv.pp .pp-ev{padding:16px 16px;gap:16px}
.pv.pp .pp-evs{margin:0 0 12px}
.pv.pp .pp-evs + .pp-doors,.pv.pp .pp-link + .pp-doors{margin-top:32px}
.pv.pp .pp-doors .fy-row{padding:16px 16px}
.pv.pp .pp-safe{margin-top:24px}
.pv.pp .pp-teams button{padding:16px 16px}
.pv.pp .pp-teams + .note{margin-top:16px}
.pv.pp .pp-ev > :first-child{flex:none;width:40px;text-align:center}
.pv.pp .pp-pick h1{margin:8px 0 12px}
.pv.pp .pp-pick .lede{margin:0 0 24px}
.pv.pp .card.pp-ask{display:flex;flex-direction:row;align-items:center;text-align:left;gap:16px;padding:16px 16px;margin:0 0 12px}
.pv.pp .pp-ask .t{flex:1;min-width:0}
.pv.pp .pp-ask .t b{display:block;font-family:var(--display);font-size:1.05rem}
.pv.pp .pp-ask .t span{color:var(--muted);font-size:.95rem}
.pv.pp .pp-pills{margin:0 0 12px}   /* the Club pills: the player page's Fixture and All events buttons (.wo2-tab), three across (dim, 3 Nov 2026) */
.pv.pp .app .wo2-tab[aria-current="page"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}   /* the one open, by the selection rule */
.pv.pp .app .wo2-tab[aria-current="page"] svg{color:var(--on-brass)}
.pv.pp .app button.wo2-tab{cursor:pointer}
.pv.pp .app .wo2-tab[aria-pressed="true"]{background:var(--brass-mark);border-color:var(--brass-mark);color:var(--on-brass)}   /* the picked preview on the home, by the selection rule */
.pv.pp .app .wo2-tab[aria-pressed="true"] svg{color:var(--on-brass)}
.pv.pp .pp-see{margin:8px 0 0;justify-content:flex-end;text-align:right}   /* See all on the right (dim, 4 Nov 2026) */
.pv.pp .pp-fol{justify-content:flex-start}   /* Showing, then the team drop down beside it (dim, 4 Nov 2026) */
.pv.pp .pp-fol select{font:inherit;font-family:var(--display);font-weight:700;font-size:.95rem;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:999px;min-height:38px;padding:4px 32px 4px 16px;max-width:100%;min-width:0;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}
.pv.pp .pp-fol select:focus-visible{outline:2px solid var(--brass-mark);outline-offset:2px}
.pv.pp .pp-homeh + .pp-fol select{padding-top:4px;padding-bottom:4px}
.pv.pp .pp-evb.pp-evc{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;background:var(--surface);color:var(--fg);border:1px solid var(--line)}   /* Calendar on a free event: a round icon button, the size of Call on the contacts (dim, 4 Nov 2026) */
.pv.pp .pp-evc svg{width:18px;height:18px}
.pv.pp h1 + .lede + .pp-pills,.pv.pp .pp-fol + .pp-pills{margin:0 0 24px}
.pv.pp .pp-askb{flex:none;padding:8px 16px;border-radius:99px;background:var(--fg);color:var(--paper);font-family:var(--display);font-weight:700;font-size:.92rem;text-decoration:none}

/* Showing [team] on the parents page reads clearly at a glance (dim, 28 Oct 2026) */
.pv.pp .pp-fol{font-size:1.02rem}
.pv.pp .pp-fol b{font-size:1.18rem}
.pv.pp .pp-fol button,.pv.pp .pp-homeh + .pp-fol button{font-size:.88rem;padding:8px 12px}
/* physio for All teams: one slide a team, swiped across (dim, 29 Oct 2026) */
.pv .ph-tdeck .cm-slide{min-height:0;padding:0;border:0;background:none;gap:12px}
.pv .ph-tdeck .cm-slide > .card{margin:0}
.pv .ph-tname{margin:2px 2px 0;font-family:var(--display);font-weight:800;font-size:1.1rem}
.pv .ph-teams{display:grid;gap:8px}

/* nothing under 12px, and the result pills and Call 000 read in dark mode too (UI audit, 29 Oct 2026) */
.pv p.k small{font-size:.75rem}
:root[data-theme="dark"] .pv .gw-wl i.w,:root[data-theme="dark"] .pv .gw-wl i.l,:root[data-theme="dark"] .pv .cmt-wl i.w,:root[data-theme="dark"] .pv .cmt-wl i.l,:root[data-theme="dark"] .sh-f5 i.w,:root[data-theme="dark"] .sh-f5 i.l,:root[data-theme="dark"] .sh-wl i.w,:root[data-theme="dark"] .sh-wl i.l,:root[data-theme="dark"] .pv .app:not(.room) .hl0 a{color:#10161F}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .pv .gw-wl i.w,:root:not([data-theme="light"]) .pv .gw-wl i.l,:root:not([data-theme="light"]) .pv .cmt-wl i.w,:root:not([data-theme="light"]) .pv .cmt-wl i.l,:root:not([data-theme="light"]) .sh-f5 i.w,:root:not([data-theme="light"]) .sh-f5 i.l,:root:not([data-theme="light"]) .sh-wl i.w,:root:not([data-theme="light"]) .sh-wl i.l,:root:not([data-theme="light"]) .pv .app:not(.room) .hl0 a{color:#10161F} }
/* the notice board as one list (dim's option A, 2 Nov 2026): rows like For you, the edge by kind, the team pill on the right in the edge's colour */
.pv .app:not(.room) .nb-list{margin-top:12px}
.pv .app:not(.room) .nb-list .fy-row{padding:12px 16px 12px 16px;gap:8px}
.pv .app:not(.room) .nb-list .fy-t b{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv .app:not(.room) .nb-list .fy-t small{font-size:.82rem}
.pv .app:not(.room) .nb-row .nt-to{flex:none;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;letter-spacing:.04em;padding:1px 8px}
.pv .app:not(.room) .nb-row.k-urgent{box-shadow:inset 4px 0 0 var(--alert)}
.pv .app:not(.room) .nb-row.k-physio{box-shadow:inset 4px 0 0 var(--ok)}
.pv .app:not(.room) .nb-row.k-physio .nt-to{color:var(--ok);border-color:var(--ok)}
.pv .app:not(.room) .nb-row.k-team{box-shadow:inset 4px 0 0 var(--brass-mark)}
.pv .app:not(.room) .nb-row.k-team .nt-to{color:var(--brass);border-color:var(--brass-mark)}
.pv .app:not(.room) .nb-row.k-training{box-shadow:inset 4px 0 0 var(--info)}
.pv .app:not(.room) .nb-row.k-training .nt-to{color:var(--info);border-color:var(--info)}
.pv .app:not(.room) .nb-row.k-other{box-shadow:inset 4px 0 0 color-mix(in srgb,var(--muted) 45%,var(--line))}
.pv .app:not(.room) .nb-row.k-other .nt-to{color:var(--muted);border-color:color-mix(in srgb,var(--muted) 45%,var(--line))}
.pv .app:not(.room) .nb-all .fy-t b{font-size:.86rem;color:var(--brass)}

/* ── the UI review of 2 Nov 2026, players portal ── */
/* pick your team once, the first time the page opens, as a parent does */
.pv.tp .tp-pick .k{margin:0;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pv.tp .tp-pick h1{margin:8px 0 12px}
.pv.tp .tp-pick .lede{margin:0 0 24px}
.pv.tp .tp-teams{display:flex;flex-direction:column;margin:0 0 16px}
.pv.tp .tp-teams button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 16px;border-top:1px solid var(--line-soft);font-family:var(--display);font-weight:600}
.pv.tp .tp-teams button:first-child{border-top:0}
.pv.tp .tp-teams button:hover,.pv.tp .tp-teams button:focus-visible{background:var(--surface-2)}
.pv.tp .tp-teams i{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;border:1.5px solid var(--line)}
.pv.tp .tp-teams + .note{margin-top:16px}
.pv.tp .tp-pick .note a{color:var(--brass)}
/* What's on: Fixture and All events as two buttons above the list */
.pv .app:not(.room) .wo2-top{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 8px}
.pv .app:not(.room) .wo2-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg);text-decoration:none;font-family:var(--display);font-size:.88rem;font-weight:600}
.pv .app:not(.room) .wo2-tab svg{width:16px;height:16px;color:var(--brass)}
.pv .app:not(.room) .wo2-tab:hover{border-color:var(--brass-mark)}
/* a For you row keeps its icon circle while it is pressed */
.pv .app:not(.room) .fy-row:hover .fy-ic,.pv .app:not(.room) .fy-row:active .fy-ic{background:var(--surface)}
/* Support network: the name and the line start where the chip text starts */
.pv .app:not(.room) .nw6-m > b,.pv .app:not(.room) .nw6-m > small{padding-left:8px}
/* Helplines: a line under each heading, then one light card a contact, like the phone's own contacts */
.pv .app:not(.room) .hl2-r{margin:0 12px 8px;padding:12px 16px;border-top:0;border-radius:12px;background:var(--surface-2)}
.pv .app:not(.room) .hl2 summary + .hl2-r{margin-top:2px}
.pv .app:not(.room) .hl2-sub{margin:8px 12px 8px;padding:8px 2px 8px;border-top:0;border-bottom:1px solid var(--line)}
.pv .app:not(.room) .hl2-fine{margin-top:16px;font-size:.78rem;color:var(--muted)}
/* the game card: the opponent on top */
.pv .app:not(.room) .gw h2 .fx-vs{font-size:.95rem;font-weight:500;opacity:.75;margin-right:2px}
/* the team selection: depth between the ground, the names and the page; FOL like B and HB; Interchange and Emergencies in their own bubbles */
.pv .ts-field{box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--ts-l) 45%,transparent),0 18px 30px -16px rgba(0,0,0,.7),0 2px 6px rgba(0,0,0,.25)}
.pv .ts-field span{opacity:.3}
.pv .ts-chip{box-shadow:0 2px 6px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.08)}
.pv .ts-tab,.pv .ts-eline .ts-tab{font-size:.62rem;letter-spacing:-.01em;padding:0 2px}
.pv .ts-row.ts-fol{margin-top:23.5px}   /* the ground is 320px with 16px padding and five 26px rows, so the rows sit 39.5px apart; less the 16px padding (the 4px under the ground collapses into this margin), FOL lands the same distance below F (dim, 2 Nov 2026) */
.pv .ts-bench{margin-top:8px;padding:8px 8px 8px;border-radius:14px}
.pv .ts-bench .ts-h{margin:0 0 8px}
.pv .ts-bench.ts-int{background:color-mix(in srgb,var(--ts-l) 22%,transparent);border:1px solid color-mix(in srgb,var(--ts-l) 55%,transparent)}
.pv .ts-bench.ts-int .ts-h{color:var(--ts-l)}
.pv .ts-bench.ts-emg{background:color-mix(in srgb,var(--alert) 22%,transparent);border:1px solid color-mix(in srgb,var(--alert) 60%,transparent)}
.pv .ts-bench.ts-emg .ts-h{color:var(--alert)}
.pv .ts-bench .ts-grid .ts-chip{border:0}

/* Section titles carry a small outlined icon in a ring of the club's colour (UI review, 2 Nov 2026, dim picked A) */
.pv h2:has(> .si){display:flex;align-items:center;gap:8px}
.pv .si{width:30px;height:30px;border-radius:50%;border:1px solid var(--brass-mark);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--brass)}
.pv .si svg{width:16px;height:16px;display:block}
/* the same ring on every other portal's titles, set in frame.js (dim, 3 Nov 2026); on the smaller staff titles it
   overhangs the line, so the spacing above and below the title stays as it was */
.pv h2.sh-h > .si,.pv h2.res-head > .si{margin:0}   /* the ring is part of the title, so the six spacing sizes are measured from the ring itself */
.pv h2:has(> .si) > .pill,.pv h2:has(> .si) > span:not(.si){flex:none}

/* every event and game: the time on one row, the place on the row below, each with its small icon (dim, 2 Nov 2026) */
.pv .app:not(.room) .ev-row .t .ev-meta,.pv .app:not(.room) .wo2-m .ev-meta{display:flex;flex-direction:column;gap:2px;margin-top:2px;white-space:normal;font-size:.82rem;color:var(--muted)}
.pv .app:not(.room) .ev-row .t .ev-meta span,.pv .app:not(.room) .wo2-m .ev-meta span{display:inline-flex;align-items:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;color:inherit}
.pv .app:not(.room) .ev-row .t .ev-meta span span,.pv .app:not(.room) .wo2-m .ev-meta span span{display:inline;overflow:visible}
.pv .app:not(.room) .ev-row .t .ev-meta svg,.pv .app:not(.room) .wo2-m .ev-meta svg{width:13px;height:13px;flex:none;color:var(--muted)}
.pv .app:not(.room) .ev-row .more{padding-top:2px}
.pv .app:not(.room) .hl2-fine + .hl2-fine{margin-top:8px}
/* the committee home dials (dim picked mock C, 3 Nov 2026): three rings, then Resources used on a row of its own */
.pv .cmd-row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pv .cmt.cmd{align-items:center;text-align:center;padding:8px 8px 8px;gap:2px}
.pv .cmd .cmt-k{letter-spacing:.06em;white-space:nowrap}
.pv .cmd-ring{position:relative;display:grid;place-items:center;width:76px;height:76px;margin:4px auto 2px}
.pv .cmd-ring svg{position:absolute;inset:0;width:76px;height:76px;transform:rotate(-90deg)}
.pv .cmd-ring circle{fill:none;stroke-width:7}
.pv .cmd-ring .bg{stroke:var(--sunk)}
.pv .cmd-ring .on{stroke:var(--brass-mark);stroke-linecap:round}
.pv .cmd-ring .on.none{stroke:none}
.pv .cmd .cmt-v{position:relative;font-size:1.15rem;line-height:1.1;white-space:nowrap;max-width:60px;overflow:visible}
.pv .cmd .cmt-v .u{font-size:.7rem}
.pv .cmd .cmt-v .cms-few{font-size:.72rem;white-space:normal;line-height:1.1;display:block}
.pv .cmd .cmt-s{font-size:.75rem;line-height:1.25}
.pv .cmd.lk .cm-lock-tag{align-self:center;margin:4px 0 0}
.pv .cmt.cmw{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
.pv .cmt.cmw .cmt-t{display:flex;flex-direction:column;gap:1px;min-width:0}
.pv .cmt.cmw .cmt-v{flex:none;max-width:48%;font-size:1.2rem}
.pv .cmt-locked.two{grid-template-columns:repeat(2,1fr)}
/* the injured players card from the physio's log and the check-ins month by month (dim, 3 Nov 2026) */
.pv .cm-h3{margin:0;font-family:var(--display);font-size:.98rem;font-weight:700;color:var(--fg)}
.pv .cm-rule{border:0;border-top:1px solid var(--line-soft);margin:4px 0 2px;width:100%}
.pv .cm-big.sm{font-size:1.8rem}
.pv .cm-split{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pv .cm-split > div{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:10px;padding:8px 8px}
.pv .cm-split b{display:block;font-family:var(--display);font-weight:700;font-size:1.3rem;color:var(--fg)}
.pv .cm-split span{font-size:.8rem;color:var(--muted)}
/* social events and volunteers as boxes (dim picked the boxes layout, 3 Nov 2026): two across, a number each, the bars in a wide box */
.pv .cm-bxs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pv .cm-bx{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.pv .cm-bx.wide{grid-column:1 / -1}
.pv .cm-bx .k{font-family:var(--display);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv .cm-bx .v{font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1.15;color:var(--fg);overflow-wrap:anywhere}
.pv .cm-bx .v .u{font-size:.85rem;font-weight:600;color:var(--muted)}
.pv .cm-bx .v .t{font-size:1.15rem}
.pv .cm-bx .s{font-size:.78rem;line-height:1.3;color:var(--muted)}
.pv .cm-bx .cm-hb{margin-top:8px}
.pv .cm-mc{display:block;width:100%;height:auto;font-family:var(--body)}
.pv .cm-mc .g line{stroke:var(--line-soft)}
.pv .cm-mc .g text{font-size:10px;fill:var(--muted)}
.pv .cm-mc .m{font-size:10.5px;fill:var(--muted);text-anchor:middle}
.pv .cm-mc .ty{fill:none;stroke:var(--brass-mark);stroke-width:3;stroke-linejoin:round}
.pv .cm-mc .ly{fill:none;stroke:var(--chart-muted);stroke-width:2;stroke-dasharray:4 4}
.pv .cm-mc circle{fill:var(--surface);stroke:var(--brass-mark);stroke-width:2}
.pv .cm-mc circle.end{fill:var(--brass-mark)}
.pv .cm-mc .pk{font-size:11px;font-weight:700;fill:var(--fg);text-anchor:middle}
.pv .cm-mleg{display:flex;gap:16px;font-size:.84rem;color:var(--fg-2)}
.pv .cm-mleg i{display:inline-block;width:18px;height:0;border-top:3px solid var(--brass-mark);vertical-align:4px;margin-right:8px}
.pv .cm-mleg i.ly{border-top:2px dashed var(--chart-muted)}

/* web browser sweep (dim, 3 Nov 2026): on a computer, anything that floats at the foot of the screen sits over the page
   column, never half over the side rail */
@media (min-width:901px){
.pv .rs-veil.rs-float{left:calc(246px + 32px);right:32px}
.pv #toast{left:calc(50% + 123px)}
.pv .app:not(.tabbed) main.sh-one .sh-go{left:246px}
}
/* on a tablet the page keeps a reading width in the middle, and the bottom tabs stay together under it, instead of
   stretching edge to edge (dim, 3 Nov 2026) */
@media (min-width:641px) and (max-width:900px){
.pv .wrap,.pv .app.room .wrap{max-width:720px}
.pv .nav{padding-inline:max(8px, calc((100% - 560px) / 2))}
}
/* a pill beside a section title (Round 1 Ready on a locked committee section) folds onto two lines on a narrow phone
   rather than running off the screen (dim, 3 Nov 2026) */
.pv h2:has(> .si) > span.cm-lock-tag{flex:0 1 auto;min-width:0;white-space:normal;text-align:center;line-height:1.15}
/* a table too wide for a phone scrolls inside its card, never cut off (league view) */
.pv .card.flush:has(> table){overflow-x:auto}
/* a week by week chart on a narrow phone labels every second week, so the dates never run into each other */
@media (max-width:560px){.pv .axis span:nth-child(even){visibility:hidden}}
/* a deck of cards swiped across on a phone shows two whole cards side by side on a computer, never a card cut off at
   the right edge (physio timetable for every team, the committee decks) */
@media (min-width:901px){.pv .cm-deck > .cm-slide{flex-basis:calc((100% - 12px) / 2);scroll-snap-align:start}}
/* the sample club bar, one look in every browser (dim, 3 Nov 2026): the same 12px inside on every side, and the two
   drop downs drawn by the app (own chevron, one height) so Chrome, Safari and Edge on a computer all show the same
   box, never one jammed against the right edge */
.pv .demo-bar{padding:12px;gap:8px 24px;align-items:center}
.pv .demo-bar .demo-pick{gap:8px}
.pv .demo-bar .demo-tier{gap:8px;font-weight:500}
.pv .demo-bar .demo-tier select{-webkit-appearance:none;appearance:none;min-height:36px;padding:4px 32px 4px 12px;border-radius:8px;border:1px solid var(--line);background-color:var(--surface);color:var(--fg);font-family:var(--display);font-weight:600;font-size:.84rem;line-height:1.2;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23888' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px}
.pv .demo-bar .demo-tier select:focus-visible{outline:2px solid var(--brass-mark);outline-offset:1px}
@media (min-width:641px){.pv .demo-bar .demo-tier select{min-width:150px}}
@media (max-width:900px){.pv .demo-bar{padding:8px 12px}.pv .demo-bar .demo-tier select{font-size:16px}}
/* the league view in the app's design (dim, 3 Nov 2026): a list card runs its rows edge to edge, as on the committee
   page, and a club's line wraps under its name on a phone rather than being cut short */
.pv .card.flush.cmt-list{padding:0}
.pv .lg-row .cmt-t small{white-space:normal}
