/* Scoped navigation/text upgrade: preserve the existing Poop Club window style. */
.multi-select-badge { justify-content:center;text-align:center;box-sizing:border-box;line-height:1.25;min-height:1.65em;padding:2px 6px; }
.option.editing .name,.mobile-choice.editing .mobile-choice-name { background:transparent;color:#111!important;-webkit-text-fill-color:#111!important; }
.category-strip, #mobileLayerStrip { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.category-btn, .text-layer-row button, [data-add-text] {
  border: 2px solid #111; background: #d1d1d1;
  box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #8c8c8c;
  color: #111; font: 900 10px 'Courier New', monospace; padding: 9px 10px; cursor: pointer;
}

.text-color-control .editable-hex { min-width: 0; width: 100%; min-height: 40px; border: 2px solid #111; background: #f7f7f7; padding: 0 7px; font: 900 10px 'Courier New', monospace; letter-spacing: .5px; text-align: center; text-transform: uppercase; }
.category-btn.active, .text-layer-select.active {
  background: #111; color: #fff !important; -webkit-text-fill-color: #fff !important; box-shadow: none;
}
.subcategory-strip { display: flex; gap: 6px; margin: 0 0 12px; }
.subcategory-strip[hidden] { display: none; }
.subcategory-btn {
  min-width: 90px;
  background: #e7e7e7;
  box-shadow: inset 3px 3px 0 #fff, inset -3px -3px 0 #aaa;
}
.subcategory-btn.active {
  background: #c4c4c4;
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
  box-shadow: inset 3px 3px 0 #8a8a8a, inset -3px -3px 0 #f7f7f7;
}
.text-layer-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 8px 0; }
.text-layer-toolbar [data-add-text] { width: 100%; }
.text-layer-list { display: grid; gap: 5px; max-height: 240px; overflow-y: auto; }
.text-layer-row { display: grid; grid-template-columns: minmax(0,1fr) 38px 38px 38px; gap: 4px; }
.text-layer-row button { min-width: 0; min-height: 36px; padding: 6px; }
.text-layer-select { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.text-layer-row button:disabled { opacity: .4; cursor: default; }
.text-layer-help { font: 12px/1.5 'Courier New', monospace; margin: 8px 0; }
.text-custom-fields { display: grid; gap: 8px; }
.text-custom-tools { display: grid; grid-template-columns: minmax(0, 1fr) 148px; gap: 8px; }
.text-color-control { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 6px; }
.text-color-control .big-color-input { height: 40px; }
.text-color-control output { display: grid; place-items: center; min-height: 40px; border: 2px solid #111; background: #f7f7f7; padding: 0 7px; font: 900 10px 'Courier New', monospace; letter-spacing: .5px; }
.mobile-text-grid.single, .mobile-text-two.single { grid-template-columns: 1fr; }
.mobile-text-scale-row { margin-top: 7px; padding: 6px; border: 2px solid #111; background: #f3f3f3; }
#textOverlay { position: absolute; inset: 0; z-index: 5; pointer-events: none; overflow: hidden; }
.text-drag-target { position: absolute; pointer-events: auto; background: transparent; border: 1px solid transparent; padding: 0; margin: 0; cursor: move; touch-action: none; }
.text-drag-target.selected { border: 2px dashed #1454a5; }
.text-resize-handle { display: none; position: absolute; z-index: 2; width: 14px; height: 14px; border: 2px solid #1454a5; background: #fff; pointer-events: auto; touch-action: none; }
.text-drag-target.selected .text-resize-handle { display: block; }
.text-resize-handle.nw { left: -8px; top: -8px; cursor: nwse-resize; }
.text-resize-handle.ne { right: -8px; top: -8px; cursor: nesw-resize; }
.text-resize-handle.sw { left: -8px; bottom: -8px; cursor: nesw-resize; }
.text-resize-handle.se { right: -8px; bottom: -8px; cursor: nwse-resize; }
.text-default-placeholder { color: #b7b7b7 !important; -webkit-text-fill-color: #b7b7b7 !important; }
.mobile-text-grid input[type=text].text-default-placeholder { color: #b7b7b7 !important; -webkit-text-fill-color: #b7b7b7 !important; }
#downloadBtn, #mobileDoneBtn { background: #f4f4f4 !important; color: #111 !important; -webkit-text-fill-color: #111 !important; box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #a3a3a3 !important; }
#downloadBtn:hover, #mobileDoneBtn:hover { background: #fff !important; }
#downloadBtn:disabled, #mobileDoneBtn:disabled { cursor: wait; opacity: .6; }
.design-save-status { margin-top: 8px; border: 2px solid #111; padding: 8px 10px; background: #fff; font-size: 9px; font-weight: 900; }
.design-save-status[data-state="error"] { background: #111; color: #fff; -webkit-text-fill-color: #fff; }
.design-save-status[data-state="limit"] { background: #111; color: #fff; -webkit-text-fill-color: #fff; white-space: pre-line; }
.mobile-design-save-status { display: none; }
.text-drag-target:focus-visible { outline: 2px solid #1454a5; }
body.design-dialog-open { overflow: hidden; }
.design-confirm-backdrop[hidden],
.design-limit-backdrop[hidden],
.design-dialog-backdrop[hidden] { display: none !important; }
.design-confirm-backdrop,
.design-limit-backdrop,
.design-dialog-backdrop {
  position: fixed; inset: 0; z-index: 200; display: grid; place-items: center;
  padding: 18px; background: rgba(0,0,0,.48);
}
.design-confirm-backdrop { z-index: 210; }
.design-limit-backdrop { z-index: 220; }
.design-confirm-dialog { width:min(420px,100%);border:3px solid #111;background:#d7d7d7;box-shadow:7px 7px 0 #111;font-family:'Courier New',monospace;animation:receipt-pop .22s steps(4,end); }
.design-confirm-body { margin:18px;padding:28px 24px 22px;border:2px solid #111;background:#f3f3f3;text-align:center; }
.design-confirm-kicker { display:inline-block;padding:4px 8px;background:#111;color:#fff;font-size:9px;font-weight:900;letter-spacing:1px; }
.design-confirm-body h2 { margin:18px 0 6px;font:900 34px/.9 Impact,'Arial Black',sans-serif;letter-spacing:1px; }
.design-confirm-body p { margin:0;font-size:14px;font-weight:900; }
.design-confirm-body>small { display:block;margin-top:12px;font-size:9px;font-weight:900;color:#555; }
.design-confirm-actions { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;padding-top:16px;border-top:2px solid #111; }
.design-confirm-actions button,.save-design-code { min-height:50px;border:2px solid #111;background:#d1d1d1;box-shadow:inset 2px 2px 0 #fff,inset -2px -2px 0 #888;color:#111;font:900 11px 'Courier New',monospace;cursor:pointer; }
.design-confirm-actions button:last-child,.save-design-code { background:#111;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none; }
.design-confirm-actions button:last-child small,.save-design-code span { color:#fff!important;-webkit-text-fill-color:#fff!important; }
.design-confirm-actions button small,.save-design-code span { display:block;margin-top:4px;font-size:8px;font-weight:900; }
.design-confirm-actions button:disabled { cursor:wait;opacity:.55; }
.design-confirm-status { margin-top:16px;padding:9px;border:2px solid #111;background:#fff;font-size:9px;font-weight:900;line-height:1.4;white-space:pre-line; }
.design-confirm-status[data-state="error"] { background:#111;color:#fff; }
.design-confirm-status[data-state="limit"] { background:#111;color:#fff;text-align:center; }
.design-limit-dialog { width:min(390px,100%);border:3px solid #111;background:#d7d7d7;box-shadow:7px 7px 0 #111;font-family:'Courier New',monospace;animation:receipt-pop .22s steps(4,end); }
.design-limit-body { margin:18px;padding:28px 24px 24px;border:2px solid #111;background:#f3f3f3;text-align:center; }
.design-limit-body h2 { margin:18px 0 12px;font:900 27px/.95 Impact,'Arial Black',sans-serif;letter-spacing:1px; }
.design-limit-body p { margin:0;font-size:13px;font-weight:900;line-height:1.7; }
.design-limit-body>button { width:100%;min-height:50px;margin-top:24px;border:2px solid #111;background:#111;color:#fff!important;-webkit-text-fill-color:#fff!important;font:900 12px 'Courier New',monospace;cursor:pointer; }
.design-limit-body>button small { display:block;margin-top:4px;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:8px; }
.design-dialog {
  width: min(548px, 100%); max-height: calc(100vh - 36px); overflow: auto;
  border: 3px solid #111; background: #d7d7d7; box-shadow: 7px 7px 0 #111;
  font-family: 'Courier New', monospace; animation: receipt-pop .22s steps(4, end);
}
.design-dialog-titlebar {
  position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between;
  min-height: 34px; padding-left: 10px; border-bottom: 3px solid #111;
  background: #111; color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .4px;
}
.design-dialog-titlebar button {
  align-self: stretch; width: 38px; border: 0; border-left: 3px solid #111;
  background: #eee; color: #111; font: 900 18px 'Courier New', monospace; cursor: pointer;
}
.design-dialog-titlebar button:active { background: #aaa; }
.design-receipt { position: relative; box-sizing:border-box;width:500px;max-width:calc(100% - 36px);margin:34px auto 36px;padding:22px 16px 18px;border:0;background:#fff; }
.design-receipt::before, .design-receipt::after { content: ''; position: absolute; left: 0; right: 0; height: 15px; background: linear-gradient(135deg, #fff 8px, transparent 0) 0 0 / 16px 15px repeat-x, linear-gradient(225deg, #fff 8px, transparent 0) 0 0 / 16px 15px repeat-x; }
.design-receipt::before { top: -15px; transform: rotate(180deg); }
.design-receipt::after { bottom: -15px; }
.receipt-heading { padding: 4px 0 12px; text-align: center; border-bottom: 2px solid #111; }
.receipt-heading > span { display: block; color: #111; font-size: 10px; font-weight: 900; letter-spacing: 2px; }
.receipt-heading h2 { margin: 5px 0 3px; font: 900 30px/.84 Impact, 'Arial Black', sans-serif; letter-spacing: 1px; transform: rotate(-1deg); }
.receipt-heading small { font-size: 8px; font-weight: 900; letter-spacing: .7px; }
.design-receipt-meta { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; color: #555; font-size: 8px; font-weight: 900; }
.design-summary { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; align-items: center; margin: 14px 0 18px; }
.design-preview-ticket { width: 150px; height: 150px; margin: 0; padding: 6px; border: 3px solid #111; background: #fff; box-shadow: 4px 4px 0 #aaa; }
.design-preview-ticket img { display: block; width: 100%; height: 100%; object-fit: contain; }
.design-code-panel { width: auto; }
.design-code-label { padding: 0 0 8px; text-align: left; color: #555; font-size: 9px; font-weight: 900; letter-spacing: 1.5px; }
.design-code-row { display: grid; grid-template-columns: minmax(0, 1fr) 76px; gap: 8px; }
.design-code-row strong { display: grid; place-items: center; min-height: 42px; border: 1px solid #111; background: #fff; box-shadow: inset 0 0 0 3px #ededed; font-size: 17px; letter-spacing: .5px; }
.design-code-row button, .design-dialog-back {
  border: 2px solid #111; background: #d1d1d1;
  box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #888;
  color: #111; font: 900 10px 'Courier New', monospace; cursor: pointer;
}
.design-code-row button:active, .design-dialog-back:active { box-shadow: inset 2px 2px 0 #888, inset -2px -2px 0 #fff; }
.design-code-row button { min-height: 42px; padding: 4px; font-size: 10px; }
.design-notice { display: grid; gap: 13px; margin: 20px 0 0; padding: 0; border: 0; background: transparent; font-size: 8px; font-weight: 900; }
.design-notice > h3, .notice-how h3, .notice-usage h3 { justify-self: start; margin: 0; padding: 4px 8px; background: #111; color: #fff; font-size: 9px; letter-spacing: .9px; }
.notice-item { display: grid; grid-template-columns: 126px minmax(0, 1fr); gap: 12px; align-items: start; padding-top: 9px; border-top: 1px solid #111; }
.notice-item strong { font-size: 8px; letter-spacing: .15px; }
.design-notice .notice-item p, .design-notice .notice-how p, .design-notice .notice-usage p { margin: 0; padding: 0; border: 0; text-align: left; font-size: 8px; line-height: 1.58; font-weight: 700; }
.notice-how, .notice-usage { display: grid; gap: 7px; padding-top: 11px; border-top: 1px solid #111; }
.notice-usage p { padding: 0 !important; border-left: 0 !important; }
.receipt-actions { position: relative; display: grid; grid-template-columns: 1.35fr 1fr; gap: 12px; margin-top: 34px; padding-top: 16px; }
.receipt-actions::before { content: ''; position: absolute; left: 0; right: 0; top: 0; border-top: 2px solid #111; }
.shopify-button { display: grid; place-items: center; min-height: 48px; padding: 10px; border: 2px solid #111; border-radius: 999px; background: #111; color: #fff !important; -webkit-text-fill-color: #fff !important; text-align: center; text-decoration: none; font-size: 11px; font-weight: 900; }
.design-receipt p { margin: 10px 4px; text-align: center; font-size: 9px; line-height: 1.6; font-weight: 900; }
.design-dialog-back { width: 100%; min-height: 48px; margin: 0; border-radius: 999px !important; background: #fff !important; }
.save-design-code { display:block;width:100%;margin-top:28px; }
.save-code-photo-label { display:none!important; }
@keyframes receipt-pop { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .design-dialog { animation: none; } }
@media(max-width:600px) {
  .mobile-design-save-status:not([hidden]) { display: block; margin: 6px 8px 0; }
  #mobileLayerStrip { display: flex; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; }
  #mobileLayerStrip .category-btn { flex: 0 0 auto; min-height: 34px; font-size: 9px; padding: 6px 10px; }
  .subcategory-btn { min-height: 34px; font-size: 9px; }
  #mobileSideRandomBtn {
    height: 34px; min-width: 0; padding: 2px; letter-spacing: 0;
    border: 2px solid #111; background: #d1d1d1;
    box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #8c8c8c;
    font: 900 7.5px/1.05 'Courier New', monospace;
    color: #111 !important; -webkit-text-fill-color: #111 !important;
  }
  #mobileSideRandomBtn:active { background: #111; color: #fff !important; -webkit-text-fill-color: #fff !important; box-shadow: none; }
  .text-layer-panel { margin-top: 10px; }
  .text-layer-row { grid-template-columns: minmax(0,1fr) 40px 40px 40px; }
  .text-layer-row button { min-height: 40px; }
  .mobile-text-tools { display:grid;gap:6px;margin-top:10px;padding-top:8px;border-top:2px solid #111; }
  .mobile-text-size-control { display:grid;grid-template-columns:42px 28px minmax(0,1fr) 28px 42px;gap:3px;align-items:center; }
  .mobile-text-size-control>span,.mobile-text-action-row>span { font:900 7px 'Courier New',monospace; }
  .mobile-text-size-control input[type=range] { min-width:0;width:100%;touch-action:manipulation; }
  .mobile-text-size-control output { display:grid;place-items:center;min-height:27px;border:2px solid #111;background:#fff;font:900 7px 'Courier New',monospace; }
  .mobile-text-action-row { display:grid;grid-template-columns:76px minmax(0,1fr) 40px 40px;gap:5px;align-items:center; }
  .mobile-text-action-row>span { justify-self:end;padding-right:3px; }
  .mobile-text-tools .mobile-text-reset { width:76px;min-width:0;min-height:34px;padding:3px;font-size:7px; }
  .mobile-text-transform { min-width:0;min-height:34px;padding:0;border:2px solid #111;background:#d1d1d1;box-shadow:inset 2px 2px 0 #fff,inset -2px -2px 0 #8c8c8c;color:#111!important;-webkit-text-fill-color:#111!important;font:900 13px 'Courier New',monospace;touch-action:manipulation; }
  .mobile-text-size-control .mobile-text-transform { min-height:27px;height:27px; }
  .mobile-text-transform:active { box-shadow:inset 2px 2px 0 #8c8c8c,inset -2px -2px 0 #fff; }
  .design-dialog-backdrop { padding:18px 0; overflow:hidden; }
  .design-confirm-backdrop { padding:18px; }
  .design-limit-backdrop { padding:10px; }
  .design-confirm-dialog { width:min(330px,84vw);box-shadow:4px 4px 0 #111; }
  .design-limit-dialog { box-shadow:4px 4px 0 #111; }
  .design-confirm-body { margin:9px;padding:18px 11px 13px; }
  .design-confirm-body h2 { margin:13px 0 5px;font-size:27px; }
  .design-confirm-body p { font-size:12px; }
  .design-confirm-body>small { margin-top:8px;font-size:7.5px; }
  .design-confirm-actions { grid-template-columns:1fr 1fr;gap:6px;margin-top:16px;padding-top:11px; }
  .design-confirm-actions button { min-height:42px;padding:5px 2px;font-size:8px; }
  .design-confirm-actions button small { font-size:6.5px; }
  .design-dialog { position:fixed;left:50%;top:50%;width:min(500px,82vw);max-height:none;overflow:visible;box-shadow:3px 3px 0 #111;animation:none;transform:translate(-50%,-50%) scale(var(--receipt-fit-scale,1));transform-origin:center; }
  .design-dialog-titlebar { min-height:28px;padding-left:8px;border-bottom-width:2px;font-size:8px; }
  .design-dialog-titlebar button { width:32px;border-left-width:2px;font-size:15px; }
  .design-receipt { max-width:calc(100% - 12px);margin:18px auto 19px;padding:10px 8px 9px; }
  .design-receipt::before,.design-receipt::after { height:9px;background-size:10px 9px; }
  .design-receipt::before { top:-9px; }
  .design-receipt::after { bottom:-9px; }
  .receipt-heading { padding:1px 0 6px;border-bottom-width:1px; }
  .receipt-heading>span { font-size:7px;letter-spacing:1.4px; }
  .receipt-heading h2 { margin:2px 0;font-size:20px;line-height:.86; }
  .receipt-heading small { font-size:5.5px;letter-spacing:.45px; }
  .design-receipt-meta { padding:5px 0;font-size:5.5px; }
  .notice-item { grid-template-columns:82px minmax(0,1fr);gap:6px;padding-top:5px; }
  .notice-item strong { font-size:6px; }
  .design-summary { grid-template-columns:78px minmax(0,1fr);gap:9px;margin:5px 0 7px; }
  .design-preview-ticket { width:78px;height:78px;padding:3px;border-width:2px;box-shadow:2px 2px 0 #aaa; }
  .design-code-panel { width: auto; }
  .design-code-label { padding-bottom:4px;font-size:6.5px;letter-spacing:1px; }
  .design-code-row { grid-template-columns:minmax(0,1fr) 42px;gap:4px; }
  .design-code-row strong { min-height:30px;padding:2px;font-size:10px;letter-spacing:0; }
  .design-code-row button { min-height:30px;padding:2px;font-size:6px; }
  .design-notice { gap:5px;margin-top:8px;font-size:6px; }
  .design-notice>h3,.notice-how h3,.notice-usage h3 { padding:3px 5px;font-size:6.5px;letter-spacing:.55px; }
  .design-notice .notice-item p,.design-notice .notice-how p,.design-notice .notice-usage p { font-size:6.5px;line-height:1.34; }
  .notice-how,.notice-usage { gap:4px;padding-top:6px; }
  .save-design-code { min-height:34px;margin-top:9px;font-size:8px; }
  .save-design-code span { margin-top:2px;font-size:6px; }
  .save-code-download-label { display:none!important; }
  .save-code-photo-label { display:block!important; }
  .receipt-actions { grid-template-columns:1.2fr 1fr;gap:5px;margin-top:10px;padding-top:7px; }
  .receipt-actions::before { border-top-width:1px; }
  .shopify-button,.design-dialog-back { min-height:32px;padding:4px;font-size:6.5px; }
}
@media(hover:none) and (pointer:coarse) {
  .text-drag-target.selected { border-width:1px; }
  .selection-box .resize-handle,
  .text-drag-target .text-resize-handle { display:none!important; }
}
