.pa-shell { --pa-green:#103f32; --pa-lime:#dcf7a2; color:#17382f; }
.pa-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom:18px; }
.pa-heading h2 { margin:0 0 4px; font-size:clamp(1.5rem,3vw,2rem); color:inherit; }
.pa-heading p { margin:0; }
.pa-controls { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-bottom:16px; }
.pa-controls label { display:grid; gap:6px; font-size:1rem; font-weight:700; }
.pa-controls input,.pa-controls select { min-height:44px; }
.pa-quick,.pa-period-switch { display:flex; flex-wrap:wrap; gap:6px; }
.pa-day-nav { display:flex; gap:6px; align-items:center; }
.pa-shell .pa-narrow-label { display:none; }
.pa-date-caption { margin:12px 0 0; line-height:1.4; }
.pa-shell .pa-toggle { background:#fff; color:#17382f; border:1px solid #95aaa2; border-radius:9px; min-height:44px; padding:8px 14px; font:inherit; font-weight:700; cursor:pointer; }
.pa-shell .pa-toggle[aria-pressed="true"] { color:#fff; background:#103f32; border-color:#103f32; }
.pa-legend { display:flex; flex-wrap:wrap; gap:10px 18px; margin:16px 0; font-size:.875rem; }
.pa-key { display:flex; gap:6px; align-items:center; }
.pa-key:before { content:""; width:14px; height:14px; border-radius:4px; border:1px solid #83978e; background:#dcf7a2; }
.pa-key.busy:before { background:repeating-linear-gradient(135deg,#d4dcd8 0 3px,#edf0ee 3px 6px); }
.pa-key.mine:before { background:#255dc9; border-color:#255dc9; }
.pa-key.selected:before { background:#103f32; border-color:#103f32; }
.pa-period { border:1px solid #bdcdc5; border-radius:16px; background:#fff; padding:12px; margin-bottom:16px; overflow:hidden; }
.pa-period-title { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:0 2px 10px; color:#17382f; }
.pa-period-title h3 { margin:0; font-size:1.05rem; }
.pa-period-title span { font-size:.875rem; }
.pa-courts,.pa-grid { display:grid; grid-template-columns:49px repeat(2,minmax(0,1fr)); gap:6px; }
.pa-courts { margin-bottom:6px; align-items:center; font-size:1rem; }
.pa-courts > strong { padding:12px 6px; color:#fff; background:#103f32; text-align:center; border-radius:8px; }
.pa-courts > span { font-size:.875rem; }
.pa-grid { grid-auto-rows:64px; isolation:isolate; }
.pa-hour { font-size:.875rem; font-weight:700; padding-top:10px; color:#39534a; }
.pa-shell .pa-block { min-width:0; margin:0; border:1px solid transparent; border-radius:8px; padding:7px 10px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; font:inherit; font-size:.875rem; line-height:1.25; text-align:left; box-shadow:none; overflow-wrap:anywhere; }
.pa-block strong { font-size:1rem; }
.pa-block small { font-size:.875rem; }
.pa-shell .pa-free { background:#dcf7a2; border-color:#b3d56f; color:#173a20; cursor:pointer; }
.pa-shell .pa-free:hover { background:#c3ef72; border-color:#436b18; }
.pa-shell .pa-selected { background:#103f32; color:#fff; border:2px solid #2d7b58; cursor:pointer; }
.pa-selection-fill { z-index:0; pointer-events:none; background:#103f32; color:#fff; border:2px solid #2d7b58; border-radius:8px; padding:10px; display:flex; flex-direction:column; justify-content:center; gap:3px; font-size:.875rem; }
.pa-selection-fill strong { font-size:1rem; }
.pa-shell .pa-block.pa-selection-hit { z-index:1; background:transparent; border-color:transparent; border-radius:0; opacity:1; }
.pa-shell .pa-selection-hit > strong,.pa-shell .pa-selection-hit > span { visibility:hidden; }
.pa-shell .pa-selection-hit:not(:disabled):hover { background:#ffffff18; }
.pa-shell .pa-selection-hit:focus-visible { outline-offset:-3px; }
.pa-shell .pa-mine { background:#255dc9; color:#fff; }
.pa-shell .pa-busy { background:repeating-linear-gradient(135deg,#e0e6e2 0 6px,#edf0ee 6px 12px); color:#394a41; border-color:#ccd5ce; }
.pa-shell .pa-short { color:#173a20; background:#dcf7a2; border:1px solid #b3d56f; opacity:1; }
.pa-shell .pa-short strong,.pa-shell .pa-past strong { font-size:.875rem; font-weight:500; }
.pa-shell .pa-past { background:#f3f4f4; color:#636c67; opacity:1; }
.pa-shell .pa-cancel { font:inherit; font-size:.875rem; background:transparent; color:inherit; border:0; padding:5px 0; text-decoration:underline; cursor:pointer; min-height:32px; }
.pa-shell .pa-block:has(.pa-cancel) { flex-direction:row; flex-wrap:wrap; align-content:center; justify-content:space-between; }
.pa-shell .pa-block:has(.pa-cancel) small { width:100%; }
.pa-shell .pa-block[style$="span 1"]:has(.pa-cancel) > span { display:none; }
.pa-shell .pa-block[style$="span 1"]:has(.pa-cancel) { gap:0; padding-top:3px; padding-bottom:3px; }
.pa-end { margin-top:8px; font-size:.875rem; color:#526a5d; }
.pa-help { color:#526a5d; font-size:.875rem; line-height:1.5; }
.pa-shell :is(button,input,select,a):focus-visible { outline:3px solid #db7915; outline-offset:3px; }
.pa-selection { position:sticky; bottom:12px; z-index:12; background:#103f32; color:#fff; border-radius:14px; padding:16px; display:flex; justify-content:space-between; align-items:center; gap:12px; box-shadow:0 6px 24px #092e332a; margin-top:16px; }
.pa-selection strong,.pa-selection span { display:block; }
.pa-shell .pa-confirm { color:#103f32; background:#dcf7a2; border:0; border-radius:9px; padding:12px 20px; font:inherit; font-weight:800; min-height:46px; cursor:pointer; }
.pa-shell .pa-confirm:disabled { background:#d3ded7; color:#526258; cursor:not-allowed; }
.pa-reservations { margin-top:24px; }
.pa-reservations summary { cursor:pointer; font-weight:700; padding:12px 0; }
.pa-reservations .agenda-list { margin-top:12px; }
body.padel-sport { background:#eef3ef; }
.padel-sport .top { background:#103f32; color:#fff; border:0; }
.padel-sport .top h1,.padel-sport .top .sub { color:#fff; }
.padel-sport .top .ghost { color:#fff; background:transparent; border-color:#7b9d8d; flex-shrink:0; }
.padel-sport .padel-community-brand { min-width:0; }
.padel-sport .padel-community-brand > div { min-width:0; }
.padel-sport .wrap { max-width:980px; }
.padel-sport .reserve-card { background:transparent; border:0; box-shadow:none; padding:0; }
.padel-sport .pa-heading { margin-top:8px; }
.padel-sport .pa-heading h2 { font-size:clamp(1.7rem,4vw,2.5rem); }
.padel-sport #timeline { display:block; }
.pa-native { display:flex; flex-wrap:wrap; gap:12px; }
.pa-native label { flex:1; min-width:120px; }
.padel-sport .day-list .item { grid-template-columns:minmax(110px,auto) 1fr auto; }
.padel-sport .day-list .time { white-space:nowrap; font-size:1rem; }
.pa-cancel-dialog { width:min(440px,calc(100% - 32px)); border:0; border-radius:16px; padding:24px; color:#17382f; background:#fff; }
.pa-cancel-dialog::backdrop { background:#072c32aa; }
.pa-cancel-dialog h2 { margin:0 0 12px; }
.pa-cancel-dialog p { line-height:1.5; }
.pa-cancel-dialog > div { display:flex; flex-wrap:wrap; gap:10px; }
.pa-cancel-dialog button { font:inherit; padding:12px; border-radius:8px; cursor:pointer; border:1px solid #879b91; background:white; color:#17382f; }
.pa-cancel-dialog [data-remove] { background:#a52332; color:#fff; border-color:#a52332; }
@media (max-width:600px) {
  .pa-period { padding:8px; border-radius:12px; }
  .pa-courts,.pa-grid { grid-template-columns:43px repeat(2,minmax(0,1fr)); gap:4px; }
  .pa-courts { font-size:.875rem; }
  .pa-grid { grid-auto-rows:64px; }
  .pa-shell .pa-block { padding:6px; }
  .pa-block strong { font-size:.875rem; }
  .pa-controls { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:start; gap:14px 12px; margin-bottom:16px; }
  .pa-controls .pa-day-nav { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px 44px; gap:8px; }
  .pa-controls label { min-width:0; gap:6px; font-size:.875rem; line-height:1.4; }
  .pa-controls .pa-date-field { grid-column:1; }
  .pa-controls .pa-duration-field { grid-column:2; }
  .pa-controls .pa-door-field { grid-column:1/-1; }
  .pa-controls input,.pa-controls select { display:block; box-sizing:border-box; width:100%; min-width:0; max-width:100%; height:48px; margin:0; padding:0 10px; font-size:16px; line-height:normal; }
  .pa-controls input[type="date"] { -webkit-appearance:none; appearance:none; overflow:hidden; }
  .pa-controls input[type="date"]::-webkit-date-and-time-value { text-align:left; min-height:1.4em; }
  .pa-controls input[type="date"]::-webkit-datetime-edit { min-width:0; padding:0; }
  .pa-controls input[type="date"]::-webkit-datetime-edit-fields-wrapper { padding:0; }
  .pa-shell .pa-toggle { min-width:0; padding:10px 8px; font-size:.875rem; }
  .pa-period-switch { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .pa-shell .pa-wide-label { display:none; }
  .pa-shell .pa-narrow-label { display:inline; }
  .pa-date-caption { font-size:.875rem; margin-top:14px; }
  .pa-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; margin:16px 0; }
  .pa-key:before { flex-shrink:0; }
  .padel-sport .top { gap:8px; padding:10px 12px; }
  .padel-sport .top h1 { font-size:1rem; }
  .padel-sport .top .community-logo-small { width:40px; height:40px; }
  .padel-sport .top .sub { font-size:.875rem; line-height:1.35; }
  .padel-sport .pa-heading h2 { display:none; }
  .padel-sport .pa-heading { margin:4px 0 16px; }
  .padel-sport .top .ghost { padding:8px 12px; font-size:.875rem; }
  .padel-sport .day-list .item { grid-template-columns:1fr; }
  .pa-selection[data-has-selection="false"] { display:none; }
  .pa-selection { bottom:calc(8px + env(safe-area-inset-bottom,0px)); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; padding:12px; margin-bottom:env(safe-area-inset-bottom,0px); }
  .pa-selection > div { min-width:0; font-size:.875rem; line-height:1.4; }
  .pa-selection .pa-confirm { padding:12px 14px; font-size:.875rem; }
  .pa-heading { align-items:start; }
  .pa-heading p { font-size:.875rem; }
}
