/* The rights form inside a site page: it takes the site's fonts and colours
   (currentColor) and only sets the structure. */
.dp-rights { max-width: 760px; line-height: 1.6; }
.dp-rights .dp-rights-wait { opacity: .75; }
.dp-r-form { display: grid; gap: 20px; }
.dp-r-types { border: 0; margin: 0; padding: 0; min-width: 0; }
.dp-r-types legend { font-weight: 700; font-size: 1.05rem; margin-bottom: 10px; padding: 0; float: none; width: auto; }
.dp-r-opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.dp-r-type { position: relative; display: flex; align-items: center; min-height: 56px; padding: 12px 16px 12px 44px;
    border: 1px solid rgba(127, 127, 127, .35); border-radius: 12px; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.dp-r-type input { position: absolute; opacity: 0; pointer-events: none; }
.dp-r-type::before { content: ""; position: absolute; left: 14px; top: 50%; width: 20px; height: 20px; margin-top: -10px;
    border-radius: 6px; border: 2px solid rgba(127, 127, 127, .55); }
.dp-r-type:has(input:checked) { border-color: currentColor; background: rgba(127, 127, 127, .08); font-weight: 600; }
.dp-r-type:has(input:checked)::before { border-color: currentColor; background: currentColor;
    box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .9); }
.dp-r-type:has(input:focus-visible) { outline: 3px solid #2563eb; outline-offset: 2px; }
.dp-r-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.dp-r-field label { display: block; font-weight: 600; margin-bottom: 6px; }
.dp-r-field input, .dp-r-field textarea { width: 100%; box-sizing: border-box; font: inherit; color: inherit; background: transparent;
    border: 1px solid rgba(127, 127, 127, .45); border-radius: 10px; padding: 11px 13px; min-height: 46px; }
.dp-r-field input:focus, .dp-r-field textarea:focus { outline: 3px solid #2563eb; outline-offset: 1px; }
.dp-r-field small { display: block; opacity: .7; font-size: .85rem; margin-top: 4px; }
.dp-r-err { color: #dc2626; font-size: .9rem; margin: 4px 0 0; min-height: 0; }
.dp-r-err:empty { display: none; }
.is-bad input, .is-bad textarea { border-color: #dc2626; }
.is-bad .dp-r-type { border-color: rgba(220, 38, 38, .6); }
.dp-r-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dp-r-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.dp-r-btn { appearance: none; border: 0; border-radius: 10px; padding: 13px 22px; min-height: 48px; font: inherit; font-weight: 700;
    cursor: pointer; background: #111; color: #fff; }
.dp-r-btn[disabled] { opacity: .6; cursor: wait; }
.dp-r-note { flex: 1 1 280px; margin: 0; opacity: .75; font-size: .9rem; }
.dp-r-done { border: 1px solid rgba(127, 127, 127, .35); border-radius: 14px; padding: 20px 22px; }
.dp-r-done h3 { margin: 0 0 6px; }
.dp-r-done p { margin: 0; }
@media (prefers-reduced-motion: reduce) { .dp-r-type { transition: none; } }
