/* ========================================================================== 
   Park ERP foundation
   Document defaults, accessibility primitives and theme-safe native controls.
   ========================================================================== */

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

html {
    min-height: 100%;
    background: var(--color-canvas);
    font-family: var(--font-sans);
    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
}

body {
    min-height: 100%;
    margin: 0;
    background: var(--color-canvas);
    color: var(--color-text);
    font-family: var(--font-sans);
    font-size: var(--font-size-md);
    line-height: var(--line-height-normal);
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

button,
[role="button"],
input,
select,
summary {
    touch-action: manipulation;
}

a {
    color: var(--color-brand-700);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

a:hover {
    color: var(--color-brand-600);
}

img,
svg {
    max-width: 100%;
}

code,
kbd,
pre,
samp,
.direction-ltr,
.ltr {
    direction: ltr;
    font-family: var(--font-mono);
    text-align: left;
}

::selection {
    background: var(--color-brand-100);
    color: var(--color-brand-900);
}

:focus-visible {
    outline: 3px solid var(--color-brand-500);
    outline-offset: 3px;
}

[hidden] {
    display: none !important;
}

[inert] {
    pointer-events: none;
    user-select: none;
}

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

.skip-link {
    position: fixed;
    top: var(--space-3);
    right: var(--space-3);
    z-index: calc(var(--z-toast) + 1);
    min-height: var(--touch-target);
    padding: var(--space-2) var(--space-4);
    display: inline-flex;
    align-items: center;
    border-radius: var(--radius-md);
    background: var(--color-info-solid);
    color: var(--color-on-brand);
    box-shadow: var(--shadow-lg);
    font-weight: 800;
    text-decoration: none;
    transform: translateY(calc(-100% - 2rem));
    transition: transform var(--motion-fast) var(--ease-standard);
}

.skip-link:focus {
    color: var(--color-on-brand);
    transform: translateY(0);
}

.skip-link:focus-visible {
    outline-color: var(--color-on-brand);
    box-shadow: var(--shadow-lg), var(--focus-ring);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
select,
textarea {
    min-height: var(--control-height);
    border-color: var(--color-border-strong);
    background: var(--color-surface);
    color: var(--color-text-strong);
}

input::placeholder,
textarea::placeholder {
    color: var(--color-text-subtle);
    opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--color-brand-500);
    box-shadow: var(--focus-ring);
    outline: 0;
}

[aria-invalid="true"],
.is-invalid {
    border-color: var(--color-danger-600) !important;
}

.field-error,
[data-field-error] {
    color: var(--color-danger-700);
    font-size: var(--font-size-xs);
    font-weight: 650;
}

dialog {
    max-width: min(42rem, calc(100vw - 2rem));
    max-height: min(88dvh, 56rem);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    background: var(--color-surface-elevated);
    color: var(--color-text);
    box-shadow: var(--shadow-xl);
}

dialog::backdrop {
    background: var(--color-backdrop);
    backdrop-filter: blur(3px);
}

body[data-overlay-open="true"] {
    overflow: hidden;
}

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

@media print {
    :root {
        color-scheme: light;
        --color-canvas: var(--color-surface);
        --color-text: var(--color-text-strong);
        --shadow-xs: none;
        --shadow-sm: none;
        --shadow-md: none;
        --shadow-lg: none;
        --shadow-xl: none;
    }
}
