:root{
  --bg: #131110; --bg-2: #0d0c0b; --panel: #1c1917; --panel-2: #221e1b;
  --line: #3a342d; --line-soft: #2a2521;
  --text: #f3efe7; --text-dim: #a89f92; --text-faint: #6f675c;
  --accent: #e2472b; --accent-dim: #7a2c1f;
  --mint: #8fe3c0; --mint-dim: #2f4a3f;
  --font-display: 'Space Grotesk', ui-sans-serif, system-ui, sans-serif;
  --font-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', monospace;
  --sidebar-w: 244px;
}
*{box-sizing:border-box;}
body{ margin:0; background:var(--bg); color:var(--text); font-family:var(--font-body); }
/* Docked sidebar gutter (desktop only; the media query below turns it on). */
body{ transition: padding-left .2s ease; }
.wrap{ max-width: 900px; margin:0 auto; padding: 36px 24px 100px; }

header{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:24px; flex-wrap:wrap; }
.brand-label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:8px; }
h1{ font-family:var(--font-display); font-weight:700; font-size:30px; margin:0 0 6px; letter-spacing:-.01em; }
header p{ margin:0; color:var(--text-dim); font-size:14px; max-width:48ch; line-height:1.5; }
.env-badge{ font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; padding:6px 10px; border-radius:3px; height:fit-content; }
.env-badge.sandbox{ background:var(--mint-dim); color:var(--mint); }
.env-badge.prod{ background:var(--accent-dim); color:#ffb3a3; }

.goal-panel{ background:var(--panel); border:1px solid var(--line-soft); border-radius:4px; padding:16px 18px; margin-bottom:22px; }
.goal-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
.goal-title{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint); }
.goal-pct{ font-family:var(--font-mono); font-size:12px; color:var(--text-dim); }
.goal-panel.reached .goal-pct{ color:var(--mint); }
.goal-track{ position:relative; height:10px; background:var(--panel-2); border:1px solid var(--line-soft); border-radius:999px; overflow:hidden; }
.goal-fill{ position:relative; z-index:1; height:100%; width:0%; background:var(--accent); border-radius:999px; transition:width .3s ease-out; }
.goal-panel.reached .goal-fill{ background:var(--mint); }
/* Ghost segment projecting where today's total lands once the current publish
   batch finishes - sits behind the solid fill, so only the bit beyond it shows. */
.goal-fill-projected{ position:absolute; top:0; left:0; z-index:0; height:100%; width:0%;
  background:var(--accent); opacity:.32; border-radius:999px; transition:width .3s ease-out; }
.goal-panel.projected-reached .goal-fill-projected{ background:var(--mint); opacity:.4; }
.goal-projected{ margin-top:5px; font-family:var(--font-mono); font-size:11.5px; color:var(--text-dim); }
.goal-projected::before{ content:"↗ "; color:var(--accent); }
.goal-panel.projected-reached .goal-projected::before{ color:var(--mint); }
.goal-amounts{ margin-top:9px; font-family:var(--font-display); font-size:19px; font-weight:600; }
.goal-of{ font-family:var(--font-body); font-size:13px; font-weight:400; color:var(--text-faint); }
.goal-target{ cursor:pointer; border-bottom:1px dashed var(--text-faint); }
.goal-target:hover{ color:var(--accent); border-bottom-color:var(--accent); }

.goal-mode-toggle{ display:flex; gap:2px; background:var(--panel-2); border:1px solid var(--line-soft);
  border-radius:999px; padding:2px; }
.goal-mode-btn{ background:none; border:none; border-radius:999px; cursor:pointer;
  font-family:var(--font-mono); font-size:11px; color:var(--text-faint); padding:3px 9px; line-height:1.3; }
.goal-mode-btn:hover{ color:var(--text-dim); }
.goal-mode-btn.active{ background:var(--accent); color:#fff; }
.goal-panel.reached .goal-mode-btn.active{ background:var(--mint); }

.goal-boost{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; }
.goal-boost-label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; color:var(--text-faint); }
.goal-boost .goal-mode-btn{ padding:3px 7px; }

.goal-week-head{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-top:8px; }
.goal-week-caption{ font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); }
.goal-week-chart{ margin-top:8px; }
.goal-week-chart svg{ display:block; width:100%; height:auto; overflow:visible; }
.goal-week-bar{ fill:var(--accent); }
.goal-week-axis-label{ font-family:var(--font-mono); font-size:9px; fill:var(--text-faint); }
.goal-week-val-label{ font-family:var(--font-mono); font-size:9px; fill:var(--text-dim); }
.goal-week-empty{ font-family:var(--font-mono); font-size:12px; color:var(--text-faint); padding:10px 0; }
.goal-edit-input{ width:90px; display:inline-block; font-family:var(--font-display); font-size:19px; font-weight:600; padding:2px 6px; }
.goal-note{ margin-top:4px; font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }
.goal-actions{ display:flex; gap:14px; margin-top:10px; }
.goal-link-btn{
  background:none; border:none; padding:0; cursor:pointer; font-family:var(--font-mono);
  font-size:11px; letter-spacing:.04em; color:var(--text-faint); text-decoration:underline;
  text-underline-offset:2px;
}
.goal-link-btn:hover{ color:var(--accent); }
.goal-manual-form{ display:flex; gap:8px; margin-top:10px; }
.goal-manual-form input[type=text]{ flex:2; }
.goal-manual-form input[type=number]{ flex:1; min-width:90px; }
.goal-manual-form .secondary-btn{ flex-shrink:0; }
.goal-manual-tag{
  font-family:var(--font-mono); font-size:9.5px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--text-faint); border:1px solid var(--line); border-radius:3px; padding:1px 4px; margin-right:6px;
}
.goal-details{ margin-top:10px; }
.goal-details summary{ font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); cursor:pointer; }
.goal-list{ margin-top:10px; display:flex; flex-direction:column; gap:6px; }
.goal-empty{ font-family:var(--font-mono); font-size:12px; color:var(--text-faint); }
.goal-item{ display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:13px; padding:6px 0; border-bottom:1px solid var(--line-soft); }
.goal-item:last-child{ border-bottom:none; }
.goal-item-title{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
.goal-item-total{ font-family:var(--font-mono); color:var(--text-dim); white-space:nowrap; }
.goal-item-remove{ background:none; border:none; color:var(--text-faint); cursor:pointer; font-size:15px; line-height:1; padding:2px 4px; }
.goal-item-remove:hover{ color:var(--accent); }

.sprockets{ height:12px; background: repeating-linear-gradient(90deg, transparent 0 8px, var(--line) 8px 9px); opacity:.5; }
.dropzone{ border:1.5px dashed var(--line); border-radius:4px; background:var(--panel); padding:36px 24px; text-align:center; cursor:pointer; transition:.15s; }
.dropzone:hover{ border-color:var(--text-faint); }
.dropzone.active{ border-color:var(--accent); background:var(--panel-2); box-shadow:0 0 0 1px var(--accent-dim); }
.dropzone .icon{ width:38px; height:38px; margin:0 auto 12px; }
.dropzone .title{ font-family:var(--font-display); font-size:16px; font-weight:600; margin-bottom:4px; }
.dropzone .sub{ font-size:12.5px; color:var(--text-faint); font-family:var(--font-mono); }
#fileInput{ display:none; }

.thumb-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.thumb-row img{ width:84px; height:84px; object-fit:cover; border-radius:3px; border:1px solid var(--line-soft); }

.hidden{ display:none !important; }

.review-panel{ margin-top:32px; background:var(--panel); border:1px solid var(--line-soft); border-radius:4px; padding:24px; }
.review-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
/* Reverse-image identification from Google Vision, shown so its hit rate can be
   eyeballed. Sits between the title area and the fields; wraps on small screens. */
.vision-id{ display:flex; flex-wrap:wrap; gap:6px; align-items:baseline;
  margin:-6px 0 16px; padding:8px 11px; border-radius:6px;
  background:var(--panel-2); border:1px solid var(--line-soft);
  font-size:12px; line-height:1.5; color:var(--text-dim); }
.vision-id-label{ font-family:var(--font-mono); font-size:10px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--text-faint); }
.vision-id-text{ color:var(--text-dim); }
.review-head h2{ font-family:var(--font-display); font-size:16px; margin:0; color:var(--text-dim); }
.category-tag{ font-family:var(--font-mono); font-size:11px; color:var(--mint); background:var(--mint-dim); padding:4px 9px; border-radius:10px; }

.field{ margin-bottom:16px; }
.field label{ display:block; font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-faint); margin-bottom:6px; }
.field label .hint, .field label .charcount{ text-transform:none; letter-spacing:0; color:var(--text-faint); font-weight:400; }
.field-row{ display:flex; gap:16px; }
.field-row .field{ flex:1; }

input[type=text], input[type=number], textarea, select{
  width:100%; background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  padding:9px 10px; border-radius:3px; font-family:var(--font-body); font-size:14px; outline:none;
}
input:focus, textarea:focus, select:focus{ border-color:var(--accent); }
textarea{ resize:vertical; line-height:1.5; }
.price-note{ font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); margin:-10px 0 16px; }

.specifics-list{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
.specific-row{ display:flex; flex-direction:column; gap:4px; }
.specific-row label{ font-family:var(--font-mono); font-size:10.5px; color:var(--text-faint); }
.specific-row label.required::after{ content:" *"; color:var(--accent); }
.specific-row input{ font-size:13px; padding:7px 9px; }

.publish-row{ display:flex; align-items:center; gap:14px; margin-top:20px; }
.publish-btn{
  background:var(--accent); border:none; color:#fff; font-family:var(--font-mono); font-size:13px;
  text-transform:uppercase; letter-spacing:.04em; padding:12px 22px; border-radius:3px; cursor:pointer; font-weight:600;
}
.publish-btn:hover{ filter:brightness(1.08); }
.publish-btn:disabled{ opacity:.5; cursor:not-allowed; }
.publish-status{ font-family:var(--font-mono); font-size:12px; color:var(--text-faint); }

.success-panel{ margin-top:28px; background:var(--mint-dim); border:1px solid var(--mint); border-radius:4px; padding:20px 22px; color:var(--mint); font-family:var(--font-mono); font-size:13.5px; }
.success-panel a{ color:#fff; }

.settings-row{ display:flex; gap:20px; align-items:center; margin-top:16px; flex-wrap:wrap; }
.setting-block label{ display:block; font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-faint); margin-bottom:6px; }
.setting-block select{ background:var(--panel-2); border:1px solid var(--line); color:var(--text); padding:8px 10px; border-radius:3px; font-family:var(--font-body); font-size:13px; }
.switch-label{ display:flex !important; align-items:center; gap:8px; font-family:var(--font-body) !important; font-size:13px !important; text-transform:none !important; letter-spacing:0 !important; color:var(--text) !important; cursor:pointer; margin-bottom:0 !important; }
.switch-label input{ width:15px; height:15px; accent-color: var(--accent); }

.rail{
  margin-top: 14px; background: var(--panel); border: 1px solid var(--line-soft); border-radius: 4px;
  padding: 16px 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
  transition: opacity .15s;
}
.rail.disabled{ opacity:.35; pointer-events:none; }
@media (max-width: 700px){ .rail{ grid-template-columns: 1fr; } }
.ctrl label{
  display:flex; justify-content: space-between; align-items:baseline;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
  color: var(--text-faint); margin-bottom: 10px;
}
.ctrl label .val{ color: var(--mint); font-size: 12px; }
input[type=range]{ -webkit-appearance: none; width: 100%; height: 3px; background: var(--line); border-radius: 2px; outline:none; }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width: 13px; height: 13px; border-radius: 50%; background: var(--accent); border: 2px solid var(--bg); cursor: pointer; margin-top: -5px; }
input[type=range]::-moz-range-thumb{ width: 11px; height: 11px; border-radius: 50%; background: var(--accent); border: 2px solid var(--bg); cursor:pointer; }
.seg{ display:flex; border: 1px solid var(--line); border-radius: 3px; overflow:hidden; }
.seg button{
  flex:1; background: transparent; border:none; color: var(--text-dim); font-family: var(--font-mono);
  font-size: 11.5px; padding: 7px 6px; cursor:pointer; border-right: 1px solid var(--line);
}
.seg button:last-child{ border-right:none; }
.seg button.on{ background: var(--accent); color: #fff; }

.item-heading{ display:flex; align-items:center; gap:10px; margin: 30px 0 10px; }
.item-heading .num{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); background:var(--panel-2); border:1px solid var(--line); padding:3px 9px; border-radius:10px; }
.item-heading .status{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }

.sort-board{ margin-top: 24px; }
.sort-board-head{ margin-bottom: 14px; }
.sort-board-head h2{ font-family:var(--font-display); font-size:16px; margin:0 0 4px; color:var(--text); }
.sort-board-head p{ margin:0; font-size:13px; color:var(--text-faint); }
.sort-bins{ display:flex; flex-direction:column; gap:14px; }
.sort-bin{
  background:var(--panel); border:1px solid var(--line-soft); border-radius:4px; padding:14px;
  transition: border-color .15s, background .15s;
}
.sort-bin.drag-over{ border-color:var(--accent); background:var(--panel-2); }
.sort-bin-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.sort-bin-head span{ font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-faint); }
.sort-bin-photos{ display:flex; flex-wrap:wrap; gap:8px; min-height: 76px; }
.sort-bin-photos:empty::after{
  content:"Drop photos here"; font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint);
  display:flex; align-items:center; justify-content:center; width:100%; height:60px;
  border:1px dashed var(--line); border-radius:3px;
}
.sort-thumb{
  width:68px; height:68px; object-fit:cover; border-radius:3px; border:1px solid var(--line-soft);
  cursor:grab; transition: transform .1s, opacity .1s;
}
.sort-thumb.dragging{ opacity:.35; }
.secondary-btn{
  background:var(--panel-2); border:1px solid var(--line); color:var(--text-dim); font-family:var(--font-mono);
  font-size:12px; text-transform:uppercase; letter-spacing:.03em; padding:10px 16px; border-radius:3px; cursor:pointer;
}
.secondary-btn:hover{ border-color:var(--text-faint); color:var(--text); }
.secondary-btn:disabled{ opacity:.5; cursor:not-allowed; }
.secondary-btn:disabled:hover{ border-color:var(--line); color:var(--text-dim); }
/* Compact "Deeper dive" button that sits inline in the Title label. */
.deeper-dive-btn{ padding:3px 8px; font-size:10px; margin-left:10px; vertical-align:middle; }
.deeper-dive-status{ font-size:11px; color:var(--text-dim); margin-left:8px; font-family:var(--font-mono); }
/* AI title-suggestions dropdown above the editable title box. */
.title-options{
  display:block; width:100%; margin-bottom:6px; padding:8px 10px;
  background:var(--panel-2); border:1px solid var(--line); color:var(--text-dim);
  border-radius:3px; font-family:var(--font-mono); font-size:12px; cursor:pointer;
}
.title-options.hidden{ display:none; }
/* Per-card Save-draft button + "last saved" subtext. */
.draft-save-row{ display:flex; align-items:center; gap:12px; margin:2px 0 14px; }
.draft-save-status{ font-size:12px; color:var(--text-faint); font-family:var(--font-mono); }
.draft-save-status.is-saved{ color:var(--text-dim); }
.draft-save-status.is-pending{ color:var(--text-faint); font-style:italic; }
.draft-save-status.is-error{ color:#d9534f; }
/* Schedule-for-later (per card) + batch scheduling on the List-all bar. */
.schedule-at{ margin-top:8px; }
.schedule-at.hidden{ display:none; }
.batch-schedule{ display:flex; flex-direction:column; gap:8px; margin-top:10px; width:100%; }
.batch-schedule-opts{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.batch-schedule-opts.hidden{ display:none; }
.batch-sched-field{ display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--text-dim); }
#batchScheduleInterval{ width:60px; }

/* ---------- settings: gear button + modal ---------- */
.settings-gear{
  position:fixed; top:14px; left:14px; z-index:50;
  display:inline-flex; align-items:center; gap:9px;
  padding:9px 18px 9px 15px; border-radius:24px;
  background:var(--panel-2); border:1px solid var(--line); color:var(--text-dim);
  font-family:var(--font-mono); line-height:1; cursor:pointer;
}
.settings-gear-icon{ font-size:24px; }
.settings-gear-label{ font-size:14px; text-transform:uppercase; letter-spacing:.05em; }
.settings-gear:hover{ border-color:var(--text-faint); color:var(--text); }
.settings-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; }
.settings-modal.hidden{ display:none; }
.settings-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.settings-dialog{
  position:relative; z-index:1; width:min(560px, 92vw); max-height:88vh; overflow:auto;
  background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:22px 24px;
  box-shadow:0 20px 60px rgba(0,0,0,.4);
}
.settings-dialog-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.settings-dialog-head h2{ margin:0; font-size:20px; }
.settings-intro{ color:var(--text-dim); font-size:13px; margin:0 0 16px; }
.settings-body .setting-block{ margin-bottom:16px; }
.settings-foot{ display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
.settings-save-status{ font-size:12px; font-family:var(--font-mono); color:var(--text-faint); }
.settings-save-status.is-saved{ color:#2e9e5b; }
.settings-save-status.is-pending{ color:var(--text-faint); font-style:italic; }
.settings-save-status.is-error{ color:#d9534f; }
.settings-save-btn{
  background:#2f6bd6; border:1px solid #2f6bd6; color:#fff; font-family:var(--font-mono);
  font-size:13px; text-transform:uppercase; letter-spacing:.04em; padding:10px 26px; border-radius:4px; cursor:pointer;
}
.settings-save-btn:hover{ background:#2559b8; border-color:#2559b8; }
/* Uploader drag-over highlight (Mac drag-and-drop). */
.phone-panel.drag-over{ border-color:#2f6bd6; box-shadow:0 0 0 2px rgba(47,107,214,.25); }

/* ---------- sort board: faster combining ---------- */
.sort-bin-merge{
  margin-left:auto; font-size:12px; font-family:var(--font-mono);
  background:var(--panel-2); color:var(--text-dim); border:1px solid var(--line);
  border-radius:3px; padding:3px 6px; cursor:pointer;
}
.sort-bin-merge:hover{ border-color:var(--text-faint); color:var(--text); }
.sort-bin-remove{ margin-left:8px; }
.sort-thumb-wrap{ position:relative; display:inline-flex; }
.sort-thumb-move{
  position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:4px;
  border:1px solid rgba(255,255,255,.35); background:rgba(0,0,0,.55); color:#fff;
  font-size:13px; line-height:1; cursor:pointer; opacity:0; transition:opacity .12s;
  display:flex; align-items:center; justify-content:center;
}
.sort-thumb-wrap:hover .sort-thumb-move{ opacity:1; }
.sort-thumb-move:hover{ background:rgba(0,0,0,.8); }
/* Check a photo to bundle it into a multi-photo drag/move with others. */
.sort-thumb-select{
  position:absolute; top:3px; right:3px; width:18px; height:18px; border-radius:50%; padding:0;
  border:1.5px solid rgba(255,255,255,.75); background:rgba(0,0,0,.35);
  cursor:pointer; opacity:0; transition:opacity .12s, background .12s, border-color .12s;
  display:flex; align-items:center; justify-content:center;
}
.sort-thumb-select::after{ content:"✓"; font-size:11px; line-height:1; color:transparent; }
.sort-thumb-wrap:hover .sort-thumb-select{ opacity:1; }
.sort-thumb-select:hover{ background:rgba(0,0,0,.6); }
.sort-thumb-wrap.selected .sort-thumb-select{ opacity:1; background:var(--accent); border-color:var(--accent); }
.sort-thumb-wrap.selected .sort-thumb-select::after{ color:#fff; }
.sort-thumb-wrap.selected .sort-thumb{ outline:2px solid var(--accent); outline-offset:1px; }
.selection-status{
  margin-left:auto; display:flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:12px; color:var(--text-dim);
}
.selection-status.hidden{ display:none; }
.selection-clear-btn{
  background:none; border:none; color:var(--accent); font-family:var(--font-mono);
  font-size:12px; text-decoration:underline; text-underline-offset:2px; cursor:pointer; padding:0;
}
.sort-move-menu{
  position:absolute; z-index:210; background:var(--panel); border:1px solid var(--line);
  border-radius:6px; padding:6px; box-shadow:0 10px 30px rgba(0,0,0,.35);
  display:flex; flex-direction:column; gap:2px; min-width:130px; max-height:280px; overflow:auto;
}
.sort-move-menu.hidden{ display:none; }
.sort-move-menu-label{ font-size:11px; color:var(--text-faint); font-family:var(--font-mono); padding:2px 6px 4px; }
.sort-move-menu button{
  text-align:left; background:none; border:none; color:var(--text-dim);
  font-family:var(--font-mono); font-size:13px; padding:6px 8px; border-radius:4px; cursor:pointer;
}
.sort-move-menu button:hover{ background:var(--panel-2); color:var(--text); }
.sort-move-menu .sort-move-new{ border-top:1px solid var(--line); margin-top:2px; color:var(--text-faint); }

/* ---------- close-up navigation arrows (lightbox + preview) ---------- */
.lb-nav, .pp-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:44px; height:64px; border:none; border-radius:8px;
  background:rgba(0,0,0,.45); color:#fff; font-size:34px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.lb-nav:hover, .pp-nav:hover{ background:rgba(0,0,0,.72); }
.lb-nav:disabled, .pp-nav:disabled{ opacity:.3; cursor:default; }
.lb-nav.hidden, .pp-nav.hidden{ display:none; }
.lb-prev, .pp-prev{ left:8px; }
.lb-next, .pp-next{ right:8px; }

.sort-board-actions{ display:flex; gap:12px; margin-top:16px; }

.reorder-row{ gap:8px; }
.reorder-thumb-wrap{ position:relative; }
.reorder-thumb-wrap .sort-thumb{ width:80px; height:80px; }
.main-badge{
  position:absolute; top:-7px; left:-7px; background:var(--accent); color:#fff;
  font-family:var(--font-mono); font-size:9px; text-transform:uppercase; letter-spacing:.04em;
  padding:2px 6px; border-radius:8px; z-index:1; pointer-events:none;
}
.reorder-hint-row{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  flex-wrap:wrap; margin-top:6px; }
.reorder-hint{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }
.item-reverse-btn{ margin:0; }

.draft-warning{
  background: var(--accent-dim); border:1px solid var(--accent); color:#ffd9d0;
  font-family:var(--font-mono); font-size:12.5px; line-height:1.6; padding:14px 16px;
  border-radius:4px; margin-bottom:20px;
}

.promote-warn{ color:#ffd9d0; font-size:12px; }

.box-label-input{
  background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  padding:8px 10px; border-radius:3px; font-family:var(--font-mono); font-size:13px; width:200px;
}

/* ============ THEME SWITCHER (shared base, both themes) ============ */
.theme-switcher{
  display:flex; gap:0; width:fit-content; margin: 0 auto 18px; border:1px solid var(--line-soft);
  border-radius: 999px; overflow:hidden; background: var(--panel);
}
.theme-btn{
  background:transparent; border:none; padding:7px 18px; font-family:var(--font-mono); font-size:11px;
  text-transform:uppercase; letter-spacing:.05em; color:var(--text-faint); cursor:pointer; transition:.15s;
}
.theme-btn.on{ background:var(--accent); color:#fff; }
.aqua-titlebar{ display:none; }

/* ============================================================
   AQUA THEME — nostalgic Mac OS X (Aqua-era, c. 2001-2005) pastiche
   Typography nods to Apple's classic Garamond-based branding via
   EB Garamond (an open Garamond revival - Apple Garamond itself is
   proprietary and not freely licensable), paired with the Lucida
   Grande-style system font Aqua actually used for UI chrome.
   ============================================================ */
body[data-theme="aqua"]{
  --bg: #dbe9fb;
  --panel: #f4f8fd;
  --panel-2: #ffffff;
  --line: #a9bdd6;
  --line-soft: #c7d6ea;
  --text: #17232f;
  --text-dim: #445468;
  --text-faint: #7688a0;
  --accent: #2c6fdb;
  --accent-dim: #9fc0f2;
  --mint: #1f9c53;
  --mint-dim: #cdeedb;
  --font-display: 'EB Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Lucida Grande', 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-mono: 'Lucida Grande', 'Segoe UI', Helvetica, Arial, sans-serif;

  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.5) 0 1px, transparent 1px 3px),
    linear-gradient(180deg, #eaf3ff 0%, #cfe3fb 45%, #aecdf0 100%);
  background-attachment: fixed;
  min-height:100vh;
}

body[data-theme="aqua"] .aqua-titlebar{
  display:block; max-width:1040px; margin:24px auto 14px; padding:9px 14px;
  background: linear-gradient(180deg, #f2f6fb 0%, #dbe6f2 45%, #c3d3e6 46%, #eef4fa 100%);
  border:1px solid #8fa4bf; border-radius:10px;
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 6px 16px -10px rgba(20,40,70,.35);
  font-family: 'EB Garamond', Georgia, serif; font-style:italic; font-size:14px; color:#3a4c60;
  text-align:center;
}

body[data-theme="aqua"] .wrap{
  max-width:1040px; margin:0 auto 60px; padding: 24px 28px 40px;
  background: #ffffff;
  border: 1px solid #8fa4bf; border-radius: 12px;
  box-shadow: 0 18px 40px -12px rgba(20,40,70,.35), 0 1px 0 rgba(255,255,255,.6) inset;
}

body[data-theme="aqua"] .theme-switcher{
  position: fixed; top: 16px; right: 16px; margin:0; z-index: 10;
  border-color:#8fa4bf; background:#eef3fa; box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
body[data-theme="aqua"] .theme-btn.on{ background: linear-gradient(180deg, #6ea8f5, #2c6fdb); }

body[data-theme="aqua"] .brand-label{ color: var(--accent); font-family: var(--font-mono); }
body[data-theme="aqua"] h1{
  font-family: var(--font-display); font-weight:500; font-style:italic; font-size:38px; color:#1b3a63;
  text-shadow: 0 1px 0 rgba(255,255,255,.8);
}
body[data-theme="aqua"] header p{ font-family: var(--font-body); color: var(--text-dim); }

body[data-theme="aqua"] .env-badge{
  border-radius:999px; border:1px solid rgba(255,255,255,.6); box-shadow: 0 1px 2px rgba(0,0,0,.15) inset;
}
body[data-theme="aqua"] .env-badge.sandbox{ background: linear-gradient(180deg,#bdf0d2,#63cf8f); color:#0d3f22; }
body[data-theme="aqua"] .env-badge.prod{ background: linear-gradient(180deg,#ffd0c4,#ff9d84); color:#5c1a0c; }

body[data-theme="aqua"] .goal-panel{
  background: linear-gradient(180deg, #f8fbff, #eaf1fa); border:1px solid #9fb3cc; border-radius:10px;
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}
body[data-theme="aqua"] .goal-title{ font-family:var(--font-body); letter-spacing:0; }
body[data-theme="aqua"] .goal-amounts{ font-style:italic; color:#1b3a63; }
body[data-theme="aqua"] .goal-track{
  height:14px; background: linear-gradient(180deg, #dfe8f3, #f4f8fd);
  border:1px solid #9fb3cc; border-radius:999px; box-shadow: inset 0 1px 3px rgba(20,40,70,.28);
}
body[data-theme="aqua"] .goal-fill{
  background: linear-gradient(180deg, #8dc0ff 0%, #3d81e8 48%, #2565c4 50%, #4f93ee 100%);
}
body[data-theme="aqua"] .goal-panel.reached .goal-fill{
  background: linear-gradient(180deg, #a8e8bf 0%, #4bc17e 48%, #23985a 50%, #63cf8f 100%);
}

body[data-theme="aqua"] .sprockets{ display:none; }

body[data-theme="aqua"] .dropzone{
  border: 1px solid #8fa4bf; border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #eaf1fb 100%);
  box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 8px 16px -8px rgba(30,60,100,.25);
}
body[data-theme="aqua"] .dropzone:hover{ border-color:#6ea0d8; }
body[data-theme="aqua"] .dropzone.active{
  border-color: var(--accent); box-shadow: 0 0 0 3px rgba(44,111,219,.25), 0 1px 0 rgba(255,255,255,.9) inset;
}
body[data-theme="aqua"] .dropzone .title{ font-family: var(--font-display); font-style:italic; font-size:20px; color:#1b3a63; }
body[data-theme="aqua"] .dropzone .sub{ font-family: var(--font-body); color: var(--text-faint); }
body[data-theme="aqua"] .dropzone .icon rect{ stroke:#5b7ba3; }
body[data-theme="aqua"] .dropzone .icon circle{ stroke:var(--accent); }

body[data-theme="aqua"] .settings-row, body[data-theme="aqua"] .rail{
  background: linear-gradient(180deg, #ffffff, #eef3fb);
  border:1px solid #b7c7dd; border-radius:12px;
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}
body[data-theme="aqua"] .setting-block label, body[data-theme="aqua"] .ctrl label{
  font-family: var(--font-body); text-transform:none; letter-spacing:0; color:#3a4c60; font-weight:600;
}
body[data-theme="aqua"] select, body[data-theme="aqua"] .box-label-input,
body[data-theme="aqua"] input[type=text], body[data-theme="aqua"] input[type=number], body[data-theme="aqua"] textarea{
  background: #ffffff; border:1px solid #9fb3cc; border-radius:7px; color:var(--text);
  box-shadow: inset 0 1px 3px rgba(20,40,70,.18);
  font-family: var(--font-body);
}
body[data-theme="aqua"] select:focus, body[data-theme="aqua"] input:focus, body[data-theme="aqua"] textarea:focus{
  border-color: var(--accent); box-shadow: 0 0 0 3px rgba(44,111,219,.25), inset 0 1px 3px rgba(20,40,70,.18);
}
body[data-theme="aqua"] input[type=range]{ accent-color: var(--accent); }
body[data-theme="aqua"] input[type=range]::-webkit-slider-thumb{
  background: radial-gradient(circle at 35% 30%, #ffffff, #6ea8f5 55%, #2c6fdb); border:1px solid #1b4fa0;
}
body[data-theme="aqua"] .seg{ border-radius:999px; overflow:hidden; border-color:#9fb3cc; }
body[data-theme="aqua"] .seg button{ font-family:var(--font-body); text-transform:none; letter-spacing:0; }
body[data-theme="aqua"] .seg button.on{ background: linear-gradient(180deg, #6ea8f5, #2c6fdb); }

body[data-theme="aqua"] .switch-label input{ accent-color: var(--accent); }

/* glossy Aqua "gel" buttons */
body[data-theme="aqua"] .publish-btn, body[data-theme="aqua"] .export-all{
  font-family: var(--font-body); text-transform:none; letter-spacing:0; font-weight:600;
  border-radius: 999px; border:1px solid #1b4fa0;
  background: linear-gradient(180deg, #74b0ff 0%, #2c6fdb 48%, #1c57b8 50%, #2c6fdb 100%);
  box-shadow: 0 1px 0 rgba(255,255,255,.5) inset, 0 2px 5px rgba(20,50,100,.35);
  color:#ffffff; text-shadow: 0 -1px 0 rgba(0,0,0,.25);
}
body[data-theme="aqua"] .publish-btn:hover, body[data-theme="aqua"] .export-all:hover{ filter:brightness(1.06); }
body[data-theme="aqua"] .secondary-btn{
  font-family: var(--font-body); text-transform:none; letter-spacing:0; font-weight:600; border-radius:999px;
  background: linear-gradient(180deg, #ffffff 0%, #e2eaf5 48%, #cddaeb 50%, #f4f8fd 100%);
  border-color:#9fb3cc; color:#2b3c50;
}

body[data-theme="aqua"] .card, body[data-theme="aqua"] .review-panel, body[data-theme="aqua"] .sort-bin{
  background: linear-gradient(180deg, #ffffff, #f1f5fb);
  border:1px solid #b7c7dd; border-radius:12px;
  box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 6px 14px -8px rgba(30,60,100,.25);
}
body[data-theme="aqua"] .card .filmstrip{ display:none; }
body[data-theme="aqua"] .review-head h2, body[data-theme="aqua"] .sort-board-head h2, body[data-theme="aqua"] .grid-head h2{
  font-family: var(--font-display); font-style:italic; font-weight:500; color:#1b3a63; text-transform:none; letter-spacing:0;
}
body[data-theme="aqua"] .category-tag{
  background: linear-gradient(180deg,#bcefd2,#7fd7a4); color:#0d3f22; border-radius:999px; border:1px solid #4fae76;
}
body[data-theme="aqua"] .field label{
  font-family: var(--font-body); text-transform:none; letter-spacing:0; color:#3a4c60; font-weight:600;
}
body[data-theme="aqua"] .frame-no, body[data-theme="aqua"] .fname,
body[data-theme="aqua"] .price-note, body[data-theme="aqua"] .reorder-hint{
  font-family: var(--font-body); color: var(--text-faint);
}
body[data-theme="aqua"] .pill{ border-radius:999px; font-family:var(--font-body); text-transform:none; letter-spacing:0; }
body[data-theme="aqua"] .pill.auto{ background: linear-gradient(180deg,#bcefd2,#7fd7a4); color:#0d3f22; }
body[data-theme="aqua"] .pill.center{ background:#e4eaf2; color:#5a6b80; }
body[data-theme="aqua"] .main-badge{ background: linear-gradient(180deg,#ffb199,#ff5f57); border-radius:999px; }
body[data-theme="aqua"] .sort-thumb, body[data-theme="aqua"] .thumb-row img, body[data-theme="aqua"] .card canvas{
  border-radius:8px; border:1px solid #9fb3cc; box-shadow: 0 2px 4px rgba(20,40,70,.2);
}
body[data-theme="aqua"] .sort-bin-head span{
  font-family: var(--font-body); text-transform:none; letter-spacing:0; color:#3a4c60; font-weight:600;
}
body[data-theme="aqua"] .sort-bin.drag-over{ border-color: var(--accent); background: #eaf2ff; }
body[data-theme="aqua"] .item-heading .num{
  font-family: var(--font-body); background: linear-gradient(180deg,#fff,#e2eaf5); border-color:#9fb3cc; color:#2b3c50;
}
body[data-theme="aqua"] .success-panel{
  background: linear-gradient(180deg,#d6f5e2,#a9e8c2); border:1px solid #4fae76; color:#0d3f22; border-radius:12px;
}
body[data-theme="aqua"] .success-panel a{ color:#0d3f22; text-decoration:underline; }
body[data-theme="aqua"] .draft-warning{
  background: linear-gradient(180deg,#ffe3da,#ffbfa8); border:1px solid #d97a5a; color:#5c1a0c; border-radius:12px;
}
body[data-theme="aqua"] .specific-row label{ font-family: var(--font-body); color:#5a6b80; }
body[data-theme="aqua"] .promote-warn{ color:#8a2c14; }

.ai-desc-row{ display:flex; align-items:center; gap:10px; margin: 4px 0 8px; }
.ai-desc-row .switch-label{ font-size:12.5px; }
.ai-desc-status{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }
body[data-theme="aqua"] .ai-desc-row .switch-label{ font-family: var(--font-body); }

/* ============ List All bar ============ */
.list-all-bar{ display:flex; align-items:center; gap:14px; margin: 26px 0 6px; padding:16px 18px;
  background: var(--panel); border:1px solid var(--line-soft); border-radius:4px; }
.list-all-bar .publish-btn{ padding:12px 24px; }

/* ============ Lightbox ============ */
.lightbox{ position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; }
.lightbox-backdrop{ position:absolute; inset:0; background:rgba(8,7,6,0.82); }
.lightbox-panel{
  position:relative; background:var(--panel); border:1px solid var(--line-soft); border-radius:6px;
  padding:14px; max-width:90vw; max-height:90vh; display:flex; flex-direction:column; gap:12px;
}
.lightbox-toolbar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.lb-btn{
  background:var(--panel-2); border:1px solid var(--line); color:var(--text-dim); font-family:var(--font-mono);
  font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; padding:8px 12px; border-radius:3px; cursor:pointer;
}
.lb-btn:hover{ border-color:var(--text-faint); color:var(--text); }
.lb-btn.primary{ background:var(--accent); border-color:var(--accent); color:#fff; }
.lb-btn.lb-close{ margin-left:auto; font-size:18px; padding:4px 12px; line-height:1; }
.lb-status{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }
.lightbox-image-wrap{ position:relative; display:inline-block; line-height:0; margin:0 auto; }
#lbImage{ display:block; max-width:80vw; max-height:70vh; border-radius:3px; }
.lb-crop-overlay{ position:absolute; inset:0; }
.lb-crop-shade{ position:absolute; background:rgba(0,0,0,0.55); }
.lb-crop-rect{ position:absolute; border:2px solid var(--accent); box-shadow:0 0 0 9999px transparent; }
.lb-crop-handle{
  position:absolute; width:14px; height:14px; background:var(--accent); border:2px solid #fff; border-radius:50%;
  transform:translate(-50%,-50%); cursor:pointer;
}
.lb-crop-handle.tl{ top:0; left:0; cursor:nwse-resize; }
.lb-crop-handle.tr{ top:0; left:100%; cursor:nesw-resize; }
.lb-crop-handle.bl{ top:100%; left:0; cursor:nesw-resize; }
.lb-crop-handle.br{ top:100%; left:100%; cursor:nwse-resize; }

.reorder-thumb-wrap .sort-thumb{ cursor:pointer; }
.reorder-thumb-wrap{ position:relative; }
.reorder-thumb-wrap::after{
  content:"🔍"; position:absolute; bottom:3px; right:3px; font-size:11px; background:rgba(0,0,0,.55);
  border-radius:3px; padding:1px 3px; opacity:0; transition:opacity .15s; pointer-events:none;
}
.reorder-thumb-wrap:hover::after{ opacity:1; }

body[data-theme="aqua"] .list-all-bar{
  background: linear-gradient(180deg, #ffffff, #eef3fb); border:1px solid #b7c7dd; border-radius:12px;
}
body[data-theme="aqua"] .lightbox-panel{ background:#fff; border-color:#8fa4bf; border-radius:14px; }
body[data-theme="aqua"] .lb-btn{
  font-family:var(--font-body); text-transform:none; letter-spacing:0; border-radius:999px;
  background: linear-gradient(180deg, #ffffff 0%, #e2eaf5 48%, #cddaeb 50%, #f4f8fd 100%); border-color:#9fb3cc; color:#2b3c50;
}
body[data-theme="aqua"] .lb-btn.primary{
  background: linear-gradient(180deg, #74b0ff 0%, #2c6fdb 48%, #1c57b8 50%, #2c6fdb 100%); border-color:#1b4fa0; color:#fff;
}

.publish-status-error{ color: #ff8a72; }
body[data-theme="aqua"] .publish-status-error{ color: #b8391a; font-weight:600; }

/* ============ Aqua padding fixes ============
   Several containers (like .settings-row) have no padding at all in the base
   theme since they're invisible flex wrappers there - Aqua gives them a
   visible glassy border/background, so they need real padding of their own.
   Pill-shaped elements (border-radius:999px in Aqua) also need more
   horizontal room than their flatter classic-theme counterparts, or text
   reads as pinched against the curve. */
body[data-theme="aqua"] .settings-row{ padding: 14px 18px; }
body[data-theme="aqua"] .rail{ padding: 18px 20px; }
body[data-theme="aqua"] .env-badge{ padding: 7px 16px; }
body[data-theme="aqua"] .category-tag{ padding: 5px 14px; }
body[data-theme="aqua"] .item-heading .num{ padding: 4px 14px; }
body[data-theme="aqua"] .pill{ padding: 3px 12px; }
body[data-theme="aqua"] .main-badge{ padding: 3px 10px; }
body[data-theme="aqua"] .publish-btn{ padding: 12px 26px; }
body[data-theme="aqua"] .export-all{ padding: 10px 22px; }
body[data-theme="aqua"] .secondary-btn{ padding: 10px 22px; }
body[data-theme="aqua"] .lb-btn{ padding: 9px 18px; }
body[data-theme="aqua"] .lb-btn.lb-close{ padding: 5px 14px; }
body[data-theme="aqua"] .seg button{ padding: 8px 12px; }
body[data-theme="aqua"] .theme-btn{ padding: 8px 20px; }
body[data-theme="aqua"] .list-all-bar{ padding: 18px 22px; }
body[data-theme="aqua"] .card-body{ padding: 14px 16px 16px; }
body[data-theme="aqua"] .lightbox-panel{ padding: 18px; }

/* ============ SKU / Box label block (prominent, required) ============ */
.sku-block{
  margin: 20px 0; padding: 18px 20px; background: var(--panel-2); border: 1.5px solid var(--accent-dim);
  border-radius: 4px;
}
.sku-label{
  display:block; font-family: var(--font-display); font-size:15px; font-weight:600; color:var(--text);
  margin-bottom: 10px;
}
.sku-required-tag{
  font-family: var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.05em;
  color: var(--accent); background: var(--accent-dim); padding: 2px 8px; border-radius: 10px; margin-left: 8px;
  vertical-align: middle;
}
.sku-required-tag.optional{ color: var(--text-faint); background: var(--panel); }
.box-label-input-big{
  width:100%; background: var(--panel); border: 1px solid var(--line); color: var(--text);
  padding: 13px 14px; border-radius: 4px; font-family: var(--font-mono); font-size: 15px; margin-bottom: 10px;
}
.box-label-input-big:focus{ border-color: var(--accent); outline:none; }
.box-label-input-big:disabled{ opacity:.5; }
.sku-skip-label{ font-size: 12.5px; color: var(--text-faint); }
.sku-error{
  margin-top: 10px; font-family: var(--font-mono); font-size: 12px; color: var(--accent);
  background: var(--accent-dim); padding: 8px 12px; border-radius: 3px;
}

body[data-theme="aqua"] .sku-block{
  background: linear-gradient(180deg, #ffffff, #eef3fb); border: 1.5px solid var(--accent);
  border-radius: 12px; box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}
body[data-theme="aqua"] .sku-label{ font-family: var(--font-display); font-style:italic; font-size:18px; color:#1b3a63; }
body[data-theme="aqua"] .sku-required-tag{ border-radius:999px; }
body[data-theme="aqua"] .box-label-input-big{
  background:#fff; border:1px solid #9fb3cc; border-radius:7px; font-family: var(--font-body);
  box-shadow: inset 0 1px 3px rgba(20,40,70,.18);
}
body[data-theme="aqua"] .sku-skip-label{ font-family: var(--font-body); }
body[data-theme="aqua"] .sku-error{ border-radius:8px; }

/* ============ Category change picker ============ */
.category-tag-btn{ cursor:pointer; border:1px dashed transparent; font-family:inherit; }
.category-tag-btn:hover{ border-color: currentColor; }
.category-panel{
  background: var(--panel-2); border:1px solid var(--line); border-radius:4px;
  padding:14px; margin-bottom:18px;
}
.category-search-row{ display:flex; gap:8px; }
.category-search-row input{
  flex:1; background: var(--panel); border:1px solid var(--line); color:var(--text);
  padding:9px 10px; border-radius:3px; font-family:var(--font-body); font-size:13px;
}
.category-search-row input:focus{ border-color:var(--accent); outline:none; }
.category-status{ font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); margin-top:8px; }
.category-status:empty{ margin-top:0; }
.category-results{ display:flex; flex-direction:column; gap:6px; margin-top:10px; }
.category-result{
  text-align:left; background: var(--panel); border:1px solid var(--line-soft); border-radius:3px;
  padding:9px 11px; cursor:pointer; color:var(--text); font-family:var(--font-body); font-size:13px;
  display:flex; flex-direction:column; gap:3px;
}
.category-result:hover{ border-color:var(--accent); }
.category-path{ font-family:var(--font-mono); font-size:10.5px; color:var(--text-faint); }

body[data-theme="aqua"] .category-panel{
  background: linear-gradient(180deg, #ffffff, #eef3fb); border:1px solid #b7c7dd; border-radius:12px; padding:16px 18px;
}
body[data-theme="aqua"] .category-search-row input{
  background:#fff; border:1px solid #9fb3cc; border-radius:7px; box-shadow: inset 0 1px 3px rgba(20,40,70,.18);
}
body[data-theme="aqua"] .category-result{
  background: linear-gradient(180deg, #ffffff, #f4f8fd); border:1px solid #b7c7dd; border-radius:8px; padding:10px 13px;
}
body[data-theme="aqua"] .category-result:hover{ border-color: var(--accent); }
body[data-theme="aqua"] .category-path{ font-family: var(--font-body); }

/* ============ Condition descriptors (graded/ungraded cards, coins) ============ */
.cond-descriptors{
  background: var(--panel-2); border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:4px; padding:14px 16px; margin-bottom:16px;
}
.cond-desc-heading{
  font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--text-faint); margin-bottom:10px;
}
.cond-descriptors select, .cond-descriptors input{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text);
  padding:7px 9px; border-radius:3px; font-family:var(--font-body); font-size:13px;
}
body[data-theme="aqua"] .cond-descriptors{
  background: linear-gradient(180deg, #ffffff, #eef3fb); border:1px solid #b7c7dd;
  border-left:3px solid var(--accent); border-radius:12px; padding:16px 18px;
}
body[data-theme="aqua"] .cond-desc-heading{ font-family:var(--font-body); text-transform:none; letter-spacing:0; }
body[data-theme="aqua"] .cond-descriptors select, body[data-theme="aqua"] .cond-descriptors input{
  background:#fff; border:1px solid #9fb3cc; border-radius:7px; box-shadow: inset 0 1px 3px rgba(20,40,70,.18);
}

.sort-bin-remove{
  background:transparent; border:1px solid var(--line); color:var(--text-faint);
  width:24px; height:24px; border-radius:50%; font-size:16px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding:0; flex:none; transition:.15s;
}
.sort-bin-remove:hover{ border-color:var(--accent); color:var(--accent); }
body[data-theme="aqua"] .sort-bin-remove{
  background: linear-gradient(180deg,#ffffff,#e2eaf5); border-color:#9fb3cc; color:#5a6b80;
}
body[data-theme="aqua"] .sort-bin-remove:hover{ border-color:var(--accent); color:var(--accent); }

/* ============ Progress bar ============ */
.progress-wrap{ margin: 18px 0 4px; }
.progress-label{
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing:.04em; color: var(--text-dim);
  margin-bottom: 8px;
}
.progress-track{
  height: 6px; background: var(--panel-2); border:1px solid var(--line-soft);
  border-radius: 999px; overflow: hidden;
}
.progress-fill{
  height:100%; width:0%; background: var(--accent);
  border-radius: 999px; transition: width .25s ease-out;
  background-image: repeating-linear-gradient(
    -45deg, rgba(255,255,255,.22) 0 8px, transparent 8px 16px);
  background-size: 22px 22px;
  animation: progressStripes .7s linear infinite;
}
@keyframes progressStripes{ from{ background-position: 0 0; } to{ background-position: 22px 0; } }

/* Aqua's progress bars were glossy blue capsules with marching stripes */
body[data-theme="aqua"] .progress-label{ font-family: var(--font-body); letter-spacing:0; color:#3a4c60; }
body[data-theme="aqua"] .progress-track{
  height: 14px; background: linear-gradient(180deg, #dfe8f3, #f4f8fd);
  border:1px solid #9fb3cc; border-radius:999px;
  box-shadow: inset 0 1px 3px rgba(20,40,70,.28);
}
body[data-theme="aqua"] .progress-fill{
  background: linear-gradient(180deg, #8dc0ff 0%, #3d81e8 48%, #2565c4 50%, #4f93ee 100%);
  background-image:
    repeating-linear-gradient(-45deg, rgba(255,255,255,.35) 0 9px, transparent 9px 18px),
    linear-gradient(180deg, #8dc0ff 0%, #3d81e8 48%, #2565c4 50%, #4f93ee 100%);
  background-size: 26px 26px, 100% 100%;
  box-shadow: 0 1px 0 rgba(255,255,255,.55) inset;
  animation: progressStripesAqua .6s linear infinite;
}
@keyframes progressStripesAqua{ from{ background-position: 0 0, 0 0; } to{ background-position: 26px 0, 0 0; } }

/* ============ Inventory dashboard ============ */
.nav-link{ font-family:var(--font-mono); font-size:12px; color:var(--text-dim); text-decoration:none;
  border:1px solid var(--line); padding:8px 14px; border-radius:3px; height:fit-content; }
.nav-link:hover{ border-color:var(--text-faint); color:var(--text); }

/* App switcher - the three tools get their own brand color each (fixed across
   both themes, like dock icons) so they're easy to tell apart at a glance,
   instead of three identical gray links. */
/* ============ LEFT NAVIGATION PANE ============
   Fixed drawer on the left. Docked on desktop (body.nav-open adds a left gutter
   below), an overlay drawer with a backdrop on phone width. */
.app-sidebar{
  position:fixed; top:0; left:0; bottom:0; width:var(--sidebar-w); z-index:200;
  display:flex; flex-direction:column; gap:6px; padding:16px 12px;
  background:var(--panel); border-right:1px solid var(--line-soft);
  transform:translateX(-100%); transition:transform .2s ease; overflow-y:auto;
}
body.nav-open .app-sidebar{ transform:none; box-shadow: 6px 0 24px -12px rgba(0,0,0,.55); }

.sidebar-brand{ display:flex; align-items:center; gap:9px; padding:6px 8px 12px; }
.sidebar-brand-mark{ font-size:20px; line-height:1; }
.sidebar-brand-name{ font-family:var(--font-display); font-weight:600; font-size:15px; color:var(--text); }
.nav-collapse{ margin-left:auto; background:none; border:none; color:var(--text-faint);
  font-size:18px; line-height:1; cursor:pointer; padding:2px 6px; border-radius:6px; }
.nav-collapse:hover{ color:var(--text); background:var(--panel-2); }

.sidebar-nav{ display:flex; flex-direction:column; gap:3px; }
.nav-item{
  --c: var(--accent);
  display:flex; align-items:center; gap:11px; padding:10px 11px; border-radius:9px;
  text-decoration:none; color:var(--text-dim); font-family:var(--font-display);
  font-weight:600; font-size:14px; border-left:3px solid transparent; transition:.12s;
}
.nav-item:hover{ background:var(--panel-2); color:var(--text); }
.nav-item-icon{ font-size:17px; line-height:1; width:20px; text-align:center; }
.nav-item-lister{ --c:#ff7a4a; }
.nav-item-pricing{ --c:#5b93ff; }
.nav-item-crosslisting{ --c:#c073ff; }
.nav-item-inventory{ --c:#3fcf80; }
.nav-item-profile{ --c:#f2c14e; }
.nav-item-setup{ --c:#8a93a6; }
/* Active section (driven by body[data-page]); the names differ from the on-screen
   labels - see the data-page mapping. */
body[data-page="lister"] .nav-item-lister,
body[data-page="inventory"] .nav-item-pricing,
body[data-page="crosslisting"] .nav-item-crosslisting,
body[data-page="warehouse"] .nav-item-inventory,
body[data-page="setup"] .nav-item-setup,
body[data-page="profile"] .nav-item-profile{
  color:var(--text); background:color-mix(in srgb, var(--c) 16%, transparent);
  border-left-color:var(--c); cursor:default;
}

/* While drafting: swap the cross-app links for a Home button, giving the batch
   list the room. */
.sidebar-home{ display:none; }
body.drafting .sidebar-nav{ display:none; }
body.drafting .sidebar-home{ display:flex; }

/* Keep the setup-stage panels down for the whole drafting session - the
   background polls (saved drafts / pending batches) would otherwise re-render
   and un-hide them behind the review card. */
body.drafting #savedDraftsPanel,
body.drafting #pendingPanel,
body.drafting #skuBlock,
body.drafting #phonePanel{ display:none !important; }

/* Drafts sub-nav (Easy Lister drafting only) - pick which single card to review.
   Roomier now that it's the focus of the pane: full titles wrap, bigger text,
   and a second line of context (price · category). */
.sidebar-drafts{ margin-top:14px; border-top:1px solid var(--line-soft); padding-top:12px; }
.sidebar-section-title{ display:flex; align-items:center; justify-content:space-between; gap:8px;
  font-family:var(--font-mono); font-size:10.5px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--text-faint); padding:0 8px 9px; }
.sidebar-batch-count{ font-size:10.5px; letter-spacing:.04em; color:var(--text-dim);
  background:var(--panel-2); border:1px solid var(--line-soft); border-radius:999px; padding:1px 8px; }
.sidebar-batch-count.all-done{ color:var(--mint); border-color:var(--mint-dim); }
.sidebar-drafts-list{ display:flex; flex-direction:column; gap:3px; }
.sidebar-draft-item{
  display:flex; align-items:flex-start; gap:9px; padding:9px 9px; border-radius:8px;
  background:none; border:none; border-left:2px solid transparent; text-align:left; width:100%;
  cursor:pointer; color:var(--text-dim); }
.sidebar-draft-item:hover{ background:var(--panel-2); color:var(--text); }
/* The card currently on screen. */
.sidebar-draft-item.is-current{ background:var(--panel-2); color:var(--text);
  border-left-color:var(--accent); }
.sidebar-draft-dot{ flex:0 0 auto; width:9px; height:9px; margin-top:5px; border-radius:50%;
  background:var(--text-faint); }
.sidebar-draft-item.is-pending .sidebar-draft-dot{ background:var(--accent); }
.sidebar-draft-check{ flex:0 0 auto; width:10px; margin-top:2px; text-align:center; color:var(--mint);
  font-size:13px; line-height:1; }
.sidebar-draft-body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
/* Full title, wrapping to as many lines as it needs. */
.sidebar-draft-name{ font-family:var(--font-display); font-weight:600; font-size:13.5px;
  line-height:1.3; white-space:normal; overflow-wrap:anywhere; }
/* Context line in a distinct mono style. */
.sidebar-draft-meta{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint);
  letter-spacing:.01em; }
.sidebar-draft-item.is-listed .sidebar-draft-name{ color:var(--text-dim); }

/* One-card-at-a-time review board: only the selected card is shown. */
#reviewItemsContainer.single-card .review-item:not(.is-current){ display:none !important; }
#reviewItemsContainer.single-card .review-item.is-current{ display:block; }

/* One card at a time leaves room to breathe: a larger, roomier review panel and
   bigger inputs than the old stacked-board layout needed. */
#reviewItemsContainer.single-card .review-panel{ padding:30px 32px; margin-top:20px; }
#reviewItemsContainer.single-card .review-head h2{ font-size:19px; }
#reviewItemsContainer.single-card .review-panel label{ font-size:12px; }
#reviewItemsContainer.single-card .review-panel input[type=text],
#reviewItemsContainer.single-card .review-panel input[type=number],
#reviewItemsContainer.single-card .review-panel textarea,
#reviewItemsContainer.single-card .review-panel select{ font-size:15px; padding:11px 12px; }
#reviewItemsContainer.single-card [data-role="title"]{ font-size:17px; font-weight:600; }
#reviewItemsContainer.single-card .item-heading .num{ font-size:12px; padding:4px 12px; }

/* Back / Next bar under the card - each button names its target item + status.
   The two are pushed to opposite edges so they read as clearly separate. */
.card-nav{ display:flex; justify-content:space-between; gap:28px; margin:22px 0 6px; }
.card-nav-btn{
  flex:0 1 46%; min-width:0; display:flex; flex-direction:column; gap:3px;
  background:var(--panel); border:1px solid var(--line); border-radius:8px;
  padding:11px 14px; cursor:pointer; color:var(--text); transition:.12s;
}
.card-nav-next{ position:relative; text-align:right; align-items:flex-end; }
.card-nav-prev{ text-align:left; align-items:flex-start; }
.card-nav-btn:hover:not(:disabled){ border-color:var(--accent); }
.card-nav-btn:disabled{ opacity:.35; cursor:default; }
.card-nav-dir{ font-family:var(--font-mono); font-size:10.5px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--text-faint); }
.card-nav-title{ font-family:var(--font-display); font-weight:600; font-size:13.5px;
  line-height:1.3; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.card-nav-status{ font-family:var(--font-mono); font-size:10px; color:var(--text-faint); }
.card-nav-status.listed{ color:var(--mint); }
@media (max-width:560px){ .card-nav-title{ display:none; } }

/* Once the item on screen is listed, the Next button lights up and prompts the
   user to move on. */
.card-nav-next.ready{ border-color:var(--mint); color:var(--text);
  animation: nextReadyPulse 1.6s ease-in-out infinite; }
.card-nav-next.ready .card-nav-dir{ color:var(--mint); }
@keyframes nextReadyPulse{
  0%,100%{ box-shadow:0 0 0 1px transparent, 0 0 10px -8px var(--mint); }
  50%{ box-shadow:0 0 0 1px var(--mint), 0 0 18px -2px var(--mint); }
}
.card-nav-next.ready::after{
  content:"Ready to list another item?";
  position:absolute; bottom:calc(100% + 9px); right:0; z-index:5;
  background:var(--mint); color:#0d2a1e; font-family:var(--font-body); font-weight:600;
  font-size:11.5px; white-space:nowrap; padding:6px 11px; border-radius:8px;
  box-shadow:0 6px 16px -6px rgba(0,0,0,.55); animation: bubbleIn .28s ease-out; }
@keyframes bubbleIn{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){
  .card-nav-next.ready{ animation:none; }
  .card-nav-next.ready::after{ animation:none; }
}

/* "All items listed!" celebration when the last one publishes. */
.all-listed{ margin:16px 0 6px; text-align:center; font-family:var(--font-display);
  font-weight:600; font-size:18px; color:var(--mint); padding:16px;
  border:1px solid var(--mint-dim); border-radius:10px; background:rgba(143,227,192,.09); }
.all-listed.pop{ animation: allListedPop .55s cubic-bezier(.2,.85,.25,1); }
@keyframes allListedPop{
  0%{ transform:scale(.85); opacity:0; }
  55%{ transform:scale(1.06); opacity:1; }
  100%{ transform:scale(1); }
}
@media (prefers-reduced-motion: reduce){ .all-listed.pop{ animation:none; } }

/* "Start a new batch", relocated into the sidebar's batch section. */
.sidebar-newbatch{ margin-top:10px; width:100%; padding:8px 10px; border-radius:8px;
  background:none; border:1px dashed var(--line); color:var(--text-dim);
  font-family:var(--font-display); font-weight:600; font-size:12.5px; cursor:pointer; }
.sidebar-newbatch:hover{ border-color:var(--text-faint); color:var(--text); }

/* The Today's Goal panel while relocated into the sidebar during drafting -
   compacted to fit the narrow pane. Empty slot collapses away. */
.sidebar-goal-slot:empty{ display:none; }
.sidebar-goal-slot{ margin-top:14px; }
.goal-panel.in-sidebar{ margin:0; padding:12px; border-radius:10px;
  background:var(--panel-2); border:1px solid var(--line-soft); }
.goal-panel.in-sidebar .goal-title{ font-size:12.5px; }
.goal-panel.in-sidebar .goal-amounts{ font-size:15px; margin-top:7px; }
.goal-panel.in-sidebar .goal-projected{ font-size:10.5px; }
.goal-panel.in-sidebar .goal-week-chart,
.goal-panel.in-sidebar .goal-list{ max-width:100%; overflow-x:auto; }

.sidebar-footer{ margin-top:auto; padding-top:14px; display:flex; flex-direction:column; gap:10px; }
.sidebar-footer-btn{
  display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius:9px;
  background:var(--panel-2); border:1px solid var(--line); color:var(--text-dim);
  font-family:var(--font-display); font-weight:600; font-size:13px; cursor:pointer; transition:.12s;
}
.sidebar-footer-btn:hover{ border-color:var(--text-faint); color:var(--text); }
.sidebar-footer-btn .settings-gear-icon{ font-size:16px; }
.sidebar-footer-btn .settings-gear-label{ font-size:13px; }
/* The theme switcher lives in the footer now - full width, not the old centered pill. */
.sidebar-footer .theme-switcher{ margin:0; width:100%; justify-content:center; }
.sidebar-footer .theme-switcher .theme-btn{ flex:1; padding:7px 10px; }

/* Hamburger (shown when the pane is hidden) + backdrop (phone overlay only). */
.nav-toggle{
  position:fixed; top:12px; left:12px; z-index:210; width:40px; height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--panel); border:1px solid var(--line); color:var(--text);
  border-radius:9px; font-size:18px; cursor:pointer; box-shadow:0 2px 8px -2px rgba(0,0,0,.5);
}
.nav-toggle:hover{ border-color:var(--text-faint); }
body.nav-open .nav-toggle{ display:none; }
.nav-backdrop{ position:fixed; inset:0; z-index:180; background:rgba(0,0,0,.5); }

/* Desktop: an open pane docks and pushes the content over. */
@media (min-width:861px){
  body.nav-open{ padding-left:var(--sidebar-w); }
}
/* Phone: the pane overlays; keep content clear of the floating hamburger. */
@media (max-width:860px){
  .wrap{ padding-top:64px; }
  .app-sidebar{ width:min(86vw, 300px); }
}

/* Aqua theme: keep the pane and its footer chrome consistent (override the old
   fixed top-right theme pill, which now lives inside the sidebar). */
body[data-theme="aqua"] .app-sidebar{
  background:linear-gradient(180deg,#eef3fa,#dce7f3); border-right:1px solid #8fa4bf;
}
body[data-theme="aqua"] .sidebar-brand-name,
body[data-theme="aqua"] .nav-item{ color:#26425f; }
body[data-theme="aqua"] .sidebar-footer .theme-switcher{
  position:static; top:auto; right:auto; width:100%;
}
body[data-theme="aqua"] .nav-toggle{ background:#eef3fa; border-color:#8fa4bf; color:#26425f; }
.inv-toolbar{ display:flex; align-items:center; gap:14px; margin:18px 0 6px; flex-wrap:wrap; }
.last-sync{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); margin-left:auto; }
.inv-tabs{ display:flex; gap:6px; margin:22px 0 16px; border-bottom:1px solid var(--line-soft); }
.inv-tab{ background:transparent; border:none; border-bottom:2px solid transparent; color:var(--text-faint);
  font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:.05em;
  padding:10px 14px; cursor:pointer; }
.inv-tab.on{ color:var(--accent); border-bottom-color:var(--accent); }
.inv-panel{ animation: none; }

.totals-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; margin-bottom:16px; }
.total-cell{ background:var(--panel); border:1px solid var(--line-soft); border-radius:4px; padding:12px 14px; }
.total-label{ font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--text-faint); margin-bottom:6px; }
.total-value{ font-family:var(--font-display); font-size:19px; font-weight:600; }
.total-value.neg{ color:var(--accent); }

.fee-notice{ background:var(--panel-2); border-left:3px solid var(--accent); border-radius:3px;
  padding:10px 14px; font-family:var(--font-mono); font-size:11.5px; color:var(--text-dim); margin-bottom:16px; }

/* ---------- Dashboard ---------- */
.dash-toolbar{ display:flex; align-items:center; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.dash-chart-card{ background:var(--panel); border:1px solid var(--line-soft); border-radius:4px;
  padding:16px 18px; margin-bottom:16px; }
.dash-chart-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.dash-chart-title{ font-family:var(--font-display); font-size:15px; font-weight:600; margin:0 0 10px; }
.dash-chart-head .dash-chart-title{ margin-bottom:0; }
.dash-legend{ display:flex; gap:14px; font-family:var(--font-mono); font-size:11px; color:var(--text-dim);
  text-transform:uppercase; letter-spacing:.05em; }
.dash-legend-item{ display:flex; align-items:center; gap:6px; }
.dash-swatch{ width:10px; height:10px; border-radius:2px; display:inline-block; }
.dash-swatch-gross{ background:var(--accent); }
.dash-swatch-net{ background:var(--mint); }
.dash-chart{ width:100%; margin-top:8px; }
.dash-chart svg{ display:block; width:100%; height:auto; overflow:visible; }
.dash-chart-empty{ color:var(--text-faint); font-family:var(--font-mono); font-size:12px; padding:20px 0; text-align:center; }
.dash-axis-label{ font-family:var(--font-mono); font-size:9px; fill:var(--text-faint); }
.dash-gridline{ stroke:var(--line-soft); stroke-width:1; }
.dash-line-gross{ fill:none; stroke:var(--accent); stroke-width:2; }
.dash-line-net{ fill:none; stroke:var(--mint); stroke-width:2; }
.dash-dot-gross{ fill:var(--accent); }
.dash-dot-net{ fill:var(--mint); }
.dash-dot-gross, .dash-dot-net{ cursor:pointer; }
.dash-bar-bulk{ fill:var(--accent); }
.dash-bar-single{ fill:var(--mint); }
.dash-bar-value{ font-family:var(--font-mono); font-size:11px; fill:var(--text); }
.dash-bar-bulk, .dash-bar-single{ cursor:pointer; }

.dash-tooltip{
  position:fixed; z-index:500; pointer-events:none;
  background:var(--panel-2); border:1px solid var(--line);
  border-radius:4px; padding:6px 9px; font-family:var(--font-mono);
  font-size:11px; line-height:1.5; color:var(--text); white-space:pre;
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
}

.inv-table{ width:100%; border-collapse:collapse; font-size:13px; }
.inv-table th{ text-align:left; font-family:var(--font-mono); font-size:10px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--text-faint); padding:8px 10px; border-bottom:1px solid var(--line); }
.inv-table td{ padding:9px 10px; border-bottom:1px solid var(--line-soft); vertical-align:middle; }
.inv-table td.num, .inv-table th.num{ text-align:right; font-variant-numeric:tabular-nums; }
.inv-table td.dim{ color:var(--text-faint); }
.inv-table td.small{ font-size:11.5px; }
.inv-table td.pos{ color:var(--mint); }
.inv-table td.neg{ color:var(--accent); }
.inv-table td.warn{ color:var(--accent); font-weight:600; }
.inv-table th.sortable{ cursor:pointer; user-select:none; }
.inv-table th.sortable:hover{ color:var(--text-dim); }
.inv-table th.sortable .sort-arrow{ display:inline-block; margin-left:3px; opacity:.3; }
.inv-table th.sort-active{ color:var(--accent); }
.inv-table th.sort-active .sort-arrow{ opacity:1; }
.sku-line{ font-family:var(--font-mono); font-size:10px; color:var(--text-faint); margin-top:2px; }
/* Item title and "Why" reason both used to word-wrap raggedly across several
   lines, blowing up row height. Clip to one line and rely on the title
   attribute (native tooltip) for the full text. */
.item-cell{ max-width:280px; }
.item-title-text{ display:inline-block; max-width:100%; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; vertical-align:bottom; }
.why-text{ display:inline-block; max-width:220px; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; vertical-align:bottom; }
/* Columns that aren't needed on every pass - toggled via "Show all columns". */
.inv-table.compact-cols .col-extra{ display:none; }
.est-tag{ font-family:var(--font-mono); font-size:9.5px; text-transform:uppercase; letter-spacing:.04em;
  background:var(--line-soft); color:var(--text-faint); padding:1px 6px; border-radius:8px; }
.cogs-input{ width:104px; min-width:104px; background:var(--panel-2); border:1px solid var(--line);
  color:var(--text); padding:7px 10px; border-radius:3px; font-size:13.5px; text-align:right;
  font-variant-numeric:tabular-nums; }
.cogs-input:focus{ border-color:var(--accent); outline:none; }
.cogs-input[data-default]{ color:var(--text-faint); font-style:italic; }
/* The right-aligned value was colliding with the native up/down spinner,
   most visibly in Safari. Hide the spinner on these editable cells - the value
   is meant to be typed, and the arrows add nothing here. */
.cogs-input::-webkit-outer-spin-button,
.cogs-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.cogs-input{ -moz-appearance:textfield; appearance:textfield; }
.slow-filters{ display:flex; align-items:center; gap:16px; margin-bottom:16px; flex-wrap:wrap; }
.slow-actions{ display:flex; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.slow-actions-label{ font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--text-faint); min-width:64px; }
.settings-card{ background:var(--panel); border:1px solid var(--line-soft); border-radius:4px; padding:20px; }
.settings-group{ padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line-soft); }
.settings-group:last-of-type{ border-bottom:none; margin-bottom:0; padding-bottom:0; }
.settings-group-title{ font-family:var(--font-display); font-size:14px; margin:0 0 14px; color:var(--text-faint); }
.empty{ text-align:center; padding:40px 20px; color:var(--text-faint); font-family:var(--font-mono);
  font-size:13px; border:1px dashed var(--line-soft); border-radius:4px; }

body[data-theme="aqua"] .nav-link{ border-radius:999px; background:linear-gradient(180deg,#fff,#e2eaf5);
  border-color:#9fb3cc; color:#2b3c50; font-family:var(--font-body); }
body[data-theme="aqua"] .inv-tab{ font-family:var(--font-body); text-transform:none; letter-spacing:0; }
body[data-theme="aqua"] .total-cell, body[data-theme="aqua"] .settings-card{
  background:linear-gradient(180deg,#ffffff,#eef3fb); border:1px solid #b7c7dd; border-radius:12px; }
body[data-theme="aqua"] .total-label{ font-family:var(--font-body); text-transform:none; letter-spacing:0; }
body[data-theme="aqua"] .total-value{ font-family:var(--font-display); font-style:italic; color:#1b3a63; }
body[data-theme="aqua"] .inv-table th{ font-family:var(--font-body); text-transform:none; letter-spacing:0; }
body[data-theme="aqua"] .cogs-input{ background:#fff; border:1px solid #9fb3cc; border-radius:6px; }
body[data-theme="aqua"] .fee-notice{ font-family:var(--font-body); border-radius:8px; }

.header-right{ display:flex; align-items:center; gap:10px; height:fit-content; }

.edit-hint{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint);
  margin-bottom:10px; line-height:1.5; }
body[data-theme="aqua"] .edit-hint{ font-family:var(--font-body); }

.notice-line{ margin-bottom:6px; }
.notice-line:last-child{ margin-bottom:0; }

/* keep the numeric editing columns from being squeezed */
.inv-table td.num .cogs-input{ display:inline-block; }
.inv-table th, .inv-table td{ white-space:nowrap; }
.inv-table td:nth-child(2){ white-space:normal; min-width:180px; }
body[data-theme="aqua"] .cogs-input{ padding:7px 12px 7px 10px; width:98px; min-width:98px; }

/* ============ Bulk listing ============ */
.bulk-bar{ background:var(--panel); border:1px solid var(--accent-dim); border-left:3px solid var(--accent);
  border-radius:4px; padding:18px 20px; margin:22px 0 6px; }
.bulk-bar-title{ font-family:var(--font-display); font-size:16px; font-weight:600; color:var(--text);
  margin-bottom:8px; }
.bulk-bar-hint{ font-size:12.5px; color:var(--text-dim); line-height:1.6; margin:0 0 12px; }
.bulk-example{ font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint);
  background:var(--panel-2); padding:2px 7px; border-radius:3px; }
.bulk-bar textarea{ width:100%; background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  padding:11px 12px; border-radius:4px; font-family:var(--font-body); font-size:14px; resize:vertical;
  margin-bottom:10px; }
.bulk-bar textarea:focus{ border-color:var(--accent); outline:none; }
.bulk-bar-actions{ display:flex; align-items:center; gap:12px; }
.bulk-desc-status, .ai-desc-status{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }
.copy-to-all-btn{ background:transparent; border:1px solid var(--line); color:var(--text-dim);
  font-family:var(--font-mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.04em;
  padding:4px 10px; border-radius:3px; cursor:pointer; margin-left:auto; }
.copy-to-all-btn:hover{ border-color:var(--accent); color:var(--accent); }

body[data-theme="aqua"] .bulk-bar{ background:linear-gradient(180deg,#ffffff,#eef3fb);
  border:1px solid #b7c7dd; border-left:3px solid var(--accent); border-radius:12px; }
body[data-theme="aqua"] .bulk-bar-title{ font-family:var(--font-display); font-style:italic; color:#1b3a63; }
body[data-theme="aqua"] .bulk-bar textarea{ background:#fff; border:1px solid #9fb3cc; border-radius:8px;
  font-family:var(--font-body); box-shadow:inset 0 1px 3px rgba(20,40,70,.15); }
body[data-theme="aqua"] .bulk-bar-hint, body[data-theme="aqua"] .copy-to-all-btn{ font-family:var(--font-body); }
body[data-theme="aqua"] .copy-to-all-btn{ text-transform:none; letter-spacing:0; border-radius:999px; }

/* ============ Price insight ============ */
.price-insight{ margin:-6px 0 14px; padding:10px 13px; background:var(--panel-2);
  border-left:3px solid var(--mint); border-radius:3px; }
.price-range{ font-family:var(--font-mono); font-size:12px; color:var(--text-dim); margin-bottom:5px; }
.range-pill{ background:var(--mint-dim); border:1px solid transparent; color:var(--text);
  font-family:var(--font-mono); font-size:12px; padding:1px 7px; border-radius:8px; cursor:pointer; }
.range-pill:hover{ border-color:var(--mint); }
.price-reasoning{ font-size:12px; color:var(--text-faint); line-height:1.5; }
body[data-theme="aqua"] .price-insight{ background:linear-gradient(180deg,#ffffff,#eef8f1);
  border-left:3px solid var(--mint); border-radius:10px; }
body[data-theme="aqua"] .price-range{ font-family:var(--font-body); }
body[data-theme="aqua"] .range-pill{ border-radius:999px; font-family:var(--font-body); }
body[data-theme="aqua"] .price-reasoning{ font-family:var(--font-body); }

/* ============ Price guide reference ============ */
.guide-ref{ display:none; margin-top:7px; padding-top:7px; border-top:1px dashed var(--line);
  font-family:var(--font-mono); font-size:11.5px; color:var(--text-dim); line-height:1.7; }
.guide-ref.shown{ display:block; }
.guide-tag{ font-family:var(--font-mono); font-size:9px; text-transform:uppercase; letter-spacing:.05em;
  background:var(--accent-dim); color:var(--accent); padding:1px 6px; border-radius:8px; margin-right:5px; }
.guide-score{ color:var(--text-faint); font-size:10px; }
body[data-theme="aqua"] .guide-ref{ font-family:var(--font-body); }
body[data-theme="aqua"] .guide-tag{ border-radius:999px; font-family:var(--font-body); text-transform:none; letter-spacing:0; }

/* ============ Migrate legacy (SKU-less) listings ============ */
.migrate-preview{ margin-top:14px; }
.dedupe-group{ border:1px solid var(--line-soft); border-radius:4px; margin-bottom:10px; }
.dedupe-group summary{ padding:9px 12px; cursor:pointer; font-size:13px; user-select:none; }
.dedupe-group summary strong{ font-family:var(--font-mono); }
.dedupe-group .inv-table{ border-top:1px solid var(--line-soft); }
.dedupe-occupant-note{ color:var(--text-faint); font-style:italic; }
.migrate-manual{ margin-top:10px; }
.migrate-manual summary{ font-size:12.5px; color:var(--text-faint); cursor:pointer; user-select:none; }
.migrate-manual textarea{ margin-top:8px; }
.migrate-manual #migrateCheckBtn{ margin-top:8px; }
.migrate-sku-input{ width:140px; font-family:var(--font-mono); font-size:12.5px; padding:6px 8px; }
.migrate-sku-input:disabled{ opacity:.5; }
.migrate-needs-badge{ display:inline-block; font-size:10.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:.03em; color:#fff; background:var(--accent); padding:2px 6px; border-radius:3px; }

/* price guide import panel + inventory flag */
.pg-panel{ background:var(--panel-2); border:1px solid var(--line-soft); border-radius:4px;
  padding:16px 18px; margin-top:22px; }
.pg-panel h3{ font-family:var(--font-display); font-size:15px; margin:0 0 4px; }
.pg-help{ font-size:12px; color:var(--text-faint); line-height:1.6; margin:0 0 12px; }
.pg-sources{ font-family:var(--font-mono); font-size:11px; color:var(--text-dim); margin:10px 0; }
.pg-source-row{ display:flex; justify-content:space-between; padding:3px 0; border-bottom:1px solid var(--line-soft); }
.pg-status{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); margin-left:10px; }
.guide-flag{ font-family:var(--font-mono); font-size:10px; padding:1px 7px; border-radius:8px; white-space:nowrap; }
.guide-flag.above{ background:rgba(226,71,43,.14); color:var(--accent); }
.guide-flag.below{ background:var(--mint-dim); color:var(--text); }
.guide-flag.near{ background:var(--line-soft); color:var(--text-faint); }
.guide-flag-none{ color:var(--text-faint); font-size:11px; }
body[data-theme="aqua"] .pg-panel{ background:linear-gradient(180deg,#fff,#eef3fb); border-radius:12px; }
body[data-theme="aqua"] .guide-flag{ border-radius:999px; }

/* ============ Warehouse ============ */
.row-low{ background:rgba(226,71,43,.06); }
.row-archived{ opacity:.5; }
.row-actions{ white-space:nowrap; text-align:right; }
.link-action{ background:transparent; border:1px solid var(--line); color:var(--text-dim);
  font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.03em;
  padding:4px 8px; border-radius:3px; cursor:pointer; margin-left:5px; }
.link-action:hover{ border-color:var(--accent); color:var(--accent); }
body[data-theme="aqua"] .link-action{ border-radius:999px; font-family:var(--font-body);
  text-transform:none; letter-spacing:0; }

/* ============ Send to Etsy ============ */
.etsy-btn{ margin-left:8px; }
.etsy-panel{ margin-top:14px; padding:16px 18px; background:var(--panel);
  border:1px solid #f0641e; border-left:3px solid #f0641e; border-radius:4px; }
.etsy-panel-title{ font-family:var(--font-display); font-size:15px; font-weight:600; margin-bottom:6px; }
.etsy-hint{ font-size:12px; color:var(--text-dim); line-height:1.6; margin:0 0 12px; }
.etsy-cat-results{ display:flex; flex-direction:column; gap:4px; margin-top:8px; max-height:220px; overflow-y:auto; }
.etsy-cat-option{ text-align:left; background:var(--panel-2); border:1px solid var(--line);
  color:var(--text); font-family:var(--font-mono); font-size:11.5px; padding:7px 10px;
  border-radius:3px; cursor:pointer; }
.etsy-cat-option:hover{ border-color:#f0641e; color:#f0641e; }
.etsy-cat-chosen{ margin-top:8px; font-size:12px; color:var(--text); padding:7px 10px;
  background:var(--mint-dim); border-radius:3px; }
.etsy-panel-actions{ display:flex; align-items:center; gap:10px; margin-top:12px; }
body[data-theme="aqua"] .etsy-panel{ background:linear-gradient(180deg,#fff,#fff3ec);
  border:1px solid #f0a37e; border-left:3px solid #f0641e; border-radius:12px; }
body[data-theme="aqua"] .etsy-cat-option{ border-radius:8px; font-family:var(--font-body); }
body[data-theme="aqua"] .etsy-panel-title{ font-family:var(--font-display); font-style:italic; }

/* ============ Aqua: card-style table rows ============ */
/* In Aqua the dense single-line rows crowd the text, so give each row real
   height, padding, and a card-like separation. Contact Sheet stays compact. */
/* Keep wide tables inside the page card instead of bleeding into the border:
   the table never exceeds its container, and if columns still need more room
   than that, the container scrolls horizontally rather than the page. */
.inv-panel, #itemsTable, #slowTable, #profitTable{ max-width:100%; overflow-x:auto; }
body[data-theme="aqua"] .inv-table{
  border-collapse:separate; border-spacing:0 8px; font-size:13.5px;
  width:100%; table-layout:auto; }
body[data-theme="aqua"] .inv-table thead th{ padding:4px 12px; border-bottom:none; color:#5a6b80; }
body[data-theme="aqua"] .inv-table tbody tr{
  background:linear-gradient(180deg,#ffffff,#f2f6fc);
  box-shadow:0 1px 2px rgba(20,40,70,.08); }
body[data-theme="aqua"] .inv-table tbody td{
  padding:12px 12px; border-top:1px solid #dbe4f0; border-bottom:1px solid #dbe4f0;
  vertical-align:middle; line-height:1.45; }
body[data-theme="aqua"] .inv-table tbody td:first-child{
  border-left:1px solid #dbe4f0; border-top-left-radius:10px; border-bottom-left-radius:10px; }
body[data-theme="aqua"] .inv-table tbody td:last-child{
  border-right:1px solid #dbe4f0; border-top-right-radius:10px; border-bottom-right-radius:10px; }
body[data-theme="aqua"] .inv-table tbody tr.row-low{
  background:linear-gradient(180deg,#fff,#fdeeea); }
body[data-theme="aqua"] .inv-table tbody tr:hover{
  background:linear-gradient(180deg,#ffffff,#e9f0fb); }
/* let the item-name column wrap onto a second line instead of clipping */
body[data-theme="aqua"] .inv-table td:nth-child(2){ white-space:normal; line-height:1.5; min-width:160px; }
body[data-theme="aqua"] .sku-line{ margin-top:3px; }
/* guide/flag chips shouldn't cramp the taller rows */
body[data-theme="aqua"] .guide-flag, body[data-theme="aqua"] .est-tag,
body[data-theme="aqua"] .guide-tag{ display:inline-block; margin-top:2px; }

/* ============ Days-listed correction ============ */
.date-fix-row{ display:flex; align-items:center; gap:5px; justify-content:flex-end; margin-top:3px; }
.date-fix-btn{ background:none; border:none; color:var(--text-faint); font-family:var(--font-mono);
  font-size:10px; text-decoration:underline; cursor:pointer; padding:0; }
.date-fix-btn:hover{ color:var(--accent); }
.date-fix-input{ margin-top:5px; width:100%; background:var(--panel-2); border:1px solid var(--line);
  color:var(--text); padding:5px 7px; border-radius:3px; font-size:12px; }
body[data-theme="aqua"] .date-fix-btn{ font-family:var(--font-body); text-decoration:none;
  border-bottom:1px dotted #6b8fc4; }
body[data-theme="aqua"] .date-fix-input{ background:#fff; border:1px solid #9fb3cc; border-radius:6px; }

/* ============ Listing format (Buy It Now / Auction) + shipping ============ */
.format-row{ display:flex; align-items:flex-end; gap:16px; margin-bottom:14px; flex-wrap:wrap; }
.format-toggle{ display:inline-flex; border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.format-btn{ background:var(--panel-2); border:none; color:var(--text-dim); font-family:var(--font-mono);
  font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; padding:9px 16px; cursor:pointer; }
.format-btn + .format-btn{ border-left:1px solid var(--line); }
.format-btn.on{ background:var(--accent); color:#fff; }
.format-btn:not(.on):hover{ color:var(--text); }
.format-ship-field{ flex:1; min-width:240px; margin:0; }
.format-ship-field select{ width:100%; }

.auction-fields{ display:flex; gap:14px; align-items:flex-end; flex-wrap:wrap;
  background:var(--panel-2); border-left:3px solid var(--accent); border-radius:4px;
  padding:14px 16px; margin-bottom:14px; }
.auction-fields .field{ margin:0; }
.auction-fields input, .auction-fields select{ min-width:130px; }
.auction-note{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint);
  flex-basis:100%; margin-top:2px; }

body[data-theme="aqua"] .format-toggle{ border-radius:999px; }
body[data-theme="aqua"] .format-btn{ font-family:var(--font-body); text-transform:none;
  letter-spacing:0; font-size:13px; }
body[data-theme="aqua"] .format-btn.on{ background:linear-gradient(180deg,#6ea8f5,#2c6fdb); }
body[data-theme="aqua"] .auction-fields{ background:linear-gradient(180deg,#fff,#eef3fb);
  border:1px solid #b7c7dd; border-left:3px solid var(--accent); border-radius:12px; }
body[data-theme="aqua"] .auction-note{ font-family:var(--font-body); }

/* ============ Package size + bin/SKU row ============ */
.pkg-row{ display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; margin-bottom:14px;
  padding:12px 14px; background:var(--panel-2); border-radius:4px; }
.pkg-row .field{ margin:0; }
.pkg-row .field input{ width:88px; }
.pkg-sku-field{ flex:1; min-width:190px; }
.pkg-sku-field input{ width:100% !important; }
body[data-theme="aqua"] .pkg-row{ background:linear-gradient(180deg,#fff,#eef3fb);
  border:1px solid #b7c7dd; border-radius:12px; }

/* ============ Phone / small screens ============ */
@media (max-width: 640px){
  .wrap{ padding:18px 14px 80px; }
  body[data-theme="aqua"] .wrap{ padding:16px 14px 30px; border-radius:0; border-left:none; border-right:none; }
  body[data-theme="aqua"] .aqua-titlebar{ border-radius:0; margin:0; border-left:none; border-right:none;
    box-shadow:none; }
  header{ flex-direction:column; align-items:flex-start; gap:12px; }
  .header-right{ flex-wrap:wrap; }
  h1{ font-size:26px; }
  /* stack the multi-column field rows */
  .field-row, .pkg-row, .format-row, .auction-fields{ flex-direction:column; align-items:stretch; }
  .field-row .field, .pkg-row .field, .auction-fields .field{ width:100%; }
  .pkg-row .field input, .auction-fields input, .auction-fields select{ width:100%; }
  .format-toggle{ width:100%; }
  .format-btn{ flex:1; }
  /* tables scroll sideways rather than squashing */
  .inv-table{ min-width:640px; }
  .inv-tabs{ overflow-x:auto; }
  .theme-switcher{ position:static; margin-bottom:12px; }
  body[data-theme="aqua"] .theme-switcher{ position:static; }
  .lightbox-toolbar{ flex-wrap:wrap; gap:6px; }
  .lb-btn{ font-size:12px; padding:7px 10px; }
  .publish-row{ flex-wrap:wrap; gap:8px; }
  .publish-btn, .secondary-btn{ width:100%; }
  .thumb-row{ justify-content:center; }
}

/* ============ Warehouse: listing link picker ============ */
.link-results{ display:flex; flex-direction:column; gap:4px; margin-top:8px;
  max-height:260px; overflow-y:auto; }
.link-option{ display:flex; flex-direction:column; gap:2px; text-align:left;
  background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  padding:8px 11px; border-radius:3px; cursor:pointer; }
.link-option:hover{ border-color:var(--accent); }
.link-option-title{ font-size:13px; }
.link-option-sku{ font-family:var(--font-mono); font-size:10.5px; color:var(--text-faint); }
.link-chosen{ margin:10px 0; padding:9px 12px; background:var(--mint-dim); border-radius:3px;
  font-size:13px; }
.link-broken{ background:rgba(226,71,43,.16) !important; color:var(--accent) !important; }
.link-unlink-btn{
  background:none; border:none; color:inherit; opacity:.55; cursor:pointer;
  font-size:10px; line-height:1; padding:0 0 0 5px; margin-left:1px;
}
.link-unlink-btn:hover{ opacity:1; }
body[data-theme="aqua"] .link-option{ border-radius:8px; }
body[data-theme="aqua"] .link-chosen{ border-radius:8px; }

/* Variation group badge in the listing picker. */
.link-var-badge{ font-family:var(--font-mono); font-size:9px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--accent); border:1px solid var(--accent-dim);
  border-radius:3px; padding:1px 5px; margin-left:6px; vertical-align:middle; }

/* Per-variation link table (link a bundle's tiers to one stock item at once). */
.link-var-help{ font-size:12.5px; color:var(--text-dim); margin:10px 0 8px; line-height:1.5; }
.link-var-autofill{ margin-left:6px; font-size:11px; padding:3px 8px; vertical-align:middle; }
.link-var-table{ overflow-x:auto; }
.wh-var-table{ width:100%; border-collapse:collapse; font-size:13px; }
.wh-var-table th{ text-align:left; font-family:var(--font-mono); font-size:10px;
  text-transform:uppercase; letter-spacing:.06em; color:var(--text-faint);
  border-bottom:1px solid var(--line); padding:5px 8px; }
.wh-var-table th.num, .wh-var-table td.num{ text-align:right; }
.wh-var-table td{ padding:5px 8px; border-bottom:1px solid var(--line-soft); }
.wh-var-sku{ font-family:var(--font-mono); font-size:11px; color:var(--text-dim);
  max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wh-var-qty{ width:64px; text-align:right; }

.linked-skus-detail summary{ cursor:pointer; color:var(--text-dim); user-select:none; }
.linked-skus-detail summary:hover{ color:var(--text); }
.linked-skus-detail .linked-skus-list{ margin-top:6px; max-width:320px; }
.link-broken-note{ color:var(--accent); }

/* ============ Login ============ */
.login-wrap{ max-width:420px; }
.login-form{ margin-top:20px; }
.login-form .field{ margin-bottom:14px; }
.login-form input{ width:100%; font-size:16px; padding:11px 12px; }
.login-error{ color:var(--accent); font-size:13px; margin-bottom:12px; }

/* ============ Phone upload mode ============ */
.phone-panel{ background:var(--panel); border:1px solid var(--line); border-radius:8px;
  padding:18px; margin-bottom:20px; }
.phone-panel-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.phone-add-btn{ display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; border:2px solid var(--accent); background:var(--panel); color:var(--text);
  border-radius:10px; padding:16px; margin:8px 0; font-family:var(--font-display);
  font-size:17px; cursor:pointer; position:relative; box-sizing:border-box; }
.phone-add-btn.secondary{ border-color:var(--line); font-size:15px; padding:13px; }
.phone-add-btn input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; }
.phone-add-icon{ font-size:20px; }
.phone-count-row{ display:flex; align-items:center; justify-content:center; gap:10px;
  flex-wrap:wrap; margin:12px 0 8px; }
.phone-count-line{ text-align:center; font-size:13px; color:var(--text-dim); }
.phone-reverse-btn{ background:none; border:none; color:var(--text-faint); cursor:pointer;
  font-size:12px; padding:2px 4px; line-height:1.3; white-space:nowrap; }
.phone-reverse-btn:hover{ color:var(--text-dim); text-decoration:underline; }
.phone-reverse-btn.hidden{ display:none; }
.phone-clear-btn{ width:100%; margin-top:8px; }
.phone-thumbs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.phone-thumb{ position:relative; width:76px; height:76px; }
.phone-thumb img{ width:100%; height:100%; object-fit:cover; border-radius:6px; border:1px solid var(--line); }
.phone-thumb-x{ position:absolute; top:-6px; right:-6px; width:22px; height:22px; border-radius:50%;
  background:var(--accent); color:#fff; border:none; font-size:14px; line-height:1; cursor:pointer; }
.phone-status{ margin-top:10px; font-size:13px; color:var(--text-dim); }
#phoneSendBtn{ width:100%; font-size:16px; padding:13px; }

/* ============ Pending phone batches (Mac) ============ */
.pending-panel{ background:var(--mint-dim); border:1px solid var(--mint); border-radius:8px;
  padding:16px 18px; margin-bottom:20px; }
.pending-count{ color:var(--text-dim); font-weight:400; }
.pending-list{ display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.pending-item{ display:flex; align-items:center; gap:12px; background:var(--panel);
  border:1px solid var(--line); border-radius:6px; padding:10px 12px; }
.pending-thumb{ width:54px; height:54px; object-fit:cover; border-radius:5px; }
.pending-meta{ flex:1; }
.pending-title{ font-size:14px; font-weight:500; }
.pending-progress{ margin:6px 0; max-width:220px; }
.pending-progress-track{ height:8px; background:var(--panel-2); border:1px solid var(--line-soft);
  border-radius:999px; overflow:hidden; }
.pending-progress-fill{ height:100%; background:var(--accent); border-radius:999px; }
.pending-progress.complete .pending-progress-fill{ background:var(--mint); }
.pending-progress-label{ display:block; margin-top:3px; font-family:var(--font-mono); font-size:11px;
  font-weight:600; color:var(--accent); }
.pending-progress.complete .pending-progress-label{ color:var(--mint); }
.pending-when{ font-size:11.5px; color:var(--text-faint); }
.pending-actions{ display:flex; gap:8px; }
body[data-theme="aqua"] .phone-panel, body[data-theme="aqua"] .pending-item{ border-radius:12px; }
body[data-theme="aqua"] .pending-panel{ border-radius:14px; }
@media (max-width:640px){
  .pending-actions{ flex-direction:column; }
  .phone-panel-head{ flex-direction:column; align-items:flex-start; }
}

/* ============ Progressive disclosure: Options panel + steps ============ */
.step-label{ font-family:var(--font-mono); font-size:11px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--text-faint); margin-bottom:8px; }
.step-label-standalone{ margin-top:22px; text-align:center; }

.options-panel{ margin:18px 0; border:1px solid var(--line); border-radius:6px;
  background:var(--panel); overflow:hidden; }
.options-summary{ display:flex; align-items:baseline; gap:10px; cursor:pointer;
  padding:12px 16px; list-style:none; user-select:none; }
.options-summary::-webkit-details-marker{ display:none; }
.options-summary::before{ content:"▸"; color:var(--text-faint); font-size:11px;
  transition:transform .15s; }
.options-panel[open] .options-summary::before{ transform:rotate(90deg); }
.options-summary-label{ font-family:var(--font-display); font-size:14px; font-weight:600; }
.options-summary-hint{ font-size:12px; color:var(--text-faint); }
.options-body{ padding:4px 16px 16px; border-top:1px solid var(--line-soft); }
.options-body .settings-row{ margin-top:14px; }

body[data-theme="aqua"] .options-panel{ border-radius:12px; }
body[data-theme="aqua"] .options-summary-label{ font-style:italic; }

/* ============ Drafting phase header ============ */
.drafting-header{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px;
  padding-bottom:16px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.drafting-header h2{ margin:2px 0 4px; font-size:24px; }
.drafting-header p{ margin:0; color:var(--text-dim); font-size:14px; }
.drafting-progress{ margin-top:12px !important; max-width:360px; }
.drafting-progress-track{ height:14px; background:var(--panel-2); border:1px solid var(--line-soft);
  border-radius:999px; overflow:hidden; }
.drafting-progress-fill{ height:100%; width:0%; background:var(--accent); border-radius:999px;
  transition:width .35s ease-out; }
.drafting-progress.complete .drafting-progress-fill{ background:var(--mint); }
.drafting-progress-label{ margin-top:6px !important; font-family:var(--font-mono); font-size:13px;
  font-weight:700; color:var(--accent) !important; letter-spacing:.02em; }
.drafting-progress.complete .drafting-progress-label{ color:var(--mint) !important; }
#startOverBtn{ white-space:nowrap; flex-shrink:0; }
body[data-theme="aqua"] .drafting-header{ border-bottom-color:#b7c7dd; }
@media (max-width:640px){
  .drafting-header{ flex-direction:column; }
  #startOverBtn{ width:100%; }
}

/* ============ Upload-stage photo preview ============ */
.photo-preview{ position:fixed; inset:0; z-index:1000; display:flex;
  align-items:center; justify-content:center; }
.photo-preview-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.82); }
.photo-preview-inner{ position:relative; z-index:1; max-width:92vw; max-height:92vh;
  display:flex; flex-direction:column; align-items:center; gap:10px; }
#photoPreviewImg{ max-width:92vw; max-height:82vh; border-radius:8px;
  box-shadow:0 12px 48px rgba(0,0,0,.6); object-fit:contain; }
.photo-preview-close{ position:absolute; top:-14px; right:-14px; width:38px; height:38px;
  border-radius:50%; border:none; background:#fff; color:#111; font-size:22px; line-height:1;
  cursor:pointer; box-shadow:0 2px 10px rgba(0,0,0,.4); }
.photo-preview-hint{ color:rgba(255,255,255,.7); font-size:12px; }
.sort-thumb{ cursor:pointer; }

/* Item that's about to auto-remove because it's empty */
.sort-bin.bin-emptying{ opacity:.4; transition:opacity 1.2s ease; }

/* ============ Review-card photo X-removal + sold comps link ============ */
.reorder-thumb-wrap{ position:relative; }
.reorder-thumb-x{ position:absolute; top:-7px; right:-7px; width:22px; height:22px;
  border-radius:50%; border:none; background:var(--accent); color:#fff; font-size:14px;
  line-height:1; cursor:pointer; z-index:3; box-shadow:0 1px 4px rgba(0,0,0,.3); padding:0; }
.reorder-thumb-x:disabled{ opacity:.3; cursor:not-allowed; }
.sold-comps-link{ display:inline-block; margin-top:6px; font-size:12.5px; font-weight:500;
  color:var(--accent); text-decoration:none; }
.sold-comps-link:hover{ text-decoration:underline; }
body[data-theme="aqua"] .sold-comps-link{ color:#1a5fb4; }

/* Adopted (already-drafted) pending batches - kept for re-drafting */
.pending-item.is-adopted{ opacity:.75; }
.pending-adopted{ font-size:11.5px; color:var(--text-faint); font-style:italic; margin-top:2px; }

/* ============ Stock Room: bulk price-cut / relist controls ============ */
.md-relist-warning{ font-size:12.5px; padding:8px 11px; border-radius:4px; margin:8px 0;
  color:var(--text-dim); background:var(--panel-2); }
.cuts-relist-row{ margin-top:-6px; }
.cuts-pct-field{ display:flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:12px;
  color:var(--text-faint); }
.cuts-pct-field input{ width:64px; background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  padding:6px 8px; border-radius:3px; font-size:13px; text-align:right; font-variant-numeric:tabular-nums; }
.md-relist-extras{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:6px 0 0;
  padding:8px 11px; border-radius:4px; background:var(--panel-2); border:1px solid var(--line-soft); }
.reprice-extras-standalone{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:14px 0 0;
  padding:11px; border-radius:4px; border:1px dashed var(--line-soft); }
.reprice-extras-standalone-title{ flex-basis:100%; font-size:12px; color:var(--text-faint); }
.sale-badge{ display:inline-block; font-size:10.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:.03em; color:#fff; background:var(--accent); padding:2px 6px; border-radius:3px; }
.ship-input{ width:64px; }
body[data-theme="aqua"] .sale-badge{ border-radius:8px; }

/* ============ Stock Room / Warehouse: fit dense tables ============ */
/* These pages carry wide multi-column tables, so give them more room than the
   Listing Room's reading-width layout - and let the theme's narrower Aqua wrap
   widen to match. */
body[data-page="inventory"] .wrap,
body[data-page="warehouse"] .wrap{ max-width:1180px; }
body[data-theme="aqua"][data-page="inventory"] .wrap,
body[data-theme="aqua"][data-page="warehouse"] .wrap{ max-width:1180px; }

/* If a table is still wider than its panel, scroll it horizontally INSIDE the
   panel instead of pushing past the page's side borders. */
.inv-panel{ overflow-x:auto; }
.inv-table{ min-width:760px; }

/* Tighten the editable number inputs so columns stop colliding. */
.inv-table .cogs-input{ width:78px; min-width:78px; padding:6px 8px; font-size:13px; }
body[data-theme="aqua"] .inv-table .cogs-input{ width:74px; min-width:74px; padding:6px 8px; }
.inv-table .ship-input{ width:58px; min-width:58px; padding:6px 8px; font-size:13px;
  background:var(--panel-2); border:1px solid var(--line); color:var(--text); border-radius:3px;
  text-align:right; font-variant-numeric:tabular-nums; }
.inv-table .ship-input::-webkit-outer-spin-button,
.inv-table .ship-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.inv-table .ship-input{ -moz-appearance:textfield; appearance:textfield; }
body[data-theme="aqua"] .inv-table .ship-input{ background:#fff; border:1px solid #9fb3cc; border-radius:6px; }

/* A touch more breathing room between cells, and let the item name wrap. */
.inv-table th, .inv-table td{ padding:9px 8px; }
.inv-table td:nth-child(2){ min-width:200px; max-width:280px; }

/* ============ eBay listing link in tables ============ */
.ebay-item-link{ color:var(--text); text-decoration:none; font-weight:500; }
.ebay-item-link:hover{ color:var(--accent); text-decoration:underline; }
.ebay-link-arrow{ font-size:10px; color:var(--text-faint); vertical-align:super; }
.ebay-item-link:hover .ebay-link-arrow{ color:var(--accent); }
body[data-theme="aqua"] .ebay-item-link:hover{ color:#1a5fb4; }

/* Warehouse table gets the same overflow safety as the Stock Room tables. */
body[data-page="warehouse"] .wh-table-wrap{ overflow-x:auto; }

/* Constrain the chattier columns so they don't force the table wide. */
.inv-table td.small{ max-width:160px; white-space:normal; }
.inv-table .guide-flag{ white-space:nowrap; }
/* The "Why" (suggestion reason) column - let it wrap tightly rather than push. */
.inv-table td:last-child{ white-space:normal; max-width:150px; font-size:11px; line-height:1.35; }

/* Final tightening so the full 12-column table fits ~1124px without scrolling
   in the common case; anything wider still scrolls gracefully in-panel. */
.inv-table td:nth-child(2){ min-width:180px; max-width:240px; }  /* item */
.inv-table td:last-child{ max-width:130px; }                     /* why */
.inv-table .cogs-input{ width:72px; min-width:72px; }
.inv-table th, .inv-table td{ padding:9px 7px; }

/* ============ Cross-list to Etsy ============ */
.crosslist-actions{ align-items:center; gap:12px; margin-top:-4px; }
.xlist-box{ cursor:pointer; }
/* The two per-row checkboxes (bulk price-cut select, cross-list-to-Etsy select)
   used to be crammed together with no label, reading as an unexplained double
   checkmark. Giving each its own narrow, titled column makes the two distinct. */
.checkbox-col{ width:1%; text-align:center; white-space:nowrap; }
.checkbox-col input[type="checkbox"]{ cursor:pointer; }
.row-remove-btn{ border:none; background:transparent; cursor:pointer; color:var(--text-faint);
  font-size:16px; line-height:1; padding:2px 4px; border-radius:3px; }
.row-remove-btn:hover{ color:var(--accent); background:var(--line-soft); }
.row-remove-btn:disabled{ opacity:.4; cursor:default; }
/* .inv-table is shared with the Profit table, where Item is still column 2 -
   so the legacy `td:nth-child(2)` sizing rules below (min/max-width, wrapping)
   must stay as-is for that table. In the listings table specifically, Item
   moved to column 3 when the Etsy checkbox got its own column, which left
   those old rules landing on the Etsy checkbox column instead. Override them
   back to normal here, scoped to this one table via its container id. */
#slowTable td.checkbox-col{ white-space:nowrap; min-width:0; max-width:none; line-height:normal; }

.crosslist-modal{ position:fixed; inset:0; z-index:200; display:flex;
  align-items:center; justify-content:center; }
.crosslist-modal.hidden{ display:none; }
.crosslist-modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.crosslist-modal-inner{ position:relative; background:var(--panel); border:1px solid var(--line);
  border-radius:8px; width:min(760px,92vw); max-height:88vh; overflow-y:auto; padding:20px 22px;
  box-shadow:0 12px 48px rgba(0,0,0,.4); }
.crosslist-modal-head{ display:flex; justify-content:space-between; align-items:center; }
.crosslist-modal-head h2{ margin:0; font-family:var(--font-display); font-size:18px; }
.crosslist-modal-foot{ display:flex; align-items:center; gap:12px; margin-top:16px;
  padding-top:14px; border-top:1px solid var(--line-soft); }

.xlist-item{ border:1px solid var(--line-soft); border-radius:6px; padding:12px; margin:12px 0; }
.xlist-item-error{ opacity:.7; }
.xlist-err{ color:var(--accent); font-size:12.5px; }
.xlist-item-head{ display:flex; gap:14px; }
.xlist-thumbs{ display:flex; flex-direction:column; gap:4px; flex:0 0 auto; }
.xlist-thumb{ width:64px; height:64px; object-fit:cover; border-radius:4px; border:1px solid var(--line-soft); }
.xlist-fields{ flex:1 1 auto; display:flex; flex-direction:column; gap:8px; min-width:0; }
.xlist-title{ width:100%; font-size:14px; font-weight:500; }
.xlist-row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:13px; }
.xlist-row label{ display:flex; gap:5px; align-items:center; }
.xlist-price{ width:90px; }
.xlist-cat{ min-width:200px; max-width:320px; }
.xlist-cat-search{ flex:1 1 160px; min-width:120px; }
.xlist-imgcount{ font-size:12px; color:var(--text-faint); }
body[data-theme="aqua"] .crosslist-modal-inner{ border-radius:14px; }

/* ============ Best Offer toggle on the review card ============ */
.best-offer-row{ display:flex; align-items:center; gap:12px; margin:8px 0; flex-wrap:wrap; }
.best-offer-hint{ font-size:12px; color:var(--text-faint); }
.best-offer-row.hidden{ display:none; }

/* ============ Bulk buy lot picker on the review card ============ */
.bulk-buy-form{ display:flex; flex-direction:column; gap:8px; margin:-4px 0 12px; padding:12px;
  background:var(--panel-2); border:1px solid var(--line); border-radius:4px; }
.bulk-buy-note{ margin:-4px 0 12px; font-family:var(--font-mono); font-size:12px; color:var(--text-dim); }

/* ============ Bulk buys manager (Active Listings tab) ============ */
.bulk-buys-panel{ margin-bottom:26px; padding-bottom:22px; border-bottom:1px solid var(--line-soft); }
.bulk-buys-header{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.bulk-buys-header h3{ margin:0; font-size:16px; }
.bb-assign-cell{ display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
.bb-assign-qty{ width:52px; padding:4px 6px; font-size:12px; }
.bb-assign-qty.hidden{ display:none; }
.bb-status-ok{ color:#2e9e5b; font-weight:700; font-size:15px; }
.bb-status-bad{ color:#d9534f; font-weight:700; font-size:15px; }
.bb-row-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.bb-detail-stats{ margin-bottom:16px; }

/* ---------- bulk buy card modal ---------- */
.bb-card-inner{ width:min(820px,94vw); }
.bb-warn{ background:rgba(217,83,79,.12); border:1px solid #d9534f; color:#d9534f;
  border-radius:4px; padding:8px 12px; font-size:12.5px; margin-bottom:14px; }
.bb-progress{ margin-bottom:14px; }
.bb-progress-track{ height:10px; border-radius:5px; background:var(--panel-2);
  border:1px solid var(--line-soft); overflow:hidden; }
.bb-progress-fill{ height:100%; border-radius:5px; transition:width .2s ease; }
.bb-fill-sold{ background:var(--accent); }
.bb-fill-profit-pos{ background:#2e9e5b; }
.bb-fill-profit-neg{ background:#d9534f; width:0 !important; }
.bb-progress-label{ margin-top:5px; font-family:var(--font-mono); font-size:12px; color:var(--text-dim); }
.bb-items-title{ font-size:14px; margin:18px 0 8px; }
.bb-items-list{ display:flex; flex-direction:column; gap:8px; }
.bb-item-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  border:1px solid var(--line-soft); border-radius:5px; padding:10px 12px; }
.bb-item-num{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); flex:0 0 52px; }
.bb-item-main{ flex:1 1 200px; min-width:160px; }
.bb-item-name{ width:100%; background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  padding:6px 8px; border-radius:3px; font-size:13px; }
.bb-item-stat{ display:flex; flex-direction:column; gap:2px; font-size:13px; min-width:52px; }
.bb-item-stat .total-label{ font-size:10px; }
.bb-item-cost{ display:flex; flex-direction:column; gap:2px; align-items:flex-start; }
.bb-item-cost-input{ width:82px; background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  padding:6px 8px; border-radius:3px; font-size:13px; text-align:right; }
.bb-item-reset{ background:none; border:none; color:var(--text-faint); cursor:pointer;
  font-size:11px; padding:2px 0; text-align:left; }
.bb-item-reset:hover{ color:var(--text); }
.bb-remaining-note{ margin-top:12px; font-family:var(--font-mono); font-size:12px; color:var(--text-dim); }

/* Deliberately its own class rather than reusing .cogs-input - that class is
   queried document-wide (not scoped to its own table) by the Slow Movers and
   Profit tables' own wiring, so sharing it here would double-wire this input. */
.active-cogs-input{ width:78px; min-width:78px; background:var(--panel-2); border:1px solid var(--line);
  color:var(--text); padding:6px 8px; border-radius:3px; font-size:13px; text-align:right;
  font-variant-numeric:tabular-nums; }
.active-cogs-input:focus{ border-color:var(--accent); outline:none; }
.active-cogs-input[data-default]{ color:var(--text-faint); font-style:italic; }
.active-cogs-input::-webkit-outer-spin-button,
.active-cogs-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.active-cogs-input{ -moz-appearance:textfield; appearance:textfield; }
body[data-theme="aqua"] .active-cogs-input{ background:#fff; border:1px solid #9fb3cc; border-radius:6px; }
.bb-assign-select{ font-size:12.5px; padding:4px 6px; max-width:170px; }

/* ============ Pirate Ship shipment-cost import (Sold Listings & Profits tab) ============ */
.pirate-ship-import{ display:flex; align-items:center; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.file-import-btn{ display:inline-block; }

/* ============ Notification bell (shared across all three pages) ============ */
.notif-bell-wrap{ position:relative; }
.notif-bell{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; padding:0;
  background:var(--panel-2); border:1px solid var(--line); color:var(--text-dim);
  cursor:pointer; font-size:17px; line-height:1;
}
.notif-bell:hover{ border-color:var(--text-faint); color:var(--text); }
.notif-badge{
  position:absolute; top:-3px; right:-3px; min-width:16px; height:16px; padding:0 4px;
  border-radius:9px; background:var(--accent); color:#fff; font-family:var(--font-mono);
  font-size:10px; line-height:16px; text-align:center; font-weight:600;
}
.notif-badge.hidden{ display:none; }
.notif-badge.notif-badge-faded{ background:var(--text-faint); }
.notif-dropdown{
  position:absolute; top:calc(100% + 10px); right:0; z-index:150;
  width:320px; max-height:400px; overflow:auto;
  background:var(--panel); border:1px solid var(--line); border-radius:8px;
  box-shadow:0 14px 40px rgba(0,0,0,.28);
}
.notif-dropdown.hidden{ display:none; }
.notif-dropdown-head{
  display:flex; align-items:center; justify-content:space-between;
  font-family:var(--font-display); font-size:14px; font-weight:600; color:var(--text);
  padding:14px 16px 10px;
}
.notif-clear-btn{
  font-family:var(--font-mono); font-size:11px; font-weight:500; color:var(--text-faint);
  background:none; border:none; cursor:pointer; padding:2px 4px; border-radius:3px;
}
.notif-clear-btn:hover{ color:var(--text); background:var(--line-soft); }
.notif-list{ display:flex; flex-direction:column; }
.notif-item{
  display:flex; align-items:flex-start; gap:8px; padding:12px 16px;
  border-top:1px solid var(--line-soft);
}
.notif-item:first-child{ border-top:none; }
.notif-item.notif-unread{ background:var(--panel-2); border-left:2px solid var(--accent); padding-left:14px; }
.notif-item-body{ flex:1; min-width:0; }
.notif-item-text{ font-size:13px; color:var(--text); line-height:1.4; }
.notif-item-time{ font-family:var(--font-mono); font-size:11px; color:var(--text-faint); margin-top:3px; }
.notif-remove{
  flex-shrink:0; background:none; border:none; color:var(--text-faint); font-size:16px;
  line-height:1; cursor:pointer; padding:2px 5px; border-radius:3px;
}
.notif-remove:hover{ color:var(--text); background:var(--line-soft); }
.notif-empty{ padding:26px 16px; text-align:center; color:var(--text-faint); font-size:13px; line-height:1.5; }

body[data-theme="aqua"] .notif-bell{ border-radius:999px; background:linear-gradient(180deg,#fff,#e2eaf5); border-color:#9fb3cc; color:#2b3c50; }
body[data-theme="aqua"] .notif-dropdown{ background:linear-gradient(180deg,#ffffff,#eef3fb); border-color:#9fb3cc; border-radius:12px; }
body[data-theme="aqua"] .notif-dropdown-head{ font-family:var(--font-body); }

/* ============ Per-item reprice control ============ */
.reprice-btn{ border:none; background:transparent; cursor:pointer; font-size:13px; padding:0 2px;
  opacity:.55; transition:opacity .12s; }
.reprice-btn:hover{ opacity:1; }
.price-cell{ white-space:nowrap; }
.price-sale-wrap{ display:inline-flex; flex-direction:column; align-items:flex-end; line-height:1.3; }
.price-was{ text-decoration:line-through; color:var(--text-faint); font-size:11px; }
.price-sale-now{ color:var(--mint); font-weight:600; font-size:13px; }
.reprice-inner{ width:min(460px,92vw); }
.reprice-item-title{ font-weight:600; margin:4px 0 10px; }
.reprice-current{ font-size:13px; color:var(--text-dim); margin-bottom:10px; }
.reprice-row{ display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.reprice-row label{ display:flex; flex-direction:column; gap:4px; font-size:12.5px; }
.reprice-row input{ width:110px; }
.reprice-or{ padding-bottom:8px; color:var(--text-faint); font-size:12px; }
.reprice-preview{ margin:12px 0; font-size:14px; min-height:18px; }
.reprice-relist-label{ margin-top:6px; }

/* ============ Collapsible "All listings & per-item tools" ============ */
.listings-detail{ border:1px solid var(--line); border-radius:6px; margin-top:18px; background:var(--panel); }
.listings-detail-summary{ display:flex; align-items:baseline; gap:10px; cursor:pointer;
  padding:12px 16px; list-style:none; user-select:none; }
.listings-detail-summary::-webkit-details-marker{ display:none; }
.listings-detail-summary::before{ content:"▸"; color:var(--text-faint); font-size:11px; transition:transform .15s; }
.listings-detail[open] .listings-detail-summary::before{ transform:rotate(90deg); }
.listings-detail-label{ font-family:var(--font-display); font-size:14px; font-weight:600; }
.listings-detail-hint{ font-size:12px; color:var(--text-faint); }
.listings-detail-body{ padding:4px 16px 16px; border-top:1px solid var(--line-soft); }
body[data-theme="aqua"] .listings-detail{ border-radius:12px; }

/* ============ Equity protection (has-sold listings) ============ */
.equity-dot{ color:#2e8b57; font-size:9px; vertical-align:middle; margin-left:3px; }
body[data-theme="aqua"] .equity-dot{ color:#1a7f4b; }
.reprice-equity-warn, .reprice-equity-warn.hidden{ }
.reprice-equity-warn{ display:block; font-size:12.5px; color:var(--text-dim);
  background:var(--panel-2); border-left:3px solid #2e8b57; padding:8px 11px;
  border-radius:4px; margin:10px 0; }
.reprice-equity-warn.hidden{ display:none; }
.switch-label.has-equity span{ color:#2e8b57; }

/* Shield column + toggle. A shielded item is never end-and-relisted (its price
   can still be cut). Replaces the old single green equity-dot with a clear,
   clickable per-row control. */
.shield-col{ text-align:center; width:34px; }
th.shield-col{ font-size:13px; }
.shield-toggle{ background:none; border:none; cursor:pointer; font-size:15px; line-height:1;
  padding:2px 3px; border-radius:4px; filter:grayscale(1); opacity:.28;
  transition:opacity .12s ease, filter .12s ease; }
.shield-toggle:hover{ opacity:.6; }
.shield-toggle.on{ filter:none; opacity:1; }
.shield-toggle.on.manual{ opacity:1; }
/* Auto (has-sold) shields read as protected but slightly softer, since the
   protection is inferred rather than chosen. */
.shield-toggle.on.auto{ opacity:.85; }
.shield-toggle:disabled{ cursor:default; }

.reprice-shield-note{ display:block; font-size:12.5px; color:var(--text-dim);
  background:var(--panel-2); border-left:3px solid #2e8b57; padding:8px 11px;
  border-radius:4px; margin:10px 0; }
.reprice-shield-note.hidden{ display:none; }
.switch-label.is-shielded{ opacity:.5; cursor:not-allowed; }

/* Filter controls: free-text search + shield filter dropdown. */
.slow-search{ font-size:13px; padding:5px 9px; min-width:190px; }
.slow-shield-field{ display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-dim); }
.slow-shield-field select{ font-size:12px; padding:4px 6px; }

/* Price Cut header: master select-all checkbox above the label. */
th.cut-head{ text-align:center; }
th.cut-head .cut-head-label{ margin-top:2px; }
th.cut-head input{ accent-color:var(--accent); cursor:pointer; }

/* ============ Estimated-age indicator ============ */
.est-age{ color:#c98a00; font-weight:600; cursor:help; margin-left:2px; }
body[data-theme="aqua"] .est-age{ color:#b37700; }

/* ============ Bulk markdown result panel ============ */
.md-result{ margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.md-result.hidden{ display:none; }
.md-result-line{ font-size:13px; padding:9px 12px; border-radius:5px; line-height:1.45; }
.md-result-line.ok{ background:var(--panel-2); color:var(--text-dim); }
.md-result-line.protected{ background:rgba(46,139,87,.10); border-left:3px solid #2e8b57; color:var(--text); }
.md-result-line.err{ background:rgba(200,60,60,.10); border-left:3px solid #c83c3c; color:var(--text); }
.md-result-line.skip{ background:var(--panel-2); color:var(--text-faint); }
.md-result-skus{ margin-top:5px; font-family:var(--font-mono, monospace); font-size:12px;
  color:var(--text-dim); word-break:break-word; }
.md-relist-protect-note{ margin-top:6px; font-size:12px; color:#2e8b57; }
body[data-theme="aqua"] .md-relist-protect-note{ color:#1a7f4b; }

/* ---------- eBay setup wizard ---------- */
.setup-step{ background:var(--panel); border:1px solid var(--line-soft); border-radius:10px; padding:20px 24px; margin-top:16px; }
.setup-step-head{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.setup-step-head h2{ font-family:var(--font-display); font-size:17px; margin:0; flex:1; }
.setup-num{ width:26px; height:26px; border-radius:50%; background:var(--panel-2); border:1px solid var(--line);
  display:inline-flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:12px; color:var(--text-dim); }
.setup-badge{ font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; padding:3px 9px; border-radius:999px; }
.setup-badge:empty{ display:none; }
.setup-badge.done{ background:var(--mint-dim); color:var(--mint); }
.setup-badge.todo{ background:var(--panel-2); color:var(--text-dim); border:1px solid var(--line); }
.setup-badge.warn{ background:var(--accent-dim); color:#ffb3a3; }
.setup-step-body p{ margin:0 0 12px; color:var(--text-dim); line-height:1.5; }
.setup-step-body .hint{ font-size:12.5px; color:var(--text-faint); }
.setup-step-body .hint.err{ color:#ffb3a3; }
.setup-step-body select, .setup-step-body input[type=text]{ max-width:560px; }
.setup-btn{ display:inline-block; text-decoration:none; }
.setup-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:0 16px; max-width:720px; margin-top:8px; }
.setup-newloc{ margin-top:8px; }
.setup-newloc summary{ cursor:pointer; color:var(--text-dim); font-family:var(--font-mono); font-size:12px; margin-bottom:8px; }
.setup-actions{ margin:20px 0 8px; display:flex; align-items:center; gap:14px; }
.setup-alert{ margin-top:16px; padding:12px 16px; border-radius:8px; font-size:14px; border:1px solid var(--line); background:var(--panel-2); }
.setup-alert.ok{ border-color:var(--mint-dim); color:var(--mint); }
.setup-alert.error{ border-color:var(--accent-dim); color:#ffb3a3; }
.setup-alert a{ color:inherit; font-weight:600; }
.setup-dot{ width:8px; height:8px; border-radius:50%; background:var(--accent); margin-left:auto; box-shadow:0 0 0 3px var(--accent-dim); }
.setup-finish-banner{ margin:0 0 16px; }
.setup-step-body a:not(.publish-btn){ color:var(--accent); }
.setup-step-body a:not(.publish-btn):hover{ text-decoration:underline; }

/* ---------- beta safety lock + price-change review ---------- */
body.no-advanced .advanced-only{ display:none !important; }
.beta-lock-note{ margin:10px 0; padding:10px 14px; border-radius:8px; font-size:13px; color:var(--text-dim);
  background:var(--panel-2); border:1px solid var(--line-soft); }
.undo-bar{ display:flex; align-items:center; gap:12px; margin:10px 0; padding:10px 14px; border-radius:8px;
  background:var(--panel-2); border:1px solid var(--line); font-size:13px; }
.md-confirm-inner{ max-width:720px; }
.md-confirm-lead{ margin:0 0 12px; color:var(--text-dim); }
.md-confirm-table{ max-height:46vh; overflow:auto; border:1px solid var(--line-soft); border-radius:8px; }
.md-confirm-table table{ width:100%; border-collapse:collapse; font-size:13px; }
.md-confirm-table th{ position:sticky; top:0; background:var(--panel-2); text-align:left; font-family:var(--font-mono);
  font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-faint); padding:8px 10px; }
.md-confirm-table td{ padding:8px 10px; border-top:1px solid var(--line-soft); vertical-align:top; }
.md-confirm-table td.num{ text-align:right; white-space:nowrap; font-family:var(--font-mono); }
.md-confirm-table .old{ text-decoration:line-through; color:var(--text-faint); }
.md-confirm-table .new{ color:var(--mint); font-weight:600; }
.md-confirm-skipped{ margin-top:10px; font-size:12.5px; color:#ffb3a3; }
.md-confirm-totals{ margin-top:12px; font-family:var(--font-mono); font-size:13px; color:var(--text-dim); }

/* ---------- listing style (profile) page ---------- */
.preset-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:12px; }
.preset-card{ display:flex; flex-direction:column; gap:4px; padding:14px 16px; border:1px solid var(--line); border-radius:10px;
  background:var(--panel-2); cursor:pointer; position:relative; }
.preset-card input{ position:absolute; opacity:0; pointer-events:none; }
.preset-card:hover{ border-color:var(--text-faint); }
.preset-card.on{ border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) inset; }
.preset-title{ font-family:var(--font-display); font-weight:600; font-size:14.5px; }
.preset-blurb{ font-size:12.5px; color:var(--text-dim); line-height:1.4; }
.pf-format{ font-family:var(--font-mono); font-size:12.5px; padding:10px 12px; border-radius:8px; background:var(--panel-2);
  border:1px solid var(--line-soft); color:var(--text); line-height:1.5; }
.pf-example{ margin:8px 0 12px; font-size:13px; color:var(--text-faint); font-style:italic; }
.setup-step-body textarea{ width:100%; max-width:720px; }
.pf-pkg{ max-width:760px; }
