/* OriginHub design system — spacing, motion, surfaces, interaction primitives */

:root {
    /* Layout */
    --layout-chat-max: 860px;
    --layout-header-h: 58px;
    --layout-rail-w: 58px;
    --layout-sidebar-w: 248px;
    --layout-gutter-x: clamp(16px, 3vw, 48px);

    /* Spacing scale (4px base) */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 32px;
    --space-8: 40px;
    --space-9: 56px;

    /* Radius — soft, high-radius organic geometry */
    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 18px;
    --radius-xl: 22px;
    --radius-2xl: 28px;
    --radius-pill: 999px;
    --radius-bubble: 18px;
    --radius-bubble-join: 8px;
    --radius-bubble-tail: 4px;

    /* Floating shell — void → surface → elevated → interactive */
    --nexa-void: #000000;
    --nexa-surface: #0a0a0a;
    --nexa-surface-chat: #0d0d0d;
    --nexa-surface-elevated: #111111;
    --nexa-surface-interactive: #181818;
    --nexa-surface-radius: 20px;
    --nexa-chrome-radius: 24px;
    --nexa-surface-gap: 16px;
    --nexa-surface-inset: 20px;
    --nexa-surface-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.015),
        0 8px 30px rgba(0, 0, 0, 0.25);

    /* Motion */
    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-ui: cubic-bezier(0.16, 1, 0.3, 1);
    --duration-fast: 120ms;
    --duration-normal: 150ms;
    --duration-slow: 240ms;

    /* Elevation — soft, warm, theme-aware via ventura-theme.css */
    --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.12);
    --shadow-2: 0 4px 16px rgba(0, 0, 0, 0.14);
    --shadow-3: 0 24px 64px rgba(0, 0, 0, 0.2);
    --shadow-overlay: var(--overlay-shadow, 0 0 0 0.5px color-mix(in srgb, var(--border) 80%, transparent), var(--shadow-3));

    /* Z-index */
    --z-base: 1;
    --z-header: 20;
    --z-welcome: 30;
    --z-overlay: 9999;
    --z-overlay-surface: 210;

    /* Legacy radius aliases */
    --r1: var(--radius-sm);
    --r2: var(--radius-md);
    --r3: var(--radius-xl);
    --r4: var(--radius-2xl);

    /* Typography — Inter primary, Borna display */
    --text-caption: 11px;
    --text-meta: 12px;
    --text-label: 13px;
    --text-body: 14px;
    --text-title: 15px;
    --text-lg: 17px;
    --text-display: 28px;

    /* Legacy aliases */
    --text-xs: 11px;
    --text-sm: 12px;
    --text-base: 14px;
    --text-md: 15px;

    --weight-regular: 400;
    --weight-medium: 500;
    --weight-semibold: 600;
    --weight-bold: 700;

    --leading-tight: 1.25;
    --leading-snug: 1.35;
    --leading-normal: 1.45;

    --track-tight: -0.02em;
    --track-snug: -0.01em;
    --track-normal: 0;
}

/* Interactive primitives */
button,
[role="button"] {
    -webkit-tap-highlight-color: transparent;
}

.interactive-surface {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    transition:
        background var(--duration-fast) ease,
        border-color var(--duration-fast) ease,
        color var(--duration-fast) ease,
        box-shadow var(--duration-fast) ease,
        transform var(--duration-fast) ease;
}

.interactive-surface:hover {
    background: var(--hover);
}

.interactive-surface:active {
    transform: scale(0.98);
}

.interactive-surface:focus-visible {
    box-shadow: 0 0 0 3px var(--focus, var(--accent-20));
    outline: none;
}

/* Unified icon buttons */
.mini-icon-btn,
.rail-icon-btn,
.btn-attach,
.composer-reply-close,
.profile-copy-btn {
    transition:
        background var(--duration-fast) ease,
        border-color var(--duration-fast) ease,
        color var(--duration-fast) ease,
        transform var(--duration-fast) ease,
        box-shadow var(--duration-fast) ease;
}

.mini-icon-btn:focus-visible,
.rail-icon-btn:focus-visible,
.btn-attach:focus-visible {
    box-shadow: 0 0 0 3px var(--focus, var(--accent-20));
    outline: none;
}

/* Global keyboard focus affordance for native controls */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--focus, var(--accent-muted));
    outline-offset: 2px;
}

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

.rail-icon-btn {
    cursor: pointer;
}
