@font-face {
  font-family:Ulevi;
  src:url("fonts/bpg-glaho-web-webfont.woff2") format("woff2");
  font-display:swap;
}

@font-face {
  font-family:UleviCaps;
  src:url("fonts/bpg-le-studio-04-caps-webfont.woff2") format("woff2");
  font-display:swap;
}

:root {
  --ink:#26251f;
  --muted:#77736b;
  --paper:#f6f5f0;
  --line:#e5e2d9;
  --accent:#bd7733;
  --dark:#262a24;
  --white:#fff;
  --red:#a84434;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:14px/1.6 Ulevi,system-ui,sans-serif;
}

a {
  color:#865526;
  text-decoration:none;
}

a:hover {
  text-decoration:underline;
}

button,input,select,textarea {
  font:inherit;
}

button,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 18px;
  border:1px solid transparent;
  border-radius:8px;
  background:var(--accent);
  color:#fff;
  font-size:13px;
  cursor:pointer;
  text-decoration:none;
  font-family:UleviCaps,Ulevi,sans-serif;
}

button:hover,.button:hover {
  filter:brightness(.95);
  text-decoration:none;
}

button:disabled {
  opacity:.6;
  cursor:wait;
}

.secondary {
  color:var(--ink);
  background:#fff;
  border-color:var(--line);
}

.danger {
  background:var(--red);
}

.small {
  min-height:34px;
  padding:6px 12px;
  font-size:12px;
}

input,select,textarea {
  display:block;
  width:100%;
  padding:10px 12px;
  border:1px solid #d5d2c8;
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  min-height:42px;
  margin-top:5px;
}

input[type=checkbox], input[type=radio] {
  display:inline-block;
  width:18px;
  min-height:18px;
  vertical-align:middle;
  margin:0 8px 0 0;
}

input:focus,select:focus,textarea:focus {
  outline:2px solid #d5b080;
  outline-offset:2px;
}

label {
  display:block;
  font-size:13px;
  color:#514e45;
}

h1,h2,h3,h4 {
  font-family:UleviCaps,Ulevi,sans-serif;
  line-height:1.5;
  font-weight:400;
  margin:0 0 12px;
}

h1 {
  font-size:25px;
}

h2 {
  font-size:18px;
}

h3 {
  font-size:15px;
}

h4 {
  font-size:14px;
}

p {
  margin:10px 0 16px;
}

small {
  font-size:12px;
  color:var(--muted);
}

td small {
  display:block;
  margin-top:3px;
}

.muted {
  color:var(--muted);
}

.eyebrow {
  font:11px UleviCaps,Ulevi,sans-serif;
  color:var(--muted);
  letter-spacing:.03em;
}

.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:238px;
  background:var(--dark);
  color:#e8e4d8;
  padding:30px 20px;
  display:flex;
  flex-direction:column;
  z-index:20;
  overflow:auto;
}

.brand {
  font:42px UleviCaps,Ulevi,sans-serif;
  color:#e2c398;
  padding:0 12px 32px;
  line-height:1.3;
}

.brand:hover {
  text-decoration:none;
}

.brand span {
  display:block;
  font:10px UleviCaps,Ulevi,sans-serif;
  letter-spacing:.02em;
  margin-top:8px;
  color:#aaa99b;
}

.sidebar nav {
  display:grid;
  gap:5px;
}

.sidebar nav a {
  padding:11px 14px;
  border-radius:6px;
  color:#c4c5bb;
  font-family:UleviCaps,Ulevi,sans-serif;
  font-size:12px;
}

.sidebar nav a:hover {
  background:#343b2f;
  text-decoration:none;
}

.sidebar nav a[aria-current] {
  background:#3e4537;
  color:#f3d09c;
  box-shadow:inset 3px 0 #c99756;
}

.sidebar-foot {
  margin-top:auto;
  padding:32px 14px 0;
  font-size:11px;
  color:#94998c;
}

.workspace {
  margin-left:238px;
  padding:30px 38px 48px;
  max-width:1800px;
}

.topbar {
  display:flex;
  align-items:center;
  gap:20px;
  justify-content:space-between;
  margin-bottom:28px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
}

.topbar h1 {
  margin:6px 0 0;
}

.account {
  display:flex;
  align-items:center;
  gap:15px;
  font-size:12px;
}

.menu-toggle {
  display:none;
}

.page-intro {
  margin-bottom:22px;
}

.page-intro p {
  margin:0 0 4px;
}

.metrics {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:16px;
  margin-bottom:24px;
}

.metric {
  display:block;
  border:1px solid var(--line);
  border-radius:12px;
  padding:22px;
  background:#fff;
  color:var(--ink);
}

.metric:hover {
  text-decoration:none;
}

.metric span {
  display:block;
  font-size:12px;
  font-family:UleviCaps,Ulevi,sans-serif;
  color:var(--muted);
}

.metric strong {
  display:block;
  margin:10px 0;
  font:30px/1.3 Ulevi,system-ui,sans-serif;
}

.card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:24px;
  margin-bottom:20px;
  min-width:0;
}

.section-head {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-bottom:16px;
}

.section-head h2,.section-head h3 {
  margin:0;
}

.section-head>a {
  white-space:nowrap;
  font-size:12px;
}

.table-wrap {
  overflow:auto;
}

table {
  border-collapse:collapse;
  width:100%;
  text-align:left;
  font-size:13px;
}

th {
  font-family:UleviCaps,Ulevi,sans-serif;
  font-weight:400;
  color:var(--muted);
  font-size:11px;
  padding:13px 12px;
  background:#f9f8f4;
  white-space:nowrap;
}

td {
  padding:16px 12px;
  border-bottom:1px solid #eeeae2;
  vertical-align:top;
}

tbody tr:last-child td {
  border:0;
}

td:first-child,th:first-child {
  padding-left:8px;
}

.row-link {
  font-weight:700;
  color:var(--ink);
}

.badge {
  display:inline-block;
  border-radius:20px;
  background:#f0efea;
  color:#666456;
  padding:4px 11px;
  font-size:11px;
  white-space:nowrap;
}

.badge.new {
  background:#fff1d6;
  color:#95601b;
}

.badge.ready,.badge.completed {
  background:#e8efe4;
  color:#4e6840;
}

.badge.cancelled {
  background:#f9e9e5;
  color:#9b594a;
}

.badge.preparing,.badge.confirmed {
  background:#e9eef2;
  color:#556676;
}

.notice {
  padding:15px 20px;
  margin-bottom:20px;
  border-radius:8px;
  background:#eeeae0;
  color:#696357;
  font-size:12px;
  line-height:1.8;
}

.notice.success {
  background:#e6efdf;
  color:#4f683c;
}

.empty {
  padding:30px;
  text-align:center;
  color:var(--muted);
}

.filters {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px;
  margin-bottom:22px;
}

.filters label,.filters p {
  flex:1;
  min-width:150px;
  margin:0;
}

.filters p label {
  margin-bottom:4px;
}

.filters .errorlist {
  width:100%;
  flex-basis:100%;
}

.form-card {
  max-width:780px;
}

.form-card h2 {
  margin-top:15px;
}

.form-card form>p {
  margin:18px 0;
}

.form-card textarea {
  min-height:90px;
}

.errorlist {
  color:var(--red);
  font-size:12px;
  background:#fff4ef;
  padding:10px 12px 10px 30px;
  border-radius:6px;
}

.helptext {
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:5px;
}

.detail-grid {
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);
  gap:22px;
  align-items:start;
}

.facts {
  display:grid;
  grid-template-columns:160px 1fr;
  gap:10px 20px;
  font-size:13px;
  margin-bottom:26px;
}

.facts dt {
  color:var(--muted);
}

.facts dd {
  margin:0;
  overflow-wrap:anywhere;
}

.totals {
  display:grid;
  gap:10px;
  margin:22px 0 0;
  max-width:350px;
  margin-left:auto;
}

.totals span {
  display:flex;
  justify-content:space-between;
}

.totals .total {
  border-top:1px solid var(--line);
  padding-top:12px;
  font-size:18px;
}

.action-stack h2 {
  font-size:14px;
  color:var(--muted);
}

summary {
  font:13px UleviCaps,Ulevi,sans-serif;
  cursor:pointer;
  line-height:1.7;
}

details form {
  margin-top:18px;
}

details .card {
  padding:20px;
}

.action-card[open] {
  border-color:#d6ba91;
}

.record {
  border-top:1px solid var(--line);
  padding:20px 0;
}

.record:first-of-type {
  border:0;
}

.record p {
  font-size:13px;
  overflow-wrap:anywhere;
}

.inline {
  display:inline-block;
  margin:4px 6px 4px 0;
}

.refund {
  padding:18px;
  background:#faf7f1;
  border-radius:6px;
  margin-top:16px;
}

.history {
  padding-left:18px;
  font-size:13px;
}

.history li {
  margin-bottom:15px;
}

.history time {
  display:inline-block;
  color:var(--muted);
  min-width:140px;
}

.history p {
  margin:4px 0;
}

.button-row {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:20px;
}

.pos-line {
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:18px;
  border-top:1px solid var(--line);
  padding-top:8px;
}

.production-numbers {
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  margin:22px 0;
}

.production-numbers span {
  color:var(--muted);
  font-size:12px;
}

.production-numbers b {
  display:block;
  color:var(--ink);
  font-size:20px;
  font-weight:400;
}

.chips {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.pagination {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-top:22px;
  font-size:12px;
}

pre {
  font-size:11px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  max-width:500px;
}

.login-body {
  background:var(--dark);
}

.login-main {
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:25px;
}

.login-card {
  width:420px;
  max-width:100%;
  padding:40px;
  background:#fff;
  border-radius:16px;
  box-shadow:0 20px 60px #0003;
}

.login-brand {
  color:var(--accent);
  font-size:52px;
  margin-top:4px;
}

.login-card h2 {
  font-size:17px;
}

.login-card button {
  width:100%;
  margin-top:12px;
}

.login-card label {
  font-family:UleviCaps,Ulevi,sans-serif;
}

@media(max-width:1100px) {
  .workspace {
    padding:24px;
  }
  .detail-grid {
    grid-template-columns:1fr;
  }
  .action-stack {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .action-stack>h2,.action-stack>.notice {
    grid-column:1/-1;
  }
  .action-card {
    margin:0;
  }
  .metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:760px) {
  .sidebar {
    transform:translateX(-100%);
    transition:transform .2s;
    width:238px;
    box-shadow:10px 0 50px #0003;
  }
  .sidebar.open {
    transform:translateX(0);
  }
  .workspace {
    margin-left:0;
    padding:18px 16px;
  }
  .menu-toggle {
    display:inline-flex;
    position:relative;
    z-index:30;
    padding:8px 12px;
    min-height:36px;
  }
  .topbar {
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:20px;
  }
  .topbar>div:not(.account) {
    flex:1;
  }
  .topbar h1 {
    font-size:20px;
  }
  .account {
    width:100%;
    justify-content:flex-end;
  }
  .eyebrow {
    font-size:10px;
  }
  .card {
    padding:18px;
  }
  .metrics {
    gap:10px;
  }
  .metric {
    padding:16px;
  }
  .metric strong {
    font-size:25px;
  }
  .metric span {
    font-size:11px;
  }
  .detail-grid {
    gap:0;
  }
  .facts {
    grid-template-columns:110px 1fr;
    gap:8px 14px;
  }
  .action-stack {
    grid-template-columns:1fr;
    margin-bottom:20px;
  }
  .filters {
    gap:10px;
  }
  .filters p,.filters label {
    min-width:130px;
  }
  .filters button {
    flex:1;
  }
  .pos-line {
    grid-template-columns:1fr;
    gap:0;
  }
  .section-head {
    align-items:flex-start;
  }
  .login-card {
    padding:28px;
  }
  .production-numbers {
    gap:20px;
  }
  th {
    font-size:10px;
  }
  td {
    font-size:12px;
  }
  .table-wrap {
    margin:0 -3px;
  }
}

/* New online orders: pinned above the page until confirmed; pulses while ringing. */
.order-alert {
  position:sticky;
  top:12px;
  z-index:30;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 20px;
  padding:14px 20px;
  margin-bottom:20px;
  border:1px solid var(--accent);
  border-radius:8px;
  background:#fbf1e6;
  color:var(--ink);
  font-size:13px;
}

.order-alert[hidden], .order-alert-hint[hidden] {
  display:none;
}

.order-alert .button-row {
  margin:0;
}

.order-alert-hint {
  flex-basis:100%;
  color:var(--red);
  font-size:12px;
}

.order-alert.ringing {
  animation:order-pulse 1.2s ease-in-out infinite;
}

@keyframes order-pulse {
  50% { box-shadow:0 0 0 6px rgba(189,119,51,.25); }
}

@media (prefers-reduced-motion: reduce) {
  .order-alert.ringing { animation:none; border-width:2px; }
}


/* One-page new product: a compact row per selling format. */
.format-rows {
  display:grid;
  gap:10px;
  margin-bottom:18px;
}

.format-row {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px;
}

.format-row label {
  display:grid;
  gap:4px;
  font-size:12px;
}

@media (max-width: 640px) {
  .format-row { grid-template-columns:1fr; }
}

/* Radio choices sit on one line with their label. */
div.choice-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  margin-top:8px;
}

div.choice-list label {
  display:flex;
  align-items:center;
  gap:8px;
}

div.choice-list input {
  margin:0;
}

/* Simple product form: the essentials first, the rest folded away. */
.product-new-pair {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0 16px;
}

.product-new details {
  margin:4px 0 16px;
}

.product-new summary {
  cursor:pointer;
  color:var(--accent);
  font-size:13px;
  padding:6px 0;
}

.product-new details.advanced {
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:8px;
}

@media (max-width: 640px) {
  .product-new-pair { grid-template-columns:1fr; }
}

.photo-preview {
  display:block;
  max-width:220px;
  max-height:160px;
  margin:10px 0 16px;
  border-radius:8px;
  object-fit:cover;
}

.upload-error {
  display:block;
  margin-top:6px;
  color:var(--red);
  font-size:12px;
}

.upload-error[hidden] {
  display:none;
}

.catalog-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
}

.delete-link {
  color:var(--red, #a32d2d);
}

.catalog-actions a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}

/* Keep category actions and prices visible without sideways scrolling on phones. */
@media (max-width: 640px) {
  .category-table thead,.variant-table thead { display:none; }
  .category-table tbody,.variant-table tbody { display:block; }
  .category-table tr,.variant-table tr {
    display:block;
    padding:12px 0;
    border-bottom:1px solid var(--line);
  }
  .category-table tr:last-child,.variant-table tr:last-child { border-bottom:0; }
  .category-table td,.variant-table td {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:6px 0;
    border:0;
    overflow-wrap:anywhere;
  }
  .category-table td:first-child,.variant-table td:first-child {
    display:block;
    font-size:14px;
  }
  .category-table td[data-label]::before,.variant-table td[data-label]::before {
    content:attr(data-label);
    color:var(--muted);
  }
  .catalog-product .section-head { flex-direction:column; }
  .catalog-product .section-head .button-row { margin:0; }
}

.category-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:20px 0;
}
.category-tabs a {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  max-width:100%;
  padding:10px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.category-tabs a[aria-current="page"] {
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.category-tabs span {
  padding:1px 7px;
  border-radius:12px;
  background:rgba(0,0,0,.07);
  font-size:12px;
}
.category-heading,.day-filter {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
}
.category-heading h2 { margin:0 0 6px; }
.day-filter { justify-content:flex-start; align-items:flex-end; }
.day-filter label { display:block; margin-bottom:6px; }
.day-filter input { width:auto; max-width:100%; }
#stock-entry summary { cursor:pointer; }
.workday-table .catalog-actions { min-width:110px; }

@media (max-width:640px) {
  .category-heading,.workday-heading { align-items:flex-start; flex-direction:column; }
  .workday-table thead,.movement-table thead { display:none; }
  .workday-table tbody,.movement-table tbody { display:block; }
  .workday-table tr,.movement-table tr {
    display:block;
    padding:12px 0;
    border-bottom:1px solid var(--line);
  }
  .workday-table tr:last-child,.movement-table tr:last-child { border-bottom:0; }
  .workday-table td,.movement-table td {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:6px 0;
    border:0;
    overflow-wrap:anywhere;
  }
  .workday-table td:first-child,.movement-table td:first-child { display:block; font-size:14px; }
  .workday-table td[data-label]::before,.movement-table td[data-label]::before {
    content:attr(data-label);
    color:var(--muted);
  }
  .day-filter > div { min-width:0; width:100%; }
  .day-filter input { width:100%; }
}

/* Management workspace */
.nav-group{display:block;font-size:.72rem;opacity:.65;padding:17px 14px 5px;letter-spacing:.02em}.workspace-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.workspace-tabs a{display:block;padding:10px 14px;border:1px solid var(--border,#dce3eb);border-radius:10px;background:var(--surface,#fff)}.workspace-tabs a[aria-current=page]{font-weight:bold;border-color:#b77720}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px 20px}.form-grid p{margin:8px 0}.entry-row{padding:16px;margin:12px 0;border:1px solid var(--border,#dce3eb);border-radius:12px}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:18px}.hub-link{display:block;color:inherit;text-decoration:none}.checkout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,1fr);gap:20px;align-items:start}.checkout-products,.checkout-cart{min-width:0}.checkout-products>.category-tabs{margin-top:16px;gap:8px}.checkout-products .category-tabs button{white-space:normal;padding:10px 12px;font-size:.86rem;background:#f2f4f7;color:#223047}.checkout-products .category-tabs button[aria-pressed=true]{background:#223047;color:#fff}.pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(155px,100%),1fr));gap:12px}.pos-product{display:flex;flex-direction:column;gap:9px;text-align:left;background:#fff;color:#223047;min-height:140px;padding:16px;border:1px solid #dce3eb;border-radius:12px;overflow-wrap:anywhere}.pos-product:hover{border-color:#b77720;background:#fffaf0}.pos-product img{width:100%;height:100px;object-fit:cover;border-radius:8px}.pos-product strong{font-size:1rem}.pos-product span,.pos-product small{font-size:.82rem}.pos-product:disabled{opacity:.45}.checkout-cart{position:sticky;top:20px}.cart-line{padding:12px 0;border-bottom:1px solid #dce3eb}.cart-line>strong,.cart-line>small{display:block}.cart-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:10px 0}.cart-controls input{width:95px;min-width:70px;padding:10px}.cart-controls button{padding:9px 12px}.cart-controls span{font-size:.8rem}.checkout-total{display:flex;justify-content:space-between;gap:10px;padding:20px 0;font-size:1.1rem}.checkout-total strong{font-size:1.5rem;white-space:nowrap}.wide-button{width:100%;margin:8px 0;min-height:46px}.payment-choice{display:flex;gap:18px;margin:12px 0}.payment-choice input{width:auto}.checkout input[type=checkbox]{width:auto}.checkout #pos-received{min-width:100px;flex:1}.checkout .button-row{flex-wrap:wrap}dialog{border:1px solid #dce3eb;border-radius:16px;padding:24px;width:min(440px,calc(100% - 24px));max-height:90vh;overflow:auto}dialog::backdrop{background:rgb(15 23 42 / .5)}.dialog-close{float:right}#weight-value{font-size:1.6rem}.error{color:#9e2525}.form-grid input,.form-grid select{max-width:100%}
@media(max-width:1100px){.checkout{grid-template-columns:minmax(0,1fr)}.checkout-cart{position:static}.pos-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}}@media(max-width:420px){.pos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-product{padding:11px;min-height:130px}.checkout{gap:10px}.cart-controls{gap:4px}.checkout-total{font-size:.95rem}.checkout-total strong{font-size:1.25rem}.workspace-tabs{gap:5px}.workspace-tabs a{padding:8px;font-size:.85rem}}
.section-head{flex-wrap:wrap}.section-head>*{min-width:0}.section-head a{overflow-wrap:anywhere}.mobile-cart-bar{display:none}@media(max-width:1100px){.checkout{padding-bottom:75px}.mobile-cart-bar:not([hidden]){display:block;position:fixed;bottom:12px;left:16px;right:16px;width:calc(100% - 32px);z-index:25;box-shadow:0 5px 25px rgb(0 0 0 / .2);font-size:.9rem;padding:14px 9px}}

/* F6-07 shared lists */
td.num { text-align: right; font-variant-numeric: tabular-nums; }
.column-chooser { position: relative; }
.column-chooser > div { position: absolute; right: 0; z-index: 5; background: var(--white); border: 1px solid var(--line); border-radius: 8px; padding: .5rem .75rem; display: grid; gap: .25rem; min-width: 14rem; }
.column-chooser label { display: flex; gap: .4rem; align-items: center; white-space: nowrap; }
.listing .section-head small { display: block; }
