.simple-form { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.simple-form label,.simple-form p { display:flex;flex-direction:column;gap:7px;font-weight:600;margin:0;min-width:0; }
input,select,textarea { padding:13px;border:1px solid var(--line);border-radius:8px;font:inherit;background:white;color:var(--ink);max-width:100%; }
input[type=checkbox] { width:22px;height:22px; }
input[readonly] { background:var(--bg); }
.full { grid-column:1/-1; }
.notice-message { padding:14px;border-radius:8px;background:var(--good-bg);margin-bottom:16px; }
.notice-message.error,.errorlist { color:var(--bad);background:var(--bad-bg);padding:12px 20px;border-radius:8px; }
.errorlist { grid-column:1/-1; }
.receipt { max-width:880px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 28px 20px; }
.status-pending { background:var(--warn-bg);padding:14px;border-radius:8px;margin:18px 0; }
.login-wrap { max-width:440px;margin:10vh auto;padding:16px; }
.login-wrap label { display:grid;gap:6px; }
.big-save { font-size:18px;min-height:54px; }
.sale-layout { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:20px;align-items:start; }
.sale-total { font-size:30px;font-weight:700;margin:12px 0; }
.model-results { display:grid;gap:6px;max-height:240px;overflow:auto; }
.model-results button { text-align:left;background:var(--bg);border:1px solid var(--line);padding:12px;border-radius:8px;color:var(--ink);font:inherit; }
.model-results button:hover { border-color:var(--brand); }
.actions { display:flex;gap:8px;flex-wrap:wrap;align-items:center; }
.actions form { display:inline; }
.section { margin-top:20px; }
.history { display:grid;gap:4px;margin:12px 0;color:var(--muted);font-size:13px; }
.toolbar { display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:20px; }
.toolbar label { display:grid;gap:6px; }
.table-scroll { overflow:auto; }
.sidebar-foot button { width:100%;cursor:pointer;background:transparent;border:1px solid #97633e;color:white;padding:10px; }
.card details summary { cursor:pointer;font-weight:700;padding:10px 0; }
.workspace-cards { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px; }
@media(max-width:1100px) { .sale-layout { grid-template-columns:1fr; } }
@media(max-width:720px) { .simple-form { grid-template-columns:1fr; }.full { grid-column:auto; }.top-meta { display:none; }.kpi-row { grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }.kpi { padding:14px; }.kpi .value { font-size:22px; } }
@media print { .sidebar,.topbar,.actions,.toolbar,button,form,.no-print { display:none!important; }.app,.workspace { display:block; }.page { padding:0; }.card,.receipt,.kpi { box-shadow:none;border:0; }.table-scroll { overflow:visible; }table { min-width:0!important;width:100%; }th,td { padding:6px;font-size:10px; } }
/* Allow grid children and long monetary totals to shrink on branch phones. */
.sale-layout > *, .kpi-row > *, .simple-form > *, .card { min-width:0; }
.kpi .value { overflow-wrap:anywhere; }
@media(max-width:720px) { .sale-layout { grid-template-columns:minmax(0,1fr); }.pagehead,.sectionhead { max-width:100%; }.topbar { flex-wrap:wrap; }.receipt h1 { overflow-wrap:anywhere; } }
.page { width:100%;min-width:0;box-sizing:border-box; }

.quote-workspace .quote-thread{display:grid;gap:12px;margin:18px 0}.quote-workspace .quote-message{border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc;padding:14px}.quote-workspace .quote-message p{margin:.35rem 0}.quote-workspace .quote-message small{color:#64748b}.quote-workspace .form-card textarea{min-height:110px}
.table-thumb{width:64px;height:54px;object-fit:cover;border-radius:10px;background:#f1f5f9}
.inline-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-filter input,.inline-filter select{border:1px solid #d8dee8;border-radius:12px;padding:10px 12px;background:#fff}.compact-actions{gap:6px;flex-wrap:wrap}.compact-actions .btn{padding:8px 10px;font-size:.85rem}

/* Workspace rhythm */
.skip { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip:focus { width:auto; height:auto; margin:0; clip:auto; left:12px; top:12px; z-index:80; background:#fff; color:var(--ink); padding:8px 12px; border-radius:8px; }
.sidebar { overflow:hidden; }
.nav-groups { flex:1; min-height:0; overflow:auto; padding-bottom:8px; }
.nav-groups .nav-section:first-child { margin-top:12px; }
.top-title { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; letter-spacing:-.02em; }
.notice-message { border-left:3px solid var(--good); }
.notice-message.error { border-left-color:var(--bad); }
.kpi::before { display:none; }
.kpi .value small { font-size:12px; font-weight:650; color:var(--muted); margin-left:2px; }
.scan-box { display:grid; gap:6px; }
.scan-controls { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.scan-controls input { flex:1 1 180px; min-width:0; }
.scanner-layer { position:fixed; inset:0; z-index:70; background:rgba(42,14,4,.72); display:grid; place-items:center; padding:16px; }
.scanner-panel { width:min(480px,100%); background:#fff; border-radius:16px; padding:16px; display:grid; gap:12px; }
.scanner-panel video { width:100%; max-height:52vh; background:#1a0a04; border-radius:12px; object-fit:cover; }
.steps { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 4px; }
.steps span { background:var(--brand-soft); color:var(--ink); border-radius:999px; padding:4px 10px; font-size:12px; font-weight:700; }
.pos-card h2 { margin-bottom:4px; }
.model-results button.model-hit { min-height:44px; }
.mutedbox.is-short { background:var(--bad-bg); border-color:#f3c0ba; color:var(--bad); }
.total-row { padding-top:4px; }
.sale-total { letter-spacing:-.04em; overflow-wrap:anywhere; }
.row-link { color:var(--brand-strong); font-weight:700; }
.row-link:hover { text-decoration:underline; }
th.num, td.num { text-align:right; font-variant-numeric:tabular-nums; }
td.num { font-family:"IBM Plex Mono", ui-monospace, monospace; }
.empty-cell { text-align:center !important; color:var(--muted); padding:28px 16px !important; }
.empty-cell strong, .empty-inline strong { display:block; color:var(--ink); margin-bottom:4px; }
.empty-cell span { display:block; }
.empty-inline { color:var(--muted); margin:8px 0; }
.attention { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.attn { display:flex; flex-direction:column; gap:4px; min-width:0; background:#fff; border:1px solid var(--line); border-left:3px solid var(--brand); border-radius:12px; padding:14px 16px; box-shadow:var(--shadow); }
.attn b { font-size:22px; letter-spacing:-.03em; }
.attn span { color:var(--muted); font-size:13px; line-height:1.4; }
.attn:hover { border-color:var(--brand); }
.pay-row { display:grid; gap:6px; padding:10px 0; border-bottom:1px solid var(--line-2); }
.pay-row header { display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.pay-row header b { font-variant-numeric:tabular-nums; }
.launch { display:flex; flex-direction:column; gap:8px; min-height:148px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px; box-shadow:var(--shadow); }
.launch h2 { margin:0; font-size:16px; }
.launch p { margin:0; color:var(--muted); flex:1; }
.launch span { color:var(--brand-strong); font-weight:700; }
.launch:hover { border-color:var(--brand); }
.filter-card { align-items:end; margin-bottom:14px; }
.filter-card .full, .filter-card .small { flex-basis:100%; margin:0; }
.simple-form p { margin:0; }
.simple-form .helptext { font-weight:500; color:var(--muted); font-size:12px; }
.simple-form p:has(input[type="checkbox"]) { flex-direction:row; align-items:center; }
.card details summary { min-height:40px; display:flex; align-items:center; }
.login-body { background:radial-gradient(circle at 12% 18%,rgba(248,122,34,.18),transparent 30%),var(--bg); }
.login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr); }
.login-aside { position:relative; overflow:hidden; background:linear-gradient(145deg,#371003 0%,#6b3214 58%,#f0781e 132%); color:#f8eadc; padding:44px; display:flex; flex-direction:column; justify-content:space-between; gap:28px; }
.login-aside:after { content:''; position:absolute; width:420px; height:420px; border-radius:999px; right:-150px; top:-130px; background:rgba(255,255,255,.08); }
.login-logo { position:relative; z-index:1; width:min(220px,70%); display:inline-flex; background:#fff; border-radius:24px; padding:16px 18px; box-shadow:0 24px 80px rgba(0,0,0,.28); }
.login-logo img { width:100%; height:auto; display:block; object-fit:contain; }
.login-aside-copy { position:relative; z-index:1; }
.login-kicker { display:inline-flex; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.13); color:#fff; font-weight:800; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.login-aside h1 { color:#fff; font-size:clamp(34px,4vw,56px); letter-spacing:-.05em; line-height:.96; margin:18px 0 14px; max-width:11ch; }
.login-aside p { margin:0; max-width:46ch; color:#ffe6cf; font-size:16px; line-height:1.65; }
.login-highlights { position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:10px; }
.login-highlights span { padding:10px 12px; border:1px solid rgba(255,255,255,.2); border-radius:14px; background:rgba(255,255,255,.1); color:#fff; font-weight:800; }
.login-panel { display:grid; place-items:center; padding:28px 20px; }
.login-panel .card { width:min(500px,100%); display:grid; gap:14px; border:1px solid rgba(92,38,10,.1); box-shadow:0 28px 80px rgba(61,22,4,.12); }
.login-card-head { display:flex; gap:14px; align-items:center; }
.login-card-head img { width:88px; height:auto; object-fit:contain; flex:0 0 auto; }
.login-panel h2 { margin:0; font-size:30px; letter-spacing:-.03em; }
.login-panel a { color:var(--brand-strong); font-weight:700; }
.login-panel input { min-height:50px; font-size:16px; background:#fffdf9; border:1.5px solid rgba(92,38,10,.2); }
.login-panel input:focus { border-color:var(--brand); box-shadow:0 0 0 4px rgba(240,120,30,.14); outline:none; }
.demo-access { border:1px solid rgba(92,38,10,.12); border-radius:18px; padding:12px; background:#fff8ef; }
.demo-access summary { cursor:pointer; font-weight:900; color:var(--ink); }
.demo-access p { margin:8px 0 0; }
.demo-grid { margin-top:10px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.demo-grid div { display:grid; gap:6px; align-content:start; background:#fff; border:1px solid rgba(92,38,10,.08); border-radius:14px; padding:10px; }
.demo-grid b { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; }
.demo-grid span, .demo-access code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; background:#f5efe7; color:#4d1c07; border-radius:8px; padding:5px 7px; }
.nav-backdrop { position:fixed; inset:0; background:rgba(42,14,4,.48); z-index:30; }
@media (max-width:860px) {
  body.nav-open { overflow:hidden; }
  .topbar { z-index:50; background:#fff; }
  .sidebar.is-open { position:fixed; z-index:40; top:0; left:0; bottom:0; width:min(300px,88vw); height:100vh; height:100dvh; overflow:hidden; display:flex; padding-top:72px; }
  .nav-section { display:block; }
  .nav { display:grid; }
  .attention { grid-template-columns:1fr; }
}
@media (max-width:800px) {
  .login-shell { grid-template-columns:1fr; }
  .login-aside { min-height:auto; padding:28px 20px; justify-content:flex-start; }
  .login-logo { width:180px; }
  .demo-grid { grid-template-columns:1fr; }
}
/* Sales Log fills the screen like a till. The page itself does not scroll. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
body.pos-app { height:100dvh; max-height:100dvh; min-height:0; overflow:hidden; overscroll-behavior:none; }
body.pos-app .app { height:100dvh; max-height:100dvh; min-height:0; overflow:hidden; }
@media (min-width:861px) {
  body.pos-app .sidebar { height:100%; min-height:0; position:relative; top:auto; }
}
body.pos-app .workspace { height:100%; min-height:0; overflow:hidden; }
body.pos-app .page { flex:1; min-height:0; overflow:hidden; display:flex; flex-direction:column; width:100%; max-width:none; margin:0; padding:12px 16px; }
.till { flex:1; min-height:0; display:flex; flex-direction:column; gap:10px; }
.till-bar { display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 14px; }
.till-branch, .till-last { margin:0; color:var(--muted); font-size:13px; }
.till-last b { color:var(--brand-strong); overflow-wrap:anywhere; }
.till-stats, .today-pays { display:flex; flex-wrap:wrap; gap:8px 18px; }
.till-stats span, .today-pays span { display:grid; min-width:0; }
.till-stats small, .today-pays small { color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.till-stats b, .today-pays b { font-size:16px; font-variant-numeric:tabular-nums; letter-spacing:-.03em; }
.till-stats abbr { font-size:11px; font-weight:700; color:var(--muted); text-decoration:none; }
.till-card { min-height:0; display:flex; flex-direction:column; padding:0; overflow:hidden; }
.till-form { min-height:0; flex:1; display:flex; flex-direction:column; }
.till-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; flex-direction:column; gap:10px; padding:14px 14px 8px; }
.till-scroll > * { flex-shrink: 0; }
.till-scroll.pos-screen { display:none; }
.till[data-screen="sell"] .till-scroll.pos-screen[data-screen="sell"],
.till[data-screen="client"] .till-scroll.pos-screen[data-screen="client"] { display:flex; }
.till-card label { display:flex; flex-direction:column; gap:4px; font-weight:700; font-size:13px; margin:0; }
body.pos-app .till-card input, body.pos-app .till-card select { min-height:48px; padding:10px 12px; font-size:16px; }
.till-pay { display:grid; grid-template-columns:minmax(88px,.7fr) minmax(0,1.4fr); gap:10px; }
.till-credit { margin-top:2px; }
.scan-ready { display:flex; align-items:flex-start; gap:8px; margin:0; color:var(--muted); font-size:12.5px; line-height:1.4; }
.scan-dot { width:8px; height:8px; margin-top:4px; border-radius:50%; background:var(--good); box-shadow:0 0 0 4px var(--good-bg); flex:0 0 auto; }
.scan-controls input.is-scanning { border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-soft); }
.scan-controls .btn { min-height:48px; flex:0 0 auto; }
body.pos-app .model-results { max-height:132px; }
.till-dock { flex:0 0 auto; display:flex; flex-direction:column; gap:8px; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fff; }
.till-total { display:flex; justify-content:space-between; align-items:flex-end; gap:10px; }
body.pos-app .sale-total { margin:0; font-size:32px; line-height:1; }
body.pos-app .big-save { width:100%; }
.today-panel { min-height:0; display:none; flex-direction:column; overflow:hidden; }
.till[data-screen="today"] .today-panel { display:flex; flex:1; }
.till[data-screen="today"] .till-card { display:none; }
.today-panel .sectionhead { margin-bottom:8px; }
.today-body { min-height:0; overflow:auto; }
.till-sales { list-style:none; margin:0; padding:0; display:grid; }
.till-sale { display:grid; grid-template-columns:46px minmax(0,1fr) auto; grid-template-areas:"time name amt" "time pay amt" "rec rec rec"; column-gap:10px; row-gap:1px; padding:10px 2px; border-bottom:1px solid var(--line-2); color:inherit; }
.till-sale-time { grid-area:time; color:var(--muted); font-variant-numeric:tabular-nums; padding-top:2px; }
.till-sale-name { grid-area:name; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.till-sale-pay { grid-area:pay; color:var(--muted); font-size:12px; }
.till-sale-amt { grid-area:amt; align-self:center; font-weight:700; font-variant-numeric:tabular-nums; text-align:right; }
.till-sale-rec { grid-area:rec; color:var(--brand-strong); font-weight:700; font-size:12px; }
.till-sale:hover .till-sale-rec { text-decoration:underline; }
.today-body { min-height:0; overflow:auto; flex:1; }
@media (max-width:860px) {
  body.pos-app .topbar { min-height:52px; height:52px; padding:8px 12px; position:relative; }
  body.pos-app .sidebar.is-open { position:fixed; height:100dvh; padding-top:52px; }
  body.pos-app .page { padding:8px 10px 0; }
  .till { gap:8px; padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .till-bar { padding:8px 10px; }
  .till-branch { display:none; }
  .till-stats { display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; }
  .till-stats b { font-size:15px; }
  .till-card { border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom:0; }
  .till-scroll { padding:12px 12px 6px; gap:8px; }
  .scan-ready { font-size:12px; }
  .till[data-screen="today"] .today-panel { position:relative; transform:none; visibility:visible; max-height:none; }
}
@media (max-height:740px) {
  body.pos-app .page { padding-top:8px; padding-bottom:0; }
  .scan-ready { display:none; }
  .till-scroll { gap:6px; padding-top:10px; }
  body.pos-app .sale-total { font-size:26px; }
  body.pos-app .big-save { min-height:48px; }
}
@media print {
  body.pos-app, body.pos-app .app, body.pos-app .workspace, body.pos-app .page { height:auto; max-height:none; overflow:visible; }
  .today-panel { position:static; transform:none; visibility:visible; max-height:none; }
}
@media (max-width:720px) {
  table.stack-on-phone { min-width:0 !important; }
  table.stack-on-phone thead { display:none; }
  table.stack-on-phone, table.stack-on-phone tbody, table.stack-on-phone tr, table.stack-on-phone td { display:block; width:auto; min-width:0; }
  table.stack-on-phone tr { display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; padding:12px 2px; border-bottom:1px solid var(--line-2); }
  table.stack-on-phone td { border:0; padding:0; text-align:left; }
  table.stack-on-phone td::before { content:attr(data-label); display:block; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:700; }
  table.stack-on-phone td:last-child { grid-column:1 / -1; }
}

.pos-product-card { display:grid; grid-template-columns:74px minmax(0,1fr); gap:10px; align-items:center; border:1px solid var(--line); background:#fff7ed; border-radius:14px; padding:10px; }
.pos-product-card img { width:74px; height:64px; object-fit:cover; border-radius:12px; background:#f1f5f9; }
.pos-product-card div { display:grid; gap:2px; min-width:0; }
.pos-product-card span { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--brand-strong); font-weight:800; }
.pos-product-card strong, .pos-product-card small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pos-product-card small { color:var(--muted); }
.product-hit { display:grid !important; grid-template-columns:54px minmax(0,1fr); gap:10px; text-align:left; align-items:center; }
.product-hit img { width:54px; height:46px; object-fit:cover; border-radius:10px; background:#f1f5f9; }
.product-hit span { display:grid; gap:2px; min-width:0; }
.product-hit b, .product-hit small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.product-hit small { color:var(--muted); font-weight:600; }
.till-card, .today-panel { box-shadow:0 16px 48px rgba(48,20,5,.08); }
.client-hint, .client-chip, .screen-intro p { margin:0; color:var(--muted); font-size:13px; line-height:1.4; }
.client-hint a { color:var(--brand-strong); font-weight:800; }
.screen-intro h2 { margin:0 0 4px; font-size:22px; }
.client-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.client-grid .client-tin { grid-column:1 / -1; }
.client-chip { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pos-pages, .pos-bottom-nav { display:grid; gap:8px; }
.pos-pages { grid-template-columns:repeat(4,minmax(0,1fr)); }
.pos-bottom-nav { display:none; }
.pos-pages a, .pos-bottom-nav a, .pos-bottom-nav button {
  display:grid; place-items:center; gap:3px; min-height:58px; min-width:0;
  border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink);
  font-weight:800; font-size:12px; text-decoration:none; padding:6px 4px;
}
.pos-pages svg, .pos-bottom-nav svg { width:22px; height:22px; }
.pos-pages a[aria-current="page"], .pos-bottom-nav a[aria-current="page"] { background:var(--brand); color:#fff; border-color:var(--brand); }
.pos-shortcuts { display:flex; gap:8px; flex-wrap:wrap; }
.pos-shortcuts a { border:1px solid var(--line); background:var(--brand-soft); color:var(--ink); border-radius:999px; padding:8px 12px; font-weight:800; font-size:12px; }
.pos-shortcuts a:hover { border-color:var(--brand); }
@media (max-width:860px) {
  .pos-pages, .pos-shortcuts { display:none; }
  body.pos-app .workspace { padding-bottom:0; }
  .pos-bottom-nav {
    position:fixed; left:8px; right:8px; bottom:calc(8px + env(safe-area-inset-bottom)); z-index:65;
    display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px;
    background:rgba(255,255,255,.96); border:1px solid var(--line); border-radius:18px; padding:6px;
    box-shadow:0 18px 45px rgba(42,14,4,.2);
  }
  .pos-bottom-nav a, .pos-bottom-nav button { min-height:52px; background:transparent; border-color:transparent; font-size:11px; }
  .pos-bottom-nav a[aria-current="page"] { background:var(--brand); color:#fff; }
  .daily-ops { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
  .scan-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .client-grid { grid-template-columns:1fr; }
  .sidebar.is-open { box-shadow:18px 0 45px rgba(42,14,4,.28); }
}
@media (max-width:560px) {
  body.pos-app .top-meta { display:none; }
  .till-stats { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
  .till-stats small { font-size:9px; }
  .till-stats b { font-size:13px; }
  .till-pay { grid-template-columns:82px minmax(0,1fr); }
  .scan-controls { grid-template-columns:1fr; }
  .scan-controls .btn { width:100%; }
}
.receipt-head { display:grid; grid-template-columns:auto minmax(0,1fr) minmax(160px,.7fr); gap:16px; align-items:start; border-bottom:3px solid var(--ink); padding-bottom:16px; }
.receipt-logo { width:92px; height:auto; }
.receipt-name { margin:0; font-size:22px; font-weight:800; }
.receipt-brand p, .receipt-id p { margin:2px 0; color:var(--muted); }
.receipt-id { text-align:right; }
.receipt-id .tag { display:inline-block; background:var(--brand-soft); color:var(--brand-strong); font-weight:800; font-size:11px; letter-spacing:.06em; text-transform:uppercase; border-radius:999px; padding:4px 8px; }
.receipt h1 { margin:6px 0 4px; font-size:clamp(16px,4vw,26px); line-height:1.15; overflow-wrap:anywhere; }
.receipt-parties { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px; gap:16px; margin:18px 0; }
.receipt-parties h2 { margin:0 0 6px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.receipt-parties p { margin:2px 0; }
.receipt-qr { text-align:center; }
.receipt-qr img { width:128px; height:128px; }
.receipt-qr small { display:block; color:var(--muted); margin-top:4px; }
.receipt-lines { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.receipt-lines li { border:1px solid var(--line); border-radius:12px; padding:12px; display:grid; gap:8px; }
.receipt-item { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:baseline; }
.receipt-lines dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0; }
.receipt-lines dt { font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.receipt-lines dd { margin:0; font-weight:800; }
.receipt-foot { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,320px); gap:16px; margin-top:16px; align-items:start; }
.receipt-totals { border:1px solid var(--line); border-radius:14px; padding:12px 14px; }
.receipt-totals div { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--line-2); }
.receipt-totals .grand { border-bottom:0; font-size:18px; }
.receipt-totals .grand b { font-size:22px; }
.return-note { background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:10px; }
.daily-ops .kpi-row { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ops-list { list-style:none; margin:0; padding:0; display:grid; }
.ops-list a, .ops-list li > div { display:grid; gap:2px; padding:12px 2px; border-bottom:1px solid var(--line-2); color:inherit; min-width:0; }
.ops-list span { color:var(--muted); overflow-wrap:anywhere; }
.ops-list strong { font-variant-numeric:tabular-nums; }
.ops-block { margin-top:12px; }
@media (max-width:760px) {
  .receipt { padding:16px; }
  .receipt-head, .daily-ops .kpi-row { grid-template-columns:1fr 1fr; }
  .receipt-parties, .receipt-foot { grid-template-columns:1fr; }
  .receipt-head { grid-template-columns:auto minmax(0,1fr); }
  .receipt-id, .receipt-qr { text-align:left; grid-column:1 / -1; }
  .receipt-logo { width:72px; }
  .receipt-lines dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media print {
  .receipt { max-width:none; border:0; padding:0; }
  .receipt-head, .receipt-lines li { break-inside:avoid; }
  .pos-bottom-nav, .pos-pages { display:none !important; }
  .status-pending { border:1px solid #999; background:#fff; color:#000; }
}


/* Product catalog SKU/barcode workflow. */
.product-admin-card details { display:grid; gap:14px; }
.product-scan-helper { border-radius:16px; margin:14px 0; }
.product-scan-helper span { font-size:22px; color:var(--brand-strong); }
.product-scan-helper .btn { min-height:38px; }
.product-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.product-form-grid fieldset { border:1px solid var(--line); border-radius:16px; padding:16px; display:grid; gap:12px; margin:0; }
.product-form-grid fieldset.full { grid-column:1/-1; }
.product-form-grid legend { padding:0 8px; font-weight:900; color:var(--ink); }
.product-form-grid p { margin:0; }
.product-form-grid input[data-barcode-field="true"] { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.04em; }
.inline-checks { display:flex; flex-wrap:wrap; gap:14px; }
.inline-checks p { display:flex; align-items:center; gap:8px; }
@media (max-width:760px){ .product-form-grid { grid-template-columns:1fr; } .inline-checks { display:grid; } }


/* Staff dashboard and management assistant polish. */
.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:14px 0 18px;padding:24px;border-radius:24px;background:linear-gradient(135deg,#fff7ed,#fff);border:1px solid var(--line);box-shadow:0 18px 50px rgba(48,20,5,.08)}.dashboard-hero h2{margin:4px 0 0;font-size:clamp(24px,3vw,42px);letter-spacing:-.04em}.premium-kpis .kpi{border-radius:22px;border:1px solid rgba(217,119,6,.14);box-shadow:0 16px 38px rgba(48,20,5,.06)}.assistant-head h1{font-size:clamp(32px,4vw,56px);letter-spacing:-.05em}.assistant-shell{display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:18px;align-items:start}.assistant-panel,.assistant-answer{border-radius:24px}.assistant-form{display:grid;gap:10px}.assistant-form label{font-weight:900}.assistant-form textarea{width:100%;border:1.5px solid var(--line);border-radius:16px;padding:14px;font:inherit;resize:vertical;background:#fff;color:var(--ink)}.assistant-form textarea:focus{outline:3px solid var(--brand-soft);border-color:var(--brand)}.assistant-samples{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.assistant-samples>span{color:var(--muted);font-weight:800;padding:8px 0}.assistant-samples form{margin:0}.assistant-samples button{border:1px solid var(--line);background:#fff7ed;border-radius:999px;padding:8px 11px;font:inherit;font-size:12px;font-weight:800;color:var(--ink);cursor:pointer}.assistant-answer pre{white-space:pre-wrap;margin:0;padding:16px;border-radius:18px;background:#fffaf6;border:1px solid var(--line);font:500 14px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;color:#24140c}@media(max-width:860px){.dashboard-hero,.assistant-shell{grid-template-columns:1fr;display:grid}.dashboard-hero{padding:18px}.assistant-answer{order:-1}}

/* Alibaba-style assistant widget. */
.assistant-widget-page{max-width:1180px;margin:0 auto;display:grid;gap:18px}.assistant-widget-hero{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:26px;border-radius:28px;background:linear-gradient(135deg,#fff7ed,#fff 55%,#fef3c7);border:1px solid rgba(217,119,6,.16);box-shadow:0 20px 70px rgba(48,20,5,.08)}.assistant-widget-hero h1{margin:4px 0;font-size:clamp(34px,5vw,64px);letter-spacing:-.06em;line-height:.98}.assistant-widget-hero p{margin:0;color:var(--muted);max-width:620px;line-height:1.6}.ai-widget-shell{overflow:hidden;border-radius:30px;background:#fff;border:1px solid rgba(226,232,240,.9);box-shadow:0 28px 90px rgba(15,23,42,.12)}.ai-widget-top{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(135deg,#1f2937,#111827);color:#fff}.ai-widget-top b{display:block}.ai-widget-top small{display:block;color:rgba(255,255,255,.68);font-size:12px;margin-top:2px}.ai-orb{width:42px;height:42px;border-radius:16px;background:linear-gradient(135deg,#ff7a1a,#facc15);display:grid;place-items:center;box-shadow:0 0 0 6px rgba(255,122,26,.18)}.ai-orb span{width:16px;height:16px;border-radius:999px;background:#fff;box-shadow:10px 0 0 rgba(255,255,255,.75),5px 9px 0 rgba(255,255,255,.55)}.ai-live{margin-left:auto;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.09);font-size:12px;font-weight:800}.ai-chat-window{height:min(58vh,560px);min-height:360px;overflow:auto;padding:22px;background:linear-gradient(180deg,#f8fafc,#fff);display:flex;flex-direction:column;gap:14px}.ai-message{display:flex}.ai-message.user{justify-content:flex-end}.ai-bubble{max-width:min(760px,86%);border-radius:22px;padding:14px 16px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 10px 24px rgba(15,23,42,.06);line-height:1.6}.ai-message.user .ai-bubble{background:#ff7a1a;color:#fff;border-color:#ff7a1a;border-bottom-right-radius:8px}.ai-message.assistant .ai-bubble{border-bottom-left-radius:8px}.ai-bubble pre{margin:0;white-space:pre-wrap;font:600 13.5px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;color:#1f2937}.ai-suggestions{display:flex;gap:8px;overflow:auto;padding:12px 16px;border-top:1px solid #eef2f7;background:#fff}.ai-suggestions form{margin:0;flex:0 0 auto}.ai-suggestions button{border:1px solid #fed7aa;background:#fff7ed;color:#7c2d12;border-radius:999px;padding:9px 12px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.ai-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;background:#fff;border-top:1px solid #eef2f7}.ai-compose textarea{min-height:52px;max-height:130px;resize:vertical;border:1.5px solid #e5e7eb;border-radius:18px;padding:14px 16px;font:inherit;color:#111827;background:#f8fafc}.ai-compose textarea:focus{outline:3px solid rgba(255,122,26,.16);border-color:#ff7a1a;background:#fff}.ai-compose button{border:0;border-radius:18px;background:#111827;color:#fff;padding:0 24px;font:inherit;font-weight:900;cursor:pointer}.ai-compose button.is-loading,.ai-suggestions button.is-loading{opacity:.7;cursor:wait}.typing-dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:#ff7a1a;margin-right:5px;animation:typing-bounce 1s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.16s}.typing-dot:nth-child(3){animation-delay:.32s}.ai-loading em{margin-left:6px;color:#64748b;font-style:normal;font-weight:700}@keyframes typing-bounce{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-5px);opacity:1}}@media(max-width:760px){.assistant-widget-hero{display:grid;padding:20px}.ai-chat-window{height:55vh;min-height:320px;padding:14px}.ai-bubble{max-width:94%;font-size:14px}.ai-compose{grid-template-columns:1fr}.ai-compose button{min-height:48px}.ai-live{display:none}}

/* Floating assistant available across staff pages. */
.floating-ai{position:fixed;right:22px;bottom:22px;z-index:120}.floating-ai-button{display:grid;grid-template-columns:auto auto;align-items:center;gap:8px;border:0;border-radius:999px;background:#111827;color:#fff;padding:12px 16px;font:inherit;font-weight:900;box-shadow:0 18px 50px rgba(15,23,42,.25);cursor:pointer}.floating-ai-button span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:linear-gradient(135deg,#ff7a1a,#facc15);color:#fff}.floating-ai-panel{position:absolute;right:0;bottom:62px;width:min(380px,calc(100vw - 28px));height:min(560px,72vh);border-radius:24px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 28px 90px rgba(15,23,42,.25);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto}.floating-ai-panel header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#1f2937,#111827);color:#fff}.floating-ai-panel header strong{display:block}.floating-ai-panel header small{display:block;color:rgba(255,255,255,.68);font-size:12px}.floating-ai-panel header button{border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:999px;width:32px;height:32px;font-size:22px;cursor:pointer}.floating-ai-log{overflow:auto;padding:14px;background:linear-gradient(180deg,#f8fafc,#fff);display:flex;flex-direction:column;gap:10px}.float-msg{max-width:86%;border-radius:16px;padding:10px 12px;white-space:pre-wrap;font-size:13px;line-height:1.55;background:#fff;border:1px solid #e5e7eb;box-shadow:0 8px 20px rgba(15,23,42,.06)}.float-msg.user{align-self:flex-end;background:#ff7a1a;border-color:#ff7a1a;color:#fff}.float-msg.bot{align-self:flex-start}.float-msg.loading:after{content:' ';display:inline-block;width:1.2em;text-align:left;animation:floatTyping 1s steps(4,end) infinite}.floating-ai-form{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-top:1px solid #eef2f7;background:#fff}.floating-ai-form textarea{border:1.5px solid #e5e7eb;border-radius:16px;padding:11px 12px;font:inherit;resize:none}.floating-ai-form textarea:focus{outline:3px solid rgba(255,122,26,.16);border-color:#ff7a1a}.floating-ai-form button{border:0;border-radius:16px;background:#111827;color:#fff;padding:0 14px;font:inherit;font-weight:900;cursor:pointer}.floating-ai-form button:disabled{opacity:.6;cursor:wait}@keyframes floatTyping{0%{content:''}25%{content:'.'}50%{content:'..'}75%,100%{content:'...'}}@media(max-width:760px){.floating-ai{right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}.floating-ai-panel{right:0;bottom:58px;height:min(560px,78vh)}body.pos-app .floating-ai{display:none}}

/* Premium ERP shell and dashboard branding. */
body:not(.login-body):not(.pos-app){background:radial-gradient(circle at 78% 0,rgba(245,129,35,.12),transparent 28%),linear-gradient(180deg,#fffaf5 0,#f6efe6 360px,#f8f3ec 100%)}
.erp-brand{display:grid;grid-template-columns:1fr;gap:8px;padding:18px 16px 14px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0));}
.erp-brand img{width:168px;max-width:100%;height:52px;object-fit:contain;object-position:left center;background:#fff;border-radius:16px;padding:8px 10px;box-shadow:0 16px 38px rgba(0,0,0,.18)}
.erp-brand .brand-text{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px}.erp-brand .brand-text strong{font-size:12px;color:#fff;letter-spacing:.16em}.erp-brand .brand-text em{font-size:10px;color:#fbc99d;letter-spacing:.12em}.topbar{background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(234,214,195,.72);box-shadow:0 12px 32px rgba(78,26,5,.04)}.top-logo{display:none}.top-logo img{height:34px;width:auto;object-fit:contain}.nav a{border-radius:12px;padding:9px 11px}.nav a.active{background:linear-gradient(135deg,rgba(245,129,35,.28),rgba(255,255,255,.06));box-shadow:inset 0 0 0 1px rgba(245,129,35,.16)}
.manager-cover{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:stretch;margin-bottom:18px;padding:28px;border-radius:32px;background:linear-gradient(135deg,#401305 0%,#6b3214 52%,#f58123 135%);color:#fff;box-shadow:0 26px 80px rgba(78,26,5,.18);position:relative;overflow:hidden}.manager-cover:before{content:'';position:absolute;right:-110px;top:-130px;width:360px;height:360px;border-radius:999px;background:rgba(255,255,255,.1)}.manager-cover-copy{position:relative;z-index:1}.manager-cover .eyebrow{color:#ffd4ad}.manager-cover h1{color:#fff;margin:8px 0 8px;font-size:clamp(34px,4.5vw,64px);line-height:.98;letter-spacing:-.06em}.manager-cover p{max-width:680px;color:#ffe9d6;font-size:16px;line-height:1.65}.manager-cover .btn{border-radius:999px;background:#fff;color:#4e1a05;border-color:#fff;box-shadow:none}.manager-cover .btn.alt{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}.manager-cover-logo{position:relative;z-index:1;display:grid;align-content:center;justify-items:center;gap:14px;border:1px solid rgba(255,255,255,.18);border-radius:26px;background:rgba(255,255,255,.1);backdrop-filter:blur(12px);padding:20px}.manager-cover-logo img{width:190px;max-width:100%;background:#fff;border-radius:20px;padding:12px;box-shadow:0 18px 48px rgba(0,0,0,.18)}.manager-cover-logo span{border-radius:999px;background:rgba(255,255,255,.14);padding:8px 12px;font-weight:800;color:#fff}.manager-attention{margin-bottom:18px}.manager-attention .attn{border:0;border-radius:22px;box-shadow:0 16px 42px rgba(78,26,5,.07);background:#fff}.manager-attention .attn b{font-size:30px;color:#4e1a05}.manager-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.manager-kpis .kpi{position:relative;overflow:hidden;border:0;border-radius:28px;background:#fff;box-shadow:0 20px 58px rgba(78,26,5,.08);padding:22px}.manager-kpis .kpi:after{content:'';position:absolute;right:-34px;top:-34px;width:96px;height:96px;border-radius:999px;background:rgba(245,129,35,.1)}.manager-kpis .primary-kpi{background:linear-gradient(135deg,#fff,#fff7ed)}.manager-kpis .label{font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#8a5a3c}.manager-kpis .value{font-size:clamp(24px,3vw,40px);letter-spacing:-.055em;color:#3a1203}.split .card,.card.section{border:0;border-radius:24px;box-shadow:0 18px 50px rgba(78,26,5,.07)}.card h2{letter-spacing:-.025em}.work-item{border-radius:14px;padding:10px 8px}.work-item:hover{background:#fff7ed}.bar{height:10px;border-radius:999px;background:#f3e6d7;overflow:hidden}.bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f58123,#facc15)}
@media(max-width:1100px){.manager-cover{grid-template-columns:1fr}.manager-cover-logo{justify-items:start}.manager-cover-logo img{width:170px}.manager-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.erp-brand img{width:150px;height:48px}.top-logo{display:block;margin-left:auto}.top-logo img{height:30px}.manager-cover{padding:22px;border-radius:26px}.manager-cover h1{font-size:42px}.manager-kpis{grid-template-columns:1fr}.manager-attention{grid-template-columns:1fr}}
@media(max-width:560px){.top-logo{display:none}.manager-cover-logo{display:none}.manager-cover .page-actions{display:grid}.manager-cover .page-actions .btn{width:100%;text-align:center}}
