/* Public card complaint: independent native dialog, outside legacy modal selectors. */
.hrnt-card-complaint {
    box-sizing: border-box;
    width: min(var(--max-width-text), calc(100% - var(--space-page-x) * 2));
    max-width: none;
    max-height: calc(100vh - var(--space-page-x) * 2);
    max-height: calc(var(--hrnt-complaint-viewport-height, 100dvh) - var(--space-page-x) * 2);
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: thin solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--color-white);
    color: var(--color-body);
    box-shadow: var(--shadow-modal);
    font-family: var(--font-family);
    font-size: var(--text-md);
    line-height: var(--leading-normal);
    text-align: left;
}
.hrnt-card-complaint[open] { display: flex; }
.hrnt-card-complaint::backdrop { background: var(--color-heading); opacity: .45; }
.hrnt-card-complaint *,
.hrnt-card-complaint *::before,
.hrnt-card-complaint *::after { box-sizing: border-box; }
.hrnt-card-complaint [hidden] { display: none !important; }
.hrnt-card-complaint__panel {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    width: 100%;
    max-height: inherit;
}
.hrnt-card-complaint__header {
    display: flex;
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
    max-height: none;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-after-h4);
    padding: calc(var(--space-after-h4) / 2) var(--space-after-h4);
    border-bottom: thin solid var(--border-default);
}
.hrnt-card-complaint__header > div { min-width: 0; }
.hrnt-card-complaint .hrnt-card-complaint__title {
    margin: 0;
    color: var(--color-heading);
    font-size: var(--text-xl);
    font-weight: var(--weight-bold);
    line-height: var(--leading-heading);
}
.hrnt-card-complaint__card {
    margin: calc(var(--space-after-h4) / 4) 0 0;
    color: var(--color-muted);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    overflow-wrap: anywhere;
}
.hrnt-card-complaint__close {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: var(--h-touch);
    min-height: var(--h-touch);
    padding: 0;
    border: thin solid transparent;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-muted);
    cursor: pointer;
    transition: color var(--transition), background-color var(--transition);
}
.hrnt-card-complaint__form {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    margin: 0;
    overflow: hidden;
}
.hrnt-card-complaint__body {
    min-height: 0;
    padding: calc(var(--space-after-h4) * .75) var(--space-after-h4);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.hrnt-card-complaint__privacy {
    margin: 0 0 calc(var(--space-after-h4) / 2);
    padding: 0;
    color: var(--color-muted);
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
}
.hrnt-card-complaint__privacy > p {
    margin: 0;
    padding: 0 0 calc(var(--space-after-h4) / 2);
    color: var(--color-muted);
}
.hrnt-card-complaint summary {
    min-height: var(--h-touch);
    padding-block: calc(var(--space-after-h4) / 2);
    cursor: pointer;
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
}
.hrnt-card-complaint summary:focus-visible {
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-primary);
}
.hrnt-card-complaint__comment > summary {
    color: var(--color-heading);
    font-weight: var(--weight-bold);
}
.hrnt-card-complaint__reasons {
    min-width: 0;
    margin: 0 0 calc(var(--space-after-h4) / 2);
    padding: 0;
    border: 0;
}
.hrnt-card-complaint__reasons legend,
.hrnt-card-complaint__comment > label {
    display: block;
    float: none;
    width: auto;
    margin: 0 0 calc(var(--space-after-h4) / 2);
    padding: 0;
    color: var(--color-heading);
    font-size: var(--text-md);
    font-weight: var(--weight-bold);
    line-height: var(--leading-relaxed);
}
.hrnt-card-complaint__hint,
.hrnt-card-complaint__counter {
    margin: 0;
    color: var(--color-muted);
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
}
.hrnt-card-complaint__reasons > .hrnt-card-complaint__hint {
    margin-bottom: calc(var(--space-after-h4) / 2);
}
.hrnt-card-complaint__options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(var(--space-after-h4) / 4);
}
.hrnt-card-complaint__option,
.hrnt-card-complaint__consent {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--space-after-h4) / 2);
    min-height: var(--h-touch);
    margin: 0;
    color: var(--color-body);
    font-size: var(--text-base);
    font-weight: var(--weight-regular);
    line-height: var(--leading-relaxed);
    cursor: pointer;
}
.hrnt-card-complaint__option {
    align-items: center;
    padding: calc(var(--space-after-h4) / 4) calc(var(--space-after-h4) / 2);
    border: thin solid var(--border-default);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    transition: border-color var(--transition), background-color var(--transition);
}
.hrnt-card-complaint__option:has(input:checked) {
    border-color: var(--color-primary);
    background: var(--color-bg-tint-blue);
}
.hrnt-card-complaint input[type="checkbox"] {
    flex: 0 0 auto;
    width: var(--text-lg);
    height: var(--text-lg);
    margin: calc(var(--space-after-h4) / 8) 0 0;
    accent-color: var(--color-primary);
}
.hrnt-card-complaint__option input[type="checkbox"] { margin-top: 0; }
.hrnt-card-complaint__comment { margin-bottom: calc(var(--space-after-h4) / 2); }
.hrnt-card-complaint__optional { color: var(--color-muted); font-weight: var(--weight-regular); }
.hrnt-card-complaint__textarea {
    display: block;
    width: 100%;
    margin: 0;
    padding: calc(var(--space-after-h4) / 2) var(--space-after-h4);
    border: thin solid var(--color-gray-border);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    color: var(--color-body);
    font-family: inherit;
    font-size: var(--text-md);
    line-height: var(--leading-normal);
    resize: vertical;
}
.hrnt-card-complaint__textarea[aria-invalid="true"],
.hrnt-card-complaint__reasons[aria-invalid="true"] .hrnt-card-complaint__option { border-color: var(--color-danger); }
.hrnt-card-complaint__comment-meta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-after-h4);
    margin-top: calc(var(--space-after-h4) / 2);
}
.hrnt-card-complaint__counter { flex: 0 0 auto; white-space: nowrap; }
.hrnt-card-complaint__comment > [data-hrnt-complaint-other-hint] { margin-top: calc(var(--space-after-h4) / 2); }
.hrnt-card-complaint__consent { min-height: var(--h-touch); }
.hrnt-card-complaint__consent a { color: var(--color-link-alt); text-decoration: underline; text-underline-offset: .15em; }
.hrnt-card-complaint__consent:has(input:disabled) { cursor: default; }
.hrnt-card-complaint__trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.hrnt-card-complaint__actions {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: stretch;
    gap: calc(var(--space-after-h4) / 2);
    padding: calc(var(--space-after-h4) / 2) var(--space-after-h4);
    border-top: thin solid var(--border-default);
    background: var(--color-white);
}
.hrnt-card-complaint__error,
.hrnt-card-complaint__pending {
    margin: 0;
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    overflow-wrap: anywhere;
}
.hrnt-card-complaint__error { color: var(--color-danger-active); }
.hrnt-card-complaint__pending { color: var(--color-muted); }
.hrnt-card-complaint__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--space-after-h4) / 2);
    min-height: var(--h-big);
    margin: 0;
    padding: calc(var(--space-after-h4) / 2) var(--space-after-h3);
    border: thin solid var(--color-primary);
    border-radius: var(--radius-sm);
    background: var(--color-primary);
    color: var(--color-white);
    font-family: inherit;
    font-size: var(--text-md);
    font-weight: var(--weight-bold);
    line-height: var(--leading-relaxed);
    text-align: center;
    cursor: pointer;
    transition: background-color var(--transition), border-color var(--transition);
}
.hrnt-card-complaint__submit:disabled {
    border-color: var(--color-primary-disabled);
    background: var(--color-primary-disabled);
    color: var(--color-white);
    cursor: default;
}
.hrnt-card-complaint button:focus-visible,
.hrnt-card-complaint a:focus-visible,
.hrnt-card-complaint input:focus-visible,
.hrnt-card-complaint textarea:focus-visible { box-shadow: var(--shadow-primary); }
.hrnt-card-complaint__success {
    min-height: 0;
    padding: var(--space-after-h2);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.hrnt-card-complaint__success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--h-big);
    height: var(--h-big);
    margin-bottom: var(--space-after-h4);
    border-radius: var(--radius-round);
    background: var(--color-bg-success-light);
    color: var(--color-success-text);
    font-size: var(--text-2xl);
}
.hrnt-card-complaint__success h3 {
    margin: 0 0 calc(var(--space-after-h4) / 2);
    color: var(--color-heading);
    font-size: var(--text-xl);
    font-weight: var(--weight-bold);
    line-height: var(--leading-heading);
}
.hrnt-card-complaint__success p { margin: 0 0 var(--space-after-h4); }
.hrnt-card-complaint__success .hrnt-card-complaint__submit { width: 100%; }
@media (hover: hover) and (pointer: fine) {
    .hrnt-card-complaint__close:hover { background: var(--color-gray-disabled); color: var(--color-heading); }
    .hrnt-card-complaint__option:hover { border-color: var(--color-gray-active); background: var(--color-gray-disabled); }
    .hrnt-card-complaint__option:has(input:checked):hover { border-color: var(--color-primary); background: var(--color-bg-tint-blue); }
    .hrnt-card-complaint__consent a:hover { color: var(--color-primary); }
    .hrnt-card-complaint__submit:not(:disabled):hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); }
}
.hrnt-card-complaint__submit:not(:disabled):active { background: var(--color-primary-active); border-color: var(--color-primary-active); }
@media (max-width: 640px) {
    .hrnt-card-complaint__header { padding: calc(var(--space-after-h4) / 2) var(--space-after-h4); }
    .hrnt-card-complaint__body { padding: calc(var(--space-after-h4) / 2) var(--space-after-h4); }
    .hrnt-card-complaint__actions { padding: calc(var(--space-after-h4) / 2) var(--space-after-h4); }
    .hrnt-card-complaint__comment-meta { flex-wrap: wrap; gap: calc(var(--space-after-h4) / 4); }
    .hrnt-card-complaint__counter { margin-left: auto; }
    .hrnt-card-complaint__success { padding: var(--space-after-h4); }
}
@media (prefers-reduced-motion: reduce) {
    .hrnt-card-complaint__close,
    .hrnt-card-complaint__option,
    .hrnt-card-complaint__submit { transition: none; }
}

@media (max-width: 359px) {
    .hrnt-card-complaint__options { grid-template-columns: minmax(0, 1fr); }
}

/* Published consent is read above the intact complaint form. */
.hrnt-card-complaint__document-body {
    min-height: 0;
    padding: var(--space-after-h4);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.hrnt-card-complaint__document-body > p { margin: 0; }
.hrnt-card-complaint__document-text {
    color: var(--color-body);
    font-size: var(--text-md);
    line-height: var(--leading-normal);
    overflow-wrap: anywhere;
}
.hrnt-card-complaint__document-text :is(p, ul, ol, dl, blockquote, pre, table) {
    margin: 0 0 var(--space-after-paragraph);
}
.hrnt-card-complaint__document-text :is(ul, ol) { padding-left: var(--space-after-h2); }
.hrnt-card-complaint__document-text :is(h1, h2, h3, h4, h5, h6) {
    margin: var(--space-after-h3) 0 calc(var(--space-after-h4) / 2);
    color: var(--color-heading);
    font-size: var(--text-lg);
    font-weight: var(--weight-bold);
    line-height: var(--leading-heading);
}
.hrnt-card-complaint__document-text a,
.hrnt-card-complaint-document .hrnt-card-complaint__actions > a {
    color: var(--color-link-alt);
    text-decoration: underline;
}
.hrnt-card-complaint__document-text table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}
.hrnt-card-complaint__document-text pre { white-space: pre-wrap; }
.hrnt-card-complaint__document-retry {
    min-height: var(--h-touch);
    padding: calc(var(--space-after-h4) / 2);
    border: thin solid var(--border-default);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    color: var(--color-primary);
    font-size: var(--text-base);
    cursor: pointer;
}
.hrnt-card-complaint-document .hrnt-card-complaint__header > h2 { flex: 1 1 auto; min-width: 0; }

/* Only the body scrolls; focus must not scroll a hidden outer frame over its header. */
@supports (overflow: clip) {
    .hrnt-card-complaint,
    .hrnt-card-complaint__form { overflow: clip; }
}
