:root {
    --app-theme: #13a300;
    --app-theme-dark: color-mix(in srgb, var(--app-theme) 72%, #173a29);
    --app-theme-text: color-mix(in srgb, var(--app-theme) 68%, #173a29);
    --app-theme-soft: color-mix(in srgb, var(--app-theme) 7%, #fff);
    --app-theme-pale: color-mix(in srgb, var(--app-theme) 17%, #fff);
    --app-theme-tint: color-mix(in srgb, var(--app-theme) 26%, #fff);
    --primary: var(--app-theme);
    --primary-hover: var(--app-theme-dark);
    --primary-light: var(--app-theme-soft);
    --green: var(--app-theme);
    --green-dark: var(--app-theme-dark);
    --fresh-green: var(--app-theme);
    --fresh-green-light: var(--app-theme-soft);
    --home-green: var(--app-theme);
    --home-bg: var(--app-theme-soft);
    --bg: var(--app-theme-soft);
    --mint: var(--app-theme-soft);
}

body {
    background-color: var(--app-theme-pale) !important;
}

body.login-body {
    background:
        radial-gradient(circle at 5% 15%, color-mix(in srgb, var(--app-theme) 15%, #fff), transparent 30%),
        linear-gradient(135deg, var(--app-theme-soft), var(--app-theme-pale)) !important;
}

.login-shell,
.login-form-panel {
    background: var(--app-theme-soft) !important;
}

.login-hero {
    background:
        radial-gradient(circle at 82% 34%, color-mix(in srgb, var(--app-theme) 22%, transparent), transparent 25%),
        linear-gradient(150deg, var(--app-theme-soft), var(--app-theme-pale)) !important;
}

.brand-title,
.brand-title span {
    color: var(--app-theme-text) !important;
    -webkit-text-fill-color: var(--app-theme-text) !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    animation: fade-up .7s cubic-bezier(.2,.8,.2,1) .12s forwards !important;
}

.hero-icon,
.leaf-decoration,
.trusted-badge span,
.login-form-content::before,
.login-body .brand-title,
.login-body .hero-description,
.login-body .hero-icon,
.login-body .leaf-decoration,
.login-body .trusted-badge,
.login-body .trusted-badge span,
.login-body .login-form-content::before,
.login-body .login-form-content h2,
.login-body .login-form-panel label,
.login-body .login-options,
.login-body .login-options a,
.login-body .login-help,
.login-body .login-help strong,
.login-body .field-icon,
.login-body .form-control {
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
}

.login-body .brand-title {
    color: var(--app-theme) !important;
    -webkit-text-fill-color: var(--app-theme) !important;
}

.login-body .brand-title span {
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
}

.hero-icon,
.trusted-badge {
    background-color: var(--app-theme-soft) !important;
}

.hero-description {
    color: var(--app-theme-dark) !important;
}

.login-form-panel h2,
.login-form-panel label,
.login-form-panel .login-help {
    color: var(--app-theme-text) !important;
}

.login-form-panel .form-control:focus {
    border-color: var(--app-theme) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--app-theme) 16%, transparent) !important;
}

.login-body .login-form-content {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-radius: 0 !important;
    padding: 14px 8px 18px !important;
}

.login-body .login-form-panel {
    background: transparent !important;
}

.login-body .login-form-content::before {
    width: fit-content !important;
    margin: 0 0 12px !important;
    padding: 10px 24px 10px 18px !important;
    border-radius: 12px 22px 22px 12px !important;
    background: linear-gradient(110deg, var(--app-theme-dark), var(--app-theme)) !important;
    box-shadow: 0 5px 12px color-mix(in srgb, var(--app-theme) 22%, transparent) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    text-transform: none !important;
}

.login-body .login-form-panel .form-group {
    margin-bottom: 10px !important;
}

.login-body .login-form-panel .form-group > label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}

.login-body .floating-input {
    min-height: 52px !important;
    padding: 4px 10px 4px 57px !important;
    border: 1px solid #d4dbe2 !important;
    border-radius: 28px !important;
    background: linear-gradient(180deg, #f4f6f8, #e8edf2) !important;
    box-shadow: 0 5px 10px rgba(27, 48, 68, .10), inset 0 1px 2px #fff !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

.login-body .floating-input:focus-within {
    border-color: var(--app-theme) !important;
    box-shadow: 0 5px 12px color-mix(in srgb, var(--app-theme) 18%, transparent), inset 0 1px 2px #fff !important;
    transform: translateY(-1px);
}

.login-body .field-icon {
    left: 8px !important;
    width: 39px !important;
    height: 39px !important;
    padding: 10px !important;
    border-radius: 50% !important;
    background: var(--app-theme) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    filter: drop-shadow(0 2px 3px color-mix(in srgb, var(--app-theme) 35%, transparent));
}

.login-body .field-icon svg {
    stroke: #fff !important;
}

.login-body .password-toggle {
    color: #27313a !important;
    -webkit-text-fill-color: #27313a !important;
}

.login-body .login-form-panel .form-control {
    height: 40px !important;
    padding: 0 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
    font-size: 14px !important;
}

.login-body .login-form-panel .form-control::placeholder {
    color: #777 !important;
    -webkit-text-fill-color: #777 !important;
}

.login-body .password-input .form-control {
    padding-right: 35px !important;
}

.login-body .checkmark {
    width: 21px !important;
    height: 21px !important;
    border-radius: 6px !important;
    background: var(--app-theme) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: 0 2px 5px color-mix(in srgb, var(--app-theme) 26%, transparent) !important;
}

.login-body .remember-option input:not(:checked) + .checkmark {
    border: 1px solid #c8cdd3 !important;
    background: #f1f3f5 !important;
}

.login-body .password-toggle:hover,
.login-body .password-toggle:focus-visible,
.login-body .password-toggle.is-visible {
    background: color-mix(in srgb, var(--app-theme) 12%, #fff) !important;
    color: #111 !important;
}

.login-body .pwa-install {
    min-height: 46px !important;
    border-width: 2px !important;
    border-radius: 24px !important;
    border-color: var(--app-theme) !important;
    background: transparent !important;
    color: var(--app-theme) !important;
    box-shadow: 0 4px 9px rgba(17, 17, 17, .07) !important;
    font-weight: 800 !important;
}

.login-body .login-form-panel .btn-primary {
    min-height: 56px !important;
    border: 2px solid color-mix(in srgb, var(--app-theme) 55%, #fff) !important;
    border-radius: 28px !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--app-theme) 75%, #fff), var(--app-theme) 36%, var(--app-theme-dark)) !important;
    box-shadow: 0 7px 15px color-mix(in srgb, var(--app-theme) 30%, transparent), inset 0 2px 2px rgba(255,255,255,.42), inset 0 -2px 3px rgba(0,0,0,.18) !important;
    font-size: 19px !important;
}

.login-body .login-form-panel .btn-primary span {
    border: 1px solid rgba(255,255,255,.45) !important;
    background: color-mix(in srgb, var(--app-theme-dark) 58%, transparent) !important;
}

.login-body .login-options {
    margin: 6px 5px 12px !important;
}

.login-form-panel .btn-primary,
.start-button,
.settings-page .btn:not(.btn-danger),
.barang-form button,
.search-form button,
.add-button,
.stock-submit,
.expense-form button,
.date-filter button,
.receipt-link,
.receipt-actions button:not(.bluetooth-print),
.btn-primary:not(.btn-danger),
.cart-fab,
.category-tabs button.active {
    background: var(--app-theme) !important;
}

.login-form-panel .btn-primary:hover,
.btn-primary:hover:not(.btn-danger),
.receipt-link:hover {
    background: var(--app-theme-dark) !important;
}

.settings-head a,
.barang-price,
.finance-head a,
.pos-header strong,
.pos-actions a,
.product p,
.section-head a,
.login-form-panel .login-help strong {
    color: var(--app-theme) !important;
}

.quick-menu-card:not(.settings),
.quick-menu-card.settings,
.home-banner {
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-dark)) !important;
}

.quick-menu-card:not(.settings) span,
.quick-menu-card.settings span {
    background: color-mix(in srgb, var(--app-theme-dark) 88%, #000) !important;
}

.quick-menu-card {
    color: #fff !important;
}

.delivery,
.delivery-location,
.delivery strong,
.pin,
.section-head h3,
.history-info strong,
.history-info small,
.history-empty,
.history-page,
.history-page .history-head h1,
.history-page .history-head a,
.history-page .filter-form label,
.history-page .transaction-number,
.history-page .transaction-row strong,
.history-page .transaction-row small,
.history-page .transaction-meta,
.history-page .empty,
.history-page .page-summary {
    color: #111 !important;
}

.history-page .filter-form button,
.history-page .transaction-total,
.history-page .receipt-button,
.history-page .pagination a,
.history-page .pagination .current {
    background-color: var(--app-theme) !important;
    color: #fff !important;
}

.history-page .transaction-total {
    background: none !important;
    color: #111 !important;
}

.history-page .payment-badge,
.history-page .pagination a:not(.current) {
    background-color: var(--app-theme-soft) !important;
    color: #111 !important;
}

.history-page .receipt-button:hover {
    background-color: var(--app-theme-dark) !important;
}

.admin-main,
.settings-page,
.barang-page,
.stock-page,
.expense-page,
.finance-page,
.history-page {
    background-color: var(--app-theme-soft) !important;
}

.settings-card,
.barang-form,
.table-wrap,
.stock-item,
.expense-item,
.chart-card {
    border-color: var(--app-theme-tint);
}

.settings-card h2,
.barang-head h1,
.stock-head h1,
.expense-head h1,
.finance-head h1,
.history-head h1 {
    color: var(--app-theme-dark);
}

.category-tabs button.active,
.toolbar input:focus,
.checkout input:focus,
.checkout select:focus {
    border-color: var(--app-theme) !important;
}

/* Shared workshop data-list styling across the admin screens. */
.barang-page .table-wrap,
.mechanic-page .table-wrap {
    overflow-x: auto;
    border: 1px solid color-mix(in srgb, var(--app-theme) 18%, #dce7df);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(12, 45, 29, .09);
    scrollbar-color: var(--app-theme-pale) transparent;
}

.barang-page .barang-table,
.mechanic-page .mechanic-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: #173327;
}

.barang-page .barang-table th,
.mechanic-page .mechanic-table th {
    padding: 14px 13px;
    border: 0;
    background: linear-gradient(110deg, var(--app-theme-dark), color-mix(in srgb, var(--app-theme) 76%, #0b3825));
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
    white-space: nowrap;
}

.barang-page .barang-table th:first-child,
.mechanic-page .mechanic-table th:first-child {
    padding-left: 17px;
}

.barang-page .barang-table tbody td,
.mechanic-page .mechanic-table tbody td {
    padding: 13px;
    border: 0;
    border-bottom: 1px solid #eaf1ec;
    background: #fff;
    color: #244235;
    font-size: 12px;
    transition: background-color .18s ease;
}

.barang-page .barang-table tbody tr:nth-child(even) td,
.mechanic-page .mechanic-table tbody tr:nth-child(even) td {
    background: #f7faf8;
}

.barang-page .barang-table tbody tr:hover td,
.mechanic-page .mechanic-table tbody tr:hover td {
    background: color-mix(in srgb, var(--app-theme) 7%, #fff);
}

.barang-page .barang-table tbody tr:last-child td,
.mechanic-page .mechanic-table tbody tr:last-child td {
    border-bottom: 0;
}

.barang-page .barang-table .product-cell strong,
.mechanic-page .mechanic-table td:nth-child(2) {
    color: #163a29;
    font-weight: 700;
}

.barang-page .barang-image {
    border: 1px solid #e7efe9;
    border-radius: 11px;
    box-shadow: 0 3px 8px rgba(12, 45, 29, .08);
}

.barang-page .barang-actions a,
.mechanic-page .mechanic-actions > a,
.barang-page .barang-actions button,
.mechanic-page .mechanic-actions button {
    min-height: 31px;
    padding: 7px 11px;
    border: 0;
    border-radius: 8px;
    background: var(--app-theme);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    transition: background-color .18s ease, transform .18s ease;
}

.barang-page .barang-actions a:hover,
.mechanic-page .mechanic-actions > a:hover,
.barang-page .barang-actions button:hover,
.mechanic-page .mechanic-actions button:hover {
    background: var(--app-theme-dark);
    transform: translateY(-1px);
}

.barang-page .barang-actions button.delete,
.mechanic-page .mechanic-actions button.delete {
    background: #dc3545;
}

.barang-page .empty,
.mechanic-page .empty {
    padding: 24px;
    background: #fff !important;
    color: #708278 !important;
    text-align: center;
}

.history-page .history-card {
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--app-theme) 17%, #dce7df);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(12, 45, 29, .08);
}

.history-page .transaction-list {
    gap: 10px;
}

.history-page .transaction-row {
    padding: 14px;
    border: 1px solid #e8f0eb;
    border-left: 4px solid var(--app-theme);
    border-radius: 13px;
    background: linear-gradient(110deg, #fff, #f8fbf9);
    box-shadow: 0 4px 12px rgba(12, 45, 29, .045);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.history-page .transaction-row:hover {
    border-color: color-mix(in srgb, var(--app-theme) 45%, #dce7df);
    box-shadow: 0 8px 18px rgba(12, 45, 29, .09);
    transform: translateY(-1px);
}

.history-page .transaction-number {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 10px;
    background: var(--app-theme-soft);
    color: var(--app-theme-dark) !important;
}

.history-page .transaction-row strong {
    color: #173327 !important;
}

.history-page .transaction-row small,
.history-page .transaction-meta {
    color: #6b7d73 !important;
    line-height: 1.6;
}

.history-page .transaction-total {
    color: var(--app-theme-dark) !important;
    font-size: 14px;
}

.history-page .payment-badge {
    background: var(--app-theme-soft) !important;
    color: var(--app-theme-dark) !important;
}

.history-page .receipt-button,
.history-page .delete-button {
    min-height: 30px;
    padding: 7px 10px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 800;
}

.stock-page .stock-list,
.expense-page .expense-list {
    gap: 10px;
}

.stock-page .stock-item,
.expense-page .expense-item {
    border: 1px solid color-mix(in srgb, var(--app-theme) 15%, #e2ece5);
    border-radius: 14px;
    background: linear-gradient(110deg, #fff, #f8fbf9);
    box-shadow: 0 5px 14px rgba(12, 45, 29, .06);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.stock-page .stock-item:hover,
.expense-page .expense-item:hover {
    border-color: color-mix(in srgb, var(--app-theme) 40%, #dce7df);
    box-shadow: 0 9px 20px rgba(12, 45, 29, .1);
    transform: translateY(-1px);
}

.stock-page .stock-item strong,
.expense-page .expense-item strong {
    color: #173327;
    font-size: 12px;
}

.stock-page .stock-item small,
.expense-page .expense-item small {
    color: #718278;
    font-size: 10px;
}

.stock-page .stock-item input {
    border-color: color-mix(in srgb, var(--app-theme) 32%, #dce7df);
    background: var(--app-theme-soft);
}

.stock-page .stock-item input:focus {
    border-color: var(--app-theme);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-theme) 15%, transparent);
}

.expense-page .expense-value {
    color: var(--app-theme-dark);
    font-size: 13px;
}

.expense-page .expense-actions button {
    min-height: 30px;
    padding: 7px 10px;
    font-size: 10px;
}

.settings-page .user-list {
    gap: 10px;
}

.settings-page .user-row {
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--app-theme) 14%, #e2ece5);
    border-radius: 14px;
    background: linear-gradient(110deg, #fff, #f8fbf9);
    box-shadow: 0 4px 12px rgba(12, 45, 29, .05);
}

.settings-page .user-row > div:first-child strong {
    color: #173327;
    font-size: 13px;
}

.settings-page .user-row > div:first-child small {
    color: #718278;
    font-size: 10px;
}

.settings-page .role-badge {
    background: var(--app-theme-soft);
    color: var(--app-theme-dark);
}

.finance-page .chart-day {
    padding: 12px;
    border: 1px solid #e8f0eb;
    border-radius: 12px;
    background: linear-gradient(110deg, #fff, #f8fbf9);
}

.finance-page .chart-day-head {
    margin-bottom: 3px;
    color: #284638;
}

@media (max-width: 700px) {
    .barang-page .table-wrap,
    .mechanic-page .table-wrap {
        border-radius: 13px;
    }

    .barang-page .barang-table,
    .mechanic-page .mechanic-table {
        min-width: 620px;
    }

    .history-page .transaction-row {
        gap: 9px;
        padding: 12px;
    }
}

body.admin-menu-shell {
    min-height: 100vh;
    background: #f3f6f4 !important;
}

body.admin-menu-shell .admin-sidebar {
    position: fixed !important;
    top: 0;
    bottom: 0;
    left: 0;
    display: flex !important;
    flex-direction: column;
    width: 200px !important;
    height: 100vh;
    padding: 0;
    overflow: hidden;
    z-index: 20;
    border: 0;
    background: #071d18;
    color: #f5fff8;
}

body.admin-menu-shell .admin-sidebar::after {
    position: absolute;
    z-index: 0;
    right: 0;
    bottom: 0;
    left: 0;
    height: 270px;
    background-image: linear-gradient(180deg, #071d18 0%, rgba(7,29,24,.18) 42%, rgba(7,29,24,.25)), var(--dashboard-sidebar-image, none);
    background-position: center, center 54%;
    background-size: cover, cover;
    background-repeat: no-repeat;
    content: "";
    pointer-events: none;
}

body.admin-menu-shell .admin-sidebar .sidebar-brand {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 128px;
    place-items: center;
    padding: 15px 10px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    text-align: center;
}

body.admin-menu-shell .admin-sidebar .sidebar-brand > a {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
    color: #fff;
    text-decoration: none;
}

body.admin-menu-shell .admin-sidebar .sidebar-brand-logo {
    display: block;
    width: 100%;
    max-width: 150px;
    max-height: 82px;
    object-fit: contain;
}

body.admin-menu-shell .admin-sidebar .sidebar-brand-name { font-size: 17px; font-weight: 800; letter-spacing: .06em; }
body.admin-menu-shell .admin-sidebar .sidebar-brand-name strong { color: #17c51d; }
body.admin-menu-shell .admin-sidebar .sidebar-brand small { margin-top: 7px; color: #d4e3dc; font-size: 9px; font-weight: 700; letter-spacing: .04em; line-height: 1.3; }
body.admin-menu-shell .admin-sidebar nav { position: relative; z-index: 1; flex: 1; width: 100%; min-height: 0; overflow-y: auto; }
body.admin-menu-shell .admin-sidebar .sidebar-menu { display: flex; flex-direction: column; flex-grow: 1; gap: 4px; margin: 0; padding: 14px 8px; list-style: none; }
body.admin-menu-shell .admin-sidebar .sidebar-menu a { display: flex; min-height: 43px; align-items: center; gap: 13px; padding: 9px 12px; border-radius: 12px; color: #d0ded7; font-size: 13px; font-weight: 500; text-decoration: none; }
body.admin-menu-shell .admin-sidebar .sidebar-menu a .sidebar-icon,
body.admin-menu-shell .admin-sidebar .sidebar-footer .sidebar-icon { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; color: #d8e8df; }
body.admin-menu-shell .admin-sidebar .sidebar-menu a .sidebar-icon svg,
body.admin-menu-shell .admin-sidebar .sidebar-footer .sidebar-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
body.admin-menu-shell .admin-sidebar .sidebar-menu a:hover,
body.admin-menu-shell .admin-sidebar .sidebar-menu li.active a { background: linear-gradient(100deg, #1bc91e, #29a91d) !important; box-shadow: 0 5px 14px rgba(24,201,31,.23); color: #082517 !important; transform: none; }
body.admin-menu-shell .admin-sidebar .sidebar-footer { position: relative; z-index: 1; width: 100%; padding: 12px; border-top: 1px solid rgba(255,255,255,.1); }
body.admin-menu-shell .admin-sidebar .sidebar-footer form { margin: 0; }
body.admin-menu-shell .admin-sidebar .sidebar-footer .logout-btn { display: flex; width: 100%; align-items: center; justify-content: flex-start; gap: 13px; padding: 9px 12px; border: 0; background: transparent; color: #d8e7df; font: inherit; font-size: 13px; cursor: pointer; }
body.admin-menu-shell .admin-main {
    display: block !important;
    width: calc(100% - 200px) !important;
    max-width: none !important;
    min-height: 100vh !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 0 0 200px !important;
    padding: 0 20px 36px !important;
    overflow: visible !important;
    border-radius: 0 !important;
    background: #f3f6f4 !important;
    box-shadow: none !important;
}

body.admin-menu-shell .page-hero,
body.admin-menu-shell .barang-hero,
body.admin-menu-shell .shared-page-hero {
    position: relative;
    display: block;
    min-height: 250px !important;
    margin: 0 -20px 14px !important;
    padding: 24px 40px !important;
    overflow: hidden;
    border-radius: 0 0 20px 20px !important;
    background:
        linear-gradient(90deg, rgba(3,35,23,.94) 0%, rgba(4,54,29,.76) 43%, rgba(4,48,28,.08) 100%),
        var(--dashboard-header-image, var(--page-header-image, var(--barang-header-image, none))) center 66% / cover no-repeat,
        #07552f !important;
    color: #fff;
}

body.admin-menu-shell .page-hero::after,
body.admin-menu-shell .barang-hero::after,
body.admin-menu-shell .shared-page-hero::after {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(110deg, rgba(19,202,25,.36), transparent 52%);
    content: "";
    pointer-events: none;
}

body.admin-menu-shell .page-hero-top,
body.admin-menu-shell .page-hero-copy,
body.admin-menu-shell .barang-hero-top,
body.admin-menu-shell .barang-hero-copy,
body.admin-menu-shell .shared-page-hero-top,
body.admin-menu-shell .shared-page-hero-copy { position: relative; z-index: 1; }

body.admin-menu-shell .page-hero-copy,
body.admin-menu-shell .barang-hero-copy,
body.admin-menu-shell .shared-page-hero-copy { margin-top: 34px; }

body.admin-menu-shell .shared-page-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
body.admin-menu-shell .shared-page-hero-tag { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid #ffffff50; border-radius: 9px; background: #ffffff12; color: #fff; font-size: 11px; font-weight: 700; }
body.admin-menu-shell .shared-page-hero-account { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid #ffffff45; border-radius: 12px; background: #ffffff12; color: #fff; font-size: 10px; font-weight: 700; text-decoration: none; }
body.admin-menu-shell .shared-page-hero-account small { display: block; color: #d4e3dc; font-size: 8px; font-weight: 500; }
body.admin-menu-shell .shared-page-hero-avatar { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #e8f5ef; color: #17543b; font-size: 15px; }
body.admin-menu-shell .shared-page-hero-copy h1 { margin: 0; color: #fff; font-size: clamp(34px, 4vw, 54px); line-height: 1.08; letter-spacing: -1px; }
body.admin-menu-shell .shared-page-hero-copy p { margin: 8px 0 0; color: #e0f3e6; font-size: 13px; }
body.admin-menu-shell .history-page,
body.admin-menu-shell .finance-page,
body.admin-menu-shell .settings-page { width: 100% !important; max-width: none !important; min-height: 0 !important; margin: 0 !important; padding: 0 2px 30px !important; background: transparent !important; }
body.admin-menu-shell .history-head,
body.admin-menu-shell .finance-head,
body.admin-menu-shell .settings-head { display: none; }

body.admin-menu-shell .pos-header {
    position: relative;
    display: flex;
    min-height: 250px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin: 0 -20px 14px;
    padding: 30px 42px;
    overflow: hidden;
    border: 0;
    border-radius: 0 0 20px 20px;
    background:
        linear-gradient(90deg, rgba(3,35,23,.94) 0%, rgba(4,54,29,.76) 43%, rgba(4,48,28,.08) 100%),
        var(--dashboard-header-image, none) center 66% / cover no-repeat,
        #07552f;
    color: #fff;
}

body.admin-menu-shell .pos-header > div:first-child,
body.admin-menu-shell .pos-actions { position: relative; z-index: 1; }
body.admin-menu-shell .pos-header > div:first-child { display: flex; flex-direction: column; padding-top: 25px; }
body.admin-menu-shell .cashier-hero-label { color: #fff; font-size: clamp(20px, 2.4vw, 34px); font-weight: 700; line-height: 1.15; }
body.admin-menu-shell .pos-header strong { color: #88e319; font-size: clamp(34px, 4vw, 54px); line-height: 1.08; }
body.admin-menu-shell .pos-header small { margin-top: 8px; color: #e0f3e6; font-size: 12px; }
body.admin-menu-shell .pos-actions a { padding: 9px 13px; border: 1px solid #ffffff45; border-radius: 12px; background: #071d18b8; color: #fff; }
body.admin-menu-shell .pos-layout {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 8px 0 22px;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 330px);
    gap: 20px;
}

body.admin-menu-shell .pos-layout > .panel:first-child { min-width: 0; }
body.admin-menu-shell .pos-layout > .cart-panel { width: 100%; min-width: 0; padding: 18px; }
body.admin-menu-shell .pos-layout h1 { margin-top: 0; }
body.admin-menu-shell.cashier-page { padding-bottom: 0 !important; }
body.admin-menu-shell .category-tabs {
    display: flex;
    width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scrollbar-width: thin;
}
body.admin-menu-shell .category-tabs button {
    flex: 0 0 auto;
}
body.admin-menu-shell .category-tabs:focus-visible {
    outline: 2px solid var(--app-theme);
    outline-offset: 2px;
    border-radius: 8px;
}

body.admin-menu-shell .page-hero-copy h1,
body.admin-menu-shell .barang-hero-copy h1 { font-size: clamp(38px, 4vw, 54px) !important; }

body.admin-menu-shell .page-hero-copy p,
body.admin-menu-shell .barang-hero-copy p { font-size: 13px !important; }

body.admin-menu-shell .page-stat,
body.admin-menu-shell .barang-stat { min-height: 92px; padding: 16px; }

body.admin-menu-shell .page-stat span,
body.admin-menu-shell .barang-stat span { font-size: 12px; }

body.admin-menu-shell .page-stat strong,
body.admin-menu-shell .barang-stat strong { font-size: 20px; }

body.admin-menu-shell .page-stat small,
body.admin-menu-shell .barang-stat small { font-size: 11px; }

body.admin-menu-shell .content-card,
body.admin-menu-shell .barang-list-card,
body.admin-menu-shell .barang-create-card,
body.admin-menu-shell .mechanic-create-card,
body.admin-menu-shell .expense-create-card,
body.admin-menu-shell .filter-card,
body.admin-menu-shell .history-card,
body.admin-menu-shell .settings-card,
body.admin-menu-shell .chart-card { padding: 20px; }

body.admin-menu-shell .card-title,
body.admin-menu-shell .settings-card h2,
body.admin-menu-shell .chart-head h2,
body.admin-menu-shell .history-card h2 { font-size: 18px; }

body.admin-menu-shell .table-toolbar input,
body.admin-menu-shell .stock-toolbar input,
body.admin-menu-shell .barang-toolbar input,
body.admin-menu-shell .history-search input {
    min-height: 46px;
    padding: 10px 13px;
    font-size: 14px;
}

body.admin-menu-shell .mechanic-form label,
body.admin-menu-shell .expense-form label,
body.admin-menu-shell .filter-form label,
body.admin-menu-shell .form-grid label { font-size: 12px; }

body.admin-menu-shell .mechanic-form input,
body.admin-menu-shell .expense-form input,
body.admin-menu-shell .barang-form input,
body.admin-menu-shell .barang-form select,
body.admin-menu-shell .stock-table input,
body.admin-menu-shell .filter-form input:not([type="search"]),
body.admin-menu-shell .filter-form select,
body.admin-menu-shell .form-grid input,
body.admin-menu-shell .form-grid select,
body.admin-menu-shell .form-grid textarea,
body.admin-menu-shell .permission-user-select select {
    min-height: 44px;
    padding: 10px 12px;
    font-size: 14px;
}

body.admin-menu-shell .mechanic-table th,
body.admin-menu-shell .mechanic-table td,
body.admin-menu-shell .barang-table th,
body.admin-menu-shell .barang-table td,
body.admin-menu-shell .stock-table th,
body.admin-menu-shell .stock-table td,
body.admin-menu-shell .expense-table th,
body.admin-menu-shell .expense-table td {
    padding: 13px 12px;
    font-size: 13px;
}

body.admin-menu-shell .mechanic-table th,
body.admin-menu-shell .barang-table th,
body.admin-menu-shell .stock-table th,
body.admin-menu-shell .expense-table th { font-size: 11px; }

body.admin-menu-shell .transaction-row { padding: 17px; }
body.admin-menu-shell .transaction-row strong { font-size: 14px; }
body.admin-menu-shell .transaction-row small,
body.admin-menu-shell .transaction-meta { font-size: 11px; }
body.admin-menu-shell .transaction-total { font-size: 15px; }
body.admin-menu-shell .mechanic-unit { min-height: 44px; padding: 11px 13px; font-size: 13px; }
body.admin-menu-shell .mechanic-unit strong { font-size: 15px; }

body.admin-menu-shell .finance-card { min-height: 100px; padding: 18px 15px; }
body.admin-menu-shell .finance-card span { font-size: 12px; }
body.admin-menu-shell .finance-card strong { font-size: 16px; }
body.admin-menu-shell .chart-day { padding: 16px; }
body.admin-menu-shell .chart-day-head,
body.admin-menu-shell .chart-line-label,
body.admin-menu-shell .chart-value { font-size: 11px; }

body.admin-menu-shell .product { padding: 11px; }
body.admin-menu-shell .product-image { height: 125px; }
body.admin-menu-shell .product h3 { font-size: 15px; }
body.admin-menu-shell .product p { font-size: 17px; }
body.admin-menu-shell .product small { font-size: 12px; }
body.admin-menu-shell .service-form label,
body.admin-menu-shell .service-form small { font-size: 12px; }
body.admin-menu-shell .checkout input,
body.admin-menu-shell .checkout select { min-height: 46px; font-size: 14px; }

body.admin-menu-shell,
body.admin-menu-shell .admin-main,
body.admin-menu-shell .admin-main > *,
body.admin-menu-shell .barang-workspace,
body.admin-menu-shell .mechanic-workspace,
body.admin-menu-shell .expense-workspace,
body.admin-menu-shell .pos-layout {
    min-width: 0;
    max-width: 100%;
}

body.admin-menu-shell {
    width: 100%;
    overflow-x: hidden;
}

body.admin-menu-shell img,
body.admin-menu-shell input,
body.admin-menu-shell select,
body.admin-menu-shell textarea,
body.admin-menu-shell button {
    max-width: 100%;
}

body.admin-menu-shell .table-wrap,
body.admin-menu-shell .history-card,
body.admin-menu-shell .filter-card,
body.admin-menu-shell .content-card,
body.admin-menu-shell .barang-list-card,
body.admin-menu-shell .barang-create-card,
body.admin-menu-shell .mechanic-create-card,
body.admin-menu-shell .expense-create-card {
    min-width: 0;
    max-width: 100%;
}

body.admin-menu-shell .table-wrap {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

body.admin-menu-shell .admin-main > .page-stats,
body.admin-menu-shell .admin-main > .barang-stats {
    width: 100%;
}



@media (min-width: 761px) {
    body.admin-menu-shell {
        width: 80vw;
        min-height: 80vh;
        overflow-x: hidden;
        zoom: 1.25;
    }

    body.admin-menu-shell .admin-sidebar { height: 80vh; }
}

@media (min-width: 761px) and (max-width: 900px) {
    body.admin-menu-shell .admin-sidebar { width: 174px !important; }
    body.admin-menu-shell .admin-main {
        width: calc(100% - 174px) !important;
        margin-left: 174px !important;
        padding-right: 14px !important;
        padding-left: 14px !important;
    }

    body.admin-menu-shell .page-hero,
    body.admin-menu-shell .barang-hero,
    body.admin-menu-shell .shared-page-hero,
    body.admin-menu-shell .pos-header {
        margin-right: -14px !important;
        margin-left: -14px !important;
        padding-right: 24px !important;
        padding-left: 24px !important;
    }
}

@media (max-width: 1024px) {
    body.admin-menu-shell .pos-layout { grid-template-columns: minmax(0, 1fr) minmax(260px, 32%); gap: 16px; }
    body.admin-menu-shell .pos-layout .product-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
}

@media (max-width: 900px) and (min-width: 761px) {
    body.admin-menu-shell .pos-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 14px; }
}

@media (max-width: 760px) {
    body.admin-menu-shell .admin-sidebar { display: none !important; }
    body.admin-menu-shell .admin-main { width: 100% !important; margin-left: 0 !important; padding: 0 12px 28px !important; }
    body.admin-menu-shell .page-hero,
    body.admin-menu-shell .barang-hero,
    body.admin-menu-shell .shared-page-hero { min-height: 190px !important; margin-right: -12px !important; margin-left: -12px !important; padding: 18px 20px !important; }
    body.admin-menu-shell .pos-header { min-height: 250px; margin-right: -12px; margin-left: -12px; padding: 30px 24px; }
    body.admin-menu-shell .pos-header > div:first-child { padding-top: 25px; }
    body.admin-menu-shell .page-hero-copy,
    body.admin-menu-shell .barang-hero-copy,
    body.admin-menu-shell .shared-page-hero-copy { margin-top: 22px; }
    body.admin-menu-shell { width: 100%; min-height: 100vh; zoom: 1; }
    body.admin-menu-shell .admin-sidebar { height: 100vh; }
    body.admin-menu-shell .pos-layout { grid-template-columns: minmax(0, 1fr); padding-right: 0; padding-left: 0; }
    body.admin-menu-shell .pos-layout .product-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
    body.admin-menu-shell .mechanic-workspace,
    body.admin-menu-shell .expense-workspace,
    body.admin-menu-shell .barang-workspace { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 540px) {
    body.admin-menu-shell .page-hero,
    body.admin-menu-shell .barang-hero,
    body.admin-menu-shell .shared-page-hero { min-height: 160px !important; padding: 14px 16px !important; }
    body.admin-menu-shell .pos-header { min-height: 190px; padding: 18px 16px; }
    body.admin-menu-shell .pos-header > div:first-child { padding-top: 25px; }
    body.admin-menu-shell .pos-header strong { font-size: 30px; }
    body.admin-menu-shell .pos-header small { font-size: 10px; }
    body.admin-menu-shell .pos-actions a { font-size: 10px; }
    body.admin-menu-shell .shared-page-hero-copy h1 { font-size: 30px; }
    body.admin-menu-shell .shared-page-hero-copy p { max-width: 280px; font-size: 11px; }
    body.admin-menu-shell .history-page,
    body.admin-menu-shell .finance-page,
    body.admin-menu-shell .settings-page { padding-right: 0 !important; padding-left: 0 !important; }
    body.admin-menu-shell .admin-main { padding-right: 10px !important; padding-left: 10px !important; }
    body.admin-menu-shell .pos-layout { padding: 8px 0 76px; }
    body.admin-menu-shell .pos-layout .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.admin-menu-shell .filter-form,
    body.admin-menu-shell .barang-toolbar,
    body.admin-menu-shell .stock-toolbar,
    body.admin-menu-shell .expense-toolbar { min-width: 0; }
    body.admin-menu-shell .dashboard-image-grid,
    body.admin-menu-shell .permission-grid { grid-template-columns: minmax(0, 1fr); }
    body.admin-menu-shell .content-card,
    body.admin-menu-shell .barang-list-card,
    body.admin-menu-shell .barang-create-card,
    body.admin-menu-shell .mechanic-create-card,
    body.admin-menu-shell .expense-create-card,
    body.admin-menu-shell .filter-card,
    body.admin-menu-shell .history-card,
    body.admin-menu-shell .settings-card,
    body.admin-menu-shell .chart-card { padding: 14px; }
    body.admin-menu-shell .page-stat,
    body.admin-menu-shell .barang-stat { min-height: 78px; padding: 11px; }
    body.admin-menu-shell .page-stat strong,
    body.admin-menu-shell .barang-stat strong { font-size: 17px; }
    body.admin-menu-shell .page-stat span,
    body.admin-menu-shell .barang-stat span { font-size: 10px; }
    body.admin-menu-shell .product-image { height: 90px; }
}

@media (min-width: 1200px) {
    body.admin-menu-shell .pos-layout .product-grid {
        grid-template-columns: repeat(10, minmax(0, 1fr));
        gap: 8px;
    }

    body.admin-menu-shell .pos-layout .product {
        min-width: 0;
        padding: 6px;
        border-radius: 11px;
    }

    body.admin-menu-shell .pos-layout .product-image {
        height: 62px;
        border-radius: 8px;
        font-size: 28px;
    }

    body.admin-menu-shell .pos-layout .product h3 {
        gap: 3px;
        margin: 6px 2px 3px;
        font-size: 10px;
    }

    body.admin-menu-shell .pos-layout .product p {
        margin: 0 2px;
        font-size: 11px;
    }

    body.admin-menu-shell .pos-layout .product small {
        margin: 0 2px;
        font-size: 9px;
    }
}

@media (min-width: 761px) and (max-width: 1199px) {
    body.admin-menu-shell .pos-layout .product-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (min-width: 761px) {
    body.admin-menu-shell .pos-layout > .cart-panel {
        padding: 14px;
    }

    body.admin-menu-shell .cart-heading {
        gap: 6px;
        margin-bottom: 5px;
    }

    body.admin-menu-shell .cart-heading h2 {
        margin: 0;
        font-size: 18px;
    }

    body.admin-menu-shell .clear-cart-icon {
        min-height: 28px;
        padding: 4px 7px;
        font-size: 9px;
    }

    body.admin-menu-shell .cart-list {
        min-height: 0;
        max-height: 80px;
        margin-bottom: 6px;
    }

    body.admin-menu-shell .cart-list > p {
        margin: 4px 0;
        font-size: 12px;
        line-height: 1.3;
    }

    body.admin-menu-shell .cart-row {
        gap: 5px;
        padding: 5px 0;
    }

    body.admin-menu-shell .cart-row strong {
        font-size: 13px;
    }

    body.admin-menu-shell .service-form {
        gap: 5px;
        margin-bottom: 7px;
        padding: 8px;
    }

    body.admin-menu-shell .service-form h3 {
        font-size: 12px;
    }

    body.admin-menu-shell .service-form label {
        grid-template-columns: minmax(100px, 40%) minmax(0, 1fr);
        align-items: center;
        gap: 7px;
        font-size: 10px;
    }

    body.admin-menu-shell .service-form input,
    body.admin-menu-shell .service-form select {
        min-height: 32px;
        padding: 5px 7px;
        font-size: 11px;
    }

    body.admin-menu-shell .service-form small {
        font-size: 9px;
        line-height: 1.25;
    }

    body.admin-menu-shell .summary {
        margin-top: 0;
        padding-top: 6px;
        font-size: 12px;
    }

    body.admin-menu-shell .summary div {
        margin: 4px 0;
    }

    body.admin-menu-shell .checkout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
    }

    body.admin-menu-shell .checkout input[name="nama_pelanggan"],
    body.admin-menu-shell .checkout input[name="no_hp_pelanggan"] {
        min-width: 0;
        min-height: 34px;
        padding: 5px 7px;
        font-size: 10px;
    }

    body.admin-menu-shell .checkout #payment,
    body.admin-menu-shell .checkout .qris-payment,
    body.admin-menu-shell .checkout .cash-calculator,
    body.admin-menu-shell .checkout .btn,
    body.admin-menu-shell .checkout .logout-btn {
        grid-column: 1 / -1;
    }

    body.admin-menu-shell .checkout #payment {
        min-height: 34px;
        padding: 5px 7px;
        font-size: 11px;
    }

    body.admin-menu-shell .checkout .payment-options {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, 105px) minmax(0, 1fr);
        gap: 5px;
    }

    body.admin-menu-shell .checkout .payment-options #payment-status {
        width: 100%;
        min-width: 0;
        font-size: 11px;
    }

    body.admin-menu-shell .checkout .payment-options #payment {
        grid-column: auto;
    }

    body.admin-menu-shell .cash-calculator {
        gap: 5px;
        padding: 8px;
    }

    body.admin-menu-shell .cash-calculator-title {
        font-size: 10px;
    }

    body.admin-menu-shell .cash-calculator input {
        min-height: 34px;
        padding: 5px 7px;
        font-size: 11px;
    }

    body.admin-menu-shell .cash-calculator .change-row {
        padding-top: 5px;
        font-size: 10px;
    }

    body.admin-menu-shell .cash-calculator .change-value {
        font-size: 13px;
    }

    body.admin-menu-shell .checkout .btn,
    body.admin-menu-shell .checkout .logout-btn {
        min-height: 34px;
        margin-top: 0;
        padding: 6px;
        font-size: 11px;
    }
}

@media (max-width: 760px) {
    body.admin-menu-shell .pos-layout > aside.open {
        top: 2vh;
        bottom: 2vh;
        display: flex;
        flex-direction: column;
        gap: 0;
        max-height: 96vh;
        padding: 8px 10px;
        overflow: hidden;
    }

    body.admin-menu-shell .cart-heading {
        flex: 0 0 auto;
        gap: 5px;
        margin-bottom: 3px;
    }

    body.admin-menu-shell .cart-heading h2 {
        font-size: 14px;
    }

    body.admin-menu-shell .clear-cart-icon {
        min-height: 24px;
        padding: 3px 5px;
        font-size: 8px;
    }

    body.admin-menu-shell .cart-list {
        flex: 0 0 auto;
        min-height: 0;
        max-height: 32px;
        margin-bottom: 3px;
        overflow: auto;
    }

    body.admin-menu-shell .cart-list > p {
        margin: 0;
        font-size: 10px;
        line-height: 1.2;
    }

    body.admin-menu-shell .cart-row {
        padding: 3px 0;
    }

    body.admin-menu-shell .cart-row strong {
        font-size: 11px;
    }

    body.admin-menu-shell .service-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex: 0 0 auto;
        gap: 3px 6px;
        margin-bottom: 4px;
        padding: 5px 6px;
        border-radius: 8px;
    }

    body.admin-menu-shell .service-form h3 {
        grid-column: 1 / -1;
        font-size: 10px;
    }

    body.admin-menu-shell .service-form label {
        gap: 1px;
        font-size: 8px;
        line-height: 1.1;
    }

    body.admin-menu-shell .service-form input,
    body.admin-menu-shell .service-form select {
        height: 27px;
        min-height: 27px;
        padding: 3px 6px;
        border-radius: 6px;
        font-size: 10px;
    }

    body.admin-menu-shell .service-form small {
        grid-column: 1 / -1;
        font-size: 8px;
        line-height: 1.15;
    }

    body.admin-menu-shell .summary {
        flex: 0 0 auto;
        margin-top: 0;
        padding-top: 3px;
        font-size: 11px;
    }

    body.admin-menu-shell .summary div {
        margin: 2px 0;
    }

    body.admin-menu-shell .checkout {
        flex: 0 0 auto;
        gap: 3px;
    }

    body.admin-menu-shell .checkout input,
    body.admin-menu-shell .checkout select {
        min-height: 29px;
        padding: 4px 7px;
        border-radius: 7px;
        font-size: 10px;
    }

    body.admin-menu-shell .checkout .payment-options {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, 105px) minmax(0, 1fr);
        gap: 3px;
    }

    body.admin-menu-shell .checkout .payment-options #payment-status {
        width: 100%;
        min-width: 0;
        font-size: 11px;
    }

    body.admin-menu-shell .checkout .payment-options #payment {
        grid-column: auto;
    }

    body.admin-menu-shell .cash-calculator {
        gap: 3px;
        padding: 5px;
        border-radius: 7px;
    }

    body.admin-menu-shell .cash-calculator-title {
        font-size: 8px;
    }

    body.admin-menu-shell .cash-calculator-total {
        font-size: 9px;
    }

    body.admin-menu-shell .cash-calculator .change-row {
        padding-top: 3px;
        font-size: 8px;
    }

    body.admin-menu-shell .cash-calculator .change-value {
        font-size: 10px;
    }

    body.admin-menu-shell .btn,
    body.admin-menu-shell .checkout .logout-btn {
        min-height: 29px;
        padding: 5px;
        border-radius: 7px;
        font-size: 10px;
    }
}
