/* Self-hosted (0.12.0): Fraunces 500/700 and Source Sans 3 400/600/700, latin + latin-ext subsets.
   Fonts are SIL Open Font License 1.1 (see public/fonts/OFL-*.txt). No third-party font requests.
   font-display: optional (latin files are preloaded in the layout): no late font swap, so no layout shift (CLS). */
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-display: optional;
  font-weight: 500;
  src: url('../fonts/fraunces-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-display: optional;
  font-weight: 500;
  src: url('../fonts/fraunces-latin-ext-500-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-display: optional;
  font-weight: 700;
  src: url('../fonts/fraunces-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-display: optional;
  font-weight: 700;
  src: url('../fonts/fraunces-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: optional;
  font-weight: 400;
  src: url('../fonts/source-sans-3-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: optional;
  font-weight: 400;
  src: url('../fonts/source-sans-3-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: optional;
  font-weight: 600;
  src: url('../fonts/source-sans-3-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: optional;
  font-weight: 600;
  src: url('../fonts/source-sans-3-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: optional;
  font-weight: 700;
  src: url('../fonts/source-sans-3-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: optional;
  font-weight: 700;
  src: url('../fonts/source-sans-3-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}


:root {
  --cedar: #6b4423;
  --cedar-deep: #3c2415;
  --cedar-mid: #8b5e34;
  --gold: #b08948;
  --gold-bright: #c4a574;
  --cream: #f7f1e6;
  --cream-dark: #efe6d4;
  --paper: #fffdf8;
  --ink: #22150c;
  --smoke: #564536;
  --muted: #564536;
  --danger: #b54a32;
  --ok: #5d7a3d;
  --amber: #c47a1a;
  --amber-dark: #9a5d12;
  --green: #1f4d3a;
  --green-soft: #2d6a50;
  --border: rgba(196, 165, 116, .45);
  --shadow: 0 12px 28px rgba(60, 36, 21, .10);
  --radius: 18px;
  --font-serif: "Fraunces", "Palatino Linotype", Palatino, serif;
  --font-sans: "Source Sans 3", "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  color: var(--ink);
  background:
    radial-gradient(1200px 600px at 8% -8%, rgba(196,165,116,.18), transparent 52%),
    linear-gradient(180deg, #f7f1e6 0%, #f3ead9 55%, #efe4d0 100%);
  min-height: 100vh;
}
a { color: var(--cedar); text-decoration: none; }
a:hover { color: var(--cedar-deep); }
img { max-width: 100%; }
.wrap { width: min(1100px, calc(100% - 32px)); margin: 0 auto; }

/* Non-prod environment strip (above sticky header; below open mobile nav z-90). */
:root { --env-banner-h: 0px; }
body:has(.env-banner) { --env-banner-h: 2.25rem; }
.env-banner {
  position: sticky;
  top: 0;
  z-index: 45;
  min-height: var(--env-banner-h);
  background: linear-gradient(90deg, #9a5d12, #c47a1a 40%, #b08948);
  color: #fffdf8;
  border-bottom: 1px solid rgba(60, 36, 21, .35);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .02em;
  /* Fixed line-height: the strip must not change height when web fonts swap in (CLS). */
  line-height: 1.35;
}
.env-banner-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: .4rem 0;
  flex-wrap: wrap;
}
.env-banner-env {
  text-transform: lowercase;
  background: rgba(34, 21, 12, .28);
  padding: .15rem .55rem;
  border-radius: 999px;
}
.env-banner-version {
  font: inherit;
  font-weight: 700;
  color: #fffdf8;
  background: transparent;
  border: 0;
  border-bottom: 1px dashed rgba(255, 253, 248, .75);
  cursor: pointer;
  padding: 0;
}
.env-banner-version:hover,
.env-banner-version:focus-visible {
  color: #3c2415;
  background: rgba(255, 253, 248, .85);
  border-bottom-color: transparent;
  border-radius: 4px;
  outline: 2px solid #3c2415;
  outline-offset: 2px;
}
.env-banner--dev { background: linear-gradient(90deg, #1a3a5c, #2a5a8c 45%, #3d7a9a); }
.env-banner--test { background: linear-gradient(90deg, #1f4d3a, #2d6a50 45%, #5d7a3d); }
.env-banner--int,
.env-banner--imp { background: linear-gradient(90deg, #9a5d12, #c47a1a 40%, #b08948); }
.env-banner--demo { background: linear-gradient(90deg, #3c2415, #6b4423 40%, #8b5e34); }
.env-banner--prod { background: linear-gradient(90deg, #4a1020, #6b2030 40%, #8b3040); }
.env-banner-title {
  font-weight: 600;
  opacity: 0.95;
}
.env-banner-comment {
  opacity: 0.85;
  font-weight: 400;
  max-width: 40rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.env-releases-dialog .env-releases-panel { max-width: min(640px, 92vw); }
.env-releases-table { width: 100%; }
.env-releases-table th,
.env-releases-table td { text-align: left; padding: .4rem .55rem; vertical-align: top; }
body:has(.env-banner) .site-header { top: var(--env-banner-h); }
/* Keep open mobile nav chrome above the env strip (existing body.nav-open .site-header z-index: 90). */

.site-header {
  /* Blur on ::before only: backdrop-filter on this element would make it a
     containing block for position:fixed #site-nav (mobile drawer clipped to the bar). */
  position: sticky; top: 0; z-index: 40;
  border-bottom: 1px solid rgba(196, 165, 116, .35);
}
.site-header::before {
  content: "";
  position: absolute; inset: 0; z-index: 0;
  pointer-events: none;
  background: rgba(247, 241, 230, .88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.site-header > * { position: relative; z-index: 1; }
.header-inner { display: flex; align-items: center; gap: 18px; padding: 14px 0; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: 10px; color: var(--ink); font-family: var(--font-serif); font-size: 1.45rem; letter-spacing: .04em; }
.brand:hover { color: var(--cedar-deep); }
.brand .mark { width: 34px; height: 34px; border-radius: 10px; overflow: hidden; }
.brand .mark img { width: 34px; height: 34px; display: block; object-fit: cover; }
.nav { display: flex; gap: 14px; flex-wrap: wrap; margin-left: auto; align-items: center; position: relative; }
.nav a, .nav button.linkish { color: var(--cedar-deep); font-size: .95rem; background: none; border: 0; cursor: pointer; font-family: inherit; }
.nav a.active { color: var(--cedar); border-bottom: 1px solid var(--gold); }
.lang { display: flex; gap: 6px; flex-wrap: wrap; }
.lang a, .lang button { font: inherit; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; color: var(--smoke); padding: 2px 6px; border: 1px solid transparent; border-radius: 999px; background: none; cursor: pointer; }
.lang a.on, .lang button.on { color: var(--cream); background: var(--cedar); border-color: var(--cedar); }
.lang form { display: inline; margin: 0; }


.hero {
  position: relative;
  overflow: hidden;
  margin: 0 0 36px;
  min-height: 480px;
  background-size: cover;
  background-position: center;
  display: grid;
  align-items: end;
}
.hero::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(
    100deg,
    rgba(247,241,230,.97) 0%,
    rgba(247,241,230,.84) 32%,
    rgba(247,241,230,.48) 56%,
    rgba(34,21,12,.28) 100%
  );
}
.hero h1, .hero p, .hero .kicker, .hero .identify-label, .hero .file-name {
  text-shadow: 0 1px 0 rgba(255,253,248,.85), 0 8px 22px rgba(247,241,230,.55);
}
.hero a:not(.btn) {
  color: var(--cedar-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-shadow: 0 1px 0 rgba(255,253,248,.85);
}
.hero .btn.ghost, .hero .identify-login .btn {
  background: rgba(255,253,248,.72);
  border-color: rgba(107,68,35,.4);
  color: var(--ink);
}
.hero .btn.ghost:hover {
  background: #fff8ec;
  border-color: var(--amber);
  color: var(--amber-dark);
}
.hero .identify-login .btn:hover {
  background: var(--amber);
  border-color: var(--amber);
  color: #fff;
}
.hero-inner { position: relative; z-index: 1; padding: 56px 0 48px; }
.hero h1 { font-family: var(--font-serif); font-size: clamp(2.1rem, 5vw, 3.6rem); line-height: 1.05; margin: 0 0 12px; max-width: 16ch; color: var(--ink); }
.hero p { max-width: 46ch; color: var(--cedar-deep); font-size: 1.12rem; }
.search-hero { display: flex; gap: 8px; margin-top: 22px; max-width: 560px; }
.search-hero input,
.filters select,
input:not([type]),
input[type=text],
input[type=email],
input[type=password],
input[type=number],
input[type=search],
input[type=url],
input[type=tel],
input[type=date],
input[type=datetime-local],
input[type=month],
textarea,
select {
  background: #fff;
  border: 1px solid rgba(92, 58, 34, .28);
  color: var(--ink);
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
  width: 100%;
  color-scheme: light;
}
input::placeholder, textarea::placeholder {
  color: #6a5644;
  opacity: 1;
}
.search-hero input { flex: 1; background: #fff; }
.btn, button.btn, a.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--amber); color: #fff; border: 0; border-radius: 999px;
  padding: 12px 18px; font-weight: 700; cursor: pointer; font-family: inherit;
  font-size: 1rem; line-height: 1.2; min-height: 44px;
  box-shadow: 0 8px 18px rgba(60, 36, 21, .12);
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover { background: var(--amber-dark); color: #fff; }
.btn.btn-primary { background: var(--amber); color: #fff; }
.btn.btn-primary:hover { background: var(--amber-dark); color: #fff; }
.btn.secondary:not(.ghost) {
  background: var(--green); color: #fff; border: 0; box-shadow: 0 8px 18px rgba(31, 77, 58, .18);
}
.btn.secondary:not(.ghost):hover { background: var(--green-soft); color: #fff; }
.btn:focus-visible, button:focus-visible, a.btn:focus-visible, .nav a:focus-visible, .nav button:focus-visible,
input[type=submit]:focus-visible, input[type=file]:focus-visible::file-selector-button {
  outline: 3px solid var(--amber);
  outline-offset: 2px;
}
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
.btn.ghost { background: transparent; color: var(--ink); border: 1px solid var(--border); box-shadow: none; }
.btn.ghost:hover { border-color: var(--amber); color: var(--amber-dark); background: #fff8ec; }
.btn.danger, .btn-danger { background: var(--danger); color: #fff; }
.btn.small { padding: 8px 14px; font-size: .9rem; min-height: 36px; }
input[type=file]::file-selector-button {
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, #d7b98a, #b08955);
  color: var(--cedar-deep); border: 0; border-radius: 999px;
  padding: 8px 14px; font-weight: 650; cursor: pointer; font-family: inherit;
  font-size: .9rem; line-height: 1.2; min-height: 36px;
  margin-right: 10px;
  box-shadow: 0 8px 18px rgba(60, 36, 21, .12);
}
input[type=file] {
  font: inherit;
  color: var(--ink);
  max-width: 100%;
}

.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.plan-compare {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  align-items: start;
}
.plan-compare > .panel {
  min-width: 0;
  overflow: hidden;
  margin: 0;
}
.plan-compare .plan-compare-table,
.plan-compare table {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
}
.plan-compare th,
.plan-compare td {
  overflow-wrap: anywhere;
  word-break: break-word;
  padding: 8px 10px;
}
.plan-compare .form-grid {
  max-width: 100%;
}
.card {
  background: var(--paper);
  border: 1px solid rgba(196, 165, 116, .28);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.card a.cover { color: inherit; display: block; }
.cigar-visual { height: 150px; position: relative; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.35), transparent 40%), #e8d9c2; }
.cigar-visual img { max-height: 100%; max-width: 100%; object-fit: contain; display: block; }
.cigar-visual img.is-placeholder { width: 100%; height: 100%; object-fit: cover; max-height: none; }
.cigar-stick {
  width: 78%; height: 28px; border-radius: 20px 8px 8px 20px;
  box-shadow: inset 0 6px 8px rgba(255,255,255,.12), 0 10px 16px rgba(60,36,21,.18);
  position: relative;
}
.cigar-stick::after {
  content: ""; position: absolute; left: 18%; top: -4px; bottom: -4px; width: 38px;
  background: repeating-linear-gradient(90deg, #7a1f1f, #7a1f1f 4px, #f4ead8 4px, #f4ead8 7px);
  border-radius: 3px; opacity: .92;
}
.cigar-stick .cap { position: absolute; right: -2px; top: 4px; bottom: 4px; width: 10px; border-radius: 0 8px 8px 0; background: rgba(255,255,255,.18); }
.card-body { padding: 16px 16px 18px; }
.card-body h3 { font-family: var(--font-serif); margin: 0 0 4px; font-size: 1.2rem; }
.meta { color: var(--gold); font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; }
.stars { color: var(--gold); letter-spacing: 2px; }
.kicker { font-size: .8rem; text-transform: uppercase; letter-spacing: .16em; color: var(--gold); margin-bottom: 6px; }

.panel { background: var(--paper); border: 1px solid rgba(196, 165, 116, .28); border-radius: var(--radius); padding: 22px; margin: 18px 0; box-shadow: var(--shadow); }
h1, h2, h3 { font-family: var(--font-serif); color: var(--ink); }
h3.profile-sub, .form-subhead {
  font-family: var(--font-sans);
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: 0;
  color: var(--ink);
  margin: 1.15rem 0 0.35rem;
}
.flash { padding: 12px 14px; border-radius: 12px; margin: 12px 0; }
.flash.ok { background: rgba(93, 122, 61, .12); border: 1px solid var(--ok); }
.flash.err { background: rgba(181, 74, 50, .10); border: 1px solid var(--danger); }
.quota { font-size: .9rem; color: var(--cedar); }
.filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 16px 0; }
.detail { display: grid; grid-template-columns: 1fr 1.2fr; gap: 28px; }
@media (max-width: 820px) { .detail { grid-template-columns: 1fr; } .hero { min-height: 380px; } .hero-inner { padding: 36px 0 32px; } }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.stat { background: rgba(196, 165, 116, .16); border-radius: 14px; padding: 16px; }
.stat b { display: block; font-size: 1.8rem; font-family: var(--font-serif); overflow-wrap: anywhere; }
@media (max-width: 520px) { .stat b { font-size: 1.35rem; } }
.data-table, table {
  width: 100%;
  border-collapse: collapse;
  background: var(--paper);
  border: 1px solid rgba(196, 165, 116, .35);
}
.data-table th, .data-table td, table th, table td {
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(196, 165, 116, .28);
  vertical-align: middle;
}
.data-table th, table th {
  background: rgba(107, 68, 35, .08);
  color: var(--cedar-deep);
  font-size: .8rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  font-weight: 650;
}
.data-table tbody tr:hover, table tbody tr:hover, table tr:hover {
  background: rgba(196, 165, 116, .14);
}
.data-table .num, table td.num, table th.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.print-sheet table {
  border: 0;
  background: transparent;
}
.print-sheet th, .print-sheet td {
  padding: 6px 8px;
  vertical-align: top;
  background: transparent;
  text-transform: none;
  letter-spacing: 0;
  font-size: inherit;
  font-weight: inherit;
}
@media print {
  .data-table tbody tr:hover, table tbody tr:hover, table tr:hover { background: transparent; }
  table, .data-table { border: 0; }
}
.form-grid { display: grid; gap: 12px; max-width: 420px; }
.form-grid.form-wide {
  max-width: 720px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}
.form-grid.form-wide > fieldset.form-group,
.form-grid.form-wide > .span-all {
  grid-column: 1 / -1;
}
.form-grid.form-wide > fieldset.form-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.form-grid.form-wide > fieldset.form-group > legend,
.form-grid.form-wide > fieldset.form-group > .span-all,
.form-grid.form-wide > fieldset.form-group > .choice-grid,
.form-grid.form-wide > fieldset.form-group > textarea {
  grid-column: 1 / -1;
}
@media (max-width: 820px) {
  .form-grid.form-wide,
  .form-grid.form-wide > fieldset.form-group {
    grid-template-columns: 1fr;
  }
}
.row-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.muted { color: var(--smoke); }
.hint { color: var(--smoke); font-size: .88rem; }
.site-footer { margin: 48px 0 24px; color: var(--smoke); font-size: .9rem; border-top: 1px solid rgba(196, 165, 116, .28); padding-top: 18px; }
.auth-card { max-width: 440px; margin: 48px auto; }
.banner { background: rgba(196, 165, 116, .16); border: 1px dashed rgba(176, 137, 72, .55); padding: 12px 14px; border-radius: 12px; margin: 12px 0 20px; }
.print-sheet { background: #f7efe2; color: #2a1c12; padding: 32px; }
.print-sheet h1 { color: #2a1c12; }
label { display: block; font-size: .88rem; color: var(--cedar-deep); margin-bottom: 4px; }
textarea { min-height: 90px; }
dialog.overlay {
  border: 1px solid rgba(196, 165, 116, .4);
  background: var(--paper);
  color: var(--ink);
  border-radius: 18px;
  padding: 24px;
  max-width: 520px;
  width: calc(100% - 32px);
  box-shadow: var(--shadow);
}
dialog.overlay::backdrop { background: rgba(42, 28, 18, .35); }
label.check { display: flex; gap: 8px; align-items: center; color: var(--ink); font-size: .95rem; }
label.check input { width: auto; }
.identify-hero { max-width: 520px; margin-top: 18px; }

.pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 24px 0;
}
.pager-pages {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}
.pager-btn, .pager-num, .pager-arrow, .pager-gap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 10px;
  border: 1px solid rgba(196, 165, 116, .45);
  border-radius: 999px;
  background: var(--paper);
  color: var(--cedar-deep);
  font-size: .9rem;
  line-height: 1;
}
.pager-arrow {
  width: 2rem;
  min-width: 2rem;
  font-size: 1.15rem;
}
.pager-btn.is-disabled, .pager-arrow.is-disabled {
  opacity: .4;
  cursor: default;
}
.pager-num.is-current {
  background: var(--cedar);
  color: var(--cream);
  border-color: var(--cedar);
}
.pager svg { width: 16px; height: 16px; max-width: 16px; max-height: 16px; }

.avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; display: inline-block; vertical-align: middle; }
.nav-group { position: relative; }
.nav-account { position: relative; display: inline-flex; align-items: center; }
.nav-account-cluster { position: relative; display: inline-flex; align-items: center; }
.nav-account-toggle {
  display: inline-flex; align-items: center; gap: 8px;
}
.nav-account-avatar-wrap {
  position: relative; display: inline-flex; width: 30px; height: 30px; flex-shrink: 0;
}
.nav-account-name {
  max-width: 9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: .95rem; color: var(--cedar-deep);
}
/* Unread badge at ~2 o'clock on the avatar, half overlapping */
.nav-account-badge {
  position: absolute; top: -2px; left: 18px; z-index: 2;
  min-width: 13px; height: 13px; padding: 0 3px;
  border-radius: 999px; background: var(--cedar); color: var(--cream);
  font-size: .65rem; line-height: 13px; text-align: center; font-weight: 700;
  box-shadow: 0 0 0 2px rgba(247, 241, 230, .95);
}
.nav-account-desktop { position: relative; }
.nav-drop-account { left: auto; right: 0; }
.nav-drop-account .nav-logout,
.nav-account-drawer .nav-logout { display: block; margin: 0; }
.nav-drop-account .nav-logout .linkish,
.nav-account-drawer .nav-logout .linkish {
  display: flex; width: 100%; text-align: left; padding: 6px 10px;
  color: var(--cedar-deep); font-size: inherit; align-items: center;
}
.header-toolbar { display: none; align-items: center; gap: 8px; margin-left: auto; }
.header-account { position: relative; display: inline-flex; align-items: center; }
.header-account-avatar { display: inline-flex; line-height: 0; }
.nav-account-drawer { display: none; }
.nav-toggle {
  background: none; border: 0; cursor: pointer; font: inherit; color: var(--cedar-deep); padding: 0;
}
a.nav-toggle {
  text-decoration: none;
  font: inherit;
  color: var(--cedar-deep);
}
.nav-group.is-active > .nav-toggle { color: var(--cedar); border-bottom: 1px solid var(--gold); }
.nav-drop {
  display: block; position: absolute; top: 100%; left: 0; min-width: 220px;
  background: var(--paper); border: 1px solid rgba(196,165,116,.4); border-radius: 12px;
  box-shadow: var(--shadow); padding: 12px 8px 8px; z-index: 30;
  visibility: hidden; opacity: 0; pointer-events: none;
  transition: opacity .12s ease, visibility 0s linear .12s;
}
.nav-drop a, .nav-drop .nav-label { display: block; padding: 6px 10px; white-space: nowrap; }
.nav-drop .nav-label {
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--cedar-deep);
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(196,165,116,.35);
}
.nav-drop a + .nav-label { margin-top: 10px; }
.nav-drop-admin { max-height: 70vh; overflow-y: auto; }
.nav-subgroup { position: relative; border-top: 1px solid rgba(196,165,116,.35); margin-top: 6px; padding-top: 4px; }
.nav-subgroup > .nav-toggle {
  display: block; width: 100%; text-align: left;
  font-size: .92rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 6px 10px;
}
.nav-subdrop { display: none; padding: 0 0 4px 8px; }
.nav-subgroup.is-open > .nav-subdrop { display: block; }
.user-avatar { display: inline-block; vertical-align: middle; line-height: 0; }
.user-card-pop {
  position: absolute; z-index: 80; width: 280px; pointer-events: auto;
  filter: drop-shadow(0 12px 28px rgba(60, 36, 21, .18));
}
.user-card-pop .user-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.user-card-links { display: grid; gap: 4px; margin: 8px 0 0; }
.nav-group.is-open .nav-drop {
  visibility: visible; opacity: 1; pointer-events: auto;
  transition-delay: 0s;
}
.data-table a.sort-link { color: inherit; text-decoration: none; }
.data-table a.sort-link:hover { color: var(--cedar); }
.data-table a.sort-link.is-active { color: var(--cedar); }
.preset-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.preset-grid label { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.preset-grid img { width: 56px; height: 56px; object-fit: cover; border-radius: 50%; }
.avatar-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.avatar-admin-card { border: 1px solid rgba(196,165,116,.4); border-radius: 12px; padding: 10px; text-align: center; }
.avatar-admin-card img { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; }
.avatar-admin-card .row-actions { justify-content: center; margin-top: 8px; }
.vis-badge { display: inline-block; font-size: .75rem; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(176,137,72,.55); }
.verified-badge { border-color: #2f6b3a; color: #1f4d28; background: #e8f5eb; font-weight: 600; }
@media (min-width: 821px) {
  .nav-group:hover > .nav-drop,
  .nav-group.is-hover > .nav-drop,
  .nav-group:focus-within > .nav-drop {
    visibility: visible; opacity: 1; pointer-events: auto;
    transition-delay: 0s;
  }
}
@media (max-width: 820px) {
  .nav,
  .nav-group { position: relative; }
  /* Drawer accordion: expand inline, one open via JS */
  .nav-drop {
    position: static;
    left: auto; right: auto; top: auto;
    min-width: 0; width: 100%;
    z-index: auto;
    display: block;
    visibility: hidden; opacity: 0; pointer-events: none;
    max-height: 0; overflow: hidden;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0 0 0 10px;
    transition: opacity .12s ease, visibility 0s linear .12s;
  }
  .nav-drop-admin { max-height: none; overflow: visible; }
  .nav-group:hover > .nav-drop,
  .nav-group.is-hover > .nav-drop {
    visibility: hidden; opacity: 0; pointer-events: none; max-height: 0;
  }
  .nav-group.is-open > .nav-drop {
    visibility: visible; opacity: 1; pointer-events: auto;
    max-height: none; overflow: visible;
    transition-delay: 0s;
    padding: 0 0 6px 10px;
  }
  .nav-subdrop {
    display: none;
    position: static;
    left: auto; top: auto;
    z-index: auto;
    min-width: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0 0 4px 8px;
    max-height: none;
    overflow: visible;
  }
  .nav-subgroup.is-open > .nav-subdrop { display: block; }
}

.thumb { width: 40px; height: 40px; object-fit: cover; border-radius: 8px; background: #e8d9c2; display: inline-block; vertical-align: middle; }
.logo-preview { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.logo-preview .thumb { width: 72px; height: 72px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.thumb-placeholder { box-shadow: inset 0 0 0 1px rgba(107,68,35,.18); }

.identify-form { display: grid; gap: 14px; max-width: 520px; margin-top: 18px; }
.identify-field { display: grid; gap: 6px; }
.identify-label { font-weight: 650; color: var(--ink); font-size: .95rem; }
.hero .identify-label { color: var(--ink); text-shadow: 0 1px 0 rgba(255,255,255,.75); }
.file-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; position: relative; }
.file-pick input[type=file] {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.file-pick .btn { width: auto; }
.file-pick:focus-within .btn {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}
.file-name { color: var(--ink); font-size: .9rem; }
.url-photo-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.url-photo-pick input { flex: 1 1 220px; min-width: 0; }
.url-photo-pick .btn { width: auto; }
.url-photo-pick-hint { flex: 1 1 100%; margin: 0; }

.hero .file-name { text-shadow: 0 1px 0 rgba(255,255,255,.75); }
.identify-catalog { margin: 8px 0 22px; padding: 18px; background: var(--paper); border: 1px solid rgba(196,165,116,.28); border-radius: var(--radius); box-shadow: var(--shadow); max-width: none; }
.identify-hero input[type=text] { background: #fff; }

.advanced-search { margin-top: 12px; }
.advanced-search summary { cursor: pointer; font-weight: 650; color: var(--cedar-deep); }
.range-pair { display: flex; gap: 8px; align-items: stretch; }
.range-pair input { width: 100%; min-width: 0; }
.aroma-picks, .choice-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.choice-grid .check, .aroma-picks .check {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin: 0;
  padding: 8px 14px;
  border: 1px solid rgba(92, 58, 34, .28);
  border-radius: 999px;
  background: #fff;
  width: auto;
  font-size: .92rem;
}
.choice-grid .check input, .aroma-picks .check input {
  width: auto;
  margin: 0;
}
.choice-grid .check:has(input:checked),
.aroma-picks .check:has(input:checked) {
  border-color: var(--cedar);
  background: rgba(196, 165, 116, .18);
}
.filters .choice-grid { min-height: 44px; }
.search-section { margin: 12px 0 0; }
.search-section .filters { margin: 8px 0 0; }
.search-section .choice-grid { margin-top: 8px; }

.identify-debug { margin: 12px 0 20px; padding: 10px 14px; border-radius: 12px; border: 1px dashed var(--border); background: rgba(0,0,0,.04); }
.identify-debug summary { cursor: pointer; font-weight: 600; }
.identify-debug pre { margin: 10px 0 0; white-space: pre-wrap; word-break: break-word; font-size: 12px; line-height: 1.4; max-height: 360px; overflow: auto; }
.identify-confirm { margin-bottom: 18px; }
.identify-confirm-others summary { cursor: pointer; font-weight: 600; margin-top: 12px; }
.identify-confirm-list { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 8px; }
.identify-confirm-list form { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.catalog-id { font-size: .65rem; max-width: 7.5rem; }
.shop-skus { font-size: .78rem; }
img.thumb { width: 40px; height: 40px; object-fit: cover; border-radius: 8px; }
.form-group { border: 1px solid rgba(196, 165, 116, .28); border-radius: 12px; padding: 12px 14px; margin: 8px 0; }
.form-group legend { font-weight: 650; color: var(--cedar-deep); padding: 0 6px; }
.price-range { font-variant-numeric: tabular-nums; }
.identify-catalog { max-width: 420px; }

.offer-capture { max-width: 720px; display: grid; gap: 12px; }
.offer-capture-modes { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; }
.offer-capture .cigar-attrs { max-width: none; }
.catalog-results { list-style: none; margin: 6px 0 0; padding: 0; border: 1px solid rgba(196, 165, 116, .35); border-radius: 12px; background: var(--paper); max-height: 240px; overflow: auto; }
.catalog-results li { display: flex; gap: 10px; align-items: center; padding: 8px 10px; cursor: pointer; }
.catalog-results li:hover, .catalog-results li:focus { background: rgba(196, 165, 116, .14); }
.catalog-results .thumb {
  width: 48px; height: 48px; min-width: 48px; flex-shrink: 0;
  object-fit: cover; border-radius: 8px; background: #e8d9c2; display: block;
}
.catalog-results li > div { min-width: 0; flex: 1; }
.selected-card { display: flex; gap: 12px; align-items: center; margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(196, 165, 116, .28); border-radius: 12px; background: rgba(196, 165, 116, .10); }
.selected-card .thumb { width: 48px; height: 48px; min-width: 48px; flex-shrink: 0; object-fit: cover; }
.shop-sku { font-weight: 650; font-variant-numeric: tabular-nums; }
.offer-capture[data-mode="existing"] [data-mode-panel="new"] { display: none; }
.offer-capture[data-mode="new"] [data-mode-panel="existing"] { display: none; }
.offer-create-card { padding: 0; }
.offer-create-summary {
  list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; gap: 6px 14px;
  align-items: baseline; padding: 14px 16px; user-select: none;
}
.offer-create-summary::-webkit-details-marker { display: none; }
.offer-create-summary-title { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 650; }
.offer-create-summary-hint { font-size: .9rem; }
.offer-create-card[open] > .offer-create-summary { border-bottom: 1px solid rgba(196, 165, 116, .28); margin-bottom: 4px; }
.offer-create-card .offer-capture { padding: 12px 16px 16px; }
.stock-prices-card .hint { margin-top: 4px; }

.offer-packaging { margin-bottom: 12px; }
.offer-packaging .choice-grid { margin-top: 6px; }
.offer-packaging [data-box-size-field] { margin-top: 10px; max-width: 16rem; }
.offer-packaging-cell { white-space: nowrap; }

.order-mail-card { padding: 0; margin: 0 0 16px; }
.order-mail-summary {
  list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; gap: 6px 14px;
  align-items: baseline; padding: 14px 16px; user-select: none;
}
.order-mail-summary::-webkit-details-marker { display: none; }
.order-mail-summary-title { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 650; }
.order-mail-card[open] > .order-mail-summary { border-bottom: 1px solid rgba(196, 165, 116, .28); margin-bottom: 4px; }
.order-mail-body { padding: 12px 16px 16px; }
.offer-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px 12px;
  margin: 8px 0 12px;
  align-items: start;
}
.offer-field {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.offer-field label { margin-bottom: 4px; }
.offer-field-title {
  grid-column: 1 / -1;
}
.offer-sku-help {
  grid-column: 1 / -1;
  margin: 0;
  max-width: none;
}


.cigar-hero { width: 100%; }
.cigar-hero-image { min-height: 280px; display: grid; place-items: center; background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.35), transparent 40%), #e8d9c2; border-radius: 12px; overflow: hidden; margin-bottom: 16px; }
.cigar-hero-image img { max-height: 360px; width: 100%; object-fit: contain; display: block; }
.cigar-hero-image img.is-placeholder { width: 100%; height: 280px; object-fit: cover; max-height: none; }
.cigar-carousel { position: relative; min-height: 220px; background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.35), transparent 40%), #e8d9c2; border-radius: 12px; overflow: hidden; margin-bottom: 16px; }
.cigar-carousel img { display: none; max-height: 360px; width: 100%; object-fit: contain; margin: 0 auto; }
.cigar-carousel img.is-active { display: block; }
.cigar-carousel-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; min-height: 36px; padding: 0;
  border-radius: 999px; border: 1px solid rgba(176, 137, 72, .65);
  background: rgba(255,253,248,.88); color: var(--cedar-deep);
  cursor: pointer; font-size: 1.2rem; line-height: 1; box-shadow: none;
}
.cigar-carousel-btn.is-disabled,
.cigar-carousel-btn:disabled,
.cigar-carousel-btn[aria-disabled="true"] {
  opacity: .38;
  cursor: default;
  pointer-events: none;
  color: var(--smoke);
  border-color: rgba(196, 165, 116, .35);
  background: rgba(255,253,248,.55);
}
.cigar-carousel-prev { left: 10px; }
.cigar-carousel-next { right: 10px; }
.cigar-carousel-counter { position: absolute; right: 12px; bottom: 8px; font-size: .8rem; color: var(--smoke); background: rgba(255,253,248,.8); padding: 2px 8px; border-radius: 999px; }
.cigar-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px 16px; margin: 16px 0; }
.cigar-facts dt { font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; color: var(--smoke); margin: 0 0 2px; }
.cigar-facts dd { margin: 0; font-weight: 650; }
.rating-inline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 640px) { .rating-inline { grid-template-columns: 1fr; } }
.rating-form.form-grid { max-width: none; }
.markdown-body { margin: 12px 0 4px; }
.markdown-body p, .markdown-body ul, .markdown-body ol { margin: 0 0 .7em; }
.markdown-body ul, .markdown-body ol { padding-left: 1.2em; }
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4 { font-size: 1.12rem; margin: .8em 0 .35em; }
.markdown-body > *:last-child { margin-bottom: 0; }
details.cigar-more-details summary,
details.cigar-tasting-notes summary {
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  color: var(--cedar-deep);
}
details.cigar-more-details summary::-webkit-details-marker,
details.cigar-tasting-notes summary::-webkit-details-marker { display: none; }
details.cigar-more-details summary::after,
details.cigar-tasting-notes summary::after {
  content: "▾";
  font-size: .95rem;
  color: var(--smoke);
  transition: transform .15s ease;
  flex: 0 0 auto;
}
details.cigar-more-details:not([open]) summary::after,
details.cigar-tasting-notes:not([open]) summary::after {
  transform: rotate(-90deg);
}
details.cigar-more-details[open] > summary,
details.cigar-tasting-notes[open] > summary {
  margin-bottom: .65rem;
  padding-bottom: .55rem;
  border-bottom: 1px solid rgba(196, 165, 116, .35);
}
.cigar-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}
.cigar-hero-actions .btn.icon {
  width: 2.75rem;
  min-width: 2.75rem;
  height: 2.75rem;
  min-height: 2.75rem;
}
.cigar-tasting-body { display: flex; flex-direction: column; gap: .85rem; }
.cigar-rating-entry {
  background: rgba(255, 248, 236, .4);
  border: 1px solid rgba(196, 165, 116, .28);
  border-radius: 10px;
  padding: .85rem 1rem;
}
.cigar-rating-meta {
  margin: 0 0 .35rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .45rem;
  line-height: 1.35;
}
.cigar-rating-remove { margin: .35rem 0 0; }
.cigar-rating-photos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: .45rem;
}
.cigar-rating-photos img {
  height: 80px;
  width: 80px;
  object-fit: cover;
  border-radius: 8px;
}
/* offer-row base overridden below (compact cards) */
.offer-row { align-items: center; margin-bottom: 10px; }
@media (max-width: 640px) {
  .cigar-hero-actions { gap: 8px; }
  .cigar-hero-actions .btn.icon {
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
  }
  .cigar-facts { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px 12px; }
  details.cigar-more-details,
  details.cigar-tasting-notes { padding: 16px; }
}

.cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  background: var(--paper);
  border-top: 1px solid rgba(176, 137, 72, .45);
  box-shadow: 0 -12px 28px rgba(60, 36, 21, .12);
  color: var(--ink);
}
.cookie-banner-inner { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 16px 0 20px; }
.cookie-banner h2 { font-family: var(--font-serif); font-size: 1.25rem; margin: 0 0 6px; }
.cookie-banner p { margin: 0 0 10px; color: var(--smoke); }
.cookie-banner-notice { white-space: pre-wrap; }
.cookie-banner-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cookie-banner-actions .btn { min-width: 10.5rem; }
.cookie-banner-details { display: grid; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(196, 165, 116, .35); }
.cookie-choice { display: flex; gap: 8px; align-items: center; }
.site-footer { padding-bottom: 28px; }

.journal-desc { white-space: pre-wrap; max-height: 8em; overflow: auto; word-break: break-word; }

.age-gate {
  position: fixed; inset: 0; z-index: 60;
  background: rgba(28, 18, 10, .72);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.age-gate[hidden] { display: none; }
.age-gate-card {
  width: min(520px, 100%);
  background: var(--paper);
  color: var(--ink);
  border: 1px solid rgba(176, 137, 72, .45);
  box-shadow: 0 18px 40px rgba(60, 36, 21, .28);
  padding: 24px 22px 20px;
  border-radius: 10px;
}
.age-gate-card h2 { font-family: var(--font-serif); font-size: 1.45rem; margin: 0 0 10px; }
.age-gate-card p { margin: 0 0 16px; color: var(--smoke); white-space: pre-wrap; }
.age-gate-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.age-gate-actions .btn { min-width: 10.5rem; }

.help-snippet { font-size: .88rem; margin: 8px 0 12px; max-width: 52rem; }

.help-toggle {
  display: inline-block;
  position: static;
  margin: 2px 0 8px;
  max-width: 100%;
  vertical-align: middle;
}
.help-toggle > summary.help-toggle-btn {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.3rem;
  height: 1.3rem;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(107, 68, 35, .35);
  background: var(--paper, #fff8ee);
  color: var(--smoke, #5a4636);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1;
  user-select: none;
}
.help-toggle > summary.help-toggle-btn::-webkit-details-marker { display: none; }
.help-toggle > summary.help-toggle-btn::marker { content: ''; }
.help-toggle > summary.help-toggle-btn:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}
.help-toggle-panel {
  display: block;
  position: static;
  margin: 6px 0 0;
  max-width: 52rem;
}
.impressum-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; align-items: start; }

.notice-tile { padding: 12px 16px; margin: 10px 0 16px; }
.notice-tile p { margin: 0 0 8px; }
.notice-tile p:last-child { margin: 0; }
.hero .notice-tile { max-width: 46ch; margin: 0 0 16px; }

.spark { display: flex; align-items: flex-end; gap: 3px; height: 40px; margin: 8px 0; }
.spark span { flex: 1; min-height: 2px; background: var(--gold, #c4a574); border-radius: 2px 2px 0 0; }
img.thumb.is-placeholder { object-fit: cover; }

.org-name { display: inline-flex; align-items: center; gap: 6px; }
.inline-logo { width: 24px; height: 24px; object-fit: contain; flex: 0 0 24px; }
.related-orgs { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.related-orgs li { margin: 0; }
.rating-inline-entity { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.data-table-wrap { overflow-x: auto; max-width: 100%; }
.cellar-table { table-layout: auto; }
.cellar-table th, .cellar-table td { padding: 8px 10px; }
.cellar-table .score-cell { width: 9.5rem; }
.cellar-table .score-cluster {
  display: flex; flex-direction: column; gap: 4px;
  font-size: .82rem; white-space: nowrap;
}
.cellar-table .score-cluster label { display: flex; justify-content: space-between; gap: 6px; align-items: center; }
.cellar-table input[type=number],
.cellar-table .score-cluster select {
  width: 4.6rem; max-width: 100%; padding: 4px 6px;
}
.card .cellar-qty { margin: 0 0 8px; font-size: .82rem; }
.card .cellar-qty label { display: flex; justify-content: space-between; gap: 6px; align-items: center; }
.card .score-cluster {
  display: flex; flex-direction: column; gap: 4px;
  font-size: .82rem; margin: 0 0 10px;
}
.card .score-cluster label { display: flex; justify-content: space-between; gap: 6px; align-items: center; }
.card .cellar-qty input[type=number],
.card .score-cluster select {
  width: 4.6rem; max-width: 100%; padding: 4px 6px;
}

.view-toggle { display: flex; gap: 8px; align-items: center; }
.view-toggle .btn { margin: 0; }

.thumb-edit { display: inline-block; line-height: 0; }
.thumb-edit .thumb { cursor: pointer; }
tr.cigar-inline-editor > td { padding: 0; vertical-align: top; background: rgba(107, 68, 35, .05); }
tr.cigar-inline-editor:hover > td { background: rgba(107, 68, 35, .05); }
.cigar-inline-panel { padding: 12px 14px 16px; }
.cigar-inline-form .data-table { margin: 0 0 12px; }
.cigar-inline-form .data-table th {
  width: 12rem;
  max-width: 14rem;
  white-space: normal;
  vertical-align: top;
  padding-top: 14px;
}
.cigar-inline-form .data-table td { vertical-align: top; }
.cigar-inline-form .data-table td input:not([type=checkbox]),
.cigar-inline-form .data-table td select,
.cigar-inline-form .data-table td textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.cigar-inline-form .choice-grid { max-width: 100%; }
.cigar-inline-form .data-table tr:hover { background: transparent; }

html.js .js-save-fallback { display: none !important; }
#autosave-toast {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 80;
  background: var(--paper);
  color: var(--ink);
  border: 1px solid var(--gold);
  border-radius: 10px;
  padding: 8px 12px;
  font-size: 0.85rem;
  box-shadow: var(--shadow);
}
#autosave-toast.is-error { border-color: var(--danger); color: var(--danger); }

.user-card-pop:has(.user-card-own) { width: 320px; }
.user-card-own { background: linear-gradient(180deg, #f7efe3 0%, var(--paper) 48%); border-color: rgba(176,137,72,.55); }
.user-card-own .card-body { padding: 14px 16px 16px; }
.user-card-own h3 { margin: 0 0 4px; font-size: 1.15rem; }
.user-card-own-lead { margin: 0 0 10px; }
.user-card-actions { display: grid; gap: 6px; margin-top: 8px; }
.user-card-actions a { display: block; padding: 6px 8px; border-radius: 8px; background: rgba(196,165,116,.12); }
.user-card-settings { font-weight: 700; color: var(--cedar-deep); }
/* Legacy inbox bell removed; unread uses .nav-account-badge on the avatar. */
.nav-inbox-badge { /* alias kept for older markup/tests during transition */
  position: absolute; top: -3px; right: -5px; min-width: 13px; height: 13px; padding: 0 3px;
  border-radius: 999px; background: var(--cedar); color: var(--cream);
  font-size: .65rem; line-height: 13px; text-align: center; font-weight: 700;
}
.inbox-item { border-top: 1px solid rgba(196,165,116,.35); padding: 12px 0; }
.inbox-item h2 { font-size: 1.05rem; margin: 0 0 4px; }
.autosave-field-host {
  position: relative;
  display: block;
  width: 100%;
}
.autosave-field-host > input,
.autosave-field-host > select,
.autosave-field-host > textarea {
  width: 100%;
}
input.autosave-pad:not([type=checkbox]):not([type=radio]):not([type=file]),
select.autosave-pad,
textarea.autosave-pad {
  padding-right: 2.25rem;
}
.md-field-input-wrap textarea.autosave-pad {
  padding-right: 2.75rem;
}
.autosave-fly {
  position: absolute; z-index: 3; width: 16px; height: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; line-height: 1; color: var(--cedar-deep);
  pointer-events: none;
  box-shadow: none;
  background: transparent;
}
.autosave-fly[hidden] { display: none !important; }
.autosave-fly.is-busy {
  border: 2px solid rgba(176,137,72,.35);
  border-top-color: var(--cedar);
  border-radius: 50%;
  animation: autosave-spin .6s linear infinite;
  color: transparent;
  font-size: 0;
}
.autosave-fly.is-ok { color: var(--cedar); font-weight: 700; }
.autosave-fly.is-error { color: var(--danger); font-weight: 700; }
@keyframes autosave-spin { to { transform: rotate(360deg); } }

.user-card-thumbs { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.user-card-thumbs img { width: 48px; height: 48px; object-fit: cover; border-radius: 6px; background: #eee; }
.list-cover { display: block; width: 100%; height: 140px; object-fit: cover; border-radius: 12px; margin: 0 0 12px; }
.header-pick { display: flex; gap: 10px; flex-wrap: wrap; }
.header-pick-option { position: relative; display: flex; flex-direction: column; gap: 4px; width: 96px; font-size: .8rem; }
.header-pick-option img { width: 96px; height: 56px; object-fit: cover; border-radius: 8px; border: 2px solid transparent; }
.header-pick-option input { position: absolute; opacity: 0; }
.header-pick-option:has(input:checked) img { border-color: var(--cedar); }
.uploads-row { display: flex; gap: 16px; align-items: flex-start; }
.uploads-row.is-hidden { opacity: .55; }
.uploads-row .thumb { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; }

.card.is-oos { opacity: .55; }
.offer-row.is-oos { opacity: .65; }
.shop-list-panel .filters { margin-bottom: 8px; }


/* Full backup admin */
.panel-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.backup-table .backup-name { font-size: .85rem; word-break: break-all; }
.backup-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
  min-width: 12rem;
}
.backup-restore-form {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(196,165,116,.35);
  border-radius: 10px;
  background: rgba(196,165,116,.08);
}
@media (max-width: 820px) {
  .backup-actions { min-width: 0; width: 100%; }
}

.panel > h2 {
  margin: 0 0 12px;
  font-size: 1.15rem;
  color: var(--cedar-deep);
}
.backup-restore-form:focus-within {
  border-color: rgba(176, 137, 72, .85);
  box-shadow: 0 0 0 2px rgba(196, 165, 116, .25);
}

.wallpaper-grid .wallpaper-visual {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #1a120c;
}
.wallpaper-grid .wallpaper-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wallpaper-grid .card-body .btn { margin-top: 4px; }


/* --- UX 9.6.1: Vibeero-adapted polish --- */
html { scroll-behavior: smooth; }
.skip-link {
  position: absolute; left: .75rem; top: .75rem; z-index: 100;
  padding: .55rem .9rem; border-radius: 999px;
  background: var(--green); color: #fff; font-weight: 700;
  transform: translateY(-160%); transition: transform .15s ease;
}
.skip-link:focus { transform: translateY(0); color: #fff; outline: 3px solid var(--amber); outline-offset: 2px; }
#main-content:focus { outline: none; }
#main-content:focus-visible { outline: 3px solid var(--amber); outline-offset: 4px; }

.eyebrow { margin: 0 0 6px; }
.hero-copy { display: grid; gap: .65rem; max-width: 42rem; }
.hero-copy p { margin: 0; }
.hero-strip { min-height: 160px; margin-bottom: 24px; }

/* Home hero (0.11.35): one primary (Search), one secondary (photo), quiet explore links. */
.hero-home { min-height: 420px; }
.hero-home::before {
  /* Mobile scrim: near-opaque cream so copy never sits on raw photo. */
  background: linear-gradient(
    180deg,
    rgba(247,241,230,.93) 0%,
    rgba(247,241,230,.88) 60%,
    rgba(247,241,230,.80) 100%
  );
}
.hero-home .hero-inner { max-width: 1100px; }
.hero-home .hero-copy,
.hero-home .search-bar,
.hero-home .hero-hint,
.hero-home .hero-links { max-width: 640px; }
.hero-home .hero-copy { gap: 10px; }
.hero-home h1 { margin: 0; }
.hero-home .hero-lead { color: var(--ink); font-size: 1.12rem; line-height: 1.45; max-width: 40ch; }
.search-bar {
  display: flex; gap: 6px; flex-wrap: nowrap; align-items: center;
  background: var(--paper); border: 1px solid var(--border);
  border-radius: 999px; padding: 6px; box-shadow: var(--shadow);
  margin-top: 22px;
}
.search-bar:focus-within { border-color: var(--amber); }
.search-bar-icon { flex: 0 0 auto; margin-left: 10px; color: var(--smoke); }
.search-bar input[type=search] {
  flex: 1 1 auto; min-width: 0; border: 0; background: transparent;
  padding: 10px 6px; font-size: 1rem; outline: none; box-shadow: none; min-height: 44px;
}
.search-bar .btn { flex: 0 0 auto; box-shadow: none; }
.search-bar-photo {
  position: relative;
  min-width: 44px; padding: 10px 14px;
  background: transparent; color: var(--cedar-deep);
  border: 1px solid var(--border);
}
.hero .btn.ghost.search-bar-photo { background: transparent; border-color: var(--border); color: var(--cedar-deep); }
.search-bar-photo:hover,
.hero .btn.ghost.search-bar-photo:hover { background: var(--cream); border-color: var(--amber); color: var(--amber-dark); }
.search-bar-photo input[type=file] {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.search-bar-photo:focus-within { outline: 3px solid var(--amber); outline-offset: 2px; }
.search-bar-photo.is-busy { opacity: .7; cursor: progress; }
.search-bar-photo.is-busy .btn-icon-svg { animation: search-photo-pulse 1s ease-in-out infinite; }
@keyframes search-photo-pulse { 50% { opacity: .35; } }
.search-bar-photo-label {
  /* Icon-only on phones; the text stays the accessible name. */
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.home-identify { margin: 0; }
/* Scan control (0.12.3): Scan + "Choose from gallery" (touch) / webcam (desktop with camera); extras appear via JS. */
.scan-control { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.scan-control--search { flex: 0 0 auto; flex-wrap: nowrap; gap: 6px; }
.scan-extra { position: relative; min-width: 44px; min-height: 44px; }
.scan-extra[hidden] { display: none !important; }
.scan-extra input[type=file] {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.scan-extra:focus-within, .scan-extra:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }
.btn.ghost.scan-extra, .hero .btn.ghost.scan-extra { background: transparent; border: 1px solid var(--border); color: var(--cedar-deep); box-shadow: none; }
.btn.ghost.scan-extra:hover { background: var(--cream); border-color: var(--amber); color: var(--amber-dark); }
.scan-control--search .scan-extra { padding: 10px; width: 44px; }
.scan-control--search .scan-extra-label {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.scan-control--field .scan-extra { padding: 10px 16px; }
.scan-camera-dialog { max-width: 680px; }
.scan-camera-dialog h2 { margin-top: 0; }
.scan-camera-stage {
  display: grid; place-items: center; margin: 12px 0 8px;
  aspect-ratio: 4 / 3; background: #1d140d; border-radius: 12px; overflow: hidden;
}
.scan-camera-stage video, .scan-camera-stage img { display: block; width: 100%; height: 100%; object-fit: contain; }
.scan-camera-stage [hidden] { display: none; }
.scan-camera-status { min-height: 1.4em; margin: 0 0 8px; color: var(--cedar-deep); }
.scan-camera-device { max-width: 360px; }
.scan-camera-device[hidden] { display: none; }
.scan-camera-actions .btn[hidden] { display: none; }
.hero-home .hero-hint { margin: 10px 0 0 4px; font-size: .95rem; color: var(--cedar-deep); }
.hero-links { display: flex; flex-wrap: wrap; column-gap: 20px; margin-top: 8px; }
.hero .hero-links a {
  display: inline-flex; align-items: center; gap: 4px; min-height: 44px;
  font-weight: 650; color: var(--cedar-deep);
  text-decoration: underline; text-decoration-color: rgba(107,68,35,.35);
  text-underline-offset: 4px;
}
.hero .hero-links a::after { content: "\2192"; text-decoration: none; display: inline-block; }
.hero .hero-links a:hover { color: var(--amber-dark); text-decoration-color: currentColor; }
@media (max-width: 479px) {
  .search-bar-icon { display: none; }
  .search-bar input[type=search] { padding-left: 12px; }
  .search-bar-photo { padding: 10px; width: 44px; }
  .search-bar .btn-primary { padding: 12px 16px; }
}
@media (min-width: 640px) {
  .search-bar-photo-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; }
  .hero-home .hero-hint { display: none; }
}
@media (min-width: 821px) {
  .hero-home::before {
    background: linear-gradient(
      100deg,
      rgba(247,241,230,.97) 0%,
      rgba(247,241,230,.92) 42%,
      rgba(247,241,230,.62) 62%,
      rgba(34,21,12,.18) 100%
    );
  }
}
.section { padding: .5rem 0 1.5rem; }
.section-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.section-head h2 { margin: 0; }

.locale-switch { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-left: .25rem; }
.locale-switch span[aria-hidden] { color: var(--smoke); font-size: .75rem; }
.nav-logout { display: inline; margin: 0; }

.nav-burger {
  display: none; margin-left: auto;
  width: 44px; height: 44px; border-radius: 10px;
  border: 1px solid var(--border); background: var(--paper); cursor: pointer;
  align-items: center; justify-content: center;
}
.nav-burger-bars, .nav-burger-bars::before, .nav-burger-bars::after {
  display: block; width: 18px; height: 2px; background: var(--ink); border-radius: 2px; position: relative;
}
.nav-burger-bars::before, .nav-burger-bars::after { content: ""; position: absolute; left: 0; }
.nav-burger-bars::before { top: -6px; }
.nav-burger-bars::after { top: 6px; }
.nav-backdrop {
  display: none; position: fixed; inset: 0; z-index: 70;
  background: rgba(34, 21, 12, .35);
}

.filters-panel {
  background: var(--paper); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 16px 18px; margin: 16px 0;
  box-shadow: var(--shadow);
}
.filters-panel .filters { margin: 12px 0 0; }
.filter-chips, .recent-searches {
  display: flex; flex-wrap: wrap; align-items: center; gap: .45rem;
  margin: 0 0 1rem;
}
.chip {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .35rem .7rem; border-radius: 999px;
  border: 1px solid var(--border); background: var(--paper);
  color: var(--ink); text-decoration: none; font-size: .88rem; font-weight: 700;
}
.chip:hover { border-color: var(--amber); color: var(--amber-dark); background: #fff8ec; }
.chip-soft { background: var(--cream-dark); font-weight: 600; }
.chip-clear { border-style: dashed; color: var(--muted); }

.empty-state { text-align: left; }
.empty-state-title { margin: 0 0 .35rem; font-size: 1.15rem; }
.empty-state-hint { text-transform: none; letter-spacing: 0; color: var(--smoke); }
.empty-state-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }

.breadcrumbs { margin: 0 0 1rem; }
.breadcrumbs-list {
  display: flex; flex-wrap: wrap; gap: .35rem .55rem; align-items: center;
  list-style: none; margin: 0; padding: 0; font-size: .9rem; color: var(--smoke);
}
.breadcrumbs-item:not(:last-child)::after {
  content: "/"; margin-left: .55rem; color: var(--border); font-weight: 700;
}
.breadcrumbs a { color: var(--smoke); font-weight: 600; }
.breadcrumbs a:hover { color: var(--amber); }
.breadcrumbs [aria-current="page"] { color: var(--ink); font-weight: 700; }

.flash.ok { display: flex; align-items: flex-start; gap: .55rem; }
.detail-header { margin-bottom: .5rem; }
.detail-scores { margin: .35rem 0 1rem; }
.inventory-card .cellar-qty { margin-top: .35rem; }
.inventory-card .card-body { padding-bottom: 12px; }

.admin-nav {
  display: flex; flex-wrap: wrap; gap: .4rem; align-items: center;
  margin: 0 0 1.1rem; padding: .55rem;
  background: var(--cream-dark); border: 1px solid var(--border);
  border-radius: var(--radius);
}
.admin-nav-group-label {
  font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  color: var(--cedar-deep); margin-right: .15rem;
}
.admin-nav-link {
  display: inline-flex; align-items: center;
  padding: .4rem .75rem; border-radius: 999px;
  text-decoration: none; color: var(--ink); font-weight: 700; font-size: .9rem;
  border: 1px solid transparent;
}
.admin-nav-link:hover { background: #fff; border-color: var(--border); color: var(--amber-dark); }
.admin-nav-link.is-active {
  background: var(--green); color: #f7f1e3; border-color: var(--green);
}

.table-wrap {
  overflow: auto; border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--paper); box-shadow: var(--shadow); max-width: 100%;
  -webkit-overflow-scrolling: touch;
}
.table-wrap > .data-table,
.table-wrap > table {
  border: 0;
  box-shadow: none;
  background: transparent;
  margin: 0;
}
.table-sticky thead th {
  position: sticky; top: 0; z-index: 2;
  background: var(--cream-dark);
  color: var(--cedar-deep);
  box-shadow: 0 1px 0 var(--border);
}
.table-wrap:has(.table-sticky) { max-height: min(70vh, 44rem); }
.table-wrap .table-sticky { border-collapse: separate; border-spacing: 0; }
.table-actions, .row-actions.grouped {
  display: flex; flex-wrap: wrap; gap: .4rem; align-items: center;
}

/* Desk / admin data tables — human-readable cells (stock + elsewhere). */
.data-table th,
.data-table td {
  font-size: .95rem;
  line-height: 1.35;
  color: var(--ink);
}
.data-table th {
  font-size: .78rem;
  white-space: nowrap;
}
.data-table td .muted {
  color: var(--smoke);
  font-size: .85rem;
  margin-top: 2px;
}
.data-table td a {
  font-weight: 650;
  overflow-wrap: anywhere;
}
.data-table .catalog-id {
  font-size: .78rem;
  max-width: 9rem;
  overflow-wrap: anywhere;
  white-space: normal;
}
.data-table td input[type=checkbox] {
  width: auto;
  min-height: 0;
  padding: 0;
  accent-color: var(--amber);
}
.data-table td input:not([type]),
.data-table td input[type=text],
.data-table td input[type=number],
.data-table td input[type=search],
.data-table td input[type=url],
.data-table td input[type=email],
.data-table td select,
.data-table td textarea {
  width: auto;
  max-width: 100%;
  min-width: 0;
  padding: 8px 10px;
  min-height: 36px;
  font-size: .95rem;
  line-height: 1.2;
  box-sizing: border-box;
}
.data-table td input[type=number] {
  width: 5.75rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.data-table.stock-table td input[type=number][name*="[price]"] {
  width: 6.75rem;
}
.data-table.stock-table td input[type=number][name*="[quantity]"] {
  width: 5rem;
}
.data-table.stock-table .offer-name-cell {
  min-width: 12rem;
  max-width: 22rem;
}
.data-table.stock-table th.num,
.data-table.stock-table td.num {
  white-space: nowrap;
}
.stock-bulk-bar {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.stock-bulk-bar select {
  width: auto;
  min-width: 10rem;
  max-width: 100%;
}
.stock-prices-card .file-pick {
  margin: 6px 0 10px;
}

.footer-inner { padding-top: 0; }

@media (max-width: 820px) {
  .header-toolbar { display: inline-flex; }
  .nav-burger { display: inline-flex; margin-left: 0; }
  .header-inner { flex-wrap: nowrap; }
  .nav-account-desktop { display: none !important; }
  .nav-account-drawer { display: block; }
  .nav {
    display: none; position: fixed; top: 0; right: 0; bottom: 0; z-index: 80;
    width: min(320px, 88vw); margin: 0; padding: 72px 18px 24px;
    flex-direction: column; align-items: stretch; gap: .35rem;
    background: var(--paper); box-shadow: var(--shadow);
    overflow-y: auto; -webkit-overflow-scrolling: touch;
  }
  body.nav-open { overflow: hidden; }
  body.nav-open .site-header { z-index: 90; }
  body.nav-open .header-toolbar { position: relative; z-index: 91; }
  body.nav-open .nav { display: flex; }
  body.nav-open .nav-backdrop { display: block; }
  .nav a, .nav button.linkish, .nav .nav-toggle, .nav .nav-drop button {
    min-height: 44px; padding: .7rem .55rem; border-radius: 8px; font-size: 1rem;
    display: flex; align-items: center;
  }
  .nav .nav-drop a, .nav .nav-drop .linkish, .nav .nav-drop button {
    min-height: 44px;
  }
  .locale-switch { margin-top: .5rem; padding: .35rem 0; }
  .hero-home { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .skip-link { transition: none; }
  .autosave-fly.is-busy { animation: none; }
}

/* Leaflet maps */
.leaflet-map { width: 100%; border-radius: 12px; border: 1px solid var(--border); background: #e8e4de; z-index: 1; }
.leaflet-map-sm { height: 220px; margin-top: .75rem; }
.leaflet-map-lg { height: min(520px, 70vh); margin: 1rem 0; }
.map-location { margin: .85rem 0 0; display: flex; flex-direction: column; gap: .65rem; min-width: 0; max-width: 100%; }
.map-google-link { font-weight: 600; }
.map-shops-layout { display: grid; gap: 1rem; grid-template-columns: 1.4fr 1fr; align-items: start; }
.map-shop-list { max-height: min(520px, 70vh); overflow: auto; }
.map-shop-row { display: flex; flex-direction: column; gap: .15rem; padding: .55rem 0; border-bottom: 1px solid var(--border); }
.map-near-panel { margin: 1rem 0; }
.map-near-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
@media (max-width: 820px) {
  .map-shops-layout { grid-template-columns: 1fr; }
  .leaflet-map-lg { height: 360px; }
}


/* Admin media gallery */
.media-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.media-gallery-tile {
  border: 1px solid rgba(107, 68, 35, 0.18);
  border-radius: 12px;
  background: #fffdf8;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.media-gallery-tile.is-dragging {
  opacity: 0.55;
}
.media-gallery-thumb {
  position: relative;
  aspect-ratio: 1;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.35), transparent 40%), #e8d9c2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.media-gallery-thumb img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.media-gallery-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 4px;
  padding: 6px;
  background: linear-gradient(180deg, rgba(0,0,0,.35), transparent 55%);
  opacity: 0;
  transition: opacity .15s ease;
}
.media-gallery-tile:hover .media-gallery-overlay,
.media-gallery-tile:focus-within .media-gallery-overlay {
  opacity: 1;
}
.media-gallery-overlay .btn {
  min-width: 2rem;
  padding: 0.15rem 0.4rem;
}
.media-gallery-badge {
  position: absolute;
  left: 8px;
  bottom: 8px;
  font-size: .7rem;
  background: rgba(255,253,248,.92);
  color: var(--smoke, #5a4634);
  border-radius: 999px;
  padding: 2px 8px;
}
.media-gallery-meta {
  padding: 8px;
  gap: 6px;
}
.media-gallery-meta label {
  font-size: .8rem;
}
.media-gallery-check {
  display: flex;
  align-items: center;
  gap: 6px;
}
.media-gallery-add {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(107, 68, 35, 0.2);
}
.media-gallery-drag-hint {
  margin-top: 4px;
}
.photo-credit a {
  color: inherit;
  text-decoration: underline;
}

.friend-tile { display: flex; flex-direction: column; gap: 10px; }
.friend-tile-head { display: flex; align-items: center; gap: 12px; }
.friend-tile-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.friend-tile-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.friend-tile-actions .btn { flex: 0 0 auto; }
.friend-tile-share { margin-top: 4px; max-width: none; }
.friends-section { margin-top: 1.25rem; }
.friends-section > h2 { margin-bottom: .75rem; }
.friend-invite-row { display: flex; flex-direction: column; gap: 10px; }
.friends-grid { margin-top: .25rem; }
.friend-visual {
  height: 150px;
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.35), transparent 40%), #e8d9c2;
}
.friend-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.friend-card .friend-peek { margin: 0 0 4px; font-size: .9rem; }
.friend-card .friend-peek-thumbs { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.friend-card .friend-peek-thumbs img {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: 6px;
  background: #eee;
}
.friend-card-footer { padding-top: 0; }
@media (max-width: 560px) {
  .friend-visual { height: 120px; }
  .friend-tile-head { align-items: flex-start; }
}
/* Locale toggle: cedar pill (not gold underline like other menus) */
.nav-locale > .nav-toggle,
.nav-locale.is-active > .nav-toggle {
  min-width: 3rem;
  color: var(--cream);
  background: var(--cedar);
  border: 0;
  border-bottom: 0;
  border-radius: 999px;
  padding: 2px 10px;
  line-height: 1.4;
}
.nav-locale .nav-drop form { display: block; margin: 0; }
/* Locale items must match Humidor/Brands .nav-drop a (no native button chrome) */
.nav-drop .linkish,
.nav-locale .nav-drop button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 10px;
  margin: 0;
  white-space: nowrap;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: var(--cedar-deep);
  font: inherit;
  font-size: inherit;
  cursor: pointer;
}
.nav-drop .linkish:hover,
.nav-locale .nav-drop button:hover {
  color: var(--cedar);
}
.nav-drop a.active,
.nav-drop .linkish.active,
.nav-drop .linkish.on,
.nav-locale .nav-drop button.on,
.nav-locale .nav-drop button.active {
  font-weight: 700;
  color: var(--cedar);
}

/* Pending / skeleton media while upload or identify runs */
.img-skeleton,
.identify-pending-preview {
  display: grid;
  place-items: center;
  gap: 8px;
  min-height: 120px;
  border-radius: 12px;
  background:
    linear-gradient(90deg, rgba(232,217,194,.55) 0%, rgba(247,241,230,.9) 50%, rgba(232,217,194,.55) 100%);
  background-size: 200% 100%;
  animation: img-skeleton-shine 1.2s ease-in-out infinite;
}
.identify-pending-preview img {
  max-width: 160px;
  max-height: 160px;
  border-radius: 10px;
  object-fit: contain;
}
@keyframes img-skeleton-shine {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
.file-pick.is-busy::after {
  content: "";
  display: inline-block;
  width: 1.1em;
  height: 1.1em;
  margin-left: .4em;
  border-radius: 50%;
  border: 2px solid rgba(107,68,35,.25);
  border-top-color: var(--cedar);
  animation: img-spin .7s linear infinite;
  vertical-align: middle;
}
@keyframes img-spin { to { transform: rotate(360deg); } }


/* Shop multi-location address cards */
.shop-locations { display: flex; flex-direction: column; gap: 10px; }
.shop-locations-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 2px;
}
.shop-locations-help { margin: 0; flex: 1; min-width: 0; }
.btn.icon, .btn.btn-icon {
  width: 2.25rem;
  min-width: 2.25rem;
  height: 2.25rem;
  min-height: 2.25rem;
  padding: 0;
  border-radius: 999px;
  flex: 0 0 auto;
}
.btn.icon.small, .btn.small.icon {
  width: 2rem;
  min-width: 2rem;
  height: 2rem;
  min-height: 2rem;
  padding: 0;
}
.btn-icon-svg { display: block; flex: 0 0 auto; }
.address-geocode-btn {
  gap: 8px;
  box-shadow: 0 4px 12px rgba(60, 36, 21, .10);
}
.location-card { background: rgba(255, 248, 236, .35); border-radius: 10px; padding: 0; }
.location-card > .location-card-summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
  padding: 10px 12px 10px 14px;
  font-weight: 600;
  color: var(--cedar-deep);
  min-height: 2.75rem;
  box-sizing: border-box;
}
.location-card > .location-card-summary::-webkit-details-marker { display: none; }
.location-card-summary-main {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
  flex-wrap: wrap;
}
.location-card-remove {
  margin-left: auto;
  flex: 0 0 auto;
  align-self: center;
}
.location-card-body { padding: 0 14px 14px; }
.shop-desk-nav { margin: 0 0 14px; }
.shop-desk-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 6px;
}
.shop-desk-heading > h1 { margin: 0; }
.shop-desk-switcher { margin: 0; }
.shop-desk-switch-select {
    min-width: 10rem;
    max-width: min(100%, 18rem);
}
.nav-group.nav-shop-desk > .nav-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.shop-attach-inline { display: inline; margin: 0; }
.address-fields { display: contents; }
.address-place-wrap { position: relative; }
.address-place-typeahead { position: relative; }
.address-city-search { margin-top: 0; width: 100%; }
.address-city-suggestions {
  position: absolute;
  left: 0; right: 0;
  top: 100%;
  z-index: 40;
  margin: 2px 0 0;
  padding: 4px 0;
  list-style: none;
  max-height: 220px;
  overflow-y: auto;
  background: #fffdf8;
  border: 1px solid rgba(196,165,116,.45);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(40, 28, 12, .12);
}
.address-city-suggestions[hidden] { display: none !important; }
.address-city-suggestions li {
  padding: 10px 12px;
  min-height: 44px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  cursor: pointer;
  line-height: 1.3;
  -webkit-tap-highlight-color: transparent;
}
.address-city-suggestions li:hover,
.address-city-suggestions li:focus {
  background: rgba(196,165,116,.22);
  outline: none;
}
.address-city-search:disabled {
  opacity: .65;
  cursor: not-allowed;
}
.address-place-hint { margin-top: 4px; }
.address-map-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.address-map { touch-action: pan-x pan-y; }
/* Shop-desk delete icon buttons: red fill, white glyph (accessible contrast). */
.btn.icon.danger,
.btn.danger.icon,
.btn.ghost.danger.icon {
  background: var(--danger);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 10px rgba(181, 74, 50, .28);
}
.btn.icon.danger:hover,
.btn.danger.icon:hover,
.btn.ghost.danger.icon:hover {
  background: #9a3d28;
  color: #fff;
  border-color: transparent;
}
.btn.icon.danger:disabled,
.btn.danger.icon:disabled,
.btn.ghost.danger.icon:disabled {
  opacity: .45;
  box-shadow: none;
}
.btn.ghost.danger:not(.icon) {
  color: #9b1c1c;
  border-color: rgba(155, 28, 28, .35);
}
@media (max-width: 640px) {
  .address-map { height: 200px !important; }
  .location-card { padding: 10px; }
  .address-city-search { min-height: 44px; font-size: 16px; }
  .address-city-suggestions li { min-height: 48px; padding: 12px 14px; }
}


/* Shop directory cards: header + logo overlay */
.shop-card-visual { position: relative; }
.shop-card-visual .shop-card-header { width: 100%; height: 100%; object-fit: cover; max-height: none; }
.shop-card-logo {
  position: absolute;
  left: 10px;
  bottom: 10px;
  width: 56px;
  height: 56px;
  object-fit: contain;
  background: rgba(255, 253, 248, 0.95);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 4px;
  box-shadow: 0 2px 8px rgba(60, 40, 20, 0.15);
}
.shop-hero-header { position: relative; }
.shop-hero-header img.shop-hero-logo {
  position: absolute;
  left: 16px;
  bottom: 16px;
  width: 88px;
  height: 88px;
  object-fit: contain;
  background: rgba(255, 253, 248, 0.95);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 6px;
  box-shadow: 0 2px 10px rgba(60, 40, 20, 0.18);
  max-height: none;
}
.shop-hero-logo-solo {
  min-height: 140px;
  max-width: 220px;
  margin-left: auto;
  margin-right: auto;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.45), transparent 45%), #efe4d0;
}
.shop-hero-logo-solo img {
  max-height: 120px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}
.shop-show-hero .kicker { margin-bottom: .35rem; }
.shop-show-contact { margin: .35rem 0 0; word-break: break-word; }
.shop-show-link { font-weight: 600; }
.shop-show-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem 1rem;
  margin: .55rem 0 0;
  min-width: 0;
}
.shop-show-meta-row .shop-show-link {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shop-show-meta-row .shop-show-meta-spacer { flex: 1 1 auto; min-width: 0; }
.shop-show-meta-row .shop-show-id {
  flex: 0 0 auto;
  margin: 0;
  max-width: none;
  text-align: right;
  white-space: nowrap;
}

.map-locations-panel {
  background: rgba(255, 248, 236, .55);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0;
  overflow: hidden;
}
.map-locations-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  padding: .85rem 1rem;
  font-weight: 650;
  color: var(--cedar-deep);
}
.map-locations-summary::-webkit-details-marker { display: none; }
.map-locations-summary-label { font-family: var(--font-serif); font-size: 1.05rem; }
.map-locations-summary-hint { font-weight: 500; font-size: .85rem; }
.map-locations-hint-collapse { display: none; }
.map-locations-panel[open] .map-locations-hint-expand { display: none; }
.map-locations-panel[open] .map-locations-hint-collapse { display: inline; }
.map-locations-panel[open] .map-locations-summary {
  border-bottom: 1px solid var(--border);
}
.map-address-list {
  list-style: none;
  margin: 0;
  padding: .55rem;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}
.map-address-row {
  position: relative;
  display: block;
  background: var(--paper);
  border: 1px solid rgba(196, 165, 116, .35);
  border-radius: 10px;
  padding: .65rem .75rem;
  box-shadow: 0 2px 8px rgba(60, 36, 21, .04);
  min-width: 0;
}
/* Reserve space so title ellipsis stops before the map action icons. */
.map-address-row:has(> .map-ext-links) {
  padding-right: calc(.75rem + (2.35rem * 3) + (.4rem * 2) + .35rem);
}
.map-address-row > .map-location-card,
.map-address-row > .map-location-text,
.map-address-row > .map-address-btn {
  min-width: 0;
  max-width: 100%;
}
/* Keep Google/Apple/OSM pinned to the title row (never drop when expanded). */
.map-address-row > .map-ext-links {
  position: absolute;
  top: .55rem;
  right: .75rem;
  z-index: 1;
}
.map-address-row-single {
  margin: 0;
}
.map-location-text {
  margin: 0;
  min-width: 0;
  color: var(--smoke);
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.map-address-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--cedar);
  font: inherit;
  font-weight: 600;
  text-align: left;
  padding: .15rem 0;
  margin: 0;
  cursor: pointer;
  min-width: 0;
  line-height: 1.35;
  text-decoration: none;
}
.map-address-btn:hover,
.map-address-btn:focus-visible {
  color: var(--cedar-deep);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.map-address-btn.is-active {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.map-ext-links {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  flex: 0 0 auto;
}
.map-ext-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  min-width: 2.35rem;
  min-height: 2.35rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255, 253, 248, .95);
  color: var(--cedar-deep);
  box-shadow: 0 2px 6px rgba(60, 36, 21, .06);
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.map-ext-link:hover,
.map-ext-link:focus-visible {
  background: var(--cream-dark);
  border-color: var(--gold);
  color: var(--ink);
}
.map-ext-icon { display: block; }
.map-ext-google { color: #EA4335; }
.map-ext-apple { color: #1d1d1f; }
.map-ext-osm { color: #7ebc6f; }
.map-ext-osm:hover,
.map-ext-osm:focus-visible { color: #5a9a4a; }
.map-location-card {
  min-width: 0;
  margin: 0;
}
.map-location-card-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .45rem;
  font: inherit;
  font-weight: 600;
  color: var(--cedar);
  line-height: 1.35;
  min-width: 0;
}
.map-location-card-summary::-webkit-details-marker { display: none; }
.map-location-card-summary::before {
  content: '';
  flex: 0 0 auto;
  box-sizing: border-box;
  width: .42rem;
  height: .42rem;
  margin: 0;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  transition: transform .15s ease;
  opacity: .75;
}
.map-location-card[open] > .map-location-card-summary::before {
  transform: rotate(45deg);
  margin: 0;
}
.map-location-card-summary:hover,
.map-location-card-summary:focus-visible {
  color: var(--cedar-deep);
}
.map-address-summary-text {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.map-location-card-body {
  margin-top: .4rem;
  padding-top: .35rem;
  border-top: 1px solid rgba(196, 165, 116, .28);
  display: flex;
  flex-direction: column;
  gap: .25rem;
}
.map-location-desc {
  margin: 0;
  color: var(--ink);
  white-space: pre-wrap;
  line-height: 1.4;
}
.map-location-meta {
  margin: 0;
  font-size: .92rem;
  line-height: 1.35;
}
.map-location-focus-btn {
  align-self: flex-start;
  margin-top: .1rem;
  font-size: .9rem;
}
.shop-show-contact-info {
  white-space: pre-wrap;
  line-height: 1.4;
}
.map-popup-ext-links { display: inline; }
.map-popup-ext { font-weight: 600; }
.map-popup-google { color: #EA4335; }
.map-popup-apple { color: #1d1d1f; }
.map-popup-osm { color: #5a9a4a; }
.map-frame {
  position: relative;
  margin-top: .15rem;
}
.map-frame .leaflet-map-sm { margin-top: 0; }
.map-reset-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1000;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  appearance: none;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(255, 253, 248, .94);
  color: var(--cedar-deep);
  font: inherit;
  font-size: .82rem;
  font-weight: 650;
  line-height: 1;
  padding: .45rem .7rem;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(60, 36, 21, .12);
}
.map-reset-btn:hover,
.map-reset-btn:focus-visible {
  background: #fff;
  color: var(--ink);
  border-color: var(--gold);
}
.map-reset-icon { flex: 0 0 auto; }
@media (max-width: 640px) {
  .map-location {
    margin-top: .7rem;
    gap: .55rem;
    max-width: 100%;
    overflow: hidden;
  }
  .map-locations-summary {
    padding: .75rem .85rem;
    gap: .45rem;
    align-items: center;
  }
  .map-locations-summary-label { font-size: 1rem; }
  .map-address-list {
    padding: .45rem;
    gap: .4rem;
  }
  .map-address-row {
    padding: .55rem .6rem;
  }
  .map-address-row:has(> .map-ext-links) {
    padding-right: calc(.6rem + (2.6rem * 3) + (.4rem * 2) + .3rem);
  }
  .map-address-row > .map-ext-links {
    top: .45rem;
    right: .55rem;
  }
  .map-ext-link {
    width: 2.6rem;
    height: 2.6rem;
    min-width: 2.6rem;
    min-height: 2.6rem;
  }
  .map-location-card-body {
    margin-top: .35rem;
    padding-top: .3rem;
    gap: .2rem;
  }
  .map-reset-btn {
    top: 8px;
    right: 8px;
    font-size: .78rem;
    padding: .42rem .62rem;
  }
  .leaflet-map-sm { height: 220px; max-width: 100%; }
  .map-frame { max-width: 100%; overflow: hidden; }
  .shop-show-meta-row {
    gap: .4rem .65rem;
    margin-top: .45rem;
  }
  .shop-show-meta-row .shop-show-link { font-size: .92rem; }
}

/* Cigar offer map + multi-shop attach */
.cigar-offer-map-wrap { margin: 0 0 1rem; }
.cigar-offer-map-title {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  color: var(--ink);
  margin: 0 0 .55rem;
}
.cigar-offer-map { margin-top: 0; }
.shop-attach-form, .shop-attach-inline {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: end;
}
.shop-attach-multi .shop-attach-shop-label {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  margin: 0;
  min-width: min(100%, 14rem);
  flex: 1 1 10rem;
}
.shop-attach-shop-select {
  width: 100%;
  min-height: 2.35rem;
}
.shop-attach-inline.shop-attach-multi {
  align-items: center;
}
.shop-attach-inline .shop-attach-shop-label.is-compact {
  flex: 1 1 8rem;
  min-width: 7rem;
  margin: 0;
}
.shop-attach-listed-note { margin: .45rem 0 0; }
@media (max-width: 640px) {
  .shop-attach-form, .shop-attach-inline.shop-attach-multi {
    flex-direction: column;
    align-items: stretch;
  }
  .shop-attach-form .btn,
  .shop-attach-inline.shop-attach-multi .btn {
    width: 100%;
  }
}

/* Profile avatar picker — collapsible tile (default collapsed) */
.avatar-picker-tile {
  border: 1px solid rgba(196, 165, 116, .45);
  border-radius: 12px;
  background: rgba(255, 248, 236, .45);
  padding: 0;
  margin: 4px 0 8px;
  max-width: 640px;
}
.avatar-picker-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  font-weight: 600;
  color: var(--cedar-deep);
}
.avatar-picker-summary::-webkit-details-marker { display: none; }
.avatar-picker-summary-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.avatar-picker-title { font-size: 1.05rem; }
.avatar-picker-hint { font-weight: 400; font-size: .9rem; }
.avatar-picker-summary::after {
  content: '▾';
  margin-left: 4px;
  opacity: .65;
  transition: transform .15s ease;
}
.avatar-picker-tile:not([open]) .avatar-picker-summary::after {
  transform: rotate(-90deg);
}
.avatar-picker-body {
  padding: 0 14px 14px;
  display: grid;
  gap: 12px;
}

/* Admin shops index — compact toolbar (desk-aligned) */
.admin-shops-page .shop-desk-heading {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 10px 16px; margin-bottom: 8px;
}
.admin-shops-links { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-shops-toolbar {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin: 12px 0 16px; padding: 14px 16px;
}
.admin-shops-tool-label {
  display: block; font-size: .85rem; font-weight: 600; margin-bottom: 6px; color: var(--ink-muted, #5c5346);
}
.admin-shops-tool-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.admin-shops-tool-row input[type="text"],
.admin-shops-tool-row input[type="search"],
.admin-shops-tool-row input[type="file"],
.admin-shops-tool-row select {
  flex: 1 1 140px; min-width: 0; width: auto; max-width: 100%;
}
.admin-shops-tool-row .btn.icon { flex: 0 0 auto; }
.admin-shops-bulk-bar {
  margin: 12px 0 8px; padding: 10px 0;
  align-items: stretch;
}
.admin-shops-bulk-bar select {
  flex: 1 1 180px; min-width: 140px; max-width: 320px;
}
.admin-shops-bulk-bar .btn { flex: 0 0 auto; }
tr.is-muted { opacity: .72; }
@media (max-width: 640px) {
  .admin-shops-toolbar { grid-template-columns: 1fr; }
  .admin-shops-bulk-bar { flex-direction: column; }
  .admin-shops-bulk-bar select { max-width: none; width: 100%; }
}

/* Shop desk portrait: fill the panel column (no 760px gutters). */
.shop-form.form-wide { max-width: none; gap: 16px; width: 100%; }
.shop-form.form-wide > fieldset.form-group,
.shop-form.form-wide > details.form-group,
.shop-form.form-wide > form,
.shop-form.form-wide > .shop-images,
.shop-form.form-wide > .span-all,
.shop-form.form-wide > .js-save-fallback,
.shop-form.form-wide > button[type="submit"] {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.shop-form.form-wide > form {
  display: block;
  width: 100%;
}
.shop-form .form-group { padding: 18px 18px 16px; margin: 12px 0; gap: 14px; }
/* Kontakt / Standorte / nested Standort tiles: full width of the desk column. */
.shop-form.form-wide > fieldset.form-group > .shop-locations,
.shop-form.form-wide > fieldset.form-group > .span-all,
.shop-form.form-wide > details.form-group > .shop-descriptions-body,
.shop-form.form-wide > details.form-group > .span-all,
.shop-form .shop-locations,
.shop-form .shop-locations-list,
.shop-form .location-card {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.shop-form .shop-identity {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.shop-form .shop-identity > legend,
.shop-form .shop-identity > .span-all { grid-column: 1 / -1; }
.shop-form .shop-identity > div > label { margin-bottom: 6px; }
.shop-images { margin-top: 4px; width: 100%; max-width: 100%; box-sizing: border-box; }
.shop-images-head { margin-bottom: 8px; }
.shop-images-head label { margin-bottom: 2px; }
.shop-images-empty { margin: 0; text-align: center; }
.shop-images-slide-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  padding: 24px 48px;
}
.shop-images-carousel.cigar-carousel { min-height: 200px; margin-bottom: 12px; width: 100%; }
.shop-images-slide {
  display: none;
  position: relative;
  min-height: 180px;
}
.shop-images-slide.is-active { display: block; }
.shop-images-carousel .shop-images-slide img {
  display: block;
  max-height: 280px;
  width: 100%;
  object-fit: contain;
  margin: 0 auto;
  background: transparent;
}
.shop-images-slide-meta {
  position: absolute;
  left: 12px;
  top: 10px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.shop-images-badge {
  font-size: .75rem;
  font-weight: 650;
  background: rgba(255,253,248,.92);
  color: var(--cedar-deep);
  border: 1px solid rgba(196,165,116,.45);
  border-radius: 999px;
  padding: 2px 10px;
}
.shop-images-actions {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  justify-content: flex-start;
  background: rgba(255,253,248,.88);
  border-radius: 10px;
  padding: 6px 8px;
}
.shop-images-role {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}
.shop-images-role select {
  min-width: 7.5rem;
  font-size: .85rem;
  padding: 4px 8px;
}
.shop-images-actions .btn.icon.danger {
  flex: 0 0 auto;
}
.shop-images-add-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 4px;
  max-width: none;
  width: 100%;
}
.shop-images-add.form-grid { max-width: none; width: 100%; }

/* Markdown field with optional preview */
.md-field { display: grid; gap: 6px; }
.md-field > label { margin-bottom: 0; }
.md-toolbar { display: flex; flex-wrap: wrap; gap: 4px; }
.md-toolbar .btn.icon { min-width: 36px; }
.md-field-input-wrap {
  position: relative;
  display: block;
  width: 100%;
}
.md-field-input-wrap textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding-right: 2.75rem;
}
.md-preview-toggle {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  box-shadow: none !important;
  background: rgba(255, 253, 248, .92);
}
.md-preview-toggle[aria-pressed="true"] {
  background: rgba(196,165,116,.28);
  border-color: rgba(176,137,72,.7);
}
.md-field-preview {
  min-height: 90px;
  padding: 10px 12px;
  border: 1px solid rgba(196,165,116,.35);
  border-radius: 10px;
  background: rgba(196,165,116,.08);
}
.md-field textarea[hidden],
.md-field-preview[hidden] { display: none !important; }
.md-field-input-wrap:has(textarea[hidden]) .md-preview-toggle {
  top: 8px;
}

/* Copy-to-empty locale descriptions: stack under Markdown preview eye */
.md-copy-to-empty {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  box-shadow: none !important;
  background: rgba(255, 253, 248, .92);
}
.md-field-input-wrap:has(.md-preview-toggle) .md-copy-to-empty {
  top: calc(8px + 2rem + 4px);
}
.md-copy-to-empty[hidden] { display: none !important; }
.md-field-input-wrap:has(.md-preview-toggle):has(.md-copy-to-empty:not([hidden])) textarea {
  padding-right: 2.75rem;
}

/* Shop description tile — collapsed details, full-bleed like Kontakt/Standorte */
.shop-descriptions-tile {
  padding: 0;
}
.shop-descriptions-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  font-weight: 650;
  color: var(--cedar-deep);
  box-sizing: border-box;
}
.shop-descriptions-summary::-webkit-details-marker { display: none; }
.shop-descriptions-summary::after {
  content: '▾';
  margin-left: auto;
  opacity: .65;
  transition: transform .15s ease;
}
.shop-descriptions-tile:not([open]) .shop-descriptions-summary::after {
  transform: rotate(-90deg);
}
.shop-descriptions-body {
  display: grid;
  gap: 14px;
  padding: 0 18px 16px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.shop-descriptions-body .locale-descriptions {
  display: grid;
  gap: 14px;
  width: 100%;
}

@media (max-width: 820px) {
  .shop-form .shop-identity { grid-template-columns: 1fr; }
}

/* Spotify / Ken Burns shop header: blurred cover fill + sharp contain */
.shop-hero-kenburns {
  position: relative;
  min-height: 220px;
  max-height: 360px;
  height: clamp(220px, 42vw, 360px);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #e8d9c2;
}
.shop-hero-kenburns .shop-hero-blur {
  position: absolute;
  inset: -8%;
  background-image: var(--shop-hero-bg);
  background-size: cover;
  background-position: center;
  filter: blur(28px) saturate(1.05);
  transform: scale(1.12);
  pointer-events: none;
}
.shop-hero-kenburns .shop-hero-blur::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(42, 28, 18, 0.08), rgba(42, 28, 18, 0.18));
  pointer-events: none;
}
.shop-hero-kenburns .shop-hero-sharp {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  object-position: center;
  display: block;
  /* Soft edge so the sharp layer blends into the blur */
  -webkit-mask-image: radial-gradient(ellipse 92% 88% at 50% 50%, #000 62%, transparent 100%);
  mask-image: radial-gradient(ellipse 92% 88% at 50% 50%, #000 62%, transparent 100%);
}
.shop-hero-kenburns .shop-hero-logo {
  z-index: 2;
}

/* Cigar show — compact shop offer rows */
.offer-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--paper);
}
.offer-row-main {
  flex: 1 1 auto;
  min-width: 0;
}
.offer-shop-name {
  display: block;
  color: var(--ink);
  font-weight: 600;
}
.offer-row-meta {
  margin-top: 2px;
  font-size: .9rem;
}
.offer-qty {
  width: 72px !important;
  max-width: 72px;
  min-width: 72px;
  flex: 0 0 72px;
  margin: 0;
  align-self: center;
}
.offer-row .btn.icon {
  flex: 0 0 auto;
}
@media (max-width: 520px) {
  .offer-row { flex-wrap: wrap; }
  .offer-row-main { flex: 1 1 100%; }
}

/* Public shop — collapsible contact form */
.shop-contact-tile {
  margin: 16px 0;
  padding: 0;
}
.shop-contact-summary {
  display: flex;
  align-items: center;
  gap: 10px;
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 600;
  color: var(--cedar-deep);
}
.shop-contact-summary::-webkit-details-marker { display: none; }
.shop-contact-summary::after {
  content: "▾";
  margin-left: auto;
  color: var(--gold);
  font-size: .85rem;
}
.shop-contact-tile:not([open]) .shop-contact-summary::after {
  content: "▸";
}
.shop-contact-summary-icon {
  display: inline-flex;
  color: var(--cedar-mid);
}
.shop-contact-body {
  padding: 0 16px 16px;
}
.shop-contact-form {
  max-width: 480px;
}
