/* Calendar-first workspace. Brand colors are centralized for a future rename. */
:root{
  --ink:#183042;
  --muted:#576d7e;
  --blue:#184e77;
  --teal:#16756b;
  --line:#dce7ee;
  --surface:#f7fafc;
  --amber:#aa6100;
  --radius:10px
}
*{
  box-sizing:border-box
}
body{
  margin:0;
  color:var(--ink);
  background:var(--surface);
  font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.5
}
a{
  color:var(--blue);
  text-underline-offset:3px
}
button,input,select,textarea{
  font:inherit
}
button,a,input,select,textarea{
  touch-action:manipulation
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid #3c95c9;
  outline-offset:3px
}
h1,h2,h3,p{
  margin-top:0
}
h1{
  font-size:32px;
  line-height:1.2;
  letter-spacing:-.8px;
  margin-bottom:8px;
  font-weight:700
}
h2{
  font-size:22px;
  font-weight:650;
  margin-bottom:12px
}
h3{
  font-size:16px;
  font-weight:650;
  margin-bottom:4px
}
small,.muted{
  color:var(--muted)
}
small{
  font-size:13px
}
.app-header{
  height:80px;
  background:white;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 40px;
  gap:20px
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--ink);
  font-size:23px;
  font-weight:750;
  letter-spacing:-.7px
}
.brand img{
  flex-shrink:0
}
.account-nav{
  display:flex;
  align-items:center;
  gap:24px;
  font-size:14px
}
.account-nav span small{
  display:block
}
.text-button{
  background:none;
  border:0;
  color:var(--muted);
  cursor:pointer;
  padding:8px
}
.private-label{
  color:var(--muted);
  font-size:14px
}
.workspace-bar{
  display:flex;
  align-items:center;
  gap:36px;
  background:white;
  padding:0 40px;
  border-bottom:1px solid var(--line);
  min-height:66px
}
.team-switcher{
  position:relative;
  min-width:220px
}
.team-switcher summary{
  display:flex;
  gap:12px;
  align-items:center;
  font-weight:650;
  cursor:pointer;
  list-style:none;
  padding:12px 0
}
.team-menu{
  position:absolute;
  z-index:10;
  top:100%;
  left:0;
  min-width:240px;
  background:white;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 8px 24px #18304215;
  padding:8px
}
.team-menu a{
  display:block;
  padding:10px;
  text-decoration:none
}
.team-menu a:hover{
  background:var(--surface)
}
.workspace-nav{
  display:flex;
  align-self:stretch;
  gap:28px
}
.workspace-nav a{
  display:flex;
  align-items:center;
  text-decoration:none;
  color:var(--muted);
  border-bottom:3px solid transparent;
  font-size:15px
}
.workspace-nav a.selected{
  border-color:var(--teal);
  color:var(--ink);
  font-weight:650
}
.team-avatar{
  width:30px;
  height:30px;
  object-fit:contain
}
.page{
  max-width:1560px;
  margin:auto;
  padding:36px 40px 80px
}
.page-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:28px
}
.page-heading p{
  margin-bottom:0
}
.heading-actions,.form-actions{
  display:flex;
  gap:12px;
  align-items:center
}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:10px 18px;
  border:1px solid transparent;
  border-radius:7px;
  font-weight:600;
  font-size:14px;
  text-decoration:none;
  cursor:pointer;
  white-space:normal
}
.primary{
  background:var(--blue);
  color:white
}
.primary:hover{
  background:#123f62
}
.secondary{
  background:white;
  border-color:var(--line);
  color:var(--ink)
}
.secondary:hover{
  border-color:#93abbc
}
.danger{
  color:#9c3232;
  background:white;
  border-color:#dfbcbc
}
.full{
  width:100%
}
.flash{
  border:1px solid #b7d6ce;
  background:#edf7f3;
  border-radius:8px;
  padding:14px 18px;
  margin-bottom:24px
}
.flash.alert,.error-summary{
  border:1px solid #e3b7b0;
  background:#fff5f3;
  color:#842b20;
  border-radius:8px;
  padding:16px;
  margin-bottom:20px
}
.error-summary h2{
  font-size:17px
}
.error-summary ul{
  padding-left:24px;
  margin:0
}
.form-heading,.form-panel,.archive-section{
  max-width:760px;
  margin-left:auto;
  margin-right:auto
}
.form-heading{
  margin-bottom:24px
}
.form-panel{
  background:white;
  border:1px solid var(--line);
  padding:28px;
  border-radius:var(--radius);
  margin-bottom:24px
}
.field{
  margin-bottom:22px
}
.field label{
  display:block;
  font-size:14px;
  font-weight:650;
  margin-bottom:7px
}
.field small{
  display:block;
  margin-top:6px
}
input:not([type=checkbox]):not([type=submit]),select,textarea{
  width:100%;
  background:white;
  border:1px solid #bdcdd9;
  border-radius:6px;
  padding:10px 12px;
  color:var(--ink);
  min-height:43px
}
select:not([multiple]):not([size]), select[size="1"] {
  appearance:none;
  -webkit-appearance:none;
  padding-right:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23183042' stroke-width='1.8' 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 14px center;
  background-size:16px 16px;
}
textarea{
  resize:vertical
}
input[type=file]{
  font-size:14px
}
input[type=file]::file-selector-button{
  background:var(--surface);
  border:1px solid var(--line);
  padding:5px 10px;
  border-radius:4px;
  margin-right:12px
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.form-note{
  font-size:14px;
  color:var(--muted);
  margin-bottom:22px
}
.form-actions{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--line)
}
.back-link{
  display:inline-block;
  font-size:14px;
  margin-bottom:16px
}
.auth-page{
  max-width:560px;
  padding-top:55px
}
.auth-intro{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin-bottom:28px;
}
.auth-intro .pitch-mark{
  margin:0 auto 20px;
}
.auth-intro h1{
  width:100%;
  margin:0;
  text-align:center;
  font-size:28px;
}
.auth-panel{
  background:white;
  border:1px solid var(--line);
  border-radius:14px;
  padding:36px
}
.auth-panel h1{
  font-size:28px
}
.auth-panel .field{
  margin-bottom:18px
}
.auth-note{
  text-align:center;
  font-size:14px;
  color:var(--muted);
  margin:25px 0 0;
  border-top:1px solid var(--line);
  padding-top:22px
}
.auth-footer{
  text-align:center;
}
.recovery-link{
  display:block;
  text-align:center;
  font-size:14px;
  margin-top:18px
}
.check{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  margin:18px 0
}
.check input{
  width:16px;
  height:16px
}
.pitch-mark{
  width:90px;
  height:60px;
  border:2px solid #9dbdbb;
  position:relative;
  border-radius:6px;
  margin:0 0 28px;
  background:#f4f9f8
}
.pitch-mark:before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:2px;
  background:#9dbdbb
}
.pitch-mark div{
  position:absolute;
  width:24px;
  height:24px;
  border:2px solid #9dbdbb;
  border-radius:50%;
  left:calc(50% - 11px);
  top:calc(50% - 12px);
  background:#f4f9f8
}
.empty-state{
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:55px 28px;
  text-align:center
}
.empty-state p{
  max-width:520px;
  color:var(--muted);
  margin:0 auto 24px
}
.empty-state .pitch-mark{
  margin:0 auto 24px
}
.filters{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:24px
}
.filters>div:first-child{
  max-width:330px;
  flex:1
}
.filters select{
  width:auto;
  max-width:230px
}
.table-wrap{
  overflow-x:auto;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius)
}
table{
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:14px
}
th{
  font-weight:600;
  color:var(--muted);
  background:#f0f5f8;
  padding:13px 20px;
  border-bottom:1px solid var(--line)
}
td{
  padding:17px 20px;
  border-bottom:1px solid var(--line)
}
tbody tr:last-child td{
  border-bottom:0
}
tbody tr:hover{
  background:#f9fbfd
}
.player-link{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  color:var(--ink)
}
.avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  object-fit:cover;
  flex-shrink:0
}
.initials{
  background:#e9f1f6;
  color:var(--blue);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:600
}
.badge{
  display:inline-block;
  border-radius:4px;
  padding:3px 7px;
  font-size:12px;
  font-weight:650;
  white-space:nowrap
}
.position{
  background:#edf3f8;
  color:var(--blue)
}
.position-name{
  margin-left:10px;
  font-size:13px;
  color:var(--muted)
}
.profile-photo{
  width:90px;
  height:90px;
  border-radius:14px;
  object-fit:cover;
  font-size:26px;
  margin-bottom:8px
}
.player-profile{
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px;
  max-width:none;
  width:100%
}
.profile-header{
  display:flex;
  align-items:center;
  gap:24px;
  margin-bottom:28px
}
.profile-header .button{
  margin-left:auto
}
.profile-details{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  margin:0;
  padding-top:24px;
  border-top:1px solid var(--line)
}
dt{
  font-size:14px;
  color:var(--muted);
  margin-bottom:8px
}
dd{
  margin:0;
  font-size:17px;
  font-weight:600
}
.archive-section{
  margin-top:40px;
  color:var(--muted);
  font-size:14px
}
.archive-section h2{
  font-size:18px;
  color:var(--ink)
}
.plain-list{
  list-style:none;
  margin:12px 0;
  padding:0
}
.plain-list li{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:12px 0;
  border-bottom:1px solid var(--line)
}
.calendar-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px
}
.date-navigation{
  display:flex;
  gap:8px
}
.view-switcher{
  display:flex;
  background:#eaf0f5;
  border:1px solid var(--line);
  border-radius:8px;
  padding:3px
}
.view-switcher a{
  padding:6px 15px;
  text-decoration:none;
  color:var(--muted);
  border-radius:5px;
  font-size:14px
}
.view-switcher a.selected{
  background:white;
  color:var(--ink);
  box-shadow:0 1px 3px #18304212
}
.planning-nav{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  font-size:14px;
  margin-bottom:22px
}
.planning-nav a{
  color:var(--muted)
}
.planning-note{
  background:#fff8eb;
  border:1px solid #ebd6b4;
  color:#855000;
  padding:12px 16px;
  border-radius:6px;
  margin-bottom:20px;
  font-size:14px
}
.calendar{
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden
}
.period-bands{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px 0;
  padding:8px 0;
  border-bottom:1px solid var(--line);
  background:#fbfdfe
}
.period-band{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  padding:5px 10px;
  border-left:3px solid var(--teal);
  background:#ecf6f3;
  color:#145c53
}
.period-band.cycle{
  background:#edf2f8;
  border-color:var(--blue);
  color:var(--blue)
}
.period-band.cycle a{
  font-weight:650;
  text-decoration:none
}
.period-band small{
  margin-left:12px;
  font-size:11px
}
.period-band.off_season{
  background:#f2f1fa;
  border-color:#756297;
  color:#5e4b80
}
.period-band.pre_season{
  background:#f9f2e5;
  border-color:#aa6100;
  color:#88560f
}
.day-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr))
}
.calendar-day{
  min-width:0;
  border-right:1px solid var(--line);
  min-height:350px;
  padding:12px 8px 20px
}
.calendar-day:last-child{
  border-right:0
}
.calendar-day header{
  padding:0 5px 12px
}
.calendar-day time{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--muted);
  font-size:13px
}
.calendar-day time strong{
  font-size:20px;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
  width:32px;
  height:32px;
  text-align:center;
  line-height:32px
}
.calendar-day.today{
  background:#f5faff
}
.today time strong{
  border-radius:50%;
  background:var(--blue);
  color:white
}
.day-context{
  font-size:11px;
  color:var(--muted);
  padding:0 5px 10px
}
.day-context span{
  display:block;
  font-weight:600;
  color:var(--blue)
}
.event{
  border-left:3px solid var(--teal);
  background:#f0f8f5;
  border-radius:3px 7px 7px 3px;
  padding:10px;
  margin-bottom:10px;
  overflow-wrap:anywhere
}
.event.match{
  border-color:var(--blue);
  background:#eaf2fb
}
.event.rest{
  border-color:#9ea9b4;
  background:#f1f4f6
}
.event-meta{
  font-size:11px;
  color:var(--muted);
  display:flex;
  gap:6px;
  justify-content:space-between;
  margin-bottom:7px;
  font-variant-numeric:tabular-nums
}
.event h3{
  font-size:14px;
  line-height:1.35
}
.event h3 a{
  color:var(--ink);
  text-decoration:none
}
.event h3 a:hover{
  text-decoration:underline
}
.event p{
  font-size:12px;
  color:var(--muted);
  margin:5px 0
}
.match-context{
  display:block;
  font-size:10px;
  margin-top:8px;
  color:var(--muted)
}
.unassigned{
  font-size:10px;
  background:#fff0d5;
  color:#855000;
  margin-top:5px
}
.no-events{
  font-size:12px;
  color:#738796;
  padding:12px 5px
}
.calendar.month .calendar-day{
  min-height:170px
}
.calendar.month .event{
  padding:6px
}
.calendar.month .match-context,.calendar.month .day-context span{
  display:none
}
.calendar-week+.calendar-week{
  border-top:1px solid var(--line)
}
.calendar.agenda .period-bands{
  display:none
}
.calendar.agenda .day-grid{
  display:block
}
.calendar.agenda .calendar-day{
  display:grid;
  grid-template-columns:90px 150px 1fr;
  min-height:100px;
  border-right:0;
  border-bottom:1px solid var(--line);
  gap:16px;
  padding:20px
}
.calendar.agenda .day-events{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px
}
.calendar.agenda .event{
  margin:0
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link{
  position:absolute;
  top:-80px;
  left:20px;
  background:white;
  padding:12px;
  z-index:100
}
.skip-link:focus{
  top:10px
}
[hidden]{
  display:none!important
}
@media(max-width:1100px){
  .page{
    padding:28px 24px 60px
  }
  .app-header,.workspace-bar{
    padding-left:24px;
    padding-right:24px
  }
  .position-name{
    display:none
  }
  .calendar-day{
    padding:10px 5px
  }
  .event{
    padding:8px
  }
  .workspace-bar{
    gap:24px
  }
  .team-switcher{
    min-width:180px
  }
}
@media(max-width:760px){
  h1{
    font-size:27px
  }
  .app-header{
    height:68px;
    padding:0 16px
  }
  .brand{
    font-size:20px;
    gap:5px
  }
  .brand img{
    width:34px;
    height:34px
  }
  .account-nav{
    gap:8px
  }
  .account-nav>span{
    display:none
  }
  .private-label{
    font-size:12px
  }
  .page{
    padding:24px 16px 50px
  }
  .workspace-bar{
    display:block;
    padding:0 16px
  }
  .team-switcher{
    min-width:0;
    width:100%
  }
  .workspace-nav{
    gap:28px;
    height:46px
  }
  .workspace-nav a{
    font-size:14px
  }
  .page-heading{
    align-items:flex-start;
    flex-wrap:wrap;
    gap:18px;
    margin-bottom:22px
  }
  .heading-actions{
    width:100%
  }
  .heading-actions .button{
    flex:1
  }
  .calendar-toolbar{
    align-items:flex-start;
    flex-wrap:wrap;
    gap:14px
  }
  .date-navigation .button{
    padding:8px 12px;
    min-height:38px
  }
  .view-switcher a{
    padding:6px 12px
  }
  .planning-nav{
    gap:12px 18px;
    font-size:13px
  }
  .period-bands{
    display:none
  }
  .day-grid{
    display:block
  }
  .calendar-day,.calendar.agenda .calendar-day{
    display:block;
    min-height:0;
    padding:15px;
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .calendar-day header{
    padding:0 0 8px
  }
  .calendar-day time{
    justify-content:flex-start;
    gap:12px
  }
  .calendar-day .day-context{
    display:block;
    padding:0 0 12px
  }
  .calendar.month .calendar-day{
    min-height:0
  }
  .calendar.month .day-context span{
    display:block
  }
  .calendar.agenda .day-events{
    display:block
  }
  .calendar.agenda .event{
    margin-bottom:10px
  }
  .event{
    padding:12px;
    margin-bottom:10px
  }
  .event h3{
    font-size:16px
  }
  .event-meta,.event p{
    font-size:13px
  }
  .match-context{
    font-size:12px
  }
  .no-events{
    padding:0;
    margin:0
  }
  .form-grid{
    grid-template-columns:1fr;
    gap:0
  }
  .form-panel{
    padding:22px
  }
  .form-actions{
    flex-wrap:wrap
  }
  .form-actions .button{
    flex:1
  }
  .auth-page{
    padding-top:30px
  }
  .auth-panel{
    padding:26px
  }
  .auth-panel h1{
    font-size:26px
  }
  .filters{
    flex-wrap:wrap
  }
  .filters>div:first-child{
    max-width:none;
    flex-basis:100%
  }
  .filters select{
    max-width:none
  }
  .filters>div:nth-child(2){
    flex:1
  }
  .table-wrap{
    border-radius:7px
  }
  td,th{
    padding:12px
  }
  .roster-table th:nth-child(4),.roster-table th:nth-child(5),.roster-table td:nth-child(4),.roster-table td:nth-child(5){
    display:none
  }
  .avatar{
    width:34px;
    height:34px
  }
  .player-link{
    gap:8px
  }
  .player-profile{
    padding:22px
  }
  .profile-header{
    flex-wrap:wrap;
    gap:14px
  }
  .profile-header .button{
    margin-left:0
  }
  .profile-header h1{
    font-size:25px
  }
  .profile-details{
    grid-template-columns:1fr 1fr;
    gap:24px
  }
  .profile-photo{
    width:70px;
    height:70px
  }
  .empty-state{
    padding:40px 20px
  }
}

.auth-notifications {
  margin-top:24px;
}

/* Team workspace navigation */
.workspace-header { position: sticky; top: 0; z-index: 30; }
.workspace-header .account-nav { margin-left: auto; min-width: 0; }
.workspace-header .account-identity { display: flex; align-items: center; gap: 10px; min-width: 0; overflow-wrap: anywhere; }
.workspace-header .team-switcher { min-width: 0; max-width: 260px; }
.workspace-header .team-switcher summary { overflow-wrap: anywhere; }
.workspace-header .team-menu { left: auto; right: 0; }
.sign-out-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; border-radius: 6px; flex-shrink: 0; }
.sign-out-button:hover { color: var(--blue); background: var(--surface); }
.app-sidebar { position: fixed; inset: 80px auto 0 0; width: 248px; background: white; border-right: 1px solid var(--line); overflow-y: auto; z-index: 20; }
.sidebar-content { padding: 28px 20px; }
.sidebar-toggle { display: none; }
.app-sidebar .workspace-nav { flex-direction: column; gap: 8px; height: auto; }
.app-sidebar .workspace-nav a { min-height: 44px; padding: 10px 14px; border: 0; border-left: 3px solid transparent; border-radius: 0 6px 6px 0; }
.app-sidebar .workspace-nav a:hover { background: var(--surface); }
.app-sidebar .workspace-nav a.selected { background: #edf5f3; border-left-color: var(--teal); color: var(--teal); }
.sidebar-settings { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 16px; }
.sidebar-settings h2 { margin: 0; padding: 10px 14px; font-size: 14px; font-weight: 650; color: var(--ink); }
.sidebar-settings-links { margin-top: 6px; padding-left: 12px; }
.has-sidebar > .page { margin-left: 248px; max-width: none; }
@media (max-width: 760px) {
  .workspace-header { position: relative; height: auto; min-height: 68px; flex-wrap: wrap; padding: 16px; gap: 12px; }
  .workspace-header .account-nav { width: 100%; justify-content: space-between; gap: 12px; }
  .workspace-header .account-identity { display: flex; flex: 1; justify-content: flex-end; font-size: 12px; }
  .workspace-header .team-switcher { max-width: 45%; }
  .workspace-header .team-switcher summary { font-size: 13px; gap: 6px; }
  .workspace-header .team-menu { min-width: 200px; }
  .app-sidebar { position: static; width: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .sidebar-toggle { display: flex; align-items: center; justify-content: space-between; padding: 16px; cursor: pointer; font-weight: 650; }
  .sidebar-content { padding: 8px 16px 20px; }
  .sidebar-menu:not([open]) > .sidebar-content { display: none; }
  .has-sidebar > .page { margin-left: 0; }
}

.identity-avatar, .workspace-header .team-avatar { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%; background: #edf2f6; color: var(--muted); }
.workspace-header .team-avatar { object-fit: contain; padding: 3px; }
.workspace-header .team-chevron { flex-shrink: 0; align-self: center; }
.workspace-header .team-name { min-width: 0; }
.workspace-header .team-switcher summary { align-items: center; line-height: 1.3; }
.workspace-header .team-menu { left: 0; right: auto; }
@media (max-width: 760px) {
  .workspace-header .account-nav { gap: 8px; }
  .workspace-header .account-identity { gap: 6px; }
  .workspace-header .identity-avatar, .workspace-header .team-avatar { width: 28px; height: 28px; }
}

.navigation-icon { flex-shrink: 0; }
.app-sidebar .workspace-nav a, .sidebar-settings h2, .sidebar-content > a { display: flex; align-items: center; gap: 10px; }

.calendar-month-heading { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.calendar-month-heading h1 { margin: 0; }
.calendar-icon-button { width: 40px; min-height: 40px; padding: 8px; }
.calendar-toolbar { justify-content: flex-end; align-items: center; }
.calendar-timezone { font-size: 14px; color: var(--muted); }
.season-modal { margin: auto; width: min(800px, calc(100% - 32px)); max-height: 90dvh; overflow-y: auto; border: 1px solid var(--line); border-radius: 14px; padding: 28px; color: var(--ink); }
.season-modal::backdrop { background: #18304266; }
.season-modal-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.season-modal-heading h2 { margin: 0; }
.season-period-row { display: grid; grid-template-columns: 1.2fr 1fr 1fr 32px; gap: 12px; align-items: center; }
.season-builder .form-note { margin-bottom: 20px; }
@media (max-width: 760px) { .season-period-row { grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); margin-bottom: 16px; } .season-modal { padding: 20px; } .calendar-month-heading { gap: 12px; } }

.calendar.month .calendar-day.outside-month { background: #f2f5f7; }
.calendar.month .calendar-day.outside-month > * { opacity: .45; }
.calendar.month .calendar-day.outside-month:focus-within > *,
.calendar.month .calendar-day.outside-month:hover > * { opacity: 1; }

.badge.position-gk { background: #fff1cc; color: #775500; }
.badge.position-cb { background: #e3edfc; color: #245493; }
.badge.position-fb { background: #dcf3ef; color: #17645a; }
.badge.position-md { background: #ede5fa; color: #654192; }
.badge.position-wg { background: #ffe8d8; color: #944713; }
.badge.position-st { background: #fbe2e8; color: #94334d; }
.country-flag { display: inline-block; margin-right: 5px; font-size: 18px; vertical-align: middle; }
.player-age { margin-left: 4px; color: var(--muted); }

.shirt-number {
  display: inline-block;
  min-width: 2ch;
  font-family: "Impact", "Haettenschweiler", "Arial Narrow", sans-serif;
  font-size: 28px;
  font-weight: 900;
  font-stretch: condensed;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1;
  letter-spacing: .5px;
  color: var(--blue);
  text-align: center;
}

.profile-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; flex-wrap: wrap; }
.profile-header .profile-actions .button { margin-left: 0; }
.confirmation-modal { margin: auto; width: min(480px, calc(100% - 32px)); max-height: 90dvh; overflow-y: auto; padding: 28px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); }
.confirmation-modal::backdrop { background: #18304266; }
.confirmation-modal p { color: var(--muted); margin-bottom: 24px; }
@media (max-width: 760px) { .profile-actions { width: 100%; margin-left: 0; } }

.squad-group { margin-bottom: 28px; }
.squad-group > h2 { font-size: 16px; margin-bottom: 12px; }
.squad-group > h2 .muted { font-weight: 400; }
.squad-card { display: grid; grid-template-columns: minmax(220px, 1.4fr) 60px minmax(200px, 1fr) minmax(140px, .8fr) auto; gap: 24px; align-items: center; background: white; border: 1px solid var(--line); border-radius: 12px; padding: 22px 24px; margin-bottom: 12px; }
.squad-identity { display: flex; align-items: center; gap: 16px; min-width: 0; }
.squad-identity h3 { font-size: 18px; margin: 0 0 8px; overflow-wrap: anywhere; }
.squad-photo { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; flex-shrink: 0; }
.squad-detail { font-size: 14px; }
.squad-detail > .muted { display: block; font-size: 12px; margin-bottom: 8px; }
.squad-actions { display: flex; align-items: center; gap: 8px; }
.player-editor-modal { margin: auto; width: min(700px, calc(100% - 32px)); max-height: 90dvh; overflow: auto; border: 1px solid var(--line); border-radius: 14px; padding: 28px; color: var(--ink); }
.player-editor-modal::backdrop { background: #18304266; }
.player-editor-modal .form-panel { padding: 0; margin: 0; border: 0; max-width: none; }
@media (max-width: 1200px) { .squad-card { grid-template-columns: minmax(200px, 1fr) 60px 1fr; } .squad-actions { justify-content: flex-end; grid-column: 2 / -1; } }
@media (max-width: 760px) { .squad-card { grid-template-columns: minmax(0, 1fr) 50px; gap: 18px; padding: 18px; } .squad-detail { grid-column: 1 / -1; } .squad-actions { grid-column: 1 / -1; justify-content: flex-start; } .player-editor-modal { padding: 20px; } }

.player-placeholder { display: flex; align-items: center; justify-content: center; background: #eaf1f5; color: #607d8f; }
.player-placeholder .navigation-icon { width: 32px; height: 32px; }

dialog .form-actions { justify-content: flex-end; }
dialog .form-actions > .archive-action { margin-right: auto; }
dialog .form-actions .button { flex: 0 0 auto; }

.account-identity { color: var(--ink); text-decoration: none; border-radius: 6px; }
.account-identity:hover .account-name { text-decoration: underline; }
.account-photo { object-fit: cover; }
.account-password { margin-top: 28px; }

.team-settings-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.team-settings-columns .form-panel { width: 100%; max-width: none; margin: 0; }
.staff-contact-group { margin-top: 28px; }
.staff-contact-group h3 { font-size: 15px; margin-bottom: 12px; }
.staff-contact { display: flex; flex-direction: column; gap: 8px; padding: 18px 0; border-top: 1px solid var(--line); overflow-wrap: anywhere; font-size: 14px; }
@media (max-width: 900px) { .team-settings-columns { grid-template-columns: 1fr; } }

.account-settings-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.account-settings-columns .form-panel { width: 100%; max-width: none; margin: 0; }
.account-settings-columns .form-actions { justify-content: flex-end; }
@media (max-width: 900px) { .account-settings-columns { grid-template-columns: 1fr; } }
