/*
 * D4F dialogs — one shared visual language for every Add/Edit dialog on the
 * first-party website (Design contract comment #386).
 *
 * Contract values: width 460px (single column) / 640px (two columns),
 * radius 18px, backdrop rgba(19,43,28,.48) + blur(2px), heading with an
 * absolute 44x44 close button, action row right aligned with "Abbrechen"
 * (ghost) + primary submit, destructive action detached to the left.
 * <=700px every dialog becomes a bottom sheet with stacked full-width buttons.
 *
 * Only descendant rules are used for layout (never a bare `display` on the
 * dialog element itself) so a closed <dialog> stays hidden by the user agent
 * stylesheet — see WeeklyPlanAddDialogRegressionTest for the trap this avoids.
 */
.d4f-dialog{width:min(460px,calc(100vw - 32px));max-width:100%;max-height:calc(100dvh - 2rem);overflow:auto;padding:0;border:0;border-radius:18px;color:#183335;background:#fff;box-shadow:0 24px 80px rgba(17,47,28,.28);font-family:"Nunito",sans-serif}
.d4f-dialog-wide{width:min(640px,calc(100vw - 32px))}
.d4f-dialog::backdrop{background:rgba(19,43,28,.48);backdrop-filter:blur(2px)}
.d4f-dialog-head{position:relative;padding:27px 27px 0}
.d4f-dialog-head h2{margin:0;color:#075435;font-size:25px;line-height:1.2}
.d4f-dialog-eyebrow{margin:0 0 5px;color:#a04b2b;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.d4f-dialog-close{position:absolute;top:12px;right:12px;display:grid;width:44px;height:44px;place-items:center;padding:0;border:0;border-radius:50%;color:#075435;background:transparent;font:inherit;font-size:24px;line-height:1;cursor:pointer}
.d4f-dialog-close:hover{background:#eef6e9}
.d4f-dialog-close:focus-visible{outline:2px solid #168257;outline-offset:2px}
.d4f-dialog form{display:grid;gap:15px;margin:0;padding:20px 27px 27px}
.d4f-dialog form + form{padding-top:0}
.d4f-dialog label{display:grid;gap:5px;color:#234d3c;font-size:14px;font-weight:800}
.d4f-dialog input:not([type="checkbox"]):not([type="radio"]),.d4f-dialog select,.d4f-dialog textarea{min-width:0;min-height:44px;padding:10px 12px;border:1px solid #b8cda4;border-radius:8px;background:#fff;color:inherit;font:inherit}
.d4f-dialog textarea{min-height:96px;resize:vertical}
.d4f-dialog input:focus-visible,.d4f-dialog select:focus-visible,.d4f-dialog textarea:focus-visible{outline:2px solid #168257;outline-offset:1px}
.d4f-dialog input[aria-invalid="true"],.d4f-dialog select[aria-invalid="true"],.d4f-dialog textarea[aria-invalid="true"]{border-color:#a94a37}
.d4f-dialog small,.d4f-dialog-hint{margin:0;color:#657771;font-size:12px;font-weight:600;line-height:1.45}
.d4f-dialog-error{margin:0;color:#8f2f26;font-size:13px;font-weight:800;line-height:1.45}
.d4f-dialog fieldset{min-width:0;margin:0;padding:0;border:0}
.d4f-dialog legend{padding:0;color:#234d3c;font-size:13px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.d4f-dialog-group{margin:0;color:#075435;font-size:13px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.d4f-dialog-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.d4f-dialog-span{grid-column:1/-1}
.d4f-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;margin-top:5px}
.d4f-dialog-actions .button{padding:11px 16px}
.d4f-dialog-danger{margin-right:auto}
.d4f-dialog-message{margin:0;padding:0 27px 8px;color:#657771;line-height:1.5}
.d4f-confirm-actions{padding:0 27px 27px}
/*
 * D4F box alignment for the shopping-list dialogs that keep their own inner
 * structure and padding (catalog, add item, confirm). Only the shared box
 * values are harmonised here; the padding band intentionally stays, so the
 * existing layout and the padding hit-testing in
 * tests/Browser/shopping_list_catalog_dialog_e2e.py keep working.
 */
.shopping-add-dialog{border-color:transparent;border-radius:18px;background:#fff;box-shadow:0 24px 80px rgba(17,47,28,.28)}
.shopping-add-dialog::backdrop{background:rgba(19,43,28,.48);backdrop-filter:blur(2px)}
.shopping-confirm-delete{border-color:#963d2c;color:#fff;background:#a94a37}
.button.danger{border-color:#963d2c;color:#fff;background:#a94a37}
.button.danger:hover{background:#963d2c}
.button.danger:focus-visible{outline:2px solid #168257;outline-offset:2px}
@media(max-width:700px){
.d4f-dialog,.d4f-dialog-wide{width:100%;max-width:none;max-height:calc(100dvh - 1rem);margin:auto 0 0;border-radius:18px 18px 0 0}
.shopping-add-dialog{border-radius:18px 18px 0 0}
.d4f-dialog-head{padding:22px 18px 0}
.d4f-dialog form{padding:18px 18px 22px}
.d4f-dialog-message{padding:0 18px 8px}
.d4f-confirm-actions{padding:0 18px 22px}
.d4f-dialog-actions{flex-direction:column-reverse;align-items:stretch}
.d4f-dialog-actions .button{width:100%;justify-content:center}
.d4f-dialog-danger{margin-right:0}
}
@media(max-width:560px){
.d4f-dialog-columns{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
.d4f-dialog,.d4f-dialog::backdrop{transition:none;animation:none}
}
