/* ============================================================
   EazyStock v4 UI layer — support note, "Coming soon" badges,
   Google sign-in button, offline stock-in, public stock page.
   Theme-aware (uses --ink-* / --surface-rgb tokens so it flips
   correctly in light / dark / system).
   ============================================================ */

/* ---- v4.2 — sale customer picker + quick-add + credit requirement ---- */
.cust-quick-link {
    display: inline-flex; align-items: center; gap: 5px;
    margin-top: 7px; padding: 0; border: 0; background: none;
    color: var(--brand-600, #5b5bd6); font-size: 12.5px; font-weight: 700;
    cursor: pointer;
}
.cust-quick-link:hover { text-decoration: underline; }
.cust-quick-form {
    display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px;
    padding: 11px; border-radius: 12px;
    background: rgba(99, 102, 241, 0.06);
    border: 1px solid var(--ez-border, rgba(99, 102, 241, 0.18));
}
.cust-quick-form .form-control { flex: 1 1 130px; min-width: 0; }
.cust-quick-form .btn { flex: 0 0 auto; }
.cust-req-hint {
    display: flex; align-items: flex-start; gap: 7px;
    margin-top: 9px; padding: 9px 11px; border-radius: 10px;
    font-size: 12.5px; line-height: 1.45;
    color: #92400e; background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.32);
}
html[data-theme="dark"] .cust-req-hint { color: #fcd34d; }
.form-select.cust-needed,
.cust-needed + .ez-sel .ez-sel__trigger {
    border-color: rgba(245, 158, 11, 0.6) !important;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.14) !important;
}

/* ---- Plain support note (NOT live chat) ---- */
.ez-support-note {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 14px 16px; border-radius: 14px;
    background: rgba(37, 211, 102, 0.08);
    border: 1px solid rgba(37, 211, 102, 0.28);
}
.ez-support-note__ico {
    flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(37, 211, 102, 0.16); color: #1faa52;
}
.ez-support-note__body { min-width: 0; }
.ez-support-note__msg { font-weight: 600; color: var(--ink-800); margin-bottom: 8px; }
.ez-support-note__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ez-support-note__btn {
    display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
    font-weight: 700; font-size: 13px; padding: 8px 14px; border-radius: 999px;
    background: #25d366; color: #06351b; white-space: nowrap;
}
.ez-support-note__btn:hover { filter: brightness(1.04); }
.ez-support-note__btn--ghost {
    background: rgba(var(--surface-rgb, 255,255,255), 0.6);
    color: var(--ink-700); border: 1px solid var(--ez-border, rgba(99,102,241,.25));
}
.ez-support-note__num { font-weight: 700; color: var(--ink-800); }
html[data-theme="dark"] .ez-support-note__msg,
html[data-theme="dark"] .ez-support-note__num { color: var(--ink-100); }
html[data-theme="dark"] .ez-support-note__ico { color: #4ade80; }

/* ---- "Coming soon" badge (subtle, professional) ---- */
.ez-soon {
    display: inline-flex; align-items: center; gap: 5px; vertical-align: middle;
    font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    padding: 2px 8px; border-radius: 999px; line-height: 1.4;
    background: rgba(99, 102, 241, 0.12); color: #4f46e5;
    border: 1px solid rgba(99, 102, 241, 0.22);
}
html[data-theme="dark"] .ez-soon { background: rgba(129,140,248,.16); color: #a5b4fc; }

/* A disabled future-feature row (e.g. push notifications). */
.ez-future-row {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 16px; border-radius: 12px;
    background: rgba(var(--surface-rgb, 255,255,255), 0.5);
    border: 1px dashed var(--ez-border, rgba(99,102,241,.25));
    opacity: .9;
}
.ez-future-row__title { font-weight: 700; color: var(--ink-800); display: flex; align-items: center; gap: 8px; }
.ez-future-row__sub { font-size: 12.5px; color: var(--ink-500); margin-top: 2px; }
.ez-future-row__switch {
    flex: 0 0 auto; width: 44px; height: 24px; border-radius: 999px;
    background: var(--ink-200, #e2e8f0); position: relative; cursor: not-allowed; opacity: .7;
}
.ez-future-row__switch::after {
    content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px;
    border-radius: 50%; background: #fff;
}
html[data-theme="dark"] .ez-future-row__switch { background: rgba(255,255,255,.14); }

/* ===== Offline stock-in form (POS page) ===== */
.si-help { font-size: 12.5px; color: var(--ink-500); margin: -4px 0 14px; }
.si-results {
    margin-top: 6px; border: 1px solid var(--ez-border, rgba(99,102,241,.2));
    border-radius: 10px; overflow: hidden; max-height: 240px; overflow-y: auto;
    background: rgb(var(--surface-rgb, 255,255,255));
}
.si-result {
    display: flex; flex-direction: column; align-items: flex-start; gap: 1px;
    width: 100%; text-align: left; padding: 9px 12px; cursor: pointer;
    background: transparent; border: 0; border-bottom: 1px solid var(--ez-border, rgba(99,102,241,.08));
}
.si-result:last-child { border-bottom: 0; }
.si-result:hover { background: rgba(99,102,241,.08); }
.si-result__name { font-weight: 700; color: var(--ink-900); }
.si-result__meta { font-size: 11.5px; color: var(--ink-500); }
.si-nomatch { padding: 10px 12px; color: var(--ink-500); font-size: 13px; }
.si-chosen {
    margin-top: 8px; padding: 8px 12px; border-radius: 10px; font-weight: 700;
    color: #4f46e5; background: rgba(99,102,241,.1);
    border: 1px solid rgba(99,102,241,.22);
}
html[data-theme="dark"] .si-chosen { color: #a5b4fc; background: rgba(129,140,248,.16); }

/* ===== Company social links (contact + footer) ===== */
.ez-socials { display: flex; flex-direction: column; gap: 10px; }
.ez-socials__label {
    font-size: 11px; font-weight: 800; letter-spacing: .06em;
    text-transform: uppercase; color: var(--ink-500);
}
.ez-socials__row { display: flex; flex-wrap: wrap; gap: 10px; }
.ez-social {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; box-sizing: border-box;
    width: 40px; height: 40px; min-width: 40px; border-radius: 12px; text-decoration: none;
    font-size: 18px; line-height: 1; color: var(--brand-600, #5b5bd6);
    background: rgba(var(--surface-rgb, 255,255,255), .9);
    border: 1px solid var(--ez-border, rgba(99,102,241,.2));
    box-shadow: 0 2px 8px rgba(15,23,42,.06);
    transition: color .16s, border-color .16s, background .16s, transform .16s, box-shadow .16s;
}
.ez-social:hover {
    color: #fff; background: linear-gradient(135deg,#6366f1,#8b5cf6);
    border-color: transparent; transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(99,102,241,.34);
}
.ez-social:focus-visible {
    outline: none; color: #fff;
    background: linear-gradient(135deg,#6366f1,#8b5cf6); border-color: transparent;
    box-shadow: 0 0 0 3px rgba(99,102,241,.4);
}
.ez-social .bi { display: block; }
html[data-theme="dark"] .ez-social {
    color: #c7d2fe;
    background: rgba(var(--surface-rgb), .55);
    border-color: rgba(129,140,248,.28);
    box-shadow: none;
}
html[data-theme="dark"] .ez-social:hover { color: #fff; }

/* ===== Themed file input (replaces the unstyled native control) ===== */
.ez-file {
    display: block; width: 100%; font-size: 14px; cursor: pointer;
    color: var(--ink-700); line-height: 1.4;
    background: rgba(var(--surface-rgb, 255,255,255), .6);
    border: 1px solid var(--ez-border, rgba(99,102,241,.28));
    border-radius: 10px; padding: 7px 14px; overflow: hidden;
}
.ez-file::file-selector-button {
    margin: -7px 14px -7px -14px; padding: 11px 16px; border: 0; cursor: pointer;
    font-weight: 700; font-size: 13px; color: #fff;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
}
.ez-file::-webkit-file-upload-button {
    margin: -7px 14px -7px -14px; padding: 11px 16px; border: 0; cursor: pointer;
    font-weight: 700; font-size: 13px; color: #fff;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
}
.ez-file:hover { border-color: rgba(99,102,241,.5); }
.ez-file:focus, .ez-file:focus-within {
    outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,.18);
}
html[data-theme="dark"] .ez-file { color: var(--ink-200, #cbd5e1); }

/* ===== Google sign-in button (auth pages) ===== */
.ez-google-btn {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%; padding: 11px 16px; border-radius: 12px; cursor: pointer;
    font-weight: 700; font-size: 14px; text-decoration: none;
    background: rgb(var(--surface-rgb, 255,255,255)); color: var(--ink-800, #1e293b);
    border: 1px solid var(--ez-border, rgba(15,23,42,.16));
    transition: box-shadow .15s, border-color .15s, background .15s;
}
.ez-google-btn:hover { box-shadow: 0 4px 14px -6px rgba(15,23,42,.3); border-color: rgba(99,102,241,.4); }
.ez-google-btn svg { width: 18px; height: 18px; flex: 0 0 auto; }
.ez-google-btn span { color: inherit; }
/* v4.3 — dark text must be EXPLICITLY light. var(--ink-100) FLIPS dark in dark
   mode, so the label was dark-on-dark + unreadable. Use a fixed light hex. */
html[data-theme="dark"] .ez-google-btn,
html[data-theme="dark"] .ez-google-btn span {
    color: #f1f5fb !important;
    background: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.18);
}
html[data-theme="dark"] .ez-google-btn:hover { background: rgba(255,255,255,.12); border-color: rgba(129,140,248,.5); }
.ez-or-divider {
    display: flex; align-items: center; gap: 12px; margin: 16px 0;
    color: var(--ink-400, #94a3b8); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em;
}
.ez-or-divider::before, .ez-or-divider::after {
    content: ""; flex: 1; height: 1px; background: var(--ez-border, rgba(15,23,42,.12));
}

/* ===== Public storefront (shareable available-stock page) ===== */
.ezstore-wrap { max-width: 1000px; margin: 0 auto; padding: 18px 16px 60px; }
.ezstore-head {
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    padding: 20px 22px; border-radius: 18px; margin-bottom: 18px;
    background: linear-gradient(135deg, #4f46e5, #7c3aed); color: #fff;
    box-shadow: 0 18px 40px -22px rgba(79,70,229,.6);
}
.ezstore-head__logo {
    width: 56px; height: 56px; border-radius: 14px; object-fit: cover;
    background: rgba(255,255,255,.16); flex: 0 0 auto;
}
.ezstore-head__name { font-size: clamp(1.2rem, 4vw, 1.7rem); font-weight: 800; line-height: 1.1; }
.ezstore-head__sub { font-size: 13px; opacity: .9; margin-top: 3px; }
.ezstore-head__badge {
    margin-left: auto; font-size: 11px; font-weight: 700; padding: 5px 12px;
    border-radius: 999px; background: rgba(255,255,255,.18); white-space: nowrap;
}
.ezstore-search { margin-bottom: 16px; }
.ezstore-search input {
    width: 100%; padding: 12px 16px; border-radius: 12px; font-size: 15px;
    border: 1px solid var(--ez-border, rgba(99,102,241,.25));
    background: rgba(var(--surface-rgb,255,255,255), .7); color: var(--ink-900);
}
.ezstore-search input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,.18); }
.ezstore-grid {
    display: grid; gap: 12px;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.ezstore-card {
    padding: 14px 16px; border-radius: 14px; min-width: 0;
    background: rgba(var(--surface-rgb,255,255,255), .75);
    border: 1px solid var(--ez-border, rgba(99,102,241,.16));
}
.ezstore-card__name { font-weight: 700; color: var(--ink-900); word-break: break-word; }
.ezstore-card__cat { font-size: 12px; color: var(--ink-500); margin-top: 2px; }
.ezstore-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; }
.ezstore-card__price { font-weight: 800; color: #4f46e5; font-variant-numeric: tabular-nums; }
html[data-theme="dark"] .ezstore-card__price { color: #a5b4fc; }
.ezstore-pill { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.ezstore-pill--in { background: rgba(16,185,129,.14); color: #047857; }
.ezstore-pill--out { background: rgba(239,68,68,.12); color: #b91c1c; }
html[data-theme="dark"] .ezstore-pill--in { color: #6ee7b7; }
html[data-theme="dark"] .ezstore-pill--out { color: #fca5a5; }
.ezstore-empty { text-align: center; padding: 50px 20px; color: var(--ink-500); }
.ezstore-foot { text-align: center; margin-top: 28px; font-size: 12.5px; color: var(--ink-500); }
.ezstore-foot a { color: #6366f1; text-decoration: none; font-weight: 700; }

