.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .65rem 1rem; border: 1px solid transparent; border-radius: var(--trust-radius-sm); cursor: pointer; font-weight: 650; text-decoration: none; }
.button-primary { background: var(--trust-primary); color: #fff; }
.button-primary:hover { background: var(--trust-primary-hover); color: #fff; }
.button-secondary { border-color: var(--trust-border); background: #fff; color: var(--trust-text); }
.button-secondary:hover { background: var(--trust-surface); }
.card { border: 1px solid var(--trust-border); border-radius: var(--trust-radius-md); background: #fff; box-shadow: var(--trust-shadow-sm); }
.badge { display: inline-flex; align-items: center; min-height: 1.6rem; padding: .125rem .55rem; border-radius: 999px; background: var(--trust-surface); color: var(--trust-text-muted); font-size: .8rem; font-weight: 650; }
.badge-success { background: #eaf5ef; color: #15583f; }
.badge-warning { background: #fff5d8; color: #7a5200; }
.badge-danger { background: #fcebea; color: #8c1d16; }
.pillar-card { padding: 1.25rem; }
.pillar-card h3 { margin-bottom: .5rem; font-size: 1rem; }
.pillar-card p { margin-bottom: 0; color: var(--trust-text-muted); font-size: .9rem; }
.control-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 230px; padding: 1.4rem; }
.control-card h3 { margin: 1rem 0 .6rem; font-size: 1.15rem; }
.control-card > p { color: var(--trust-text-muted); }
.control-icon { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .65rem; background: #edf5f0; color: var(--trust-primary); }
.control-icon svg { width: 1.25rem; height: 1.25rem; fill: currentColor; }
.card-footer { display: flex; align-items: center; justify-content: space-between; gap: .6rem; width: 100%; margin-top: auto; }
.text-link { font-weight: 650; text-decoration: none; }
.control-item { padding: 1.25rem; border: 1px solid var(--trust-border); border-radius: var(--trust-radius-md); background: var(--trust-surface); }
.control-item h3 { margin-bottom: .6rem; font-size: 1.1rem; }
.control-item p { margin: .75rem 0 0; color: var(--trust-text-muted); }
.control-item .text-link { display: inline-flex; margin-top: .9rem; }
.document-list, .subprocessor-list { display: grid; gap: 1rem; max-width: 900px; }
.document-card, .subprocessor-card, .contact-card { padding: 1.5rem; }
.document-card h2, .subprocessor-card h2, .contact-card h2 { font-size: 1.25rem; }
.document-card p, .subprocessor-card p, .contact-card p { color: var(--trust-text-muted); }
.access-dialog { width: min(600px, calc(100% - 2rem)); max-height: min(90vh, 860px); padding: 1.5rem; border: 1px solid var(--trust-border); border-radius: var(--trust-radius-lg); color: var(--trust-text); }
.access-dialog::backdrop { background: rgb(24 33 29 / 55%); }
.access-dialog h2 { margin-bottom: .5rem; }
.access-dialog form { display: grid; gap: 1rem; }
.form-field { display: grid; gap: .35rem; }
.form-field label { font-weight: 650; }
.form-field input, .form-field textarea { width: 100%; min-height: 44px; padding: .6rem .7rem; border: 1px solid var(--trust-border); border-radius: var(--trust-radius-sm); }
.form-field textarea { min-height: 100px; resize: vertical; }
.form-field [aria-invalid="true"] { border-color: var(--trust-danger); }
.field-error { min-height: 1.25rem; color: var(--trust-danger); font-size: .85rem; }
.dialog-actions { display: flex; justify-content: flex-end; gap: .75rem; margin-top: .5rem; }
.form-message { color: var(--trust-text-muted); }
.disclosure-section { max-width: 760px; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--trust-border); }
.service-status-card { display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; align-items: center; width: min(760px, 100%); padding: 1.25rem; margin-top: 1rem; }
.service-status-card h2, .service-status-card p { margin: 0; }
.service-status-card p { grid-column: 1 / -1; color: var(--trust-text-muted); }
@media (max-width: 520px) { .card-footer { align-items: flex-start; flex-direction: column; } }
