:root{--app-accent:#333;--app-accent-light:#444}.homepage{background:linear-gradient(135deg,#f9f9f9,#ececec);color:#333;display:flex;flex-direction:column;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100vh}.homepage-header{background:#333;background:var(--app-accent);box-shadow:0 2px 6px #00000026;color:#fff;padding:3rem 1rem 2rem;text-align:center}.homepage-header h1{font-size:2.5rem;margin-bottom:.5rem}.homepage-header p{font-size:1.2rem;opacity:.9}.homepage-main{flex:1 1;padding:2rem 1rem;text-align:center}.homepage-main p{font-size:1.1rem;margin-bottom:1.5rem}.homepage-link{background:#333;background:var(--app-accent);border-radius:8px;color:#fff;display:inline-block;font-weight:600;padding:.75rem 1.5rem;text-decoration:none;transition:background .3s ease,transform .2s ease}.homepage-link:hover{transform:translateY(-2px)}.homepage-link:active{transform:translateY(0)}.homepage-footer{background:#f1f1f1;border-top:1px solid #ddd;color:#444;color:var(--app-accent-light);font-size:.9rem;padding:1rem;text-align:center}@media (max-width:600px){.homepage-header h1{font-size:2rem}.homepage-link{max-width:300px;width:100%}}.loading-overlay{align-items:center;background:#fff;color:#333;display:flex;flex-direction:column;font-size:1.2rem;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.spinner{animation:spin .8s linear infinite;border:4px solid #ccc;border-radius:50%;border-top-color:#000;height:40px;margin-bottom:1rem;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.spielergebnis{background-color:var(--calender-accent-color);border-radius:4px;display:inline-block;margin-left:12px;min-height:16px;min-width:23px;padding:2px 5px 2px 7px;position:relative;text-align:center}.spielergebnis.live{animation:pulseRed 3s ease-in-out infinite;background-color:#8b0000!important}@keyframes pulseRed{0%{background-color:#8b0000}45%{background-color:#d61d1d}65%{background-color:#d61d1d}to{background-color:#8b0000}}.spielergebnis a{color:#fff;letter-spacing:2px;text-decoration:none}.spielergebnis.hidden{display:none!important}.spielergebnis.loading{border-radius:4px;color:#0000;overflow:hidden}.spielergebnis.loading:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#fff0,#fff9 50%,#fff0);content:"";height:100%;left:0;position:absolute;top:0;width:100%}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.event-item{background-color:#e9ecef;border:1px solid #ced4da;border-left:4px solid var(--calender-accent-color);border-radius:3px;font-size:.75em;margin:5px 0;padding:12px;position:relative;transition:background-color .3s}.event-item h4{margin:0 0 12px}.event-item:hover{background-color:#d3d3d3}.event-header{align-items:flex-start;display:flex;justify-content:space-between}.spiel-ergebnis{margin-left:auto}.event-info{display:flex;flex-direction:column;gap:4px}.time{color:#6c757d;font-size:.9em}.liga-info,.title{font-weight:700}.liga-info{margin-bottom:8px;text-align:center}.liga-info a{text-decoration:none!important}.liga-info,.liga-info a{color:#666}.past-day .liga-info,.past-day .liga-info a{color:#999}@media (max-width:768px){.event-info{align-items:center;flex-direction:row;flex-wrap:wrap}.event-info div{margin:0}.liga-info{text-align:left}}.corner-marker.home{--bg-color:var(--accent-color-home);--text-color:var(--accent-color-home-invert)}.corner-marker.away{--bg-color:var(--accent-color-away);--text-color:var(--accent-color-away-invert)}.corner-marker.other{--bg-color:var(--accent-color-other);--text-color:var(--accent-color-other-invert)}.corner-marker{align-items:flex-start;background:var(--bg-color);-webkit-clip-path:polygon(100% 0,100% 100%,0 0);clip-path:polygon(100% 0,100% 100%,0 0);color:var(--text-color);display:flex;font-size:12px;height:25px;justify-content:flex-end;padding:4px;position:absolute;right:0;top:0;width:25px;z-index:1}.corner-marker svg{position:absolute;right:4px;top:4px}:root{--accent-color-today:#ca8f08}.day-column{background-color:#fff;border-radius:5px;box-shadow:0 2px 5px #0000001a;flex:1 1;margin:0 4px;min-height:75vh;padding:10px}.day-column.empty-week{min-height:0}.day-column.today{border:2px solid #ca8f08;border:2px solid var(--accent-color-today)}.day-column.past-day .event-item{background-color:#fff}.day-column.past-day .day-column-header{opacity:.65}.day-column-header{min-height:3.5em}.day-column.empty-week .day-column-header{min-height:0}@media (max-width:768px){.day-column{margin:8px 0;min-height:0}.day-column.no-events{display:none}.day-column-header{min-height:0}.day-column-header h4{margin-bottom:12px;margin-top:12px;min-height:0}}.week-view{background:#f4f4f4;display:flex;flex-direction:column;padding:0 .6rem}.day-column-container{display:flex;flex-direction:row;justify-content:space-between}.week-placeholder{color:#666;font-style:italic;padding:1rem;text-align:center}@media (max-width:768px){.day-column-container{flex-direction:column;margin-bottom:3rem}}.week-header{align-items:center;background:#f4f4f4;display:flex;justify-content:space-between;margin-bottom:8px;padding:.6rem}.week-header a{color:inherit;text-decoration:none}.week-header-left h3{margin:0}.week-header-left p{color:#666;margin:.25rem 0 0}.week-header-right{display:flex;gap:0}.week-header-text{align-items:center;display:flex;gap:.5rem}.todayIcon{cursor:pointer;font-size:1.6em}.week-header-text.current-week{font-weight:700}.week-nav-button{border:1px solid #ccc;border-radius:4px;cursor:pointer;font-weight:500;margin-left:8px;padding:.5rem 1rem;transition:background-color .2s ease}@media (max-width:768px){.week-header{border-bottom:1px solid #efefef;position:-webkit-sticky;position:sticky;text-align:center;top:55px;z-index:900}.week-nav-button{margin-left:0}}.WeekViewPage{margin:auto}.drawer{background:#f9f9f9;box-shadow:2px 0 8px #0003;height:100%;overflow-y:auto;position:fixed;right:-350px;top:0;transition:right .3s ease;width:350px;z-index:1001}.drawer h3{margin-top:0}.drawer.open{right:0}.drawer-content{overflow-y:auto;padding:1rem}.drawer-close{background:none;border:none;cursor:pointer;font-size:1.5rem;position:absolute;right:10px;top:16px}.drawer-backdrop{background:#0000004d;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:999}ul.calendar-list{list-style:none;margin:0;padding:0}ul.calendar-list li{align-items:center;background-color:#f3f3f3;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.5rem 1rem;transition:background .2s ease}ul.calendar-list li:hover{background-color:#e0e0e0}ul.calendar-list li a{color:#333;text-decoration:none}div.calender-group-heading{color:var(--calender-accent-color)}.icon-link{color:#666;font-size:1.2rem;margin-left:8px;transition:color .2s ease}.app-header{align-items:center;background-color:#f5f5f5;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:998}.app-header h3{font-size:1.25rem;font-weight:700;margin:0;text-align:center}.app-header .displayed-calenders{color:#999;font-size:13px;text-align:center}.menu-button{background:none;border:none;cursor:pointer;font-size:1.5rem;padding:.75rem .8rem .25rem}@media (max-width:768px){button,select{color:inherit}.app-header{background:#333;color:#fff;padding:4px 0}.app-header button,.app-header select{color:#fff}.app-header .displayed-calenders{color:#ccc}.menu-button{color:#fff}}.VereinsCalendar{background:#f4f4f4;height:100vh}body{background:#333;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0}:root{--accent-color-home:#555;--accent-color-home-invert:#fff;--accent-color-away:#fff;--accent-color-away-invert:#333;--accent-color-other:#ca8f08;--accent-color-other-invert:#fff;--accent-color-erwachsene:#0056b3;--accent-color-jugend:#cc5c00}.vereinskalender{--calender-accent-color:var(--accent-color-other)}.erwachsene{--calender-accent-color:var(--accent-color-erwachsene)}.jugend{--calender-accent-color:var(--accent-color-jugend)}a{color:#000}.mobile-only{display:none}.web-only{display:inline-block}@media (max-width:768px){.mobile-only{display:inline-block}.web-only{display:none}}
/*# sourceMappingURL=main.f0e3da36.css.map*/