/* Hide elements with x-cloak until Alpine has processed them.
   Without this rule, x-cloak is a no-op attribute and modals/toasts
   render visibly during the brief window before Alpine boots —
   and stay visible if Alpine's data factories fail to register. */
[x-cloak] { display: none !important; }

/* Form inputs: 36px height, consistent border, chimera focus ring */
.nui-input {
    height: 36px;
    padding-inline: 12px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--surface-card);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 15px;
    line-height: 24px;
    transition: border-color 120ms ease, box-shadow 120ms ease;
    outline: none;
}

.nui-input:focus {
    border-color: var(--border-focus);
    box-shadow: 0 0 0 3px rgba(61, 137, 72, 0.15);
}

.nui-textarea {
    padding-block: 8px;
    height: auto;
    resize: vertical;
}

/* SVG path-draw animation */
@keyframes nui-path-draw {
    from { stroke-dashoffset: 1; }
    to   { stroke-dashoffset: 0; }
}

.nui-draw {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: nui-path-draw 0.8s ease forwards;
}

/* Pill nav container */
.nui-nav-pill {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(12px);
    box-shadow: var(--shadow-card);
}

/* Dark CTA button */
.nui-btn-dark {
    background: var(--surface-inverse);
    color: var(--text-on-inverse);
    border-radius: var(--radius-pill);
    padding: 8px 20px;
    font-size: 14px;
    font-weight: 500;
    transition: opacity 120ms ease;
}

.nui-btn-dark:hover {
    opacity: 0.85;
}

/* Chimera primary button */
.nui-btn-primary {
    background: var(--chimera-500);
    color: var(--text-on-primary);
    border-radius: var(--radius-pill);
    padding: 8px 20px;
    font-size: 14px;
    font-weight: 500;
    transition: background 120ms ease;
}

.nui-btn-primary:hover {
    background: var(--chimera-600);
}

/* Card */
.nui-card {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

/* Toast positioning */
.nui-toast-stack {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 60;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 360px;
}

/* Modal backdrop */
.nui-modal-backdrop {
    background: rgba(15, 20, 17, 0.45);
    backdrop-filter: blur(2px);
}
