/*
 * IEMS form controls: Flatpickr date picker, Choices.js selects and field validation.
 * Matches the "Validation" block of the IEMS UI kit.
 */
html body.iems .ems-invalid,html body.iems .form-control.ems-invalid,html body.iems .choices.ems-invalid .choices__inner,html body.iems .input-group.ems-invalid .form-control,html body.iems .input-group.ems-invalid .input-group-addon{border-color:var(--coral,#ef5350)!important}
html body.iems .ems-valid,html body.iems .form-control.ems-valid,html body.iems .choices.ems-valid .choices__inner{border-color:var(--mint,#22b573)!important}
body.iems .ems-field-message{display:flex;align-items:flex-start;gap:6px;margin-top:6px;font-size:12px;font-weight:600;line-height:1.4;color:var(--coral-ink,#c0352f);animation:ems-in .18s ease}
body.iems .ems-field-message svg{width:14px;height:14px;flex:none;margin-top:1px}
body.iems .ems-field-message[hidden]{display:none!important}
body.iems .ems-check-group.ems-invalid{outline:1.5px solid var(--coral,#ef5350);outline-offset:4px;border-radius:10px}
@keyframes ems-in{from{opacity:0;transform:translateY(-3px)}}
body.iems .ems-shake{animation:ems-shake .3s}
@keyframes ems-shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
body.iems .ems-toast{position:fixed;left:50%;bottom:28px;z-index:100000;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;background:var(--ink,#15303c);color:#fff;padding:12px 18px;border-radius:14px;font:600 14px/1.4 var(--font,inherit);display:flex;gap:10px;align-items:center;max-width:calc(100vw - 32px)}
body.iems .ems-toast.is-active{opacity:1;transform:translate(-50%,0)}
body.iems .ems-toast svg{width:18px;height:18px;color:var(--brand-a,#f6931e);flex:none}
body.iems input.flatpickr-input,body.iems input.flatpickr-input[readonly]{background-color:var(--sf,#fff)!important;color:var(--ink,#15303c)!important;cursor:pointer;padding-right:38px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c8390' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='4'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:17px!important}
body.iems input.flatpickr-input[disabled]{background-color:var(--sf2,#f2f6f8)!important;cursor:not-allowed}
body.iems .flatpickr-calendar{font-family:var(--font,inherit)!important;border:1px solid var(--line2,#d2dfe4)!important;border-radius:16px!important;background:var(--sf,#fff)!important;width:316px!important;padding:6px 6px 4px;z-index:2000!important}
body.iems .flatpickr-calendar:before,body.iems .flatpickr-calendar:after{display:none!important}
body.iems .flatpickr-months{padding:4px 2px 6px}
body.iems .flatpickr-months .flatpickr-month{height:40px;color:var(--ink,#15303c)!important;fill:var(--ink,#15303c)!important}
body.iems .flatpickr-current-month{font-size:15px!important;font-weight:800;padding-top:8px!important}
body.iems .flatpickr-current-month .flatpickr-monthDropdown-months{font-weight:800!important;border-radius:8px;padding:2px 4px}
body.iems .flatpickr-current-month .flatpickr-monthDropdown-months:hover,body.iems .flatpickr-current-month input.cur-year:hover{background:var(--sf2,#f2f6f8)!important}
body.iems .flatpickr-months .flatpickr-prev-month,body.iems .flatpickr-months .flatpickr-next-month{top:8px!important;height:32px!important;width:32px!important;padding:8px!important;border-radius:10px;background:var(--tint,#e6eff2);color:var(--brand,#183543)!important;fill:var(--brand,#183543)!important}
body.iems .flatpickr-months .flatpickr-prev-month{left:8px!important}
body.iems .flatpickr-months .flatpickr-next-month{right:8px!important}
body.iems .flatpickr-months .flatpickr-prev-month:hover svg,body.iems .flatpickr-months .flatpickr-next-month:hover svg{fill:var(--brand-o,#f37020)!important}
body.iems span.flatpickr-weekday{color:var(--mut,#6c8390)!important;font-weight:700!important;font-size:11.5px}
body.iems .flatpickr-days,body.iems .dayContainer{width:302px!important;min-width:302px!important;max-width:302px!important}
body.iems .flatpickr-day{border-radius:11px!important;color:var(--ink,#15303c);font-weight:600;max-width:40px;height:38px;line-height:36px;border:1px solid transparent}
body.iems .flatpickr-day:hover,body.iems .flatpickr-day:focus{background:var(--sf2,#f2f6f8)!important;border-color:var(--sf2,#f2f6f8)!important}
body.iems .flatpickr-day.today{border-color:var(--brand-o,#f37020)!important;color:var(--brand-o,#f37020)}
body.iems .flatpickr-day.selected,body.iems .flatpickr-day.selected:hover,body.iems .flatpickr-day.startRange,body.iems .flatpickr-day.endRange{background:var(--brand,#183543)!important;border-color:var(--brand,#183543)!important;color:#fff!important}
body.iems .flatpickr-day.inRange{background:var(--tint,#e6eff2)!important;border-color:var(--tint,#e6eff2)!important}
body.iems .flatpickr-day.prevMonthDay,body.iems .flatpickr-day.nextMonthDay{color:#a9bac2}
body.iems .flatpickr-day.flatpickr-disabled,body.iems .flatpickr-day.flatpickr-disabled:hover{color:#cbd8de!important;background:transparent!important;border-color:transparent!important}
body.iems .flatpickr-time{border-top:1px solid var(--line,#e3ebee)!important}
body.iems .flatpickr-time input{font-weight:700;color:var(--ink,#15303c)!important}
body.iems .ems-picker-footer{display:flex;justify-content:space-between;gap:8px;padding:8px 6px 4px;border-top:1px solid var(--line,#e3ebee);margin-top:4px}
body.iems .ems-picker-footer button{border:0;background:transparent;font:700 13px var(--font,inherit);color:var(--brand-2,#22506a);padding:6px 10px;border-radius:9px;cursor:pointer}
body.iems .ems-picker-footer button:hover{background:var(--sf2,#f2f6f8)}
body.iems .ems-picker-footer button.clear-button{color:var(--mut,#6c8390)}
body.iems .choices{margin-bottom:0;font-size:14px;width:100%}
body.iems .choices[data-type*=select-one]:after{display:none}
body.iems .choices__inner{min-height:42px;padding:6px 36px 6px 12px!important;border:1.5px solid var(--line2,#d2dfe4)!important;border-radius:12px!important;background:var(--sf,#fff)!important;font-size:14px!important;display:flex;align-items:center;flex-wrap:wrap;gap:4px;transition:border-color .15s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c8390' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:16px!important}
body.iems .choices.is-focused .choices__inner,body.iems .choices.is-open .choices__inner{border-color:var(--brand,#183543)!important;border-radius:12px!important}
body.iems .choices.is-open .choices__inner{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23183543' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E")!important}
body.iems .choices.is-disabled .choices__inner{background-color:var(--sf2,#f2f6f8)!important;cursor:not-allowed;opacity:.85}
body.iems .choices__list--single{padding:0!important;width:100%}
body.iems .choices__list--single .choices__item{color:var(--ink,#15303c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.iems .choices__placeholder{opacity:1!important;color:#9db0b9!important}
body.iems .choices__list--dropdown,body.iems .choices__list[aria-expanded]{border:1px solid var(--line2,#d2dfe4)!important;border-radius:14px!important;margin-top:6px!important;background:var(--sf,#fff)!important;z-index:1060!important;padding:6px;overflow:hidden;word-break:normal}
body.iems .choices.is-flipped .choices__list--dropdown{margin-top:0!important;margin-bottom:6px!important}
body.iems .choices__list--dropdown .choices__list{max-height:280px!important}
body.iems .choices__list--dropdown .choices__item,body.iems .choices__list[aria-expanded] .choices__item{padding:9px 12px!important;border-radius:10px;font-size:14px!important;color:var(--ink,#15303c)}
body.iems .choices__list--dropdown .choices__item--selectable.is-highlighted,body.iems .choices__list[aria-expanded] .choices__item--selectable.is-highlighted{background:var(--sf2,#f2f6f8)!important}
body.iems .choices__list--dropdown .choices__item--selectable.is-selected{font-weight:700;color:var(--brand,#183543)}
body.iems .choices__list--dropdown .choices__item--selectable:after{display:none!important}
body.iems .choices__list--dropdown .choices__item--disabled{color:#a9bac2}
body.iems .choices__heading{font-size:11px!important;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mut,#6c8390)!important;border-bottom:1px solid var(--line,#e3ebee)!important;padding:10px 12px 6px!important}
body.iems .choices__input{background:transparent!important;font-size:14px!important;margin:0!important;padding:2px 4px!important}
body.iems .choices__list--dropdown .choices__input{border:1.5px solid var(--line2,#d2dfe4)!important;border-radius:10px!important;padding:8px 12px!important;margin-bottom:6px!important;width:100%!important;background:var(--sf2,#f2f6f8)!important}
body.iems .choices__list--dropdown .choices__input:focus{border-color:var(--brand,#183543)!important;background:var(--sf,#fff)!important}
body.iems .choices__list--multiple .choices__item{background:var(--tint,#e6eff2)!important;border:0!important;color:var(--brand,#183543)!important;border-radius:9px!important;font-weight:700!important;font-size:13px!important;padding:4px 8px!important;margin:0!important}
body.iems .choices__list--multiple .choices__item.is-highlighted{background:var(--brand,#183543)!important;color:#fff!important}
body.iems .choices[data-type*=select-multiple] .choices__button{border-left:1px solid rgba(24,53,67,.25)!important;margin-left:6px!important;padding-left:12px!important;opacity:.7;filter:invert(17%) sepia(19%) saturate(1200%) hue-rotate(160deg)}
body.iems .choices__list--multiple .choices__item.is-highlighted .choices__button{filter:none}
body.iems .choices.ems-small .choices__inner{min-height:34px;padding:3px 32px 3px 10px!important;border-radius:10px!important;font-size:13px!important}
body.iems .choices.ems-inline{display:inline-block;width:auto;min-width:140px;vertical-align:middle}
body.iems .dataTables_length .choices{display:inline-block;width:86px;vertical-align:middle;margin:0 6px}
body.iems td .choices{min-width:120px}

/* week picker: the chosen ISO week is highlighted as one band */
body.iems .week-picker .flatpickr-day.in-selected-week{background:var(--lav,#eef0ff);border-color:transparent;color:var(--ink,#183543);border-radius:0;box-shadow:none}
body.iems .week-picker .flatpickr-day.in-selected-week.selected{background:var(--brand,#183543);color:#fff;border-radius:10px}
body.iems .week-picker .flatpickr-weekwrapper .flatpickr-weekday{color:var(--mut,#6c8390)}
body.iems .week-picker .flatpickr-weekwrapper span.flatpickr-day{color:var(--mut,#6c8390);font-weight:700}

/* month picker */
.month-input{cursor:pointer}
.month-picker{position:absolute;z-index:99999;display:none;width:280px;background:var(--sf,#fff);color:var(--ink,#183543);border:1px solid var(--line,#e3ebee);border-radius:16px;padding:10px;font-family:var(--font,inherit)}
.month-picker.open{display:block}
.month-picker-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 10px}
.month-picker-head b{font-size:15px;font-weight:800}
.month-picker-head button{width:32px;height:32px;border:0;border-radius:10px;background:transparent;color:var(--ink,#183543);font-size:22px;line-height:1;cursor:pointer}
.month-picker-head button:hover{background:var(--sf2,#f2f6f8)}
.month-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.month-picker-cell{height:40px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink,#183543);font:600 13px var(--font,inherit);cursor:pointer}
.month-picker-cell:hover{background:var(--sf2,#f2f6f8)}
.month-picker-cell.is-today{border-color:var(--brand-2,#22506a)}
.month-picker-cell.is-selected{background:var(--brand,#183543);color:#fff}
.month-picker-cell:disabled{opacity:.35;cursor:not-allowed}
.month-picker .ems-picker-footer{display:flex;justify-content:space-between;gap:8px;padding:8px 6px 0;border-top:1px solid var(--line,#e3ebee);margin-top:10px}
.month-picker .ems-picker-footer button{border:0;background:transparent;font:700 13px var(--font,inherit);color:var(--brand-2,#22506a);padding:6px 10px;border-radius:9px;cursor:pointer}
.month-picker .ems-picker-footer button.clear-button{color:var(--mut,#6c8390)}
html[data-theme=dark] .month-picker-cell.is-selected,html[data-theme=dark] body.iems .week-picker .flatpickr-day.in-selected-week.selected{background:var(--brand-a,#f6931e);color:#1b1b1b}

/* file inputs (wrapped by ems-ui.js) */
.file-picker{position:relative;display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 14px;border:1.5px dashed var(--line2,#cfdbe0);border-radius:14px;background:var(--sf2,#f6f9fa);color:var(--ink,#183543);transition:border-color .15s,background .15s}
.file-picker:hover,.file-picker.is-dragover{border-color:var(--brand-a,#f6931e);background:var(--sf,#fff)}
.file-picker.has-file{border-style:solid}
.file-picker-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--lav,#e6eff2);color:var(--pur,#183543)}
.file-picker-icon svg{width:20px;height:20px}
.file-picker-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.file-picker-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-picker-text small{font-size:12px;color:var(--mut,#6c8390)}
.file-picker-button{flex:none;pointer-events:none}
.file-picker-input{position:absolute!important;inset:0;width:100%!important;height:100%!important;opacity:0;cursor:pointer;margin:0!important;padding:0!important;border:0!important;z-index:1}
.file-picker-input:focus-visible+*{outline:0}
.file-picker:focus-within{border-color:var(--brand-a,#f6931e)}
@media (max-width:640px){.file-picker{flex-wrap:wrap}.file-picker-button{width:100%;justify-content:center}}
