.cfd-root{position:fixed;inset:0;z-index:2300;display:grid;place-items:center;padding:24px 16px}.cfd-scrim{position:absolute;inset:0;background:var(--overlay-dim,rgba(4,10,10,.55));-webkit-backdrop-filter:blur(var(--overlay-blur,6px));backdrop-filter:blur(var(--overlay-blur,6px))}.cfd{position:relative;width:min(420px,100%);border-radius:16px;border:1px solid var(--border-default);background:var(--bg-panel);color:var(--text-primary);box-shadow:0 24px 64px -16px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.2);font-family:var(--font-sans)}.theme-light .cfd{box-shadow:0 24px 56px -18px rgba(16,34,33,.28),0 2px 8px rgba(16,34,33,.08)}.cfd-form{display:flex;flex-direction:column;gap:16px;padding:22px 22px 18px}.cfd-head{display:flex;align-items:center;gap:12px}.cfd-icon{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border-radius:10px;background:var(--accent-teal-tint-12);color:var(--accent-teal-text)}.cfd-icon svg{width:18px;height:18px}.cfd--danger .cfd-icon{background:color-mix(in oklab,var(--danger) 14%,transparent);color:var(--danger-text)}.cfd-title{margin:0;font-size:16px;font-weight:600;line-height:1.35;letter-spacing:-.005em}.cfd-body{display:flex;flex-direction:column;gap:12px;padding-left:48px}.cfd-message{font-size:13.5px;line-height:1.55;color:var(--text-secondary);white-space:pre-line;overflow-wrap:anywhere}.cfd-item{padding:10px 12px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-card);font-size:13px;font-weight:500;line-height:1.4;color:var(--text-primary);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cfd--danger .cfd-item{border-color:color-mix(in oklab,var(--danger) 28%,var(--border-default));background:color-mix(in oklab,var(--danger) 6%,var(--bg-card))}.cfd-field{display:flex;flex-direction:column;gap:6px;padding-left:48px}.cfd-label{font-size:12.5px;font-weight:600;color:var(--text-secondary)}.cfd-input{height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:14px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.cfd-input:focus{border-color:var(--border-active);box-shadow:0 0 0 3px var(--accent-teal-tint-12)}.cfd-input.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in oklab,var(--danger) 14%,transparent)}.cfd-error{margin:0;font-size:12.5px;color:var(--danger-text)}.cfd-foot{display:flex;justify-content:flex-end;gap:10px;padding-top:2px}.cfd .cfd-btn{height:36px;padding:0 16px;justify-content:center;border-radius:9px;font-size:13.5px;font-weight:600}.cfd .cfd-btn:focus-visible{outline:2px solid var(--accent-teal);outline-offset:2px}.cfd--danger .cfd-btn.btn-danger:focus-visible{outline-color:var(--danger)}.cfd .cfd-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width:560px){.cfd-root{place-items:end stretch;padding:0}.cfd{width:100%;border-radius:18px 18px 0 0;border-bottom:0}.cfd-form{padding:20px 18px calc(18px + env(safe-area-inset-bottom))}.cfd-body,.cfd-field{padding-left:0}.cfd-foot{flex-direction:column-reverse;gap:8px}.cfd .cfd-btn{width:100%;height:44px;font-size:15px}}.modal-manage-holidays{width:min(600px,94vw);max-width:600px}.hol{display:flex;flex-direction:column;gap:16px}.hol-lead{margin:0;font-size:13px;line-height:1.5;color:var(--text-secondary)}.hol-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hol-year{display:inline-flex;align-items:center;gap:2px;height:36px;padding:0 4px 0 12px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-card)}.hol-year-label{margin-right:8px;font-size:12px;font-weight:600;color:var(--text-secondary)}.hol-year-value{min-width:44px;text-align:center;font-size:14px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-primary)}.hol-year-step{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--text-secondary);cursor:pointer}.hol-year-step:hover:not(:disabled){background:var(--hover-subtle);color:var(--text-primary)}.hol-year-step:disabled{opacity:.35;cursor:not-allowed}.hol-year-step svg{width:14px;height:14px}.hol-count{font-size:12.5px;color:var(--text-tertiary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hol-seed{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:9px;border:1px dashed var(--border-strong);background:transparent;color:var(--accent-teal-text);font-size:12.5px;font-weight:500;cursor:pointer}.hol-seed:hover:not(:disabled){border-style:solid;background:var(--accent-teal-tint-8)}.hol-seed svg{width:14px;height:14px}.hol-add{display:grid;grid-template-columns:170px minmax(0,1fr) auto;grid-template-rows:auto 40px;column-gap:10px;row-gap:6px;align-items:end;padding:14px;border-radius:12px;border:1px solid var(--border-default);background:var(--bg-card)}.hol-field{display:contents}.hol-field label{grid-row:1;font-size:12px;font-weight:600;color:var(--text-secondary)}.hol-field input{grid-row:2}.hol-field--date input,.hol-field--date label{grid-column:1}.hol-field--name input,.hol-field--name label{grid-column:2}.hol-field input{width:100%;height:40px;box-sizing:border-box;padding:0 12px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:13.5px;outline:none;color-scheme:inherit;transition:border-color .15s ease,box-shadow .15s ease}.hol-field input::placeholder{color:var(--text-tertiary)}.hol-field input:focus{border-color:var(--border-active);box-shadow:0 0 0 3px var(--accent-teal-tint-12)}.hol-field input[aria-invalid=true]{border-color:var(--danger)}.hol .hol-add-btn{grid-row:2;grid-column:3;height:40px;padding:0 16px;border-radius:10px;justify-content:center;font-weight:600}.hol .hol-add-btn svg{width:15px;height:15px}.hol .hol-add-btn:disabled{opacity:.45;cursor:not-allowed}.hol-add-error{grid-column:1/-1;grid-row:3;margin:2px 0 0;font-size:12.5px;color:var(--danger-text)}.hol-warn{margin:-4px 0 0;padding:9px 12px;border-radius:9px;background:var(--status-risk-bg);color:var(--status-risk-text);font-size:12.5px;line-height:1.45}.hol-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 16px;border-radius:12px;border:1px dashed var(--border-strong);text-align:center;color:var(--text-secondary);font-size:13px}.hol-empty strong{color:var(--text-primary);font-size:14px;font-weight:600}.hol-empty-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--accent-teal-tint-12);color:var(--accent-teal-text);margin-bottom:4px}.hol-empty-icon svg{width:18px;height:18px}.hol-list{gap:14px;max-height:min(360px,42vh);overflow-y:auto;padding-right:2px}.hol-list,.hol-month{display:flex;flex-direction:column}.hol-month{gap:6px}.hol-month-label{margin:0;font-size:12px;font-weight:600;color:var(--text-tertiary)}.hol-month ul{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.hol-row{display:flex;align-items:center;gap:12px;padding:8px;border-radius:12px;border:1px solid var(--border-default);background:var(--bg-card);transition:border-color .15s ease}.hol-row:hover{border-color:var(--border-strong)}.hol-row.is-new{border-color:var(--border-active);animation:hol-new 1.2s ease}@keyframes hol-new{0%{background:var(--accent-teal-tint-12)}}.hol-row.is-past{opacity:.62}.hol-tile{width:44px;height:44px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:var(--accent-teal-tint-12);color:var(--accent-teal-text);line-height:1}.hol-tile b{font-size:16px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hol-tile small{margin-top:3px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.hol-row.is-past .hol-tile{background:var(--hover-subtle);color:var(--text-secondary)}.hol-row-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.hol-row-name{font-size:13.5px;font-weight:600;color:var(--text-primary);overflow-wrap:anywhere}.hol-row-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--text-tertiary)}.hol-soon{color:var(--accent-teal-text);font-weight:500}.hol-off{padding:1px 7px;border-radius:999px;background:var(--status-risk-bg);color:var(--status-risk-text);font-size:11px;font-weight:500}.hol-remove{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.hol-remove svg{width:15px;height:15px}.hol-remove:hover:not(:disabled){background:color-mix(in oklab,var(--danger) 12%,transparent);color:var(--danger-text)}.hol-remove:focus-visible,.hol-seed:focus-visible,.hol-year-step:focus-visible{outline:2px solid var(--accent-teal);outline-offset:2px}.hol-foot{display:flex;align-items:center;gap:10px;width:100%}.hol-foot-state{margin-right:auto;font-size:12.5px;color:var(--text-tertiary)}.hol-foot-state.is-dirty{color:var(--status-risk-text);font-weight:500}.hol-foot-state.is-dirty:before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:currentColor;vertical-align:1px}@media (prefers-reduced-motion:reduce){.hol-row.is-new{animation:none}}@media (max-width:560px){.hol-add{grid-template-columns:minmax(0,1fr);grid-template-rows:none}.hol-field{display:flex;flex-direction:column;gap:6px}.hol .hol-add-btn,.hol-field input,.hol-field label{grid-row:auto;grid-column:auto}.hol .hol-add-btn{width:100%;height:44px}.hol-add-error{grid-row:auto}.hol-seed{margin-left:0;width:100%;justify-content:center}.hol-list{max-height:none}.hol-foot-state{display:none}}.leave-type{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--bg-card-hover);color:var(--text-secondary)}.leave-type--annual{background:var(--accent-teal-tint-12);color:var(--accent-teal-text)}.leave-type--sick{background:color-mix(in oklab,#e879b9 16%,transparent);color:#f0a6cf}.leave-type--unpaid{background:var(--status-risk-bg);color:var(--status-risk-text)}.theme-light .leave-type--sick{color:#a3306f}.leave-row>.avatar,.leave-row>[class*=avatar]{flex-shrink:0;align-self:flex-start;margin-top:2px}.leave-row-name{font-weight:600;color:var(--text-primary)}.lap-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.lap-summary .leave-filterbar{margin-bottom:0}.lap-summary-text{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0;font-size:13.5px;color:var(--text-secondary)}.lap-summary-text strong{font-size:15px;font-weight:700;color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lap-summary-soon{color:var(--status-risk-text);font-weight:600}.lap-summary-sort{margin-left:6px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-default);font-size:11.5px;color:var(--text-tertiary)}.lap-list{gap:12px}.lap{display:flex;flex-direction:column;gap:14px;padding:16px 18px;border-radius:14px;border:1px solid var(--border-default);background:var(--bg-card);transition:border-color .15s ease}.lap:hover{border-color:var(--border-strong)}.lap.is-soon{border-color:color-mix(in oklab,var(--status-risk-text) 38%,var(--border-default))}.lap-head{display:flex;align-items:center;gap:12px}.lap-head>:first-child{flex-shrink:0}.lap-who{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.lap-name{font-size:14.5px;font-weight:600;color:var(--text-primary);overflow-wrap:anywhere}.lap-meta{font-size:12.5px;color:var(--text-tertiary)}.lap-when{flex-shrink:0;padding:4px 10px;border-radius:999px;background:var(--bg-card-hover);color:var(--text-secondary);font-size:12px;font-weight:500;white-space:nowrap}.lap-when.is-soon{background:var(--status-risk-bg);color:var(--status-risk-text);font-weight:600}.lap-body{display:flex;gap:14px;align-items:flex-start}.lap-date{width:58px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:8px 0 9px;border-radius:12px;border:1px solid var(--border-default);background:var(--bg-panel);line-height:1}.lap-date-weekday{font-size:11px;font-weight:600;color:var(--text-tertiary)}.lap-date-day{margin:5px 0 4px;font-size:22px;font-weight:700;color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lap-date-month{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-teal-text)}.lap-detail{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:8px}.lap-detail-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lap-range{font-size:14px;font-weight:600;color:var(--text-primary)}.lap-days{font-size:13px;color:var(--text-secondary)}.lap-days.is-half{color:var(--accent-teal-text);font-weight:500}.lap-reason{margin:0;padding:8px 12px;border-left:2px solid var(--border-strong);border-radius:0 8px 8px 0;background:var(--bg-panel);font-size:13.5px;line-height:1.5;color:var(--text-primary);overflow-wrap:anywhere}.lap-reason.is-empty{color:var(--text-tertiary);font-style:italic}.lap-overlap{display:flex;align-items:center;gap:6px;margin:0;font-size:12.5px;color:var(--status-risk-text)}.lap-overlap-icon{display:inline-flex}.lap-overlap-icon svg{width:14px;height:14px}.lap-foot{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--divider-hairline)}.lap-foot--waiting{justify-content:flex-end}.lap-note-toggle{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer}.lap-note-toggle svg{width:14px;height:14px}.lap-note,.lap-note-toggle:hover{color:var(--text-primary)}.lap-note{flex:1 1;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-input);font:inherit;font-size:13px;resize:vertical;outline:none}.lap-note:focus{border-color:var(--border-active);box-shadow:0 0 0 3px var(--accent-teal-tint-12)}.lap-actions{margin-left:auto;display:flex;gap:8px}.lap .lap-approve,.lap .lap-decline{height:34px;padding:0 16px;font-weight:600}.lap .lap-approve svg{width:14px;height:14px}.lap .lap-decline:hover:not(:disabled){border-color:color-mix(in oklab,var(--danger) 40%,var(--border-default));color:var(--danger-text)}.lap button:focus-visible,.lap textarea:focus-visible{outline:2px solid var(--accent-teal);outline-offset:2px}@media (max-width:640px){.lap{padding:14px}.lap-head{flex-wrap:wrap}.lap-when{order:3}.lap-foot{flex-direction:column;align-items:stretch}.lap-actions{margin-left:0}.lap-actions>*{flex:1 1;height:44px!important;justify-content:center}}