:root{--hero-grad-start:#0074d9;--hero-grad-end:#00c3ff;--hero-text:#fff}body.darkmode{--hero-grad-start:#004e92;--hero-grad-end:#000428;--hero-text:#fff}body{background:#f8f9fa;font-family:'Segoe UI',Arial,sans-serif;transition:background .3s ease,color .3s ease;min-height:100vh;display:flex;flex-direction:column}.container{transition:all .3s ease}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.1);overflow:hidden;transition:all .3s cubic-bezier(.4, 0, .2, 1);border:1px solid #e9ecef}.calendar:hover{box-shadow:0 12px 40px rgba(0,0,0,.15)}.calendar-header-cell{background:linear-gradient(135deg,#e9ecef,#dee2e6);text-align:center;font-weight:600;padding:12px 0;border-bottom:2px solid #dee2e6;color:#495057;font-size:1.05em;text-transform:uppercase;letter-spacing:.5px}.calendar-day{min-height:60px;padding:6px 4px 4px 6px;background:#fff;border:1px solid #f1f3f4;text-align:left;font-size:1.1em;position:relative;transition:all .3s cubic-bezier(.4, 0, .2, 1);cursor:pointer;overflow:hidden}.calendar-day::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s}.calendar-day:hover::before{left:100%}.calendar-day:hover:not(.empty){transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.15);z-index:10;background:#e3f2fd;border-color:#2196f3}.calendar-day.empty{background:0 0;border:none;cursor:default}.calendar-day.ferien{background:linear-gradient(135deg,#d1f5d3,#a5d6a7)!important;border-color:#7ed957!important;position:relative;overflow:hidden}.calendar-day.ferien::before{content:'🎓';position:absolute;top:2px;right:2px;font-size:.8em;opacity:.7}.calendar-day.feiertag{background:linear-gradient(135deg,#fff3cd,#ffe082)!important;border-color:#ffc107!important;position:relative;overflow:hidden}.calendar-day.feiertag::before{content:'🎉';position:absolute;top:2px;right:2px;font-size:.8em;opacity:.7}.calendar-day.today{border:3px solid #388e3c;background:linear-gradient(135deg,#fff,#e8f5e8)!important;font-weight:700;color:#333;box-shadow:0 4px 15px rgba(56,142,60,.3);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 4px 15px rgba(56,142,60,.3)}50%{box-shadow:0 4px 20px rgba(56,142,60,.5)}100%{box-shadow:0 4px 15px rgba(56,142,60,.3)}}.calendar-day.saturday,.calendar-day.sunday{background:#fff3e0!important;border-color:#ffcc80!important;color:#e65100!important;position:relative}.calendar-day.saturday::after,.calendar-day.sunday::after{content:'🌅';position:absolute;top:2px;right:2px;font-size:.7em;opacity:.6}.badge{font-size:.7em;margin-left:3px;vertical-align:middle;border-radius:6px;padding:2px 6px;font-weight:500;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:all .3s ease}.badge:hover{transform:scale(1.1)}.calendar-legend{display:flex;gap:2em;align-items:center;font-size:1.05em;padding:1em;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);margin:1.5em 0;text-align:center}.calendar-legend>span{display:inline-flex!important;align-items:center;gap:.5em;width:auto!important;height:auto!important;border-radius:8px!important;margin:0 .5em 0 0!important;padding:.3em 1em!important;font-size:1em}.calendar-legend>span>span{width:auto!important;height:auto!important;border-radius:0!important;margin:0!important;font-size:1.2em;display:inline!important}.calendar-legend .legend-ferien{background-color:var(--bs-info-bg-subtle)}.calendar-legend .legend-feiertag{background-color:var(--bs-warning-bg-subtle)}.legend-feiertag,.legend-ferien{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:6px;font-weight:500;transition:all .3s ease}.legend-ferien{background:linear-gradient(135deg,#d1f5d3,#a5d6a7);border:2px solid #7ed957;color:#2e7d32}.legend-feiertag{background:linear-gradient(135deg,#fff3cd,#ffe082);border:2px solid #ffc107;color:#e65100}.legend-feiertag:hover,.legend-ferien:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.ferien-summary{width:100%;background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.08);border-collapse:collapse;margin-top:1.5em;overflow:hidden;border:1px solid #e9ecef}.ferien-summary th{background:linear-gradient(135deg,#f1f3f4,#e9ecef);font-weight:600;color:#495057;padding:12px 16px;border:1px solid #dee2e6;text-transform:uppercase;letter-spacing:.5px;font-size:.9em}.ferien-summary td{padding:10px 16px;border:1px solid #e9ecef;transition:background .3s ease}.ferien-summary tr:hover td{background:#f8f9fa}#brueckentage-box,#ferien-countdown,#ferien-planer{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:1em 1.2em;margin-bottom:1em;font-size:1.08em;color:#333}#ferien-countdown{font-size:1.2em;font-weight:600;color:#0d6efd}#brueckentage-box{background:#e3f2fd;border-left:5px solid #90caf9}#print-view{display:inline-block}@media print{.container,body{background:#fff!important;color:#000!important}#export-ics,#export-ics-all,#export-pdf,#goto-today,#print-view,.accordion,.btn,.calendar-legend,nav{display:none!important}.calendar,.ferien-summary{box-shadow:none!important;border-radius:0!important}}.accordion-button{font-size:1.1em}@media (max-width:768px){.calendar-day{min-height:45px;font-size:1em;padding:4px 2px 2px 4px}.calendar-header-cell{font-size:.9em;padding:8px 0}.calendar-legend{flex-direction:column;gap:1em;text-align:center}#feature-bar{flex-direction:column;gap:.5em}.year-btn{min-width:60px;font-size:1em}}#kalender-monat-jahr{cursor:pointer;text-decoration:underline dotted #0d6efd;transition:color .2s}#kalender-monat-jahr:focus,#kalender-monat-jahr:hover{color:#0d6efd;background:#e3f2fd;border-radius:4px}.calendar-controls .btn-group{gap:.5em}.accordion,.accordion-body,.accordion-button,.accordion-item{display:none!important}#year-nav{justify-content:flex-start;margin-bottom:1.2em}.year-btn{min-width:80px;font-size:1.1em;font-weight:500;border-radius:8px;transition:all .3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden}.year-btn.active{background:linear-gradient(135deg,#0d6efd,#0056b3);color:#fff;border-color:#0d6efd;box-shadow:0 4px 15px rgba(13,110,253,.4);transform:scale(1.05)}.year-btn:hover:not(.active){transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.1)}#feature-bar{gap:.8em;flex-wrap:wrap;margin-bottom:1.5em;padding:1em;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.05)}#feature-bar .btn-group label{min-width:90px}#feature-bar .btn{border-radius:8px;font-weight:500;min-height:40px}#toggle-darkmode.active,#toggle-darkmode:focus{background:#222;color:#fff;border-color:#222}body.darkmode{background:#181a1b;color:#e0e0e0}body.darkmode #brueckentage-box,body.darkmode #ferien-countdown,body.darkmode #ferien-planer,body.darkmode .calendar,body.darkmode .container,body.darkmode .ferien-planer-box{background:#23272b!important;color:#e0e0e0!important}body.darkmode .calendar-day{background:#23272b;color:#e0e0e0;border-color:#333}body.darkmode .calendar-day:hover:not(.empty){background:#2c3034;border-color:#4a9eff;box-shadow:0 8px 25px rgba(0,0,0,.4)}body.darkmode .calendar-day.saturday,body.darkmode .calendar-day.sunday{background:linear-gradient(135deg,#3d2c1b,#2c1f15)!important;border-color:#ff9800!important;color:#ffcc80!important}body.darkmode .calendar-day.ferien{background:linear-gradient(135deg,#244c2c,#1b3a1b)!important;border-color:#7ed957!important;color:#d1f5d3!important}body.darkmode .calendar-day.feiertag{background:linear-gradient(135deg,#5c4a1a,#4a3a15)!important;border-color:#ffe082!important;color:#fff3cd!important}body.darkmode .calendar-day.today{background:linear-gradient(135deg,#23272b,#1b1f23)!important;border-color:#7ed957;color:#fff;box-shadow:0 4px 15px rgba(126,217,87,.3)}body.darkmode .calendar-header-cell{background:linear-gradient(135deg,#2c3034,#23272b);color:#e0e0e0;border-bottom-color:#333}body.darkmode .badge{background:#333!important;color:#fff!important}body.darkmode .legend-ferien{background:linear-gradient(135deg,#244c2c,#1b3a1b);border-color:#7ed957}body.darkmode .legend-feiertag{background:linear-gradient(135deg,#5c4a1a,#4a3a15);border-color:#ffe082}body.darkmode .ferien-summary{background:#23272b;color:#e0e0e0}body.darkmode .btn-outline-dark,body.darkmode .btn-outline-primary,body.darkmode .btn-outline-secondary,body.darkmode .btn-outline-success,body.darkmode .btn-outline-warning{border-color:#444;color:#e0e0e0}body.darkmode .btn-outline-dark:hover,body.darkmode .btn-outline-primary:hover,body.darkmode .btn-outline-secondary:hover,body.darkmode .btn-outline-success:hover,body.darkmode .btn-outline-warning:hover{background:#333;color:#fff}.loading{opacity:.6;pointer-events:none}.loading::after{content:'';position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #f3f3f3;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.btn{transition:all .3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden}.btn::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:hover::before{width:300px;height:300px}.btn:active{transform:scale(.95)}.calendar-day:focus{outline:3px solid #2196f3;outline-offset:2px}.btn:focus{outline:3px solid #2196f3;outline-offset:2px}.tooltip{font-size:.9em;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15)}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7);z-index:9999;display:flex;align-items:center;justify-content:center}.loading-spinner{width:3rem;height:3rem;border:.4rem solid #007bff;border-top:.4rem solid #fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.darkmode .loading-overlay{background:rgba(0,0,0,.8)}body.printview #brueckentage-box,body.printview #feature-bar,body.printview #ferien-countdown,body.printview #ferien-planer,body.printview #year-nav,body.printview .btn,body.printview .calendar-legend,body.printview nav{display:none!important}body.printview .container{max-width:100vw!important;padding:0!important}body.printview #ferienkalender,body.printview .ferien-summary{box-shadow:none!important;border-radius:0!important;width:100%!important;margin:0!important}body.printview .calendar{box-shadow:none!important;border-radius:0!important;border:2px solid #000!important}body.printview .calendar-day{border:1px solid #ccc!important;min-height:50px!important}body.printview footer{display:none!important}#quick-nav{position:fixed;top:20px;right:20px;z-index:1000}.quick-nav-toggle{width:50px;height:50px;background:linear-gradient(135deg,#0d6efd,#0056b3);color:#fff;border:none;border-radius:50%;font-size:1.5em;cursor:pointer;box-shadow:0 4px 15px rgba(13,110,253,.3);transition:all .3s cubic-bezier(.4, 0, .2, 1);display:flex;align-items:center;justify-content:center}.quick-nav-toggle:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(13,110,253,.4)}.quick-nav-menu{position:absolute;top:60px;right:0;width:280px;background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.15);padding:1.5em;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s cubic-bezier(.4, 0, .2, 1);border:1px solid #e9ecef}#quick-nav.active .quick-nav-menu{opacity:1;visibility:visible;transform:translateY(0)}.quick-nav-header{font-size:1.2em;font-weight:600;color:#495057;margin-bottom:1em;text-align:center;border-bottom:2px solid #e9ecef;padding-bottom:.5em}.quick-nav-section{margin-bottom:1.5em}.quick-nav-title{font-size:.9em;font-weight:600;color:#6c757d;margin-bottom:.5em;text-transform:uppercase;letter-spacing:.5px}.quick-nav-btn{display:block;width:100%;padding:.5em 1em;margin-bottom:.3em;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#495057;text-align:left;cursor:pointer;transition:all .3s ease;font-size:.9em}.quick-nav-btn:hover{background:#e9ecef;transform:translateX(5px)}#statistics-panel{position:fixed;top:20px;left:20px;z-index:1000}.stats-toggle{width:50px;height:50px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;border-radius:50%;font-size:1.5em;cursor:pointer;box-shadow:0 4px 15px rgba(40,167,69,.3);transition:all .3s cubic-bezier(.4, 0, .2, 1);display:flex;align-items:center;justify-content:center}.stats-toggle:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(40,167,69,.4)}.stats-content{position:absolute;top:60px;left:0;width:320px;background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.15);padding:1.5em;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s cubic-bezier(.4, 0, .2, 1);border:1px solid #e9ecef}#statistics-panel.active .stats-content{opacity:1;visibility:visible;transform:translateY(0)}.stats-header{font-size:1.2em;font-weight:600;color:#495057;margin-bottom:1.5em;text-align:center;border-bottom:2px solid #e9ecef;padding-bottom:.5em}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1em;margin-bottom:1.5em}.stat-item{text-align:center;padding:1em;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px;border:1px solid #dee2e6}.stat-value{font-size:1.8em;font-weight:700;color:#0d6efd;margin-bottom:.3em}.stat-label{font-size:.8em;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}#search-container{margin:1.5em 0;position:relative}.search-bar{display:flex;max-width:500px;margin:0 auto;background:#fff;border-radius:25px;box-shadow:0 4px 15px rgba(0,0,0,.1);overflow:hidden;border:2px solid #e9ecef;transition:all .3s ease;position:relative}.search-bar:focus-within{border-color:#0d6efd;box-shadow:0 4px 20px rgba(13,110,253,.2)}#search-input{flex:1;padding:.8em 1.2em;border:none;outline:0;font-size:1em;background:0 0}#search-btn{padding:.8em 1.2em;background:linear-gradient(135deg,#0d6efd,#0056b3);color:#fff;border:none;cursor:pointer;font-size:1.1em;transition:all .3s ease;min-width:50px}#search-btn:hover{background:linear-gradient(135deg,#0056b3,#004085)}.search-results{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:100%;max-width:500px;background:#fff;border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,.1);margin-top:.5em;max-height:300px;overflow-y:auto;display:none;z-index:1000;border:1px solid #e9ecef}.search-results-header{padding:.8em 1em;background:#f8f9fa;font-weight:600;color:#495057;border-bottom:1px solid #e9ecef;position:sticky;top:0}.search-result-item{display:flex;align-items:center;padding:.8em 1em;cursor:pointer;transition:background .3s ease;border-bottom:1px solid #f8f9fa}.search-result-item:hover{background:#f8f9fa}.search-result-item:last-child{border-bottom:none}.search-result-icon{font-size:1.2em;margin-right:.8em;flex-shrink:0}.search-result-content{flex:1;min-width:0}.search-result-name{font-weight:600;color:#495057;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-date{font-size:.9em;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-no-results{padding:1em;text-align:center;color:#6c757d;font-style:italic}@media (max-width:768px){.search-bar{max-width:100%;border-radius:20px;margin:0 1em}#search-input{padding:.7em 1em;font-size:16px}#search-btn{padding:.7em 1em;min-width:45px}.search-results{left:1em;right:1em;transform:none;max-width:none;width:auto;max-height:250px;border-radius:12px}.search-result-item{padding:1em;min-height:60px}.search-result-icon{font-size:1.5em;margin-right:1em}#quick-nav{top:10px;right:10px}.quick-nav-toggle{width:45px;height:45px;font-size:1.3em}.quick-nav-menu{width:280px;right:0;left:auto;max-height:80vh;overflow-y:auto}#statistics-panel{top:10px;left:10px}.stats-toggle{width:45px;height:45px;font-size:1.3em}.stats-content{width:280px;left:0;right:auto;max-height:80vh;overflow-y:auto}.stats-grid{grid-template-columns:1fr;gap:.8em}.stat-item{padding:.8em}.stat-value{font-size:1.5em}.calendar-day{min-height:50px;font-size:1em;padding:4px 2px 2px 4px}.calendar-header-cell{font-size:.9em;padding:8px 0}.calendar-legend{flex-direction:column;gap:1em;text-align:center;padding:1em}.legend-feiertag,.legend-ferien{width:100%;justify-content:center}#feature-bar{flex-direction:column;gap:.8em;padding:1em;margin:1em 0}#feature-bar .btn-group{width:100%;justify-content:center}#feature-bar .btn-group label{min-width:80px;font-size:.9em}#feature-bar .btn{min-height:45px;font-size:.9em}#year-nav{flex-direction:column;gap:.5em;margin-bottom:1em}.year-btn{width:100%;min-width:0;min-height:45px;font-size:1em}.calendar-controls{flex-direction:column;gap:.8em;align-items:stretch}.calendar-controls .btn-group{justify-content:center}.day-details-content{width:95%;margin:1em;max-height:85vh}.day-details-header{padding:1em}.day-details-header h3{font-size:1.1em}.day-details-body{padding:1em}.day-event{flex-direction:column;text-align:center;padding:1em}.event-icon{margin-right:0;margin-bottom:.5em;font-size:1.8em}.btn{min-height:44px;padding:.6em 1em;font-size:1em}.container{padding-left:1em;padding-right:1em}h1{font-size:1.8em;text-align:center}nav{margin-bottom:1em}nav .btn{width:100%;text-align:center}}@media (max-width:480px){.search-bar{margin:0 .5em;border-radius:15px}#search-input{padding:.6em .8em}#search-btn{padding:.6em .8em;min-width:40px}.search-results{left:.5em;right:.5em;max-height:200px}.quick-nav-menu,.stats-content{width:250px}.calendar-day{min-height:45px;font-size:.9em}.calendar-header-cell{font-size:.8em;padding:6px 0}.btn{min-height:40px;font-size:.9em}.container{padding-left:.5em;padding-right:.5em}h1{font-size:1.5em}.calendar-legend{font-size:.9em}.legend-feiertag,.legend-ferien{padding:4px 8px;font-size:.8em}}@media (hover:none) and (pointer:coarse){.calendar-day:hover{transform:none}.calendar-day:active{transform:scale(.95)}.btn:hover{transform:none}.btn:active{transform:scale(.95)}.quick-nav-btn:hover{transform:none}.quick-nav-btn:active{transform:scale(.95)}.search-result-item:hover{background:0 0}.search-result-item:active{background:#f8f9fa}.day-event:hover{transform:none}.day-event:active{transform:scale(.98)}}@media (max-width:768px) and (orientation:landscape){.search-results{max-height:150px}.day-details-content{max-height:70vh}.quick-nav-menu,.stats-content{max-height:60vh}.calendar-day{min-height:40px}}.day-details-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(5px)}.day-details-content{background:#fff;border-radius:12px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.2);animation:modalSlideIn .3s ease}@keyframes modalSlideIn{from{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.day-details-header{display:flex;justify-content:space-between;align-items:center;padding:1.5em;border-bottom:2px solid #e9ecef;background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.day-details-header h3{margin:0;color:#495057;font-size:1.3em}.day-details-close{background:0 0;border:none;font-size:1.5em;color:#6c757d;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.day-details-close:hover{background:#e9ecef;color:#495057}.day-details-body{padding:1.5em}.day-event{display:flex;align-items:center;padding:1em;margin-bottom:1em;border-radius:8px;border:1px solid #e9ecef;transition:all .3s ease}.day-event:hover{transform:translateX(5px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.event-icon{font-size:2em;margin-right:1em;width:50px;text-align:center}.event-details h4{margin:0 0 .3em 0;color:#495057;font-size:1.1em}.event-details p{margin:0;color:#6c757d;font-size:.9em}.ferien-event{background:linear-gradient(135deg,#d1f5d3,#a5d6a7);border-color:#7ed957}.feiertag-event{background:linear-gradient(135deg,#fff3cd,#ffe082);border-color:#ffc107}.weekend-event{background:linear-gradient(135deg,#fff3e0,#ffcc80);border-color:#ff9800}.today-event{background:linear-gradient(135deg,#e8f5e8,#c8e6c9);border-color:#4caf50}.normal-day{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-color:#dee2e6}body.darkmode .day-details-content,body.darkmode .quick-nav-menu,body.darkmode .search-results,body.darkmode .stats-content{background:#23272b;color:#e0e0e0;border-color:#333}body.darkmode .quick-nav-btn{background:#2c3034;border-color:#333;color:#e0e0e0}body.darkmode .quick-nav-btn:hover{background:#333}body.darkmode .stat-item{background:linear-gradient(135deg,#2c3034,#23272b);border-color:#333}body.darkmode .stat-value{color:#4a9eff}body.darkmode .search-bar{background:#23272b;border-color:#333}body.darkmode #search-input{color:#e0e0e0;background:0 0}body.darkmode .search-results-header{background:#2c3034;color:#e0e0e0;border-color:#333}body.darkmode .search-result-item{border-color:#333}body.darkmode .search-result-item:hover{background:#2c3034}body.darkmode .day-details-header{background:linear-gradient(135deg,#2c3034,#23272b);border-color:#333}body.darkmode .day-event{border-color:#333}body.darkmode .ferien-event{background:linear-gradient(135deg,#244c2c,#1b3a1b);border-color:#7ed957}body.darkmode .feiertag-event{background:linear-gradient(135deg,#5c4a1a,#4a3a15);border-color:#ffe082}body.darkmode .weekend-event{background:linear-gradient(135deg,#3d2c1b,#2c1f15);border-color:#ff9800}body.darkmode .today-event{background:linear-gradient(135deg,#1b3a1b,#0f2a0f);border-color:#4caf50}body.darkmode .normal-day{background:linear-gradient(135deg,#2c3034,#23272b);border-color:#333}#jahresuebersicht .month-container{cursor:pointer;transition:all .2s ease-in-out}#jahresuebersicht .month-container:hover{transform:translateY(-5px);box-shadow:0 8px 15px rgba(0,0,0,.1)}#jahresuebersicht .small-calendar{border:1px solid var(--bs-border-color);padding:10px;border-radius:var(--bs-border-radius);background-color:var(--bs-body-bg)}.small-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-size:.75rem;text-align:center;align-items:center;transition:all .2s ease-in-out}.small-calendar-header{font-weight:700}.small-calendar-day{border-radius:var(--bs-border-radius-sm);aspect-ratio:1/1;display:flex;justify-content:center;align-items:center;transition:all .2s ease-in-out}.small-calendar-day:hover{transform:scale(1.1);box-shadow:0 2px 5px rgba(0,0,0,.1)}.small-calendar-day.weekend{background:linear-gradient(135deg,#ffe0b2 60%,#fff3e0 100%)!important;border:2px solid #ff9800!important;color:#e65100!important;position:relative;font-weight:700}.darkmode .small-calendar-day.weekend{background:linear-gradient(135deg,#3d2c1b 60%,#2c1f15 100%)!important;border:2px solid #ff9800!important;color:#ffcc80!important}.small-calendar-day.ferien{background-color:var(--bs-info-bg-subtle);color:var(--bs-emphasis-color)}.small-calendar-day.feiertag{background-color:var(--bs-warning-bg-subtle);color:var(--bs-emphasis-color)}.small-calendar-day.today{border:2px solid var(--bs-primary);font-weight:700;color:var(--bs-primary);background-color:var(--bs-primary-bg-subtle)}.darkmode #jahresuebersicht .month-container:hover{box-shadow:0 8px 15px rgba(255,255,255,.05)}.darkmode .small-calendar-day.today{border-color:var(--bs-primary);color:var(--bs-primary)}.kalender-vergleich-table{width:100%;border-collapse:collapse;background:#fff;margin:1em 0}.kalender-vergleich-table td,.kalender-vergleich-table th{border:1px solid #dee2e6;padding:8px;height:40px;line-height:40px;vertical-align:middle}.kalender-vergleich-table td:first-child,.kalender-vergleich-table th:first-child{min-width:280px;padding:8px 16px;background:#f8f9fa;font-weight:500;text-align:left;position:sticky;left:0;z-index:1;white-space:nowrap}.kalender-vergleich-table td:not(:first-child),.kalender-vergleich-table th:not(:first-child){width:40px;text-align:center}.table-responsive{overflow-x:auto;margin:0;padding:0;width:100%}#homepage-kalender-section .kalender-vergleich-table{width:100%;border-collapse:collapse;background:#fff;margin:1em 0}#homepage-kalender-section .kalender-vergleich-table td,#homepage-kalender-section .kalender-vergleich-table th{border:1px solid #dee2e6;padding:8px;height:40px;line-height:40px;vertical-align:middle}#homepage-kalender-section .kalender-vergleich-table td:first-child,#homepage-kalender-section .kalender-vergleich-table th:first-child{min-width:280px;padding:8px 16px;background:#f8f9fa;font-weight:500;text-align:left;position:sticky;left:0;z-index:1;white-space:nowrap}#homepage-kalender-section .kalender-vergleich-table td:not(:first-child),#homepage-kalender-section .kalender-vergleich-table th:not(:first-child){width:40px;text-align:center}#homepage-kalender-section .table-responsive{overflow-x:auto;margin:0;padding:0;width:100%}.main-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;background:var(--header-bg);border-bottom:1px solid var(--border-color);margin-bottom:0;transition:box-shadow .2s;z-index:1002}.main-header .main-nav{display:flex;gap:.6rem;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#007bff #e9ecef;max-width:100vw}.main-header .dropdown-toggle,.main-header .main-nav a{color:var(--text-color);text-decoration:none;font-weight:500;font-size:.98rem;padding:.4rem .5rem;border-radius:6px;transition:background .18s,color .18s;white-space:nowrap;outline:0}.main-header .main-nav a.active,.main-header .main-nav a:focus,.main-header .main-nav a:hover{background:#e3f2fd;color:#007bff}.main-header .main-nav a.active{font-weight:700;background:#007bff;color:#fff}.menu-toggle{font-size:2rem;color:#007bff;background:0 0;border:none;cursor:pointer;z-index:1003}.mobile-menu-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.35);z-index:1001;transition:opacity .25s;opacity:0}.mobile-menu-overlay.show{display:block;opacity:1}.mobile-nav{display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;background:#f8fafd;box-shadow:0 8px 32px rgba(0,0,0,.18);border-bottom-left-radius:18px;border-bottom-right-radius:18px;padding:1.2rem 1.2rem 1.5rem 1.2rem;z-index:1004;transform:translateY(-110%);transition:transform .28s cubic-bezier(.4,2,.6,1);opacity:0;pointer-events:none}.mobile-nav.open{transform:translateY(0);opacity:1;pointer-events:auto}.mobile-link{font-size:1.18rem;font-weight:600;color:#007bff;padding:1rem .7rem;border-radius:8px;margin-bottom:.2rem;display:block;transition:background .18s,color .18s;outline:0}.mobile-link.active,.mobile-link:focus,.mobile-link:hover{background:#e3f2fd;color:#0056b3}.mobile-ferien-group{background:#f1f7ff!important;border:1.5px solid #e3eafc;margin-bottom:.7rem!important}.mobile-ferien-group .btn{font-size:1.15rem;font-weight:700;color:#007bff;background:0 0;border:none;padding-left:0;padding-right:0}.mobile-ferien-group .btn:focus,.mobile-ferien-group .btn:hover{background:#e3f2fd;color:#0056b3}.mobile-ferien-group .collapse a{font-size:1.08rem;font-weight:500;color:#007bff;padding:.8rem .5rem .8rem 2.2rem;border-radius:6px;margin-bottom:.1rem;background:0 0;display:block}.mobile-ferien-group .collapse a.active,.mobile-ferien-group .collapse a:focus,.mobile-ferien-group .collapse a:hover{background:#e3f2fd;color:#0056b3}.mobile-nav hr{border-top:1.5px solid #e3eafc;margin:.7rem 0}@media (min-width:768px){.mobile-menu-overlay,.mobile-nav{display:none!important}.main-header .main-nav{display:flex!important}}@media (max-width:767.98px){.main-header .main-nav{display:none!important}.menu-toggle{display:block!important}}.hero-section{background:linear-gradient(90deg,var(--hero-grad-start) 0,var(--hero-grad-end) 100%);color:var(--hero-text);padding:4rem 0 3rem 0;text-align:center;position:relative;overflow:hidden;margin-bottom:2.5rem}.hero-section .hero-content{position:relative;z-index:2;max-width:700px;margin:0 auto}.hero-section h1{font-size:2.8rem;font-weight:800;margin-bottom:1rem;letter-spacing:-1px;color:var(--hero-text)}.hero-section p{font-size:1.25rem;margin-bottom:2.2rem;opacity:.95;color:var(--hero-text)}.minimal-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem}.minimal-hero h1{font-size:2.5rem;font-weight:800;margin-bottom:.2rem;color:var(--hero-text)}.minimal-hero p{font-size:1.15rem;color:var(--hero-text);opacity:.95;margin-bottom:.2rem}.site-footer{background-color:#343a40;color:#adb5bd;padding:3rem 0;margin-top:auto!important;font-size:.9rem}.footer-links a{color:var(--link-color)!important}.footer-icon{display:inline-flex;align-items:center;justify-content:center}@media (max-width:700px){.hero-section{padding:3rem 0 2rem 0}.hero-section h1{font-size:2rem}}@media (max-width:600px){.hero-section .hero-content h1{font-size:1.8rem}.hero-section .hero-content p{font-size:1rem}}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7);z-index:9999;display:flex;align-items:center;justify-content:center}.loading-spinner{width:3rem;height:3rem;border:.4rem solid #007bff;border-top:.4rem solid #fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.table-success.fw-bold{background-color:#d1e7dd!important;font-weight:700!important}#feiertageResult .card{border-radius:1rem}#feiertageTable td,#feiertageTable th{vertical-align:middle;font-size:1.05rem}#feiertageTitle{font-size:1.4rem;font-weight:600}.hero-section.minimal-hero{background:linear-gradient(90deg,#e3f2fd 0,#fff 100%);padding:2.5rem 0 1.5rem 0;margin-bottom:0}.hero-section.minimal-hero .hero-content{text-align:center}.hero-section.minimal-hero h1{font-size:2.2rem;font-weight:700;color:#007bff}.hero-section.minimal-hero p{font-size:1.15rem;color:#333}.main-header .dropdown{position:relative}.main-header .dropdown-toggle{color:var(--text-color);font-weight:500;font-size:1rem;padding:.5rem .7rem;border-radius:6px;background:0 0;border:none;transition:background .18s,color .18s;white-space:nowrap;outline:0;cursor:pointer}.main-header .dropdown-toggle.active,.main-header .dropdown-toggle:focus,.main-header .dropdown-toggle:hover{background:#e3f2fd;color:#007bff}.main-header .dropdown-menu{min-width:180px;border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.13);border:1px solid #e9ecef;margin-top:.5rem;z-index:1100}.main-header .dropdown-item{font-size:1rem;font-weight:500;color:var(--text-color);padding:.7rem 1.2rem;border-radius:6px;transition:background .18s,color .18s}.main-header .dropdown-item.active,.main-header .dropdown-item:focus,.main-header .dropdown-item:hover{background:#e3f2fd;color:#007bff}@media (max-width:767.98px){.mobile-nav .collapse{background:#f8f9fa;border-radius:8px;margin-bottom:.5rem;padding-left:.2rem;box-shadow:none}.mobile-nav .collapse a{font-size:1.08rem;font-weight:500;color:#007bff;padding:.7rem .5rem .7rem 1.5rem;border-radius:6px;margin-bottom:.1rem;background:0 0;display:block}.mobile-nav .collapse a.active,.mobile-nav .collapse a:focus,.mobile-nav .collapse a:hover{background:#e3f2fd;color:#0056b3}}.back-to-top{position:fixed;right:2rem;bottom:2.5rem;z-index:1200;width:3.2rem;height:3.2rem;border-radius:50%;background:linear-gradient(135deg,#007bff 60%,#00c3ff 100%);color:#fff;border:none;box-shadow:0 4px 24px rgba(0,123,255,.18),0 1.5px 6px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;font-size:2rem;opacity:0;pointer-events:none;transition:opacity .25s,background .18s,box-shadow .18s,color .18s,transform .18s;cursor:pointer}.back-to-top.visible{opacity:1;pointer-events:auto}.back-to-top:focus-visible,.back-to-top:hover{background:linear-gradient(135deg,#0056b3 60%,#007bff 100%);color:gold;box-shadow:0 8px 32px rgba(0,123,255,.22),0 2px 8px rgba(0,0,0,.12);transform:translateY(-3px) scale(1.07);outline:0}.back-to-top:active{background:linear-gradient(135deg,#007bff 60%,#00c3ff 100%);color:#fff;transform:scale(.96)}body.dark-mode .back-to-top{background:linear-gradient(135deg,#004e92 60%,#000428 100%);color:#fff;box-shadow:0 4px 24px rgba(0,123,255,.1),0 1.5px 6px rgba(0,0,0,.18)}body.dark-mode .back-to-top:focus-visible,body.dark-mode .back-to-top:hover{background:linear-gradient(135deg,#0056b3 60%,#007bff 100%);color:gold}@media (max-width:600px){.back-to-top{right:1rem;bottom:1.2rem;width:2.5rem;height:2.5rem;font-size:1.5rem}}.hero-section.minimal-hero h1,.hero-section.minimal-hero p{color:#fff!important}.site-footer .footer-links-item{display:inline}.site-footer .footer-links-item a{color:#adb5bd!important;margin-left:.5em}body,html{height:100%}main{flex:1 0 auto}.site-footer{flex-shrink:0}