/* Shared dialog chrome; dedicated page layouts retain their dimensions. */
.modal{border:1px solid #dfe7ef;box-shadow:0 18px 60px #18354c24;border-radius:12px;color:#344e65}
.modal-header{padding:13px 17px;gap:12px;background:#fff;border-bottom-color:#e6edf3;flex-shrink:0}
.modal-header>div{min-width:0}.modal-header h2{font-size:15px;font-weight:600;line-height:1.8;color:#243f57;overflow-wrap:anywhere;margin:0}.modal-header .eyebrow{font-size:9px;color:#6a7f91;line-height:1.7}
.modal-header>.icon-button{width:32px;height:32px;min-width:32px;border:1px solid #e1e9f1;border-radius:7px;background:#fff;color:#526d83;transition:background 150ms,border-color 150ms}.modal-header>.icon-button:hover{background:#f2f6fb;border-color:#cbdceb}.modal-header>.icon-button .icon{width:16px;height:16px}
.modal-body{padding:17px;scrollbar-width:thin;scrollbar-color:#b6c7d7 transparent;min-width:0}.modal-footer{padding:11px 17px;border-color:#e6edf3;flex-wrap:wrap;background:#fff;flex-shrink:0}
:where(.modal) .form-grid{gap:14px 16px}:where(.modal) .field{min-width:0;gap:6px}:where(.modal) .field>span{font-size:12px;font-weight:500;line-height:1.8;color:#456078}
:where(.modal) .field :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select){width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid #d6e2ed;border-radius:7px;background:#fff;font:inherit;font-size:13px;line-height:1.6;color:#2f4b63;box-shadow:none;transition:border-color 150ms,box-shadow 150ms,background 150ms}
:where(.modal) .field textarea{min-height:90px;resize:vertical}:where(.modal) .field :is(input,textarea)::placeholder{color:#7c8f9f;opacity:1}
:where(.modal) .field :is(input,textarea,select):focus{outline:0;border-color:#3e80b9;box-shadow:0 0 0 3px #286cae12;background:#fff}
:where(.modal) .field :is(input,textarea,select):disabled{background:#f4f6f8;color:#6b7e8e;border-color:#e1e7ed;cursor:not-allowed}:where(.modal) .field input[readonly]{background:#f8fafc;color:#52697c}
:where(.modal) .field :is(input,textarea,select)[aria-invalid=true]{border-color:#bc6a64;box-shadow:0 0 0 2px #bc6a6410}:where(.modal) .field :is(input,textarea,select):user-invalid{border-color:#bc6a64}
:where(.modal) .field small{font-size:11px;line-height:1.8;color:#63798b}:where(.modal) .form-error{font-size:12px;line-height:1.8;color:#a54d48}
:where(.modal) :is(.form-actions,.modal-footer) .btn{min-height:35px;padding:7px 12px;font-size:12px;border-radius:7px;line-height:1.6}:where(.modal) .form-actions{gap:8px;flex-wrap:wrap;padding-top:13px;border-top:1px solid #e6edf3}
.modal :is(button,a,input,textarea,summary):focus-visible{outline:2px solid #397fb7;outline-offset:2px}
/* Selects keep the existing compact sizes where a page specifies them. */
.select-trigger{min-height:38px;padding:8px 10px;gap:8px;border-color:#d6e2ed;border-radius:7px;color:#344e65;font-size:12px;line-height:1.7;background:#fff;box-shadow:none}.select-trigger:hover:not(:disabled){background:#fcfdff}.select-trigger:focus-visible{border-color:#3e80b9;box-shadow:0 0 0 3px #286cae12;outline:0}.select-trigger[aria-expanded=true]{border-color:#6f9fc8;background:#f8fbff}.select-trigger[aria-expanded=true]>.icon{transform:rotate(180deg)}.select-trigger>.icon{width:14px;height:14px;color:#6a859c;transition:transform 160ms}.select-summary{min-width:0;overflow-wrap:anywhere}.selection-chip{font-size:11px;padding:2px 6px;border-radius:4px;border:1px solid #dce8f3;background:#f1f6fc;color:#35658d}
.picker-overlay{background:#142e474d;backdrop-filter:blur(3px)}.select-picker{width:420px;border-radius:12px;border-color:#dfe7ef;box-shadow:0 18px 60px #18354c24;max-height:min(580px,82dvh)}.select-picker>header{padding:13px 15px 10px;gap:10px}.select-picker h2{font-size:14px;font-weight:600;line-height:1.8;color:#243f57}.select-picker header small{font-size:11px;color:#63798b;line-height:1.8;margin-top:2px}.select-picker header .icon-button{width:30px;height:30px;min-width:30px;border-radius:6px;border:1px solid #e1e9f1;color:#526d83}.select-picker header .icon-button .icon{width:15px;height:15px}
.picker-search{margin:0 15px 9px;padding:0 9px;border-radius:7px;border-color:#d6e2ed;background:#fafcfe}.picker-search input{min-height:36px;font-size:12px;color:#344e65}.picker-search input::placeholder{color:#7c8f9f}.picker-search>.icon{width:15px;height:15px;color:#718ba1}.picker-search:focus-within{border-color:#3e80b9;box-shadow:0 0 0 3px #286cae12;background:#fff}
.picker-options{padding:0 8px 8px;scrollbar-width:thin;scrollbar-color:#b6c7d7 transparent}.picker-option{min-height:37px;padding:7px 9px;gap:9px;font-size:12px;line-height:1.7;border-radius:6px;margin:2px 0;color:#344e65}.picker-option>span{min-width:0;overflow-wrap:anywhere}.picker-option:hover{background:#f3f7fb}.picker-option:focus-visible{outline:2px solid #5189b8;outline-offset:-2px;background:#f3f7fb}.picker-option[aria-selected=true]{background:#edf5fd;color:#245f94}.picker-option:disabled{opacity:1;color:#8b99a6;background:#fafbfc}.picker-check{width:16px;height:16px;border-radius:4px;border-color:#c7d7e5}.picker-check>.icon{width:12px;height:12px}.picker-option .color-dot{width:13px;height:13px}.select-picker>footer{padding:9px 15px;border-color:#e6edf3;background:#fafcfe}.picker-count,.select-picker>footer .small{font-size:11px;color:#63798b}.select-picker>footer .btn{font-size:12px;min-height:33px;padding:6px 11px;border-radius:6px}.picker-empty{font-size:12px;padding:20px 12px;color:#63798b}
/* Coupon forms use the shared compact rhythm. */
.modal:has(#discount-form){width:540px;max-width:100%}.modal:has(#discount-form) .notice{font-size:11px;line-height:1.85;background:#f5f9fd;color:#526c82;border-color:#e0eaf4;padding:9px 11px;border-radius:6px;margin-bottom:15px}#discount-form .form-grid{gap:13px 15px}#discount-form .field{margin:0}#discount-form .field input,#discount-form .select-trigger{min-height:38px;height:38px;font-size:13px}#discount-form .form-actions{margin-top:16px}#discount-form input[name=code]{letter-spacing:.06em;font-weight:500}
.modal-overlay:not(.finance-modal-overlay):not(.unsaved-prompt)>.modal{animation:panel-dialog-in 180ms cubic-bezier(.2,.7,.2,1) both}@keyframes panel-dialog-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:767px){.modal{border-radius:14px 14px 0 0}.modal:has(#discount-form){width:100%}.modal-header{padding:12px 14px}.modal-header h2{font-size:14px}.modal-body{padding:15px 14px max(18px,env(safe-area-inset-bottom))}.modal-footer{padding:10px 14px max(12px,env(safe-area-inset-bottom))}:where(.modal) .field :is(input:not([type=checkbox]):not([type=radio]),textarea){font-size:16px}#discount-form .field input{font-size:16px}.picker-overlay{padding:10px}.select-picker{border-radius:12px;max-height:80dvh}.picker-search input{font-size:16px;min-height:39px}.picker-option{min-height:40px}.select-picker>footer{padding-bottom:max(10px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.modal-overlay:not(.finance-modal-overlay)>.modal{animation:none}.select-trigger,.select-trigger>.icon,.modal-header>.icon-button,:where(.modal) .field :is(input,textarea,select){transition:none}}

/* Persian constraint errors replace browser-language tooltips. */
.panel-field-error,.field>.panel-field-error,.modal .field>.panel-field-error{display:block;width:100%;font:inherit;font-size:11px;font-weight:400;color:#a0524b;line-height:1.9;margin:5px 0 0;padding:0 2px;overflow-wrap:anywhere;text-align:start;letter-spacing:normal}.panel-field-error::before{content:'!';display:inline-grid;place-items:center;width:12px;height:12px;margin-inline-end:5px;border:1px solid #c8948d;border-radius:50%;font-size:9px;line-height:1;vertical-align:baseline;color:#a0524b}.field:has(.panel-field-error){row-gap:5px}:is(input,textarea,select,.select-trigger).panel-invalid-control,.field :is(input,textarea,select,.select-trigger).panel-invalid-control{border-color:#c28d86;box-shadow:0 0 0 2px #b3675d0b}.panel-invalid-control:focus,.panel-invalid-control:focus-visible{outline-color:#ad6d64!important;box-shadow:0 0 0 3px #b3675d12!important}.ad-confirm+.panel-field-error,.cp-dialog .panel-field-error{font-size:11px}.panel-field-error:empty{display:none}@media(prefers-reduced-motion:reduce){.panel-invalid-control{transition:none!important}}

/* Shared dialog motion; mobile sheets also expose a drag-to-close handle. */
.modal-drag-handle{display:none}
#modal-root>.modal-overlay{animation:sheet-backdrop-in 220ms ease both}
#modal-root>.modal-overlay>.modal{animation:sheet-dialog-in 220ms cubic-bezier(.2,.7,.2,1) both}
#modal-root>.modal-overlay.is-closing{animation:sheet-backdrop-out 220ms ease both;pointer-events:none}
#modal-root>.modal-overlay.is-closing>.modal{animation:sheet-dialog-out 220ms ease both}
@keyframes sheet-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes sheet-backdrop-out{to{opacity:0}}
@keyframes sheet-dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes sheet-dialog-out{from{transform:translateY(var(--sheet-drag,0px))}to{opacity:0;transform:translateY(16px)}}
@media(max-width:767px){
 #modal-root>.modal-overlay>.modal{animation-name:mobile-sheet-in;transition:transform 180ms ease}
 #modal-root>.modal-overlay.is-closing>.modal{animation-name:mobile-sheet-out}
 #modal-root>.modal-overlay.has-dragged:not(.is-closing)>.modal{animation:none;transform:translateY(var(--sheet-drag,0px))}
 #modal-root>.modal-overlay.is-dragging>.modal{animation:none;transition:none;transform:translateY(var(--sheet-drag,0px))}
 .modal-drag-handle{display:flex;align-items:center;justify-content:center;width:100%;min-height:28px;padding:8px;border:0;background:transparent;flex:none;touch-action:none;cursor:grab}
 .modal-drag-handle:active{cursor:grabbing}
 .modal-drag-handle>span{display:block;width:36px;height:4px;border-radius:4px;background:#c3ced8}
 .modal-drag-handle:focus-visible{outline:2px solid #88abc8;outline-offset:-4px;border-radius:8px}
 #workbench-operations .workbench-group-heading{margin-bottom:16px}
}
@keyframes mobile-sheet-in{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes mobile-sheet-out{from{transform:translateY(var(--sheet-drag,0px))}to{transform:translateY(100%)}}
@media(prefers-reduced-motion:reduce){
 #modal-root>.modal-overlay,#modal-root>.modal-overlay>.modal{animation:none;transition:none}
}
