/* Apple-inspired visual layer: only presentation, no business behavior. */
:root {
    --bg: #f5f5f7;
    --surface: #ffffff;
    --surface-hover: #f5f5f7;
    --border: rgba(60, 60, 67, .18);
    --text: #1d1d1f;
    --text-dim: #6e6e73;
    --accent: #0071e3;
    --accent-hover: #0077ed;
    --green: #248a3d;
    --orange: #c93400;
    --red: #d70015;
    --radius: 12px;
    --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
    --ui-focus: 0 0 0 4px rgba(0, 113, 227, .22);
    --shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .06);
    --shadow-float: 0 14px 38px rgba(0, 0, 0, .14);
}

[data-theme="dark"] {
    --bg: #000000;
    --surface: #1c1c1e;
    --surface-hover: #2c2c2e;
    --border: rgba(235, 235, 245, .16);
    --text: #f5f5f7;
    --text-dim: #a1a1a6;
    --accent: #2997ff;
    --accent-hover: #64b5ff;
    --green: #30d158;
    --orange: #ff9f0a;
    --red: #ff453a;
    --shadow-card: 0 1px 2px rgba(0, 0, 0, .22), 0 10px 28px rgba(0, 0, 0, .22);
}

body {
    background: var(--bg);
    font-size: 15px;
    line-height: 1.47;
    font-optical-sizing: auto;
}

.app-main {
    padding: 24px 28px 40px;
}

.app-sidebar {
    background: rgba(255, 255, 255, .72);
    border-right-color: var(--border);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
}

[data-theme="dark"] .app-sidebar {
    background: rgba(28, 28, 30, .78);
}

.app-sidebar__brand {
    padding: 7px 8px 10px;
}

.app-sidebar__brand-name {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.app-sidebar__brand-subtitle {
    font-size: 11px;
}

.app-sidebar__collapse {
    width: 30px;
    height: 30px;
    border-radius: 50%;
}

.module-nav {
    gap: 5px;
    margin-top: 14px;
}

.module-nav__btn {
    min-height: 44px;
    border-radius: 10px;
    font-size: 14px;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.module-nav__btn:hover {
    background: rgba(120, 120, 128, .12);
}

.module-nav__btn:active,
.btn-sm:active,
.tabs__btn:active,
.workspace-tab:active {
    transform: scale(.98);
}

.module-nav__btn--active,
.module-nav__btn--active:hover {
    background: rgba(0, 113, 227, .12);
    box-shadow: none;
}

.recent-work,
.app-sidebar__auth {
    border-color: var(--border);
}

.workspace-tabs {
    gap: 6px;
    min-height: 42px;
    margin-bottom: 20px;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .03);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

[data-theme="dark"] .workspace-tabs {
    background: rgba(28, 28, 30, .74);
}

.workspace-tab,
.workspace-tab--active {
    min-height: 32px;
    margin: 0;
    border-radius: 8px;
    box-shadow: none;
}

.workspace-tab--active {
    background: var(--surface);
    color: var(--text);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}

.workspace-tab__activate {
    padding: 7px 9px 7px 11px;
}

.tabs {
    gap: 8px;
    margin-bottom: 16px;
}

.tabs__btn {
    min-height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
}

.tabs__btn--active {
    background: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 2px 7px rgba(0, 113, 227, .22);
}

.toolbar {
    gap: 10px;
    min-height: 48px;
    margin-bottom: 12px;
    padding: 8px 0;
}

.search-wrap,
.base-price-bar,
.table-wrap,
.inv-form,
.inv-summary__card,
.settings-content,
.settings-panel__section,
.inv-table-wrap {
    border-color: var(--border);
    box-shadow: var(--shadow-card);
}

.search-input,
.edit-input,
.base-price-input,
.df-input,
.df-select,
.inv-form__select-sm,
select,
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
    min-height: 36px;
    border-color: var(--border);
    border-radius: 9px;
    background: var(--surface);
    color: var(--text);
}

.search-input {
    min-height: 40px;
    padding-inline: 14px 34px;
    background: var(--surface);
}

.search-wrap {
    border-radius: 10px;
}

.base-price-bar {
    gap: 10px;
    padding: 12px 14px;
    border-radius: 14px;
    background: var(--surface);
}

.base-price-bar__value {
    color: var(--accent);
    font-size: 18px;
    letter-spacing: -.01em;
}

.table-wrap,
.inv-table-wrap {
    border-radius: 14px;
    background: var(--surface);
}

.product-table,
.inv-table,
.settings-table {
    font-size: 14px;
}

.product-table th,
.inv-table th,
.settings-table th {
    padding: 11px 12px;
    background: rgba(118, 118, 128, .08);
    color: var(--text-dim);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .01em;
}

.product-table td,
.inv-table td,
.settings-table td {
    padding: 10px 12px;
    border-color: var(--border);
}

.product-table tr:nth-child(even) td {
    background: rgba(118, 118, 128, .025);
}

.product-table tr:hover td,
.inv-table tbody tr:hover {
    background: rgba(0, 113, 227, .055);
}

.inv-form,
.settings-content {
    border-radius: 16px;
    background: var(--surface);
}

.inv-summary {
    gap: 12px;
}

.inv-summary__card {
    border-radius: 16px;
    background: var(--surface);
}

.inv-summary__card:hover,
.inv-summary__card[role="button"]:hover {
    border-color: rgba(0, 113, 227, .42);
    background: var(--surface);
    transform: translateY(-1px);
}

.btn-sm,
.pagination__btn,
.history-tab,
.confirm-modal__btn--cancel,
.confirm-modal__btn--confirm {
    min-height: 36px;
    padding: 0 13px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.btn-sm {
    background: var(--surface);
    border-color: var(--border);
}

.btn-sm:hover,
.pagination__btn:hover:not(:disabled) {
    border-color: rgba(60, 60, 67, .32);
    background: var(--surface-hover);
}

.btn-sm--primary,
.confirm-modal__btn--confirm {
    border-color: var(--accent);
    background: var(--accent);
    box-shadow: 0 2px 7px rgba(0, 113, 227, .2);
}

.btn-sm--primary:hover {
    border-color: var(--accent-hover);
    background: var(--accent-hover);
}

.btn-sm:disabled,
.pagination__btn:disabled {
    opacity: .42;
    cursor: not-allowed;
    transform: none;
}

.modal-overlay,
.confirm-modal__overlay {
    background: rgba(0, 0, 0, .34);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.modal,
.confirm-modal {
    border-color: rgba(255, 255, 255, .35);
    border-radius: 18px;
    box-shadow: var(--shadow-float);
}

.modal {
    padding: 22px;
}

.modal__title,
.confirm-modal__title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.modal__actions {
    padding-top: 6px;
}

.toast {
    border-radius: 12px;
    box-shadow: var(--shadow-float);
}

.settings-nav {
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: var(--shadow-card);
}

.settings-nav__btn {
    min-height: 40px;
    border-radius: 9px;
}

.settings-panel__section {
    border-radius: 14px;
    background: var(--surface);
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
    outline: none;
    box-shadow: var(--ui-focus);
}

.cell-editable:focus {
    outline: none;
    box-shadow: var(--ui-focus);
    border-radius: 6px;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-thumb {
    border: 3px solid transparent;
    border-radius: 999px;
    background: rgba(60, 60, 67, .34);
    background-clip: padding-box;
}

::-webkit-scrollbar-thumb:hover {
    background-color: rgba(60, 60, 67, .52);
}

@media (max-width: 767px) {
    .app-main {
        padding: 12px 12px calc(82px + env(safe-area-inset-bottom));
    }

    .workspace-tabs {
        margin-bottom: 12px;
        border-radius: 10px;
    }

    .tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .tabs::-webkit-scrollbar {
        display: none;
    }

    .tabs__btn {
        flex: 0 0 auto;
        min-height: 44px;
    }

    .btn-sm,
    .pagination__btn {
        min-height: 40px;
    }

    .btn-sm--primary {
        min-height: 44px;
    }

    .mobile-module-nav {
        height: 66px;
        border-color: var(--border);
        background: rgba(255, 255, 255, .86);
        box-shadow: 0 -1px 0 rgba(60, 60, 67, .12), 0 -8px 26px rgba(0, 0, 0, .08);
        backdrop-filter: saturate(180%) blur(18px);
        -webkit-backdrop-filter: saturate(180%) blur(18px);
    }

    [data-theme="dark"] .mobile-module-nav {
        background: rgba(28, 28, 30, .88);
    }

    .mobile-module-nav button {
        min-height: 44px;
        border-radius: 10px;
    }

    .table-wrap,
    .inv-table-wrap,
    .inv-form,
    .settings-content {
        border-radius: 12px;
    }
}

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

@media (prefers-reduced-transparency: reduce) {
    .app-sidebar,
    .workspace-tabs,
    .mobile-module-nav {
        background: var(--surface);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .modal-overlay,
    .confirm-modal__overlay {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}

@media (prefers-contrast: more) {
    :root {
        --border: rgba(29, 29, 31, .56);
    }

    [data-theme="dark"] {
        --border: rgba(245, 245, 247, .64);
    }

    .btn-sm,
    .tabs__btn,
    .table-wrap,
    .inv-form,
    .settings-content,
    .modal {
        border-width: 2px;
    }
}
