.holidays-container{padding:0;background:transparent}.filters-section{background:#fff;border-radius:15px;padding:25px;box-shadow:0 2px 10px rgba(0,0,0,.08);position:-webkit-sticky;position:sticky;top:100px;max-height:calc(100vh - 120px);overflow-y:auto}.filters-section::-webkit-scrollbar{width:6px}.filters-section::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.filters-section::-webkit-scrollbar-thumb{background:#38ae52;border-radius:10px}.filter-group{margin-bottom:30px}.filter-group h5{font-size:1rem;font-weight:600;color:#2c3e50;margin-bottom:15px;padding-bottom:8px;border-bottom:2px solid #e8ecf1;display:flex;align-items:center;gap:8px}.filter-group h5 svg{width:18px;height:18px;color:#38ae52}.search-box{position:relative;margin-bottom:25px}.search-box svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#6c757d;pointer-events:none}.search-box input{width:100%;padding:12px 15px 12px 45px;border:2px solid #e8ecf1;border-radius:10px;font-size:.95rem;transition:all .3s ease;outline:none}.search-box input:focus{border-color:#38ae52;box-shadow:0 0 0 3px rgba(56,174,82,.1)}.search-box:focus-within svg{color:#38ae52}.date-filters{gap:15px}.date-filters,.date-input-group{display:flex;flex-direction:column}.date-input-group{gap:8px}.date-input-group label{font-size:.9rem;font-weight:500;color:#495057}.date-input-group input{padding:12px 15px;border:2px solid #e8ecf1;border-radius:12px;font-size:1rem;transition:all .3s ease;outline:none}.date-input-group input:focus{border-color:#38ae52;box-shadow:0 0 0 3px rgba(56,174,82,.1)}.countries-grid{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px;max-height:400px;overflow-y:auto;padding-right:5px}.countries-grid::-webkit-scrollbar{width:6px}.countries-grid::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.countries-grid::-webkit-scrollbar-thumb{background:#38ae52;border-radius:10px}.country-checkbox{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#f8f9fa;border-radius:10px;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.country-checkbox:hover{background:#e8f5ec;border-color:rgba(56,174,82,.2)}.country-checkbox.selected{background:#e8f5ec;border-color:#38ae52}.country-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#38ae52}.country-checkbox .flag-icon{font-size:1.4rem;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:2px}.country-checkbox span:not(.flag-icon){font-weight:500;flex:1 1;font-size:.9rem;color:#2c3e50}.country-checkbox.selected span:not(.flag-icon){color:#38ae52;font-weight:600}.holidays-content{background:#fff;border-radius:15px;box-shadow:0 2px 10px rgba(0,0,0,.08);max-height:calc(100vh - 120px);overflow-y:auto;padding:0}.holidays-content::-webkit-scrollbar{width:8px}.holidays-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.holidays-content::-webkit-scrollbar-thumb{background:#38ae52;border-radius:10px}.holidays-content::-webkit-scrollbar-thumb:hover{background:#2d8e42}.view-toggle-wrapper{display:flex;gap:12px;margin-bottom:20px;background:#fff;padding:12px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.06)}.view-toggle-btn{flex:1 1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:2px solid #e9ecef;background:#fff;border-radius:10px;cursor:pointer;transition:all .3s ease;font-weight:600;font-size:.95rem;color:#6c757d}.view-toggle-btn svg{width:20px;height:20px}.view-toggle-btn:hover{border-color:#38ae52;background:#f8fdf9;color:#38ae52}.view-toggle-btn.active{background:linear-gradient(135deg,#38ae52,#2d8e42);border-color:#38ae52;color:#fff;box-shadow:0 4px 12px rgba(56,174,82,.3)}.month-selector-wrapper{gap:12px;padding:12px 20px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.06);margin-bottom:20px}.month-nav-btn,.month-selector-wrapper{display:flex;align-items:center;background:#fff}.month-nav-btn{justify-content:center;width:40px;height:40px;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .3s ease}.month-nav-btn svg{width:20px;height:20px;color:#6c757d}.month-nav-btn:hover{border-color:#38ae52;background:#f8fdf9}.month-nav-btn:hover svg{color:#38ae52}.month-selector{flex:1 1;padding:10px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:1rem;font-weight:600;color:#2c3e50;background:#fff;cursor:pointer;transition:all .3s ease;outline:none}.month-selector:focus,.month-selector:hover{border-color:#38ae52;box-shadow:0 0 0 3px rgba(56,174,82,.1)}.holidays-list-wrapper{padding:20px}.date-group{background:#fff;border-radius:12px;margin-bottom:12px;box-shadow:0 2px 8px rgba(0,0,0,.06);overflow:hidden;transition:all .3s ease}.date-group:hover{box-shadow:0 4px 16px rgba(0,0,0,.1)}.date-group-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;cursor:pointer;transition:all .3s ease;background:linear-gradient(135deg,#fff,#fafbfc)}.date-group-header:hover{background:linear-gradient(135deg,#f8fdf9,#f0f9f3)}.date-group-info{display:flex;align-items:center;gap:20px;flex:1 1}.date-badge-group{background:linear-gradient(135deg,#38ae52,#2d8e42);color:#fff;padding:12px 18px;border-radius:12px;text-align:center;box-shadow:0 3px 12px rgba(56,174,82,.3);min-width:70px}.date-badge-group .day-num{display:block;font-size:1.8rem;font-weight:800;line-height:1;letter-spacing:-1px}.date-badge-group .month-year{display:block;font-size:.75rem;margin-top:4px;opacity:.95;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.date-group-meta{display:flex;flex-direction:column;gap:5px}.weekday-text{font-size:1.1rem;font-weight:700;color:#2c3e50}.holiday-count{font-size:.85rem;color:#6c757d;font-weight:500}.expand-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#f8f9fa;transition:all .3s ease}.expand-icon svg{width:20px;height:20px;color:#6c757d;transition:transform .3s ease}.date-group-header:hover .expand-icon{background:#38ae52}.date-group-header:hover .expand-icon svg{color:#fff}.date-group-holidays{padding:0 20px 20px;background:#fafbfc;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.holiday-item-compact{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fff;border-radius:10px;margin-bottom:8px;transition:all .3s ease;border-left:3px solid #e9ecef}.holiday-item-compact:last-child{margin-bottom:0}.holiday-item-compact:hover{transform:translateX(4px);border-left-color:#38ae52;box-shadow:0 2px 8px rgba(56,174,82,.15)}.holiday-item-name{font-size:1rem;font-weight:600;color:#2c3e50;flex:1 1}.holiday-item-country{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#f8f9fa;border-radius:20px;font-size:.85rem;font-weight:600;color:#495057}.holiday-item-country .fi{font-size:1.2rem;box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:2px}.calendar-month-navigation{display:flex;align-items:center;gap:15px;padding:20px;background:linear-gradient(135deg,#38ae52,#2d8e42);border-radius:16px 16px 0 0;overflow-x:auto;overflow-y:hidden}.calendar-month-navigation::-webkit-scrollbar{height:6px}.calendar-month-navigation::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1);border-radius:10px}.calendar-month-navigation::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.3);border-radius:10px}.calendar-nav-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border:none;background:hsla(0,0%,100%,.2);border-radius:10px;cursor:pointer;transition:all .3s ease}.calendar-nav-btn:disabled{opacity:.3;cursor:not-allowed}.calendar-nav-btn:not(:disabled):hover{background:hsla(0,0%,100%,.3);transform:scale(1.05)}.calendar-nav-btn svg{width:20px;height:20px;color:#fff}.calendar-month-buttons{display:flex;gap:10px;flex:1 1;overflow-x:auto;padding:2px 0}.calendar-month-buttons::-webkit-scrollbar{display:none}.calendar-month-btn{padding:10px 20px;border:2px solid hsla(0,0%,100%,.3);background:hsla(0,0%,100%,.1);color:#fff;border-radius:10px;cursor:pointer;font-weight:600;font-size:.95rem;white-space:nowrap;transition:all .3s ease;text-transform:capitalize}.calendar-month-btn:hover{background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.5);transform:translateY(-2px)}.calendar-month-btn.active{background:#fff;color:#38ae52;border-color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.2);font-weight:700}.calendar-wrapper{padding:20px}.calendar-month{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.08)}.calendar-month .calendar-grid{border-radius:0 0 16px 16px}.calendar-grid{padding:20px;background:#fff;width:100%}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:10px;gap:10px;background:linear-gradient(135deg,#38ae52,#2d8e42);padding:15px;border-radius:12px;margin:0 0 12px;width:100%;box-sizing:border-box}.calendar-weekday{text-align:center;font-weight:700;font-size:.9rem;color:#fff;padding:8px;text-transform:uppercase;letter-spacing:.5px}.calendar-days{display:grid!important;grid-template-columns:repeat(7,1fr)!important;grid-gap:8px;gap:8px;width:100%;box-sizing:border-box;grid-auto-rows:120px}.calendar-day{min-height:120px;max-height:120px;background:#fff;border:2px solid #e9ecef;border-radius:8px;padding:8px;transition:all .3s ease;position:relative;overflow:hidden;cursor:default;box-sizing:border-box;display:flex;flex-direction:column}.calendar-day.empty{background:transparent!important;border:none!important;min-height:120px;max-height:120px;pointer-events:none}.calendar-day.has-holiday{background:linear-gradient(135deg,#e8f5ec,#d4edda);border:2px solid #38ae52;box-shadow:0 4px 12px rgba(56,174,82,.15);cursor:pointer}.calendar-day.has-holiday:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(56,174,82,.25);z-index:10}.calendar-day-number{font-size:1.2rem;font-weight:700;color:#2c3e50;margin-bottom:6px;flex-shrink:0}.calendar-day.has-holiday .calendar-day-number{color:#38ae52;font-size:1.3rem}.calendar-day-holidays{display:flex;flex-direction:column;gap:4px;flex:1 1;overflow:hidden}.calendar-holiday-preview{display:flex;align-items:center;gap:4px;background:#fff;padding:4px 6px;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.1);transition:all .3s ease;min-height:0}.calendar-holiday-preview .fi{font-size:.9rem;flex-shrink:0}.holiday-preview-text{font-size:.7rem;font-weight:600;color:#2c3e50;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1}.calendar-more-indicator{background:linear-gradient(135deg,#38ae52,#2d8e42);color:#fff;padding:3px 6px;border-radius:4px;font-size:.65rem;font-weight:700;text-align:center;box-shadow:0 1px 3px rgba(56,174,82,.3);flex-shrink:0}.holiday-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.holiday-modal{background:#fff;border-radius:20px;max-width:600px;width:100%;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3);position:relative;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-close-btn{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;background:#f8f9fa;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:1}.modal-close-btn:hover{background:#e9ecef;transform:rotate(90deg)}.modal-close-btn svg{width:20px;height:20px;color:#6c757d}.modal-header{background:linear-gradient(135deg,#38ae52,#2d8e42);padding:30px;color:#fff}.modal-header h3{font-size:1.5rem;font-weight:700;margin:0 0 8px}.modal-holiday-count{display:inline-block;padding:6px 12px;background:hsla(0,0%,100%,.2);border-radius:20px;font-size:.85rem;font-weight:600}.modal-holidays-list{padding:25px;max-height:calc(80vh - 140px);overflow-y:auto}.modal-holidays-list::-webkit-scrollbar{width:6px}.modal-holidays-list::-webkit-scrollbar-track{background:#f1f3f5;border-radius:10px}.modal-holidays-list::-webkit-scrollbar-thumb{background:#38ae52;border-radius:10px}.modal-holiday-item{display:flex;align-items:flex-start;gap:15px;padding:18px;background:#f8f9fa;border-radius:12px;margin-bottom:12px;transition:all .3s ease;border-left:4px solid transparent}.modal-holiday-item:last-child{margin-bottom:0}.modal-holiday-item:hover{background:#e8f5ec;border-left-color:#38ae52;transform:translateX(4px)}.modal-holiday-icon{width:50px;height:50px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.1);flex-shrink:0}.modal-holiday-icon .fi{font-size:2rem}.modal-holiday-details{flex:1 1}.modal-holiday-name{margin:0 0 6px;font-size:1.1rem;font-weight:700;color:#2c3e50;line-height:1.4}.modal-holiday-country{margin:0;font-size:.9rem;color:#6c757d;font-weight:500}.no-results{text-align:center;padding:60px 20px}.no-results svg{width:80px;height:80px;color:#dee2e6;margin-bottom:20px}.no-results h3{font-size:1.5rem;color:#2c3e50;margin-bottom:10px}.no-results p{color:#6c757d;font-size:1rem}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:400px}.spinner{width:60px;height:60px;border:5px solid #e8ecf1;border-top-color:#38ae52;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.clear-filters-btn{width:100%;padding:10px 16px;background:transparent;color:#dc3545;border:2px solid #dc3545;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;margin-top:15px}.clear-filters-btn:hover{background:#dc3545;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(220,53,69,.25)}.select-all-btn{width:100%;padding:10px 16px;background:#38ae52;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;margin-bottom:15px;box-shadow:0 2px 6px rgba(56,174,82,.25)}.select-all-btn:hover{background:#2d8e42;transform:translateY(-1px);box-shadow:0 4px 12px rgba(56,174,82,.35)}@media (max-width:992px){.holidays-content{margin-top:30px}.filters-section{position:relative;top:0;max-height:none;margin-bottom:20px}}@media (max-width:768px){.view-toggle-wrapper{flex-direction:column;gap:8px}.month-selector-wrapper{padding:10px 15px}.month-nav-btn{width:36px;height:36px}.month-nav-btn svg{width:18px;height:18px}.month-selector{padding:8px 12px;font-size:.9rem}.date-group-header,.holidays-list-wrapper{padding:15px}.date-group-info{gap:15px}.date-badge-group{padding:10px 14px;min-width:60px}.date-badge-group .day-num{font-size:1.5rem}.date-badge-group .month-year{font-size:.7rem}.weekday-text{font-size:1rem}.holiday-count{font-size:.8rem}.date-group-holidays{padding:0 15px 15px}.holiday-item-compact{flex-direction:column;align-items:flex-start;padding:12px 15px}.holiday-item-name{font-size:.95rem;width:100%;margin-bottom:8px}.holiday-item-country{font-size:.8rem;padding:5px 12px}.holiday-modal{max-width:95%;max-height:90vh}.modal-header{padding:25px 20px}.modal-header h3{font-size:1.2rem}.modal-holidays-list{padding:20px}.modal-holiday-item{padding:15px}.modal-holiday-icon{width:45px;height:45px}.modal-holiday-icon .fi{font-size:1.7rem}.modal-holiday-name{font-size:1rem}.modal-holiday-country{font-size:.85rem}.calendar-wrapper{padding:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-wrapper::-webkit-scrollbar{height:6px}.calendar-wrapper::-webkit-scrollbar-track{background:#f1f3f5;border-radius:10px}.calendar-wrapper::-webkit-scrollbar-thumb{background:#38ae52;border-radius:10px}.calendar-month{min-width:700px}.calendar-grid{padding:10px}.calendar-weekdays{padding:8px;gap:6px}.calendar-weekday{font-size:.7rem;padding:8px 4px;min-width:85px}.calendar-days{grid-auto-rows:100px;gap:6px}.calendar-day{padding:8px;min-width:85px}.calendar-day,.calendar-day.empty{min-height:100px;max-height:100px}.calendar-day-number{font-size:.95rem;margin-bottom:4px}.calendar-day.has-holiday .calendar-day-number{font-size:1rem}.calendar-holiday-preview{padding:3px 5px;gap:3px}.calendar-holiday-preview .fi{font-size:.8rem}.holiday-preview-text{font-size:.6rem;line-height:1.1}.calendar-more-indicator{font-size:.6rem;padding:2px 5px}.calendar-month-navigation{padding:12px;gap:8px}.calendar-nav-btn{width:36px;height:36px;min-width:36px}.calendar-nav-btn svg{width:18px;height:18px}.calendar-month-buttons{gap:6px}.calendar-month-btn{padding:8px 14px;font-size:.85rem}.holidays-content{max-height:500px}}@media print{.filters-section,.view-toggle{display:none}.holiday-card,.timeline-item{page-break-inside:avoid;break-inside:avoid;box-shadow:none;border:1px solid #ddd}}