
.bottom-dock a{
  flex:1;border:0;background:none;color:var(--muted);font-size:.72rem;font-weight:600;
  padding:.45rem .15rem;display:flex;flex-direction:column;align-items:center;gap:2px;
  min-height:52px;text-decoration:none
}
.bottom-dock a .bi{font-size:1.2rem}
.bottom-dock a.active{color:var(--accent)}
.side-link{text-decoration:none;color:inherit;display:flex;align-items:center;gap:.55rem;width:100%;background:transparent;border:0;text-align:left}
.side-brand{text-decoration:none;color:inherit}
.primus-loading{
  position:fixed;right:1rem;bottom:5.5rem;z-index:2000;display:none;align-items:center;gap:.5rem;
  background:var(--surface-elevated);border:1px solid var(--line);padding:.55rem .85rem;border-radius:var(--radius);
  color:#fff;font-size:.85rem;box-shadow:var(--shadow)
}
.htmx-request.primus-loading,.htmx-request .primus-loading,body.htmx-request #htmx-indicator{display:inline-flex}
body[data-screen="event"] .bottom-dock{display:none!important}
body[data-screen="event"]{padding-bottom:72px}
@media(min-width:768px){body[data-screen="event"]{padding-bottom:32px}}
.pl-item{padding:.75rem 1rem;border-bottom:1px solid var(--line)}
.pl-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.55rem;align-items:center}
.pl-actions-group{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.pl-actions-group + .pl-actions-group{margin-left:.1rem;padding-left:.55rem;border-left:1px solid var(--line)}
#toast-host{position:sticky;top:.5rem;z-index:1050;display:flex;flex-direction:column;gap:.4rem;pointer-events:none}
#toast-host .primus-toast{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0}
.pay-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem 1rem;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:0}
.team-assign-select{min-width:7.5rem;max-width:11rem}
.pos-ico{display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;margin-left:.2rem;vertical-align:-.15em;color:var(--accent);flex:0 0 auto}
.pos-ico .bi,.pos-ico .pos-svg{font-size:1.05rem;width:1.05rem;height:1.05rem;display:block}
.pos-ico.pos-gk{color:#e8e4d9}
.pos-ico.pos-line{color:var(--accent)}
.star-rating-form{display:inline-flex;margin:0}
.star-rating{display:inline-flex;align-items:center;gap:.05rem}
.star-rating:not(.is-readonly){flex-direction:row-reverse;justify-content:flex-end}
.star-opt{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0;cursor:pointer;color:rgba(255,255,255,.28);border-radius:.35rem}
.star-opt .star-input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.star-opt .star-face{display:grid;place-items:center;font-size:1.15rem;line-height:1;pointer-events:none;transition:color .12s ease}
.star-rating:not(.is-readonly):not(:hover) .star-opt.is-on{color:#f0b429}
.star-rating:not(.is-readonly):hover .star-opt{color:rgba(255,255,255,.28)}
.star-rating:not(.is-readonly) .star-opt:hover,
.star-rating:not(.is-readonly) .star-opt:hover ~ .star-opt{color:#f0b429}
.star-opt:focus-within{outline:2px solid #fff;outline-offset:2px;z-index:1}
.star-rating.is-readonly{flex-direction:row;gap:.1rem}
.star-rating.is-readonly .star-opt{cursor:default;width:1.35rem;height:1.35rem}
.star-rating.is-readonly .star-opt.is-on{color:#f0b429}
.star-rating.is-readonly .star-opt .star-face{font-size:1rem}
.dues-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}
@media(min-width:768px){.dues-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
.dues-summary .tile{min-width:0}
.dues-summary .tile span{display:block}
.due-row-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.82rem;color:var(--muted);min-width:0}
.due-row-meta span{overflow-wrap:anywhere}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;line-height:1.2;padding:.45rem .9rem;white-space:nowrap}
.btn .bi{line-height:1;font-size:1.05em;flex:0 0 auto}
.btn-sm{min-height:40px;padding:.4rem .75rem;gap:.3rem}
.btn[aria-pressed="true"]{box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.btn.htmx-request,.btn:disabled{cursor:wait}
.chips .btn{white-space:nowrap}
@media(max-width:575.98px){
  .pl-actions-group + .pl-actions-group{margin-left:0;padding-left:0;border-left:0;width:100%}
  .btn-sm{min-height:42px}
}

.avatar{
  width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid var(--line);
  display:grid;place-items:center;font-weight:700;font-size:.8rem;flex:0 0 40px
}
.avatar.arrived{background:var(--gold);color:#06101a;border-color:var(--gold)}
.chips{display:flex;flex-wrap:wrap;gap:.35rem}

.fin-hero{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:.5rem;min-width:0}
.fin-hero-main{flex:1 1 12rem;min-width:0}
.fin-hero-free{flex:0 1 auto;min-width:0}
.fin-hero-label{display:block;font-size:.78rem;color:var(--muted)}
.fin-hero-value{font-size:clamp(1.4rem,5vw,1.8rem);color:#fff;overflow-wrap:anywhere}
.dash-next{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 1rem;align-items:center;min-width:0}
.dash-pend{list-style:none;padding:0;margin:0}
.dash-pend li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding:.45rem 0;border-bottom:1px solid rgba(196,154,44,.22);min-width:0}
.state-empty{text-align:center;padding:1.5rem 1rem;color:var(--muted)}
.state-empty-ico{font-size:1.8rem;margin-bottom:.5rem;color:var(--gold)}
.hx-busy{opacity:.65;pointer-events:none}
.seg-tabs,.fin-tabs a{
  flex:0 0 auto;border:1px solid rgba(255,255,255,.16);background:var(--surface);color:rgba(255,255,255,.88);
  border-radius:999px;padding:.45rem .85rem;font-weight:600;min-height:40px;text-decoration:none;display:inline-flex;align-items:center
}
.fin-tabs a.active{background:var(--accent);border-color:var(--accent);color:#06101a}
.fin-tabs{display:flex;gap:.4rem;overflow:auto;padding-bottom:.15rem}
.clock{font-size:3rem;font-family:var(--display);text-align:center;line-height:1}
.clock.warn{color:var(--warning)}
.clock.over{color:var(--danger)}
.score{font-size:2.4rem;font-family:var(--display);text-align:center}
.vs{font-size:1.4rem;color:var(--muted);padding:.5rem}
.side{text-align:center;padding:1rem;border:1px solid rgba(196,154,44,.35);border-radius:var(--primus-card-radius,var(--radius));background:var(--primus-card-bg,var(--surface));border-top:4px solid var(--tc,var(--gold));box-shadow:0 4px 12px rgba(0,0,0,.18);min-width:0}
.tname{font-family:var(--display);margin:.35rem 0;overflow-wrap:anywhere}
.queue-pill{display:inline-flex;align-items:center;gap:.35rem;margin:.2rem;padding:.25rem .6rem;border-radius:.3rem;background:rgba(255,255,255,.06);border-left:3px solid var(--tc,var(--gold));max-width:100%;overflow-wrap:anywhere}

.banner-meta{color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}
.chip-info{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--line);font-size:.78rem;color:var(--ink)}
.ev-tabs a{
  flex:1;border:0;background:none;padding:.55rem .25rem .5rem;color:var(--muted);font-size:.75rem;font-weight:600;
  display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;position:relative
}
.ev-tabs a .bi{font-size:1.3rem}
.ev-tabs a.active{color:#fff}
.ev-tabs a.active .bi{color:var(--gold)}
@media(min-width:768px){
  .ev-tabs a{flex:none;flex-direction:row;gap:.5rem;font-size:.9rem;padding:.7rem 1.3rem}
  .ev-tabs a.active{background:var(--accent-soft)}
}

.roster-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem
}
@media(min-width:640px){.roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:960px){.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
a.roster-card{
  display:flex!important;
  flex-direction:column;
  text-decoration:none!important;
  color:#f3f6fa!important;
  border:var(--primus-card-border,2px solid var(--gold))!important;
  border-radius:var(--primus-card-radius,.5rem);
  background:var(--primus-card-bg,linear-gradient(180deg,#0e2238,#051626));
  box-shadow:var(--primus-card-shadow,0 0 0 1px rgba(196,154,44,.18),0 8px 18px rgba(0,0,0,.24));
  overflow:hidden;
  min-width:0;
  max-width:100%
}
a.roster-card:hover,a.roster-card:focus-visible{
  color:#fff!important;
  border-color:var(--gold-bright,#d4a93a)!important
}
.roster-card-photo{
  position:relative;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  background:radial-gradient(circle at 50% 35%,rgba(212,169,58,.18),transparent 55%),#07111c;
  border-bottom:1px solid rgba(196,154,44,.28)
}
.roster-card-photo img{width:100%;height:100%;object-fit:cover;display:block}
.roster-card-initial{
  font-family:var(--display);
  font-size:clamp(2rem,8vw,2.75rem);
  font-weight:700;
  color:#d4a93a;
  line-height:1
}
.roster-card-num{
  position:absolute;left:.45rem;bottom:.45rem;
  min-width:1.7rem;padding:.12rem .4rem;
  border:1px solid rgba(196,154,44,.55);border-radius:.25rem;
  background:rgba(5,22,38,.88);color:#d4a93a;
  font-family:var(--display);font-weight:700;font-size:.95rem;text-align:center
}
.roster-card-body{padding:.65rem .7rem .75rem}
.roster-card-name{font-family:var(--display);font-weight:650;font-size:1rem;color:#fff;line-height:1.2;overflow-wrap:anywhere}
.roster-card-nick{margin:.2rem 0 0;color:var(--muted);font-size:.85rem;overflow-wrap:anywhere}
.roster-pos-title{color:var(--gold-bright,#d4a93a)!important;font-family:var(--display);border-bottom:1px solid rgba(196,154,44,.35);padding-bottom:.35rem}
.roster-title span{color:var(--gold-bright,#d4a93a)}
a.primus-item-card{
  display:flex!important;flex-wrap:wrap;text-decoration:none!important;color:#f3f6fa!important;
  border:var(--primus-card-border,2px solid var(--gold))!important;
  border-radius:var(--primus-card-radius,.5rem);
  background:var(--primus-card-bg,linear-gradient(180deg,#0e2238,#051626));
  padding:.95rem 1rem;gap:.85rem 1rem;min-width:0;max-width:100%;
  box-shadow:var(--primus-card-shadow,0 0 0 1px rgba(196,154,44,.18),0 8px 18px rgba(0,0,0,.24))
}
a.primus-item-card:hover{color:#fff!important;border-color:var(--gold-bright,#d4a93a)!important}
.primus-item-title{font-family:var(--display);font-weight:650;color:#fff;margin:0 0 .35rem;overflow-wrap:anywhere}
.primus-badge{
  display:inline-flex;align-items:center;padding:.18rem .55rem;border:1px solid rgba(196,154,44,.5);
  border-radius:.25rem;background:rgba(5,22,38,.88);color:var(--gold-bright,#d4a93a);
  font-family:var(--display);font-size:.78rem;font-weight:650;max-width:100%
}
.roster-profile{
  padding:clamp(1rem,3vw,1.5rem);border:var(--primus-card-border,2px solid var(--gold));
  border-radius:var(--primus-card-radius,.5rem);
  background:var(--primus-card-bg,linear-gradient(180deg,#0e2238,#051626));
  box-shadow:var(--primus-card-shadow,0 0 0 1px rgba(196,154,44,.2),0 10px 26px rgba(0,0,0,.28));
  min-width:0;max-width:100%
}
.roster-fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0 0 1rem}
@media(min-width:640px){.roster-fact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.roster-fact{padding:.7rem .75rem;border:1px solid rgba(196,154,44,.35);border-radius:.4rem;background:rgba(7,17,28,.72);min-width:0;overflow-wrap:anywhere}
.roster-profile-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.1rem;padding-top:1rem;border-top:var(--primus-card-divider,1px solid rgba(196,154,44,.28))}
.entry-fee-amount.is-hidden{display:none!important}
.mat-item{
  border:var(--primus-card-border,2px solid var(--gold));
  border-radius:var(--primus-card-radius,.5rem);
  background:var(--primus-card-bg,linear-gradient(180deg,#0e2238,#051626));
  box-shadow:var(--primus-card-shadow,0 0 0 1px rgba(196,154,44,.18),0 8px 18px rgba(0,0,0,.24));
  min-width:0;max-width:100%
}

:root{
  --bg:#07121f;
  --surface:#0d1d2e;
  --surface-elevated:#14283b;
  --surface2:#14283b;
  --line:#26394b;
  --ink:#edf1f5;
  --muted:#a0afbf;
  --radius:.8rem;
  --shadow:0 12px 32px rgba(0,0,0,.16);
  --primus-card-radius:1rem;
  --primus-card-border:1px solid rgba(196,154,44,.25);
  --primus-card-bg:linear-gradient(145deg,#102338,#0b1a2b);
  --primus-card-shadow:0 8px 28px rgba(0,0,0,.14);
  --primus-card-shadow-hover:0 14px 34px rgba(0,0,0,.24);
  --primus-card-divider:1px solid rgba(196,154,44,.16);
}
[data-bs-theme=dark]{--bs-border-radius:.8rem;--bs-border-radius-sm:.55rem;--bs-border-radius-lg:1rem}
body{line-height:1.55;-webkit-font-smoothing:antialiased;background:radial-gradient(ellipse at 85% 0,rgba(22,51,79,.32),transparent 48%),var(--bg)}
body,button,input,select,textarea{font-family:var(--bs-body-font-family)}
::selection{background:rgba(196,154,44,.35);color:#fff}
a{color:#e0bd65;text-underline-offset:3px}
a:hover{color:#f4d78e}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--gold-bright);outline-offset:4px}
.skip-link{position:fixed;top:-6rem;left:1rem;z-index:3000;padding:.75rem 1rem;background:var(--gold);color:var(--navy);border-radius:.6rem;font-weight:700}
.skip-link:focus{top:1rem;color:var(--navy)}
#app.container{padding:1.6rem 1.25rem!important;min-width:0}
#app:focus{outline:none}
.app-header{background:rgba(7,18,31,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.07)}
.app-header .container{min-height:76px;gap:1rem}
.app-header h1{font-size:1.3rem;letter-spacing:.025em}
.app-header .sub:empty{display:none}
.app-header .header-actions{max-width:55%;gap:.75rem}
.app-header .badge-role{background:rgba(196,154,44,.09)!important;color:#e4c77f!important;border-color:rgba(196,154,44,.26)!important;padding:.45rem .7rem;border-radius:999px;font-size:.7rem;font-weight:600}
.app-header .btn-header-menu{border-color:var(--line);border-radius:.65rem;background:var(--surface);width:42px;height:42px}
.side-panel{background:linear-gradient(180deg,#0c1d30,#07121f);padding:1.7rem 1rem 1.2rem;gap:.3rem}
.side-brand{padding:.6rem .7rem 1.1rem;gap:.8rem;border-bottom:1px solid rgba(196,154,44,.2)}
.side-logo{width:50px;height:50px;object-fit:contain;border-radius:0;box-shadow:none;background:transparent}
.side-brand-text{font-size:1.6rem;letter-spacing:.055em}
.side-user{margin:.3rem .7rem 1rem;padding:0;color:var(--muted);font-size:.75rem;overflow-wrap:anywhere}
.side-link{min-height:46px;border-radius:.65rem;padding:.7rem .85rem;font-size:.86rem;font-weight:500;color:#aab9c9;gap:.75rem;transition:background .16s,color .16s}
.side-link .bi{font-size:1.1rem;color:inherit}
.side-link:hover{background:rgba(255,255,255,.045);color:#fff}
.side-link.active{color:#efd38a;background:linear-gradient(90deg,rgba(196,154,44,.17),rgba(196,154,44,.055));box-shadow:inset 3px 0 var(--gold)}
.side-sub{margin:.1rem 0 .35rem 1.3rem;border-left:1px solid var(--line);padding-left:.5rem}
.side-link.sub{font-size:.8rem;min-height:40px;padding:.5rem .7rem}
.side-panel>form{padding-top:1rem;border-top:1px solid rgba(255,255,255,.07)}
.side-panel>form .side-link:hover{color:#ffb3b3}
.nav-badge{border-radius:999px;background:var(--gold);color:var(--navy);font-size:.65rem;min-width:21px;text-align:center}
.btn{border-radius:.65rem;font-weight:600;font-size:.86rem;min-height:44px;padding:.65rem 1rem;letter-spacing:.005em;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}
.btn-sm{min-height:36px;padding:.4rem .75rem;font-size:.78rem}
.btn-primary{background:linear-gradient(135deg,#d5af4e,#c49a2c);border-color:#c49a2c;color:#07121f;box-shadow:0 3px 12px rgba(196,154,44,.12)}
.btn-primary:hover,.btn-primary:focus-visible{background:#e0bb5c;border-color:#e0bb5c;color:#07121f;box-shadow:0 5px 18px rgba(196,154,44,.2)}
.btn-navy,.btn-slate,.btn-tone{background:#152a3e;border:1px solid #30465a;color:#e0e8f0;box-shadow:none}
.btn-navy:hover,.btn-slate:hover,.btn-tone:hover{background:#1d354c;border-color:#63717a;color:#fff}
.btn:disabled,.btn.disabled{opacity:.45;box-shadow:none}
.form-label{font-size:.8rem;font-weight:600;color:#c4cfda;margin-bottom:.45rem}
.form-control,.form-select{background-color:#091827;border:1px solid #304357;border-radius:.65rem;min-height:46px;color:#edf1f5;padding:.65rem .85rem;font-size:.9rem;box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}
.form-control::placeholder{color:#7f92a5;opacity:1}
.form-control:focus,.form-select:focus{background-color:#0d1f31;border-color:var(--gold);color:#fff;box-shadow:0 0 0 3px rgba(196,154,44,.13)}
.form-control:disabled,.form-select:disabled{background-color:#142333;color:#a0afbf}
.form-control[type=file]{padding:.5rem}
.form-control[type=file]::file-selector-button{border-radius:.4rem;background:#1b3147;color:#dce5ee;margin:-.15rem .8rem -.15rem -.15rem}
.form-check-input{background-color:#0a1828;border-color:#526475;cursor:pointer}
.form-check-input:checked{background-color:var(--gold);border-color:var(--gold)}
.form-check-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,154,44,.15)}
.form-text{font-size:.76rem;line-height:1.5}
.card,.primus-panel,.roster-profile,.mat-item{overflow-wrap:anywhere}
.card-body{padding:1.35rem}
.card-head{padding:1rem 1.35rem;font-size:1rem;color:#e4cf9a;letter-spacing:.015em;border-color:rgba(255,255,255,.07);gap:.65rem}
.card-head>.bi{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:.5rem;background:rgba(196,154,44,.09);font-size:.95rem}
.card.card-body{padding:1.35rem}
.card .ledger-row,.card .border-bottom{border-color:rgba(255,255,255,.065)!important}
.ledger-row{padding:.9rem 1.2rem;transition:background .15s}
.ledger-row:hover{background:rgba(255,255,255,.025)}
.tile{background:rgba(7,18,31,.55);border:1px solid rgba(255,255,255,.075);border-radius:.8rem;padding:1rem;box-shadow:none;min-width:0}
.tile>span{color:#a7b6c6;font-size:.74rem;line-height:1.4}
.tile>b{font-size:clamp(1.05rem,2vw,1.4rem);line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.tile>.bi{color:var(--gold);font-size:1.2rem}
.fin-hero{padding:.2rem 0 1.35rem;margin-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.07);gap:1.5rem}
.fin-hero-label{font-size:.76rem;margin-bottom:.35rem}
.fin-hero-value{font-size:clamp(2rem,4vw,2.7rem);font-family:var(--display);font-weight:500;letter-spacing:.01em;line-height:1.2}
.fin-hero-free{padding-left:1.2rem;border-left:1px solid var(--line)}
.fin-hero-free>b{color:#e6cd8e;font-size:1.2rem}
.fin-tabs{gap:.4rem;padding:.3rem;margin-bottom:1.25rem;border:1px solid rgba(255,255,255,.07);background:#0b1929;border-radius:.85rem;scrollbar-width:thin}
.fin-tabs a{border:0;border-radius:.55rem;padding:.6rem .95rem;min-height:42px;background:transparent;color:var(--muted);font-size:.8rem}
.fin-tabs a:hover{color:#fff;background:rgba(255,255,255,.04)}
.fin-tabs a.active{background:rgba(196,154,44,.14);color:#efd38a;box-shadow:inset 0 0 0 1px rgba(196,154,44,.2)}
.table{--bs-table-bg:transparent;--bs-table-border-color:rgba(255,255,255,.07);--bs-table-color:var(--ink);--bs-table-hover-bg:rgba(255,255,255,.025);margin-bottom:0;font-size:.86rem}
.table>:not(caption)>*>*{padding:.85rem 1rem;vertical-align:middle}
.table thead th{color:var(--muted);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:rgba(7,18,31,.4);white-space:nowrap}
.badge,.primus-badge{border-radius:.45rem;font-weight:500;font-size:.72rem;line-height:1.4;padding:.3rem .6rem}
.primus-badge{background:rgba(196,154,44,.09);border-color:rgba(196,154,44,.2);font-family:var(--bs-body-font-family)}
.primus-badge.soft{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.12);color:#bcc9d7}
.state-empty,.roster-empty,.mat-empty{padding:2.5rem 1rem;color:var(--muted);border-radius:.8rem}
.state-empty h3{font-size:1rem;font-weight:500;margin:.65rem 0 1rem}
.state-empty-ico{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 1rem;border-radius:1rem;background:rgba(196,154,44,.07);border:1px solid rgba(196,154,44,.15);font-size:1.5rem}
.primus-page-title,.roster-title{font-size:clamp(1.6rem,3vw,2rem);letter-spacing:.025em;margin-bottom:1.2rem}
.primus-stack{gap:1rem}
a.primus-item-card{padding:1.25rem!important;align-items:center;gap:1.2rem!important}
.primus-item-title{font-size:1.2rem;line-height:1.35}
.primus-item-meta{gap:.3rem;font-size:.8rem}
.game-date{flex:0 0 64px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;min-height:76px;border:1px solid rgba(196,154,44,.22);border-radius:.8rem;background:rgba(196,154,44,.07);line-height:1.15;color:var(--gold-bright)}
.game-date b{font-family:var(--display);font-size:1.9rem;font-weight:500}
.game-date span{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-top:.3rem}
.dash{display:grid;gap:1.25rem}
.dash>.card{margin-bottom:0!important}
.dash-masthead{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.25rem 0 .5rem}
.section-kicker{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.17em;color:var(--gold-bright);font-weight:600;margin-bottom:.4rem}
.dash-masthead h2{font-family:var(--display);font-size:clamp(1.8rem,4vw,2.2rem);font-weight:500;margin:0}
.dash-date{font-size:.8rem;color:var(--muted);border:1px solid var(--line);border-radius:.55rem;padding:.5rem .75rem;font-variant-numeric:tabular-nums}
.dash-feature{position:relative;background:radial-gradient(ellipse at 90% 20%,rgba(196,154,44,.065),transparent 55%),var(--primus-card-bg);border-color:rgba(196,154,44,.32)}
.dash-next{flex-wrap:nowrap;gap:1.25rem;align-items:center;justify-content:flex-start}
.dash-next>.min-w-0{flex:1}
.dash-next-name{font-family:var(--display);font-size:clamp(1.3rem,3vw,1.7rem);font-weight:500;letter-spacing:.02em}
.dash-next>.btn{margin-left:auto}
.dash-finance .card-body{padding-top:1rem}
.dash-agenda .ledger-row{padding:1rem 1.35rem!important}
.dash-actions .card-body{display:grid!important;grid-template-columns:1fr;gap:.7rem!important}
.dash-actions .btn{display:flex;align-items:center;gap:.65rem;justify-content:flex-start;min-height:48px}
.dash-actions .btn .bi{font-size:1rem}
.roster-filters{padding:1rem;border-color:rgba(255,255,255,.1);background:#0d1d30;border-radius:.85rem;margin-bottom:1.6rem}
.roster-grid{gap:1rem}
.roster-card{border:1px solid rgba(196,154,44,.22);border-radius:.9rem;background:var(--primus-card-bg);box-shadow:var(--shadow);overflow:hidden}
.roster-card-photo{border-bottom:1px solid rgba(196,154,44,.16);background:radial-gradient(circle at 50% 30%,#1c3651,#0b192a);aspect-ratio:1.1;position:relative}
.roster-card-body{padding:.95rem}
.roster-card-name{font-size:1.15rem;line-height:1.3}
.roster-card-initial{font-size:3.2rem;opacity:.75}
.roster-pos-title{font-size:1rem;border-color:rgba(196,154,44,.2)!important;margin-bottom:1rem}
.roster-pos-count{border-radius:.4rem;font-size:.7rem;background:rgba(196,154,44,.08)}
.roster-profile{border-radius:1rem}
.roster-fact{border-color:rgba(255,255,255,.09);border-radius:.7rem;padding:1rem}
.pl-item,.pay-row{padding:1rem 1.25rem;border-color:rgba(255,255,255,.07)}
.pl-actions{gap:.65rem;margin-top:.8rem}
.pl-actions .btn{min-height:38px}
.avatar{width:44px;height:44px;flex-basis:44px;border-radius:.7rem;background:#1b3249;color:#e5cf96;border-color:#30465c}
.chips{gap:.45rem}
.chips .btn{border-radius:.55rem}
.banner{border-radius:1rem;border-width:1px;padding:1.3rem}
.ev-tabs{border:1px solid rgba(255,255,255,.09);border-radius:.8rem;background:#0b1b2d;overflow:hidden}
.ev-tabs a{padding:.8rem .4rem;gap:.3rem;font-size:.75rem}
.ev-tabs a.active{background:rgba(196,154,44,.08);color:#ebcc7e}
.ev-tabs a.active:after{background:var(--gold);height:3px;bottom:0}
.clock{font-size:clamp(3.4rem,8vw,5rem);letter-spacing:.03em;margin:.75rem 0}
.side{border-radius:.85rem;border-color:rgba(255,255,255,.1);border-top-color:var(--tc,var(--gold));background:#0a192a;box-shadow:none}
.score{font-size:3rem}
.alert{border-radius:.75rem;font-size:.86rem;padding:1rem 1.15rem}
.swal2-popup{border:1px solid rgba(196,154,44,.25)!important;border-radius:1.1rem!important;background:#0e2033!important;box-shadow:0 24px 80px rgba(0,0,0,.5)!important}
.swal2-title{font-size:1.35rem!important}
.swal2-html-container{font-size:.9rem!important;line-height:1.6!important;color:#b7c5d4!important}
.primus-loading{border-radius:.7rem;padding:.7rem 1rem;backdrop-filter:blur(12px)}
.brand-page{border-radius:1rem;border-color:rgba(196,154,44,.3)}
.brand-kit-card{border-radius:.85rem;box-shadow:var(--shadow)}
.brand-logo-frame{animation:none;border-color:rgba(196,154,44,.6);box-shadow:0 0 60px rgba(196,154,44,.08)}
body[data-screen=login] #app.container{padding:0!important}
.login-screen{position:relative;isolation:isolate;background:radial-gradient(ellipse at 25% 20%,rgba(33,65,98,.45),transparent 50%),linear-gradient(135deg,#0c2036,#06111f);padding:2rem 1rem;overflow:hidden}
.login-screen:before{content:"";position:absolute;width:min(65vw,760px);height:min(65vw,760px);border:1px solid rgba(196,154,44,.1);border-radius:50%;z-index:-1;box-shadow:0 0 0 80px rgba(196,154,44,.018),0 0 0 160px rgba(196,154,44,.012);pointer-events:none}
.login-panel{position:relative;max-width:420px;padding:2.5rem;border-radius:1.25rem;background:linear-gradient(155deg,rgba(18,40,63,.97),rgba(9,25,42,.98));border:1px solid rgba(196,154,44,.28);box-shadow:0 30px 90px rgba(0,0,0,.35)}
.login-panel:before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.login-brand{margin-bottom:2rem}
.login-logo{width:112px;height:112px;object-fit:contain;border-radius:0;box-shadow:none;margin-bottom:1rem}
.login-title{font-size:1.75rem;font-weight:500;letter-spacing:.015em;line-height:1.3}
.login-title span{display:block;font-size:1rem;letter-spacing:.08em;margin-top:.35rem}
.login-panel .form-control{min-height:48px}
.login-panel .btn-primary{margin-top:.5rem;min-height:48px}
.login-panel .form-label{margin-top:.3rem}
@media(min-width:992px){
  body:not([data-screen=login]){padding-left:252px}
  body:not([data-screen=login]) .side-panel{width:252px;border-right:1px solid rgba(196,154,44,.13)}
  #app.container{max-width:1240px;padding:2rem 2.25rem!important}
  .app-header .container{max-width:1240px;padding-left:2.25rem;padding-right:2.25rem}
  .dash{grid-template-columns:minmax(0,1fr) minmax(260px,.45fr)}
  .dash-masthead,.dash-feature,.dash-finance{grid-column:1/-1}
  .dash-actions{align-self:start}
  .roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:1400px){.dash-feature .card-body{padding:1.6rem}.dash-finance .tile{padding:1.2rem}}
@media(max-width:991.98px){
  .bottom-dock{background:rgba(7,18,31,.97);backdrop-filter:blur(18px);border-top-color:rgba(196,154,44,.2);padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom))}
  .bottom-dock a{border-radius:.65rem;margin:0 .15rem;min-height:52px;font-size:.65rem;gap:.2rem;color:#a0afbf}
  .bottom-dock a.active{background:rgba(196,154,44,.09);color:#e9c871}
  .bottom-dock a .bi{font-size:1.15rem}
  .side-panel{transition:transform .2s ease,visibility .2s ease}
  .app-header .container{min-height:66px;padding-inline:1rem}
  .app-header h1{font-size:1.15rem}
  body[data-screen=event] #app.container{padding-bottom:2rem!important}
  .ev-tabs{position:sticky;top:calc(66px + env(safe-area-inset-top));z-index:100;background:#0b1b2d;margin-top:1rem}
}
@media(max-width:575.98px){
  #app.container{padding:1.1rem .85rem!important}
  .card-body,.card.card-body{padding:1rem}
  .card-head{padding:.85rem 1rem}
  .dash{gap:1rem}
  .dash-next{flex-wrap:wrap;gap:.85rem}
  .dash-next>.min-w-0{flex:1 1 calc(100% - 90px)}
  .dash-next>.btn{width:100%;margin-top:.3rem}
  .dash-date{font-size:.7rem;padding:.4rem .6rem}
  .dash-masthead{gap:.6rem}
  .section-kicker{font-size:.58rem;letter-spacing:.11em}
  .fin-hero{gap:1rem}
  .fin-hero-free{padding-left:0;border:0}
  .tile{padding:.8rem}
  a.primus-item-card{padding:1rem!important;gap:.85rem!important}
  .game-date{width:54px;flex-basis:54px;min-height:68px}
  .game-date b{font-size:1.7rem}
  .primus-item-main{flex:1 1 calc(100% - 74px)}
  .primus-item-side{justify-content:flex-start;flex-basis:100%;padding-top:.65rem;border-top:1px solid rgba(255,255,255,.06)}
  .roster-grid{gap:.75rem}
  .roster-card-body{padding:.75rem}
  .roster-card-name{font-size:1rem}
  .roster-head{align-items:flex-start;gap:.7rem}
  .roster-head .btn{font-size:.75rem;padding:.6rem .75rem}
  .login-panel{padding:2rem 1.5rem}
  .table>:not(caption)>*>*{padding:.7rem .65rem}
  .table{font-size:.8rem}
  .btn-sm{min-height:40px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

body{isolation:isolate}
.club-atmosphere{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 100% 0,rgba(196,154,44,.045),transparent 48%),repeating-linear-gradient(125deg,transparent 0 64px,rgba(130,160,190,.018) 65px 66px,transparent 67px 130px)}
.club-atmosphere:before,.club-atmosphere:after{content:"";position:absolute;width:640px;height:640px;right:-240px;top:-280px;border:1px solid rgba(196,154,44,.1);border-radius:50%;box-shadow:0 0 0 70px rgba(196,154,44,.025),0 0 0 140px rgba(196,154,44,.014)}
.club-atmosphere:after{width:420px;height:420px;right:auto;left:20%;top:auto;bottom:-330px;opacity:.6}
.club-atmosphere>img{position:absolute;width:clamp(320px,42vw,640px);height:auto;right:-90px;top:25vh;opacity:.035;filter:grayscale(1);transform:rotate(-12deg);user-select:none}
.app-header{border-image:linear-gradient(90deg,rgba(196,154,44,.08),rgba(196,154,44,.4),rgba(196,154,44,.08)) 1;background:linear-gradient(110deg,rgba(13,31,49,.97),rgba(7,18,31,.96))}
.side-brand{position:relative;border-bottom:0;background:radial-gradient(ellipse at 25% 25%,rgba(196,154,44,.075),transparent 75%)}
.side-brand:after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:0;height:1px;background:linear-gradient(90deg,rgba(196,154,44,.5),rgba(196,154,44,.05))}
.side-logo{filter:drop-shadow(0 3px 10px rgba(196,154,44,.16))}
.side-panel{background:radial-gradient(circle at 20% 0,rgba(196,154,44,.045),transparent 35%),linear-gradient(175deg,#0d2035,#07121f 75%)}
.side-link.active{background:linear-gradient(100deg,rgba(196,154,44,.19),rgba(196,154,44,.035));box-shadow:inset 3px 0 var(--gold),inset 0 1px rgba(230,204,130,.06),0 3px 12px rgba(0,0,0,.08)}
.dash-signature{display:flex;align-items:center;gap:1rem;flex:0 0 auto}
.dash-signature img{object-fit:contain;filter:drop-shadow(0 3px 12px rgba(196,154,44,.13))}
.dash-masthead{position:relative;padding-bottom:1.1rem}
.dash-masthead:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(196,154,44,.55),rgba(196,154,44,.12) 35%,transparent)}
.card,.primus-panel,.mat-item,.roster-profile{background-image:radial-gradient(ellipse at 100% 0,rgba(196,154,44,.045),transparent 48%),linear-gradient(145deg,#102338,#0b1a2b);box-shadow:inset 0 1px 0 rgba(241,217,154,.045),0 8px 28px rgba(0,0,0,.16)}
.card-head{background:linear-gradient(100deg,rgba(196,154,44,.025),transparent);border-radius:calc(var(--primus-card-radius) - 1px) calc(var(--primus-card-radius) - 1px) 0 0}
.card-head>.bi{background:linear-gradient(140deg,rgba(196,154,44,.15),rgba(196,154,44,.035));box-shadow:inset 0 0 0 1px rgba(196,154,44,.14);color:#e2bd5a}
.dash-feature{background-image:linear-gradient(100deg,#102338 12%,rgba(11,26,43,.94) 60%,rgba(11,26,43,.88)),url('assets/brand/logo-primus-clear.png');background-size:auto,220px;background-position:center,right 1.5rem center;background-repeat:no-repeat}
.game-date{background:linear-gradient(145deg,rgba(196,154,44,.14),rgba(196,154,44,.035));box-shadow:inset 0 1px rgba(239,211,138,.16),0 5px 14px rgba(0,0,0,.12);border-top-color:rgba(224,189,100,.4)}
.tile{background-image:radial-gradient(ellipse at 0 0,rgba(196,154,44,.04),transparent 75%);box-shadow:inset 0 1px rgba(255,255,255,.025)}
.btn{position:relative;isolation:isolate;box-shadow:inset 0 1px rgba(255,255,255,.055),0 3px 8px rgba(0,0,0,.12)}
.btn-primary{background:linear-gradient(115deg,#e1bf66 0,#c49a2c 55%,#d2ac48 100%);border-top-color:#edd18a;border-bottom-color:#a78022;text-shadow:0 1px rgba(255,255,255,.13);box-shadow:inset 0 1px rgba(255,242,202,.3),inset 0 -2px rgba(115,78,8,.12),0 4px 14px rgba(196,154,44,.13)}
.btn-primary:before{content:"";position:absolute;inset:2px;border:1px solid rgba(255,242,202,.17);border-radius:calc(.65rem - 3px);pointer-events:none}
.btn-primary:hover,.btn-primary:focus-visible{background:linear-gradient(115deg,#edcf87,#d5ad43 65%,#e2be62);box-shadow:inset 0 1px rgba(255,242,202,.4),0 5px 20px rgba(196,154,44,.22)}
.btn-navy,.btn-slate,.btn-tone{background:linear-gradient(145deg,#1b334b,#112639);border-top-color:#3d5366;box-shadow:inset 0 1px rgba(255,255,255,.035),0 3px 9px rgba(0,0,0,.12)}
.btn-navy:hover,.btn-slate:hover,.btn-tone:hover{background:linear-gradient(145deg,#233f59,#183148);border-color:rgba(196,154,44,.48)}
.btn .bi{transition:color .18s,transform .18s}
.btn-navy .bi,.btn-slate .bi,.btn-tone .bi{color:#d8b663}
.btn-outline-primary{background:linear-gradient(135deg,rgba(196,154,44,.065),transparent);box-shadow:inset 0 1px rgba(196,154,44,.08)}
.btn:active:not(:disabled):not(.disabled){transform:translateY(1px);box-shadow:inset 0 2px 4px rgba(0,0,0,.16)}
.btn:disabled,.btn.disabled{box-shadow:none}
.roster-card-photo:not(.has-photo){background:linear-gradient(135deg,rgba(13,32,52,.94),rgba(9,23,39,.96)),url('assets/brand/logo-primus-clear.png') center/70% no-repeat}
.roster-card-num{border-color:rgba(196,154,44,.55);box-shadow:inset 0 1px rgba(228,204,140,.12),0 2px 8px rgba(0,0,0,.2)}
.fin-tabs a.active,.bottom-dock a.active{box-shadow:inset 0 1px rgba(233,207,144,.08),inset 0 0 0 1px rgba(196,154,44,.19)}
.form-control:focus,.form-select:focus{box-shadow:0 0 0 3px rgba(196,154,44,.12),inset 0 1px 3px rgba(0,0,0,.1),0 3px 16px rgba(196,154,44,.04)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .btn:hover:not(:disabled):not(.disabled){transform:translateY(-1px)}
  .btn:hover .bi{transform:translateY(-1px)}
  .btn:active:not(:disabled):not(.disabled){transform:translateY(1px)}
}
@media(max-width:575.98px){
  .dash-signature{gap:.6rem}
  .dash-signature img{width:46px;height:46px}
  .dash-signature .dash-date{font-size:.65rem;padding:.35rem .45rem}
  .club-atmosphere>img{width:340px;right:-170px;opacity:.025}
  .club-atmosphere:before{width:420px;height:420px;right:-270px;top:-210px}
  .dash-feature{background-size:auto,170px;background-position:center,right .75rem top 2.5rem}
}
