/* =============================================================================
   PandaPOS Design System — panda.css
   -----------------------------------------------------------------------------
   Shared by every PandaPOS web app (Admin, Portal, POS, Accounting).
   Sections:
     1. Tokens (light / dark)          6. Navigation shell (sidebar, topbar)
     2. Base & typography              7. Data display (cards, stats, tables, badges, chips)
     3. Buttons                        8. Overlays (modal, drawer, sheet, menu, toast, command)
     4. Forms                          9. Feedback (alert, empty, skeleton, progress, tooltip)
     5. Layout helpers                10. Composite UI (tabs, accordion, breadcrumb, upload, slider)
                                      11. POS shell · 12. Motion · 13. Responsive
   Rules: only tokens for colour/space/radius; no per-component dark overrides
   (dark mode is done by re-defining tokens); every interactive element has
   hover / active / focus-visible / disabled states.
   ============================================================================= */

/* ---------------------------------------------------------------------------
   1. TOKENS
   --------------------------------------------------------------------------- */
:root {
    color-scheme: light;

    /* Brand */
    --panda-primary: #f04e1b;
    --panda-primary-hover: #d84212;
    --panda-primary-active: #c0390d;
    --panda-primary-soft: #fff1ea;
    --panda-primary-soft-strong: #ffd9c8;
    --panda-primary-contrast: #ffffff;
    --panda-primary-ring: rgba(240, 78, 27, .18);

    /* Neutral surfaces & text */
    --panda-bg: #f6f7f8;
    --panda-surface: #ffffff;
    --panda-surface-2: #f8f9fa;
    --panda-surface-3: #eff1f3;
    --panda-surface-4: #e6e9ec;
    --panda-border: #e4e7eb;
    --panda-border-strong: #cdd3d9;
    --panda-text: #111827;
    --panda-text-soft: #4b5563;
    --panda-text-muted: #7b8794;
    --panda-text-inverse: #ffffff;

    /* Semantic tones: base, hover, soft background, on-soft text */
    --panda-success: #15803d;
    --panda-success-hover: #166534;
    --panda-success-soft: #e8f7ee;
    --panda-success-text: #14652f;
    --panda-warning: #c2660a;
    --panda-warning-hover: #a05408;
    --panda-warning-soft: #fff4e5;
    --panda-warning-text: #935006;
    --panda-danger: #d63a42;
    --panda-danger-hover: #b92e35;
    --panda-danger-soft: #fdecec;
    --panda-danger-text: #ad2d33;
    --panda-info: #2f6fd6;
    --panda-info-hover: #245bb5;
    --panda-info-soft: #eaf1fd;
    --panda-info-text: #2a5bb0;
    --panda-violet: #6d56c8;
    --panda-violet-soft: #efecfb;

    /* Radii */
    --panda-radius-xs: 5px;
    --panda-radius-sm: 8px;
    --panda-radius-md: 10px;
    --panda-radius-lg: 14px;
    --panda-radius-xl: 20px;
    --panda-radius-pill: 999px;

    /* Elevation */
    --panda-shadow-xs: 0 1px 2px rgba(17, 24, 39, .05);
    --panda-shadow-sm: 0 1px 2px rgba(17, 24, 39, .06), 0 1px 3px rgba(17, 24, 39, .04);
    --panda-shadow-md: 0 8px 24px rgba(17, 24, 39, .08), 0 2px 6px rgba(17, 24, 39, .05);
    --panda-shadow-lg: 0 24px 60px rgba(17, 24, 39, .14), 0 6px 16px rgba(17, 24, 39, .06);
    --panda-ring: 0 0 0 4px var(--panda-primary-ring);

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

    /* Typography */
    --panda-font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
    --panda-font-mono: "JetBrains Mono", "Cascadia Code", Consolas, monospace;
    --panda-font-2xs: 10px;
    --panda-font-xs: 11px;
    --panda-font-sm: 12.5px;
    --panda-font-md: 14px;
    --panda-font-lg: 16px;
    --panda-font-xl: 20px;
    --panda-font-2xl: 26px;
    --panda-font-3xl: 32px;
    --panda-weight-regular: 400;
    --panda-weight-medium: 500;
    --panda-weight-semibold: 600;
    --panda-weight-bold: 700;
    --panda-leading-tight: 1.2;
    --panda-leading-normal: 1.5;
    --panda-tracking-tight: -.02em;
    --panda-tracking-caps: .1em;

    /* Controls */
    --panda-control-height: 40px;
    --panda-control-height-sm: 32px;
    --panda-control-height-lg: 48px;

    /* Motion */
    --panda-duration-fast: 120ms;
    --panda-duration-normal: 200ms;
    --panda-duration-slow: 320ms;
    --panda-ease: cubic-bezier(.2, .8, .2, 1);

    /* Layout */
    --panda-sidebar: 256px;
    --panda-topbar: 68px;
    --panda-content-max: 1440px;

    /* Z-index scale */
    --panda-z-sticky: 15;
    --panda-z-sidebar: 20;
    --panda-z-menu: 40;
    --panda-z-tooltip: 50;
    --panda-z-overlay: 100;
    --panda-z-toast: 120;
}

[data-theme=dark] {
    color-scheme: dark;

    --panda-primary: #ff6b3d;
    --panda-primary-hover: #ff7f57;
    --panda-primary-active: #ff9370;
    --panda-primary-soft: #3a2118;
    --panda-primary-soft-strong: #56301f;
    --panda-primary-ring: rgba(255, 107, 61, .28);

    --panda-bg: #0e1116;
    --panda-surface: #151a21;
    --panda-surface-2: #1b2129;
    --panda-surface-3: #232a34;
    --panda-surface-4: #2c3440;
    --panda-border: #262d37;
    --panda-border-strong: #3a4350;
    --panda-text: #f1f4f8;
    --panda-text-soft: #b6bec9;
    --panda-text-muted: #8590a0;
    --panda-text-inverse: #111827;

    --panda-success: #34c26b;
    --panda-success-hover: #4bd07f;
    --panda-success-soft: #14301f;
    --panda-success-text: #7ee2a3;
    --panda-warning: #f0a33a;
    --panda-warning-hover: #f5b45a;
    --panda-warning-soft: #33250f;
    --panda-warning-text: #f5c57a;
    --panda-danger: #f26b72;
    --panda-danger-hover: #f5858b;
    --panda-danger-soft: #3b1c1f;
    --panda-danger-text: #f7a0a5;
    --panda-info: #6aa2f5;
    --panda-info-hover: #86b5f8;
    --panda-info-soft: #1a2940;
    --panda-info-text: #9ec1f7;
    --panda-violet: #9b86e8;
    --panda-violet-soft: #241f3a;

    --panda-shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);
    --panda-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .25);
    --panda-shadow-md: 0 8px 24px rgba(0, 0, 0, .4), 0 2px 6px rgba(0, 0, 0, .3);
    --panda-shadow-lg: 0 24px 60px rgba(0, 0, 0, .55), 0 6px 16px rgba(0, 0, 0, .35);
}

/* ---------------------------------------------------------------------------
   2. BASE & TYPOGRAPHY
   --------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--panda-topbar) + 16px); }

body {
    margin: 0;
    background: var(--panda-bg);
    color: var(--panda-text);
    font-family: var(--panda-font-family);
    font-size: var(--panda-font-md);
    line-height: var(--panda-leading-normal);
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
/* No double-tap zoom on controls (mobile); pinch zoom stays available. */
button, a, label, .panda-icon-button, .panda-nav__item { touch-action: manipulation; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
hr { border: 0; border-top: 1px solid var(--panda-border); margin: var(--panda-space-4) 0; }

h1, h2, h3, h4, p { margin-top: 0; }
h1 {
    font-size: clamp(1.6rem, 2.4vw, 2rem);
    font-weight: var(--panda-weight-bold);
    letter-spacing: var(--panda-tracking-tight);
    line-height: var(--panda-leading-tight);
    margin-bottom: var(--panda-space-2);
}
h2 { font-size: var(--panda-font-lg); font-weight: var(--panda-weight-semibold); letter-spacing: -.01em; margin-bottom: var(--panda-space-1); }
h3 { font-size: var(--panda-font-md); font-weight: var(--panda-weight-semibold); margin-bottom: var(--panda-space-1); }
small { color: var(--panda-text-muted); font-size: var(--panda-font-sm); }
strong { font-weight: var(--panda-weight-semibold); }
kbd {
    padding: 2px 6px;
    border: 1px solid var(--panda-border);
    border-bottom-width: 2px;
    border-radius: var(--panda-radius-xs);
    background: var(--panda-surface);
    color: var(--panda-text-muted);
    font: var(--panda-font-2xs) var(--panda-font-mono);
}

:focus-visible { outline: 3px solid var(--panda-primary-ring); outline-offset: 2px; }
h1[tabindex="-1"]:focus { outline: none; }
/* Focused/anchored headings never hide behind the sticky top bar */
h1, h2, [id] { scroll-margin-top: calc(var(--panda-topbar) + 16px); }
::selection { background: var(--panda-primary-soft-strong); color: var(--panda-text); }

.panda-eyebrow {
    display: block;
    color: var(--panda-text-muted);
    font-size: var(--panda-font-2xs);
    font-weight: var(--panda-weight-bold);
    letter-spacing: var(--panda-tracking-caps);
    text-transform: uppercase;
}

.panda-sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------------------------------------------------------------------------
   3. BUTTONS
   --------------------------------------------------------------------------- */
.panda-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--panda-space-2);
    min-height: var(--panda-control-height);
    padding: 0 var(--panda-space-4);
    border: 1px solid transparent;
    border-radius: var(--panda-radius-md);
    font-size: var(--panda-font-md);
    font-weight: var(--panda-weight-semibold);
    line-height: 1;
    white-space: nowrap;
    user-select: none;
    transition: background var(--panda-duration-fast), border-color var(--panda-duration-fast),
                color var(--panda-duration-fast), box-shadow var(--panda-duration-fast), transform var(--panda-duration-fast);
}
.panda-button:active:not(:disabled) { transform: translateY(1px); }
.panda-button:disabled { opacity: .5; cursor: not-allowed; }
.panda-button .panda-icon { width: 16px; height: 16px; flex-basis: 16px; }

.panda-button--primary { background: var(--panda-primary); color: var(--panda-primary-contrast); box-shadow: var(--panda-shadow-xs); }
.panda-button--primary:hover:not(:disabled) { background: var(--panda-primary-hover); box-shadow: 0 6px 16px var(--panda-primary-ring); }
.panda-button--primary:active:not(:disabled) { background: var(--panda-primary-active); }

.panda-button--secondary { background: var(--panda-surface); border-color: var(--panda-border-strong); color: var(--panda-text); box-shadow: var(--panda-shadow-xs); }
.panda-button--secondary:hover:not(:disabled) { background: var(--panda-surface-2); border-color: var(--panda-text-muted); }

.panda-button--outline { background: transparent; border-color: var(--panda-primary); color: var(--panda-primary); }
.panda-button--outline:hover:not(:disabled) { background: var(--panda-primary-soft); }

.panda-button--ghost { background: transparent; color: var(--panda-text-soft); }
.panda-button--ghost:hover:not(:disabled) { background: var(--panda-surface-3); color: var(--panda-text); }

.panda-button--danger { background: var(--panda-danger); color: #fff; }
.panda-button--danger:hover:not(:disabled) { background: var(--panda-danger-hover); }

.panda-button--success { background: var(--panda-success); color: #fff; }
.panda-button--success:hover:not(:disabled) { background: var(--panda-success-hover); }

.panda-button--link { min-height: auto; padding: 0; background: transparent; color: var(--panda-primary); border-radius: var(--panda-radius-xs); }
.panda-button--link:hover:not(:disabled) { color: var(--panda-primary-hover); text-decoration: underline; }

.panda-button--small { min-height: var(--panda-control-height-sm); padding: 0 var(--panda-space-3); font-size: var(--panda-font-sm); border-radius: var(--panda-radius-sm); }
.panda-button--medium { min-height: var(--panda-control-height); }
.panda-button--large { min-height: var(--panda-control-height-lg); padding: 0 var(--panda-space-6); font-size: var(--panda-font-lg); border-radius: var(--panda-radius-lg); }
.panda-button--block { width: 100%; }

.panda-icon-button {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--panda-border);
    border-radius: var(--panda-radius-md);
    background: var(--panda-surface);
    color: var(--panda-text-soft);
    line-height: 1;
    transition: background var(--panda-duration-fast), color var(--panda-duration-fast), border-color var(--panda-duration-fast);
}
.panda-icon-button:hover { background: var(--panda-surface-2); color: var(--panda-text); border-color: var(--panda-border-strong); }
.panda-icon-button .panda-icon { width: 17px; height: 17px; }

.panda-spinner {
    width: 14px; height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: panda-spin .7s linear infinite;
}
.panda-spinner--small { width: 12px; height: 12px; }
.panda-spinner--large { width: 26px; height: 26px; border-width: 3px; }

/* ---------------------------------------------------------------------------
   4. FORMS
   --------------------------------------------------------------------------- */
.panda-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--panda-space-5); }
.panda-stack { display: grid; gap: var(--panda-space-3); }

.panda-field { display: flex; flex-direction: column; gap: 6px; }
.panda-field > span { font-size: var(--panda-font-sm); font-weight: var(--panda-weight-semibold); color: var(--panda-text-soft); }
.panda-field b { color: var(--panda-danger); font-weight: var(--panda-weight-semibold); }
.panda-field > small { font-size: var(--panda-font-sm); color: var(--panda-text-muted); }
.panda-field--error > small { color: var(--panda-danger); }

.panda-input {
    width: 100%;
    min-height: var(--panda-control-height);
    padding: 0 var(--panda-space-3);
    border: 1px solid var(--panda-border-strong);
    border-radius: var(--panda-radius-md);
    background: var(--panda-surface);
    color: var(--panda-text);
    outline: none;
    transition: border-color var(--panda-duration-fast), box-shadow var(--panda-duration-fast), background var(--panda-duration-fast);
}
.panda-input::placeholder { color: var(--panda-text-muted); }
.panda-input:hover:not(:disabled) { border-color: var(--panda-text-muted); }
.panda-input:focus { border-color: var(--panda-primary); box-shadow: var(--panda-ring); }
.panda-input:disabled { background: var(--panda-surface-3); color: var(--panda-text-muted); cursor: not-allowed; }
.panda-input:read-only:not(select) { background: var(--panda-surface-2); }
textarea.panda-input { min-height: auto; padding: var(--panda-space-3); line-height: var(--panda-leading-normal); resize: vertical; }
select.panda-input {
    padding-right: 36px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b8794' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m6 9 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px;
}
.panda-field--error .panda-input, .panda-field--error .panda-control { border-color: var(--panda-danger); }
.panda-field--error .panda-input:focus, .panda-field--error .panda-control:focus-within { box-shadow: 0 0 0 4px color-mix(in srgb, var(--panda-danger) 18%, transparent); }
.panda-field--success .panda-input, .panda-field--success .panda-control { border-color: var(--panda-success); }

/* Composite control: [affix] input [affix|button] */
.panda-control {
    display: flex;
    align-items: center;
    min-height: var(--panda-control-height);
    border: 1px solid var(--panda-border-strong);
    border-radius: var(--panda-radius-md);
    background: var(--panda-surface);
    transition: border-color var(--panda-duration-fast), box-shadow var(--panda-duration-fast);
}
.panda-control:hover { border-color: var(--panda-text-muted); }
.panda-control:focus-within { border-color: var(--panda-primary); box-shadow: var(--panda-ring); }
.panda-control--disabled { background: var(--panda-surface-3); }
.panda-control .panda-input { min-height: calc(var(--panda-control-height) - 2px); border: 0; box-shadow: none; background: transparent; }
.panda-control .panda-input:focus { box-shadow: none; }
.panda-control__affix {
    display: inline-flex; align-items: center; justify-content: center;
    align-self: stretch;
    padding: 0 var(--panda-space-3);
    color: var(--panda-text-muted);
    font-size: var(--panda-font-sm);
    white-space: nowrap;
}
.panda-control__affix:first-child { border-right: 1px solid var(--panda-border); }
.panda-control__affix:last-child { border-left: 1px solid var(--panda-border); }
.panda-control__button {
    display: inline-grid; place-items: center;
    align-self: stretch; width: 40px;
    border: 0; background: transparent; color: var(--panda-text-muted);
    border-radius: 0 var(--panda-radius-md) var(--panda-radius-md) 0;
    transition: color var(--panda-duration-fast), background var(--panda-duration-fast);
}
.panda-control__button:hover { color: var(--panda-primary); background: var(--panda-surface-2); }

/* Check / radio / switch */
.panda-check, .panda-radio, .panda-switch { display: flex; align-items: flex-start; gap: var(--panda-space-3); cursor: pointer; }
.panda-check input, .panda-radio input {
    flex: 0 0 auto;
    width: 18px; height: 18px; margin: 1px 0 0;
    accent-color: var(--panda-primary);
    cursor: pointer;
}
.panda-check > span, .panda-radio > span { display: block; min-width: 0; }
.panda-check strong, .panda-radio strong, .panda-switch strong { display: block; font-weight: var(--panda-weight-medium); line-height: 20px; }
.panda-check small, .panda-radio small, .panda-switch small { display: block; margin-top: 2px; color: var(--panda-text-muted); }

.panda-switch { align-items: center; }
.panda-switch > input { position: absolute; opacity: 0; width: 0; height: 0; }
.panda-switch > span {
    position: relative; flex: 0 0 auto;
    width: 42px; height: 24px;
    border-radius: var(--panda-radius-pill);
    background: var(--panda-surface-4);
    transition: background var(--panda-duration-normal);
}
.panda-switch > span::after {
    content: ""; position: absolute; top: 3px; left: 3px;
    width: 18px; height: 18px; border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
    transition: transform var(--panda-duration-normal) var(--panda-ease);
}
.panda-switch input:checked + span { background: var(--panda-primary); }
.panda-switch input:checked + span::after { transform: translateX(18px); }
.panda-switch input:focus-visible + span { box-shadow: var(--panda-ring); }
.panda-switch input:disabled + span { opacity: .5; }

.panda-context-select {
    min-width: 150px;
    padding: 6px var(--panda-space-3);
    border: 1px solid var(--panda-border);
    border-radius: var(--panda-radius-md);
    background: var(--panda-surface-2);
}
.panda-context-select span { display: block; color: var(--panda-text-muted); font-size: var(--panda-font-2xs); text-transform: uppercase; letter-spacing: var(--panda-tracking-caps); }
.panda-context-select select { width: 100%; border: 0; outline: 0; background: transparent; color: var(--panda-text); font-weight: var(--panda-weight-semibold); }

/* ---------------------------------------------------------------------------
   5. LAYOUT HELPERS
   --------------------------------------------------------------------------- */
.panda-page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--panda-space-6); margin-bottom: var(--panda-space-7); }
.panda-page-heading p { margin: 0; color: var(--panda-text-soft); font-size: var(--panda-font-md); }
.panda-action-row, .panda-preview__row, .panda-avatar-row { display: flex; align-items: center; gap: var(--panda-space-3); flex-wrap: wrap; }
.panda-grid { display: grid; gap: var(--panda-space-5); }
.panda-grid--two { grid-template-columns: 1.35fr 1fr; }
.panda-grid--three { grid-template-columns: repeat(3, 1fr); }
.panda-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--panda-space-4); margin-bottom: var(--panda-space-6); }

.panda-divider {
    display: flex; align-items: center; gap: var(--panda-space-3);
    margin: var(--panda-space-4) 0; border: 0;
    color: var(--panda-text-muted);
    font-size: var(--panda-font-2xs); font-weight: var(--panda-weight-bold); letter-spacing: var(--panda-tracking-caps); text-transform: uppercase;
}
.panda-divider::before, .panda-divider::after { content: ""; flex: 1; height: 1px; background: var(--panda-border); }
.panda-divider--plain { display: block; height: 1px; background: var(--panda-border); }
.panda-divider--plain::before, .panda-divider--plain::after, .panda-divider--vertical::before, .panda-divider--vertical::after { display: none; }
.panda-divider--vertical { display: block; align-self: stretch; width: 1px; min-height: 24px; margin: 0 var(--panda-space-3); background: var(--panda-border); }
.panda-divider--flush { margin: 0; }

/* ---------------------------------------------------------------------------
   6. NAVIGATION SHELL
   --------------------------------------------------------------------------- */
.panda-app-shell { min-height: 100vh; }

.panda-sidebar {
    position: fixed; inset: 0 auto 0 0;
    width: var(--panda-sidebar);
    display: flex; flex-direction: column;
    background: var(--panda-surface);
    border-right: 1px solid var(--panda-border);
    z-index: var(--panda-z-sidebar);
}
.panda-brand { height: var(--panda-topbar); padding: 0 var(--panda-space-5); display: flex; align-items: center; border-bottom: 1px solid var(--panda-border); }
.panda-brand__link { display: flex; flex-direction: column; gap: 3px; }
.panda-brand__logos { display: block; width: 140px; }
.panda-brand__logo { display: block; width: 140px; height: auto; }
.panda-brand__logo--dark { display: none; }
[data-theme=dark] .panda-brand__logo--light { display: none; }
[data-theme=dark] .panda-brand__logo--dark { display: block; }
.panda-brand small { padding-left: 2px; font-size: var(--panda-font-2xs); font-weight: var(--panda-weight-semibold); letter-spacing: .14em; text-transform: uppercase; color: var(--panda-text-muted); }

.panda-nav { flex: 1; padding: var(--panda-space-4) var(--panda-space-3); overflow: auto; overscroll-behavior: contain; }
.panda-nav__label {
    display: block; padding: var(--panda-space-4) var(--panda-space-3) 6px;
    color: var(--panda-text-muted);
    font-size: var(--panda-font-2xs); font-weight: var(--panda-weight-bold); letter-spacing: var(--panda-tracking-caps); text-transform: uppercase;
}
.panda-nav__item {
    display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; column-gap: var(--panda-space-3);
    min-height: 40px; padding: 0 var(--panda-space-3); margin: 2px 0;
    border-radius: var(--panda-radius-sm);
    color: var(--panda-text-soft);
    font-weight: var(--panda-weight-medium);
    transition: background var(--panda-duration-fast), color var(--panda-duration-fast);
}
.panda-nav__item > .panda-icon { justify-self: center; color: var(--panda-text-muted); transition: color var(--panda-duration-fast); }
.panda-nav__item > .panda-nav__text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.panda-nav__item:hover { background: var(--panda-surface-2); color: var(--panda-text); }
.panda-nav__item:hover > .panda-icon { color: var(--panda-text); }
.panda-nav__item.active { background: var(--panda-primary-soft); color: var(--panda-primary); font-weight: var(--panda-weight-semibold); }
.panda-nav__item.active > .panda-icon { color: var(--panda-primary); }
.panda-nav__item em {
    padding: 2px 7px; border-radius: var(--panda-radius-pill);
    background: var(--panda-primary); color: #fff;
    font-size: var(--panda-font-2xs); font-style: normal; font-weight: var(--panda-weight-bold); text-transform: uppercase; letter-spacing: .04em;
}
.panda-sidebar__footer { padding: var(--panda-space-3); border-top: 1px solid var(--panda-border); }
.panda-sidebar__footer .panda-nav__item { margin-bottom: 2px; }
.panda-user-card { display: flex; align-items: center; gap: var(--panda-space-3); margin-top: var(--panda-space-2); padding: var(--panda-space-3); border-radius: var(--panda-radius-md); background: var(--panda-surface-2); }
.panda-user-card > div { flex: 1; min-width: 0; }
.panda-user-card strong, .panda-user-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.panda-user-card small { font-size: var(--panda-font-xs); }
.panda-sidebar__close { display: none; position: absolute; right: 10px; top: 14px; z-index: 2; }
.panda-mobile-overlay, .panda-mobile-menu, .panda-drawer-toggle { display: none; }

.panda-main { min-height: 100vh; margin-left: var(--panda-sidebar); }
.panda-topbar {
    position: sticky; top: 0; z-index: var(--panda-z-sticky);
    height: var(--panda-topbar);
    padding: 0 clamp(18px, 3vw, 40px);
    display: flex; align-items: center; justify-content: space-between; gap: var(--panda-space-4);
    background: color-mix(in srgb, var(--panda-surface) 86%, transparent);
    border-bottom: 1px solid var(--panda-border);
    backdrop-filter: blur(16px);
}
.panda-topbar__context, .panda-topbar__actions { display: flex; align-items: center; gap: var(--panda-space-3); }
.panda-topbar__context > div { display: flex; flex-direction: column; justify-content: center; min-height: 38px; }
.panda-topbar__context strong { line-height: 19px; }
.panda-content { max-width: var(--panda-content-max); margin: auto; padding: clamp(24px, 4vw, 44px); }

.panda-search-trigger {
    display: grid; grid-template-columns: 18px 1fr auto; align-items: center; gap: var(--panda-space-2);
    height: 38px; min-width: 240px; padding: 0 var(--panda-space-3);
    color: var(--panda-text-muted);
    background: var(--panda-surface-2);
    border: 1px solid var(--panda-border);
    border-radius: var(--panda-radius-md);
    text-align: left;
    transition: border-color var(--panda-duration-fast), background var(--panda-duration-fast);
}
.panda-search-trigger:hover { border-color: var(--panda-border-strong); background: var(--panda-surface); }
.panda-search-trigger .panda-icon { width: 15px; height: 15px; }
.panda-search-trigger kbd { margin-left: auto; }

.panda-notification-dot { position: absolute; right: 8px; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--panda-danger); box-shadow: 0 0 0 2px var(--panda-surface); }

.panda-app-switcher {
    display: flex; align-items: center; gap: var(--panda-space-2);
    min-width: 180px; padding: 6px var(--panda-space-3);
    border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md);
    background: var(--panda-surface); color: var(--panda-text); text-align: left;
}
.panda-app-switcher > div { flex: 1; }
.panda-app-switcher small, .panda-app-switcher strong { display: block; }
.panda-app-switcher small { font-size: var(--panda-font-2xs); text-transform: uppercase; letter-spacing: var(--panda-tracking-caps); }

/* ---------------------------------------------------------------------------
   7. DATA DISPLAY
   --------------------------------------------------------------------------- */
.panda-avatar {
    position: relative;
    display: inline-grid; place-items: center; flex: 0 0 auto;
    width: 36px; height: 36px;
    border-radius: var(--panda-radius-md);
    background: var(--panda-primary-soft); color: var(--panda-primary);
    font-weight: var(--panda-weight-bold); font-size: var(--panda-font-sm);
}
.panda-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.panda-avatar--violet { background: var(--panda-violet-soft); color: var(--panda-violet); }
.panda-avatar--orange { background: var(--panda-warning-soft); color: var(--panda-warning-text); }
.panda-avatar--small { width: 28px; height: 28px; font-size: var(--panda-font-2xs); border-radius: var(--panda-radius-sm); }
.panda-avatar--large { width: 48px; height: 48px; font-size: var(--panda-font-lg); border-radius: var(--panda-radius-lg); }
.panda-avatar--button { border: 0; cursor: pointer; transition: box-shadow var(--panda-duration-fast); }
.panda-avatar--button:hover { box-shadow: var(--panda-ring); }
.panda-avatar__status { position: absolute; right: -2px; bottom: -2px; width: 10px; height: 10px; border-radius: 50%; background: var(--panda-success); border: 2px solid var(--panda-surface); }
.panda-avatar__status--away { background: var(--panda-warning); }
.panda-avatar__status--offline { background: var(--panda-text-muted); }

.panda-card, .panda-stat-card {
    background: var(--panda-surface);
    border: 1px solid var(--panda-border);
    border-radius: var(--panda-radius-lg);
    box-shadow: var(--panda-shadow-sm);
}
.panda-card { padding: var(--panda-space-5); }
.panda-card__header { display: flex; align-items: center; justify-content: space-between; gap: var(--panda-space-4); }
.panda-card__body:not(:first-child) { padding-top: var(--panda-space-4); }
.panda-card__footer { margin: var(--panda-space-4) calc(-1 * var(--panda-space-5)) calc(-1 * var(--panda-space-5)); padding: var(--panda-space-4) var(--panda-space-5); border-top: 1px solid var(--panda-border); background: var(--panda-surface-2); border-radius: 0 0 var(--panda-radius-lg) var(--panda-radius-lg); }
.panda-card--flat { box-shadow: none; background: var(--panda-surface-2); }
.panda-card--interactive { transition: border-color var(--panda-duration-fast), box-shadow var(--panda-duration-fast), transform var(--panda-duration-fast); cursor: pointer; }
.panda-card--interactive:hover { border-color: var(--panda-border-strong); transform: translateY(-2px); box-shadow: var(--panda-shadow-md); }

.panda-stat-card { padding: var(--panda-space-5); }
.panda-stat-card__top, .panda-stat-card__meta { display: flex; align-items: center; justify-content: space-between; color: var(--panda-text-soft); font-size: var(--panda-font-sm); }
.panda-stat-card__icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: var(--panda-radius-sm); background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-stat-card--success .panda-stat-card__icon { background: var(--panda-success-soft); color: var(--panda-success); }
.panda-stat-card--info .panda-stat-card__icon { background: var(--panda-info-soft); color: var(--panda-info); }
.panda-stat-card--warning .panda-stat-card__icon { background: var(--panda-warning-soft); color: var(--panda-warning); }
.panda-stat-card > strong { display: block; margin: var(--panda-space-4) 0 var(--panda-space-2); font-size: var(--panda-font-2xl); font-weight: var(--panda-weight-bold); letter-spacing: var(--panda-tracking-tight); font-variant-numeric: tabular-nums; }
.panda-stat-card__meta span { padding: 2px 7px; border-radius: var(--panda-radius-pill); background: var(--panda-success-soft); color: var(--panda-success-text); font-weight: var(--panda-weight-semibold); font-size: var(--panda-font-xs); }

.panda-badge {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 9px;
    border-radius: var(--panda-radius-pill);
    background: var(--panda-surface-3); color: var(--panda-text-soft);
    font-size: var(--panda-font-xs); font-weight: var(--panda-weight-semibold); line-height: 1.4; white-space: nowrap;
}
.panda-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.panda-badge--brand { background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-badge--success { background: var(--panda-success-soft); color: var(--panda-success-text); }
.panda-badge--warning { background: var(--panda-warning-soft); color: var(--panda-warning-text); }
.panda-badge--danger { background: var(--panda-danger-soft); color: var(--panda-danger-text); }
.panda-badge--info { background: var(--panda-info-soft); color: var(--panda-info-text); }

.panda-chip {
    display: inline-flex; align-items: center; gap: 6px;
    min-height: 28px; padding: 0 var(--panda-space-3);
    border: 1px solid transparent; border-radius: var(--panda-radius-pill);
    background: var(--panda-surface-3); color: var(--panda-text-soft);
    font-size: var(--panda-font-sm); font-weight: var(--panda-weight-medium); line-height: 1; white-space: nowrap;
    transition: background var(--panda-duration-fast), border-color var(--panda-duration-fast), color var(--panda-duration-fast);
}
.panda-chip .panda-icon { width: 13px; height: 13px; flex-basis: 13px; }
.panda-chip--outline { background: transparent; border-color: var(--panda-border-strong); color: var(--panda-text); }
.panda-chip--brand { background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-chip--success { background: var(--panda-success-soft); color: var(--panda-success-text); }
.panda-chip--warning { background: var(--panda-warning-soft); color: var(--panda-warning-text); }
.panda-chip--danger { background: var(--panda-danger-soft); color: var(--panda-danger-text); }
.panda-chip--info { background: var(--panda-info-soft); color: var(--panda-info-text); }
.panda-chip--interactive { cursor: pointer; }
.panda-chip--interactive:hover { border-color: var(--panda-border-strong); color: var(--panda-text); }
.panda-chip--selected, .panda-chip--selected:hover { background: var(--panda-primary); border-color: var(--panda-primary); color: #fff; }
.panda-chip__remove { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: -4px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; opacity: .65; transition: opacity var(--panda-duration-fast), background var(--panda-duration-fast); }
.panda-chip__remove:hover { opacity: 1; background: color-mix(in srgb, currentColor 14%, transparent); }
.panda-chip__remove .panda-icon { width: 11px; height: 11px; flex-basis: 11px; }

.panda-status { display: inline-block; flex: 0 0 8px; width: 8px; height: 8px; margin-right: 9px; border-radius: 50%; background: var(--panda-text-muted); }
.panda-status--success { background: var(--panda-success); }
.panda-status--warning { background: var(--panda-warning); }
.panda-status--danger { background: var(--panda-danger); }

.panda-health-list { margin-top: var(--panda-space-4); }
.panda-health-list > div, .panda-detail-list > div { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: var(--panda-space-3) 0; border-bottom: 1px solid var(--panda-border); }
.panda-health-list > div > span { display: flex; align-items: center; }
.panda-detail-list { margin: var(--panda-space-2) 0; }
.panda-detail-list dd { margin: 0; }
.panda-profile { display: flex; align-items: center; gap: var(--panda-space-3); }
.panda-profile h3, .panda-profile p { margin: 0; }
.panda-person { display: flex; align-items: center; gap: var(--panda-space-3); }
.panda-person strong, .panda-person small { display: block; }

.panda-chart-placeholder {
    height: 220px; margin-top: var(--panda-space-5); padding-top: var(--panda-space-4);
    display: flex; align-items: end; gap: var(--panda-space-3);
    border-bottom: 1px solid var(--panda-border);
    background: repeating-linear-gradient(to bottom, var(--panda-border) 0, var(--panda-border) 1px, transparent 1px, transparent 54px);
}
.panda-chart-placeholder span { flex: 1; min-width: 12px; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, var(--panda-primary), color-mix(in srgb, var(--panda-primary) 35%, var(--panda-surface))); }

/* Tables */
.panda-data-table { overflow: hidden; background: var(--panda-surface); border: 1px solid var(--panda-border); border-radius: var(--panda-radius-lg); box-shadow: var(--panda-shadow-sm); }
.panda-table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--panda-space-4); padding: var(--panda-space-4) var(--panda-space-5); border-bottom: 1px solid var(--panda-border); }
.panda-table-toolbar strong, .panda-table-toolbar small { display: block; }
.panda-table-toolbar .panda-input { width: 240px; }
.panda-table-actions { display: flex; gap: var(--panda-space-2); }
.panda-table-scroll { overflow: auto; }
/* A row menu (details.panda-dropdown) must not be clipped by the scroll container or the card. */
.panda-table-scroll:has(details[open]), .panda-data-table:has(details[open]) { overflow: visible; }
.panda-table td .panda-dropdown > div { min-width: 200px; }
.panda-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.panda-table th {
    position: sticky; top: 0;
    padding: 10px var(--panda-space-5);
    background: var(--panda-surface-2);
    color: var(--panda-text-muted);
    font-size: var(--panda-font-2xs); font-weight: var(--panda-weight-bold); letter-spacing: .08em; text-transform: uppercase; text-align: left;
    border-bottom: 1px solid var(--panda-border);
}
.panda-table td { padding: var(--panda-space-3) var(--panda-space-5); border-top: 1px solid var(--panda-border); vertical-align: middle; }
.panda-table tbody tr:first-child td { border-top: 0; }
.panda-table tbody tr { transition: background var(--panda-duration-fast); }
.panda-table tbody tr:hover { background: var(--panda-surface-2); }
.panda-table td.numeric, .panda-table th.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.panda-table-loading { padding: var(--panda-space-5); }
.panda-data-table__footer { display: flex; justify-content: flex-end; padding: var(--panda-space-3) var(--panda-space-5); border-top: 1px solid var(--panda-border); background: var(--panda-surface-2); }

.panda-pagination { display: flex; align-items: center; gap: var(--panda-space-3); }
.panda-pagination button { width: 32px; height: 32px; border: 1px solid var(--panda-border); border-radius: var(--panda-radius-sm); background: var(--panda-surface); color: var(--panda-text); transition: background var(--panda-duration-fast), border-color var(--panda-duration-fast); }
.panda-pagination button:hover:not(:disabled) { border-color: var(--panda-border-strong); background: var(--panda-surface-2); }
.panda-pagination button:disabled { opacity: .4; cursor: not-allowed; }
.panda-pagination span { color: var(--panda-text-muted); font-size: var(--panda-font-sm); }

/* ---------------------------------------------------------------------------
   8. OVERLAYS
   --------------------------------------------------------------------------- */
.panda-overlay {
    position: fixed; inset: 0; z-index: var(--panda-z-overlay);
    display: flex; align-items: center; justify-content: center;
    padding: var(--panda-space-5);
    background: rgba(8, 12, 18, .6);
    backdrop-filter: blur(6px);
    animation: panda-fade var(--panda-duration-normal);
}
.panda-modal, .panda-drawer { background: var(--panda-surface); border: 1px solid var(--panda-border); box-shadow: var(--panda-shadow-lg); }
.panda-modal { width: min(520px, 100%); max-height: calc(100vh - 40px); display: flex; flex-direction: column; border-radius: var(--panda-radius-xl); animation: panda-pop var(--panda-duration-normal) var(--panda-ease); }
.panda-modal--small { width: min(420px, 100%); }
.panda-modal--large { width: min(760px, 100%); }
.panda-modal--extra-large { width: min(1040px, 100%); }
.panda-modal--fullscreen { width: calc(100% - 32px); height: calc(100% - 32px); max-height: none; }
.panda-modal header, .panda-drawer header { display: flex; align-items: center; justify-content: space-between; gap: var(--panda-space-4); padding: var(--panda-space-5) var(--panda-space-6); border-bottom: 1px solid var(--panda-border); }
.panda-modal header h2, .panda-drawer header h2 { margin: 2px 0 0; font-size: var(--panda-font-xl); }
.panda-modal__body, .panda-drawer__body { display: grid; gap: var(--panda-space-4); padding: var(--panda-space-6); overflow: auto; }
.panda-modal footer, .panda-drawer footer { display: flex; justify-content: flex-end; gap: var(--panda-space-2); padding: var(--panda-space-4) var(--panda-space-6); border-top: 1px solid var(--panda-border); background: var(--panda-surface-2); }
.panda-modal footer { border-radius: 0 0 var(--panda-radius-xl) var(--panda-radius-xl); }

.panda-confirm { display: flex; gap: var(--panda-space-4); align-items: flex-start; }
.panda-confirm > span { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border-radius: var(--panda-radius-md); background: var(--panda-danger-soft); color: var(--panda-danger); font-weight: var(--panda-weight-bold); }
.panda-confirm--warning > span { background: var(--panda-warning-soft); color: var(--panda-warning); }
.panda-confirm--info > span { background: var(--panda-info-soft); color: var(--panda-info); }
.panda-confirm p { margin: 6px 0 0; color: var(--panda-text-soft); }

.panda-drawer { position: absolute; inset: 0 0 0 auto; width: min(440px, 100%); display: flex; flex-direction: column; border-radius: 0; animation: panda-slide var(--panda-duration-slow) var(--panda-ease); }
.panda-drawer__body { flex: 1; }
.panda-drawer--left { inset: 0 auto 0 0; animation-name: panda-slide-left; }

.panda-overlay--sheet { align-items: flex-end; padding: 0; }
.panda-bottom-sheet { width: min(640px, 100%); max-height: 85vh; display: flex; flex-direction: column; background: var(--panda-surface); border-radius: var(--panda-radius-xl) var(--panda-radius-xl) 0 0; box-shadow: var(--panda-shadow-lg); animation: panda-sheet var(--panda-duration-slow) var(--panda-ease); }
.panda-bottom-sheet__handle { display: block; width: 40px; height: 4px; margin: 10px auto; border-radius: var(--panda-radius-pill); background: var(--panda-border-strong); }
.panda-bottom-sheet header { display: flex; align-items: center; justify-content: space-between; padding: var(--panda-space-3) var(--panda-space-5); border-bottom: 1px solid var(--panda-border); }
.panda-bottom-sheet header h2 { margin: 0; }
.panda-bottom-sheet__body { padding: var(--panda-space-5); overflow: auto; }

.panda-menu-wrap, .panda-popover-wrap, .panda-dropdown { position: relative; display: inline-flex; }
.panda-dropdown summary { list-style: none; cursor: pointer; }
.panda-dropdown summary::-webkit-details-marker { display: none; }
.panda-dropdown summary.panda-avatar { display: inline-grid; }
.panda-menu-backdrop { position: fixed; inset: 0; z-index: calc(var(--panda-z-menu) - 1); border: 0; background: transparent; cursor: default; }
.panda-menu, .panda-popover, .panda-dropdown > div {
    position: absolute; right: 0; top: calc(100% + 8px); z-index: var(--panda-z-menu);
    width: 220px; padding: 6px;
    background: var(--panda-surface); border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md);
    box-shadow: var(--panda-shadow-md);
    animation: panda-pop var(--panda-duration-fast) var(--panda-ease);
}
.panda-menu a, .panda-menu button, .panda-dropdown > div button, .panda-dropdown > div a {
    display: flex; align-items: center; gap: var(--panda-space-2);
    width: 100%; padding: 9px 10px;
    border: 0; border-radius: var(--panda-radius-sm);
    background: transparent; color: var(--panda-text); text-align: left;
    transition: background var(--panda-duration-fast);
}
.panda-menu a:hover, .panda-menu button:hover, .panda-dropdown > div button:hover, .panda-dropdown > div a:hover { background: var(--panda-surface-3); }
.panda-menu a.active { background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-menu a > div { flex: 1; }
.panda-menu a strong, .panda-menu a small { display: block; }
.panda-menu .danger, .panda-dropdown .danger { color: var(--panda-danger); }
.panda-menu hr, .panda-dropdown hr { margin: 6px 0; }
.panda-popover { width: 320px; padding: 0; }
.panda-popover--notifications { width: min(390px, calc(100vw - 24px)); }

.panda-tooltip { position: relative; display: inline-flex; }
.panda-tooltip > [role=tooltip] {
    position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: var(--panda-z-tooltip);
    padding: 6px 9px;
    transform: translateX(-50%) translateY(4px); opacity: 0; pointer-events: none;
    white-space: nowrap; border-radius: var(--panda-radius-sm);
    background: var(--panda-text); color: var(--panda-text-inverse);
    font-size: var(--panda-font-xs); font-weight: var(--panda-weight-medium);
    box-shadow: var(--panda-shadow-md);
    transition: opacity var(--panda-duration-fast), transform var(--panda-duration-fast);
}
.panda-tooltip:hover > [role=tooltip], .panda-tooltip:focus-within > [role=tooltip] { opacity: 1; transform: translateX(-50%); }

.panda-toast-host { position: fixed; right: var(--panda-space-5); bottom: var(--panda-space-5); z-index: var(--panda-z-toast); display: grid; gap: var(--panda-space-2); width: min(380px, calc(100% - 28px)); }
.panda-toast {
    display: flex; align-items: flex-start; gap: var(--panda-space-3);
    width: 100%; padding: var(--panda-space-4);
    background: var(--panda-surface); border: 1px solid var(--panda-border); border-left-width: 3px; border-radius: var(--panda-radius-md);
    box-shadow: var(--panda-shadow-lg);
    animation: panda-pop var(--panda-duration-normal) var(--panda-ease);
}
.panda-toast > div { flex: 1; min-width: 0; }
.panda-toast p { margin: 2px 0 0; color: var(--panda-text-soft); font-size: var(--panda-font-sm); }
.panda-toast > button { border: 0; background: transparent; color: var(--panda-text-muted); font-size: 18px; line-height: 1; padding: 0; }
.panda-toast > button:hover { color: var(--panda-text); }
.panda-toast__icon { display: grid; place-items: center; flex: 0 0 28px; height: 28px; border-radius: var(--panda-radius-sm); background: var(--panda-primary-soft); color: var(--panda-primary); font-weight: var(--panda-weight-bold); }
.panda-toast--success { border-left-color: var(--panda-success); }
.panda-toast--success .panda-toast__icon { background: var(--panda-success-soft); color: var(--panda-success); }
.panda-toast--error { border-left-color: var(--panda-danger); }
.panda-toast--error .panda-toast__icon { background: var(--panda-danger-soft); color: var(--panda-danger); }
.panda-toast--warning { border-left-color: var(--panda-warning); }
.panda-toast--warning .panda-toast__icon { background: var(--panda-warning-soft); color: var(--panda-warning); }
.panda-toast--info { border-left-color: var(--panda-info); }
.panda-toast--info .panda-toast__icon { background: var(--panda-info-soft); color: var(--panda-info); }

.panda-notifications header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--panda-space-3); align-items: center; padding: var(--panda-space-4); border-bottom: 1px solid var(--panda-border); }
.panda-notifications h3 { margin: 0; }
.panda-notifications header .panda-button { white-space: nowrap; }
.panda-notification {
    position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: start; column-gap: var(--panda-space-3);
    width: 100%; padding: var(--panda-space-3) var(--panda-space-4);
    border: 0; border-bottom: 1px solid var(--panda-border);
    background: var(--panda-surface); color: var(--panda-text); text-align: left;
    transition: background var(--panda-duration-fast);
}
.panda-notification:hover { background: var(--panda-surface-2); }
.panda-notification > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: var(--panda-radius-sm); background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-notification > span .panda-icon { width: 15px; height: 15px; }
.panda-notification > div { min-width: 0; }
.panda-notification strong { display: block; line-height: 19px; }
.panda-notification p { margin: 2px 0; color: var(--panda-text-soft); font-size: var(--panda-font-sm); line-height: 17px; }
.panda-notification small { display: block; margin-top: 4px; }
.panda-notification--unread::after { content: ""; position: absolute; right: 14px; top: 18px; width: 7px; height: 7px; border-radius: 50%; background: var(--panda-primary); }
.panda-notifications footer { padding: var(--panda-space-2); text-align: center; }

.panda-command-overlay { align-items: flex-start; padding-top: min(16vh, 150px); }
.panda-command { width: min(620px, 100%); overflow: hidden; background: var(--panda-surface); border: 1px solid var(--panda-border); border-radius: var(--panda-radius-xl); box-shadow: var(--panda-shadow-lg); animation: panda-pop var(--panda-duration-normal) var(--panda-ease); }
.panda-command__search { display: flex; align-items: center; gap: var(--panda-space-3); padding: var(--panda-space-4) var(--panda-space-5); border-bottom: 1px solid var(--panda-border); }
.panda-command__search input { flex: 1; border: 0; outline: 0; background: transparent; color: var(--panda-text); font-size: var(--panda-font-lg); }
.panda-command__results { max-height: 390px; overflow: auto; padding: var(--panda-space-2); }
.panda-command__results > a { display: flex; align-items: center; gap: var(--panda-space-3); padding: 10px var(--panda-space-3); border-radius: var(--panda-radius-sm); transition: background var(--panda-duration-fast); }
.panda-command__results > a:hover { background: var(--panda-primary-soft); }
.panda-command__results > a > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--panda-radius-sm); background: var(--panda-surface-3); }
.panda-command__results > a > div { flex: 1; }
.panda-command__results strong, .panda-command__results small { display: block; }

/* ---------------------------------------------------------------------------
   9. FEEDBACK
   --------------------------------------------------------------------------- */
.panda-alert {
    display: flex; align-items: flex-start; gap: var(--panda-space-3);
    padding: var(--panda-space-4);
    border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md);
    background: var(--panda-surface-2);
}
.panda-alert > span { display: grid; place-items: center; flex: 0 0 26px; height: 26px; border-radius: var(--panda-radius-sm); background: var(--panda-info-soft); color: var(--panda-info); font-weight: var(--panda-weight-bold); font-size: var(--panda-font-sm); }
.panda-alert > div { flex: 1; min-width: 0; }
.panda-alert strong { display: block; line-height: 20px; }
.panda-alert p { margin: 2px 0 0; color: var(--panda-text-soft); font-size: var(--panda-font-sm); line-height: 1.5; }
.panda-alert > button:not(.panda-button) { border: 0; background: transparent; color: var(--panda-text-muted); font-size: 18px; line-height: 1; padding: 0; }
.panda-alert__action { margin-left: auto; }
.panda-alert--success { border-color: color-mix(in srgb, var(--panda-success) 35%, var(--panda-border)); background: var(--panda-success-soft); }
.panda-alert--success > span { background: var(--panda-success); color: #fff; }
.panda-alert--warning { border-color: color-mix(in srgb, var(--panda-warning) 35%, var(--panda-border)); background: var(--panda-warning-soft); }
.panda-alert--warning > span { background: var(--panda-warning); color: #fff; }
.panda-alert--danger, .panda-alert--error { border-color: color-mix(in srgb, var(--panda-danger) 35%, var(--panda-border)); background: var(--panda-danger-soft); }
.panda-alert--danger > span, .panda-alert--error > span { background: var(--panda-danger); color: #fff; }
.panda-alert--info > span { background: var(--panda-info); color: #fff; }

.panda-empty { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: var(--panda-space-6); text-align: center; }
.panda-empty__icon, .panda-empty > span { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: var(--panda-space-2); border-radius: var(--panda-radius-lg); background: var(--panda-primary-soft); color: var(--panda-primary); font-size: 24px; }
.panda-empty strong { font-size: var(--panda-font-lg); }
.panda-empty p { margin: 0 0 var(--panda-space-3); color: var(--panda-text-muted); max-width: 360px; }

.panda-skeleton { display: block; height: 12px; margin: 6px 0; border-radius: var(--panda-radius-xs); background: linear-gradient(90deg, var(--panda-surface-3), var(--panda-surface-4), var(--panda-surface-3)); background-size: 200% 100%; animation: panda-shimmer 1.4s infinite; }
.panda-skeleton--short { width: 55%; }
.panda-skeleton--avatar { width: 42px; height: 42px; margin: 0; border-radius: var(--panda-radius-md); }
.panda-skeleton--block { height: 80px; border-radius: var(--panda-radius-md); }
.panda-skeleton-group { display: flex; gap: var(--panda-space-3); margin: var(--panda-space-6) 0 var(--panda-space-5); }
.panda-skeleton-group > div { flex: 1; }

.panda-progress { display: grid; gap: 7px; }
.panda-progress__meta { display: flex; justify-content: space-between; align-items: baseline; gap: var(--panda-space-3); font-size: var(--panda-font-sm); }
.panda-progress__meta strong { color: var(--panda-text); }
.panda-progress__meta span { color: var(--panda-text-muted); font-variant-numeric: tabular-nums; }
.panda-progress__track { position: relative; height: 8px; border-radius: var(--panda-radius-pill); background: var(--panda-surface-3); overflow: hidden; }
.panda-progress--small .panda-progress__track { height: 5px; }
.panda-progress--large .panda-progress__track { height: 12px; }
.panda-progress__bar { height: 100%; border-radius: inherit; background: var(--panda-primary); transition: width var(--panda-duration-slow) var(--panda-ease); }
.panda-progress--success .panda-progress__bar { background: var(--panda-success); }
.panda-progress--warning .panda-progress__bar { background: var(--panda-warning); }
.panda-progress--danger .panda-progress__bar { background: var(--panda-danger); }
.panda-progress--indeterminate .panda-progress__bar { position: absolute; left: -40%; width: 38%; animation: panda-progress-slide 1.2s cubic-bezier(.4, 0, .2, 1) infinite; }

/* ---------------------------------------------------------------------------
   10. COMPOSITE UI
   --------------------------------------------------------------------------- */
.panda-icon { display: block; width: 18px; height: 18px; flex: 0 0 18px; vertical-align: middle; }
.panda-icon--small { width: 15px; height: 15px; flex-basis: 15px; }
.panda-icon--large { width: 22px; height: 22px; flex-basis: 22px; }

.panda-tabs__list { display: flex; gap: 4px; padding: 4px; background: var(--panda-surface-3); border-radius: var(--panda-radius-md); overflow-x: auto; scrollbar-width: none; }
.panda-tabs__list::-webkit-scrollbar { display: none; }
.panda-tabs__tab {
    flex: 0 0 auto; display: inline-flex; align-items: center; gap: var(--panda-space-2);
    min-height: 34px; padding: 0 var(--panda-space-4);
    border: 0; border-radius: var(--panda-radius-sm);
    background: transparent; color: var(--panda-text-soft);
    font-size: var(--panda-font-sm); font-weight: var(--panda-weight-semibold); line-height: 1; white-space: nowrap;
    transition: background var(--panda-duration-fast), color var(--panda-duration-fast), box-shadow var(--panda-duration-fast);
}
.panda-tabs__tab:hover { color: var(--panda-text); }
.panda-tabs__tab[aria-selected=true] { background: var(--panda-surface); color: var(--panda-text); box-shadow: var(--panda-shadow-sm); }
.panda-tabs__tab:disabled { opacity: .45; cursor: not-allowed; }
.panda-tabs__tab .panda-icon { width: 16px; height: 16px; flex-basis: 16px; }
.panda-tabs__count { padding: 2px 7px; border-radius: var(--panda-radius-pill); background: var(--panda-surface-4); color: var(--panda-text-muted); font-size: var(--panda-font-2xs); font-weight: var(--panda-weight-bold); font-variant-numeric: tabular-nums; }
.panda-tabs__tab[aria-selected=true] .panda-tabs__count { background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-tabs__panel { padding-top: var(--panda-space-5); }
.panda-tabs__panel:focus { outline: none; }
.panda-tabs--underline .panda-tabs__list { gap: 0; padding: 0; background: transparent; border-radius: 0; border-bottom: 1px solid var(--panda-border); }
.panda-tabs--underline .panda-tabs__tab { position: relative; min-height: 44px; padding: 0 4px; margin-right: var(--panda-space-6); border-radius: 0; }
.panda-tabs--underline .panda-tabs__tab[aria-selected=true] { background: transparent; box-shadow: none; color: var(--panda-primary); }
.panda-tabs--underline .panda-tabs__tab[aria-selected=true]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px 2px 0 0; background: var(--panda-primary); }

.panda-accordion { display: grid; gap: var(--panda-space-2); }
.panda-accordion-item { border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md); background: var(--panda-surface); box-shadow: var(--panda-shadow-xs); transition: border-color var(--panda-duration-fast); }
.panda-accordion-item--open { border-color: var(--panda-border-strong); }
.panda-accordion-item__header { display: flex; align-items: center; gap: var(--panda-space-3); width: 100%; padding: var(--panda-space-3) var(--panda-space-4); border: 0; border-radius: inherit; background: transparent; color: var(--panda-text); text-align: left; transition: background var(--panda-duration-fast); }
.panda-accordion-item__header:hover { background: var(--panda-surface-2); }
.panda-accordion-item__header:disabled { opacity: .5; cursor: not-allowed; }
.panda-accordion-item__icon { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: var(--panda-radius-sm); background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-accordion-item__icon .panda-icon { width: 16px; height: 16px; }
.panda-accordion-item__text { flex: 1; min-width: 0; }
.panda-accordion-item__title { display: block; font-weight: var(--panda-weight-semibold); line-height: 19px; }
.panda-accordion-item__description { display: block; margin-top: 2px; color: var(--panda-text-muted); font-size: var(--panda-font-sm); line-height: 16px; }
.panda-accordion-item__chevron { display: grid; place-items: center; flex: 0 0 18px; color: var(--panda-text-muted); transition: transform var(--panda-duration-normal) var(--panda-ease), color var(--panda-duration-fast); }
.panda-accordion-item--open .panda-accordion-item__chevron { transform: rotate(180deg); color: var(--panda-text); }
.panda-accordion-item__body { padding: 2px var(--panda-space-4) var(--panda-space-4); color: var(--panda-text-soft); line-height: 1.6; animation: panda-pop var(--panda-duration-fast); }
.panda-accordion-item--with-icon .panda-accordion-item__body { padding-left: 60px; }
.panda-accordion-item__body p { margin: 0; }
.panda-accordion-item__body p + p { margin-top: var(--panda-space-2); }

.panda-breadcrumb { margin-bottom: var(--panda-space-2); color: var(--panda-text-muted); font-size: var(--panda-font-sm); }
.panda-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; font-weight: var(--panda-weight-medium); }
.panda-breadcrumb li { display: inline-flex; align-items: center; gap: 2px; min-width: 0; }
.panda-breadcrumb a, .panda-breadcrumb li > span:not(.panda-breadcrumb__separator) { display: inline-flex; align-items: center; gap: 6px; max-width: 240px; padding: 4px 8px; border-radius: var(--panda-radius-xs); color: var(--panda-text-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: background var(--panda-duration-fast), color var(--panda-duration-fast); }
.panda-breadcrumb a:hover { background: var(--panda-surface-3); color: var(--panda-text); }
.panda-breadcrumb [aria-current=page] { color: var(--panda-text); font-weight: var(--panda-weight-semibold); }
.panda-breadcrumb__separator { display: grid; place-items: center; color: var(--panda-border-strong); }
.panda-breadcrumb__separator .panda-icon, .panda-breadcrumb a .panda-icon, .panda-breadcrumb li > span .panda-icon { width: 14px; height: 14px; flex-basis: 14px; }

.panda-slider { display: grid; gap: 6px; }
.panda-slider__meta { display: flex; justify-content: space-between; align-items: baseline; font-size: var(--panda-font-sm); font-weight: var(--panda-weight-semibold); }
.panda-slider__meta output { color: var(--panda-primary); font-variant-numeric: tabular-nums; }
.panda-slider__input { width: 100%; height: 6px; margin: 9px 0; border-radius: var(--panda-radius-pill); background: linear-gradient(to right, var(--panda-primary) var(--panda-slider-fill, 0%), var(--panda-surface-4) var(--panda-slider-fill, 0%)); -webkit-appearance: none; appearance: none; cursor: pointer; outline: none; }
.panda-slider__input::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; border: 3px solid var(--panda-surface); background: var(--panda-primary); box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform var(--panda-duration-fast); }
.panda-slider__input::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--panda-surface); background: var(--panda-primary); box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.panda-slider__input:hover::-webkit-slider-thumb, .panda-slider__input:focus-visible::-webkit-slider-thumb { transform: scale(1.12); }
.panda-slider__input:focus-visible { box-shadow: var(--panda-ring); }
.panda-slider__input:disabled { opacity: .5; cursor: not-allowed; }
.panda-slider__ticks { display: flex; justify-content: space-between; color: var(--panda-text-muted); font-size: var(--panda-font-xs); font-variant-numeric: tabular-nums; }

.panda-upload { display: grid; gap: var(--panda-space-3); }
.panda-upload__zone { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: var(--panda-space-7) var(--panda-space-5); border: 1.5px dashed var(--panda-border-strong); border-radius: var(--panda-radius-lg); background: var(--panda-surface-2); text-align: center; transition: border-color var(--panda-duration-fast), background var(--panda-duration-fast), box-shadow var(--panda-duration-fast); }
.panda-upload__zone:hover, .panda-upload__zone--drag { border-color: var(--panda-primary); background: var(--panda-primary-soft); }
.panda-upload__zone:focus-within { border-color: var(--panda-primary); box-shadow: var(--panda-ring); }
.panda-upload__zone input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.panda-upload__icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 6px; border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md); background: var(--panda-surface); color: var(--panda-primary); box-shadow: var(--panda-shadow-sm); transition: transform var(--panda-duration-fast); }
.panda-upload__zone--drag .panda-upload__icon { transform: translateY(-3px); }
.panda-upload__icon .panda-icon { width: 20px; height: 20px; }
.panda-upload__zone strong { font-size: var(--panda-font-md); color: var(--panda-text); }
.panda-upload__zone strong em { color: var(--panda-primary); font-style: normal; }
.panda-upload__zone small { color: var(--panda-text-muted); }
.panda-upload--disabled .panda-upload__zone { opacity: .55; pointer-events: none; }
.panda-upload__list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.panda-upload__file { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; column-gap: var(--panda-space-3); padding: var(--panda-space-2) var(--panda-space-3); border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md); background: var(--panda-surface); animation: panda-pop var(--panda-duration-fast); }
.panda-upload__file > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--panda-radius-sm); background: var(--panda-surface-2); color: var(--panda-text-soft); }
.panda-upload__file strong { display: block; font-size: var(--panda-font-sm); font-weight: var(--panda-weight-semibold); line-height: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.panda-upload__file small { display: block; color: var(--panda-text-muted); font-size: var(--panda-font-xs); line-height: 15px; }
.panda-upload__remove { display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: var(--panda-radius-sm); background: transparent; color: var(--panda-text-muted); transition: background var(--panda-duration-fast), color var(--panda-duration-fast); }
.panda-upload__remove:hover { background: var(--panda-surface-3); color: var(--panda-danger); }
.panda-upload__error { color: var(--panda-danger); font-size: var(--panda-font-sm); }

/* UI kit showcase pages */
.panda-ui-hero { padding: var(--panda-space-6); border-radius: var(--panda-radius-xl); background: linear-gradient(125deg, var(--panda-surface), var(--panda-primary-soft)); border: 1px solid var(--panda-border); }
.panda-section-nav { position: sticky; top: calc(var(--panda-topbar) + 12px); z-index: 10; display: flex; gap: 4px; width: max-content; max-width: 100%; margin: 0 auto var(--panda-space-7); padding: 4px; background: var(--panda-surface); border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md); box-shadow: var(--panda-shadow-sm); overflow: auto; }
.panda-section-nav a { padding: 7px 12px; border-radius: var(--panda-radius-sm); color: var(--panda-text-soft); font-size: var(--panda-font-sm); font-weight: var(--panda-weight-semibold); white-space: nowrap; transition: background var(--panda-duration-fast), color var(--panda-duration-fast); }
.panda-section-nav a:hover { background: var(--panda-primary-soft); color: var(--panda-primary); }
.panda-showcase { scroll-margin-top: 150px; margin-bottom: var(--panda-space-8); }
.panda-showcase > header { display: grid; grid-template-columns: 1fr 1fr; gap: var(--panda-space-5); align-items: end; margin-bottom: var(--panda-space-4); }
.panda-showcase > header p { margin: 0; color: var(--panda-text-muted); text-align: right; }
.panda-showcase__extras { margin-top: var(--panda-space-4); }
.panda-preview { padding: var(--panda-space-6); background: var(--panda-surface); border: 1px solid var(--panda-border); border-radius: var(--panda-radius-lg); box-shadow: var(--panda-shadow-sm); }
.panda-preview--flush { padding: 0; overflow: hidden; }
.panda-preview__row + .panda-preview__row { margin-top: var(--panda-space-6); padding-top: var(--panda-space-6); border-top: 1px solid var(--panda-border); }
.panda-avatar-row { min-height: 175px; justify-content: center; }

/* ---------------------------------------------------------------------------
   11. POS SHELL
   --------------------------------------------------------------------------- */
.panda-pos-shell { min-height: 100vh; background: var(--panda-bg); }
.panda-pos-topbar { height: 72px; display: flex; align-items: center; gap: var(--panda-space-6); padding: 0 var(--panda-space-6); background: var(--panda-surface); border-bottom: 1px solid var(--panda-border); }
.panda-pos-brand { display: flex; width: 142px; }
.panda-pos-brand img { width: 100%; height: auto; }
.panda-pos-context { display: flex; gap: var(--panda-space-2); flex: 1; }
.panda-pos-context button { min-width: 160px; padding: 7px var(--panda-space-3); border: 1px solid var(--panda-border); border-radius: var(--panda-radius-md); background: var(--panda-surface-2); color: var(--panda-text); text-align: left; }
.panda-pos-context span, .panda-pos-context strong { display: block; }
.panda-pos-context span { font-size: var(--panda-font-2xs); text-transform: uppercase; letter-spacing: var(--panda-tracking-caps); color: var(--panda-text-muted); }
.panda-pos-actions { display: flex; align-items: center; gap: var(--panda-space-2); }
.panda-pos-actions > strong { font-size: var(--panda-font-sm); }
.panda-pos-main { height: calc(100vh - 72px); overflow: hidden; }
.panda-pos-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 370px; height: 100%; }
.panda-pos-catalog { padding: var(--panda-space-6); overflow: auto; }
.panda-pos-catalog > header { display: flex; align-items: end; justify-content: space-between; gap: var(--panda-space-4); }
.panda-pos-catalog h1 { margin-bottom: 0; }
.panda-pos-catalog > header .panda-input { max-width: 310px; }
.panda-pos-categories { display: flex; gap: var(--panda-space-2); margin: var(--panda-space-5) 0; overflow: auto; }
.panda-pos-categories button { min-height: 38px; padding: 8px 15px; border: 1px solid var(--panda-border); border-radius: var(--panda-radius-pill); background: var(--panda-surface); color: var(--panda-text); white-space: nowrap; transition: background var(--panda-duration-fast), border-color var(--panda-duration-fast); }
.panda-pos-categories button:hover { border-color: var(--panda-border-strong); }
.panda-pos-categories button.active { border-color: var(--panda-primary); background: var(--panda-primary); color: #fff; }
.panda-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--panda-space-3); }
.panda-product { min-height: 132px; padding: var(--panda-space-4); display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; border: 1px solid var(--panda-border); border-radius: var(--panda-radius-lg); background: var(--panda-surface); color: var(--panda-text); text-align: left; box-shadow: var(--panda-shadow-sm); transition: border-color var(--panda-duration-fast), transform var(--panda-duration-fast), box-shadow var(--panda-duration-fast); }
.panda-product:hover { border-color: var(--panda-primary); transform: translateY(-2px); box-shadow: var(--panda-shadow-md); }
.panda-product > span { font-size: 28px; }
.panda-product strong, .panda-product small { display: block; }
.panda-product small { margin-top: 3px; color: var(--panda-primary); font-weight: var(--panda-weight-bold); }
.panda-pos-cart { display: flex; flex-direction: column; background: var(--panda-surface); border-left: 1px solid var(--panda-border); }
.panda-pos-cart > header { display: flex; justify-content: space-between; padding: var(--panda-space-5); border-bottom: 1px solid var(--panda-border); }
.panda-pos-cart h2 { margin: 2px 0; }
.panda-pos-cart > .panda-empty { flex: 1; }
.panda-pos-cart > footer { padding: var(--panda-space-5); border-top: 1px solid var(--panda-border); }
.panda-pos-cart > footer > div { display: flex; justify-content: space-between; margin-bottom: var(--panda-space-4); }
.panda-pos-cart > footer strong { font-size: var(--panda-font-xl); }
.panda-pos-cart > footer .panda-button { width: 100%; min-height: 50px; }
.panda-pos-bottom, .panda-pos-mobile-spacer { display: none; }

/* ---------------------------------------------------------------------------
   12. MOTION
   --------------------------------------------------------------------------- */
@keyframes panda-spin { to { transform: rotate(360deg); } }
@keyframes panda-shimmer { to { background-position: -200% 0; } }
@keyframes panda-fade { from { opacity: 0; } }
@keyframes panda-pop { from { opacity: 0; transform: scale(.98) translateY(6px); } }
@keyframes panda-slide { from { transform: translateX(100%); } }
@keyframes panda-slide-left { from { transform: translateX(-100%); } }
@keyframes panda-sheet { from { transform: translateY(100%); } }
@keyframes panda-progress-slide { 0% { left: -40%; } 100% { left: 100%; } }

#blazor-error-ui { display: none; }

/* ---------------------------------------------------------------------------
   13. RESPONSIVE
   --------------------------------------------------------------------------- */
@media (max-width: 1023px) {
    .panda-sidebar { display: flex; transform: translateX(-100%); transition: transform var(--panda-duration-normal) var(--panda-ease); box-shadow: var(--panda-shadow-lg); }
    .panda-sidebar--open, .panda-drawer-toggle:checked ~ .panda-sidebar { transform: translateX(0); }
    .panda-sidebar__close { display: inline-grid; }
    .panda-brand { padding-right: 56px; }
    /* touch-action:none keeps swipes on the backdrop from scrolling the page behind the drawer */
    .panda-mobile-overlay { display: none; position: fixed; inset: 0; z-index: calc(var(--panda-z-sidebar) - 1); border: 0; background: rgba(8, 12, 18, .5); backdrop-filter: blur(2px); touch-action: none; overscroll-behavior: contain; cursor: pointer; }
    .panda-drawer-toggle:checked ~ .panda-mobile-overlay { display: block; }
    .panda-main { margin-left: 0; }
    .panda-mobile-menu { display: inline-grid; }
    .panda-stat-grid { grid-template-columns: repeat(2, 1fr); }
    .panda-grid--two { grid-template-columns: 1fr; }
    .panda-content { padding: var(--panda-space-6); }
    .panda-search-trigger { min-width: auto; }
    .panda-search-trigger span:nth-child(2), .panda-search-trigger kbd { display: none; }
}

@media (max-width: 900px) {
    .panda-pos-main { height: calc(100vh - 72px - 68px); }
    .panda-pos-workspace { grid-template-columns: 1fr; }
    .panda-pos-cart { display: none; }
    .panda-pos-bottom { position: fixed; inset: auto 0 0; z-index: 30; height: 68px; display: grid; grid-template-columns: repeat(5, 1fr); background: var(--panda-surface); border-top: 1px solid var(--panda-border); }
    .panda-pos-bottom a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--panda-text-muted); font-size: var(--panda-font-2xs); }
    .panda-pos-bottom a span { font-size: 19px; }
    .panda-pos-bottom a.active { color: var(--panda-primary); }
}

@media (max-width: 639px) {
    :root { --panda-topbar: 60px; }
    .panda-topbar { padding: 0 var(--panda-space-4); }
    .panda-topbar__context .panda-eyebrow { display: none; }
    .panda-topbar__actions > .panda-search-trigger { display: none; }
    .panda-content { padding: var(--panda-space-5) var(--panda-space-4); }
    .panda-page-heading, .panda-showcase > header { display: flex; flex-direction: column; align-items: stretch; }
    .panda-page-heading { margin-bottom: var(--panda-space-5); }
    .panda-action-row > .panda-button, .panda-preview__row > .panda-button { flex: 1; }
    .panda-stat-grid, .panda-grid--three, .panda-form-grid { grid-template-columns: 1fr; }
    .panda-stat-card { padding: var(--panda-space-4); }
    .panda-section-nav { top: 72px; margin-bottom: var(--panda-space-6); }
    .panda-showcase > header p { text-align: left; }
    .panda-preview { padding: var(--panda-space-4); }
    .panda-table-toolbar { align-items: stretch; flex-direction: column; gap: var(--panda-space-3); }
    .panda-table-toolbar .panda-input { width: 100%; }
    .panda-overlay { padding: 0; align-items: flex-end; }
    .panda-modal { width: 100%; max-height: 92vh; border-radius: var(--panda-radius-xl) var(--panda-radius-xl) 0 0; }
    .panda-modal footer { display: grid; grid-template-columns: 1fr 1fr; border-radius: 0; }
    .panda-drawer { width: 100%; }
    .panda-toast-host { right: var(--panda-space-4); bottom: var(--panda-space-4); }
    .panda-command-overlay { padding: 10px; align-items: flex-start; }
    .panda-command { margin-top: 54px; border-radius: var(--panda-radius-lg); }
    .panda-alert { flex-wrap: wrap; }
    .panda-alert__action { width: 100%; margin-left: 38px; }
    .panda-data-table__footer { justify-content: center; }
    .panda-notifications header { grid-template-columns: 1fr; }
    .panda-notifications header .panda-button { justify-self: start; }
    .panda-tabs__list { width: 100%; }
    .panda-tabs--underline .panda-tabs__tab { margin-right: var(--panda-space-4); }
    .panda-breadcrumb a, .panda-breadcrumb li > span:not(.panda-breadcrumb__separator) { max-width: 150px; }
    .panda-accordion-item--with-icon .panda-accordion-item__body { padding-left: var(--panda-space-4); }
    .panda-upload__zone { padding: var(--panda-space-5) var(--panda-space-4); }
    .panda-ui-hero { padding: var(--panda-space-5); }
    .panda-app-switcher { min-width: 0; }
    .panda-app-switcher > div { display: none; }
    .panda-context-select { min-width: 0; }
    .panda-pos-topbar { height: 62px; padding: 0 var(--panda-space-3); }
    .panda-pos-brand { width: 112px; }
    .panda-pos-context button { display: none; }
    .panda-pos-context button:last-child { display: block; min-width: 0; margin-left: auto; }
    .panda-pos-actions > strong, .panda-pos-actions > .panda-status { display: none; }
    .panda-pos-main { height: auto; min-height: calc(100vh - 130px); overflow: visible; }
    .panda-pos-catalog { padding: var(--panda-space-4) var(--panda-space-3) 82px; }
    .panda-pos-catalog > header { align-items: stretch; flex-direction: column; }
    .panda-pos-catalog > header .panda-input { max-width: none; }
    .panda-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    .panda-product { min-height: 118px; padding: var(--panda-space-3); }
    .panda-pos-mobile-spacer { display: block; height: 72px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
    .panda-progress--indeterminate .panda-progress__bar { animation: none; left: 0; width: 60%; }
}
