/* Operational polish shared by storefront and staff workspace. */
:root { --muted:#6d5977; }
@media(prefers-color-scheme:dark) { :root:not([data-theme="light"]) { --muted:#bcacbf; } }
:root[data-theme="dark"] { --muted:#bcacbf; }
html { scroll-padding-top:110px; }
body { min-width:0; }
input,select,textarea { font-size:1rem; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid var(--violet); outline-offset:3px;
}
button { touch-action:manipulation; }
.skip-link { position:fixed;z-index:10000;top:12px;left:12px;transform:translateY(-150%);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:10px; }
.skip-link:focus { transform:none; }
.system-notice { position:relative; z-index:35; padding:12px 20px; text-align:center; font-size:14px; line-height:1.5; background:#fff0ba;color:#5b3d00; }
.system-notice.error { position:sticky;top:0;z-index:35;background:#ffe5e8;color:#802337; }
.system-notice[hidden] { display:none; }
#demoNotice { position:relative;z-index:35; }
body.work-mode .work { top:var(--notice-height,0px); }
.panel { overflow-wrap:anywhere; }
.work-links { flex-wrap:wrap; }
.wtab { min-height:44px; font-size:14px; }
.fl > span,.fl label,.btn-s,.chip,.field > span,.field label,.oc-meta,.oc-log,.wsum,.sub,.roles p { font-size:14px; line-height:1.5; }
.price,.num { font-variant-numeric:tabular-nums; }
.staff-form { display:grid;gap:14px;max-width:480px; }
.staff-form input { width:100%;min-height:44px; }
.staff-form button { min-height:44px; }
.staff-form{max-width:700px}
.staff-form fieldset{display:grid;gap:14px;min-width:0;margin:0;padding:0;border:0}
.staff-form label{display:grid;gap:6px;min-width:0;font-size:13px;font-weight:700}
.staff-form input{min-width:0;max-width:100%;box-sizing:border-box;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-weight:700}
.staff-form input:focus{border-color:var(--brand);outline:3px solid var(--violet);outline-offset:3px}
.staff-confirm{min-width:0;padding:15px;margin-top:14px;border:1px solid var(--pink);border-radius:14px;background:var(--pink-lt,rgba(236,72,153,.08));overflow-wrap:anywhere}
.staff-confirm p{margin:0 0 10px;line-height:1.65;font-size:13px}
.staff-actions{display:flex;flex-wrap:wrap;gap:10px}
.staff-actions .btn-s,.work-lock{min-height:44px;white-space:normal;max-width:100%}
.staff-row>div{min-width:0;overflow-wrap:anywhere}
.staff-row .btn-s{min-height:44px;white-space:normal;max-width:100%}
.work-links .work-lock{border-color:var(--pink);font-weight:800}
.w-hello{overflow-wrap:anywhere;max-width:100%}
@media(max-width:640px){.staff-form{max-width:100%}.staff-row{gap:10px}.staff-row>div{flex:1 1 100%}.staff-actions .btn-s{flex:1 1 140px}.staff-confirm{padding:12px}}
.staff-row { display:flex;align-items:center;gap:14px;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line); }
.staff-row small { display:block;font-size:14px;color:var(--muted); }
.account-orders { max-height:50vh;overflow:auto; }
@media(max-width:640px) {
  .work-top,.wbar,.work-head { flex-wrap:wrap; }
  .work-links .ghost { min-height:44px; }
  .staff-row { align-items:flex-start;flex-wrap:wrap; }
  .panel { padding:16px; }
  .wtabs { scrollbar-width:thin; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;animation-duration:0.01ms!important;transition-duration:0.01ms!important; } }

/* A compact storefront, with the same Momo palette and cat illustration. */
.mobile-browse { display:none; }
.bar .bar-main { gap:12px; padding-block:12px; }
.bar-main > .search { min-width:180px; }
.search input { min-height:48px; border-radius:16px; }
.search:focus-within > svg { color:var(--brand); }
.cart-btn,.acct-btn,.fav-btn { min-height:46px; }
.hero { padding-top:24px; gap:18px; align-items:stretch; }
.hero-main { border-radius:26px; }
.slide { min-height:420px; padding:30px 30px 64px; gap:16px; grid-template-columns:minmax(0,1fr) 170px; }
.slide .hero-copy { min-width:0; }
.hero-main h1 { font-size:clamp(32px,3.3vw,43px); line-height:1.12; margin-block:12px 14px; }
.hero-main p { font-size:14px; line-height:1.65; margin-block:0 18px; }
.hello { line-height:1.6; letter-spacing:.12em; }
.hero-cta { gap:8px; }
.hero-cta .primary,.hero-cta .ghost { min-height:44px; padding:11px 16px; font-size:13px; }
.facts { margin-top:18px; padding-top:14px; }
.fact { padding-inline:12px; font-size:11px; line-height:1.5; }
.fact b { font-size:13px; }
.s-welcome .mascot-wrap { width:170px; }
.s-welcome .mascot { max-width:160px; }
.hs-vis { width:170px; height:175px; }
.hs-bub { width:90px; height:90px; }
.hs-bub.b1 { width:78px; height:78px; }
.hs-bub.b2 { left:36px; width:70px; height:70px; }
.hs-card,.hs-route { width:170px; }
.hs-ctrl { left:30px; right:20px; bottom:16px; }
.hs-dots { gap:5px; align-items:center; }
.hs-dots button { height:28px; width:24px; border-radius:0; background:none!important; }
.hs-dots button[aria-pressed="true"] { width:34px; }
.hs-dots button::before { content:""; position:absolute; inset:11px 0; border-radius:99px; background:color-mix(in srgb,var(--ink) 24%,transparent); }
.hs-dots button i { inset:11px 0; border-radius:99px; }
.hero-main:has(.s-flash.on) .hs-dots button::before,.hero-main:has(.s-member.on) .hs-dots button::before { background:rgba(255,255,255,.3); }
.hs-arrows button { width:40px; height:40px; }
.top { padding:23px 22px 18px; border-radius:26px; }
.top h2 { font-size:21px; margin-bottom:14px; }
.top-row { min-height:60px; padding-block:9px; gap:9px; }
.top-row .nm { font-size:13px; line-height:1.4; }
.top-row .pr { font-size:13px; }
.top-row .nm small { font-size:11px; }
.shop-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; }
.shop-heading h2 { margin-bottom:0; }
.shop-heading p { margin:0 0 4px; color:var(--muted); font-size:13px; }
.toolbar { margin-top:20px; gap:14px; }
.chips .chip { min-height:42px; }
.result-note { margin-block:14px; min-height:22px; font-size:13px; }
.card { border-color:color-mix(in srgb,var(--line) 85%,var(--muted)); }
.card .name { font-size:15px; line-height:1.45; }
.card .size { line-height:1.5; }
.card .plus { background:var(--brand); color:var(--on-brand); }
.card .heart { min-width:40px; min-height:40px; }
.card.sold-out { opacity:.8; }
.card:focus-within { border-color:var(--brand); box-shadow:0 0 0 2px var(--brand-soft); }
.empty { min-height:230px; padding:32px 24px; gap:16px; line-height:1.65; }
.empty button { min-height:44px; }
.empty svg { flex-shrink:0; }
.sug { border-color:color-mix(in srgb,var(--line) 70%,var(--muted)); }
.sg-row { min-height:60px; }
.sg-chip,.sg-clr { min-height:36px; }
.sg-n { white-space:normal; }
.sg-h { font-size:11px; letter-spacing:.07em; }
.sg-all { min-height:48px; }
.drawer-body,.auth,.modal { scrollbar-width:thin; scrollbar-color:var(--muted) transparent; }
.drawer-body { overscroll-behavior:contain; }
.drawer-head { flex-shrink:0; }
.drawer-foot { flex-shrink:0; }
.drawer-foot .ghost { min-height:44px; }
.line2 .l-info { min-width:0; }
.line2 .l-info b { overflow-wrap:anywhere; }
.qty button,.x,.a-x,.pw-eye { min-width:40px; min-height:40px; }
.auth { border:1px solid var(--line); padding:32px 28px 26px; }
.auth > h2 { font-family:var(--f-display); margin:0 44px 8px 0; font-size:28px; }
.auth .a-sub { color:var(--muted); font-size:14px; margin:0 0 24px; line-height:1.6; }
.af { font-size:14px; color:var(--ink); gap:8px; }
.af input { min-height:48px; font-size:16px; }
.auth .a-alt { margin-top:10px; line-height:1.7; }
.auth .linkb { display:inline-flex; align-items:center; min-height:36px; font-size:14px; }
.acct-pop { width:min(350px,calc(100vw - 24px)); padding:18px; max-height:calc(100dvh - 100px); overflow:auto; }
.ap-sec h5 { font-size:12px; letter-spacing:.06em; margin-bottom:10px; }
.ap-ord { grid-template-columns:minmax(0,1fr) auto; padding-block:10px; gap:4px 10px; }
.ap-ord > span { grid-column:1/-1; grid-row:2; }
.ap-ord > b:first-child { overflow-wrap:anywhere; }
.ap-link,.ap-out { min-height:44px; }
.quote-status { padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:var(--bg); color:var(--muted); font-size:13px; line-height:1.6; }
.quote-status:empty { display:none; }
.quote-status[data-state="ready"],.quote-status.ready { border-color:var(--mint); color:var(--mint); background:var(--mint-soft); }
.quote-status[data-state="error"],.quote-status.error,.checkout-change { color:var(--brand); background:var(--brand-soft); border-radius:12px; padding:12px; font-size:13px; line-height:1.6; }
.customer-orders { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.customer-orders .oc { padding:16px; gap:12px; border-radius:18px; }
.customer-orders .oc h3,.customer-orders .oc-head { flex-wrap:wrap; gap:8px; }
.customer-orders .oc-meta { gap:7px; font-size:13px; }
.customer-orders .oc-items { font-size:13px; padding:10px 12px; }
.customer-orders .oc-items > div { display:flex; justify-content:space-between; gap:12px; }
.customer-orders .acts { display:flex; flex-wrap:wrap; gap:8px; }
.customer-orders .btn-s { white-space:normal; min-height:42px; }
.order-details { border-top:1px solid var(--line); padding-top:10px; line-height:1.6; overflow-wrap:anywhere; }
.order-details summary { cursor:pointer; color:var(--brand); padding-block:8px; font-weight:700; }
#workActionErr { margin-bottom:16px; }
.bnav button { min-height:48px; }

@media(min-width:881px) and (max-width:1100px) {
  .hero { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
  .slide { grid-template-columns:minmax(0,1fr) 120px; padding-inline:24px; }
  .s-welcome .mascot-wrap,.hs-vis,.hs-card,.hs-route { width:120px; }
  .s-welcome .mascot { width:120px; }
  .hs-bub { transform:scale(.8); }
}
@media(max-width:880px) {
  .slide { min-height:380px; }
  .top { padding-block:18px; }
  .top-row { min-height:54px; }
  .top h2 { margin-bottom:8px; }
}
@media(max-width:640px) {
  html { scroll-padding-top:148px; }
  .wrap { padding-inline:16px; }
  .bar .bar-main { display:grid; grid-template-columns:minmax(0,1fr) 42px auto; row-gap:10px; column-gap:10px; padding-block:10px; }
  .bar-main .logo { grid-column:1; grid-row:1; min-width:0; gap:8px; }
  .bar-main .logo svg { width:36px; height:34px; }
  .bar-main .logo-name { display:block!important; white-space:nowrap; font-size:18px; }
  .bar-main .fav-btn { display:none; }
  .bar-main .acct { grid-column:2; grid-row:1; }
  .bar-main .acct-btn { width:42px; min-height:42px; }
  .bar-main .cart-btn { grid-column:3; grid-row:1; min-height:42px; padding:8px 12px; gap:6px; }
  .bar-main .search { grid-column:1/-1; grid-row:2; min-width:0; order:unset; }
  .bar-main .search input { min-height:46px; border-radius:14px; padding-block:10px; font-size:16px; }
  .s-clear { width:36px; height:36px; }
  .mobile-browse { display:flex; gap:8px; overflow:auto; padding-block:14px 2px; scrollbar-width:none; }
  .mobile-browse::-webkit-scrollbar { display:none; }
  .mobile-browse button { display:inline-flex; align-items:center; gap:7px; flex-shrink:0; min-height:40px; padding:8px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); font-weight:700; font-size:12px; }
  .mobile-browse button:active,.mobile-browse button[aria-pressed="true"] { background:var(--brand-soft); border-color:var(--brand); color:var(--brand); }
  .mobile-browse button span { font-size:18px; }
  .hero { padding-top:14px; gap:14px; }
  .hero-main,.top { border-radius:22px; }
  .slide { min-height:350px; padding:24px 20px 60px; grid-template-columns:minmax(0,1fr); gap:12px; }
  .hero-main h1 { font-size:32px; line-height:1.13; margin-block:12px; }
  .hero-main p { font-size:13px; line-height:1.65; margin-bottom:16px; max-width:42ch; }
  .hello { font-size:10px; letter-spacing:.09em; }
  .s-welcome .hello { padding-right:50px; }
  .s-welcome .mascot-wrap { width:60px; top:16px; right:12px; }
  .s-welcome .mascot { width:56px; }
  .s-welcome .hero-copy,.s-flash .hero-copy,.s-member .hero-copy { padding-right:0; }
  .hero-cta { flex-wrap:wrap; gap:8px; }
  .hero-cta .primary,.hero-cta .ghost { min-height:42px; padding:10px 12px; font-size:12px; }
  .facts { padding-top:12px; margin-top:16px; }
  .fact { font-size:10px; padding-inline:8px; }
  .fact b { font-size:12px; }
  .slide .hs-vis { margin-top:0; gap:10px; }
  .hs-bub,.hs-bub.b1,.hs-bub.b2 { width:56px; height:56px; }
  .hs-bub span,.hs-bub.b1 span,.hs-bub.b2 span { font-size:27px; }
  .hs-card { width:150px; padding:10px 12px; }
  .hs-ctrl { left:20px; right:16px; bottom:12px; }
  .hs-arrows button { width:36px; height:36px; }
  .top { padding:18px 16px 12px; }
  .top h2 { font-size:19px; }
  .top-row { min-height:52px; grid-template-columns:24px 40px minmax(0,1fr) auto; }
  .top-row .mini-tile { width:40px; height:40px; }
  .top-row .nm { font-size:12px; }
  .top-row .pr { font-size:12px; }
  .perks-strip { margin-top:18px; }
  .shop-heading { display:block; }
  .shop-heading p { margin-top:8px; font-size:12px; }
  .toolbar { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
  .chips { flex-wrap:nowrap; overflow-x:auto; padding:3px 0 7px; scrollbar-width:thin; }
  .chips .chip { flex-shrink:0; font-size:12px; padding-inline:12px; min-height:40px; }
  .seg { align-self:flex-start; max-width:100%; }
  .seg button { font-size:12px; min-height:38px; padding-inline:10px; white-space:nowrap; }
  .grid { gap:12px; }
  .card { border-radius:18px; padding:6px; }
  .card .tile { border-radius:13px; }
  .card .body { padding:10px 7px 8px; }
  .card .name { font-size:13px; line-height:1.45; min-height:2.9em; }
  .card .size { font-size:11px; }
  .card .pr b { font-size:17px; }
  .card .pr s { font-size:11px; }
  .card .buy-row { flex-wrap:wrap; gap:8px 4px; }
  .card .plus { width:40px; height:40px; border-radius:12px; }
  .card .slot:has(.mstep) { flex-basis:100%; display:flex; justify-content:flex-end; }
  .card .mstep { min-height:40px; }
  .card .mstep button { min-width:36px; min-height:36px; }
  .card .save-chip,.card .low-chip { font-size:11px; }
  .sg-row { grid-template-columns:36px minmax(0,1fr) auto; gap:8px; }
  .sg-row .mini-tile { width:36px; height:36px; }
  .sg-n { font-size:13px; }
  .sg-p { font-size:12px; }
  .drawer { max-height:calc(100dvh - 18px); height:calc(100dvh - 18px); }
  .drawer-body { padding:16px; }
  .drawer-foot { padding:12px 16px; }
  .line2 { grid-template-columns:48px minmax(0,1fr) auto; gap:8px; }
  .line2 .mini-tile { width:48px; height:48px; }
  .line2 .l-info b { font-size:12px; }
  .line2 .l-info small,.line2 .l-price { font-size:11px; }
  .line2 .qty { gap:0; }
  .line2 .qty button { min-width:32px; min-height:32px; }
  .auth { padding:28px 20px calc(24px + env(safe-area-inset-bottom,0px)); max-height:calc(100dvh - 18px); }
  .auth > h2 { font-size:26px; }
  .acct-pop { max-height:calc(100dvh - 100px); }
  .quote-status,.checkout-change { font-size:12px; }
  .customer-orders .oc { padding:14px; }
  .customer-orders .oc-items > div { flex-wrap:wrap; gap:3px 10px; }
  .bnav { padding-top:5px; border-radius:18px 18px 0 0; }
  .bnav button { font-size:10px; color:var(--muted); }
  .bnav button:hover,.bnav button:focus-visible { color:var(--brand); background:var(--brand-soft); }
  .toast { white-space:normal; text-align:center; border-radius:16px; line-height:1.5; }
}
@media(max-width:360px) {
  .bar-main .logo-name { font-size:16px; }
  .bar-main .logo svg { width:32px; height:30px; }
  .bar .bar-main { column-gap:8px; }
  .bar-main .cart-btn { padding-inline:10px; }
  .slide { padding-inline:16px; min-height:350px; }
  .hero-main h1 { font-size:29px; }
  .hero-cta .primary,.hero-cta .ghost { padding-inline:10px; font-size:11px; }
  .facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .fact { padding-inline:7px; font-size:9px; }
  .fact b { font-size:11px; }
  .fact:nth-child(3) { grid-column:auto; border-left:1px solid var(--line); padding-left:7px; margin-top:0; }
  .top-row { grid-template-columns:20px 34px minmax(0,1fr) auto; gap:6px; }
  .top-row .mini-tile { width:34px; height:34px; }
  .top-row .nm,.top-row .pr { font-size:11px; }
  .top-row .nm small { font-size:10px; }
  .seg button { font-size:11px; padding-inline:8px; }
  .grid { gap:9px; }
  .card .pr b { font-size:15px; }
  .card .plus { width:36px; height:38px; }
  .card .badge { font-size:9px; padding-inline:6px; }
  .card .heart { min-width:34px; min-height:34px; }
  .line2 { grid-template-columns:40px minmax(0,1fr) auto; }
  .line2 .mini-tile { width:40px; height:40px; }
}

/* Real product photos and customer experiences share the product sheet. */
.tile-view { width:100%; height:100%; min-height:inherit; padding:0; border:0; background:transparent; color:inherit; display:grid; place-items:center; position:absolute; inset:0; overflow:hidden; border-radius:inherit; }
.tile-view:focus-visible { outline-offset:-5px; z-index:3; }
.tile .badges { pointer-events:none; }
.product-gallery { min-width:0; display:flex; flex-direction:column; gap:10px; }
.gallery-stage { position:relative; min-width:0; }
.m-media .gallery-main { width:100%; min-height:320px; height:340px; flex:none; border:1px solid var(--line); padding:0; cursor:zoom-in; }
.gallery-main { touch-action:pan-y; }
.gallery-main .photo { object-fit:contain; padding:12px; background:var(--bg); }
.gallery-main:hover .photo { transform:scale(1.025); }
.gallery-zoom { position:absolute; z-index:2; left:12px; bottom:12px; padding:8px 12px; border-radius:10px; background:var(--surface); color:var(--ink); font-weight:700; font-size:12px; box-shadow:0 4px 18px #0002; }
.gallery-arrow { position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); font-size:30px; line-height:1; display:grid; place-items:center; box-shadow:0 3px 12px #0002; }
.gallery-prev { left:10px; }
.gallery-next { right:10px; }
.gallery-count { position:absolute; z-index:2; right:12px; bottom:12px; padding:7px 10px; border-radius:10px; background:var(--surface); color:var(--ink); font-size:12px; font-weight:700; box-shadow:0 4px 18px #0002; }
.gallery-hint { margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.gallery-thumbs { display:flex; gap:8px; overflow-x:auto; padding:3px 2px 7px; scrollbar-width:thin; }
.gallery-thumbs button { width:64px; height:64px; flex-shrink:0; border:2px solid var(--line); border-radius:12px; padding:4px; background:var(--bg); opacity:.76; transition:border-color .2s,opacity .2s; }
.gallery-thumbs button[aria-pressed="true"] { border-color:var(--brand); opacity:1; box-shadow:0 0 0 2px var(--brand-soft); }
.gallery-thumbs button:hover { opacity:1; }
.gallery-thumbs img { width:100%; height:100%; display:block; object-fit:contain; border-radius:7px; }
.m-media .gallery-empty { min-height:300px; flex:none; position:relative; gap:0; align-content:center; }
.gallery-empty .emo { animation:none; }
.gallery-empty p { z-index:1; color:var(--muted); font-size:13px; margin:18px 0 0; }
.product-description p { margin:0 0 12px; white-space:normal; line-height:1.7; overflow-wrap:anywhere; }
.product-description p:last-child { margin-bottom:0; }
.lightbox { padding:70px 64px 66px; }
.lightbox figure { min-width:0; }
.lightbox img { max-width:min(calc(100vw - 128px),900px); max-height:calc(100dvh - 168px); }
.lightbox figcaption { max-width:70ch; overflow-wrap:anywhere; line-height:1.5; }
.lb-zoom { position:absolute; top:14px; left:14px; z-index:1; min-height:44px; padding:8px 14px; border:1px solid #fff4; border-radius:12px; background:#24182be8; color:#fff; font-size:13px; font-weight:700; }
.lightbox.zoomed figure { display:block; width:min(calc(100vw - 128px),900px); height:calc(100dvh - 168px); overflow:auto; overscroll-behavior:contain; }
.lightbox.zoomed img { display:block; width:200%; max-width:none; max-height:none; height:auto; }
.lightbox.zoomed figcaption { padding:12px; }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:52px; padding:0; border:1px solid #fff4; border-radius:14px; background:#24182bc9; color:#fff; font-size:38px; line-height:1; display:grid; place-items:center; }
.lb-nav:hover { background:#6c4d77; }
.lb-prev { left:12px; }
.lb-next { right:12px; }
.lb-count { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); color:#fff; font-size:13px; background:#24182bc9; padding:8px 14px; border:1px solid #fff3; border-radius:20px; }
.product-edit-details { grid-column:1/-1; flex:1 1 100%; min-width:0; border-top:1px solid var(--line); margin-top:10px; padding-top:10px; }
.product-edit-details summary { cursor:pointer; color:var(--brand); font-weight:700; padding:8px 0; line-height:1.6; }
.product-edit-details > label { display:flex; flex-direction:column; gap:8px; padding-block:10px; color:var(--muted); font-size:13px; }
.product-edit-details textarea { width:100%; min-height:110px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--bg); color:var(--ink); resize:vertical; }
.admin-gallery { display:flex; flex-wrap:wrap; gap:12px; margin:8px 0 14px; }
.admin-gallery-item { width:112px; display:flex; flex-direction:column; align-items:stretch; gap:6px; }
.admin-gallery-preview { width:112px; height:108px; border:1px solid var(--line); border-radius:14px; background:var(--bg); padding:6px; cursor:zoom-in; }
.admin-gallery-preview img { width:100%; height:100%; object-fit:contain; border-radius:9px; }
.admin-gallery-item .btn-s { min-height:34px; padding:5px 7px; font-size:12px; white-space:normal; }
.admin-gallery-item .pill { text-align:center; padding:7px 5px; }

.product-reviews { grid-column:1/-1; min-width:0; border-top:1px solid var(--line); padding:24px; margin-top:4px; }
.m-info .product-reviews { padding:18px 0 0; }
.reviews-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.reviews-eyebrow { color:var(--muted); margin:0 0 6px; font-size:12px; line-height:1.5; }
.reviews-heading h3 { font-family:var(--f-display); font-size:24px; font-weight:600; margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.reviews-total { min-width:28px; padding:5px 8px; border-radius:10px; font:700 12px var(--f-body); color:var(--brand); background:var(--brand-soft); text-align:center; }
.reviews-summary { text-align:right; flex-shrink:0; padding-top:4px; }
.reviews-summary b { display:block; font-size:24px; color:var(--ink); line-height:1.3; }
.reviews-summary b span { color:var(--gold-ink); font-size:19px; }
.reviews-summary small { display:block; color:var(--muted); font-size:12px; line-height:1.6; }
.reviews-public-note { color:var(--muted); font-size:12px; line-height:1.65; margin:14px 0 18px; max-width:80ch; }
.reviews-write-link { display:inline-flex; align-items:center; min-height:44px; padding:9px 14px; margin:0 0 16px; border:1px solid var(--brand); border-radius:12px; background:var(--surface); color:var(--brand); font-size:13px; font-weight:700; }
.reviews-write-link:hover { background:var(--brand-soft); }
.reviews-list { display:grid; gap:12px; }
.review-card { padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface); min-width:0; }
.review-card-head { display:flex; align-items:center; gap:10px; }
.review-avatar { width:38px; height:38px; flex-shrink:0; display:grid; place-items:center; border-radius:12px; background:var(--brand-soft); color:var(--brand); font-size:16px; font-weight:800; }
.review-author { min-width:0; }
.review-author b { font-size:13px; overflow-wrap:anywhere; }
.review-author small { display:block; color:var(--muted); font-size:11px; line-height:1.6; }
.review-stars { margin-left:auto; font-size:17px; letter-spacing:1px; color:var(--gold-ink); flex-shrink:0; }
.review-stars-empty { color:var(--muted); opacity:.45; }
.review-verified { display:inline-flex; align-items:center; gap:4px; color:var(--mint); background:var(--mint-soft); border-radius:8px; padding:4px 7px; margin:10px 0 0; font-size:11px; font-weight:700; }
.review-text { margin:12px 0 0; color:var(--ink); line-height:1.7; font-size:14px; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.review-confirm-text { align-self:center; font-size:12px; color:var(--ink); }
.review-actions button,.review-cancel { border:1px solid var(--line); background:var(--surface); color:var(--muted); border-radius:10px; min-height:36px; padding:7px 10px; font-size:12px; font-weight:700; }
.review-actions button:hover { color:var(--brand); border-color:var(--brand); }
.review-actions .review-delete { color:var(--brand); }
.reviews-empty { border:1px dashed var(--line); background:var(--bg); border-radius:16px; padding:26px 18px; text-align:center; color:var(--muted); line-height:1.65; }
.reviews-empty > span { display:block; color:var(--brand); font-size:30px; margin-bottom:8px; }
.reviews-empty b { display:block; color:var(--ink); font-size:14px; }
.reviews-empty p { font-size:13px; margin:6px 0 0; }
.reviews-message { padding:12px 14px; border-radius:12px; margin:12px 0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.reviews-error { color:var(--brand); background:var(--brand-soft); border:1px solid var(--brand); }
.reviews-success { color:var(--mint); background:var(--mint-soft); border:1px solid var(--mint); }
.reviews-more { display:block; width:100%; min-height:44px; border:1px solid var(--line); color:var(--ink); background:var(--bg); font-size:13px; font-weight:700; padding:10px 14px; border-radius:12px; margin-top:12px; }
.reviews-more:hover { border-color:var(--brand); color:var(--brand); }
.review-compose { padding-top:18px; }
.review-form { padding:18px; border-radius:18px; border:1px solid var(--line); background:var(--bg); }
.review-form h4 { margin:0 0 6px; color:var(--ink); font-size:16px; }
.review-form-hint { color:var(--muted); font-size:12px; line-height:1.6; margin:0 0 16px; }
.review-form label { display:block; margin-bottom:7px; color:var(--ink); font-size:13px; font-weight:700; }
.review-form label span { color:var(--muted); font-weight:400; font-size:12px; }
.review-form textarea,.review-form select { display:block; width:100%; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); padding:12px; font:inherit; font-size:14px; }
.review-form textarea { min-height:110px; resize:vertical; line-height:1.65; }
.review-form textarea::placeholder { color:var(--muted); }
.review-form select { min-height:44px; }
.review-length { display:block; color:var(--muted); font-size:11px; margin-top:6px; text-align:right; }
.review-form-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:16px; }
.review-rating-field { flex:1 1 190px; max-width:250px; }
.review-form-buttons { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.review-submit { border:1px solid var(--brand); border-radius:12px; background:var(--brand); color:var(--on-brand); padding:11px 14px; min-height:44px; font-size:13px; font-weight:800; }
.review-submit:hover { filter:brightness(1.08); }
.review-cancel { min-height:44px; }
.review-auth-note { padding:20px; border:1px solid var(--line); border-radius:18px; background:var(--brand-soft); color:var(--ink); }
.review-auth-note b { display:block; font-family:var(--f-display); font-size:20px; font-weight:600; }
.review-auth-note p { color:var(--muted); font-size:13px; line-height:1.6; margin:8px 0 14px; }
.product-reviews button:disabled,.product-reviews textarea:disabled,.product-reviews select:disabled { opacity:.6; cursor:wait; }

@media(max-width:640px) {
  .m-media { padding:12px 12px 6px; }
  .m-media .gallery-main { height:260px; min-height:240px; }
  .gallery-main .photo { padding:10px; }
  .m-media .gallery-empty { min-height:220px; }
  .gallery-thumbs button { width:58px; height:58px; }
  .gallery-zoom { font-size:11px; bottom:10px; left:10px; }
  .m-perks { gap:6px; }
  .m-perks span { font-size:10px; min-width:0; }
  .lightbox { padding:66px 14px 100px; }
  .lightbox img { max-width:calc(100vw - 28px); max-height:calc(100dvh - 200px); }
  .lightbox.zoomed figure { width:calc(100vw - 28px); height:calc(100dvh - 200px); }
  .lb-nav { top:auto; bottom:20px; transform:none; width:48px; height:48px; }
  .lb-prev { left:calc(50% - 106px); }
  .lb-next { right:calc(50% - 106px); }
  .lb-count { bottom:29px; }
  .product-edit-details textarea { font-size:16px; }
  .admin-gallery { gap:10px; }
  .admin-gallery-item,.admin-gallery-preview { width:100px; }
  .admin-gallery-preview { height:94px; }
  .product-reviews { padding:22px 18px calc(24px + env(safe-area-inset-bottom,0px)); }
  .reviews-heading { gap:10px; }
  .reviews-heading h3 { font-size:21px; }
  .reviews-summary b { font-size:21px; }
  .reviews-summary small { font-size:10px; }
  .reviews-public-note { font-size:11px; }
  .review-card { padding:14px; }
  .review-card-head { flex-wrap:wrap; gap:8px; }
  .review-stars { font-size:14px; letter-spacing:.5px; }
  .review-text { font-size:13px; }
  .review-actions button { min-height:40px; }
  .review-form { padding:16px 14px; }
  .review-form textarea,.review-form select { font-size:16px; }
  .review-form-bottom { align-items:stretch; flex-direction:column; gap:14px; }
  .review-rating-field { flex:none; max-width:none; }
  .review-form-buttons { justify-content:flex-end; }
  .review-submit { flex:1; }
  .review-auth-note { padding:18px 16px; }
  .review-auth-note .review-submit { width:100%; }
}
@media(max-width:360px) {
  .m-media .gallery-main { height:230px; min-height:220px; }
  .m-buy { grid-template-columns:106px minmax(0,1fr); gap:8px; }
  .m-buy .qty { gap:0; padding:3px; }
  .m-buy .qty button { width:40px; height:40px; min-width:40px; min-height:40px; }
  .m-buy .primary { min-width:0; min-height:48px; padding:10px 9px; font-size:13px; line-height:1.4; }
  .m-buy .primary .num { white-space:nowrap; }
  .reviews-heading { flex-direction:column; }
  .reviews-summary { text-align:left; padding-top:0; }
  .reviews-summary b,.reviews-summary small { display:inline-block; margin-right:7px; }
  .review-card { padding:12px; }
  .review-stars { flex-basis:100%; margin-left:46px; }
}

/* Configured public support, launch checklist and reserved-order payment. */
.store-launch-notice { color:var(--ink); background:var(--brand-soft); border-bottom:1px solid var(--line); font-size:13px; }
.store-lines { white-space:pre-wrap; overflow-wrap:anywhere; }
.store-contact { display:flex; flex-direction:column; gap:9px; overflow-wrap:anywhere; }
.store-contact a { color:inherit; text-decoration:underline; text-underline-offset:3px; line-height:1.7; }
.store-contact p { margin:0; }
.store-hours-title { margin-top:22px!important; }
.store-policy-links { position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:10px 18px; padding-block:14px 24px; }
.store-policy-links button { min-height:40px; border:0; background:transparent; color:inherit; padding:7px 0; font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.store-policy-links button:disabled { opacity:.5; text-decoration:none; }
.policy-dialog-wrap { position:fixed; inset:0; z-index:95; display:grid; place-items:center; padding:22px; }
.policy-dialog-wrap[hidden] { display:none; }
.policy-backdrop { position:absolute; inset:0; background:var(--overlay); backdrop-filter:blur(5px); }
.policy-dialog { position:relative; width:min(700px,100%); max-height:calc(100dvh - 44px); overflow:auto; overscroll-behavior:contain; padding:30px; border:1px solid var(--line); border-radius:24px; background:var(--surface); color:var(--ink); box-shadow:var(--shadow-lift); }
.policy-dialog > .x { position:absolute; top:12px; right:12px; }
.policy-store-name { color:var(--brand); font-size:12px; font-weight:700; margin:0 48px 10px 0; }
.policy-dialog h2 { font-family:var(--f-display); font-size:28px; line-height:1.3; margin:0 42px 22px 0; }
.policy-body { font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.policy-body p { margin:0 0 18px; }
.policy-done { min-height:44px; margin-top:10px; padding:10px 20px; }
.launch-intro { max-width:800px; margin-bottom:24px; }
.launch-intro h2 { font-family:var(--f-display); font-size:28px; margin:0 0 8px; }
.launch-intro p,.launch-hint { color:var(--muted); font-size:13px; line-height:1.7; }
.launch-layout { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(0,1.5fr); gap:24px; align-items:start; }
.launch-readiness { border:1px solid var(--line); border-radius:20px; padding:18px; background:var(--surface); }
.launch-readiness.is-ready { border-color:var(--mint); }
.launch-readiness-title { display:flex; align-items:center; flex-wrap:wrap; gap:10px; justify-content:space-between; }
.launch-readiness-title h3 { font-size:16px; margin:0; }
.launch-checks { list-style:none; padding:0; margin:14px 0; }
.launch-checks li { display:grid; grid-template-columns:24px minmax(0,1fr); column-gap:8px; row-gap:3px; padding:12px 0; border-top:1px solid var(--line); }
.launch-check-icon { width:22px; height:22px; border-radius:8px; display:grid; place-items:center; color:var(--brand); background:var(--brand-soft); font-weight:800; }
.is-complete .launch-check-icon { color:var(--mint); background:var(--mint-soft); }
.launch-checks b { font-size:13px; }
.launch-checks p { font-size:12px; line-height:1.65; color:var(--muted); margin:4px 0 0; overflow-wrap:anywhere; }
.launch-checks small { grid-column:2; font-size:10px; color:var(--brand); }
.launch-checks .is-complete small { color:var(--mint); }
.launch-settings-form { display:flex; flex-direction:column; gap:20px; min-width:0; }
.launch-settings-form fieldset { border:1px solid var(--line); border-radius:18px; padding:16px; margin:0; background:var(--surface); min-width:0; }
.launch-settings-form legend { padding:0 8px; color:var(--ink); font-size:16px; font-weight:800; }
.launch-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.launch-field { display:flex; flex-direction:column; gap:7px; margin:0 0 14px; min-width:0; color:var(--ink); font-size:13px; font-weight:700; }
.launch-fields .launch-field { margin-bottom:0; }
.launch-wide { grid-column:1/-1; }
.launch-field input,.launch-field textarea { width:100%; min-width:0; border:1px solid var(--line); border-radius:12px; background:var(--bg); color:var(--ink); font:inherit; font-size:14px; font-weight:500; padding:11px 12px; min-height:44px; }
.launch-field textarea { resize:vertical; line-height:1.7; }
.launch-field input::placeholder,.launch-field textarea::placeholder { color:var(--muted); }
.launch-districts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:18px; }
.launch-districts label,.launch-verification { display:flex; align-items:center; gap:9px; min-height:42px; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:var(--bg); color:var(--ink); font-size:12px; }
.launch-districts input,.launch-sales input,.launch-verification input { width:18px; height:18px; flex-shrink:0; accent-color:var(--brand); }
.launch-sales { border:1px solid var(--line); border-radius:16px; background:var(--brand-soft); padding:16px; }
.launch-sales label { display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
.launch-sales input { margin-top:3px; }
.launch-sales b { display:block; font-size:15px; }
.launch-sales small { display:block; margin-top:6px; line-height:1.7; font-size:12px; color:var(--muted); }
.launch-save-actions { display:flex; flex-wrap:wrap; gap:10px; }
.launch-save-actions > button { min-height:46px; padding:12px 18px; }
.launch-error,.launch-success { padding:13px 16px; border-radius:14px; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.launch-error { border:1px solid var(--brand); background:var(--brand-soft); color:var(--brand); }
.launch-success { border:1px solid var(--mint); background:var(--mint-soft); color:var(--mint); }
.launch-recovery { margin-top:28px; max-width:760px; padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.launch-recovery h3 { margin:0 0 10px; font-size:17px; }
.launch-recovery > p,.launch-reset-result p { color:var(--muted); font-size:12px; line-height:1.7; }
.launch-verification { margin:0 0 14px; font-size:13px; min-height:46px; }
.launch-reset-result { margin-top:18px; padding:16px; border-radius:14px; background:var(--bg); border:1px solid var(--line); }
.launch-reset-result small { display:block; color:var(--mint); margin-top:10px; }
.reset-link { font-family:ui-monospace,Consolas,monospace!important; font-size:12px!important; }
.reservation-payment { display:flex; flex-direction:column; gap:16px; min-width:0; }
.reservation-summary { padding:16px; border:1px solid var(--line); border-radius:18px; background:var(--surface); overflow-wrap:anywhere; }
.reservation-summary h3,.reservation-summary h4 { margin:0 0 10px; }
.reservation-summary p { line-height:1.7; font-size:13px; }
.reservation-deadline { padding:14px 16px; border:1px solid var(--mint); border-radius:14px; color:var(--mint); background:var(--mint-soft); line-height:1.7; font-size:13px; }
.reservation-deadline b,.reservation-deadline .num { font-variant-numeric:tabular-nums; }
.reservation-expired { padding:14px 16px; border:1px solid var(--brand); border-radius:14px; color:var(--brand); background:var(--brand-soft); line-height:1.7; font-size:13px; }
#paymentOrderErr { padding:12px 14px; border-radius:12px; background:var(--brand-soft); color:var(--brand); font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
#paymentOrderErr:empty { display:none; }
#submitOrderProof,#reserveOrder { min-height:48px; white-space:normal; line-height:1.5; }
.reservation-payment .acts { display:flex; flex-wrap:wrap; gap:10px; }
.checkout-terms { display:flex; flex-direction:column; gap:10px; align-items:flex-start; color:var(--muted); font-size:13px; line-height:1.7; }
.checkout-terms > label { display:flex; gap:9px; align-items:flex-start; }
.checkout-terms .acts { display:flex; flex-wrap:wrap; gap:6px 12px; }
.checkout-terms .acts button { min-height:40px; }
.checkout-terms input { width:18px; height:18px; flex-shrink:0; margin-top:3px; accent-color:var(--brand); }
.checkout-terms button,[data-policy].policy-link { color:var(--brand); border:0; background:transparent; text-decoration:underline; text-underline-offset:3px; padding:0; line-height:inherit; font-size:inherit; }
.account-password { padding:18px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.account-password .field input { min-height:46px; }
@media(max-width:880px) {
  .launch-layout { grid-template-columns:minmax(0,1fr); }
  .launch-readiness { padding:18px; }
  .launch-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; }
}
@media(max-width:640px) {
  .store-policy-links { gap:5px 16px; padding-block:8px 20px; }
  .store-policy-links button { font-size:11px; }
  .policy-dialog-wrap { padding:10px; }
  .policy-dialog { padding:26px 20px 20px; max-height:calc(100dvh - 20px); border-radius:22px; }
  .policy-dialog h2 { font-size:23px; margin-right:26px; }
  .policy-body { font-size:13px; }
  .policy-done { width:100%; }
  .launch-intro h2 { font-size:24px; }
  .launch-layout { gap:20px; }
  .launch-checks { grid-template-columns:minmax(0,1fr); }
  .launch-fields { grid-template-columns:minmax(0,1fr); }
  .launch-settings-form fieldset { padding:14px; }
  .launch-field input,.launch-field textarea { font-size:16px; }
  .launch-districts { gap:7px; }
  .launch-districts label { padding:7px 8px; font-size:11px; }
  .launch-save-actions { flex-direction:column; }
  .launch-save-actions > button { width:100%; }
  .launch-recovery { padding:18px 14px; }
  .launch-reset-result { padding:12px; }
  .reservation-summary,.reservation-deadline,.reservation-expired { padding:14px; }
  .reservation-payment .acts > button { flex:1; min-height:44px; }
}
@media(max-width:360px) {
  .launch-districts { grid-template-columns:minmax(0,1fr); }
  .launch-readiness-title h3 { font-size:15px; }
  .policy-dialog { padding-inline:16px; }
}

/* A plain Facebook link loads no external SDK or tracking widget. */
.store-support { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; min-width:0; }
.store-support > a { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.catalog-empty .store-support,.empty-cart .store-support { justify-content:center; }
.store-support .store-facebook-link,.store-contact .store-facebook-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; max-width:100%; width:fit-content; margin-block:6px; padding:10px 14px; border:1px solid transparent; border-radius:12px; background:#0866d9; color:#fff; font-size:13px; font-weight:700; line-height:1.5; text-decoration:none; overflow-wrap:anywhere; }
.store-support .store-facebook-link:hover,.store-contact .store-facebook-link:hover { background:#064eab; color:#fff; text-decoration:underline; text-underline-offset:3px; }
.store-facebook-link:focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
@media(max-width:640px) { .ft-grid > .ft-col:has(.store-contact) { grid-column:1/-1; } }

/* Phone recovery uses the same compact form layout as registration. */
.sms-recovery { min-width:0; display:flex; flex-direction:column; gap:14px; }
.sms-recovery form,.sms-recovery fieldset { width:100%; min-width:0; min-inline-size:0; }
.sms-recovery fieldset { display:flex; flex-direction:column; gap:14px; border:0; padding:0; margin:0; }
.sms-recovery p,.sms-recovery .linkb { overflow-wrap:anywhere; line-height:1.6; }
.sms-recovery .linkb { align-self:flex-start; min-height:44px; text-align:left; }
.sms-recovery input { width:100%; min-width:0; }
@media(max-width:640px) { .sms-recovery input { font-size:16px; } }

/* Category management and product creation shortcuts. */
.ps-grid > .ps-sec:only-child { grid-column:1/-1; }
.admin-shortcuts,.admin-quick-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.admin-shortcuts .btn-s,.admin-quick-actions .btn-s { min-height:40px; white-space:normal; text-align:center; }
.admin-quick-actions { margin:0 0 20px; }
.new-product-form { min-width:0; }
.new-product-form form,.new-product-form fieldset { min-width:0; min-inline-size:0; width:100%; max-width:100%; }
.new-product-form fieldset { margin:0; }
.new-product-form label,.new-product-form input.wide,.new-product-form textarea.wide { min-width:0; max-width:100%; }
.new-product-note { color:var(--muted); font-size:13px; line-height:1.7; margin:8px 0 16px; }
.new-product-form .inl label { min-width:0; flex:1 1 170px; }
.new-product-form .inl input,.new-product-form .inl select,.new-product-form .inl input.wide { width:100%; min-height:44px; }
.new-product-form textarea { width:100%; min-width:0; border:1px solid var(--line); border-radius:12px; background:var(--bg); color:var(--ink); padding:12px; font:inherit; line-height:1.6; resize:vertical; }
.new-product-form textarea:focus { outline:2px solid var(--brand); outline-offset:2px; }
.r-prod { grid-template-columns:minmax(0,1.6fr) minmax(100px,.85fr) repeat(3,minmax(0,.65fr)) minmax(0,.9fr) auto; }
.category-intro { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.category-intro > div:first-child { flex:1 1 300px; min-width:0; }
.category-intro h2 { margin:0 0 8px; font-size:28px; }
.category-intro p { margin:0; color:var(--muted); font-size:13px; line-height:1.7; }
.category-layout { display:grid; grid-template-columns:minmax(250px,.75fr) minmax(0,1.3fr); gap:24px; align-items:start; }
.category-editor,.category-list,.category-archive { min-width:0; padding:20px; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.category-editor h3,.category-list h3,.category-archive h3 { margin:0 0 14px; }
.category-list h3 { display:flex; gap:10px; flex-wrap:wrap; justify-content:space-between; }
.category-list h3 small { font-size:12px; font-weight:600; color:var(--muted); }
.category-edit-form fieldset { display:flex; flex-direction:column; gap:14px; padding:0; border:0; margin:0; min-width:0; }
.category-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
.category-field { display:flex; flex-direction:column; gap:7px; min-width:0; color:var(--ink); font-size:12px; font-weight:700; }
.category-field input,.category-field select { width:100%; min-width:0; min-height:44px; border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:var(--bg); color:var(--ink); font:inherit; font-size:14px; }
.category-field input:focus,.category-field select:focus { outline:2px solid var(--brand); outline-offset:2px; }
.category-hint { margin:0 0 14px; font-size:12px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.category-actions,.category-row-actions { display:flex; flex-wrap:wrap; gap:8px; }
.category-actions .btn-s,.category-row-actions .btn-s { min-height:44px; white-space:normal; line-height:1.5; }
.category-row { padding:14px 0; border-top:1px solid var(--line); }
.category-row-title { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:start; gap:10px; margin-bottom:12px; }
.category-icon { width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:var(--bg); font-size:21px; overflow:hidden; }
.category-row-title b { display:block; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.category-row-title small { display:block; font-size:11px; line-height:1.7; color:var(--muted); }
.category-row-title .pill { font-size:10px; white-space:normal; }
.category-history { margin-top:14px; border-top:1px solid var(--line); padding-top:16px; }
.category-history summary { cursor:pointer; padding:6px 0 14px; font-size:13px; font-weight:700; }
.category-archive { margin-bottom:24px; border-color:var(--brand); background:var(--brand-soft); }
.category-archive p { font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.category-archive-form { display:flex; flex-direction:column; align-items:stretch; gap:14px; }
.category-danger { color:var(--brand); border-color:var(--brand); }
.category-error,.category-success { padding:14px 16px; border-radius:14px; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.category-error { color:var(--brand); background:var(--brand-soft); }
.category-success { color:var(--mint); background:var(--mint-soft); }
@media(max-width:880px) {
  .category-layout { grid-template-columns:minmax(0,1fr); gap:18px; }
  .r-prod { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .r-prod > .pr-id,.r-prod > .acts { grid-column:1/-1; }
}
@media(max-width:640px) {
  /* The tall admin header must scroll away so it cannot cover form controls. */
  body.work-mode .work-bar { position:relative; top:auto; z-index:auto; }
  body.work-mode .work { scroll-padding-block:16px 24px; }
  .work-body button,.work-body input,.work-body select,.work-body textarea { scroll-margin-block:16px; }
  .work-links { width:100%; justify-content:flex-start; gap:6px; }
  .admin-shortcuts { flex:1 1 100%; width:100%; }
  .admin-shortcuts .btn-s,.admin-quick-actions .btn-s { flex:1 1 130px; font-size:11px; min-height:44px; }
  .category-intro h2 { font-size:24px; }
  .category-intro .category-actions { width:100%; }
  .category-intro .category-actions > button { flex:1; }
  .category-editor,.category-list,.category-archive { padding:16px; }
  .category-field input,.category-field select { font-size:16px; }
  .new-product-form .inl { gap:12px; }
  .new-product-form .inl label { flex:1 1 130px; }
  .new-product-form .inl input,.new-product-form .inl select,.new-product-form textarea { font-size:16px; }
  .new-product-form .acts > button { min-height:44px; white-space:normal; }
  .category-row-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .category-row-actions .btn-s { padding-inline:9px; font-size:11px; }
  .category-archive .category-actions { flex-direction:column; }
  .category-archive .category-actions > button { width:100%; }
}
@media(max-width:360px) {
  .new-product-form .inl label { flex-basis:100%; }
  .category-intro .category-actions { flex-direction:column; }
  .category-intro .category-actions > button { width:100%; }
  .category-row-title { grid-template-columns:34px minmax(0,1fr); gap:8px; }
  .category-icon { width:34px; height:36px; font-size:19px; }
  .category-row-title .pill { grid-column:2; justify-self:start; }
  .category-fields { gap:8px; }
  .category-field input,.category-field select { padding-inline:9px; }
}

/* Keep empty results useful, and public navigation comfortable by touch. */
.empty > h3 { margin:0; max-width:100%; color:var(--ink); font-size:20px; line-height:1.4; overflow-wrap:anywhere; }
.empty > p { margin:0; max-width:52ch; min-width:0; overflow-wrap:anywhere; }
.empty-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; width:100%; max-width:520px; min-width:0; }
.empty-actions > button,.empty-actions > a { min-height:44px; max-width:100%; white-space:normal; line-height:1.5; overflow-wrap:anywhere; }
.catalog-empty .store-support { min-width:0; max-width:100%; width:100%; margin-top:0; }
.catalog-empty .store-support a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; line-height:1.6; overflow-wrap:anywhere; }
.sg-empty-copy { min-width:0; overflow-wrap:anywhere; }
.sg-empty-copy p { margin:0 0 10px; color:var(--muted); font-size:13px; line-height:1.6; }
.sg-empty-copy > .sg-chips { margin-top:10px; }

footer.ft .ft-grid { grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); }
.ft-grid > *,.ft-cta > div,.ft-note > span { min-width:0; overflow-wrap:anywhere; }
.ft-logo { min-width:0; }
.ft-logo > svg { flex-shrink:0; }
.ft-logo > span { min-width:0; overflow-wrap:anywhere; }
.ft-links button,.ft-top { min-height:44px; display:inline-flex; align-items:center; line-height:1.5; }
.ft-links button { max-width:100%; padding-block:9px; white-space:normal; overflow-wrap:anywhere; }
.ft-links button::after { bottom:7px; }
.ft-top { padding-block:10px; }
footer.ft .store-contact > a { display:flex; align-items:center; min-height:44px; max-width:100%; width:fit-content; padding-block:7px; line-height:1.6; overflow-wrap:anywhere; }
footer.ft .store-contact .store-facebook-link { display:inline-flex; padding:10px 14px; }
.store-policy-links button { min-height:44px; max-width:100%; font-size:13px; line-height:1.5; white-space:normal; text-align:left; }
.ft-col h4 { font-size:12px; letter-spacing:.08em; }

/* Product identity fields use the same readable, dark-mode-safe form controls. */
.product-edit-fields { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; min-width:0; margin-block:14px; }
.product-edit-fields > label { display:flex; flex-direction:column; gap:6px; min-width:0; font-size:13px; font-weight:700; }
.product-edit-fields input,.product-edit-fields select { width:100%; min-width:0; max-width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink); font:inherit; font-size:16px; }
.product-publish-note,.product-publish-error { margin:12px 0; padding:10px 12px; border-radius:10px; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.product-publish-note { background:var(--bg); color:var(--muted); }
.product-publish-error { border:1px solid var(--brand); background:var(--brand-soft); color:var(--brand); }
.product-publish-error:empty { display:none; }
@media(min-width:640px) { .product-edit-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:860px) { footer.ft .ft-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) {
  .bar .bar-main { grid-template-columns:minmax(0,1fr) 44px auto; }
  .bar-main .acct-btn { width:44px; min-height:44px; }
  .bar-main .cart-btn { min-height:44px; }
  .bar-main .search input { padding-right:60px; }
  .bar-main .s-clear { width:44px; height:44px; right:4px; }
  .mobile-browse button,.chips .chip,.seg button,.sg-chip,.sg-clr { min-height:44px; }
  .sg-chip,.sg-clr { padding-block:9px; }
  .hs-arrows button { width:44px; height:44px; }
  .hs-dots button { height:44px; }
  .hs-dots button::before,.hs-dots button i { top:20px; bottom:20px; }
  .empty { padding:26px 16px; }
  .empty > h3 { font-size:19px; }
  .empty-actions { align-items:stretch; }
  .empty-actions > button,.empty-actions > a { flex:1 1 180px; }
  .store-policy-links { gap:6px 18px; }
  .store-policy-links button { font-size:13px; }
}
@media(max-width:420px) {
  footer.ft .ft-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .ft-brand { grid-column:auto; }
  .ft-col h4 { margin-bottom:8px; }
  .ft-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; }
  .ft-links li { min-width:0; }
  .ft-btn { max-width:100%; white-space:normal; line-height:1.5; }
  .store-policy-links button { flex:1 1 100%; }
  .empty-actions > button,.empty-actions > a { flex-basis:100%; }
  .sg-empty { align-items:flex-start; gap:10px; }
  .sg-empty > svg { width:44px; height:44px; }
}

/* Catalog stock filter: a clear, keyboard-accessible toggle. */
.stock-filter{min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.stock-filter[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.stock-filter:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
@media(max-width:700px){.stock-filter{align-self:flex-start}}

/* Large carousel controls with a compact visible indicator. */
.hs-dots {gap:0}
.hs-dots button,.hs-dots button[aria-pressed="true"]{width:44px;height:44px}
.hs-dots button::before,.hs-dots button i{left:8px;right:8px;top:20px;bottom:20px}
.hs-arrows button{width:44px;height:44px}
