/* Precision dialogs: shared surfaces, keyboard focus and mobile sheet layout. */
[data-shop-template="precision"] .p-modal-trigger { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; font: 600 13px Manrope,Inter,sans-serif; color: var(--p-brand); border: 1px solid #cbd9e4; background: #fff; border-radius: 8px; cursor: pointer; transition: background .2s,box-shadow .2s; }
[data-shop-template="precision"] .p-modal-trigger:hover { background: #f2f6f9; box-shadow: 0 4px 12px #102b400a; }
.p-dialog-overlay { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: flex-end; justify-content: center; padding: 10px; background: #071825a8; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); opacity: 0; transition: opacity .16s ease; isolation: isolate; }
.p-dialog-overlay.is-visible { opacity: 1; }
.p-dialog { position: relative; display: flex; flex-direction: column; width: 100%; max-width: 540px; max-height: calc(100dvh - 20px); border: 1px solid #ffffff3a; border-radius: 22px; background: #fff; color: #1a3041; overflow: hidden; box-shadow: 0 40px 120px #0005,0 0 0 1px #102b4010; transform: translateY(20px); transition: transform .2s cubic-bezier(.2,.7,.2,1); font-family: Manrope,Inter,sans-serif; }
.is-visible > .p-dialog { transform: translateY(0); }
.p-dialog-header { position: relative; flex-shrink: 0; padding: 28px 24px 24px; background: #102b40; color: #f2f7fb; overflow: hidden; }
.p-dialog-eyebrow { display: block; font: 10px/1.6 'JetBrains Mono',monospace; letter-spacing: .12em; text-transform: uppercase; color: #8eacc1; margin-bottom: 19px; padding-right: 40px; }
.p-dialog-header h2 { position: relative; z-index: 1; max-width: 360px; padding-right: 20px; margin: 0 0 14px; font-size: 30px; font-weight: 600; letter-spacing: -.045em; line-height: 1.1; color: inherit; }
.p-dialog-header p { position: relative; z-index: 1; max-width: 380px; color: #b0c6d7; font-size: 13px; line-height: 1.7; margin: 0; padding-right: 18px; }
.p-dialog-close { position: absolute; right: 15px; top: 15px; z-index: 2; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: #ffffff09; color: #dbe9f3; border: 1px solid #ffffff22; border-radius: 50%; font: 300 27px Manrope, sans-serif!important; cursor: pointer; transition: background .2s,transform .2s; }
.p-dialog-close:hover { background: #ffffff1a; transform: rotate(90deg); }
.p-dialog-header-mark { position: absolute; right: -8px; bottom: -37px; font-size: 165px; color: #ffffff06; line-height: 1; pointer-events: none; }
.p-dialog-body { padding: 24px; overflow-y: auto; overscroll-behavior: contain; min-height: 0; scrollbar-width: thin; }
.p-dialog-product { padding: 16px 18px; background: #f0f5f8; border: 1px solid #dde7ee; border-left: 3px solid var(--p-accent); border-radius: 9px; margin-bottom: 24px; }
.p-dialog-product > span { font: 9px/1.7 'JetBrains Mono',monospace; color: #6b8394; display: block; margin-bottom: 8px; overflow-wrap: anywhere; }
.p-dialog-product > strong { font-size: 14px; line-height: 1.55; font-weight: 600; display: block; overflow-wrap: anywhere; }
.p-dialog-form { display: flex; flex-direction: column; gap: 18px; }
.p-dialog-field { display: flex; flex-direction: column; min-width: 0; gap: 8px; }
.p-dialog-field label { font-size: 12px; font-weight: 600; line-height: 1.5; }
.p-dialog-field label > span { color: #b94f1d; }
.p-dialog-field label small { font-size: 11px; font-weight: 400; color: #7c8d98; margin-left: 7px; }
.p-dialog-field input,.p-dialog-field textarea { width: 100%; min-width: 0; border: 1px solid #ccd9e2; border-radius: 8px; padding: 13px 14px; min-height: 48px; background: #fbfcfd; color: #183044; font: 400 16px/1.4 Manrope,Inter,sans-serif; transition: border-color .2s,box-shadow .2s; }
.p-dialog-field textarea { resize: vertical; min-height: 88px; }
.p-dialog-field input:focus,.p-dialog-field textarea:focus { border-color: var(--p-brand); outline: 0; box-shadow: 0 0 0 3px color-mix(in srgb,var(--p-brand) 12%,transparent); background: #fff; }
.p-dialog-field input[aria-invalid="true"] { border-color: #b43d35; }
.p-dialog-field .p-dialog-error { font-size: 12px; color: #ac352d; margin: 0; line-height: 1.5; }
.p-dialog-honeypot { position: absolute; left: -9999px; opacity: 0; width: 1px; height: 1px; }
.p-dialog-form-footer { display: flex; flex-direction: column; gap: 16px; padding-top: 4px; }
.p-dialog-form-footer > p { color: #7a8d9b; font-size: 11px; line-height: 1.6; margin: 0; }
.p-dialog-primary,.p-dialog-secondary,.p-dialog-danger { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border-radius: 8px; font: 600 14px Manrope,Inter,sans-serif; padding: 12px 20px; border: 1px solid transparent; cursor: pointer; transition: background .2s,box-shadow .2s; }
.p-dialog-primary { background: var(--p-accent); color: #142c3f; box-shadow: 0 6px 18px color-mix(in srgb,var(--p-accent) 15%,transparent); }
.p-dialog-secondary { background: #fff; color: #29475d; border-color: #cbd9e3; }
.p-dialog-danger { background: #a73732; color: #fff; }
.p-dialog-primary:hover { filter: brightness(.97); }
.p-dialog-secondary:hover { background: #f0f5f8; }
.p-dialog-danger:hover { background: #912c28; }
.p-dialog button:disabled { opacity: .55; cursor: wait; }
.p-dialog :focus-visible { outline: 3px solid var(--p-brand); outline-offset: 3px; }
.p-dialog-header :focus-visible { outline-color: #a7d7f8; }
.p-dialog-success { padding: 12px 0 4px; text-align: center; }
.p-dialog-success > span { display: inline-flex; align-items: center; justify-content: center; width: 68px; height: 68px; background: #e4f1e9; color: #2d7452; border: 1px solid #bfdecb; border-radius: 50%; font-size: 28px; margin-bottom: 23px; }
.p-dialog-success h3 { font-size: 26px; font-weight: 600; letter-spacing: -.035em; margin: 0 0 12px; }
.p-dialog-success p { font-size: 14px; color: #687f91; line-height: 1.7; margin-bottom: 24px; }
.p-dialog-success .p-dialog-primary { width: 100%; }
.p-dialog-actions { display: flex; gap: 12px; padding-top: 6px; }
.p-dialog-actions > button { flex: 1; }
.p-confirm-dialog { max-width: 460px; }
.p-confirm-content { padding: 30px 26px 22px; }
.p-confirm-symbol { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; border: 1px solid #ebd0cb; border-radius: 14px; background: #fcf1ee; color: #a73732; font-size: 28px; margin-bottom: 24px; }
.p-confirm-content .p-dialog-eyebrow { color: #8698a5; font-size: 9px; margin-bottom: 12px; }
.p-confirm-content h2 { font-size: 28px; font-weight: 600; letter-spacing: -.045em; margin: 0 0 14px; }
.p-confirm-content p { font-size: 14px; line-height: 1.7; color: #687f91; margin: 0; }
.p-confirm-dialog > .p-dialog-actions { padding: 20px 26px 26px; background: #f5f8fa; border-top: 1px solid #e5edf2; }
.p-address-dialog { max-width: 650px; }
.p-dialog-field-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.p-dialog-check { display: flex; align-items: center; gap: 12px; min-height: 44px; font-size: 13px; cursor: pointer; }
.p-dialog-check input { width: 18px; height: 18px; accent-color: var(--p-brand); }
.p-address-search { padding-bottom: 20px; border-bottom: 1px solid #e0e9ef; }
.p-address-search input { font-size: 16px!important; min-height: 48px; border-radius: 8px!important; }
@media(min-width:640px) {
    .p-dialog-overlay { padding: 24px; align-items: center; }
    .p-dialog { max-height: calc(100dvh - 48px); border-radius: 22px; }
    .p-dialog-header { padding: 34px 34px 28px; }
    .p-dialog-header h2 { font-size: 34px; }
    .p-dialog-body { padding: 28px 34px 32px; }
    .p-dialog-close { top: 20px; right: 20px; }
    .p-dialog-field-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) {
    .p-dialog-overlay,.p-dialog,.p-dialog * { transition: none!important; animation: none!important; scroll-behavior: auto!important; }
}
.p-confirm-context { display: block; margin: 0 0 12px; font: 500 13px 'JetBrains Mono',monospace; color: #29475d; }
