:root{--bg-body:#f0f2f5;--bg-card:#fff;--bg-leave-row:#fff;--bg-work-date:#f8f9fa;--text-main:#333;--text-muted:#6c757d;--input-bg:#fff;--input-text:#212529;--input-border:#ced4da;--input-placeholder:#adb5bd;--row-border:#e2e8f0;--weekend-bg:#fff9db;--weekend-border:#ffe066;--primary-color:#0d6efd;--section-title-color:#a2bb9c}[data-theme=dark]{--bg-body:#18191a;--bg-card:#242526;--bg-leave-row:#242526;--bg-work-date:#3a3b3c;--text-main:#e4e6eb;--text-muted:#b0b3b8;--input-bg:#3a3b3c;--input-text:#e4e6eb;--input-border:#505255;--input-placeholder:#9ca0a5;--row-border:#3e4042;--weekend-bg:#4a4a35;--weekend-border:#666030;--primary-color:#4dabf7}body{transition:background-color .3s,color .3s;background-color:var(--bg-body)!important;color:var(--text-main)!important;font-family:Noto Sans KR,sans-serif!important}.main-container{background:var(--bg-card);border-radius:16px;max-width:1200px;margin:30px auto;padding:40px;transition:background-color .3s;box-shadow:0 10px 30px #0000000d}.header-box{flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:0;display:flex}.header-title{color:var(--text-main);letter-spacing:-.5px;margin:0;font-weight:700}.theme-switch-wrapper{align-items:center;display:flex}.section-title{color:var(--section-title-color);align-items:center;gap:8px;margin-bottom:15px;font-size:1.3rem;font-weight:700;display:flex}.form-control,.form-select{background-color:var(--input-bg)!important;color:var(--input-text)!important;border:1px solid var(--input-border)!important;border-radius:8px!important;padding:.7rem .8rem!important}.form-control:focus,.form-select:focus{border-color:var(--primary-color)!important;box-shadow:0 0 0 .2rem #0d6efd26!important}.form-control::placeholder{opacity:1;color:var(--input-placeholder)!important}[data-theme=dark] .form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e4e6eb' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")!important}.result-box{background-color:var(--bg-leave-row);border:1px solid var(--row-border);border-radius:12px;margin-top:30px;padding:20px}.result-item{text-align:center}.result-num{color:var(--primary-color);font-size:1.8rem;font-weight:800}.approval-area{border-top:2px dashed var(--row-border);margin-top:40px;padding-top:30px}.formal-text{text-align:center;color:var(--text-muted);margin:30px 0;font-size:1.1rem;font-weight:500}.text-label{color:var(--text-main)}.tabs{border-bottom:2px solid var(--row-border);gap:28px;margin-bottom:35px;padding-left:8px;display:flex}.tab-button{color:var(--text-muted);cursor:pointer;padding:12px 2px;font-size:1rem;font-weight:700;transition:color .2s;position:relative;background:0 0!important;border:none!important;border-radius:0!important}.tab-button:hover{color:var(--text-main)}.tab-button.active{color:var(--section-title-color)!important}.tab-button.active:after{content:"";background-color:var(--section-title-color);border-radius:3px 3px 0 0;height:3px;animation:.25s cubic-bezier(.4,0,.2,1) forwards tabLineGrow;position:absolute;bottom:-2px;left:0;right:0}@keyframes tabLineGrow{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}.rdp{--rdp-accent-color:#198754!important;--rdp-background-color:var(--bg-work-date)!important;margin:0!important}.rdp-day,.rdp-caption_label{color:var(--text-main)}.rdp-head_cell{color:var(--text-muted)}.rdp-day_today:not(.rdp-day_selected){color:var(--text-main)!important;border:2px solid #adb5bd!important;font-weight:700!important}.apply-selector-box{background-color:var(--bg-work-date);border:1px solid var(--row-border);border-radius:16px;box-shadow:inset 0 2px 4px #00000005}.apply-selector-box .form-select{font-weight:500;transition:all .2s;border:1px solid var(--input-border)!important;border-radius:12px!important}.apply-selector-box .form-select:focus{border-color:var(--section-title-color)!important;box-shadow:0 0 0 3px #a2bb9c33!important}.calendar-selected-row{border:1px solid var(--row-border);background-color:var(--bg-leave-row);animation:.25s cubic-bezier(.4,0,.2,1) forwards slideDown;overflow:hidden;box-shadow:0 4px 10px #00000008;border-radius:16px!important}.calendar-selected-row select{border-radius:10px!important}.work-date-box{background-color:var(--bg-work-date);border:1px dashed var(--section-title-color);border-radius:12px;animation:.25s cubic-bezier(.4,0,.2,1) forwards slideDown;overflow:hidden}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-8px);margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}to{opacity:1;max-height:200px;transform:translateY(0)}}@media (width<=768px){.main-container{border-radius:12px!important;margin:10px auto!important;padding:20px 15px!important}.header-box{margin-bottom:20px!important}.header-title{font-size:1.4rem!important}.tabs{white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px;overflow-x:auto;gap:16px!important;margin-bottom:25px!important}.tabs::-webkit-scrollbar{display:none}.tab-button{padding:10px 0!important;font-size:.9rem!important}.apply-selector-box{flex-direction:column;gap:12px!important;padding:12px!important}}.custom-select-trigger{background-color:var(--input-bg);color:var(--input-text);border:1px solid var(--input-border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:space-between;align-items:center;padding:.7rem .8rem;font-size:1rem;transition:border-color .2s,box-shadow .2s;display:flex}.custom-select-trigger:focus-within,.custom-select-trigger:hover{border-color:var(--primary-color)}.chevron-icon{color:var(--text-muted);transition:transform .2s}.chevron-icon.open{transform:rotate(180deg)}.custom-select-options{background-color:var(--bg-card);border:1px solid var(--row-border);z-index:1000;border-radius:12px;max-height:250px;margin-top:6px;padding:6px;animation:.2s cubic-bezier(.4,0,.2,1) forwards dropdownFadeIn;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 10px 25px #0000001a}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{cursor:pointer;color:var(--text-main);border-radius:8px;padding:10px 14px;font-size:.9rem;transition:background-color .15s,color .15s}.custom-select-option:hover{background-color:var(--bg-work-date);color:var(--primary-color)}.custom-select-option.active{background-color:var(--primary-color);color:#fff;font-weight:700}[data-theme=dark] .custom-select-option.active{color:#18191a}.custom-select-options::-webkit-scrollbar{width:6px}.custom-select-options::-webkit-scrollbar-track{background:0 0}.custom-select-options::-webkit-scrollbar-thumb{background-color:var(--input-border);border-radius:10px}.header-actions{align-items:center;gap:14px;display:flex}.schedule-entry-button{color:#fff;background:#3f765d;border-radius:9px;padding:9px 13px;font-size:.88rem;font-weight:700;text-decoration:none;box-shadow:0 3px 8px #3f765d2e}.leave-return-link{color:#3f765d;margin-left:auto;margin-right:16px;font-size:.84rem;font-weight:700;text-decoration:none}@media (width<=768px){.header-actions{justify-content:space-between;width:100%}.schedule-entry-button{padding:8px 10px;font-size:.82rem}.leave-return-link{width:100%;margin:0 0 12px}}.schedule-tab-link{color:#fff;white-space:nowrap;background:#3f765d;border-radius:9px;align-self:center;margin-left:auto;padding:9px 13px;font-size:.88rem;font-weight:700;text-decoration:none;box-shadow:0 3px 8px #3f765d2e}.leave-return-link{color:#2f634b;background:#eef6f1;border:1px solid #bcd5c5;border-radius:8px;align-items:center;min-height:38px;margin-left:auto;margin-right:16px;padding:0 13px;font-size:.84rem;font-weight:700;text-decoration:none;display:inline-flex}@media (width<=768px){.schedule-tab-link{padding:8px 10px;font-size:.82rem}.leave-return-link{width:auto;margin:0 0 12px}.tabs{padding-right:2px}}.rdp-root{--rdp-accent-color:blue;--rdp-accent-background-color:#f0f0ff;--rdp-day-height:44px;--rdp-day-width:44px;--rdp-day_button-border-radius:100%;--rdp-day_button-border:2px solid transparent;--rdp-day_button-height:42px;--rdp-day_button-width:42px;--rdp-selected-border:2px solid var(--rdp-accent-color);--rdp-disabled-opacity:.5;--rdp-outside-opacity:.75;--rdp-today-color:var(--rdp-accent-color);--rdp-dropdown-gap:.5rem;--rdp-months-gap:2rem;--rdp-nav_button-disabled-opacity:.5;--rdp-nav_button-height:2.25rem;--rdp-nav_button-width:2.25rem;--rdp-nav-height:2.75rem;--rdp-range_middle-background-color:var(--rdp-accent-background-color);--rdp-range_middle-color:inherit;--rdp-range_start-color:white;--rdp-range_start-background:linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%);--rdp-range_start-date-background-color:var(--rdp-accent-color);--rdp-range_end-background:linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%);--rdp-range_end-color:white;--rdp-range_end-date-background-color:var(--rdp-accent-color);--rdp-week_number-border-radius:100%;--rdp-week_number-border:2px solid transparent;--rdp-week_number-height:var(--rdp-day-height);--rdp-week_number-opacity:.75;--rdp-week_number-width:var(--rdp-day-width);--rdp-weeknumber-text-align:center;--rdp-weekday-opacity:.75;--rdp-weekday-padding:.5rem 0rem;--rdp-weekday-text-align:center;--rdp-gradient-direction:90deg;--rdp-animation_duration:.3s;--rdp-animation_timing:cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity:unset}.rdp-root{box-sizing:border-box;position:relative}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{cursor:pointer;font:inherit;color:inherit;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius);background:0 0;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;white-space:nowrap;border:0;align-items:center;display:inline-flex;position:relative}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{cursor:pointer;font:inherit;color:inherit;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:relative}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{fill:var(--rdp-accent-color);display:inline-block}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.rdp-dropdowns{align-items:center;gap:var(--rdp-dropdown-gap);display:inline-flex;position:relative}.rdp-dropdown{z-index:2;opacity:0;appearance:none;width:100%;cursor:inherit;line-height:inherit;border:none;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{height:var(--rdp-nav-height);align-content:center;font-size:large;font-weight:700;display:flex}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{inset-inline-start:0;height:var(--rdp-nav-height);display:inline-flex;position:absolute;top:0}.rdp-root[data-nav-layout=around] .rdp-button_next{inset-inline-end:0;height:var(--rdp-nav-height);justify-content:center;display:inline-flex;position:absolute;top:0}.rdp-months{gap:var(--rdp-months-gap);flex-wrap:wrap;max-width:fit-content;display:flex;position:relative}.rdp-month_grid{border-collapse:collapse}.rdp-nav{height:var(--rdp-nav-height);align-items:center;display:flex;position:absolute;inset-block-start:0;inset-inline-end:0}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform);font-size:smaller;font-weight:500}.rdp-week_number{opacity:var(--rdp-week_number-opacity);height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align);font-size:small;font-weight:400}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-size:large;font-weight:700}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.animate-fade-in{animation:.3s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.min-w-150{min-width:150px}.btn-icon-nav{border:1px solid var(--row-border);background-color:var(--bg-card);width:38px;height:38px;color:var(--text-main);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.btn-icon-nav:hover{background-color:var(--bg-work-date);border-color:var(--primary-color);color:var(--primary-color)}.stats-summary-bar{background-color:var(--bg-card);border-radius:12px;border-color:var(--row-border)!important}.stat-card{flex:1;min-width:100px}.stat-divider{background-color:var(--row-border);align-self:stretch;width:1px}.stat-val{margin-top:4px}.calendar-container{background-color:var(--bg-card);border:1px solid var(--row-border);border-radius:12px;flex-direction:column;display:flex}.calendar-weekdays-grid{text-align:center;background-color:var(--bg-work-date);border-bottom:1px solid var(--row-border);grid-template-columns:repeat(7,1fr);padding:12px 0;font-size:.9rem;font-weight:700;display:grid}.weekday{color:var(--text-main)}.calendar-days-grid{grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(120px,auto);display:grid}.calendar-day-cell{border-right:1px solid var(--row-border);border-bottom:1px solid var(--row-border);background-color:var(--bg-card);flex-direction:column;padding:8px;transition:background-color .2s;display:flex;position:relative}.calendar-day-cell:nth-child(7n){border-right:none}.calendar-day-cell:hover{background-color:var(--bg-work-date)}.other-month{background-color:var(--bg-work-date);opacity:.55}.today-highlight{position:relative;background-color:#a2bb9c14!important}.today-highlight:after{content:"";pointer-events:none;z-index:2;border-radius:0;position:absolute;inset:0;border:2px solid var(--section-title-color)!important}.today-badge{background-color:var(--section-title-color);color:#fff;border-radius:4px;padding:1px 4px;font-size:.65rem;font-weight:700}.day-header{color:var(--text-main);margin-bottom:6px;font-size:.85rem;font-weight:600}.holiday-cell .day-number{color:#dc3545}.saturday-cell .day-number{color:#0d6efd}.day-events-container{flex-direction:column;flex-grow:1;gap:4px;display:flex}.leave-capsule{box-sizing:border-box;border:1px solid #0000;border-radius:4px;align-items:center;width:100%;padding:3px 6px;font-size:.72rem;font-weight:700;line-height:1.2;display:flex}.capsule-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.capsule-type{opacity:.85;margin-left:2px;font-weight:500}.leave-more-indicator{color:var(--text-muted);text-align:center;padding:2px 0;font-size:.68rem;font-weight:700}.badge-annual{color:#0d6efd;background-color:#0d6efd14;border-color:#0d6efd26}.badge-alternative{color:#198754;background-color:#19875414;border-color:#19875426}.badge-sick{color:#dc3545;background-color:#dc354514;border-color:#dc354526}.badge-family{color:#fd7e14;background-color:#fd7e1414;border-color:#fd7e1426}.badge-official{color:#0aa2c0;background-color:#0dcaf014;border-color:#0dcaf026}.badge-etc{color:#6c757d;background-color:#6c757d14;border-color:#6c757d26}[data-theme=dark] .badge-annual{color:#74c0fc;background-color:#4dabf726;border-color:#4dabf740}[data-theme=dark] .badge-alternative{color:#63e6be;background-color:#2bb67326;border-color:#2bb67340}[data-theme=dark] .badge-sick{color:#ff8787;background-color:#fa525226;border-color:#fa525240}[data-theme=dark] .badge-family{color:#ffd8a8;background-color:#ff922b26;border-color:#ff922b40}[data-theme=dark] .badge-official{color:#66d9e8;background-color:#15aabf26;border-color:#15aabf40}[data-theme=dark] .badge-etc{color:#dee2e6;background-color:#adb5bd26;border-color:#adb5bd40}.cell-tooltip-popover{opacity:0;visibility:hidden;background-color:var(--bg-card);border:1px solid var(--row-border);z-index:100;pointer-events:none;border-radius:12px;min-width:220px;max-width:280px;padding:12px;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),visibility .2s;display:block;position:absolute;bottom:105%;left:50%;transform:translate(-50%)translateY(8px);box-shadow:0 4px 20px #00000026}.cell-tooltip-popover:after{content:"";border-style:solid;border-width:6px;border-color:var(--row-border) transparent transparent transparent;position:absolute;top:100%;left:50%;transform:translate(-50%)}.calendar-day-cell:hover .cell-tooltip-popover{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.calendar-day-cell:nth-child(7n+1) .cell-tooltip-popover{left:4px;transform:translateY(8px)}.calendar-day-cell:nth-child(7n+1):hover .cell-tooltip-popover{transform:translateY(0)}.calendar-day-cell:nth-child(7n+1) .cell-tooltip-popover:after{left:20px;transform:none}.calendar-day-cell:nth-child(7n) .cell-tooltip-popover{left:auto;right:4px;transform:translateY(8px)}.calendar-day-cell:nth-child(7n):hover .cell-tooltip-popover{transform:translateY(0)}.calendar-day-cell:nth-child(7n) .cell-tooltip-popover:after{left:auto;right:20px;transform:none}.tooltip-list{flex-direction:column;gap:4px;display:flex}.tooltip-item{border-bottom:1px dashed var(--row-border);font-size:.75rem}.tooltip-item:last-child{border-bottom:none}.text-xs{font-size:.7rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}@media (width<=768px){.calendar-days-grid{grid-auto-rows:minmax(55px,auto)}.calendar-day-cell{min-height:55px!important;padding:4px!important}.day-header{margin-bottom:0;font-size:.72rem}.leave-capsule{display:none!important}.stat-card{min-width:80px}.selected-day-mobile-highlight{z-index:10;box-shadow:inset 0 0 0 2px var(--section-title-color)!important;background-color:#a2bb9c1f!important}}.calendar-filter-card{background-color:var(--bg-card);border:1px solid var(--row-border);border-radius:20px;box-shadow:0 8px 24px #0000000a}.calendar-filter-card .form-control,.calendar-filter-card .form-select{font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);background-color:var(--bg-body)!important;border:1px solid var(--row-border)!important;border-radius:30px!important;padding:.55rem 1.1rem .55rem 2.2rem!important;font-size:.85rem!important}.calendar-filter-card .form-select{padding-left:1.1rem!important}.calendar-filter-card .form-control:focus,.calendar-filter-card .form-select:focus{border-color:var(--section-title-color)!important;background-color:var(--bg-card)!important;box-shadow:0 0 0 3px #a2bb9c40!important}.event-dot{border-radius:50%;width:5px;height:5px;display:inline-block}.event-dot.badge-annual{background-color:#0d6efd}.event-dot.badge-alternative{background-color:#198754}.event-dot.badge-sick{background-color:#dc3545}.event-dot.badge-family{background-color:#fd7e14}.event-dot.badge-official{background-color:#0dcaf0}.event-dot.badge-etc{background-color:#6c757d}[data-theme=dark] .event-dot.badge-annual{background-color:#4dabf7}[data-theme=dark] .event-dot.badge-alternative{background-color:#63e6be}[data-theme=dark] .event-dot.badge-sick{background-color:#ff8787}[data-theme=dark] .event-dot.badge-family{background-color:#ffd8a8}[data-theme=dark] .event-dot.badge-official{background-color:#66d9e8}[data-theme=dark] .event-dot.badge-etc{background-color:#dee2e6}.event-dot-more{color:var(--text-muted);margin-top:-3px;font-size:.6rem;font-weight:700;line-height:1}.schedule-heading{justify-content:space-between;gap:16px;margin-bottom:24px;display:flex}.schedule-heading h3{margin:0 0 5px;font-size:1.45rem}.schedule-heading p{color:var(--text-muted);margin:0;font-size:.9rem}.dialog-confirm{color:#fff;cursor:pointer;background:#3f765d;border:0;border-radius:8px;justify-content:center;align-items:center;height:38px;padding:0 18px;font-size:.82rem;font-weight:700;transition:background .2s;display:inline-flex}.dialog-confirm:hover{background:#305c47}.schedule-tabs{border-bottom:1px solid var(--row-border);gap:5px;margin-bottom:18px;display:flex}.schedule-tabs button{color:var(--text-muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:11px 16px;font-weight:700}.schedule-tabs button.active{color:#3f765d;border-color:#3f765d}.schedule-toolbar{border:1px solid var(--row-border);background:var(--bg-work-date);border-radius:10px 10px 0 0;align-items:center;gap:9px;padding:10px 14px;display:flex}.schedule-toolbar button{border:1px solid var(--input-border);background:var(--bg-card);width:34px;height:34px;color:var(--text-main);border-radius:7px;place-items:center;display:grid}.schedule-toolbar strong{text-align:center;min-width:115px}.schedule-toolbar span{color:var(--text-muted);margin-left:auto;font-size:.8rem}.schedule-grid-wrap{border:1px solid var(--row-border);border-top:0;max-height:550px;overflow:auto}.schedule-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.8rem}.schedule-grid th,.schedule-grid td{border-right:1px solid var(--row-border);border-bottom:1px solid var(--row-border);background:var(--bg-card);text-align:center;min-width:54px;height:58px;padding:3px}.schedule-grid thead th{z-index:2;background:var(--bg-work-date);height:53px;color:var(--text-muted);position:sticky;top:0}.schedule-grid thead small{display:block}.schedule-grid .name-column{z-index:3;background:var(--bg-card);text-align:left;min-width:90px;padding-left:13px;position:sticky;left:0;box-shadow:2px 0 3px #00000008}.schedule-grid thead .name-column{background:var(--bg-work-date)}.schedule-grid .weekend{background:var(--weekend-bg)}.schedule-cell{cursor:pointer;background:0 0;border:0;place-items:center;gap:3px;width:100%;height:100%;display:grid}.work-code{border-radius:5px;min-width:42px;padding:3px 5px;font-size:.72rem;font-weight:700}.schedule-cell:hover .work-code{outline-offset:2px;outline:2px solid #3f765d}.code-24시간{color:#29704c;background:#dff2e7}.code-오전오후{color:#8b6a18;background:#fff3ce}.code-S{color:#6051b3;background:#ece9ff}.code-H{color:#b34848;background:#ffe3e3}.code-휴무{color:#68717b;background:#eef0f2}.leave-code{color:#a66b12;font-weight:700}.schedule-legend{border:1px solid var(--row-border);background:var(--bg-work-date);color:var(--text-muted);border-top:0;border-radius:0 0 10px 10px;flex-wrap:wrap;gap:22px;padding:12px 14px;font-size:.78rem;display:flex}.schedule-legend b{color:var(--text-main)}.schedule-dialog-backdrop{z-index:10;background:#0f1b144d;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.schedule-dialog{background:var(--bg-card);border-radius:14px;width:min(420px,100%);padding:20px;box-shadow:0 20px 55px #0003}.schedule-dialog header{border-bottom:1px solid var(--row-border);justify-content:space-between;padding-bottom:14px;display:flex}.schedule-dialog header strong,.schedule-dialog header small{display:block}.schedule-dialog header button{color:var(--text-muted);background:0 0;border:0}.dialog-section{padding:17px 0}.dialog-section label{margin-bottom:9px;font-size:.82rem;font-weight:700;display:block}.dialog-section div{flex-wrap:wrap;gap:7px;display:flex}.dialog-section div button{border:1px solid var(--input-border);background:var(--bg-work-date);color:var(--text-main);border-radius:7px;padding:8px 10px;font-size:.82rem}.dialog-section div button.selected{color:#24543e;background:#e1f0e7;border-color:#3f765d;font-weight:700}.dialog-section div button.leave-selected{color:#916010;background:#fff5da;border-color:#c8922a}.dialog-section small{color:var(--text-muted);margin-top:10px;display:block}.dialog-confirm{justify-content:center;width:100%}@media (width<=768px){.schedule-heading{flex-direction:column}.schedule-toolbar span{display:none}.schedule-legend{flex-direction:column;gap:8px}}.schedule-view-toggle{border:1px solid var(--input-border);border-radius:8px;margin-left:auto;display:flex;overflow:hidden}.schedule-view-toggle button{border:0;border-radius:0;align-items:center;gap:5px;width:auto;height:auto;padding:7px 10px;font-size:.78rem;display:flex}.schedule-view-toggle button.active{color:#fff;background:#3f765d}.schedule-calendar{border:1px solid var(--row-border);border-radius:0 0 10px 10px;overflow:hidden}.calendar-weekdays,.calendar-month-grid{grid-template-columns:repeat(7,minmax(130px,1fr));display:grid}.calendar-weekdays{background:var(--bg-work-date);border-bottom:1px solid var(--row-border);color:var(--text-muted);font-size:.8rem;font-weight:700}.calendar-weekdays span{text-align:center;padding:10px}.calendar-month-grid{overflow:auto}.calendar-day{border-right:1px solid var(--row-border);border-bottom:1px solid var(--row-border);background:var(--bg-card);min-height:160px;padding:9px}.calendar-day.weekend{background:var(--weekend-bg)}.calendar-day.empty{background:var(--bg-work-date)}.calendar-day>strong{margin-bottom:8px;font-size:.85rem;display:block}.calendar-entry{text-align:left;background:#ffffffa6;border:0;border-radius:5px;grid-template-columns:36px 1fr auto;align-items:center;width:100%;margin-bottom:4px;padding:4px;font-size:.68rem;display:grid}.calendar-entry span{text-overflow:ellipsis;white-space:nowrap;color:var(--text-main);overflow:hidden}.calendar-entry b{border-radius:4px;justify-self:center;padding:2px 4px;font-size:.66rem}.calendar-entry em{color:#a66b12;margin-left:3px;font-style:normal;font-weight:700}.calendar-entry:hover{outline-offset:1px;outline:2px solid #3f765d}@media (width<=768px){.calendar-weekdays,.calendar-month-grid{grid-template-columns:repeat(7,minmax(115px,1fr))}.schedule-calendar{overflow:auto}.schedule-view-toggle{margin-left:auto}}.holiday-name{color:#b14b4b;text-overflow:ellipsis;white-space:nowrap;font-size:.61rem;font-weight:700;display:block;overflow:hidden}.schedule-grid .sunday,.schedule-grid .holiday,.calendar-day.sunday,.calendar-day.holiday{background:#fff0f0}.schedule-grid thead .sunday,.schedule-grid thead .holiday{color:#c24141}.schedule-grid .saturday,.calendar-day.saturday{background:#eef6ff}.schedule-grid thead .saturday{color:#2e70b7}.working-filter{color:var(--text-main);white-space:nowrap;align-items:center;gap:5px;margin-left:8px;font-size:.78rem;font-weight:700;display:flex}.working-filter input{accent-color:#3f765d}@media (width<=768px){.working-filter{margin-left:0}}.schedule-actions{gap:8px;display:flex}.bulk-dialog{width:min(520px,100%)}.bulk-fields{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;display:grid}.bulk-fields label{font-size:.8rem;font-weight:700}.bulk-fields input,.bulk-fields select{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--input-text);border-radius:7px;margin-top:6px;padding:8px;display:block}.bulk-weekend{margin-bottom:15px;font-size:.84rem;display:block}.bulk-employees{border:1px solid var(--row-border);border-radius:8px;flex-wrap:wrap;gap:8px;margin-bottom:18px;padding:13px;display:flex}.bulk-employees b{width:100%;font-size:.82rem}.bulk-employees button{color:#3f765d;background:0 0;border:0;margin-left:auto;font-size:.78rem;font-weight:700}.bulk-employees label{background:var(--bg-work-date);border-radius:6px;padding:6px 8px;font-size:.8rem}@media (width<=768px){.schedule-actions{width:100%}.schedule-actions button{flex:1;justify-content:center}.bulk-fields{grid-template-columns:1fr}}.schedule-loading{color:#2f634b;background:#eef6f1;border-radius:8px;margin:14px 0;padding:11px 13px;font-size:.85rem;font-weight:700}.rotation-toggle{color:#2f634b;background:#eef6f1;border-radius:7px;margin:16px 0 -4px;padding:10px;font-size:.84rem;font-weight:700;display:block}.rotation-order{border:1px solid var(--row-border);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 18px;padding:13px;display:grid}.rotation-order b{grid-column:1/-1;font-size:.82rem}.rotation-order label{align-items:center;gap:6px;font-size:.82rem;font-weight:700;display:flex}.rotation-order select{border:1px solid var(--input-border);background:var(--input-bg);min-width:0;color:var(--input-text);border-radius:6px;flex:1;padding:7px}@media (width<=768px){.rotation-order{grid-template-columns:1fr}.rotation-order b{grid-column:auto}}.holiday-add{color:#8b631d;background:#fff8e7;border:1px solid #c8922a;border-radius:7px;margin-left:auto;padding:7px 10px;font-size:.78rem;font-weight:700}@media (width<=768px){.holiday-add{margin-left:0}.schedule-toolbar{flex-wrap:wrap}}.schedule-summary-section{background:var(--bg-card);border:1px solid var(--row-border);border-radius:10px;margin-top:24px;padding:20px}.schedule-summary-section h4{color:var(--text-main);margin:0 0 16px;font-size:1.1rem;font-weight:700}.summary-cards-container{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.summary-employee-card{background:var(--bg-work-date);border:1px solid var(--row-border);border-radius:8px;padding:14px;transition:all .2s}.summary-employee-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.summary-employee-name{color:var(--text-main);border-bottom:1px solid var(--row-border);margin-bottom:10px;padding-bottom:6px;font-size:.9rem;font-weight:700}.summary-counts-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.summary-count-item{background:var(--bg-card);border:1px solid var(--row-border);border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:.75rem;display:flex}.summary-count-item .count-label{color:var(--text-muted)}.summary-count-item .count-value{border-radius:4px;padding:1px 4px;font-weight:700}.summary-count-item.leave-item{background:#fffbf2;border-color:#ffe8cc}.summary-count-item .leave-val{color:#c8922a}.btn-action{cursor:pointer;white-space:nowrap;box-sizing:border-box;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 16px;font-size:.8rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-action:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-action.btn-outline{border:1px solid var(--input-border);background:var(--bg-card);color:var(--text-muted)}.btn-action.btn-outline:hover:not(:disabled){color:#3f765d;background:#3f765d0d;border-color:#3f765d;transform:translateY(-1px);box-shadow:0 2px 8px #3f765d14}.btn-action.btn-outline:active:not(:disabled){transform:translateY(0)}.btn-action.btn-highlight{color:#916010;background:#fffdf5;border:1px solid #c8922a}.btn-action.btn-highlight:hover:not(:disabled){color:#80530b;background:#fff8e7;border-color:#b38020;transform:translateY(-1px);box-shadow:0 2px 8px #c8922a1f}.btn-action.btn-primary{color:#fff;background:linear-gradient(135deg,#498268 0%,#356750 100%);border:0;box-shadow:0 4px 10px #3f765d26}.btn-action.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#518c71 0%,#3a7057 100%);transform:translateY(-1.5px);box-shadow:0 6px 14px #3f765d40}.btn-action.btn-primary:active:not(:disabled){transform:translateY(0)}.schedule-tabs-container{background:var(--bg-work-date);border:1px solid var(--row-border);border-radius:10px;margin-bottom:20px;padding:14px 16px}.schedule-tabs-select-wrapper{align-items:center;gap:12px;display:flex}.dept-select-label{color:var(--text-main);white-space:nowrap;font-size:.88rem;font-weight:700}.dept-select-dropdown{border:1px solid var(--input-border);background:var(--bg-card);max-width:320px;height:40px;color:var(--text-main);cursor:pointer;border-radius:8px;outline:none;flex:1;padding:0 12px;font-size:.88rem;font-weight:700;transition:border-color .2s,box-shadow .2s}.dept-select-dropdown:focus{border-color:#3f765d;box-shadow:0 0 0 3px #3f765d26}.bulk-mode-tabs{border-bottom:2px solid var(--row-border);gap:8px;margin-bottom:18px;padding-bottom:2px;display:flex}.bulk-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:8px 12px;font-size:.88rem;font-weight:700;transition:all .2s}.bulk-tab-btn:hover{color:var(--text-main)}.bulk-tab-btn.active{color:#3f765d;border-color:#3f765d}.weekday-selector-wrapper{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.weekday-selector-wrapper .section-title{color:var(--text-main);font-size:.8rem;font-weight:700}.weekday-selector{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.weekday-btn{border:1px solid var(--input-border);background:var(--bg-card);height:36px;color:var(--text-main);cursor:pointer;border-radius:8px;font-size:.82rem;font-weight:700;transition:all .15s}.weekday-btn:hover{background:var(--row-hover);border-color:#3f765d}.weekday-btn.active{color:#fff;background:#3f765d;border-color:#3f765d}.weekday-btn.sun{color:#c24141}.weekday-btn.sat{color:#2e70b7}.weekday-btn.active.sun,.weekday-btn.active.sat{color:#fff}.pattern-help{color:var(--text-muted);margin-top:6px;font-size:.78rem;display:block}.checkbox-label{-webkit-user-select:none;user-select:none}.schedule-grid .name-column{z-index:3;backface-visibility:hidden;position:sticky;left:0;transform:translate(0,0);background-color:var(--bg-card)!important}.schedule-grid thead th.name-column{z-index:4;background-color:var(--bg-work-date)!important}.schedule-mobile-list{flex-direction:column;gap:12px;padding:12px 0;display:flex}.mobile-day-card{border:1px solid var(--row-border);background:var(--bg-card);border-radius:12px;overflow:hidden;box-shadow:0 2px 6px #00000005}.mobile-day-card.today-card{border-color:#3f765d;box-shadow:0 4px 14px #3f765d1a}.mobile-day-header{background:var(--bg-work-date);border-bottom:1px solid var(--row-border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:.9rem;font-weight:700;display:flex}.today-tag{color:#fff;vertical-align:middle;background:#3f765d;border-radius:4px;margin-left:6px;padding:2px 6px;font-size:.65rem;font-weight:700}.mobile-holiday-label{color:#c24141;font-size:.72rem;font-weight:700}.mobile-day-body{padding:6px 0}.mobile-employee-row{cursor:pointer;border-bottom:1px solid #00000008;align-items:center;padding:9px 14px;transition:background .15s;display:flex}.mobile-employee-row:last-child{border-bottom:0}.mobile-employee-row:active{background:var(--row-hover)}.mobile-employee-row .emp-name{color:var(--text-main);flex:1;font-size:.88rem;font-weight:700}.mobile-employee-row .emp-code{border-radius:6px;padding:4px 8px;font-size:.75rem;font-weight:700}.mobile-employee-row .emp-leave{color:#a66b12;margin-left:8px;font-size:.75rem;font-weight:700}@media (width<=768px){.schedule-dialog-backdrop{align-items:flex-end;padding:0}.schedule-dialog{box-sizing:border-box;border-radius:20px 20px 0 0;padding:24px 20px 34px;animation:.28s cubic-bezier(.1,.76,.55,.94) forwards slideUp;width:100%!important;max-width:100%!important}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-drag-handle{background:var(--row-border);border-radius:3px;width:38px;height:5px;margin:-12px auto 16px}.weekday-selector{gap:8px}.weekday-btn{height:40px;font-size:.88rem}.dialog-section div button{padding:10px 14px;font-size:.88rem}}.schedule-cell.read-only-cell,.calendar-entry.read-only-cell{pointer-events:none;opacity:.75}.schedule-app-shell{color:#22342b;max-width:1480px;min-height:100vh;margin:0 auto;padding:42px 32px}.schedule-app-header{border-bottom:1px solid #dfe7e1;justify-content:space-between;align-items:end;margin-bottom:34px;padding-bottom:22px;display:flex}.schedule-app-header p{color:#638071;margin:0 0 5px;font-size:.84rem;font-weight:700}.schedule-app-header h1{letter-spacing:-.05em;margin:0;font-size:2rem}.schedule-app-header>span{color:#718078;font-size:.85rem}.schedule-app-shell footer{color:#829087;text-align:center;margin-top:48px;font-size:.78rem}@media (width<=768px){.schedule-app-shell{padding:26px 15px}.schedule-app-header{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:26px}.schedule-app-header h1{font-size:1.65rem}}.schedule-login-shell{background:#f4f7f5;place-items:center;min-height:100vh;padding:24px;display:grid}.schedule-login-card{background:#fff;border:1px solid #dfe7e1;border-radius:16px;width:min(380px,100%);padding:34px;box-shadow:0 16px 38px #1e3c2a14}.schedule-login-card p{color:#638071;margin:0 0 6px;font-size:.85rem;font-weight:700}.schedule-login-card h1{margin:0 0 28px}.schedule-login-card label{color:#415149;margin:14px 0;font-size:.85rem;font-weight:700;display:block}.schedule-login-card input{border:1px solid #cfdad3;border-radius:8px;width:100%;margin-top:6px;padding:10px}.schedule-login-card>button{color:#fff;background:#3f765d;border:0;border-radius:8px;width:100%;margin-top:16px;padding:11px;font-weight:700}.login-error,.schedule-error{color:#a33f3f;background:#fff0f0;border-radius:8px;margin-top:12px;padding:10px;font-size:.85rem}.schedule-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--row-border);border-radius:10px;padding:38px}.schedule-user{color:#718078;align-items:center;gap:12px;font-size:.85rem;display:flex}.schedule-user button{color:#53645b;background:#fff;border:1px solid #cfdad3;border-radius:6px;padding:6px 9px}.schedule-save:disabled{opacity:.5;cursor:not-allowed}.schedule-login-inline{min-width:360px}.schedule-login-inline form{gap:6px;display:flex}.schedule-login-inline input{border:1px solid #cfdad3;border-radius:6px;width:96px;padding:7px 9px;font-size:.8rem}.schedule-login-inline button{color:#fff;background:#3f765d;border:0;border-radius:6px;min-width:58px;font-size:.8rem;font-weight:700}.inline-login-error{color:#b34848;text-align:right;margin-top:5px;font-size:.72rem;display:block}.schedule-locked{text-align:center;background:#f9fbfa;border:1px dashed #cfdad3;border-radius:14px;place-items:center;min-height:420px;display:grid}.schedule-locked h2{margin:0 0 10px}.schedule-locked p{color:#718078;margin:3px;font-size:.9rem}.loading-spinner,.button-loader{vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite schedule-spin;display:inline-block}.schedule-loading{color:#2f634b;background:#eef6f1;border-radius:8px;align-items:center;gap:8px;margin:14px 0;padding:11px 13px;font-size:.85rem;font-weight:700;display:flex}@keyframes schedule-spin{to{transform:rotate(360deg)}}@media (width<=768px){.schedule-app-header{gap:16px}.schedule-login-inline{width:100%;min-width:0}.schedule-login-inline form{width:100%}.schedule-login-inline input{flex:1;width:auto}.schedule-login-inline button{padding:0 12px}}
