:root{font-family:"Inter","Segoe UI",system-ui,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;--bg:#f4f6f8;--card:#fff;--primary:#1f3a5f;--primary-dark:#162b45;--accent:#3fa9f5;--border:#e0e6ed;--text:#1f2937;--muted:#637487;--navy:var(--primary);--blue:var(--primary);--line:var(--border)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:17px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:9px;padding:10px 15px;font-weight:650;transition:background .15s}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e5b442;outline-offset:3px}[hidden]{display:none!important}.top{background:var(--navy);color:#fff;padding:19px max(5vw,20px);display:flex;align-items:center;justify-content:space-between}.top nav{display:flex;align-items:center;gap:24px;font-size:14px}.top nav a{text-decoration:none;opacity:.9}.top .quiet{color:#fff;border-color:#ffffff40}main{max-width:1380px;margin:auto;padding:40px 4vw}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.8px;color:var(--blue);margin:0 0 10px}h1{font-size:clamp(30px,3.5vw,46px);letter-spacing:-1.6px;line-height:1.15;margin:0 0 12px}h2{font-size:19px;letter-spacing:-.4px;margin:0}h3{font-size:15px;margin:0 0 9px}.intro>div>p:last-child{color:var(--muted);font-size:14px;line-height:1.6;margin:0}.connection{border:1px solid var(--line);background:#fff;border-radius:30px;padding:10px 16px;font-size:12px;white-space:nowrap}.connection.ok:before{content:"";display:inline-block;width:7px;height:7px;background:#23966a;border-radius:50%;margin-right:8px}.connection.error{background:#fff0eb;color:#934426}.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 12px #122f4904}.datebar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:22px}.date-controls{display:flex;align-items:center;gap:8px}.datebar h2{font-size:16px;font-weight:550;color:var(--muted)}input,select{border:1px solid #cad5df;border-radius:8px;background:#fff;color:var(--navy);padding:11px 12px;width:100%;min-width:0}.date-controls input{width:159px;font-weight:650}.square{background:#fff;border:1px solid var(--line);font-size:18px;padding:8px 13px}.secondary,.quiet{background:transparent;color:var(--navy);border:1px solid var(--line)}.secondary:hover,.quiet:hover{background:#cddbea30}.layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.calendar-top{padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.legend{display:flex;gap:12px;font-size:11px;color:var(--muted)}.legend span{white-space:nowrap}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}.free{background:#e5f3ed}.reserved{background:#397bb0}.match{background:#eec965}.calendar-scroll{max-height:710px;overflow:auto;border-radius:0 0 10px 10px}.calendar{display:grid;grid-template-columns:52px repeat(6,minmax(60px,1fr));min-width:460px;padding:0 10px 12px;gap:3px}.lane-head,.time-head{position:sticky;top:0;z-index:2;background:#fff;padding:17px 0;text-align:center;font-size:12px;font-weight:750;border-bottom:1px solid var(--line);margin-bottom:6px}.time-label{font-size:10px;color:#708394;align-self:center;text-align:center;font-variant-numeric:tabular-nums}.slot{height:30px;min-width:0;padding:3px;border-radius:5px;background:#edf7f2;border:1px solid #d6eade;color:#366b55;font-size:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500}.slot:disabled{opacity:1;cursor:default}.slot:not(:disabled):hover{background:#cbe8d9;border-color:#80b69b}.slot.booked{background:#e3effa;border-color:#c2d8ec;color:#205381}.slot.blocked{background:#fcf0c9;border-color:#f1dc98;color:#785a14}.slot.past{background:#f1f3f5;border-color:#e9edf1;color:#a2adb7}.slot.selected{background:var(--primary);color:#fff;border-color:var(--primary-dark)}.slot.attention{background:#fce4df;color:#933c24;border-color:#efbeb1}.calendar-foot{font-size:11px;color:var(--muted);padding:0 20px 5px;line-height:1.5}.form-card{padding:25px}.form-card h2{font-size:23px;margin-bottom:22px}label{display:block;font-size:12px;font-weight:650;margin:17px 0 7px}fieldset{margin:0;padding:0;border:0;min-width:0}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.selection{font-size:12px;line-height:1.6;min-height:55px;margin-top:19px;padding:11px;background:#f3f6fa;border-radius:8px}.primary{display:block;width:100%;background:var(--blue);color:#fff;padding:13px 14px;margin-top:16px}.primary:hover{background:var(--primary-dark)}.hint{font-size:11px;line-height:1.7;color:var(--muted);margin:16px 0 0}.rules{padding:24px 8px}.rules p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.bookings-card{margin-top:26px;overflow:hidden}.count{color:var(--muted);font-size:12px}.booking-row{padding:18px 24px;display:flex;align-items:center;gap:18px;border-bottom:1px solid #edf0f4}.booking-row:last-child{border-bottom:0}.lane-badge{background:#f0f4f8;border:1px solid var(--line);border-radius:10px;min-width:49px;padding:7px;text-align:center;font-size:10px;color:var(--muted)}.lane-badge strong{display:block;font-size:21px;color:var(--navy)}.booking-description{flex:1;min-width:0}.booking-description strong{font-size:14px;overflow-wrap:anywhere}.booking-description p{font-size:12px;margin:5px 0 0;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}.booking-status{border-radius:6px;padding:5px 9px;font-size:11px;white-space:nowrap;background:#eff4f9;color:#3e6281}.booking-status.active{background:#e4f4ed;color:#24744f}.booking-status.attention,.booking-status.blocked,.booking-status.missed{background:#fff0db;color:#855921}.empty{padding:32px;text-align:center;font-size:13px;color:var(--muted)}.message{border:1px solid #ccdfef;border-radius:10px;padding:14px 18px;background:#edf6fd;font-size:13px;line-height:1.6}.message.error{background:#fff1e8;border-color:#efd0b9;color:#823f23}.footer-note{text-align:center;font-size:11px;color:var(--muted);margin-top:24px}.login-card{max-width:430px;margin:45px auto;padding:28px}.login-card p{color:var(--muted);font-size:14px;line-height:1.6}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}@media(max-width:950px){.layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.calendar-top{padding:18px 16px;align-items:flex-start;flex-direction:column}.form-card{padding:21px}.intro{align-items:flex-start;flex-direction:column}.datebar h2{display:none}}@media(max-width:700px){main{padding:28px 16px}.top{padding:17px 20px}.top nav{gap:14px;font-size:12px}.layout{grid-template-columns:minmax(0,1fr)}.calendar-scroll{max-height:480px}.layout aside{display:grid;grid-template-columns:1fr}.rules{padding:24px 12px 0}.calendar-top{flex-direction:row;align-items:center;flex-wrap:wrap}.booking-row{padding:16px;gap:10px;flex-wrap:wrap}.booking-status{margin-left:auto}.booking-row button{margin-left:59px}.datebar{gap:10px}.datebar>button{font-size:11px;padding:8px}.date-controls{gap:5px}.date-controls input{width:148px;font-size:13px}.date-controls .secondary{font-size:12px;padding:10px}.intro{margin-bottom:25px}.footer-note{line-height:1.6}}

.people-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.people-fields small{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:6px}.price-box{display:flex;align-items:center;justify-content:space-between;background:#eff6fd;border-radius:9px;padding:14px 12px;margin-top:20px}.price-box span{font-size:12px;color:var(--muted)}.price-box strong{font-size:22px;color:var(--blue)}.booking-status.awaiting_payment,.booking-status.cancelling_payment{background:#fff1ce;color:#7e5b11}.slot.awaiting{background:#fff7dd;border-color:#ebd69b;color:#796023}.booking-actions{display:flex;gap:8px;flex-wrap:wrap}.booking-actions button{font-size:11px;padding:9px 11px}.payment-detail{color:#275d86!important}.booking-description .payment-error{color:#924023}.booking-description .refund-ok{color:#24744f}@media(max-width:700px){.booking-actions{margin-left:59px}.booking-row .booking-actions button{margin-left:0}}
.swish-link{text-align:center;text-decoration:none}.booking-actions .swish-link{width:auto;margin:0;font-size:11px;padding:9px 11px;border-radius:9px}.payment-countdown{font-size:13px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--navy)}

.field-label{font-size:12px;font-weight:650;margin:17px 0 7px}.lane-players{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lane-player{border:1px solid var(--line);border-radius:9px;padding:9px;background:#f8fafc;min-width:0}.lane-player:has(input:checked){background:#edf6fd;border-color:var(--blue)}.lane-player label{margin:0 0 7px;display:flex;align-items:center;gap:7px}.lane-player input{width:16px;height:16px;margin:0;flex-shrink:0}.lane-player select{font-size:11px;padding:7px 3px}.lane-player small{font-size:10px;color:var(--muted);display:block;line-height:1.4}.players-summary{font-size:12px;line-height:1.6;color:var(--muted)}.booking-description .lane-members{font-size:11px;white-space:pre-line}.lane-badge.group-badge{max-width:100px}.lane-badge.group-badge strong{font-size:16px}

.choice-card{max-width:700px;margin:35px auto;padding:28px}.choice-card>p{color:var(--muted);line-height:1.6}.booking-choices{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.choice-button{text-align:left;border:1px solid var(--line);background:#f5f8fc;padding:22px;min-height:116px;color:var(--navy)}.choice-button:hover{border-color:var(--blue);background:#edf6fd}.choice-button strong,.choice-button span{display:block}.choice-button strong{font-size:17px;line-height:1.4}.choice-button span{font-weight:400;font-size:13px;line-height:1.6;margin-top:8px}.card-benefit{padding:12px;background:#e4f4ed;color:#24744f;border-radius:8px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.top nav{flex-wrap:wrap}#signup-toggle{margin-top:12px}@media(max-width:700px){.booking-choices{grid-template-columns:1fr}.top nav{max-width:245px;justify-content:flex-end;gap:9px}.choice-card{padding:23px}}
.check-field{display:flex;align-items:center;gap:9px}.check-field input{width:auto}#card-form{max-width:480px}#card-accounts .booking-row{flex-wrap:wrap;overflow-wrap:anywhere}#card-accounts .booking-row button{margin-left:auto}

.card-plan-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-button[aria-pressed="true"]{border-color:var(--blue);background:#eef8f3}#shop-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}#shop-workspace[hidden]{display:none}#shop-orders .booking-row{flex-wrap:wrap}#shop-orders .booking-row p{width:100%;margin:0;font-size:13px;line-height:1.6}#shop-orders .booking-row .swish-link{width:auto;margin:0;border-radius:9px}@media(max-width:700px){.card-plan-choices,#shop-workspace{grid-template-columns:1fr}}


/* The public site palette, white container and original league logo. */
.booking-shell{width:92%;max-width:1400px;margin:32px auto;padding:28px;background:var(--card);border-radius:14px;box-shadow:0 10px 25px rgba(0,0,0,.08)}
.top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:0;margin-bottom:24px;background:transparent;color:var(--primary);gap:16px}.top nav{justify-self:start;justify-content:flex-start;min-width:0;gap:8px;background:#eef3f9;border-radius:999px;padding:6px;max-width:100%}.top nav a,.top .quiet{margin:0;padding:9px 14px;color:var(--primary);border:0;border-radius:999px;font-size:13px;opacity:1;text-decoration:none}.top nav a:hover,.top .quiet:hover{background:#e0e6ed}.top nav a:focus-visible{outline-color:var(--accent)}
/* Crop the original 978 × 273 banner to its central 220 × 220 logo area (370, 14). */
.logo-container{width:88px;height:88px;margin:0;justify-self:end}.logo-link{position:relative;display:block;width:100%;height:100%;overflow:hidden;border-radius:50%;margin:0;padding:0;background:#fff}.league-logo{position:absolute;display:block;width:444.545455%;max-width:none;height:auto;left:-168.181818%;top:-6.363636%;margin:0}

/* Day, week and month use the same availability and whole-hour rules. */
.calendar-top{flex-wrap:wrap;flex-direction:row;align-items:center}.calendar-heading{flex:1;min-width:150px}.calendar-period{font-size:14px;font-weight:500;color:var(--muted);margin:5px 0 0;text-transform:capitalize}.calendar-view-switch{display:flex;gap:3px;padding:4px;background:#eef3f9;border:1px solid var(--border);border-radius:11px}.calendar-view-switch button{min-height:40px;padding:8px 16px;font-size:13px;color:var(--primary);background:transparent;border-radius:7px}.calendar-view-switch button[aria-pressed="true"]{background:var(--primary);color:#fff;box-shadow:0 2px 5px #1f3a5f20}.calendar-view-switch button:hover{background:#e0e6ed}.calendar-view-switch button[aria-pressed="true"]:hover{background:var(--primary-dark)}.calendar-top .legend{flex-basis:100%;gap:16px}.calendar-view-status{font-size:11px;color:var(--muted);line-height:1.5;min-height:17px;margin:12px 18px}
.week-calendar{display:grid;grid-template-columns:42px repeat(7,minmax(80px,1fr));min-width:650px;gap:4px;padding:0 10px 12px}.week-corner,.week-day{position:sticky;top:0;z-index:2;background:#f8fafc;border-bottom:1px solid var(--border);color:var(--primary)}.week-corner{left:0;z-index:4;text-align:center;font-size:11px;padding-top:22px}.week-day{padding:10px 4px;border-radius:7px;text-align:center}.week-day span,.week-day strong,.week-day small{display:block}.week-weekday{text-transform:capitalize;font-size:11px;font-weight:500}.week-date{font-size:12px;margin:2px 0}.week-opening{font-size:9px;color:var(--muted);font-weight:400}.week-day.is-today{background:#e7f3fc}.week-day.is-current{box-shadow:inset 0 -3px var(--accent)}.week-time{position:sticky;left:0;z-index:1;background:#fff;font-size:10px;color:var(--muted);text-align:center;display:grid;place-items:center;font-variant-numeric:tabular-nums}.week-slot{height:48px;padding:4px;border:1px solid #d6eade;border-radius:6px;font-size:10px;font-weight:500;line-height:1.4;color:#366b55;background:#edf7f2}.week-slot:disabled{opacity:1;cursor:default}.week-slot:not(:disabled):hover{background:#cbe8d9;border-color:#80b69b}.week-slot.partial{background:#edf6fd;border-color:#c2d8ec;color:#205381}.week-slot.reserved{background:#e3effa;border-color:#c2d8ec;color:#205381}.week-slot.match{background:#fcf0c9;border-color:#f1dc98;color:#785a14}.week-slot.closed,.week-slot.past{background:#f1f3f5;border-color:#e9edf1;color:#8997a4}.week-slot.unknown{background:#f8fafc;border-color:var(--border);color:var(--muted)}
.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:0 12px 14px}.month-weekday{text-align:center;font-size:12px;font-weight:650;color:var(--muted);padding:8px 0}.month-day{min-width:0;min-height:100px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 8px;text-align:left;background:#edf7f2;border:1px solid #d6eade;border-radius:9px;color:#366b55;overflow-wrap:anywhere}.month-day:hover{border-color:var(--primary);box-shadow:0 2px 7px #1f3a5f10}.month-date{font-size:16px;font-weight:700;line-height:1.3;color:var(--primary)}.month-availability{font-size:11px;line-height:1.4;font-weight:550}.month-capacity{font-size:9px;line-height:1.5;font-weight:400;color:var(--muted)}.month-day.partial{background:#edf6fd;border-color:#c2d8ec;color:#205381}.month-day.reserved{background:#e3effa;border-color:#c2d8ec;color:#205381}.month-day.match{background:#fcf0c9;border-color:#f1dc98;color:#785a14}.month-day.past,.month-day.outside-month{background:#f8fafc;border-color:#edf0f4;color:#8997a4}.month-day.outside-month .month-date{color:#a2adb7}.month-day.unknown{background:#f8fafc;border-color:var(--border);color:var(--muted)}.month-day.is-current{outline:2px solid var(--accent);outline-offset:-2px}.month-day.is-today .month-date{display:grid;place-items:center;background:var(--primary);color:#fff;border-radius:50%;width:26px;height:26px;margin:-2px 0}
@media(max-width:700px){.calendar-heading{min-width:130px}.calendar-top{gap:12px}.calendar-view-switch{width:100%}.calendar-view-switch button{flex:1;min-height:42px;font-size:13px;padding:8px 10px}.calendar-period{font-size:13px}.calendar-view-status{margin:10px 12px}.month-calendar{gap:3px;padding:0 6px 10px}.month-weekday{font-size:10px}.month-day{min-height:84px;border-radius:6px;padding:7px 3px;gap:6px}.month-date{font-size:14px}.month-availability{font-size:9px;line-height:1.4}.month-capacity{display:none}.week-calendar{padding:0 6px 10px}}
main{max-width:none;margin:0;padding:0}.intro{padding-bottom:22px;border-bottom:1px solid var(--border)}h1{color:var(--primary);font-size:2.1rem;font-weight:700;letter-spacing:.2px}h2,h3{color:var(--primary)}.card{border-radius:14px;box-shadow:0 8px 18px rgba(0,0,0,.04)}.choice-card{max-width:840px}.choice-button{background:#edf1f6}.choice-button:hover{background:#eef3f9}.primary{border-radius:8px;font-weight:600;text-align:center;text-decoration:none}.slot{height:44px;font-size:11px}.lane-head{color:var(--primary);background:#f8fafc}.calendar-scroll{max-height:750px}.connection{border-color:var(--border);background:#f8fafc}.secondary,.quiet{border-radius:8px}.form-card h2{font-size:1.3rem}.rules{padding-bottom:0}
@media(max-width:700px){body{font-size:14px}.booking-shell{width:100%;margin:0;padding:14px 10px 24px;border-radius:0;box-shadow:none}.top{gap:12px;margin-bottom:18px}.top nav{border-radius:13px;width:100%;gap:5px;justify-content:flex-start}.top nav a,.top .quiet{font-size:12px;min-height:40px;padding:9px 10px;border-radius:9px}.logo-container{width:64px;height:64px}main{padding:0}.intro{padding:0 6px 18px}.intro h1{font-size:1.8rem}.calendar-scroll{max-height:530px}.choice-card{margin:22px auto;padding:22px}.booking-row{padding:16px 14px}.datebar{padding:0 4px}.layout{gap:18px}.slot{height:44px}.card-plan-choices .choice-button{min-height:100px}}

.login-card a.shop-forgot-link{display:inline-flex;align-items:center;min-height:42px;padding:8px 12px;margin-top:8px;border-radius:9px;border:1px solid #d5e3f1;text-decoration:underline;text-underline-offset:3px;font-size:13px;font-weight:700;color:#235b8d;background:#f7fafd}
.login-card a.shop-forgot-link:focus-visible{outline:3px solid #c68a20;outline-offset:3px}

/* Age-qualified training card: display one non-interactive plan only. */
#shop-plan-section .card-plan-choices{grid-template-columns:minmax(0,1fr)}
#shop-plan-section .choice-button{cursor:default;border-color:#b6d8c5;background:#f0f8f3;max-width:570px}
#shop-identity-section{max-width:680px;margin:20px auto}
#shop-identity-section label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:11px;font-size:13px;line-height:1.55}
#shop-identity-section label input[type=checkbox]{flex:none;width:19px;height:19px;margin:1px 0 0}

.member-name-field{position:relative}.member-name-options{position:absolute;z-index:20;inset:calc(100% + 4px) 0 auto;border:1px solid var(--line);border-radius:9px;background:var(--card,#fff);box-shadow:0 8px 24px #173a5e24;max-height:240px;overflow-y:auto;overscroll-behavior:contain}.member-name-options[hidden]{display:none}.member-name-options [role=option]{padding:12px;font-size:15px;font-weight:600;line-height:1.5;cursor:pointer;overflow-wrap:anywhere;color:var(--text)}.member-name-options [role=option]+[role=option]{border-top:1px solid var(--line)}.member-name-options [role=option]:hover,.member-name-options [aria-selected=true]{background:#e5f0fb;color:#173a5e;box-shadow:inset 3px 0 #246399}.member-name-help.hint,.member-name-status.hint{margin-top:8px}.member-name-status.hint{font-size:12px}
@media screen{
  html[data-theme="dark"] .member-name-options{background:#1c2d40;border-color:#7898b6;box-shadow:0 10px 30px #0008}
  html[data-theme="dark"] .member-name-options [role="option"]{color:#f3f7fd}
  html[data-theme="dark"] .member-name-options [role="option"]+[role="option"]{border-top-color:#46617a}
  html[data-theme="dark"] .member-name-options [role="option"]:hover,html[data-theme="dark"] .member-name-options [aria-selected="true"]{background:#315e86;color:#fff;box-shadow:inset 3px 0 #9fcdff}
}

.lane-player-name{margin-top:12px}.lane-player-name>label{font-size:11px}.lane-player .lane-player-name input{width:100%;height:auto;margin:0;padding:9px;font-size:13px}.lane-player-name .member-name-options{min-width:150px}.lane-player-name>small{margin-top:7px}

/* Keep the selected time readable before all booking details are filled in. */
#calendar .slot.selected{background:#245683;color:#fff;border-color:#8dc5ff;font-size:12px;font-weight:750;box-shadow:inset 0 0 0 1px #8dc5ff;font-variant-numeric:tabular-nums}
.selection{white-space:pre-line;font-size:13px;font-weight:600}
@media screen{
  html[data-theme="dark"] #calendar .slot.selected{background:#245683!important;color:#fff!important;border-color:#8dc5ff!important}
}

.series-reservations{margin:16px 20px;padding:12px 15px;border:1px solid #edcf7c;border-radius:10px;background:#fff7df;color:#664b0f;font-size:12px;line-height:1.6}
.series-reservations strong,.series-reservations span{display:block}.series-reservations strong{font-weight:750}.series-reservations div+div{margin-top:9px}
.month-series{display:block;color:#785a14;font-size:10px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
html[data-theme="dark"] .series-reservations{background:#332b18;border-color:#6b5729;color:#f3d484}
html[data-theme="dark"] .month-series{color:#f3d484}

:root {
  --booking-private: #173558;
  --booking-elit: #276a47;
  --booking-para: #f5b6d0;
  --booking-vasteras: #f3d56c;
  --booking-sm-flag: linear-gradient(to right, transparent 31.25%, #fecc00 31.25% 43.75%, transparent 43.75%),
    linear-gradient(to bottom, transparent 40%, #fecc00 40% 60%, transparent 60%) #006aa7;
}
[data-calendar-kind="private"] {
  --event-background: var(--booking-private);
  --event-foreground: #fff;
  --event-border: #537597;
}
[data-calendar-kind="elit"] {
  --event-background: var(--booking-elit);
  --event-foreground: #fff;
  --event-border: #488563;
}
[data-calendar-kind="para"] {
  --event-background: var(--booking-para);
  --event-foreground: #551432;
  --event-border: #db82aa;
}
[data-calendar-kind="vasteras"] {
  --event-background: var(--booking-vasteras);
  --event-foreground: #503908;
  --event-border: #c6a44b;
}
[data-calendar-kind="sm"] {
  --event-background: var(--booking-sm-flag);
  --event-foreground: #fff;
  --event-border: #006aa7;
}
.legend {
  min-width: 0;
  flex-wrap: wrap;
  gap: 6px 12px;
}
.legend i[data-calendar-kind] {
  background: var(--event-background);
  border: 1px solid var(--event-border);
}
.legend i[data-calendar-kind="sm"] {
  width: 16px;
  height: 10px;
  border: 0;
  border-radius: 1px;
}
.calendar-event,
#calendar .slot[data-calendar-kind] {
  background: var(--event-background);
  color: var(--event-foreground);
  border-color: var(--event-border);
}
html[data-theme="dark"] #calendar .slot[data-calendar-kind] {
  background: var(--event-background) !important;
  color: var(--event-foreground) !important;
  border-color: var(--event-border) !important;
}
.calendar-event {
  display: block;
  width: fit-content;
  max-width: 100%;
  border: 1px solid var(--event-border);
  border-radius: 4px;
  padding: 1px 4px;
  font-size: .95em;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.calendar-event[data-calendar-kind="sm"] {
  padding: 3px 5px;
}
.calendar-flag-label {
  display: inline-block;
  max-width: 100%;
  padding: 0 3px;
  border-radius: 3px;
  background: #173558;
  color: #fff;
  vertical-align: middle;
}
#calendar .slot .calendar-flag-label {
  overflow: hidden;
  text-overflow: ellipsis;
}
.week-slot:has(.calendar-event) {
  min-height: 48px;
  height: auto;
}
.week-slot .calendar-event {
  margin: 2px auto 0;
}
.week-slot.match:has(.calendar-event) {
  background: var(--card);
  border-color: var(--border);
}
html[data-theme="dark"] #calendar-overview .week-slot.match:has(.calendar-event) {
  background: var(--theme-raised) !important;
  border-color: var(--theme-line) !important;
}
.series-reservations {
  background: var(--card);
  border-color: var(--border);
  color: var(--text);
}
.series-reservations .calendar-event {
  margin-bottom: 3px;
}
