.action,button { border:1px solid var(--accent); border-radius:var(--radius); background:var(--accent); color:white; padding:.75rem 1.1rem; line-height:1.4; text-decoration:none; display:inline-flex; justify-content:center; align-items:center; gap:.5rem; }
.action.secondary,button.secondary { color:var(--accent); background:transparent; }
.action-row { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.field { display:grid; gap:.4rem; font-size:.9rem; font-weight: 500; }
.field input,.field textarea,.field select,#privacy_request input,#privacy_request select,#privacy_request textarea { width:100%; border:1px solid var(--line); border-radius:.4rem; background:var(--surface); color:var(--ink); padding:.8rem; }
.form-stack { display:grid; gap:1.25rem; }
.form-stack p { margin:0; }
.choice-line { display:flex; align-items:flex-start; gap:.7rem; font-size:.8rem; line-height:1.5; }
.choice-line input { margin-top:.3rem; accent-color:var(--accent); }
.form-message { min-height:1.5em; color:var(--accent); }
.form-message[data-error=true] { color:var(--danger); }
button:disabled { cursor:default; opacity:.6; }
dialog { max-width:min(42rem,calc(100vw - 2rem)); width:100%; max-height:calc(100dvh - 2rem); border:1px solid var(--line); border-radius:1rem; padding:2rem; background:var(--surface); color:var(--ink); }
dialog::backdrop { background:rgb(23 41 54 / .65); }
.dialog-close { float:right; margin:0 0 1rem 1rem; padding:.4rem .7rem; background:transparent; color:var(--ink); border-color:var(--line); }
#cookie-banner { max-width:34rem; font-size:.9rem; }
#cookie-banner form { display:flex; flex-wrap:wrap; gap:.6rem; margin-block:1rem; }
#cookie-settings { flex-basis:100%; padding-top:1rem; }
#cookie-settings h3 { margin-bottom:.5rem; }
#cookie-settings button { margin-block:1rem; }
#privacy_request { display:grid; gap:1.2rem; white-space:normal; }
#privacy_request label { display:grid; gap:.4rem; }

/* Native non-modal dialogs remain usable before optional enhancement. */
dialog[open]:not(:modal) { position:static; margin:2rem auto; max-height:none; }

.action:not(.secondary), button[type="submit"]:not(.secondary) { border-radius: 8px; font-weight: 500; }
.action:not(.secondary):is(:hover,:active), button[type="submit"]:not(.secondary):is(:hover,:active) { background-color: var(--primary-hover); }
