/* Opt-in components and scoped adapters. Editorial block styles remain editable. */
.tta-ui-button, .tta-primary-button, .tta-secondary-button, .tta-install-button,
.tta-auth-button, .tta-auth-card input[type="submit"], .tta-bouton,
.tta-member-card__link, .tta-member-card__link:visited, .tta-photo-all-link,
.tta-photo-uploader .tpu-actions button, .tta-install-primary, .tta-install-later {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--tta-action-height);
    max-width: 100%;
    gap: var(--tta-space-2);
    padding: var(--tta-button-padding);
    border-radius: var(--tta-button-radius, var(--tta-radius));
    font-family: var(--tta-font-button);
    font-size: var(--tta-button-font-size);
    font-weight: var(--tta-button-weight, 600);
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: none;
    white-space: normal;
}
.tta-ui-button, .tta-bouton {
    border: 1px solid var(--tta-color-primary);
    background: var(--tta-color-primary);
    color: #fff;
}
.tta-ui-button:visited { color: #fff; }
.tta-ui-button:hover, .tta-ui-button:focus-visible, .tta-bouton:hover {
    border-color: var(--tta-color-primary-strong);
    background: var(--tta-color-primary-strong);
    color: #fff;
}
.tta-ui-button--secondary {
    border-color: var(--tta-color-primary);
    background: var(--tta-color-panel);
    color: var(--tta-color-primary);
}
.tta-ui-button--quiet { background: transparent; border-color: transparent; color: var(--tta-color-primary); }
.tta-ui-button--danger { background: var(--tta-color-danger); border-color: var(--tta-color-danger); color: #fff; }
.tta-ui-button--danger:hover { background: var(--tta-color-danger); border-color: var(--tta-color-danger); filter: brightness(.9); }
:where(.tta-pwa-shell, .tta-pwa-nav, .tta-member-space, .tta-member-grid, .tta-auth-card, .tta-formulaire-article, .tta-photo-hub, .tta-photo-uploader, .ttm-front-app, .tta-install-banner) :is(button, a, input, textarea, select):focus-visible,
.tta-ui-button:focus-visible {
    outline: 3px solid var(--tta-color-primary-strong);
    outline-offset: 3px;
}
:where(.tta-pwa-shell, .tta-auth-card, .tta-formulaire-article, .tta-photo-hub, .tta-photo-uploader, .ttm-front-app) :is(button, input, select, textarea):disabled {
    cursor: not-allowed;
    opacity: .6;
}
.tta-auth-card input:is([type="text"], [type="password"], [type="email"]),
.tta-formulaire-article .tta-champ :is(input[type="text"], select, textarea),
.tta-photo-uploader .tpu-grid :is(input, select), .tta-photo-hub .tph-search input {
    box-sizing: border-box;
    width: 100%;
    min-height: var(--tta-action-height);
    padding: var(--tta-space-3);
    border: 1px solid var(--tta-color-line);
    border-radius: var(--tta-radius);
    background: var(--tta-color-panel);
    color: var(--tta-color-ink);
    font-family: var(--tta-font-body);
    font-size: var(--tta-font-size);
}
.tta-ui-card, .tta-card, .tta-member-card, .tta-auth-card, .tpu-panel {
    border-radius: var(--tta-radius-card);
    box-shadow: var(--tta-shadow);
}
.tta-ui-card { padding: var(--tta-space-6); border: 1px solid var(--tta-color-line); background: var(--tta-color-panel); }
.tta-auth-message, .tta-message { border-radius: var(--tta-radius); padding: var(--tta-space-4); }
.tta-auth-message--success, .tta-message--succes { background: var(--tta-color-success-soft); color: var(--tta-color-success); }
.tta-auth-message--error, .tta-message--erreur { background: var(--tta-color-danger-soft); color: var(--tta-color-danger); }
.tta-message--avertissement { background: var(--tta-color-warning-soft); color: var(--tta-color-warning); }
.tta-message--information { background: var(--tta-color-info-soft); color: var(--tta-color-ink); }
.tta-loading, .tta-error, .tta-member-empty, .tta-empty { font-family: var(--tta-font-body); line-height: 1.5; }
.tta-error { color: var(--tta-color-danger); }
.tta-install-banner:not([hidden]) { font-family: var(--tta-font-body); border-radius: var(--tta-radius-card); }
.tta-pwa-shell, .tta-member-space, .tta-member-grid, .tta-auth-card, .tta-photo-hub, .tta-photo-uploader, .tta-formulaire-article, .ttm-front-app {
    font-family: var(--tta-font-body);
}
/* Functional headings use the body family on both surfaces. Astra owns editorial headings. */
:where(.tta-pwa-shell, .tta-member-grid, .tta-auth-card, .tta-photo-hub, .tta-photo-uploader, .ttm-front-app) :is(h1,h2,h3) { font-family: var(--tta-font-body); text-transform: none; }
@media(max-width:544px) {
    .tta-member-card__header, .tta-card-heading { flex-wrap: wrap; }
    .tta-member-card__link, .tta-photo-all-link { flex-shrink: 1; }
}
/* Public Teams actions: wp-admin keeps its existing plugin presentation. */
.ttm-front-app .button, .ttm-front-app button:not(.ttm-sort-button):not(.ttm-edit-player-button):not(.ttm-compose-button) {
    min-height: var(--tta-action-height);
    border-radius: var(--tta-button-radius, var(--tta-radius));
    font-family: var(--tta-font-button);
    font-weight: var(--tta-button-weight, 600);
}
.tta-auth-card h2, .tta-member-card h2, .tta-photo-hub :is(h1,h2,h3), .tta-photo-uploader :is(h1,h2,h3), .ttm-front-app :is(h1,h2,h3) {
    font-family: var(--tta-font-body);
    text-transform: none;
}

.tta-ui-button--secondary:visited, .tta-ui-button--quiet:visited { color: var(--tta-color-primary); }
.tta-ui-button:disabled { opacity: .6; cursor: not-allowed; }
.tta-ui-card .tta-actions { display: flex; flex-wrap: wrap; gap: var(--tta-space-3); }
