:root{--tt-bg-0:#f5f7fa;--tt-bg-1:#c3cfe2;--tt-surface:#fffffff2;--tt-primary-0:#667eea;--tt-primary-1:#764ba2;--tt-accent:#ef4444;--tt-muted:#64748b;--tt-border:#e2e8f0;--tt-shadow:0 10px 30px #0307120f}.modern-calendar-container{background:linear-gradient(135deg, var(--tt-bg-0) 0%, var(--tt-bg-1) 100%);box-shadow:var(--tt-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px}.rbc-toolbar{background:var(--tt-surface);border-radius:10px;margin-bottom:10px;padding:8px 12px;box-shadow:0 6px 18px #0307120f}.rbc-toolbar button{background:linear-gradient(135deg, var(--tt-primary-0) 0%, var(--tt-primary-1) 100%);color:#fff;border:none;border-radius:10px;padding:8px 14px;font-weight:600;transition:transform .18s,box-shadow .18s;box-shadow:0 3px 10px #667eea2e}.rbc-toolbar button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea2e}.rbc-toolbar button.rbc-active{background:linear-gradient(135deg, var(--tt-primary-1) 0%, var(--tt-primary-0) 100%)}.rbc-calendar{background:var(--tt-surface);border-radius:12px;overflow:hidden;box-shadow:0 8px 25px #0307120f}.rbc-header{color:var(--tt-muted);border-bottom:2px solid var(--tt-border);text-transform:uppercase;letter-spacing:.6px;background:linear-gradient(135deg,#fafbff 0%,#eef2ff 100%);padding:8px;font-size:12px;font-weight:700}.rbc-time-gutter{border-right:2px solid var(--tt-border);background:linear-gradient(#fbfcff 0%,#eef2ff 100%)}.rbc-time-slot{color:var(--tt-muted);border-bottom:1px solid #f1f5f9;font-size:11px;font-weight:500}.rbc-time-content{background:#ffffffd9}.rbc-timeslot-group{border-bottom:1px solid #f1f5f9}.rbc-time-slot:hover{background:#667eea0a;transition:background .18s}.rbc-day-slot{border-right:1px solid var(--tt-border)}.rbc-day-slot:last-child{border-right:none}.rbc-event{border:none!important;border-radius:4px!important;margin:1px!important;font-size:11px!important;line-height:1.2!important;transition:all .15s!important;overflow:hidden!important;box-shadow:0 1px 3px #0000001f!important}.rbc-event:hover{z-index:5!important;transform:translateY(-1px)!important;box-shadow:0 2px 6px #00000026!important}.rbc-event-content{white-space:nowrap!important;text-overflow:ellipsis!important;padding:2px 4px!important;font-size:10px!important;font-weight:500!important;overflow:hidden!important}.rbc-event:focus,.rbc-event.rbc-selected{z-index:10!important;outline:none!important;box-shadow:0 0 0 2px #667eea66!important}.rbc-events-container{height:100%;position:relative;overflow:visible!important}.rbc-day-slot{position:relative;overflow:visible!important}.rbc-time-column .rbc-events-container{margin:0 2px!important}.rbc-time-view{border:none}.rbc-time-header{border-bottom:2px solid var(--tt-border)}.rbc-time-header-content{border-left:1px solid var(--tt-border)}.rbc-time-header,.rbc-time-header-content{padding-top:0}.rbc-today{background:linear-gradient(135deg,#667eea14 0%,#764ba20f 100%)}.rbc-current-time-indicator{background:var(--tt-accent);height:2px;box-shadow:0 0 8px #ef444440}.rbc-time-content::-webkit-scrollbar{width:8px}.rbc-time-content::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.rbc-time-content::-webkit-scrollbar-thumb{background:linear-gradient(135deg, var(--tt-primary-0) 0%, var(--tt-primary-1) 100%);border-radius:4px}.rbc-time-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg, var(--tt-primary-1) 0%, var(--tt-primary-0) 100%)}.rbc-time-header .rbc-allday-cell,.rbc-allday-cell,.rbc-time-header-content+.rbc-allday-cell{display:none!important}.rbc-time-view .rbc-time-content{border-top:1px solid #ddd}@media (max-width:768px){.modern-calendar-container{border-radius:12px}.rbc-toolbar{flex-direction:column;gap:12px;padding:12px 16px}.rbc-toolbar button{padding:6px 12px;font-size:13px}.rbc-header{padding:10px 6px;font-size:11px}.rbc-event{font-size:10px!important}.rbc-event-content{padding:1px 3px!important;font-size:9px!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-backdrop{animation:.28s fadeIn}.modal-content{animation:.28s slideIn}.tt-btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:inline-flex}.tt-btn.primary{background:linear-gradient(135deg,var(--tt-primary-0),var(--tt-primary-1));color:#fff;box-shadow:0 8px 24px #667eea1f}.tt-btn.ghost{color:var(--tt-muted);background:0 0;border:1px solid #0307120a}.tt-btn.danger{color:#fff;background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 8px 24px #ef444424}.tt-btn:focus-visible{outline-offset:2px;outline:2px solid #93c5fd}.tt-btn.danger:hover{filter:brightness(1.03);box-shadow:0 12px 32px #ef44442e}input[type=text],input[type=date],select,textarea{transition:box-shadow .18s,border-color .18s}input[type=text]:focus,input[type=date]:focus,select:focus,textarea:focus{border-color:var(--tt-primary-0);box-shadow:0 6px 18px #667eea14}.modal-panel{background:linear-gradient(#fffffff5,#fafafff5);border:1px solid #0307120a;border-radius:12px;width:100%;max-width:720px;padding:20px;box-shadow:0 18px 40px #0307121f}.modal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.modal-header h2{color:#0f172a;margin:0;font-size:1.125rem;font-weight:700}.modal-body{max-height:56vh;padding-right:6px;overflow:auto}.modal-footer{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.modal-panel input,.modal-panel select,.modal-panel textarea{font-size:.95rem}.modal-panel .field-label{color:#111827;margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.modal-panel .back-img,.modal-panel .front-img{width:18px;height:18px}.rbc-day-bg.disabled-date{position:relative;cursor:not-allowed!important;pointer-events:none!important;background-color:#94a3b81a!important}.rbc-day-bg.disabled-date:before{content:"";pointer-events:none;background:repeating-linear-gradient(45deg,#0000,#0000 10px,#94a3b80d 10px 20px);position:absolute;inset:0}.rbc-date-cell.disabled-date{opacity:.5;color:#cbd5e1!important}.rbc-off-range.disabled-date{background-color:#94a3b814!important}.rbc-header:first-child,.rbc-day-slot:first-child,.rbc-time-header-content:first-child{color:#334155!important;background:linear-gradient(135deg,#cbd5e1 0%,#94a3b8 100%)!important}.rbc-day-slot:first-child{position:relative}.rbc-day-slot:first-child:before{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(45deg,#0000,#0000 8px,#64748b1a 8px 16px);position:absolute;inset:0}.rbc-header:first-child{opacity:.9;font-weight:600!important}.rbc-day-slot:first-child .rbc-timeslot-group{background:#64748b1f}.rbc-day-slot:first-child .rbc-time-slot:hover{background:#64748b38!important}
:root{--holiday-accent:var(--tt-accent,#ef4444);--holiday-accent-strong:#dc2626;--holiday-accent-soft:#ef44441f;--holiday-accent-soft-strong:#ef444438;--holiday-gradient-start:#fef2f2;--holiday-gradient-end:#fee2e2}.holiday-badge-wrapper{z-index:10;pointer-events:none;padding:6px;position:absolute;top:0;left:0;right:0}.holiday-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1.5px solid #ef444440;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;animation:.3s ease-out slideInDown;display:flex;box-shadow:0 2px 8px #ef444426,0 1px 3px #0000001a}.holiday-icon{filter:drop-shadow(0 1px 2px #0000001a);font-size:14px;line-height:1}.holiday-text{color:#991b1b;letter-spacing:.3px;text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:11px;font-weight:600;line-height:1.2;overflow:hidden}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.holiday-date{--h-bg:var(--holiday-accent,#ef4444);position:relative;cursor:not-allowed!important;background:linear-gradient(135deg,#fef2f2cc 0%,#fee2e299 100%)!important}.holiday-date:before{content:"";pointer-events:none;background:repeating-linear-gradient(45deg,#0000,#0000 12px,#ef44440a 12px 24px);border-radius:8px;position:absolute;inset:0}.holiday-date .rbc-button-link{width:100%;color:#b91c1c!important;background:0 0!important;font-weight:600!important}.holiday-date .rbc-button-link .holiday-header{align-items:center;display:flex}.rbc-date-cell.holiday-date{background:linear-gradient(135deg,#fef2f2b3 0%,#fee2e280 100%);border:1px solid #ef444433;border-radius:10px;color:#b91c1b!important}.rbc-month-view .rbc-day-bg.holiday-date{border-left:3px solid var(--holiday-accent-strong)}.holiday-card{border-left:4px solid var(--holiday-accent,#ef4444);background:linear-gradient(90deg,#fffffffa,#fafafcf5);border-radius:12px;transition:transform .18s,box-shadow .18s,border-color .18s}.holiday-card .holiday-name{color:#0f172a;letter-spacing:.2px;font-weight:700}.holiday-date-chip{color:#fff;letter-spacing:.2px;background:linear-gradient(135deg,#ef4444eb,#dc2626eb);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .18s,box-shadow .18s,transform .18s;display:inline-block;box-shadow:0 10px 30px #ef44442e}.rbc-header .holiday-header{flex-direction:column;align-items:flex-start;gap:4px;line-height:1.2;display:flex}.rbc-header .holiday-header-badge{color:#991b1b;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1px solid #ef444440;border-radius:12px;align-items:center;gap:4px;min-width:0;max-width:100%;padding:3px 8px;font-size:10px;font-weight:600;display:flex;overflow:hidden;box-shadow:0 2px 6px #ef444426}.rbc-header .holiday-header-badge:before{content:none}.rbc-time-slot.holiday-date{background:linear-gradient(#fef2f24d 0%,#fee2e233 100%)!important}.holiday-cell-wrapper:hover .holiday-badge{transition:all .2s;transform:translateY(-1px);box-shadow:0 4px 12px #ef444440,0 2px 4px #0000001a}@media (max-width:768px){.holiday-badge{gap:4px;padding:4px 8px}.holiday-icon{font-size:12px}.holiday-text{max-width:100px;font-size:10px}}.rbc-date-cell.holiday-date .holiday-label{color:#b91c1c;background:#fee2e2f2;border:1px solid #ef444447;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:600;box-shadow:0 4px 12px #ef44441f}.holiday-card{border-left:4px solid var(--holiday-accent,#ef4444);background:linear-gradient(90deg,#fffffffa,#fafafcf5)}.holiday-card .holiday-name{color:#0f172a;font-weight:700}.holiday-date-chip{color:#fff;letter-spacing:.2px;background:linear-gradient(135deg,#ef4444eb,#dc2626eb);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block;box-shadow:0 10px 30px #ef44442e}.holiday-date-chip.range{color:#7f1d1d;background:linear-gradient(135deg,#fca5a5f2,#f87171f2)}.delete-modal .modal-header h2{color:var(--holiday-accent,var(--tt-accent,#ef4444))}.holiday-card{border-radius:12px;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.holiday-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0307120f}.holiday-card .holiday-name{letter-spacing:.2px}.holiday-date-chip{transition:background .18s,box-shadow .18s,transform .18s}.holiday-date-chip:hover{transform:translateY(-1px);box-shadow:0 10px 28px #ef44442e}.empty-state{text-align:center;color:#64748b;background:#ffffffd9;border:1px dashed #0206171f;border-radius:12px;padding:24px 12px}.rbc-day-slot.holiday-date{position:relative}.rbc-day-slot.holiday-date:before{content:attr(title);color:#b91c1c;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;z-index:2;background:#fee2e2f2;border:1px solid #ef444447;border-radius:6px;width:calc(100% - 12px);max-width:calc(100% - 12px);padding:2px 6px;font-size:11px;font-weight:700;display:block;position:absolute;top:4px;left:6px;right:6px;overflow:hidden;box-shadow:0 6px 18px #ef44441f}.holiday-day-view{height:100%;position:relative}.holiday-day-view .rbc-time-content,.holiday-day-view .rbc-day-slot{background:linear-gradient(#fef2f259 0%,#fee2e240 100%)!important}.rbc-header .holiday-header{flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-width:0;line-height:1.2;display:flex;overflow:hidden}.rbc-header .holiday-header-label{color:#0f172a;font-weight:600}.rbc-header .holiday-header-badge{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;width:100%;min-width:0;max-width:100%;display:flex;overflow:hidden}.rbc-header .holiday-header-icon{flex:none;line-height:1}.rbc-header .holiday-header-text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.rbc-time-view .rbc-time-header-content .rbc-header{overflow:hidden}.rbc-time-view .rbc-time-header-content .rbc-header .holiday-header{width:100%;min-width:0;max-width:100%;overflow:hidden}.rbc-time-view .rbc-time-header-content .rbc-header .holiday-header-badge{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;width:calc(100% - 8px);min-width:0;max-width:calc(100% - 8px);display:flex;overflow:hidden}.rbc-time-view .rbc-time-header-content .rbc-header .holiday-header-icon{flex:none}.rbc-time-view .rbc-time-header-content .rbc-header .holiday-header-text{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;max-width:100%;overflow:hidden}.rbc-time-view .rbc-time-header-content{overflow:hidden!important}.rbc-time-view .rbc-time-header-content .rbc-header{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}.rbc-time-view .rbc-time-header-content .rbc-header>*{min-width:0!important}.rbc-time-view .rbc-time-header-content .rbc-header .holiday-header-badge{box-sizing:border-box!important;white-space:nowrap!important;text-overflow:ellipsis!important;width:100%!important;min-width:0!important;max-width:100%!important;display:flex!important;overflow:hidden!important}.rbc-time-view .rbc-time-header-content .rbc-header .holiday-header-text{white-space:nowrap!important;text-overflow:ellipsis!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}.rbc-time-view .rbc-time-header .rbc-header.holiday-date,.rbc-time-view .rbc-time-header-content .rbc-header.holiday-date{overflow:hidden!important}.rbc-time-view .rbc-time-header .rbc-header.holiday-date .holiday-header-badge,.rbc-time-view .rbc-time-header-content .rbc-header.holiday-date .holiday-header-badge{text-overflow:ellipsis!important;white-space:nowrap!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}
