/* VENDES accounts, owner portal, detailed history and community. */
.cloud-locked { visibility:hidden; }
.auth-gate[hidden] { display:none; }
.auth-gate {
  position:fixed; z-index:100; inset:0; display:grid; place-items:center;
  min-height:100dvh; padding:clamp(18px,4vw,42px);
  overflow:auto; overscroll-behavior:contain;
  background:
    radial-gradient(circle at 12% 12%,#1d5a4b 0,transparent 34%),
    radial-gradient(circle at 88% 88%,#0f765f 0,transparent 30%),
    linear-gradient(145deg,#111c20 0%,#172b27 52%,#0b1918 100%);
  color:#fff;
}
.auth-gate::before {
  content:''; position:fixed; inset:0; pointer-events:none; opacity:.16;
  background-image:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px);
  background-size:42px 42px;
}
.auth-card {
  position:relative; width:min(520px,100%); padding:clamp(24px,5vw,42px);
  border:1px solid #ffffff26; border-radius:24px;
  background:#fbfdfcf5; color:var(--ink);
  box-shadow:0 30px 90px #0007,inset 0 1px 0 #fff;
  animation:auth-card-in .35s cubic-bezier(.2,.8,.2,1);
}
.auth-loading { min-height:290px; display:grid; justify-items:center; align-content:center; text-align:center; }
.auth-loading .auth-brand { margin-bottom:24px; }
.auth-loading .auth-intro { margin:10px 0 0; }
.loading-spinner { width:34px; height:34px; margin-bottom:20px; border:3px solid #cfe2db; border-top-color:#087e68; border-radius:50%; animation:loading-spin .8s linear infinite; }
@keyframes loading-spin { to { transform:rotate(360deg); } }
.auth-brand { display:flex; align-items:center; gap:11px; margin-bottom:30px; letter-spacing:.08em; }
.auth-brand span { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:var(--green); color:#fff; font-size:22px; font-weight:850; box-shadow:0 8px 18px #087e6838; }
.auth-brand strong { font-size:18px; letter-spacing:.12em; }
.auth-card h1 { margin:0; font-size:clamp(28px,6vw,38px); line-height:1.05; letter-spacing:-1.5px; }
.auth-card h2 { margin:0 0 14px; font-size:18px; letter-spacing:-.3px; }
.auth-intro { margin:10px 0 26px; color:#63716e; font-size:15px; line-height:1.55; }
.auth-notice { margin:0 0 18px; padding:12px 14px; border:1px solid #bcdccd; border-radius:11px; background:#eaf7f0; color:#075a48; font-size:14px; line-height:1.45; }
.auth-notice.is-error { border-color:#e7b8b5; background:#fff0ef; color:#8f2925; }
.auth-form { display:grid; gap:15px; }
.auth-form label,.community-compose label,.team-compose label,.payment-select { display:grid; gap:7px; color:#33423e; font-size:14px; font-weight:650; }
.auth-form input,.auth-form select,.auth-form textarea,.community-compose input,.community-compose select,.community-compose textarea,.team-compose textarea,.payment-select select {
  width:100%; min-width:0; min-height:48px; padding:11px 13px;
  border:1px solid #d3ddda; border-radius:11px; outline:0;
  background:#fff; color:var(--ink); font-size:16px;
  transition:border-color .16s,box-shadow .16s;
}
.auth-form input:focus,.auth-form select:focus,.auth-form textarea:focus,.community-compose input:focus,.community-compose select:focus,.community-compose textarea:focus,.team-compose textarea:focus,.payment-select select:focus { border-color:var(--green); box-shadow:0 0 0 3px #087e6820; }
.password-control { position:relative; display:block; }
.password-control input { padding-right:54px; }
.password-toggle { position:absolute; top:50%; right:5px; display:grid; place-items:center; width:42px; height:42px; padding:0; border:0; border-radius:9px; background:transparent; color:#52635e; transform:translateY(-50%); }
.password-toggle:hover { background:#edf5f1; color:#075d4b; }
.password-toggle:focus-visible { outline:3px solid #087e6830; outline-offset:1px; }
.password-toggle svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.auth-form textarea { min-height:96px; resize:vertical; }
.auth-form small,.form-hint { color:var(--muted); font-size:12px; line-height:1.45; font-weight:400; }
.auth-primary,.auth-secondary { min-height:50px; margin-top:3px; border:0; border-radius:11px; font-weight:750; }
.auth-primary { background:var(--green); color:#fff; box-shadow:0 8px 18px #087e6828,inset 0 1px 0 #ffffff3b; }
.auth-secondary { background:#e6f1ed; color:#075b49; }
.auth-primary:disabled,.auth-secondary:disabled { opacity:.62; }
.auth-footer { display:flex; align-items:center; justify-content:center; gap:9px; margin-top:24px; color:#98a39f; font-size:13px; }
.auth-footer button { border:0; padding:5px; background:transparent; color:#176a58; font-weight:650; }
.install-app-button { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; min-height:46px; margin-top:16px; padding:10px 14px; border:1px solid #c8ddd5; border-radius:11px; background:#f3f8f6; color:#176a58; font-size:14px; font-weight:750; }
.install-app-button:hover { border-color:#99c8b8; background:#eaf5f1; }
.install-app-button svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.install-guide { margin:10px 0 0; padding:11px 13px; border-radius:10px; background:#edf5f1; color:#31564c; font-size:13px; line-height:1.45; text-align:center; }
.install-account { margin:0 0 10px; }
.install-dialog-mark { display:grid; place-items:center; width:70px; height:70px; margin:4px auto 18px; border-radius:20px; background:var(--green); color:#fff; font-size:37px; font-weight:850; box-shadow:0 12px 30px #087e6830; }
.onboarding-grid { display:grid; gap:14px; }
.onboarding-panel { padding:17px; border:1px solid var(--line); border-radius:15px; background:#f8faf9; }
.cart-pill { margin-left:auto; min-height:32px; padding:6px 10px; border:1px solid #cfe0d9; border-radius:99px; background:#fff; color:#145b4b; font-size:12px; font-weight:750; white-space:nowrap; box-shadow:0 2px 5px #1b362c0b; }
.side-nav { overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; }
.side-nav::-webkit-scrollbar { display:none; }
.side-nav .owner-only[hidden],.drawer .owner-only[hidden],[data-product-new][hidden],[data-product-library][hidden],.header-add-product[hidden] { display:none!important; }
.side-nav .ui-icon,.drawer .ui-icon,.text-button .ui-icon { width:20px; height:20px; }
.dialog.cloud-wide { width:min(880px,100%); }
.history-toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.filter-chip { min-height:38px; padding:7px 13px; border:1px solid var(--line); border-radius:99px; background:#fff; color:var(--ink); font-size:13px; font-weight:700; }
.filter-chip.active { border-color:var(--green); background:var(--green); color:#fff; }
.history-toolbar select { min-height:38px; margin-left:auto; padding:7px 32px 7px 11px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); font-size:13px; }
.history-totals .card b,.owner-metrics .card b { color:#20332e; }
.history-totals .card.emphasis,.owner-metrics .card.emphasis { border-color:#b9dfd1; background:linear-gradient(140deg,#e6f7f0,#f6fbf8); }
.history-totals .card.emphasis b,.owner-metrics .card.emphasis b { color:var(--green); }
.history-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:22px 0 10px; }
.history-actions h3 { margin:0; font-size:17px; letter-spacing:-.3px; }
.history-actions > span { color:var(--muted); font-size:13px; }
.text-button { display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:7px 10px; border:0; border-radius:9px; background:#edf5f1; color:#12614f; font-size:13px; font-weight:700; }
.text-button:disabled { opacity:.45; }
.product-summary { overflow:hidden; border:1px solid var(--line); border-radius:13px; }
.product-summary > div { display:grid; grid-template-columns:minmax(0,1fr) 68px 100px; gap:8px; align-items:center; padding:11px 13px; border-bottom:1px solid #edf1ef; font-size:14px; }
.product-summary > div:last-child { border:0; }
.product-summary b { color:var(--green); text-align:right; }
.product-summary span { text-align:right; font-variant-numeric:tabular-nums; }
.sales-ledger { display:grid; gap:8px; }
.sale-record { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#fff; }
.sale-record summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; cursor:pointer; list-style:none; }
.sale-record summary::-webkit-details-marker { display:none; }
.sale-record summary > span { display:grid; gap:3px; }
.sale-record summary > span:last-child { text-align:right; }
.sale-record summary strong,.sale-record summary b { color:var(--ink); font-size:15px; }
.sale-record summary small { color:var(--muted); font-size:12px; }
.sale-record.voided { opacity:.7; background:#faf8f8; }
.sale-record.voided summary b { text-decoration:line-through; }
.sale-detail { padding:4px 14px 14px; border-top:1px solid #edf1ef; }
.sale-detail > div { display:flex; justify-content:space-between; gap:12px; padding:8px 0; font-size:13px; }
.sale-detail-total { margin-top:5px; border-top:1px solid var(--line); font-size:15px!important; }
.sale-detail p { color:var(--muted); font-size:12px; }
.danger-link { border:0; padding:7px 0; background:transparent; color:#b13b36; font-size:13px; font-weight:700; }
.danger-button { background:#b63e38; }
.empty-state { padding:24px; border:1px dashed #cdd9d4; border-radius:13px; color:var(--muted); text-align:center; font-size:14px; line-height:1.5; }
.owner-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:-3px 0 16px; padding:20px; border-radius:17px; background:linear-gradient(135deg,#182923,#24483c); color:#fff; box-shadow:0 12px 30px #172a2424; }
.owner-hero span { color:#77d9bc; font-size:10px; font-weight:800; letter-spacing:.14em; }
.owner-hero h3 { margin:4px 0 2px; font-size:25px; letter-spacing:-.8px; }
.owner-hero p { margin:0; color:#c5d6d0; font-size:13px; }
.owner-hero > b { padding:7px 10px; border:1px solid #ffffff25; border-radius:8px; color:#8ee7ca; font-size:11px; letter-spacing:.08em; }
.portal-section { margin-top:20px; }
.cart-list { display:grid; gap:8px; }
.cart-row { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:62px; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); text-align:left; }
.cart-row.active { border-color:#99d1be; background:#eef8f4; box-shadow:inset 3px 0 0 var(--green); }
.cart-row span { display:grid; gap:3px; }
.cart-row strong { font-size:14px; }
.cart-row small { color:var(--muted); font-size:12px; }
.cart-row > b { color:var(--green); font-size:15px; font-variant-numeric:tabular-nums; }
.cart-row > .ui-icon { width:20px; color:var(--green); }
.people-list { overflow:hidden; border:1px solid var(--line); border-radius:12px; }
.people-list > div { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 13px; border-bottom:1px solid #edf1ef; }
.people-list > div:last-child { border:0; }
.people-list span:nth-child(2) { display:grid; gap:3px; min-width:0; }
.people-list small { overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.people-list > div > b { color:#167153; font-size:11px; }
.manage-person { border:0; border-radius:8px; padding:7px 9px; background:#edf5f1; color:#12614f; font-size:11px; font-weight:750; }
.member-summary { display:grid; grid-template-columns:38px minmax(0,1fr); gap:10px; align-items:center; padding:4px 0 2px; }
.member-summary > span:last-child { display:grid; gap:3px; }
.member-summary small { color:var(--muted); font-size:12px; }
.cart-access { display:grid; gap:7px; margin:0; padding:12px; border:1px solid var(--line); border-radius:11px; }
.cart-access legend { padding:0 5px; color:#33423e; font-size:13px; font-weight:700; }
.cart-access label { display:flex; align-items:center; gap:9px; min-height:36px; font-size:14px; font-weight:600; }
.cart-access input { width:18px; min-height:18px; margin:0; accent-color:var(--green); }
.person-avatar,.account-avatar { display:grid; place-items:center; border-radius:50%; background:#dff2ea; color:#08735d; font-weight:800; }
.person-avatar { width:36px; height:36px; }
.limit-note { margin:10px 0 0; padding:10px 12px; border-radius:10px; background:#fff6df; color:#805c16; font-size:12px; line-height:1.45; }
.pending-invite { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px; }
.pending-invite span { display:grid; gap:3px; }
.pending-invite small { color:var(--muted); }
.pending-invite button { border:0; border-radius:8px; padding:7px 9px; background:#edf5f1; color:#12614f; font-size:12px; }
.invite-code { display:block; overflow-wrap:anywhere; margin:16px 0; padding:13px; border:1px dashed #9ccfbe; border-radius:10px; background:#eef8f4; color:#075e4b; font-size:13px; text-align:center; }
.community-compose,.team-compose { display:grid; gap:12px; margin-bottom:20px; padding:15px; border:1px solid var(--line); border-radius:14px; background:#f7faf8; }
.community-compose .form-pair { display:grid; grid-template-columns:140px minmax(0,1fr); gap:10px; }
.community-compose textarea,.team-compose textarea { min-height:90px; resize:vertical; }
.community-feed,.team-feed { display:grid; gap:10px; }
.community-post { padding:15px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:0 4px 12px #172a2408; }
.community-post > div { display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:11px; }
.community-post > div span { padding:4px 7px; border-radius:99px; background:#e7f4ef; color:#12614f; font-weight:700; }
.community-post h3 { margin:12px 0 6px; font-size:17px; }
.community-post p { margin:0; color:#3f4e49; white-space:pre-wrap; }
.community-post footer { margin-top:12px; color:var(--muted); font-size:12px; }
.team-feed article { display:grid; grid-template-columns:38px minmax(0,1fr); gap:10px; padding:12px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.team-feed p { margin:4px 0; color:#3f4e49; white-space:pre-wrap; }
.team-feed time { color:var(--muted); font-size:11px; }
.account-card { display:flex; flex-direction:column; align-items:center; padding:20px; text-align:center; }
.account-avatar { width:68px; height:68px; margin-bottom:12px; font-size:27px; }
.account-card h3 { margin:0 0 4px; font-size:22px; }
.account-card p { margin:0 0 10px; color:var(--muted); }
.account-card b { color:#12614f; font-size:13px; }
.notification-list { display:grid; gap:9px; }
.notification-list article { position:relative; padding:13px 14px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.notification-list article > span { color:#168064; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.notification-list h3 { margin:5px 0 3px; font-size:15px; }
.notification-list p { margin:0 0 7px; color:#4c5a56; font-size:13px; }
.notification-list time { color:var(--muted); font-size:11px; }
.payment-select { margin:16px 0 4px; }

@keyframes auth-card-in { from { opacity:0; transform:translateY(18px) scale(.98); } to { opacity:1; transform:none; } }

@media(max-width:760px) {
  .auth-gate { align-items:start; padding:calc(18px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom)); }
  .auth-card { margin:auto 0; padding:24px 20px; border-radius:20px; }
  .auth-brand { margin-bottom:22px; }
  .auth-card h1 { font-size:29px; }
  .onboarding-grid { grid-template-columns:1fr; }
  .cart-pill { max-width:42%; overflow:hidden; text-overflow:ellipsis; }
  .summary-head .date-label { display:none; }
  .history-toolbar select { width:100%; margin-left:0; }
  .history-totals,.owner-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-summary > div { grid-template-columns:minmax(0,1fr) 52px 88px; padding:10px; font-size:13px; }
  .owner-hero { padding:16px; }
  .owner-hero h3 { font-size:21px; }
  .community-compose .form-pair { grid-template-columns:1fr; }
  .people-list > div { grid-template-columns:34px minmax(0,1fr); }
  .people-list > div > b,.people-list > div > .manage-person { grid-column:2; justify-self:start; }
}

@media(max-width:390px) {
  .history-totals .card b,.owner-metrics .card b { font-size:20px; }
  .cart-pill { padding-inline:8px; font-size:11px; }
}

@media(prefers-reduced-motion:reduce) { .auth-card { animation:none; } }

/* Licensed access, compact cart identity and contextual guidance. */
.workspace { grid-template-rows:auto minmax(0,1fr); }
.brand-copy { display:grid; gap:1px; min-width:0; }
.header-cart-pill {
  display:flex; align-items:center; gap:5px; width:max-content; max-width:170px;
  min-height:18px; margin:0; padding:0; border:0; border-radius:0;
  background:transparent; color:#53706a; box-shadow:none;
  font-size:11px; font-weight:700; line-height:1.1;
}
.header-cart-pill:hover { color:var(--green); }
.header-cart-pill[hidden] { display:none; }
.header-cart-pill span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.header-cart-pill b { font-size:12px; line-height:1; }
.cart-state-dot { width:6px; height:6px; flex:0 0 6px; border-radius:50%; background:#19a981; box-shadow:0 0 0 3px #19a98118; }
.cart-state-dot.is-closed { background:#e49b26; box-shadow:0 0 0 3px #e49b2618; }
.products-heading { display:flex; align-items:center; gap:7px; color:var(--ink)!important; }
.inline-help { display:grid; place-items:center; width:24px; height:24px; padding:0; border:1px solid #bcd6cd; border-radius:50%; background:#eef7f4; color:#087e68; font-size:13px; font-weight:850; }
.avatar { overflow:hidden; padding:0; }
.avatar img,.account-avatar img { width:100%; height:100%; display:block; object-fit:cover; }
.dialog-actions { display:flex; align-items:center; gap:8px; }
.module-help-button {
  display:grid; place-items:center; width:44px; height:44px; padding:0;
  border:1px solid #c9ddd6; border-radius:50%; background:#eef7f4;
  color:#087e68; font-size:21px; font-weight:800;
}
.module-help-button[hidden] { display:none; }
.context-help {
  margin:0 0 18px; padding:14px 15px; border:1px solid #b9ddd1;
  border-radius:12px; background:#eaf7f2; color:#244d43;
  font-size:14px; line-height:1.55; animation:auth-card-in .18s ease-out;
}
.context-help b { color:#086451; }
.inventory-columns,.inventory-row { display:grid; grid-template-columns:minmax(0,1fr) 96px 96px; gap:10px; align-items:center; }
.inventory-columns { position:sticky; top:68px; z-index:1; margin:0 0 4px; padding:8px 0; background:#fff; color:#62736e; font-size:11px; font-weight:800; text-align:center; text-transform:uppercase; }
.inventory-columns span:first-child { text-align:left; }
.inventory-row { padding:9px 12px 9px 14px; border-bottom:1px solid #edf1ef; }
.inventory-row input { width:100%; min-width:0; min-height:46px; padding:8px; border:1px solid var(--line); border-radius:10px; font-variant-numeric:tabular-nums; }
.inventory-row { position:relative; margin-inline:0; border-radius:12px; transition:background .2s,border-color .2s,box-shadow .2s; }
.inventory-row > span { min-width:0; padding-right:2px; }
.inventory-row > span b { overflow-wrap:anywhere; }
.inventory-row > span small strong { font-weight:800; }
.stock-stepper { display:grid; grid-template-columns:minmax(0,1fr) 24px; min-width:0; min-height:46px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; }
.inventory-row .stock-stepper input { min-height:44px; padding:8px 3px 8px 8px; border:0; border-radius:0; outline-offset:-3px; appearance:textfield; }
.inventory-row .stock-stepper input::-webkit-inner-spin-button,.inventory-row .stock-stepper input::-webkit-outer-spin-button { appearance:none; margin:0; }
.stock-step-buttons { display:grid; grid-template-rows:1fr 1fr; border-left:1px solid var(--line); }
.stock-step-buttons button { display:grid; place-items:center; min-width:24px; min-height:22px; padding:0; border:0; background:#f2f6f4; color:#315249; font-size:9px; line-height:1; }
.stock-step-buttons button:first-child { border-bottom:1px solid var(--line); }
.stock-step-buttons button:active { background:#dff0ea; }
.inventory-row.stock-warning { background:#fff8d8; box-shadow:inset 4px 0 #e3b72e; }
.inventory-row.stock-warning > span small strong { color:#8b6800; }
.inventory-row.stock-salmon { background:#ffede5; box-shadow:inset 4px 0 #ed8a67; }
.inventory-row.stock-salmon > span small strong { color:#aa4c2f; }
.inventory-row.stock-danger { background:#fde5e3; box-shadow:inset 4px 0 #d95049; }
.inventory-row.stock-danger > span small strong { color:#a62f2a; }
.inventory-row.stock-critical { background:#ffd7d4; box-shadow:inset 4px 0 #bd2f2b; animation:stock-critical-pulse 1.15s ease-in-out infinite; }
.inventory-row.stock-critical > span small strong { color:#971f1b; }
@keyframes stock-critical-pulse { 50% { background:#fff3f2; box-shadow:inset 4px 0 #e33d37,0 0 0 2px #e33d372e; } }
.inventory-dialog { padding-top:0; }
.inventory-dialog .dialog-top {
  position:sticky; top:0; z-index:3; margin:0 -26px 18px; padding:17px 26px;
  border-radius:20px 20px 0 0; background:linear-gradient(135deg,#087e68,#0b6c5d); color:#fff;
  box-shadow:0 5px 16px #12382d20;
}
.inventory-dialog .dialog-top h2 { color:#fff; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.inventory-dialog .module-help-button,.inventory-dialog .close { border-color:#ffffff36; background:#ffffff18; color:#fff; }
.inventory-dialog .close svg { color:#fff; }
.access-pending-lock { display:grid; place-items:center; width:62px; height:62px; margin:0 auto 16px; border-radius:18px; background:#e5f3ee; color:#087e68; }
.access-pending-lock .ui-icon { width:30px; height:30px; }
.secure-access-note { margin:0; color:#60716c; font-size:12px; line-height:1.5; text-align:center; }
.profile-photo-form { display:grid; gap:10px; margin:0 0 14px; padding:15px; border:1px solid var(--line); border-radius:14px; background:#f7faf8; }
.profile-photo-status { margin:0; padding:10px 12px; border-radius:9px; background:#fff0ef; color:#8f2925; font-size:13px; line-height:1.4; }
.photo-picker { display:grid; gap:7px; text-align:center; cursor:pointer; }
.photo-picker input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.photo-picker > span { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px 13px; border:1px dashed #9bcabb; border-radius:11px; background:#eef7f3; color:#0c6c58; font-weight:750; }
.photo-picker small { color:var(--muted); font-size:12px; line-height:1.45; }
.account-avatar.has-photo { overflow:hidden; background:#dfe9e5; }
.billing-banner[hidden] { display:none; }
.billing-banner { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 1px 8px; padding:9px 11px; border:1px solid #efc36f; border-radius:11px; background:#fff6dc; color:#624811; }
.billing-banner span { display:grid; gap:1px; min-width:0; }
.billing-banner strong { font-size:12px; }
.billing-banner small { font-size:10px; line-height:1.3; }
.billing-banner button,.billing-banner .billing-payment-link { flex:0 0 auto; min-height:34px; padding:8px 10px; border:0; border-radius:9px; background:#8a6208; color:#fff; font-size:11px; font-weight:800; text-decoration:none; }
.billing-account-card,.billing-gate-card { display:grid; gap:7px; margin:0 0 14px; padding:15px; border:1px solid #b9dacf; border-radius:14px; background:linear-gradient(145deg,#edf8f4,#fff); }
.billing-account-card > span { color:#087e68; font-size:11px; font-weight:850; letter-spacing:.08em; }
.billing-account-card h3,.billing-account-card p,.billing-gate-card span { margin:0; }
.billing-account-card p,.billing-gate-card span { color:#60716c; font-size:13px; line-height:1.45; }
.billing-payment-link { display:flex; align-items:center; justify-content:center; min-height:46px; padding:10px 14px; border-radius:11px; background:#087e68; color:#fff; font-weight:800; text-decoration:none; }
.billing-contact { margin:4px 0 0!important; padding:10px 11px; border-radius:9px; background:#fff3dd; color:#75520b!important; font-size:12px!important; }
.billing-gate-card { text-align:left; }

@media(max-width:760px) {
  .brand-copy { gap:0; }
  .header-cart-pill { max-width:128px; min-height:15px; font-size:10px; }
  .workspace { grid-template-rows:auto minmax(0,1fr); }
  .inventory-dialog { padding:0 16px 20px; }
  .inventory-dialog .dialog-top { margin:0 -16px 15px; padding:14px 16px; }
  .inventory-columns,.inventory-row { grid-template-columns:minmax(112px,1fr) 92px 92px; gap:7px; }
  .inventory-columns { top:61px; font-size:9px; }
  .inventory-row { padding:7px 8px 7px 12px; }
  .inventory-row span b { font-size:14px; }
  .inventory-row span small { font-size:11px; }
  .inventory-row input { min-height:44px; font-size:15px; }
}

@media(max-width:390px) {
  .header-cart-pill { max-width:104px; }
  .inventory-columns,.inventory-row { grid-template-columns:minmax(108px,1fr) 90px 90px; gap:6px; }
  .inventory-row { padding-left:11px; padding-right:7px; }
}
@media(prefers-reduced-motion:reduce) { .inventory-row.stock-critical { animation:none; } }

/* The stock summary doubles as the shortest path into inventory. */
.metric.alert[role="button"] { cursor:pointer; touch-action:manipulation; transition:border-color .16s,box-shadow .16s,transform .16s; }
.metric.alert[role="button"]:hover { border-color:#9fcfc2!important; box-shadow:0 4px 12px #192d231a,0 0 0 1px #ffffff inset; }
.metric.alert[role="button"]:active { transform:scale(.985); }
.metric.alert[role="button"]:focus-visible { outline:3px solid #16a58c; outline-offset:3px; }

/* Long mobile dialogs keep their close action below the iPhone status area and visible while scrolling. */
.dialog:not(.inventory-dialog) > .dialog-top {
  position:sticky; top:0; z-index:5; margin:-8px -8px 14px; padding:8px;
  border-bottom:1px solid #edf1ef; background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
}
.dialog-actions,.close,.module-help-button { flex-shrink:0; }
.close { touch-action:manipulation; }

/* Daily cash control: compact, auditable and comfortable on touch screens. */
.cash-overview,.close-totals { margin-bottom:14px; }
.cash-movement-form { display:grid; gap:11px; margin:12px 0 16px; padding:14px; border:1px solid var(--line); border-radius:14px; background:#f7faf8; }
.cash-movement-form label { display:grid; gap:6px; color:#354942; font-size:13px; font-weight:750; }
.cash-movement-form input,.cash-movement-form select { width:100%; min-width:0; min-height:46px; padding:10px 11px; border:1px solid #cedbd6; border-radius:10px; background:#fff; color:var(--ink); }
.cash-movement-form .btn { margin-top:0; }
.cash-ledger { display:grid; gap:8px; }
.cash-ledger article { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 10px; align-items:center; padding:12px 13px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.cash-ledger article span { min-width:0; }
.cash-ledger article strong,.cash-ledger article small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cash-ledger article small { margin-top:3px; color:var(--muted); font-size:11px; }
.cash-ledger article > b { font-size:15px; white-space:nowrap; }
.cash-ledger article > b.positive { color:#087e68; }
.cash-ledger article > b.negative { color:#bf453f; }
.cash-ledger article em { grid-column:1/-1; color:#6b7b75; font-size:10px; font-style:normal; text-transform:uppercase; letter-spacing:.06em; }
.cash-closed-notice,.shift-status { margin:0 0 13px; padding:11px 13px; border-radius:11px; font-size:13px; font-weight:800; }
.cash-closed-notice,.shift-status.closed { background:#f5e8e6; color:#923c36; }
.shift-status.open { background:#e8f6f1; color:#08725f; }
.cash-equation { display:grid; gap:3px; margin:12px 0; padding:15px; border-radius:14px; background:linear-gradient(135deg,#0b6858,#143b32); color:#fff; }
.cash-equation span { color:#a8dfd0; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.cash-equation strong { font-size:27px; letter-spacing:-.04em; }
.cash-equation small { color:#d8ebe5; font-size:11px; line-height:1.4; }
.payment-breakdown { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:12px 0; }
.payment-breakdown span { display:flex; justify-content:space-between; gap:8px; padding:9px 10px; border:1px solid var(--line); border-radius:10px; color:#65756f; font-size:11px; }
.payment-breakdown b { color:#263731; white-space:nowrap; }
.cash-difference b { color:#bd3f39!important; }
@media(max-width:480px) {
  .cash-movement-form { padding:12px; }
  .cash-overview .card,.close-totals .card { min-height:104px; }
  .cash-ledger article { padding:11px; }
}
