/* LocalGo visual theme refresh — Package E */

.commercial-notice {
    margin: 24px 0;
    padding: 16px 20px;
    background: var(--lg-surface-2);
    border: 1px solid var(--lg-line-strong);
    border-left: 4px solid var(--lg-lime);
    border-radius: 12px;
}
.commercial-notice h2 { margin-top: 0; }
.commercial-page { min-width: 0; overflow-wrap: anywhere; }
.commercial-page table { display: block; max-width: 100%; overflow-x: auto; }
.commercial-table-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; border: 1px solid var(--lg-line); border-radius: 10px; }
.commercial-table-scroll > table { display: table; width: 100%; min-width: 660px; max-width: none; table-layout: auto; overflow: visible; }
.commercial-table-scroll th, .commercial-table-scroll td { overflow-wrap: normal; word-break: normal; white-space: normal; }
.commercial-table-scroll th { white-space: nowrap; }
.commercial-table-hint { margin: 8px 0 20px; color: var(--lg-muted); font-size: .85rem; }
.criterion-description { display: block; margin-top: 6px; color: var(--lg-muted); max-width: 34em; }
.criterion-state { display: inline-block; padding: 5px 9px; border: 1px solid var(--lg-line); border-radius: 8px; font-size: .9rem; }
.criterion-state--success { color: var(--lg-success-text); background: var(--lg-success-bg); }
.criterion-state--warning { color: var(--lg-warning-text); background: var(--lg-warning-bg); }
.criterion-state--unknown, .criterion-state--neutral { color: var(--lg-muted); background: var(--lg-surface-2); }
.commercial-page td, .commercial-page th { padding: 12px; vertical-align: top; text-align: left; border-bottom: 1px solid var(--lg-line); }
.commercial-page td small { color: var(--lg-muted); }
.commercial-page input[type="checkbox"] { width: 20px; min-width: 20px; height: 20px; accent-color: var(--lg-lime); }
.commercial-page summary { cursor: pointer; color: var(--lg-lime-bright); padding: 8px 0; }
.commercial-page .form-error { color: var(--lg-danger-text); background: var(--lg-danger-bg); padding: 12px; border-radius: 8px; }

:root {
    color-scheme: dark;
    --lg-bg: #0b100d;
    --lg-surface: #141c17;
    --lg-surface-2: #101712;
    --lg-surface-3: #1b261e;
    --lg-lime: #b4ef00;
    --lg-lime-bright: #ceff20;
    --lg-lime-dark: #8fca00;
    --lg-text: #eef3ef;
    --lg-muted: #b3bfb6;
    --lg-subtle: #97a69b;
    --lg-line: #2a382e;
    --lg-line-strong: #52634f;
    --lg-panel: #141c17;
    --lg-shadow: 0 4px 18px rgba(0,0,0,.16);
    --lg-success-text: #ceff20;
    --lg-success-bg: #223313;
    --lg-warning-text: #ffd978;
    --lg-warning-bg: #302616;
    --lg-danger-text: #ffd2d2;
    --lg-danger-bg: #341c1c;
    --primary: var(--lg-lime);
    --primary-dark: var(--lg-lime);
    --background: var(--lg-bg);
    --surface: var(--lg-surface);
    --text: var(--lg-text);
    --text-light: var(--lg-muted);
    --border: var(--lg-line);
}

body {
    color: var(--lg-text);
    background: var(--lg-bg);
    line-height: 1.55;
}

.content h1, .content h2, .content h3,
.page-header h1, .dashboard-header h1,
.restaurant-info h2, .product-info h2,
.cart-info h2, .client-order-heading h2,
.courier-order-heading h3 { color: var(--lg-text) !important; }

::selection { color: #071006; background: var(--lg-lime-bright); }

:focus-visible { outline: 3px solid var(--lg-lime-bright) !important; outline-offset: 3px; }

.app { background: transparent; }
.content { color: var(--lg-text); background: transparent; }
.sidebar {
    border-right: 1px solid var(--lg-line);
    background: var(--lg-surface-2);
    box-shadow: none;
}
.logo-text, .footer-brand p, .footer-sidebar { color: var(--lg-muted); }
.sidebar nav a { border: 1px solid transparent; color: var(--lg-muted); background: transparent; }
.sidebar nav a:hover,
.sidebar nav a.active {
    border-color: var(--lg-line);
    color: var(--lg-lime-bright);
    background: rgba(180,239,0,.10);
    box-shadow: inset 3px 0 0 var(--lg-lime);
}

.topbar {
    border: 1px solid var(--lg-line);
    color: var(--lg-text);
    background: var(--lg-surface);
    box-shadow: none;
    padding: 16px 22px;
    min-height: 76px;
    border-radius: 14px;
    margin-bottom: 32px;
}
.topbar h1, .topbar h2, .welcome h1 { color: var(--lg-text); }
.welcome p, .page-header p, .dashboard-header p { color: var(--lg-muted); }
.logout-btn {
    border: 1px solid rgba(255,125,125,.52);
    color: #ffd2d2;
    background: rgba(130,0,0,.24);
}
.logout-btn:hover { color: #fff; background: #b4232d; }

.card, .restaurant-card, .product-card, .cart-sidebar, .cart-item, .cart-summary,
.empty-cart, .order-summary, .order-card, .client-order-card, .courier-order-card,
.courier-empty, .restaurant-admin-header, .restaurant-admin-section,
.admin-metrics article, .admin-table-wrap, .admin-entity-card,
.admin-detail-grid section, .admin-items, .admin-totals, .gps-panel,
.admin-promotion-form, .admin-table tr, .content > main.container {
    border: 1px solid var(--lg-line) !important;
    color: var(--lg-text);
    background: var(--lg-panel) !important;
    box-shadow: var(--lg-shadow) !important;
}

.card:hover, .restaurant-card:hover, .product-card:hover, .cart-item:hover,
.client-order-card:hover, .courier-order-card:hover {
    border-color: var(--lg-line-strong) !important;
    box-shadow: var(--lg-shadow) !important;
    transform: none !important;
}

.card p, .restaurant-info p, .product-info p, .cart-info p, .empty-cart p,
.client-order-card p, .courier-order-details dt, .legacy-note, .ownership-note,
.gps-meta, .admin-metrics span, .admin-metric-unavailable small {
    color: var(--lg-muted) !important;
}

.restaurant-image {
    color: var(--lg-lime-bright) !important;
    background: var(--lg-surface-3) !important;
}

.restaurant-btn, .checkout-btn, .order-card form button, .courier-order-card form button,
.inline-actions button, .restaurant-form button, .admin-details-link, .admin-back-link,
.login-submit, .gps-navigation, .content > main.container button {
    border: 1px solid var(--lg-lime-bright) !important;
    color: #101600 !important;
    background: var(--lg-lime) !important;
    box-shadow: none;
}
.restaurant-btn:hover, .checkout-btn:hover, .order-card form button:hover,
.courier-order-card form button:hover, .inline-actions button:hover,
.restaurant-form button:hover, .admin-details-link:hover, .admin-back-link:hover,
.content > main.container button:hover {
    background: var(--lg-lime-bright) !important;
    box-shadow: none;
    transform: none;
}
.restaurant-btn-disabled,
.restaurant-card.is-closed .restaurant-btn {
    border-color: rgba(255,255,255,.16) !important;
    color: var(--lg-subtle) !important;
    cursor: not-allowed;
    background: rgba(255,255,255,.06) !important;
    box-shadow: none !important;
    transform: none !important;
}
.inline-actions a, .restaurant-admin-tabs a {
    border: 1px solid var(--lg-line);
    color: var(--lg-lime-bright);
    background: rgba(180,239,0,.09);
}
.restaurant-admin-tabs span { color: var(--lg-lime-bright); }

input, textarea, select,
.restaurant-form input, .restaurant-form textarea, .restaurant-form select,
.admin-promotion-form input, .admin-promotion-form select,
.admin-review-actions textarea, .delivery-code-form input,
.content > main.container input, .content > main.container textarea, .content > main.container select {
    border: 1px solid var(--lg-line) !important;
    color: var(--lg-text) !important;
    background: rgba(0,0,0,.24) !important;
}
input::placeholder, textarea::placeholder { color: var(--lg-subtle); }
input:focus, textarea:focus, select:focus {
    border-color: var(--lg-lime-bright) !important;
    box-shadow: 0 0 0 4px rgba(180,239,0,.12) !important;
    outline: 0;
}
select option { color: #fff; background: var(--lg-surface-2); }
button:disabled, input:disabled, select:disabled, textarea:disabled {
    border-color: rgba(255,255,255,.14) !important;
    color: var(--lg-subtle) !important;
    cursor: not-allowed;
    background: rgba(255,255,255,.05) !important;
    box-shadow: none !important;
}
:is(.restaurant-form, .courier-order-card, .inline-actions, .admin-promotion-form, .content > main.container) button:disabled,
:is(.restaurant-form, .courier-order-card, .inline-actions, .admin-promotion-form, .content > main.container) button:disabled:hover {
    border-color: var(--lg-line) !important;
    color: var(--lg-subtle) !important;
    background: var(--lg-surface-3) !important;
    box-shadow: none !important;
    transform: none !important;
    cursor: not-allowed;
}

.admin-tab, .courier-tab {
    border-color: var(--lg-line) !important;
    color: var(--lg-muted) !important;
    background: rgba(7,16,6,.78) !important;
}
.admin-tab span, .courier-tab span { color: var(--lg-muted); background: rgba(255,255,255,.08); }
.admin-tab.is-active, .courier-tab.is-active {
    border-color: var(--lg-lime-bright) !important;
    color: #101600 !important;
    background: var(--lg-lime) !important;
    box-shadow: none;
}
.admin-tab.is-active span, .courier-tab.is-active span { color: #101600; background: rgba(255,255,255,.52); }

.admin-table th, .responsive-table th {
    color: var(--lg-muted) !important;
    background: rgba(180,239,0,.08) !important;
}
.admin-table td, .responsive-table td { border-color: var(--lg-line) !important; }
.responsive-table a, .admin-inline-link, .admin-entity-card a,
.client-order-card > a, .content > main.container a { color: var(--lg-lime-bright) !important; }

.restaurant-order-card, .managed-product, .admin-review-grid > div,
.gps-list article {
    border-color: var(--lg-line) !important;
    color: var(--lg-text);
    background: rgba(0,0,0,.16) !important;
}
.managed-product.is-inactive, .admin-metric-unavailable { background: rgba(255,255,255,.035) !important; }
.product-create summary, .restaurant-name, .admin-kicker { color: var(--lg-lime-bright) !important; }

.order-status, .admin-status, .client-order-heading span, .card-heading span,
.restaurant-list-status.open, .restaurant-state.open, .courier-live-status.online {
    border: 1px solid rgba(180,239,0,.34);
    color: var(--lg-lime-bright) !important;
    background: rgba(100,150,0,.18) !important;
}
.restaurant-list-status.closed, .restaurant-state.closed, .courier-live-status.offline,
.delivery-message.error, .admin-promotion-message--error {
    border: 1px solid rgba(255,125,125,.46);
    color: #ffd2d2 !important;
    background: rgba(130,0,0,.24) !important;
}
.delivery-message.success, .admin-promotion-message--success, .delivered-note {
    border: 1px solid rgba(180,239,0,.34);
    color: var(--lg-lime-bright) !important;
    background: rgba(100,150,0,.18) !important;
}
.admin-finance-warning, .dispatch-state.is-searching, .caps-warning {
    border-color: rgba(245,158,11,.46) !important;
    color: #ffd978 !important;
    background: rgba(120,70,0,.24) !important;
}

.delivery-code {
    border-color: var(--lg-lime) !important;
    background: rgba(180,239,0,.08) !important;
}
.delivery-code > strong, .pickup-code-detail dd strong { color: var(--lg-lime-bright) !important; }
.order-progress span { color: var(--lg-muted); background: rgba(255,255,255,.08); }
.order-progress span.is-complete { color: #101600; background: var(--lg-lime); }

.cart-actions button, .cart-item-controls button, .delete-btn {
    border-color: var(--lg-line) !important;
    color: var(--lg-lime-bright) !important;
    background: rgba(180,239,0,.08) !important;
}
.delete-btn { color: #ffaaaa !important; }
.summary-line, .cart-sidebar hr { border-color: var(--lg-line) !important; }
.subtotal, .cart-total strong, .summary-line strong { color: var(--lg-lime-bright) !important; }

.gps-map, .route-summary span { color: #071006; background: #e8efd9; }
.gps-stale { color: #ffd978; }
.gps-fresh { color: var(--lg-lime-bright); }

.admin-readonly-note {
    border-left-color: var(--lg-lime) !important;
    color: var(--lg-muted);
    background: rgba(180,239,0,.08) !important;
}
.admin-review-grid dt { color: var(--lg-muted); }
.admin-review-timeline li { border-left-color: var(--lg-lime); background: rgba(180,239,0,.06); }

/* Standalone checkout and confirmation pages */
.checkout-container, .success-card { color: var(--lg-text); }
.checkout-card, .summary-card, .success-card {
    border: 1px solid var(--lg-line) !important;
    color: var(--lg-text) !important;
    background: var(--lg-panel) !important;
    box-shadow: var(--lg-shadow) !important;
}
.checkout-card .subtitle, .summary-card .summary-row, .success-card p { color: var(--lg-muted) !important; }
.checkout-card button, .success-card a {
    border: 1px solid var(--lg-lime-bright) !important;
    color: #101600 !important;
    background: linear-gradient(135deg, var(--lg-lime-bright), var(--lg-lime-dark)) !important;
}
.success-icon { color: #101600 !important; background: var(--lg-lime) !important; }

/* Calm, consistent controls and clear action hierarchy. */
.content button, .content input:not([type="hidden"]), .content select,
.content textarea { font: inherit; border-radius: 10px; }
.content button { min-height: 42px; padding: 9px 15px; border: 1px solid var(--lg-line); color: var(--lg-text); background: var(--lg-surface-3); box-shadow: none; }
.content input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.content select, .content textarea { padding: 11px 13px; max-width: 100%; }
.content input[type="checkbox"], .content input[type="radio"] { accent-color: var(--lg-lime); width: 18px; height: 18px; }
.content button:hover { border-color: var(--lg-line-strong); }
.content .secondary, .content .inline-actions a,
.content .restaurant-admin-tabs a, .content .admin-back-link,
.content .gps-navigation {
    color: var(--lg-text) !important;
    border: 1px solid var(--lg-line-strong) !important;
    background: var(--lg-surface-3) !important;
    box-shadow: none !important;
}
.content .admin-details-link { color: #101600 !important; }
.admin-tab.is-active span, .courier-tab.is-active span { color: #101600; background: rgba(0,0,0,.10); }
.admin-tab span, .courier-tab span { color: var(--lg-muted); background: var(--lg-surface-3); }
.dispatch-state, .route-summary span { color: var(--lg-muted); background: var(--lg-surface-3); }
.content .admin-status--offline { color: var(--lg-muted) !important; background: var(--lg-surface-3) !important; }
.content .admin-status--online, .content .courier-live-status.online,
.content .restaurant-state.open, .content .restaurant-list-status.open,
.content .delivered-note { color: #9fe0b1 !important; background: #163222 !important; border-color: #305c3c; }
.content .restaurant-state.closed, .content .restaurant-list-status.closed,
.content .courier-live-status.offline { color: #edb1b4 !important; background: #352124 !important; border-color: #624046; }
.order-status, .admin-status, .client-order-heading span, .card-heading span { color: #d4dccf !important; background: var(--lg-surface-3) !important; border-color: var(--lg-line) !important; }
.card-heading span { padding: 4px 8px; border-radius: 7px; white-space: nowrap; font-size: 11px; }
.restaurant-admin-header > div > p, .restaurant-admin-header > p { color: var(--lg-muted); }
.restaurant-admin-header { min-height: 120px; }
.restaurant-admin-section, .restaurant-admin-header { box-shadow: none !important; }
.restaurant-order-card p { margin-top: 8px; }
.content .inline-actions button { box-shadow: none; }
.content .cart-actions button, .content .cart-item-controls button { padding: 4px; min-width: 36px; min-height: 36px; }
.content .cart-item { box-shadow: none !important; }
.content .cart-summary, .content .cart-sidebar { background: var(--lg-surface) !important; }
.restaurant-info h2, .product-info h2, .card-heading h3 { overflow-wrap: anywhere; }
.content .coming-soon { color: var(--lg-muted); background: var(--lg-surface-3); }
.content > main.container { display: block; max-width: 1050px; padding: 28px; border-radius: 16px; }
.content > main.container h1 { margin-bottom: 24px; }
.content > main.container h2 { margin: 28px 0 14px; }
.content > main.container p { margin-bottom: 12px; }
.content > main.container form { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; margin: 16px 0; }
.content > main.container label { display: grid; gap: 7px; min-width: min(100%,220px); }
.content > main.container ol { padding-left: 22px; }
.content > main.container li { padding: 12px 0; border-bottom: 1px solid var(--lg-line); }
.checkout-card button, .success-card a { background: var(--lg-lime) !important; box-shadow: none !important; }
.checkout-container .back-btn { color: var(--lg-muted); }
.checkout-container .summary-item-details { color: var(--lg-muted); }
.restaurant-page .bottom button { color: #101600; background: var(--lg-lime); border: 0; box-shadow: none; }
.restaurant-page .bottom button:hover { background: var(--lg-lime-bright); transform: none; }
.restaurant-page .bottom > span { color: var(--lg-text); }
.restaurant-page .overlay { background: linear-gradient(90deg, rgba(5,12,7,.94), rgba(5,12,7,.52)); }
.restaurant-page .restaurant-header { height: auto; min-height: 230px; border: 1px solid var(--lg-line); border-radius: 16px; background: var(--lg-surface-3); }
.restaurant-page .overlay { min-height: 230px; padding: 32px; background: transparent; }
.restaurant-image img { width: 100%; height: 100%; object-fit: cover; }
.restaurant-page .overlay h1 { font-size: clamp(26px,3vw,40px); overflow-wrap: anywhere; }
.restaurant-page .cart-popup { color: var(--lg-text); background: var(--lg-surface-3); border: 1px solid var(--lg-line); box-shadow: var(--lg-shadow); }
.restaurant-page .cart-popup > span { color: #101600; background: var(--lg-lime); }
.restaurant-page .cart-popup small { color: var(--lg-muted); }
.restaurant-page .cart-item-info span { color: var(--lg-muted); }
.restaurant-page .cart-sidebar .cart-item { padding: 14px; border-radius: 10px; }
.restaurant-page .container { width: 100%; gap: 24px; }
.restaurant-page .products { grid-template-columns: repeat(auto-fill,minmax(min(100%,260px),1fr)); gap: 20px; }
.restaurant-page .product-card img { height: 190px; object-fit: cover; }
.restaurant-page .product-info { padding: 20px; }
.restaurant-page .product-info p:empty { display: none; }
.restaurant-page .product-info { gap: 12px; }
@media (min-width: 1200px) {
    .restaurant-page .container { grid-template-columns: minmax(0,1fr) 320px; }
    .restaurant-page .cart-sidebar { position: sticky; top: 24px; padding: 20px; }
}
.gps-map { color-scheme: light; }
.gps-map .leaflet-control a, .gps-map .leaflet-popup-content { color: #17251b !important; }
.gps-map .leaflet-control-attribution { color: #334438; }
.gps-map .leaflet-control-attribution a { color: #245f36 !important; }
.content button[value="suspend"], .content button[value="reject"] { color: #f3b7bb !important; background: #352124 !important; border-color: #624046 !important; }
.onboarding-shell { color: var(--lg-text); background: var(--lg-surface); border: 1px solid var(--lg-line); box-shadow: var(--lg-shadow); }
.onboarding-shell h1, .onboarding-shell legend, .onboarding-shell label, .onboarding-shell .same-address { color: var(--lg-text); }
.onboarding-shell .login-kicker, .onboarding-shell .status-logout { color: var(--lg-lime); }
.onboarding-shell fieldset { border-color: var(--lg-line); }
.onboarding-shell fieldset p { color: var(--lg-muted); }
.onboarding-status { color: #f5d38d; background: #302719; }
.onboarding-shell .field-error { color: #f3b7bb; }
.onboarding-actions .secondary { color: var(--lg-text); border-color: var(--lg-line-strong); background: var(--lg-surface-3); }
.onboarding-shell .signup-message.error { color: #f3b7bb; border-color: #624046; background: #352124; }
.onboarding-shell .signup-message.success { color: #9fe0b1; border-color: #305c3c; background: #163222; }

@media (max-width: 600px) {
    .restaurant-page .overlay { padding: 24px; }
    .restaurant-page .overlay h1 { font-size: 23px; }
    .content .topbar { padding: 14px 16px; margin-bottom: 24px; }
    .content .restaurant-order-grid, .content .client-order-grid { grid-template-columns: minmax(0,1fr); }
    .content > main.container { padding: 20px; }
    .card-heading { flex-wrap: wrap; }
    .restaurant-info h2 { font-size: 21px; }
}

@media (max-width: 900px) {
    .sidebar { border-right: 0; border-bottom: 1px solid var(--lg-line); }
    .sidebar nav { scrollbar-color: var(--lg-lime) transparent; }
    .topbar { border-radius: 16px; }
}

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