/**
 * Campus foundation — tokeny i prymitywy.
 * Ładowane przed campus.css / campus-portal.css.
 *
 * Breakpointy (mobile-first):
 *   <480  telefon wąski
 *   480–767  telefon
 *   768–1199 tablet
 *   ≥1200 desktop
 */
:root {
    --campus-ink: var(--pjm-ink, #14241C);
    --campus-muted: var(--pjm-muted, #52655D);
    --campus-primary: var(--pjm-primary, #1B5E4B);
    --campus-primary-dark: var(--pjm-primary-dark, #154A3B);
    --campus-accent: var(--pjm-accent, #C8922A);
    --campus-surface: var(--pjm-surface, #F3F6F4);
    --campus-surface-2: var(--pjm-surface-2, #E7EEEA);
    --campus-card: var(--pjm-card, #FFFFFF);
    --campus-border: var(--pjm-border, #D5DFD9);
    --campus-danger: var(--pjm-danger, #B42318);
    --campus-warn: var(--pjm-warn, #B54708);
    --campus-ok: var(--pjm-ok, #067647);
    --campus-soft: rgba(27, 94, 75, 0.10);

    --campus-font-display: var(--pjm-font-display, 'Plus Jakarta Sans', system-ui, sans-serif);
    --campus-font-body: var(--pjm-font-body, 'Source Sans 3', system-ui, sans-serif);

    --campus-radius-sm: 8px;
    --campus-radius-md: 12px;
    --campus-radius-lg: 16px;
    --campus-shadow-sm: 0 1px 2px rgba(20, 36, 28, 0.05);
    --campus-shadow-md: 0 10px 28px rgba(20, 36, 28, 0.08);

    --campus-touch: 44px;
    --campus-content-max: 1200px;
    --campus-pad: clamp(16px, 3vw, 32px);
    --campus-bp-sm: 480px;
    --campus-bp-md: 768px;
    --campus-bp-lg: 1200px;

    /* Alias historycznych tokenów portalu */
    --cp-ink: var(--campus-ink);
    --cp-primary: var(--campus-primary);
    --cp-primary-dark: var(--campus-primary-dark);
    --cp-accent: var(--campus-accent);
    --cp-muted: var(--campus-muted);
    --cp-border: var(--campus-border);
    --cp-card: var(--campus-card);
    --cp-radius: var(--campus-radius-lg);
    --cp-shadow: var(--campus-shadow-md);
}

.pjm-campus,
.pjm-campus-app-shell,
.pjm-campus-portal-host,
.pjm-campus-portal-shell {
    --c-ink: var(--campus-ink);
    --c-muted: var(--campus-muted);
    --c-accent: var(--campus-primary);
    --c-accent-soft: var(--campus-soft);
    --c-border: var(--campus-border);
    --c-border-strong: var(--campus-border);
    --c-surface: var(--campus-card);
    --c-muted-bg: var(--campus-surface-2);
    --c-radius: var(--campus-radius-md);
    --c-radius-lg: var(--campus-radius-lg);
    --c-shadow: var(--campus-shadow-sm);
}

.pjm-campus-portal-shell,
.pjm-campus-app-shell {
    min-height: 100vh;
    min-height: 100dvh;
    overflow-x: clip;
}

.pjm-campus,
.pjm-ca,
.pjm-cp,
.pjm-ca__main {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.pjm-campus-app-shell .pjm-ca,
.pjm-campus-portal-shell .pjm-cp {
    width: min(var(--campus-content-max), 100%);
    padding-inline: max(var(--campus-pad), env(safe-area-inset-left), env(safe-area-inset-right));
    box-sizing: border-box;
}

.pjm-campus :where(h1, h2, h3, h4, p, span, strong, a, td, th, li),
.pjm-campus-app-shell :where(h1, h2, h3, h4, p, span, strong, a, td, th, li) {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.pjm-campus :where(.pjm-campus-day__time, .pjm-campus-mini-status, .pjm-campus-id-badge, time, .pjm-campus-status-pill),
.pjm-campus-app-shell :where(.pjm-campus-day__time, .pjm-campus-mini-status, .pjm-campus-id-badge, time, .pjm-campus-status-pill) {
    overflow-wrap: normal;
    word-break: normal;
}

.pjm-campus :where(.pjm-form-field, .pjm-campus-grid > *, .pjm-campus-day__meta, .pjm-campus-kpi-card > div, .pjm-campus-case div),
.pjm-campus-app-shell :where(.pjm-form-field, .pjm-campus-grid > *, .pjm-campus-day__meta, .pjm-campus-kpi-card > div) {
    min-width: 0;
}

.pjm-campus :where(button, [type="button"], [type="submit"], summary, a, .ja-btn, .pjm-cp__btn, .ja-icon-btn, .pjm-campus-filter):focus-visible,
.pjm-campus-app-shell :where(button, [type="button"], [type="submit"], summary, a, .ja-btn, .pjm-cp__btn, .ja-icon-btn, .pjm-campus-filter, .pjm-ca__nav-link, .pjm-input, .pjm-select, textarea):focus-visible {
    outline: 2px solid var(--campus-primary);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px var(--campus-soft);
}

@media (prefers-reduced-motion: reduce) {
    .pjm-campus *,
    .pjm-campus-app-shell *,
    .pjm-campus-portal-shell *,
    .pjm-campus-portal-host * {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
