*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    min-width: 20rem;
    font-family: var(--admin-font-sans);
    line-height: var(--admin-line-height-normal);
    text-rendering: optimizeLegibility;
}

body.admin-app {
    min-height: 100vh;
    margin: 0;
    color: var(--foreground, var(--admin-color-text));
    font-family: var(--admin-font-sans);
    font-size: var(--admin-font-size-md);
}

:where(h1, h2, h3, p) {
    margin-block-start: 0;
}

@layer base {
    :where(h1, h2, h3) {
        font-weight: var(--admin-font-weight-semibold);
        line-height: var(--admin-line-height-tight);
    }

    :where(a, button, input, select, textarea, [tabindex]):focus-visible {
        outline: 2px solid transparent;
        box-shadow: var(--admin-focus-ring);
    }

    :where(button, input, select, textarea):disabled,
    [aria-disabled="true"]:not([aria-current="page"]) {
        cursor: not-allowed;
        opacity: var(--admin-disabled-opacity);
    }
}

code,
pre {
    font-family: var(--admin-font-mono);
    font-size: .92em;
}

code {
    padding: .125rem .3rem;
    border-radius: .25rem;
    background: var(--admin-color-surface-subtle);
    overflow-wrap: anywhere;
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.metadata {
    display: grid;
    grid-template-columns: minmax(10rem, max-content) minmax(0, 1fr);
    gap: var(--admin-space-2) var(--admin-space-4);
    margin-block: var(--admin-space-4);
}
.metadata dt { font-weight: var(--admin-font-weight-semibold); }
.metadata dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.metadata.compact { font-size: var(--admin-font-size-sm); }
.technical-details { margin-block: var(--admin-space-4); }
.technical-details > summary { cursor: pointer; font-weight: var(--admin-font-weight-semibold); }
.hint { color: var(--admin-color-text-muted); font-size: var(--admin-font-size-sm); }
@media (max-width: 40rem) {
    .metadata { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

.admin-icon { display: inline-block; flex: none; vertical-align: -.25em; }
/* Nested content shares its parent's surface rather than drawing another box. */
.admin-app .admin-card__body .admin-table,
.admin-app .admin-card__body .admin-card,
.admin-app .admin-card__body .form-section,
.admin-app .form-section .form-section,
.admin-app .admin-table .empty-state,
.admin-app .admin-card .empty-state {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}
.admin-card__body > .admin-table:only-child { margin: calc(-1 * var(--admin-space-6)); }
.admin-app .admin-card__body .form-section { padding-inline: 0; }
.admin-app fieldset:not(.form-section) { min-width: 0; border: 0; padding: 0; margin: 0; }
.admin-card__body > :last-child { margin-bottom: 0; }
.admin-table td > a + a { margin-inline-start: var(--admin-space-3); }
.admin-table td { overflow-wrap: anywhere; }
.dashboard-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--admin-space-6); }
@media (max-width: 48rem) { .dashboard-secondary { grid-template-columns: minmax(0, 1fr); } }
.publishing-analytics > summary { cursor: pointer; font-weight: var(--admin-font-weight-semibold); padding-block: 1rem; }
.publishing-analytics > .admin-card + .admin-card { margin-top: var(--admin-space-6); }

.place-detail { display: flex; flex-direction: column; gap: var(--admin-space-6); min-width: 0; }
