.holiday-calendar-container{--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#3b82f61a;--color-success:#10b981;--color-success-light:#10b9811a;--color-warning:#f59e0b;--color-warning-light:#f59e0b1a;--color-danger:#ef4444;--color-danger-light:#ef44441a;--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-glass:#fffffff2;--text-primary:#1e293b;--text-secondary:#64748b;--text-tertiary:#94a3b8;--text-inverse:#fff;--border-color:#e2e8f0;--border-focus:#3b82f6;--holiday-national:#3b82f6;--holiday-national-bg:#3b82f61a;--holiday-religious:#10b981;--holiday-religious-bg:#10b9811a;--holiday-observance:#f59e0b;--holiday-observance-bg:#f59e0b1a;--holiday-unofficial:#94a3b8;--holiday-unofficial-bg:#94a3b81a;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--gradient-primary:linear-gradient(135deg,#3b82f6,#60a5fa);--gradient-hover:linear-gradient(135deg,#2563eb,#3b82f6);--transition-fast:100ms ease;--transition-normal:200ms ease;--transition-slow:300ms ease;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;max-width:1400px;position:relative;width:100%}[data-theme=dark] .holiday-calendar-container{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-glass:#1e293bf2;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--border-color:#334155;--holiday-national-bg:#6366f133;--holiday-religious-bg:#10b98133;--holiday-observance-bg:#f59e0b33;--holiday-unofficial-bg:#94a3b833;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006,0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d;--shadow-xl:0 20px 25px -5px #0006,0 8px 10px -6px #0000004d}.holiday-calendar-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding:0 .5rem}.holiday-calendar-logo{align-items:center;display:flex;gap:.75rem}.holiday-calendar-logo svg{color:var(--color-primary);height:36px;width:36px}.holiday-calendar-logo-text{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.holiday-calendar-logo-text span{font-weight:700}.holiday-calendar-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.holiday-calendar-theme-toggle{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:var(--radius-full);cursor:pointer;display:flex;height:44px;justify-content:center;padding:.625rem;width:44px}.holiday-calendar-theme-toggle svg{stroke:#1e293b;fill:none;stroke-width:2;height:22px;width:22px}.holiday-calendar-view-toggle{background:var(--bg-tertiary);border-radius:var(--radius-md);display:flex;padding:.25rem}.holiday-calendar-view-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.625rem 1rem;transition:all var(--transition-fast)}.holiday-calendar-view-btn svg{height:18px;width:18px}.holiday-calendar-view-btn.active{background:var(--bg-secondary);box-shadow:var(--shadow-sm);color:var(--color-primary)}.holiday-calendar-view-btn:hover:not(.active){color:var(--text-primary)}.holiday-calendar-select-wrapper{position:relative}.holiday-calendar-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:500;min-width:180px;outline:none;padding:.75rem 2.5rem .75rem 1rem;transition:all var(--transition-fast)}.holiday-calendar-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #6366f126}.holiday-calendar-select-wrapper:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid var(--text-secondary);content:"";height:0;pointer-events:none;position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:0}.holiday-calendar-year-control{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;gap:.5rem;padding:.25rem}.holiday-calendar-year-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all var(--transition-fast);width:36px}.holiday-calendar-year-btn:hover{background:var(--bg-tertiary);color:var(--color-primary)}.holiday-calendar-year-btn svg{height:18px;width:18px}.holiday-calendar-year-input{background:#0000;border:none;color:var(--text-primary);font-size:1rem;font-weight:600;outline:none;padding:.5rem;text-align:center;width:80px}.holiday-calendar-year-input:focus{color:var(--color-primary)}.holiday-calendar-type-filter{min-width:140px}.holiday-calendar-type-filter .holiday-calendar-select{min-width:0;min-width:auto}.holiday-calendar-search{min-width:200px;position:relative}.holiday-calendar-search svg{color:var(--text-tertiary);height:18px;left:1rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:18px}.holiday-calendar-search input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9rem;outline:none;padding:.75rem 1rem .75rem 2.75rem;transition:all var(--transition-fast);width:100%}.holiday-calendar-search input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #6366f126}.holiday-calendar-search input::placeholder{color:var(--text-tertiary)}.holiday-calendar-search-clear{align-items:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;display:flex;justify-content:center;padding:.25rem;position:absolute;right:.75rem;top:50%;transform:translateY(-50%)}.holiday-calendar-search-clear:hover{color:var(--text-primary)}.holiday-calendar-search-clear svg{height:16px;position:static;transform:none;width:16px}.holiday-calendar-card{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:1.5rem;transition:all var(--transition-normal)}.holiday-calendar-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.holiday-month-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-normal)}.holiday-month-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.holiday-month-header{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);padding:1rem}.holiday-month-title{color:var(--text-primary);font-size:1rem;font-weight:600}.holiday-month-holiday-count{color:var(--text-secondary);font-size:.75rem;margin-top:.25rem}.holiday-month-grid{padding:.75rem}.holiday-day-headers{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem}.holiday-day-header{color:var(--text-tertiary);font-size:.7rem;font-weight:600;padding:.25rem;text-align:center;text-transform:uppercase}.holiday-days-grid{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:repeat(7,1fr)}.holiday-day-cell{align-items:center;aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:default;display:flex;font-size:.85rem;justify-content:center;position:relative;transition:all var(--transition-fast)}.holiday-day-cell.today{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.holiday-day-cell.empty{background:#0000;cursor:default}.holiday-day-cell.holiday{background:var(--holiday-national-bg);color:var(--text-primary);cursor:pointer;font-weight:600}.holiday-day-cell.holiday:hover{transform:scale(1.1);z-index:10}.holiday-day-cell.holiday.national{background:var(--holiday-national-bg);color:var(--color-primary)}.holiday-day-cell.holiday.religious{background:var(--holiday-religious-bg);color:var(--color-success)}.holiday-day-cell.holiday.observance{background:var(--holiday-observance-bg);color:var(--color-warning)}.holiday-day-cell.holiday.unofficial{background:var(--holiday-unofficial-bg);color:var(--text-secondary)}.holiday-day-cell.weekend{background:#94a3b840;color:var(--text-secondary);font-weight:500}[data-theme=dark] .holiday-day-cell.weekend{background:#94a3b826;color:var(--text-tertiary)}.holiday-indicator{background:currentColor;border-radius:50%;bottom:2px;height:4px;position:absolute;width:4px}.holiday-day-cell.multiple .holiday-indicator{border-radius:2px;bottom:4px;height:2px;width:6px}.holiday-table-container{overflow-x:auto}.holiday-table{border-collapse:collapse;width:100%}.holiday-table td,.holiday-table th{border-bottom:1px solid var(--border-color);padding:1rem;text-align:left}.holiday-table th{background:var(--bg-tertiary);color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.holiday-table tbody tr{transition:background-color var(--transition-fast)}.holiday-table tbody tr:hover{background:var(--bg-tertiary)}.holiday-table-date{white-space:nowrap}.holiday-table-day{color:var(--text-tertiary);font-size:.8rem}.holiday-table-name{color:var(--text-primary);font-weight:500}.holiday-table-type{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.holiday-table-type.national{background:var(--holiday-national-bg);color:var(--color-primary)}.holiday-table-type.religious{background:var(--holiday-religious-bg);color:var(--color-success)}.holiday-table-type.observance{background:var(--holiday-observance-bg);color:var(--color-warning)}.holiday-table-type.unofficial{background:var(--holiday-unofficial-bg);color:var(--text-secondary)}.holiday-table-month-header{background:var(--bg-primary);color:var(--text-primary);font-size:1.1rem;font-weight:600}.holiday-tooltip{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);max-width:280px;padding:.75rem 1rem;pointer-events:none;position:fixed;transition:opacity var(--transition-fast);z-index:1000}.holiday-tooltip-name{color:var(--text-primary);font-weight:600;margin-bottom:.25rem}.holiday-tooltip-date{color:var(--text-secondary);font-size:.85rem}.holiday-tooltip-type{border-radius:var(--radius-sm);display:inline-block;font-size:.7rem;font-weight:500;margin-top:.5rem;padding:.2rem .5rem}.holiday-empty{padding:4rem 2rem;text-align:center}.holiday-empty-icon{color:var(--text-tertiary);height:64px;margin:0 auto 1rem;width:64px}.holiday-empty-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.holiday-empty-text{color:var(--text-secondary);font-size:.9rem}.holiday-results-count{color:var(--text-secondary);font-size:.85rem;margin-bottom:1rem}.holiday-results-count strong{color:var(--text-primary)}.holiday-legend{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:1rem;grid-column:1/-1;margin-bottom:.5rem;padding:1rem}.holiday-legend-title{color:var(--text-secondary);font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-right:.5rem;text-transform:uppercase}.holiday-legend-items{display:flex;flex-wrap:wrap;gap:1.25rem}.holiday-legend-item{align-items:center;display:flex;gap:.5rem}.holiday-legend-dot{border-radius:50%;height:12px;width:12px}.holiday-legend-dot.national{background:var(--holiday-national)}.holiday-legend-dot.religious{background:var(--holiday-religious)}.holiday-legend-dot.observance{background:var(--holiday-observance)}.holiday-legend-label{color:var(--text-primary);font-size:.85rem;font-weight:500}.holiday-calendar-footer{border-top:1px solid var(--border-color);margin-top:1.5rem;padding-top:1rem;text-align:center}.holiday-calendar-footer-text{color:var(--text-tertiary);font-size:.75rem}.holiday-calendar-footer-link{color:var(--color-primary);font-weight:500;text-decoration:none}.holiday-calendar-footer-link:hover{text-decoration:underline}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.holiday-calendar-grid,.holiday-table-container{animation:fadeIn .3s ease}.holiday-month-card{animation:slideUp .3s ease;animation-fill-mode:both}.holiday-month-card:first-child{animation-delay:0ms}.holiday-month-card:nth-child(2){animation-delay:50ms}.holiday-month-card:nth-child(3){animation-delay:.1s}.holiday-month-card:nth-child(4){animation-delay:.15s}.holiday-month-card:nth-child(5){animation-delay:.2s}.holiday-month-card:nth-child(6){animation-delay:.25s}.holiday-month-card:nth-child(7){animation-delay:.3s}.holiday-month-card:nth-child(8){animation-delay:.35s}.holiday-month-card:nth-child(9){animation-delay:.4s}.holiday-month-card:nth-child(10){animation-delay:.45s}.holiday-month-card:nth-child(11){animation-delay:.5s}.holiday-month-card:nth-child(12){animation-delay:.55s}@media (max-width:1024px){.holiday-calendar-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.holiday-calendar-header{align-items:stretch;flex-direction:column;margin-bottom:1rem}.holiday-calendar-logo{justify-content:center}.holiday-calendar-controls{grid-row-gap:.5rem;grid-column-gap:.75rem;display:grid;grid-template-columns:1fr auto;width:100%}.holiday-control-search{grid-column:1/2}.holiday-control-year{grid-column:2/3;justify-self:end}.holiday-control-country{grid-column:1/2}.holiday-control-type{grid-column:2/3}.holiday-calendar-search,.holiday-calendar-select{min-width:0;min-width:auto;width:100%}.holiday-calendar-year-input{width:64px}.holiday-calendar-view-toggle{width:100%}.holiday-calendar-view-btn{flex:1 1}.holiday-calendar-card{padding:1rem}.holiday-calendar-grid{grid-template-columns:1fr}.holiday-month-card{margin-bottom:.5rem}.holiday-table td,.holiday-table th{font-size:.85rem;padding:.75rem .5rem}}.calendar-page-container{padding-top:88px}@media (max-width:640px){.calendar-page-container{padding-top:44px!important}}