/* CourtVivo visual branding – centralized, presentation only. */
:root{
  --brand-ink:#0E3D2E;
  --brand-primary:#0E8F4E;
  --brand-accent:#C6FF2E;
  --brand-teal:#00BFAE;
  --brand-header:#F3F7F5;
  --brand-header-line:#D8E5DF;
  --navy:#F3F7F5;
  --blue:#0E8F4E;
  --green:#0E8F4E;
}
header{
  background:var(--brand-header)!important;
  color:var(--brand-ink)!important;
  border-bottom:3px solid var(--brand-primary);
  box-shadow:0 1px 0 #0e3d2e12;
}
header .sub,header .small,header [style*="font-size:12px"]{color:#46665b!important;opacity:1!important}
header select{border:1px solid #b9cec5!important;background:#fff!important;color:var(--brand-ink)!important}
header .language label{color:#46665b!important;opacity:1!important}
header .btn.ghost,header .navbtn{
  color:var(--brand-ink)!important;
  border-color:#aac6ba!important;
  background:#fff!important;
}
header .btn.secondary{background:#e5f2ec!important;color:var(--brand-ink)!important}

.brand-name{
  color:var(--brand-ink)!important;
  letter-spacing:-.01em;
  white-space:nowrap;
}
.brand-logo{
  width:36px;
  height:36px;
  flex:0 0 36px;
  object-fit:cover;
  border-radius:9px;
  box-shadow:0 1px 4px #0e3d2e24;
  vertical-align:middle;
}
h1.brand-title-line>.brand-logo{width:40px;height:40px;flex-basis:40px;border-radius:10px}
.brand-kicker{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:0 0 5px;
  color:var(--brand-ink);
  font-weight:900;
  font-size:18px;
  line-height:1;
}
.brand-kicker .brand-logo{width:32px;height:32px;flex-basis:32px;border-radius:8px}
.brand-title-line{
  display:flex!important;
  align-items:flex-start;
  flex-wrap:nowrap;
  gap:9px;
  max-width:100%;
  min-width:0;
  line-height:1.08;
}
.brand-title-line>.brand-logo{flex:0 0 auto}
.brand-title-text{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  max-width:100%;
}
.brand-title-mainline{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  column-gap:.34em;
  row-gap:.12em;
  min-width:0;
  max-width:100%;
}
.brand-title-mainline .brand-name{display:inline-block!important}
.brand-title-mainline .brand-context{display:inline-block;white-space:nowrap;flex:0 0 auto}
.brand-title-mainline .brand-context::before{content:'·';margin-right:.34em;font-weight:700}
.brand-sport{
  display:block;
  margin-top:2px;
  color:var(--brand-primary);
  font-size:.58em;
  font-weight:800;
  line-height:1.05;
  letter-spacing:0;
  white-space:nowrap;
}
.brand-kicker-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.brand-kicker .brand-sport{font-size:.72em;margin-top:3px}
.brand-home.brand-stack{
  display:inline-flex!important;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.02;
  text-decoration:none;
}
.brand-home.brand-stack .brand-home-main{display:inline-flex;align-items:center;gap:9px}
.brand-home.brand-stack .brand-sport{font-size:.58em;margin-left:45px}
/* Keep primary actions sporty and consistent while retaining existing home/guest scoring colours. */
.btn.primary{background:var(--brand-primary)!important;color:#fff!important}
.btn.ok{background:var(--brand-primary)!important;color:#fff!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #00bfae55;outline-offset:2px}
@media(max-width:560px){
  .brand-logo{width:30px;height:30px;flex-basis:30px;border-radius:8px}
  h1.brand-title-line>.brand-logo{width:32px;height:32px;flex-basis:32px}
  .brand-kicker{font-size:16px}
  .brand-kicker .brand-logo{width:28px;height:28px;flex-basis:28px}
}

/* V9.23 responsive header + password usability */
header .head{max-width:100%;flex-wrap:wrap}
header .head>*{min-width:0}
header .head-actions,header .actions{max-width:100%}
.password-field{position:relative;width:100%}
.password-field>input{padding-right:48px!important}
.password-toggle{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--brand-ink);
  cursor:pointer;
  padding:0;
}
.password-toggle:hover{background:#e7f1ed}
.password-toggle:focus-visible{outline:3px solid #00bfae55;outline-offset:1px}
.password-toggle svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:720px){
  header .head{align-items:flex-start!important}
  header .head-actions,header .actions{flex-wrap:wrap}
  .season-admin-header .head{display:grid!important;grid-template-columns:minmax(0,1fr);gap:12px!important}
  .season-admin-header .head-actions{order:-1;width:100%;display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
  .season-admin-header .head-actions select{width:100%!important;min-width:0!important}
  .season-admin-header .head-actions .btn{white-space:nowrap;text-align:center}
}


/* V9.62.21 – unified CourtVivo Tennis header lockup */
.cv-brand-lockup{
  --cv-logo:46px;
  --cv-name:30px;
  --cv-context:30px;
  --cv-sport:18px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
  color:var(--brand-ink);
}
.cv-brand-logo-link{display:block;flex:0 0 var(--cv-logo);width:var(--cv-logo);height:var(--cv-logo);text-decoration:none}
.cv-brand-logo{display:block;width:var(--cv-logo);height:var(--cv-logo);object-fit:cover;border-radius:10px;box-shadow:0 1px 4px #0e3d2e24}
.cv-brand-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1}
.cv-brand-mainline{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:.28em;row-gap:.08em;min-width:0;max-width:100%;line-height:1.04}
.cv-brand-name,.cv-brand-context{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--brand-ink)!important;font-size:var(--cv-name)!important;font-weight:900!important;letter-spacing:-.02em;text-decoration:none!important;white-space:nowrap}
.cv-brand-context{font-size:var(--cv-context)!important}
.cv-brand-sep{font-size:var(--cv-context);font-weight:700;color:var(--brand-ink);line-height:1}
.cv-brand-sport{margin-top:4px;color:var(--brand-primary);font-size:var(--cv-sport);font-weight:800;line-height:1.05;letter-spacing:0;white-space:nowrap}
.cv-brand-claim{margin-top:8px;color:#46665b;font-size:var(--cv-sport);font-weight:400;line-height:1.15;white-space:nowrap}
.dashboard-account-meta{margin:0 0 14px;color:var(--text,#182230)}
.dashboard-account-meta #who{font-size:15px;color:var(--muted,#667085);margin-bottom:5px;overflow-wrap:anywhere}
.dashboard-account-meta #license{margin:0}
@media(max-width:560px){
  .cv-brand-lockup{--cv-logo:40px;--cv-name:26px;--cv-context:26px;--cv-sport:16px;gap:10px}
  .cv-brand-claim{margin-top:7px}
}
