body i{cursor:pointer}body .card{margin:0.5rem auto;width:15rem}body .card i{float:right;margin:0.3rem}body .card .list-group-item:first-of-type,body .card .card-header{font-weight:bold}body .text-right{text-align:right}body .registration .list-group-item{font-size:large;overflow:hidden}body .registration .list-group-item i{display:none}body .registration .list-group-item.active{display:flex;align-items:center;justify-content:space-between;min-width:fit-content}body .registration .list-group-item.active i{line-height:1em;display:inherit}body #tables{gap:0.75rem}body #tables .card{border:1px solid var(--club-border);border-radius:0.6rem;overflow:hidden;box-shadow:var(--club-shadow)}body #tables .card .card-header{background:var(--club-green);color:#fff;border-bottom:0}body #tables .card .list-group-item:first-of-type{font-weight:normal}body #tables .card.scored{border-color:var(--club-green-light);box-shadow:0 0 0 2px var(--club-green-light),var(--club-shadow)}body #tables .card.scored .list-group-item{background:var(--club-green-50)}body #tables .badge{background:var(--club-green);color:#fff;min-width:1.8em}body #tables .badge:empty{display:none}body #scoreboard{font-weight:bold}body #scoreboard .first-male,body #scoreboard .first-female{color:var(--club-blue)}body #scoreboard .red-lantern{color:var(--club-red)}body #scoreboard .first{color:var(--club-green)}#public .public-bar{display:flex;align-items:center;gap:1rem;justify-content:flex-end;margin-bottom:0.75rem;font-size:0.85rem}#public .tv-title,#public .clock{display:none}#public .status{color:var(--club-muted);display:flex;align-items:center;gap:0.4rem}#public .status-dot{width:0.6rem;height:0.6rem;border-radius:50%;background:var(--club-green-light);display:inline-block}#public .status.offline{color:var(--club-red);font-weight:bold}#public .status.offline .status-dot{background:var(--club-red)}#public .toggle-tv.active{background:var(--club-green);color:#fff;border-color:var(--club-green)}#public #content{transition:opacity 0.5s ease}#public #content.fading{opacity:0}#public .scoreboard-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:0.75rem}#public .scoreboard-title h2{font-size:1.35rem;margin:0}#public .scoreboard-wrap{background:#fff;border-radius:0.6rem;box-shadow:var(--club-shadow)}#public #scoreboard{margin:0;font-weight:normal}#public #scoreboard thead th{position:sticky;top:0;z-index:1;background:var(--club-green);color:#fff;border:0;font-weight:600}#public #scoreboard thead th:first-child{border-top-left-radius:0.6rem}#public #scoreboard thead th:last-child{border-top-right-radius:0.6rem}#public #scoreboard tbody tr:nth-child(even) td{background:var(--club-row-alt)}#public #scoreboard td{vertical-align:middle;color:var(--club-text)}#public #scoreboard .col-rank{width:4.5em}#public #scoreboard .col-player{font-weight:600}#public #scoreboard .col-score{font-weight:bold;color:var(--club-green)}#public .rank{display:inline-flex;align-items:center;justify-content:center;width:2em;height:2em;border-radius:50%;background:var(--club-green-50);color:var(--club-green);font-weight:bold;font-size:0.9em}#public .rank-1{background:var(--club-gold);color:#fff}#public .rank-2{background:#a7adb3;color:#fff}#public .rank-3{background:#b8794a;color:#fff}#public .pill{display:inline-block;font-size:0.7em;font-weight:600;padding:0.15em 0.6em;border-radius:1em;vertical-align:middle;margin-left:0.3em;white-space:nowrap}#public .pill-blue{background:#e3ecfb;color:var(--club-blue)}#public .pill-red{background:#fbe4e2;color:var(--club-red)}#public .pill-muted{background:#eceeed;color:var(--club-muted)}#public .next-playday{margin-right:auto;color:var(--club-green-dark)}#public .next-playday i{color:var(--club-green);margin-right:0.25em}#public .public-waiting{text-align:center;padding:4rem 1rem;color:var(--club-green)}#public .public-waiting .suits{font-size:3rem;letter-spacing:0.3em;color:var(--club-text)}#public .public-waiting .suits .red{color:var(--club-red)}#public .tables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:0.75rem}#public .tables-grid .card{width:auto;margin:0}#public .table-card .card-header{display:flex;align-items:center;justify-content:space-between}#public .table-card .card-header i{float:none;margin:0;cursor:default}#public .table-card .list-group-item{display:flex;align-items:center;justify-content:space-between;gap:0.5em}#public .table-card .player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:575px){#public .public-bar{flex-wrap:wrap;font-size:0.75rem}#public .status:not(.offline) .status-text{display:none}#public .next-playday{flex:1 1 0;min-width:0;font-size:0.85rem}#public .scoreboard-title h2{font-size:1.1rem}#public .scoreboard-wrap{overflow-x:auto}#public #scoreboard td,#public #scoreboard th{padding:0.4rem 0.35rem;font-size:0.85rem}#public #scoreboard .col-rank{width:2.5em}}body.tv>header,body.tv>footer{display:none}body.tv main,body.tv .container-fluid{overflow:visible;background:transparent;box-shadow:none;padding:0;margin:0}body.tv #public{padding:1vh 1.5vw;font-size:clamp(16px,1.6vw,34px)}body.tv #public .public-bar{justify-content:space-between;background:var(--club-green);color:#fff;border-radius:0.6rem;padding:0.4em 0.8em;font-size:0.8em}body.tv #public .tv-title{display:block;font-weight:bold;font-size:1.3em}body.tv #public .clock{display:block;font-weight:bold;font-size:1.3em}body.tv #public .status{color:rgba(255,255,255,0.85)}body.tv #public .status.offline{color:#fff;background:var(--club-red);padding:0.1em 0.6em;border-radius:1em}body.tv #public .status.offline .status-dot{background:#fff}body.tv #public .toggle-tv{color:#fff;border-color:rgba(255,255,255,0.5)}body.tv #public .hide-tv{display:none}body.tv #public .scoreboard-title h2{font-size:1.3em}body.tv #public .next-playday{color:#fff;font-size:1.1em;margin-left:1em}body.tv #public .next-playday i{color:#fff}@media (max-width:991px){body.tv #public .next-playday{display:none}}body.tv #public #scoreboard td,body.tv #public #scoreboard th{padding:0.35em 0.6em}body.tv #public .tables-grid{grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));grid-auto-rows:var(--card-h,auto);gap:12px;font-size:var(--card-font,1em)}body.tv #public .tables-grid .card{height:100%;display:flex;flex-direction:column}body.tv #public .tables-grid .card-header{padding:0.3em 0.6em}body.tv #public .tables-grid .list-group{flex:1}body.tv #public .tables-grid .list-group-item{flex:1;padding:0.2em 0.6em}