.calendar-template-selector{display:inline-block;position:relative}.selector-row{align-items:center;gap:.25rem;display:flex;position:relative}.custom-select-trigger{min-width:11.25rem;max-width:16.25rem;color:var(--text-secondary,#6b7280);cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:.375rem;justify-content:space-between;align-items:center;gap:.5rem;padding:.375rem .625rem;font-size:.8125rem;font-weight:500;transition:all .15s;display:flex}.custom-select-trigger:hover:not(:disabled){background-color:#0000000a;border-color:#00000014}.custom-select-trigger:focus{border-color:var(--color-accent-primary,#3b82f6);outline:none;box-shadow:0 0 0 3px #3b82f626}.custom-select-trigger.open{border-color:var(--color-accent-primary,#3b82f6);background:var(--bg-hover,#f9fafb)}.custom-select-trigger.disabled{opacity:.5;cursor:not-allowed}.trigger-text{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.trigger-arrow{width:1rem;height:1rem;color:var(--text-secondary,#6b7280);flex-shrink:0;transition:transform .15s}.custom-select-trigger.open .trigger-arrow{transform:rotate(180deg)}.trigger-wrapper{display:inline-block;position:relative}.trigger-tooltip{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e5e7eb);white-space:nowrap;z-index:50;border-radius:.375rem;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .75rem;display:none;position:absolute;top:calc(100% + .375rem);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001a}.trigger-tooltip:before{content:"";border:6px solid #0000;border-bottom-color:var(--color-border,#e5e7eb);position:absolute;top:-.375rem;left:50%;transform:translate(-50%)}.trigger-tooltip:after{content:"";border:5px solid #0000;border-bottom-color:var(--color-bg-primary,#fff);position:absolute;top:-.3125rem;left:50%;transform:translate(-50%)}.trigger-wrapper:hover .trigger-tooltip{display:flex}.trigger-tooltip-holidays{color:var(--text-tertiary,#9ca3af);font-size:.6875rem}.custom-dropdown-menu{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e5e7eb);z-index:1000;border-radius:.5rem;min-width:100%;max-width:17.5rem;max-height:18.75rem;animation:.15s calendar-dropdown-enter;position:absolute;top:calc(100% + .25rem);left:0;overflow:visible auto;box-shadow:0 4px 12px #0000001a}@keyframes calendar-dropdown-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.option-group{padding:.25rem 0}.option-group:not(:last-child){border-bottom:1px solid #0000000f}.option-group-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary,#9ca3af);padding:.375rem .75rem .25rem;font-size:.625rem;font-weight:600}.custom-option{cursor:pointer;justify-content:space-between;align-items:center;padding:.5rem .75rem;transition:background-color .1s;display:flex;position:relative}.custom-option:hover{background-color:#0000000a}.custom-option.selected{background-color:#3b82f60f}.custom-option.selected:before{content:"";background-color:var(--color-primary,#3b82f6);border-radius:1px;width:2px;position:absolute;top:.25rem;bottom:.25rem;left:0}.option-name{color:var(--text-primary,#1f2937);align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;display:flex}.option-holidays{color:var(--color-text-muted,#9ca3af);background-color:var(--color-bg-tertiary,#f1f5f9);border-radius:.25rem;padding:1px .3125rem;font-size:.6875rem;font-weight:400}.work-days-indicator{gap:.125rem;display:flex}.day-dot{border-radius:.1875rem;justify-content:center;align-items:center;width:1.125rem;height:1.125rem;font-size:.625rem;font-weight:600;transition:all .1s;display:flex}.day-dot.working{color:#16a34a;background-color:#22c55e26}.day-dot.non-working{color:#cbd5e1;background-color:#64748b14}.template-info-panel{background:var(--bg-secondary,#f9fafb);border-top:1px solid var(--border-color,#e5e7eb);flex-direction:column;align-items:center;gap:.375rem;margin-top:.25rem;padding:.625rem .75rem;display:flex;position:sticky;bottom:0}.info-panel-holidays{color:var(--text-tertiary,#9ca3af);font-size:.6875rem}.no-options{color:var(--text-tertiary,#9ca3af);text-align:center;padding:.75rem 1rem;font-size:.8125rem}.no-user-templates-hint{color:var(--text-tertiary,#9ca3af);text-align:center;padding:.5rem .75rem;font-size:.6875rem;font-style:italic}[data-theme=dark] .custom-select-trigger{color:var(--text-secondary,#9ca3af);background:0 0;border-color:#0000}[data-theme=dark] .custom-select-trigger:hover:not(:disabled){background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .custom-select-trigger:focus,[data-theme=dark] .custom-select-trigger.open{border-color:var(--color-accent-primary,#3b82f6);background:#ffffff0a;box-shadow:0 0 0 3px #3b82f626}[data-theme=dark] .custom-select-trigger.disabled{opacity:.5}[data-theme=dark] .trigger-arrow{color:var(--text-secondary,#9ca3af)}[data-theme=dark] .custom-dropdown-menu{background:var(--bg-secondary,#1f2937);border-color:var(--border-color,#374151);box-shadow:0 4px 12px #0000004d}[data-theme=dark] .option-group:not(:last-child){border-color:#ffffff0f}[data-theme=dark] .option-group-label{color:var(--text-tertiary,#6b7280)}[data-theme=dark] .custom-option:hover{background:#ffffff0f}[data-theme=dark] .custom-option.selected{background:#3b82f61f}[data-theme=dark] .option-name{color:var(--text-primary,#f9fafb)}[data-theme=dark] .option-holidays{color:var(--text-tertiary,#6b7280);background-color:#ffffff14}[data-theme=dark] .day-dot.working{color:#4ade80;background-color:#22c55e33}[data-theme=dark] .day-dot.non-working{color:#475569;background-color:#64748b26}[data-theme=dark] .template-info-panel{background:var(--bg-secondary,#1f2937);border-color:#ffffff0f}[data-theme=dark] .info-panel-holidays{color:var(--text-tertiary,#6b7280)}[data-theme=dark] .trigger-tooltip{background:var(--bg-secondary,#1f2937);border-color:var(--border-color,#374151);box-shadow:0 4px 12px #0000004d}[data-theme=dark] .trigger-tooltip:before{border-bottom-color:var(--border-color,#374151)}[data-theme=dark] .trigger-tooltip:after{border-bottom-color:var(--bg-secondary,#1f2937)}[data-theme=dark] .trigger-tooltip-holidays,[data-theme=dark] .no-options,[data-theme=dark] .no-user-templates-hint{color:var(--text-tertiary,#6b7280)}.template-switch-dialog-overlay{z-index:1100;background-color:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.template-switch-dialog{background-color:var(--bg-color,#fff);border-radius:.75rem;width:100%;max-width:26.25rem;padding:1.5rem;box-shadow:0 20px 40px #0003}.template-switch-dialog h3{color:var(--text-color,#1a202c);margin:0 0 .75rem;font-size:1.125rem;font-weight:600}.template-switch-dialog p{color:var(--text-muted,#64748b);margin:0 0 .5rem;font-size:.875rem;line-height:1.5}.template-switch-dialog p strong{color:var(--text-color,#1a202c)}.dialog-options{flex-direction:column;gap:.625rem;margin:1.25rem 0;display:flex}.dialog-option{text-align:left;background-color:var(--muted-bg,#f8fafc);border:1px solid var(--border-color,#e2e8f0);cursor:pointer;border-radius:.5rem;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.875rem 1rem;transition:all .15s;display:flex}.dialog-option:hover{background-color:var(--primary-color-alpha,#3b82f60d);border-color:var(--primary-color,#3b82f6)}.dialog-option strong{color:var(--text-color,#1a202c);font-size:.875rem;font-weight:600}.dialog-option span{color:var(--text-muted,#64748b);font-size:.8125rem;line-height:1.4}.template-switch-dialog .dialog-actions{justify-content:flex-end;display:flex}.template-switch-dialog .btn-cancel{color:var(--text-muted,#64748b);border:1px solid var(--border-color,#e2e8f0);cursor:pointer;background-color:#0000;border-radius:.375rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .15s}.template-switch-dialog .btn-cancel:hover{background-color:var(--muted-bg,#f1f5f9)}[data-theme=dark] .template-switch-dialog{background:var(--bg-secondary,#1f2937)}[data-theme=dark] .template-switch-dialog h3,[data-theme=dark] .dialog-option strong,[data-theme=dark] .template-switch-dialog p strong{color:var(--text-primary,#f9fafb)}[data-theme=dark] .dialog-option{border-color:var(--border-color,#374151);background:#ffffff0a}[data-theme=dark] .dialog-option:hover{border-color:var(--color-accent-primary,#3b82f6);background:#3b82f61a}[data-theme=dark] .template-switch-dialog .btn-cancel{color:var(--text-secondary,#9ca3af);border-color:var(--border-color,#374151)}[data-theme=dark] .template-switch-dialog .btn-cancel:hover{background:#ffffff0f}
.project-calendar-editor{flex-direction:column;gap:1rem;display:flex}.calendar-nav{align-items:center;gap:.5rem;display:flex}.nav-btn{border:1px solid var(--border-color,#e2e8f0);background-color:var(--bg-color,#fff);width:2rem;height:2rem;color:var(--text-color,#1a202c);cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;font-size:1rem;font-weight:600;transition:all .15s;display:flex}.nav-btn:hover{background-color:var(--muted-bg,#f1f5f9)}.current-month{text-align:center;color:var(--text-color,#1a202c);flex:1;font-size:1rem;font-weight:600}.today-btn{border:1px solid var(--border-color,#e2e8f0);background-color:var(--bg-color,#fff);color:var(--text-muted,#64748b);cursor:pointer;border-radius:.375rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;transition:all .15s}.today-btn:hover{background-color:var(--muted-bg,#f1f5f9);color:var(--text-color,#1a202c)}.calendar-grid{background-color:var(--border-color,#e2e8f0);border:1px solid var(--border-color,#e2e8f0);border-radius:.5rem;grid-template-columns:repeat(7,1fr);gap:.125rem;display:grid;overflow:hidden}.calendar-header{text-align:center;background-color:var(--muted-bg,#f8fafc);color:var(--text-muted,#64748b);padding:.5rem .25rem;font-size:.75rem;font-weight:600}.calendar-day{aspect-ratio:1;cursor:pointer;border:none;justify-content:center;align-items:center;min-height:2.25rem;font-size:.8125rem;font-weight:500;transition:all .15s;display:flex}.calendar-day:disabled{cursor:not-allowed;opacity:.5}.calendar-day.other-month{opacity:.4}.calendar-day.today{outline:2px solid var(--primary-color,#3b82f6);outline-offset:-2px;z-index:1;font-weight:700}.calendar-day.work-day{background-color:var(--bg-color,#fff);color:var(--text-color,#1a202c)}.calendar-day.work-day:hover:not(:disabled){background-color:var(--success-bg-hover,#bbf7d0)}.calendar-day.non-work-day{background-color:var(--muted-bg,#f1f5f9);color:var(--text-muted,#94a3b8)}.calendar-day.holiday{background-color:var(--danger-bg,#fecaca);color:var(--danger-color,#b91c1c)}.calendar-day.holiday:hover:not(:disabled){background-color:var(--danger-bg-hover,#fca5a5)}.calendar-day.working-exception{background-color:var(--success-bg,#dcfce7);color:var(--success-color,#166534)}.calendar-day.selected{outline:2px solid var(--primary-color,#3b82f6);outline-offset:-2px;background-color:var(--primary-bg,#dbeafe)!important;color:var(--primary-color,#1d4ed8)!important}.selection-hint{color:var(--text-muted,#64748b);margin:0;font-size:.75rem;font-style:italic}.holiday-input-dialog{z-index:1100;background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-content{background-color:var(--bg-color,#fff);border-radius:.5rem;flex-direction:column;gap:.75rem;min-width:17.5rem;padding:1.25rem;display:flex;box-shadow:0 10px 25px #0003}.dialog-content label{color:var(--text-color,#1a202c);font-size:.875rem;font-weight:500}.dialog-content input{border:1px solid var(--border-color,#e2e8f0);background-color:var(--bg-color,#fff);color:var(--text-color,#1a202c);border-radius:.375rem;padding:.625rem .75rem;font-size:.875rem}.dialog-content input:focus{border-color:var(--primary-color,#3b82f6);outline:none;box-shadow:0 0 0 3px #3b82f61a}.dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.dialog-actions button{cursor:pointer;border-radius:.375rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;transition:all .15s}.dialog-actions button:not(.primary){border:1px solid var(--border-color,#e2e8f0);color:var(--text-muted,#64748b);background-color:#0000}.dialog-actions button:not(.primary):hover{background-color:var(--muted-bg,#f1f5f9)}.dialog-actions button.primary{background-color:var(--primary-color,#3b82f6);border:1px solid var(--primary-color,#3b82f6);color:#fff}.dialog-actions button.primary:hover{background-color:#2563eb}.holiday-naming-toggle{background-color:var(--muted-bg,#f1f5f9);border-radius:.375rem;gap:.125rem;padding:.125rem;display:flex}.naming-toggle-btn{color:var(--text-muted,#64748b);cursor:pointer;background-color:#0000;border:none;border-radius:.25rem;flex:1;padding:.375rem .75rem;font-size:.75rem;font-weight:500;transition:all .15s}.naming-toggle-btn.active{background-color:var(--bg-color,#fff);color:var(--text-color,#1a202c);box-shadow:0 1px 3px #0000001a}.per-day-names-list{flex-direction:column;gap:.375rem;max-height:12.5rem;display:flex;overflow-y:auto}.per-day-name-row{align-items:center;gap:.5rem;display:flex}.per-day-date{color:var(--text-muted,#64748b);flex-shrink:0;min-width:5.625rem;font-family:monospace;font-size:.75rem;font-weight:600}.per-day-name-row input{border:1px solid var(--border-color,#e2e8f0);background-color:var(--bg-color,#fff);color:var(--text-color,#1a202c);border-radius:.25rem;flex:1;padding:.375rem .625rem;font-size:.8125rem}.per-day-name-row input:focus{border-color:var(--primary-color,#3b82f6);outline:none;box-shadow:0 0 0 2px #3b82f61a}.pending-selection-bar{background-color:var(--primary-bg,#dbeafe);border:1px solid var(--primary-color,#3b82f6);color:var(--primary-color,#1d4ed8);border-radius:.375rem;justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;display:flex}.pending-selection-actions{gap:.5rem;display:flex}.pending-selection-actions button{cursor:pointer;border-radius:.25rem;padding:.25rem .75rem;font-size:.75rem;font-weight:500;transition:all .15s}.pending-selection-actions button:not(.primary){border:1px solid var(--primary-color,#3b82f6);color:var(--primary-color,#1d4ed8);background-color:#0000}.pending-selection-actions button:not(.primary):hover{background-color:#3b82f61a}.pending-selection-actions button.primary{background-color:var(--primary-color,#3b82f6);border:1px solid var(--primary-color,#3b82f6);color:#fff}.pending-selection-actions button.primary:hover{background-color:#2563eb}[data-theme=dark] .pending-selection-bar,.dark .pending-selection-bar{color:#93c5fd;background-color:#3b82f626;border-color:#60a5fa}[data-theme=dark] .pending-selection-actions button:not(.primary),.dark .pending-selection-actions button:not(.primary){color:#93c5fd;border-color:#60a5fa}.calendar-legend{gap:1rem;padding:.5rem 0;display:flex}.legend-item{color:var(--text-muted,#64748b);align-items:center;gap:.375rem;font-size:.75rem;display:flex}.legend-color{border:1px solid var(--border-color,#e2e8f0);border-radius:.1875rem;width:.875rem;height:.875rem}.legend-color.work-day{background-color:var(--bg-color,#fff)}.legend-color.non-work-day{background-color:var(--muted-bg,#f1f5f9)}.legend-color.holiday{background-color:var(--danger-bg,#fecaca);border-color:var(--danger-border,#f87171)}.holidays-list{border:1px solid var(--border-color,#e2e8f0);background-color:var(--muted-bg,#f8fafc);border-radius:.5rem;padding:.75rem 1rem}.holidays-list h4{color:var(--text-color,#1a202c);margin:0 0 .75rem;font-size:.875rem;font-weight:600}.empty-holidays{color:var(--text-muted,#94a3b8);margin:0;font-size:.8125rem;font-style:italic}.holidays-list ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.holiday-item{background-color:var(--bg-color,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:.375rem;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.holiday-date{color:var(--text-muted,#64748b);font-family:monospace;font-size:.8125rem;font-weight:600}.holiday-name{color:var(--text-color,#1a202c);cursor:pointer;flex:1;font-size:.8125rem}.holiday-name:hover{text-decoration:underline}.holiday-name-edit{flex:1;gap:.375rem;display:flex}.holiday-name-edit input{border:1px solid var(--primary-color,#3b82f6);border-radius:.25rem;flex:1;padding:.25rem .5rem;font-size:.8125rem}.holiday-name-edit button{border:1px solid var(--border-color,#e2e8f0);background-color:var(--bg-color,#fff);cursor:pointer;border-radius:.25rem;padding:.25rem .625rem;font-size:.75rem}.holiday-name-edit button:first-of-type{background-color:var(--primary-color,#3b82f6);border-color:var(--primary-color,#3b82f6);color:#fff}.remove-holiday-btn{width:1.5rem;height:1.5rem;color:var(--text-muted,#94a3b8);cursor:pointer;background-color:#0000;border:none;border-radius:.25rem;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:all .15s;display:flex}.remove-holiday-btn:hover:not(:disabled){background-color:var(--danger-bg,#fecaca);color:var(--danger-color,#dc2626)}.remove-holiday-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .nav-btn,[data-theme=dark] .today-btn,.dark .nav-btn,.dark .today-btn{background-color:var(--bg-dark,#1e293b);border-color:var(--border-dark,#334155);color:var(--text-light,#f1f5f9)}[data-theme=dark] .current-month,.dark .current-month{color:var(--text-light,#f1f5f9)}[data-theme=dark] .calendar-grid,.dark .calendar-grid{background-color:var(--border-dark,#334155);border-color:var(--border-dark,#334155)}[data-theme=dark] .calendar-header,.dark .calendar-header{background-color:var(--bg-dark-accent,#0f172a)}[data-theme=dark] .calendar-day.work-day,.dark .calendar-day.work-day{background-color:var(--bg-dark,#1e293b);color:var(--text-light,#f1f5f9)}[data-theme=dark] .calendar-day.non-work-day,.dark .calendar-day.non-work-day{background-color:var(--bg-dark-accent,#0f172a);color:var(--text-muted,#64748b)}[data-theme=dark] .calendar-day.holiday,.dark .calendar-day.holiday{color:#fca5a5;background-color:#ef44444d}[data-theme=dark] .dialog-content,.dark .dialog-content{background-color:var(--bg-dark,#1e293b)}[data-theme=dark] .dialog-content label,.dark .dialog-content label{color:var(--text-light,#f1f5f9)}[data-theme=dark] .dialog-content input,.dark .dialog-content input{background-color:var(--bg-dark-accent,#0f172a);border-color:var(--border-dark,#334155);color:var(--text-light,#f1f5f9)}[data-theme=dark] .holidays-list,.dark .holidays-list{background-color:var(--bg-dark-accent,#0f172a);border-color:var(--border-dark,#334155)}[data-theme=dark] .holidays-list h4,.dark .holidays-list h4{color:var(--text-light,#f1f5f9)}[data-theme=dark] .holiday-item,.dark .holiday-item{background-color:var(--bg-dark,#1e293b);border-color:var(--border-dark,#334155)}[data-theme=dark] .holiday-name,.dark .holiday-name{color:var(--text-light,#f1f5f9)}[data-theme=dark] .calendar-day.selected,.dark .calendar-day.selected{outline-color:#60a5fa;color:#93c5fd!important;background-color:#3b82f64d!important}[data-theme=dark] .selection-hint,.dark .selection-hint{color:var(--text-muted-dark,#94a3b8)}[data-theme=dark] .holiday-naming-toggle,.dark .holiday-naming-toggle{background-color:var(--bg-dark-accent,#0f172a)}[data-theme=dark] .naming-toggle-btn.active,.dark .naming-toggle-btn.active{background-color:var(--bg-dark,#1e293b);color:var(--text-light,#f1f5f9)}[data-theme=dark] .per-day-name-row input,.dark .per-day-name-row input{background-color:var(--bg-dark-accent,#0f172a);border-color:var(--border-dark,#334155);color:var(--text-light,#f1f5f9)}@media (max-width:30em){.nav-btn{width:2.75rem;height:2.75rem}.today-btn,.dialog-actions button{min-height:2.75rem;padding:.625rem 1rem;font-size:.875rem}.naming-toggle-btn{min-height:2.75rem;padding:.5rem .75rem;font-size:.8125rem}.pending-selection-actions button{min-height:2.75rem;padding:.5rem .875rem;font-size:.8125rem}.dialog-content input{min-height:2.75rem;font-size:1rem}}
