
.tso-attendance{width:100%;max-width:none;margin:0;padding:20px 0;font-family:Arial,Helvetica,sans-serif;color:#fff;box-sizing:border-box}
.tso-attendance *{box-sizing:border-box}
.tso-attendance>header{background:linear-gradient(135deg,#071d33,#003087);color:#fff;border:1px solid rgba(255,215,0,.55);border-radius:18px;padding:28px;margin-bottom:22px}
.tso-attendance>header span{color:#ffd700;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.tso-attendance>header h1{color:#ffd700;margin:.25em 0}
.tso-attendance h2{color:#ffd700}
.tso-att-card{border:1px solid rgba(255,215,0,.45);border-radius:16px;padding:20px;background:linear-gradient(135deg,#0b2944,#102f55);color:#fff;box-shadow:0 8px 24px rgba(7,29,51,.18);margin-bottom:24px}
.tso-att-card small{color:#d7e2f0}
.tso-att-card h2{margin:.35em 0 .75em;color:#ffd700}
.tso-att-card form{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.tso-att-card label{font-weight:700;color:#fff;min-width:260px;flex:1 1 320px}
.tso-att-card input[type="number"]{display:block;width:100%;max-width:360px;padding:12px 14px;margin-top:7px;border:1px solid #b9c7d8;border-radius:9px;background:#fff;color:#071d33;font:inherit}
.tso-att-card button,.tso-att-card button[type="submit"]{appearance:none;background:#ffd700!important;color:#071d33!important;border:1px solid #ffd700!important;border-radius:9px;padding:12px 20px;font-weight:800;line-height:1.2;min-height:44px;box-shadow:none;text-shadow:none!important}
.tso-att-card button:hover,.tso-att-card button:focus{background:#ffe44d!important;color:#071d33!important;border-color:#ffe44d!important;outline:2px solid #fff;outline-offset:2px}
.tso-att-table{overflow-x:auto;border:1px solid rgba(255,215,0,.35);border-radius:14px;background:#0a223a;color:#fff}
.tso-att-table>div{display:grid;grid-template-columns:64px minmax(180px,1fr) 82px 105px 82px;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.11);align-items:center;min-width:610px}
.tso-att-table>div:last-child{border-bottom:0}
.tso-att-table .head{background:#071d33;color:#fff;font-weight:700}
.tso-att-table small{display:block;color:#c8d5e5}
.tso-att-note{font-size:.95em;color:#d5dfeb;max-width:900px}
@media(max-width:760px){
 .tso-attendance{padding:14px 0}
 .tso-attendance>header,.tso-att-card{padding:18px}
 .tso-att-card form{display:block}
 .tso-att-card label{display:block;min-width:0}
 .tso-att-card input[type="number"]{max-width:none}
 .tso-att-card button,.tso-att-card button[type="submit"]{width:100%;margin-top:12px}
}

/* Rules links */
.tso-att-rules-link{display:inline-flex;align-items:center;gap:.35rem;background:#ffd700!important;color:#071d33!important;border:1px solid #ffd700;border-radius:999px;padding:.65rem 1rem;font-weight:800;text-decoration:none!important;line-height:1.2}
.tso-att-rules-link:hover,.tso-att-rules-link:focus{background:#fff1a8!important;color:#071d33!important}
.tso-att-rules .tso-att-card h2{margin-top:1.25rem}.tso-att-rules .tso-att-card h2:first-child{margin-top:0}


/* v5.5.4 — full-width attendance canvas and contrast hardening. */
.tso-attendance-page .tso-clubhouse-wrap{width:calc(100% - 24px)!important;max-width:none!important;padding:0 12px!important}
.tso-clubhouse-page a.tso-att-rules-link,
.tso-clubhouse-page a.tso-att-rules-link:visited{background:#ffd700!important;color:#071d33!important;border-color:#ffd700!important;-webkit-text-fill-color:#071d33!important;text-shadow:none!important}
.tso-clubhouse-page a.tso-att-rules-link:hover,
.tso-clubhouse-page a.tso-att-rules-link:focus{background:#fff1a8!important;color:#071d33!important;-webkit-text-fill-color:#071d33!important}
.tso-clubhouse-page .tso-att-card button[type="submit"]{background:#ffd700!important;color:#071d33!important;-webkit-text-fill-color:#071d33!important;border-color:#ffd700!important;text-shadow:none!important}
@media(max-width:760px){
 .tso-attendance-page .tso-clubhouse-wrap{width:100%!important;padding:0 10px!important}
 .tso-attendance>header{border-radius:14px}
 .tso-att-table{border-radius:10px}
}
@media(max-width:420px){
 .tso-attendance>header,.tso-att-card{padding:15px}
 .tso-attendance>header h1{font-size:clamp(2.15rem,12vw,3.2rem)}
 .tso-att-rules-link{width:100%;justify-content:center;text-align:center}
}


/* v5.5.5 — true viewport-width attendance pages and theme-proof action contrast. */
.tso-clubhouse-page.tso-attendance-page{
 width:100vw!important;
 max-width:100vw!important;
 margin-left:calc(50% - 50vw)!important;
 margin-right:calc(50% - 50vw)!important;
 padding-left:12px!important;
 padding-right:12px!important;
 box-sizing:border-box!important;
 overflow-x:hidden;
}
.tso-clubhouse-page.tso-attendance-page>.tso-clubhouse-wrap{
 width:100%!important;
 max-width:none!important;
 margin:0!important;
 padding:0!important;
}
.tso-clubhouse-page.tso-attendance-page .tso-attendance{
 width:100%!important;
 max-width:none!important;
 margin:0!important;
}
.tso-clubhouse-page.tso-attendance-page a.tso-att-rules-link,
.tso-clubhouse-page.tso-attendance-page a.tso-att-rules-link:link,
.tso-clubhouse-page.tso-attendance-page a.tso-att-rules-link:visited{
 background:#ffd700!important;
 background-image:none!important;
 color:#071d33!important;
 -webkit-text-fill-color:#071d33!important;
 border:1px solid #ffd700!important;
 text-shadow:none!important;
 opacity:1!important;
}
.tso-clubhouse-page.tso-attendance-page a.tso-att-rules-link *,
.tso-clubhouse-page.tso-attendance-page a.tso-att-rules-link::before,
.tso-clubhouse-page.tso-attendance-page a.tso-att-rules-link::after{
 color:#071d33!important;
 -webkit-text-fill-color:#071d33!important;
}
@media(max-width:760px){
 .tso-clubhouse-page.tso-attendance-page{padding-left:8px!important;padding-right:8px!important}
}


/* v5.6.0 — positive-points attendance leaderboard. */
.tso-att-table.tso-att-points-table>div{
 grid-template-columns:64px minmax(180px,1.25fr) 78px 72px 78px 88px 88px 88px 72px 88px;
 min-width:980px;
}
.tso-att-table.tso-att-points-table>div>span:last-child{color:#ffd700;font-size:1.05em}
.tso-att-score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 18px}
.tso-att-score-grid>div{background:#071d33;border:1px solid rgba(255,215,0,.38);border-radius:12px;padding:16px;text-align:center}
.tso-att-score-grid strong{display:block;color:#ffd700;font-size:1.25rem;margin-bottom:4px}
.tso-att-score-grid span{display:block;color:#fff}
@media(max-width:760px){.tso-att-score-grid{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.tso-att-score-grid{grid-template-columns:1fr}}
