.leave-calculator { display: grid; gap: 1.25rem; }
.leave-panel { display: grid; gap: 1rem; }
.leave-panel__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.leave-panel__heading h2 { margin: 0; }
.leave-form { display: grid; gap: 1.1rem; }
.leave-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.leave-field { display: grid; gap: .45rem; min-width: 0; }
.leave-field > span, .leave-options legend { font-weight: 700; color: var(--color-text); }
.leave-field small { color: var(--color-text-muted); }
.leave-field input[type="date"] { width: 100%; min-width: 0; box-sizing: border-box; }
.leave-options { min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: .85rem; }
.leave-options__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .65rem; }
.leave-option { display: flex; align-items: center; gap: .6rem; min-height: 44px; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: .7rem; background: var(--color-surface); cursor: pointer; }
.leave-option:has(input:checked) { border-color: #146b63; background: #eaf7f5; }
.leave-option input { flex: 0 0 auto; }
.leave-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.leave-error, .leave-warning, .leave-copy-status { min-height: 1.5em; margin: 0; }
.leave-warning { color: #8a4b08; font-weight: 700; }
.leave-results { display: grid; gap: 1rem; }
.leave-results__header { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
.leave-results__header h2 { margin: 0; }
.leave-state { display: inline-flex; align-items: center; min-height: 2rem; padding: .25rem .65rem; border-radius: 999px; font-weight: 800; }
.leave-state--planned { color: #694700; background: #fff2c7; }
.leave-state--actual { color: #07574f; background: #dff6f2; }
.leave-schedule-note { margin: 0; padding: .8rem 1rem; border-left: 4px solid #2a8178; background: #f1f9f8; }
.leave-timeline { display: grid; gap: .8rem; }
.leave-card { display: grid; gap: .3rem; min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: .85rem; background: var(--color-surface); box-shadow: 0 3px 14px rgba(16, 62, 58, .06); }
.leave-card h3 { margin: 0; font-size: 1rem; }
.leave-card strong { overflow-wrap: anywhere; font-size: 1.05rem; color: #0b5e56; }
.leave-card p, .leave-card small { margin: 0; }
.leave-card--primary { border-left: 5px solid #146b63; }
.leave-milestones { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.leave-notices { display: grid; gap: .65rem; padding: 1rem; border-radius: .85rem; background: #f6f7f8; }
.leave-notices h3, .leave-notices p { margin: 0; }
.leave-result-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.leave-system-note { margin: 0; font-size: .92rem; color: var(--color-text-muted); }
.leave-source-list { padding-left: 1.25rem; }
.leave-source-list li + li { margin-top: .45rem; }

@media (max-width: 640px) {
  .leave-panel__heading { display: grid; }
  .leave-fields, .leave-options__items, .leave-milestones { grid-template-columns: 1fr; }
  .leave-actions, .leave-result-actions { display: grid; grid-template-columns: 1fr; }
  .leave-actions .button-primary, .leave-actions .button-secondary, .leave-result-actions .button-secondary { width: 100%; }
  .leave-card { padding: .9rem; }
}
