/* PS2 Scanner — minimal overrides for Tailwind + shadcn light theme */

/* Hide number input spinners */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type="number"] { -moz-appearance: textfield; }

/* Focus ring */
input:focus, select:focus, button:focus-visible {
    outline: 2px solid hsl(224 71% 45%);
    outline-offset: 2px;
}

/* Checkbox / radio */
input[type="checkbox"], input[type="radio"] {
    accent-color: hsl(215 25% 15%);
}

/* Popover animation */
.animate-in {
    animation: fadeIn 0.1s ease-out;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Popover scrollbar */
.popover-panel::-webkit-scrollbar { width: 6px; }
.popover-panel::-webkit-scrollbar-track { background: transparent; }
.popover-panel::-webkit-scrollbar-thumb { background: hsl(220 13% 80%); border-radius: 3px; }

/* Inventory sidebar */
.inventory-layout {
    min-width: 0;
}

.inventory-sidebar-section-summary::-webkit-details-marker {
    display: none;
}

.inventory-sidebar-toggle-icon {
    transition: transform 0.18s ease;
}

/* +/− indicator: show − when open, + when closed */
.inventory-section-indicator::before { content: '+'; }
.inventory-sidebar-section[open] .inventory-section-indicator::before { content: '\2212'; }

@media (min-width: 1024px) {
    .inventory-sidebar {
        align-self: flex-start;
        position: sticky;
        top: 5rem;
        width: 18rem;
        height: calc(100vh - 6rem);
        transition: width 0.18s ease;
    }

    .inventory-sidebar-shell {
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .inventory-sidebar-scroll {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overflow-x: visible;
        padding-right: 0.35rem;
    }

    .inventory-sidebar-scroll::-webkit-scrollbar {
        width: 6px;
    }

    .inventory-sidebar-scroll::-webkit-scrollbar-track {
        background: transparent;
    }

    .inventory-sidebar-scroll::-webkit-scrollbar-thumb {
        background: hsl(220 13% 80%);
        border-radius: 999px;
    }

    .inventory-sidebar.inventory-sidebar-collapsed {
        width: 3.75rem;
    }

    .inventory-sidebar.inventory-sidebar-collapsed .inventory-sidebar-scroll {
        display: none;
    }

    .inventory-sidebar.inventory-sidebar-collapsed .inventory-sidebar-shell {
        align-items: center;
    }

    .inventory-sidebar.inventory-sidebar-collapsed .inventory-sidebar-toolbar {
        justify-content: center;
        width: 100%;
    }

    .inventory-sidebar.inventory-sidebar-collapsed .inventory-sidebar-toggle-label {
        display: none;
    }

    .inventory-sidebar.inventory-sidebar-collapsed .inventory-sidebar-toggle-icon {
        transform: rotate(180deg);
    }
}

/* Dragging header visual */
th[draggable="true"] { cursor: grab; }
th[draggable="true"]:active { cursor: grabbing; }
table td, table th {
    white-space: nowrap;
    font-size: 0.85rem;
}

/* Mobile nav panel — slide-down animation */
.mobile-nav-panel {
    overflow: hidden;
    animation: slideDown 0.15s ease-out;
}
@keyframes slideDown {
    from { opacity: 0; max-height: 0; }
    to   { opacity: 1; max-height: 500px; }
}

/* Prevent body scroll when mobile menu is open */
body.overflow-hidden {
    overflow: hidden;
}

/* Mobile touch targets — ensure minimum 44px tap area */
@media (max-width: 767px) {
    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea {
        font-size: 16px;
    }

    .mobile-nav-panel a,
    .mobile-nav-panel button {
        min-height: 44px;
        display: flex;
        align-items: center;
    }
}
