/**
 * Pedi2 Design System — SaaS food ordering & restaurant ops
 * Tokens + component primitives (Tailwind complements)
 */
:root {
    --p2-bg-base: #070708;
    --p2-bg-surface: #121214;
    --p2-bg-elevated: #1a1a1f;
    --p2-bg-overlay: rgba(18, 18, 20, 0.92);

    --p2-text-primary: #fafafa;
    --p2-text-secondary: #a1a1ab;
    --p2-text-muted: #71717a;
    --p2-text-inverse: #070708;

    --p2-accent: #f36900;
    --p2-accent-hover: #ff7a1a;
    --p2-accent-pressed: #d95a00;
    --p2-accent-muted: rgba(243, 105, 0, 0.14);
    --p2-accent-border: rgba(243, 105, 0, 0.4);
    --p2-highlight: #fdc504;

    --p2-success: #22c55e;
    --p2-success-muted: rgba(34, 197, 94, 0.14);
    --p2-success-border: rgba(34, 197, 94, 0.35);

    --p2-warning: #fdc504;
    --p2-warning-muted: rgba(253, 197, 4, 0.14);
    --p2-warning-border: rgba(253, 197, 4, 0.35);

    --p2-danger: #ef4444;
    --p2-danger-muted: rgba(239, 68, 68, 0.14);
    --p2-danger-border: rgba(239, 68, 68, 0.35);

    --p2-info: #38bdf8;
    --p2-info-muted: rgba(56, 189, 248, 0.14);
    --p2-info-border: rgba(56, 189, 248, 0.35);

    --p2-radius-sm: 0.5rem;
    --p2-radius-md: 0.75rem;
    --p2-radius-lg: 1rem;
    --p2-radius-xl: 1.25rem;

    --p2-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
    --p2-shadow-md: 0 4px 14px rgba(0, 0, 0, 0.45);
    --p2-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.55);
    --p2-shadow-glow: 0 0 0 1px var(--p2-accent-border), 0 8px 28px rgba(243, 105, 0, 0.22);

    --p2-focus-ring: 0 0 0 2px var(--p2-bg-base), 0 0 0 4px rgba(243, 105, 0, 0.55);
    --p2-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --p2-duration: 180ms;
}

/* —— Surfaces —— */
.glass-panel {
    background: var(--p2-bg-overlay);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: var(--p2-shadow-lg);
}

.pedi2-consumer .glass-panel {
    border-color: var(--p2-accent-border);
    box-shadow: var(--p2-shadow-lg), 0 0 0 1px rgba(243, 105, 0, 0.06);
}

.glass-card {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.06);
    transition: border-color var(--p2-duration) var(--p2-ease),
        background var(--p2-duration) var(--p2-ease),
        box-shadow var(--p2-duration) var(--p2-ease);
}

.glass-card:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: var(--p2-accent-border);
}

.pedi2-consumer .glass-card {
    background: rgba(253, 197, 4, 0.02);
    border-color: rgba(243, 105, 0, 0.12);
}

.pedi2-consumer .glass-card:hover {
    background: rgba(243, 105, 0, 0.06);
    border-color: rgba(253, 197, 4, 0.35);
    box-shadow: 0 8px 24px rgba(243, 105, 0, 0.12);
}

/* —— Button hierarchy —— */
.btn-pedi2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-family: 'Outfit', 'Inter', sans-serif;
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: var(--p2-radius-lg);
    border: 1px solid transparent;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    transition: transform var(--p2-duration) var(--p2-ease),
        box-shadow var(--p2-duration) var(--p2-ease),
        background var(--p2-duration) var(--p2-ease),
        border-color var(--p2-duration) var(--p2-ease),
        color var(--p2-duration) var(--p2-ease),
        opacity var(--p2-duration) var(--p2-ease);
    -webkit-tap-highlight-color: transparent;
}

.btn-pedi2:focus {
    outline: none;
}

.btn-pedi2:focus-visible {
    box-shadow: var(--p2-focus-ring);
}

.btn-pedi2:active:not(:disabled) {
    transform: scale(0.97);
}

.btn-pedi2:disabled,
.btn-pedi2[aria-disabled='true'] {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Primary — single decisive action per viewport zone */
.btn-pedi2-primary {
    padding: 0.75rem 1.5rem;
    color: var(--p2-text-inverse);
    background: linear-gradient(135deg, #f36900 0%, #ff8c2e 52%, #fdc504 100%);
    border-color: rgba(253, 197, 4, 0.25);
    box-shadow: var(--p2-shadow-glow);
}

.btn-pedi2-primary:hover:not(:disabled) {
    background: linear-gradient(135deg, #ff7a1a 0%, #ff9a40 52%, #ffe066 100%);
    box-shadow: var(--p2-shadow-glow), 0 4px 20px rgba(243, 105, 0, 0.35);
    transform: translateY(-1px);
}

.btn-pedi2-primary:active:not(:disabled) {
    background: linear-gradient(135deg, var(--p2-accent-pressed) 0%, #e07820 100%);
    transform: scale(0.97) translateY(0);
}

/* Secondary — alternate path, cancel-adjacent, filters */
.btn-pedi2-secondary {
    padding: 0.75rem 1.5rem;
    color: var(--p2-text-primary);
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.14);
    box-shadow: var(--p2-shadow-sm);
}

.btn-pedi2-secondary:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.08);
    border-color: var(--p2-accent-border);
    color: #fff;
}

/* Outline accent — confirm secondary importance with brand tie */
.btn-pedi2-outline {
    padding: 0.75rem 1.5rem;
    color: var(--p2-accent);
    background: var(--p2-accent-muted);
    border-color: var(--p2-accent-border);
}

.btn-pedi2-outline:hover:not(:disabled) {
    background: rgba(243, 105, 0, 0.22);
    border-color: rgba(243, 105, 0, 0.55);
    box-shadow: 0 4px 16px rgba(243, 105, 0, 0.15);
}

/* Tertiary — low emphasis, navigation helpers */
.btn-pedi2-tertiary {
    padding: 0.5rem 0.75rem;
    color: var(--p2-text-secondary);
    background: transparent;
    border-color: transparent;
    text-transform: none;
    letter-spacing: 0.02em;
    font-weight: 600;
    font-size: 0.8125rem;
}

.btn-pedi2-tertiary:hover:not(:disabled) {
    color: var(--p2-accent);
    background: var(--p2-accent-muted);
}

/* Danger — destructive */
.btn-pedi2-danger {
    padding: 0.625rem 1.25rem;
    color: #fca5a5;
    background: var(--p2-danger-muted);
    border-color: var(--p2-danger-border);
}

.btn-pedi2-danger:hover:not(:disabled) {
    background: rgba(239, 68, 68, 0.22);
    color: #fecaca;
}

/* Sizes */
.btn-pedi2-sm {
    padding: 0.5rem 1rem;
    font-size: 0.625rem;
    border-radius: var(--p2-radius-md);
}

.btn-pedi2-lg {
    padding: 0.875rem 1.75rem;
    font-size: 0.8125rem;
    border-radius: var(--p2-radius-xl);
}

.btn-pedi2-icon {
    padding: 0.625rem;
    border-radius: 9999px;
}

/* Nav active (sidebar / tabs) */
.nav-pedi2-active {
    background: var(--p2-accent-muted) !important;
    color: var(--p2-accent) !important;
    border: 1px solid var(--p2-accent-border) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* Semantic badges */
.badge-pedi2 {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.625rem;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 9999px;
    border: 1px solid transparent;
}

.badge-pedi2-success {
    color: var(--p2-success);
    background: var(--p2-success-muted);
    border-color: var(--p2-success-border);
}

.badge-pedi2-warning {
    color: var(--p2-warning);
    background: var(--p2-warning-muted);
    border-color: var(--p2-warning-border);
}

.badge-pedi2-danger {
    color: #fca5a5;
    background: var(--p2-danger-muted);
    border-color: var(--p2-danger-border);
}

.badge-pedi2-info {
    color: var(--p2-info);
    background: var(--p2-info-muted);
    border-color: var(--p2-info-border);
}

/* Typography helpers */
.text-pedi2-primary { color: var(--p2-text-primary); }
.text-pedi2-secondary { color: var(--p2-text-secondary); }
.text-pedi2-muted { color: var(--p2-text-muted); }

/* Elevation cards (menus, KPIs) */
.card-pedi2-elevated {
    background: linear-gradient(165deg, var(--p2-bg-elevated) 0%, var(--p2-bg-surface) 100%);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--p2-radius-xl);
    box-shadow: var(--p2-shadow-md);
}

.card-pedi2-elevated:hover {
    border-color: var(--p2-accent-border);
    box-shadow: var(--p2-shadow-md), 0 0 24px rgba(243, 105, 0, 0.08);
}

/* Form focus */
.input-pedi2:focus {
    outline: none;
    border-color: var(--p2-accent-border) !important;
    box-shadow: var(--p2-focus-ring);
}
