.year-calendar{padding:20px;background:#fafafa;border-radius:12px;box-shadow:0 2px 8px #0000000d}.year-calendar__header{text-align:center;margin-bottom:24px;padding:16px 0;border-bottom:1px solid #e8e8e8}.year-calendar__year-title{margin:0!important;color:#2c3e50;font-weight:300;font-size:28px;letter-spacing:1px}.year-calendar__months-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1200px;margin:0 auto}@media (width <= 1024px){.year-calendar__months-grid{grid-template-columns:repeat(3,1fr);gap:12px}}@media (width <= 768px){.year-calendar__months-grid{grid-template-columns:repeat(2,1fr);gap:8px}}@media (width <= 480px){.year-calendar__months-grid{grid-template-columns:1fr;gap:12px}}.year-calendar__month{background:#fff;border-radius:8px;padding:12px;box-shadow:0 1px 3px #00000014;transition:all .2s ease;border:1px solid #f0f0f0}.year-calendar__month:hover{box-shadow:0 2px 8px #0000001f;transform:translateY(-1px)}.year-calendar__month-header{text-align:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #f5f5f5}.year-calendar__month-title{font-size:14px;color:#595959;margin:0!important;font-weight:600}.year-calendar__weekday-header{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;gap:1px}.year-calendar__weekday-cell{text-align:center;font-size:10px;color:#8c8c8c;padding:2px 0;font-weight:500;background:#fafafa;border-radius:2px}.year-calendar__date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.year-calendar__date-cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:11px;border-radius:3px;transition:all .15s ease;cursor:default;background:#fff;border:1px solid transparent}.year-calendar__date-cell--current-month{color:#262626;font-weight:500}.year-calendar__date-cell--current-month:hover{background:#f5f5f5}.year-calendar__date-cell--other-month{color:#d9d9d9;background:#fafafa}.year-calendar__date-cell--in-range{background:#f6ffed;border-color:#b7eb8f}.year-calendar__date-cell--in-range:hover{background:#ecf5e4}.year-calendar__date-cell--weekend-rest{background:#fff1f0;border-color:#ffadd6;color:#c41d7f;font-weight:600;box-shadow:0 0 0 1px #ffadd6}.year-calendar__date-cell--weekend-rest:hover{background:#fff0f6;transform:scale(1.05)}.year-calendar__date-cell--working-weekend{background:#e6f7ff;border-color:#40a9ff;color:#0050b3;font-weight:600;box-shadow:0 0 0 1px #40a9ff}.year-calendar__date-cell--working-weekend:hover{background:#bae7ff;transform:scale(1.05)}.year-calendar__date-cell--holiday{background:#fff1f0;border-color:#ffadd6;color:#c41d7f;font-weight:600;box-shadow:0 0 0 1px #ffadd6}.year-calendar__date-cell--holiday:hover{background:#fff0f6;transform:scale(1.05)}.year-calendar__date-cell--excluded{background:#fff7e6;border-color:#d9d9d9;color:#d9d9d9;font-weight:600;box-shadow:0 0 0 1px #d9d9d9}.year-calendar__date-cell--excluded:hover{background:#ffefd9;transform:scale(1.1);animation:pulse-excluded 1s infinite}.year-calendar__date-cell--vacation{background:#fff1f0;border-color:#ffadd6;color:#c41d7f;font-weight:600;box-shadow:0 0 0 1px #ffadd6}.year-calendar__date-cell--vacation:hover{background:#fff0f6;transform:scale(1.1);animation:pulse-vacation 1s infinite}.year-calendar__date-cell--today{background:#722ed1;color:#fff;font-weight:600;box-shadow:0 0 0 1px #722ed1}.year-calendar__date-cell--today:hover{background:#9254de}.year-calendar__date-cell--clickable{cursor:pointer}.year-calendar__date-cell--clickable:active{transform:scale(.95)}.year-calendar__date-number{position:relative;z-index:1;line-height:1}.year-calendar__date-indicator{position:absolute;top:1px;right:1px;width:10px;height:10px;border-radius:50%;font-size:7px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;z-index:2;box-shadow:0 1px 2px #0003}.year-calendar__date-indicator--vacation{background:#ff4d4f;color:#fff}.year-calendar__date-indicator--excluded{background:#d9d9d9;color:#fff}.year-calendar__date-indicator--holiday{background:#eb2f96;color:#fff}.year-calendar__date-indicator--working-weekend{background:#1890ff;color:#fff}@keyframes pulse-vacation{0%{box-shadow:0 0 0 1px #ff4d4f}50%{box-shadow:0 0 0 3px #ff4d4f4d}to{box-shadow:0 0 0 1px #ff4d4f}}@keyframes pulse-excluded{0%{box-shadow:0 0 0 1px #d9d9d9}50%{box-shadow:0 0 0 3px #fa8c164d}to{box-shadow:0 0 0 1px #d9d9d9}}@media (prefers-color-scheme: dark){.year-calendar{background:#1f1f1f}.year-calendar__header{border-color:#434343}.year-calendar__year-title{color:#fff}.year-calendar__month{background:#262626;border-color:#434343}.year-calendar__month-title{color:#fff}.year-calendar__weekday-cell{background:#1a1a1a;color:#8c8c8c}.year-calendar__date-cell{background:#262626;color:#fff}.year-calendar__date-cell--other-month{background:#1a1a1a;color:#434343}.year-calendar__date-cell--current-month:hover{background:#333}.year-calendar__date-cell--weekend{background:#1a2332;color:#4da6ff}.year-calendar__date-cell--weekend:hover{background:#1f2937}}@media print{.year-calendar__date-cell--vacation,.year-calendar__date-cell--excluded{border:2px solid #000!important;background:#f0f0f0!important}.year-calendar__date-cell--vacation:after,.year-calendar__date-cell--excluded:after{content:attr(title);position:absolute;bottom:-12px;left:0;font-size:6px;white-space:nowrap}}.vacation-planner{padding:24px;background:#f5f5f5;min-height:100vh;animation:fade-in-up .6s ease-out}.vacation-planner .ant-card{border-radius:12px;overflow:hidden}.vacation-planner .ant-btn{border-radius:8px;transition:all .3s ease}.vacation-planner .ant-tag{border-radius:6px;transition:all .3s ease}.vacation-planner .ant-alert{border-radius:8px;border:none;box-shadow:0 2px 8px #0000001a}.vacation-planner .ant-list-item{border:none;padding:8px 0}.vacation-planner__header{margin-bottom:24px;text-align:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:32px;border-radius:12px;color:#fff;box-shadow:0 4px 20px #667eea4d}.vacation-planner__header .ant-typography{color:#fff!important;margin-bottom:8px}.vacation-planner__header .anticon{margin-right:8px;color:gold}.vacation-planner__form-card{border-radius:12px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease;animation:slide-in-right .6s ease-out .1s both}.vacation-planner__form-card:hover{box-shadow:0 4px 16px #00000026}.vacation-planner__form-card .ant-card-head{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px 12px 0 0;border-bottom:none}.vacation-planner__form-card .ant-card-head .ant-card-head-title{color:#fff;font-weight:600}.vacation-planner__form .ant-form-item-label>label{font-weight:600;color:#333}.vacation-planner__date-picker{width:100%;border-radius:8px}.vacation-planner__date-picker:hover{border-color:#667eea}.vacation-planner__date-picker:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.vacation-planner__input-number{width:100%;border-radius:8px}.vacation-planner__input-number:hover{border-color:#667eea}.vacation-planner__input-number:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.vacation-planner__constraint-section{width:100%}.vacation-planner__constraint-section .ant-picker{width:100%;border-radius:8px}.vacation-planner__constraint-section .ant-picker:hover{border-color:#667eea}.vacation-planner__constraint-section .ant-picker:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.vacation-planner__excluded-dates{min-height:32px;padding:8px;border:1px dashed #d9d9d9;border-radius:8px;background:#fafafa;transition:all .3s ease}.vacation-planner__excluded-dates:hover{border-color:#667eea;background:#f0f2ff}.vacation-planner__excluded-dates .ant-tag{margin:2px;border-radius:6px;transition:all .3s ease}.vacation-planner__excluded-dates .ant-tag:hover{transform:translateY(-1px);box-shadow:0 2px 8px #ff4d4f4d}.vacation-planner__mandatory-section{width:100%}.vacation-planner__add-button{width:100%;border-radius:8px;border-style:dashed;border-color:#667eea;color:#667eea;transition:all .3s ease}.vacation-planner__add-button:hover{border-color:#667eea;color:#667eea;background:#f0f2ff;transform:translateY(-1px)}.vacation-planner__mandatory-card{border-radius:8px;border:1px solid #e8f4fd;background:#f8fcff;transition:all .3s ease}.vacation-planner__mandatory-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.vacation-planner__mandatory-card .ant-card-head{background:transparent;border-bottom:1px solid #e8f4fd;min-height:auto;padding:8px 12px}.vacation-planner__mandatory-card .ant-card-head .ant-card-head-title{font-size:12px;color:#666}.vacation-planner__mandatory-card .ant-card-body{padding:12px}.vacation-planner__calculate-button{height:48px;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;font-size:16px;font-weight:600;box-shadow:0 4px 12px #667eea4d;transition:all .3s ease}.vacation-planner__calculate-button:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.vacation-planner__calculate-button:active{transform:translateY(0);box-shadow:0 2px 8px #667eea4d}.vacation-planner__result{width:100%;animation:slide-in-right .6s ease-out .3s both}.vacation-planner__stats-card{border-radius:12px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.vacation-planner__stats-card:hover{box-shadow:0 4px 16px #00000026}.vacation-planner__stats-card .ant-card-head{background:linear-gradient(135deg,#a8edea,#fed6e3);border-radius:12px 12px 0 0;border-bottom:none}.vacation-planner__stats-card .ant-card-head .ant-card-head-title{color:#2c3e50;font-weight:600}.vacation-planner__stats-card .ant-statistic{text-align:center;padding:16px 8px;border-radius:8px;transition:all .3s ease}.vacation-planner__stats-card .ant-statistic:hover{background:#f8f9fa;transform:translateY(-2px)}.vacation-planner__stats-card .ant-statistic .ant-statistic-title{font-weight:600;color:#666;margin-bottom:8px}.vacation-planner__stats-card .ant-statistic .ant-statistic-content{font-size:24px;font-weight:700}.vacation-planner__plans-card{border-radius:12px;box-shadow:0 2px 8px #0000001a}.vacation-planner__plans-card .ant-card-head{background:linear-gradient(135deg,#ffecd2,#fcb69f);border-radius:12px 12px 0 0;border-bottom:none}.vacation-planner__plans-card .ant-card-head .ant-card-head-title{color:#8b4513;font-weight:600}.vacation-planner__plans-card .ant-card-head .ant-card-head-title .ant-badge .ant-badge-count{background:#ff7875;box-shadow:0 2px 8px #ff78754d;border-radius:10px}.vacation-planner__plan-item{padding:0;border:none}.vacation-planner__plan-item .ant-list-item{padding:8px 0;border:none}.vacation-planner__plan-card{border-radius:12px;transition:all .3s ease;border:1px solid #e8f4fd}.vacation-planner__plan-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.vacation-planner__plan-card--best{border:2px solid #ffd700;background:linear-gradient(135deg,#fff9c4,#fff8e1);box-shadow:0 4px 16px #ffd7004d}.vacation-planner__plan-card--best .ant-card-head{background:linear-gradient(135deg,gold,#ffb300);color:#8b4513}.vacation-planner__plan-card--best .ant-card-head .ant-card-head-title{color:#8b4513;font-weight:700}.vacation-planner__plan-content{width:100%}.vacation-planner__plan-content .ant-typography{margin-bottom:8px}.vacation-planner__plan-dates{margin-top:8px;padding:8px;background:#f8f9fa;border-radius:8px;border:1px dashed #d9d9d9}.vacation-planner__plan-dates .ant-tag{margin:2px;border-radius:6px;transition:all .3s ease}.vacation-planner__plan-dates .ant-tag:hover{transform:translateY(-1px);box-shadow:0 2px 8px #1890ff4d}.vacation-planner__constraints-card{border-radius:12px;box-shadow:0 2px 8px #0000001a}.vacation-planner__constraints-card .ant-card-head{background:linear-gradient(135deg,#d299c2,#fef9d7);border-radius:12px 12px 0 0;border-bottom:none}.vacation-planner__constraints-card .ant-card-head .ant-card-head-title{color:#722ed1;font-weight:600}.vacation-planner__constraints-card .ant-tag{margin:4px;border-radius:6px;transition:all .3s ease}.vacation-planner__constraints-card .ant-tag:hover{transform:translateY(-1px)}.vacation-planner__calendar-card{border-radius:12px;box-shadow:0 2px 8px #0000001a}.vacation-planner__calendar-card .ant-card-head{background:linear-gradient(135deg,#e8f5e8,#f0f8ff);border-radius:12px 12px 0 0;border-bottom:none}.vacation-planner__calendar-card .ant-card-head .ant-card-head-title{color:#2c3e50;font-weight:600}.vacation-planner__calendar-container{padding:16px 0}.vacation-planner__calendar-legend{margin-bottom:16px;padding:12px;background:#f8f9fa;border-radius:8px;border:1px dashed #d9d9d9}.vacation-planner__calendar-legend .ant-tag{margin:4px;padding:4px 8px;border-radius:6px;display:inline-flex;align-items:center;gap:6px}.vacation-planner__legend-indicator{display:inline-block;width:12px;height:12px;border-radius:2px}.vacation-planner__legend-indicator--vacation{background:#ff4d4f}.vacation-planner__legend-indicator--excluded,.vacation-planner__legend-indicator--workday{background:#d9d9d9}.vacation-planner__legend-indicator--today{background:#722ed1}.vacation-planner__legend-indicator--range{background:#b7eb8f}.vacation-planner__legend-indicator--holiday{background:#eb2f96}.vacation-planner__legend-indicator--working-weekend{background:#1890ff}.vacation-planner__legend-indicator--weekend-rest{background:#eb2f96}.vacation-planner__calendar .ant-picker-calendar{border:none;border-radius:8px}.vacation-planner__calendar .ant-picker-panel{border:none}.vacation-planner__calendar .ant-picker-calendar-header{border-bottom:1px solid #f0f0f0;padding:16px 24px}.vacation-planner__calendar .ant-picker-content{padding:0}.vacation-planner__calendar .ant-picker-cell{position:relative}.vacation-planner__calendar .ant-picker-cell:hover{background:#f5f5f5}.vacation-planner__calendar .ant-picker-cell-in-view .ant-picker-calendar-date{color:#262626}.vacation-planner__calendar .ant-picker-cell-disabled .ant-picker-calendar-date{color:#bfbfbf}.vacation-planner__calendar-cell{width:100%;height:100%;position:relative;border-radius:4px;transition:all .3s ease}.vacation-planner__calendar-cell--vacation{background:#fff2f0;border:2px solid #ff4d4f}.vacation-planner__calendar-cell--vacation:hover{background:#ffebeb;transform:scale(1.05)}.vacation-planner__calendar-cell--excluded{background:#fff7e6;border:2px solid #fa8c16}.vacation-planner__calendar-cell--excluded:hover{background:#ffefd9;transform:scale(1.05)}.vacation-planner__calendar-cell--weekend{background:#e6f7ff;border:1px solid #91d5ff}.vacation-planner__calendar-cell--weekend:hover{background:#d4edff}.vacation-planner__calendar-cell--workday{background:#fafafa;border:1px solid #f0f0f0}.vacation-planner__calendar-cell--workday:hover{background:#f5f5f5}.vacation-planner__calendar-cell--outside{background:#f5f5f5;opacity:.5;border:1px solid #e8e8e8}.vacation-planner__calendar-indicator{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:#fff;color:#333;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1px solid #d9d9d9;box-shadow:0 1px 3px #0003}.vacation-planner__calendar-header{display:flex;justify-content:center;align-items:center;padding:16px;background:#fafafa;border-radius:8px 8px 0 0;border-bottom:1px solid #f0f0f0}.vacation-planner__calendar-header .ant-btn{border-radius:6px}.vacation-planner__empty-card{border-radius:12px;box-shadow:0 2px 8px #0000001a;min-height:400px;display:flex;align-items:center;justify-content:center}.vacation-planner__empty{text-align:center;padding:40px}.vacation-planner__empty-icon{font-size:64px;color:#d9d9d9;margin-bottom:16px;animation:pulse 2s infinite}.vacation-planner__empty .ant-typography{margin-bottom:8px}@media (width <= 768px){.vacation-planner{padding:16px}.vacation-planner__header{padding:24px 16px;margin-bottom:16px}.vacation-planner__header .ant-typography h2{font-size:20px}.vacation-planner__stats-card .ant-row .ant-col-6{flex:0 0 50%;max-width:50%;margin-bottom:16px}.vacation-planner__plan-card .ant-card-head-title{font-size:14px}}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.ant-spin-spinning .vacation-planner__result{opacity:.6;pointer-events:none}@media (prefers-color-scheme: dark){.vacation-planner{background:#141414;color:#fff}.vacation-planner__header{background:linear-gradient(135deg,#434343,#000)}.vacation-planner .ant-card{background:#1f1f1f;border-color:#434343}.vacation-planner .ant-card .ant-card-head{background:linear-gradient(135deg,#434343,#000);border-color:#434343}.vacation-planner__excluded-dates{background:#262626;border-color:#434343}.vacation-planner__excluded-dates:hover{background:#1f1f1f;border-color:#667eea}.vacation-planner__mandatory-card{background:#262626;border-color:#434343}.vacation-planner__mandatory-card:hover{border-color:#667eea}}/*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}body{background-color:#f5f5f5;min-width:1280px}
