/* Calm club week, using the Verein colour tokens where available. */
.ccal,.ccal-overlay{--ccal-bg:var(--c-white,var(--bg,#fff));--ccal-fg:var(--c-black,var(--fg,#111));--ccal-muted:var(--c-muted,var(--muted,#737373));--ccal-faint:var(--c-faint,var(--muted,#737373));--ccal-line:var(--c-line,var(--line,#e5e5e5));--ccal-surface:var(--c-surface-2,var(--panel,#f5f5f5));--ccal-hover:var(--c-hover,var(--panel,#f5f5f5));--ccal-blue:var(--c-fill,#2b75ee);color:var(--ccal-fg)}
:root[data-theme="dark"] .ccal,:root[data-theme="dark"] .ccal-overlay{--ccal-bg:#000}
.ccal{width:100%;min-width:0;padding:28px 32px 32px;box-sizing:border-box}
.ccal h1{margin:0;font-size:28px;font-weight:650;letter-spacing:-.5px;line-height:1.3}
.ccal-toolbar{display:flex;align-items:center;gap:16px;margin-top:22px;flex-wrap:wrap}
.ccal-range{font-size:16px;font-weight:600;flex:1;white-space:nowrap}.ccal-range small{font-size:13px;font-weight:400;color:var(--ccal-faint);margin-left:8px}
.ccal-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ccal-select,.ccal-button{height:36px;border:1px solid var(--ccal-line);border-radius:999px;background:var(--ccal-bg);color:var(--ccal-fg);font-size:13px;font-weight:500;box-sizing:border-box}
.ccal-select{width:auto;min-width:116px;padding:0 34px 0 14px;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ccal-faint) 50%),linear-gradient(135deg,var(--ccal-faint) 50%,transparent 50%);background-position:calc(100% - 17px) 15px,calc(100% - 12px) 15px;background-size:5px 5px;background-repeat:no-repeat}
.ccal-button{display:inline-grid;place-items:center;padding:0 14px;min-width:36px;cursor:pointer;margin:0}.ccal-button:hover{background:var(--ccal-hover)}.ccal-button[aria-pressed=true]{background:var(--ccal-fg);color:var(--ccal-bg);border-color:var(--ccal-fg)}.ccal-button:disabled{opacity:.35;cursor:default}
.ccal-arrow{width:36px;padding:0}.ccal svg,.ccal-overlay svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ccal-scroll{margin-top:18px;overflow-x:auto;max-width:100%;border:1px solid var(--ccal-line);border-radius:16px;background:var(--ccal-bg)}
.ccal-week{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));min-width:826px}
.ccal-day{min-height:calc(100dvh - 280px);border-left:1px solid var(--ccal-line);display:flex;flex-direction:column;min-width:0}.ccal-day:first-child{border-left:0}
.ccal-day-head{display:flex;align-items:center;gap:8px;padding:14px 14px 10px}.ccal-day-head span{font-size:12px;color:var(--ccal-faint);font-weight:500}.ccal-day-head b{font-size:15px;font-weight:500;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-variant-numeric:tabular-nums}.ccal-weekend .ccal-day-head b{font-weight:700}.ccal-today .ccal-day-head b{background:var(--ccal-blue);color:#fff;font-weight:600}
.ccal-events{display:flex;flex-direction:column;gap:2px;padding:0 8px 12px}
.ccal-event{display:grid;grid-template-columns:8px 40px minmax(0,1fr);gap:6px;align-items:baseline;text-align:left;padding:5px 6px;border:0;border-radius:8px;font-size:12.5px;color:var(--ccal-muted);background:transparent;cursor:pointer;line-height:1.4;width:100%;margin:0;box-sizing:border-box}.ccal-event:hover{background:var(--ccal-hover)}
.ccal-event i{width:7px;height:7px;border-radius:50%;background:var(--ccal-team);align-self:center}.ccal-time{font-variant-numeric:tabular-nums;color:var(--ccal-faint);white-space:nowrap}.ccal-event-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ccal-game .ccal-event-title{grid-column:2;white-space:normal;overflow-wrap:anywhere}.ccal-game i{align-self:start;margin-top:5px}.ccal-game{grid-template-columns:8px minmax(0,1fr);gap:3px 6px;background:var(--ccal-surface);color:var(--ccal-fg);padding:7px 6px;margin:2px 0}.ccal-game b{font-weight:600}.ccal-game small{display:block;font-size:11.5px;color:var(--ccal-faint);font-weight:400;margin-top:1px}.ccal-open .ccal-event-title{color:var(--ccal-faint)}.ccal-requested{display:block}
.ccal-error{margin:14px 0 0;font-size:13px;color:var(--ccal-muted)}.ccal-error[hidden]{display:none}
.ccal-overlay{position:fixed;inset:0;z-index:1150;background:rgb(0 0 0 / .35)}
.ccal-panel{position:absolute;inset:0 0 0 auto;width:440px;max-width:100%;background:var(--ccal-bg);border-left:1px solid var(--ccal-line);box-shadow:-12px 0 36px rgb(0 0 0 / .15);display:flex;flex-direction:column}
.ccal-panel-head{display:flex;align-items:flex-start;gap:10px;padding:20px 24px 6px}.ccal-panel-head>div{flex:1;min-width:0}.ccal-panel-head h2{font-size:19px;font-weight:650;letter-spacing:-.3px;margin:0;overflow-wrap:anywhere}.ccal-panel-head p{font-size:13px;color:var(--ccal-muted);margin:3px 0 0}
.ccal-close{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:var(--ccal-faint);background:transparent;border:0;cursor:pointer;flex-shrink:0;margin:0;padding:0}.ccal-close:hover{background:var(--ccal-hover);color:var(--ccal-fg)}
.ccal-panel-body{flex:1;overflow:auto;padding:18px 24px 20px}.ccal-details{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 12px;font-size:13px;margin:0}.ccal-details dt{color:var(--ccal-muted)}.ccal-details dd{margin:0;overflow-wrap:anywhere}
.ccal-panel-foot{display:flex;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--ccal-line)}.ccal-primary{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--ccal-blue);color:#fff;text-decoration:none;padding:10px 15px;font-size:13px;font-weight:600}.ccal-primary:hover{filter:brightness(1.07)}
.ccal button:focus-visible,.ccal select:focus-visible,.ccal-overlay button:focus-visible,.ccal-overlay a:focus-visible{outline:2px solid var(--ccal-blue);outline-offset:3px}
@media(max-width:700px){.ccal{padding:20px 16px}.ccal h1{font-size:24px}.ccal-toolbar{gap:12px;margin-top:18px}.ccal-range{flex-basis:100%;font-size:15px}.ccal-controls{gap:8px;width:100%}.ccal-select{flex:1;min-width:110px;max-width:220px}.ccal-day{min-height:calc(100dvh - 240px)}.ccal-panel-head{padding-top:24px}.ccal-panel-foot{padding-bottom:max(16px,env(safe-area-inset-bottom))}}
/* The legacy phone chrome has dark local tokens; calendar content follows the selected theme. */
@media(max-width:760px){:root:not([data-theme="dark"]) .ccal,:root:not([data-theme="dark"]) .ccal-overlay{--ccal-bg:#fff;--ccal-fg:#0A0A0A;--ccal-muted:#525252;--ccal-faint:#6B6B6B;--ccal-line:#E5E5E5;--ccal-surface:#EFEFEF;--ccal-hover:#F5F5F5}}
