.admin-site-mirror {
  background: #fff;
}

body:not(.admin-authenticated) .admin-shell {
  visibility: hidden;
}

body.admin-authenticated .admin-shell {
  visibility: visible;
}

.admin-primary-nav {
  gap: .2rem;
}

.admin-nav-link {
  position: relative;
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  padding-inline: clamp(.65rem, 1.1vw, 1rem);
  border: 0;
  border-radius: var(--radius-small);
  background: transparent;
  color: #5e5751;
  cursor: pointer;
  font: inherit;
  font-size: .92rem;
  font-weight: 700;
  white-space: nowrap;
}

.admin-nav-link:hover,
.admin-nav-link:focus-visible {
  background: var(--color-primary-soft);
  color: var(--color-text);
  outline: none;
}

.header-logout {
  min-height: 2.55rem;
  padding: .45rem .85rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);
  background: #fff;
  color: #7d3b33;
  cursor: pointer;
  font-weight: 720;
}

.header-logout:hover {
  border-color: rgba(200,75,72,.35);
  background: rgba(200,75,72,.06);
}

.admin-context-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .8rem 1rem;
  margin-bottom: 1.3rem;
  border: 1px solid #f0e6dc;
  border-radius: var(--radius-medium);
  background: #fffaf5;
}

.admin-context-bar > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .55rem;
}

.admin-pill,
.environment-badge {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  gap: .4rem;
  padding: .3rem .65rem;
  border: 1px solid rgba(242,140,40,.24);
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--color-primary-strong);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .05em;
}

.environment-dot {
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: #2d8f60;
}

.global-message {
  min-height: 1.4rem;
  margin: 0 0 .85rem;
  color: var(--color-text-muted);
  font-size: .84rem;
}

.global-message.is-error { color: var(--color-danger); }
.global-message.is-success { color: var(--color-success); }

/* Main category buttons intentionally share the public header's visual language. */
.filter-button {
  flex: 0 0 auto;
  min-height: 2.2rem;
  padding: .42rem .85rem;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  background: transparent;
  color: #625a53;
  cursor: pointer;
  font: inherit;
  font-size: .84rem;
  font-weight: 720;
  white-space: nowrap;
  transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
}

.filter-button:hover {
  border-color: rgba(242,140,40,.28);
  background: #fff;
  color: var(--color-primary-strong);
}

.filter-button.is-active {
  border-color: rgba(242,140,40,.35);
  background: #fff;
  color: var(--color-primary-strong);
  box-shadow: 0 .25rem .9rem rgba(164,96,31,.07);
}

.catalog__filter-row .filter-button {
  border-color: var(--color-border);
  background: #fff;
}

.catalog__filter-row .filter-button.is-active {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
}

.admin-grid {
  --catalog-columns: 3;
  --catalog-mobile-columns: 2;
}

.admin-grid .product-card {
  position: relative;
}

.admin-grid .product-card__button,
.admin-grid .admin-empty-slot__button {
  position: relative;
}

.admin-grid .product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-edit-badge,
.order-badge,
.status-badge {
  position: absolute;
  z-index: 3;
  top: .6rem;
  display: inline-flex;
  min-height: 1.65rem;
  align-items: center;
  padding: .2rem .48rem;
  border-radius: var(--radius-pill);
  background: rgba(255,255,255,.94);
  font-size: .65rem;
  font-weight: 800;
  box-shadow: 0 .2rem .8rem rgba(40,25,15,.08);
}

.order-badge { left: .6rem; color: var(--color-primary-strong); }
.status-badge { right: .6rem; color: #5e5751; }
.admin-edit-badge { right: .6rem; bottom: .6rem; top: auto; color: var(--color-primary-strong); }

.status-badge[data-status="published"] { color: var(--color-success); }
.status-badge[data-status="hidden"],
.status-badge[data-status="archived"] { color: var(--color-warning); }

.admin-empty-slot {
  min-width: 0;
}

.admin-empty-slot__button {
  display: grid;
  width: 100%;
  height: 100%;
  grid-template-rows: auto 1fr;
  padding: 0;
  overflow: hidden;
  border: 1px dashed #d9d0c8;
  border-radius: var(--radius-medium);
  background: #fff;
  color: var(--color-text);
  cursor: pointer;
  text-align: left;
  transition: border-color var(--transition-fast), box-shadow var(--transition-normal), transform var(--transition-normal);
}

.admin-empty-slot__button:hover {
  border-color: var(--color-primary);
  box-shadow: 0 .8rem 2rem rgba(54,39,26,.08);
  transform: translateY(-.15rem);
}

.admin-empty-slot__media {
  display: grid;
  aspect-ratio: 1 / 1;
  place-items: center;
  background: #f7f4f0;
  color: #9b6a3d;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.admin-empty-slot__media::before {
  display: block;
  width: 2rem;
  height: 2rem;
  margin-bottom: .55rem;
  border: .14rem solid rgba(242,140,40,.42);
  border-radius: .4rem;
  content: "";
}

.admin-empty-slot__copy {
  display: flex;
  min-height: 3.45rem;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .85rem .95rem .95rem;
  color: #9a938d;
  font-size: .85rem;
  font-weight: 650;
}

.admin-empty-slot__copy strong { color: var(--color-primary-strong); }

.admin-management-section {
  border-top: 1px solid var(--color-border);
  background: #fff;
}

.admin-management-section--soft { background: #fbfaf8; }

.admin-management-inner {
  width: calc(100% - 500px);
  max-width: 1420px;
  margin-inline: auto;
  padding-block: 3rem 4rem;
}

.management-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.15rem;
  margin-bottom: 1.15rem;
  border-bottom: 1px solid var(--color-border);
}

.management-heading h2 { margin: 0 0 .35rem; font-size: clamp(1.4rem,1.2rem + .7vw,2rem); }
.management-heading p:last-child { margin: 0; color: var(--color-text-muted); }

.primary-button,
.secondary-button,
.danger-button,
.icon-button,
.category-action,
.file-button span {
  display: inline-flex;
  min-height: 2.65rem;
  align-items: center;
  justify-content: center;
  padding: .5rem .9rem;
  border-radius: var(--radius-small);
  cursor: pointer;
  font: inherit;
  font-weight: 760;
  transition: transform var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);
}

.primary-button {
  border: 1px solid var(--color-primary);
  background: var(--color-primary);
  color: #fff;
}
.primary-button:hover { background: var(--color-primary-strong); transform: translateY(-1px); }

.secondary-button,
.category-action,
.file-button span {
  border: 1px solid var(--color-border);
  background: #fff;
  color: var(--color-text);
}
.secondary-button:hover,
.category-action:hover,
.file-button:hover span { border-color: rgba(242,140,40,.45); color: var(--color-primary-strong); }

.danger-button,
.secondary-button--danger {
  border: 1px solid rgba(200,75,72,.28);
  background: rgba(200,75,72,.05);
  color: var(--color-danger);
}

button:disabled { cursor: not-allowed; opacity: .45; }

.category-manager { display: grid; gap: .75rem; }
.category-group { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: #fff; }
.category-row { display: grid; grid-template-columns: 3.2rem minmax(0,1fr) auto auto; align-items: center; gap: .7rem; min-height: 3.6rem; padding: .55rem .8rem; border-bottom: 1px solid #f1ece7; }
.category-row:last-child { border-bottom: 0; }
.category-row--child { padding-left: 2rem; background: #fcfbf9; }
.category-row__order { color: var(--color-primary-strong); font-size: .78rem; font-weight: 800; }
.category-row__name { display: grid; min-width: 0; }
.category-row__name small { color: var(--color-text-muted); }
.category-status { padding: .25rem .55rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); font-size: .7rem; font-weight: 750; }
.category-status[data-status="active"] { color: var(--color-success); }
.category-add-child { justify-self: start; }

.grid-settings-form { display: grid; grid-template-columns: repeat(2,minmax(14rem,22rem)) minmax(12rem,1fr) auto; align-items: end; gap: 1rem; }
.grid-preview-wrap { display: grid; gap: .45rem; }
.grid-responsive-summary { margin: 0; color: var(--color-text-muted); font-size: .74rem; line-height: 1.45; }
.grid-preview { display: grid; min-height: 7rem; gap: .3rem; padding: .6rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: #fff; }
.grid-preview span { min-height: .7rem; border-radius: .2rem; background: #f5e8db; }

.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.form-field { display: grid; gap: .4rem; color: var(--color-text); font-weight: 700; }
.form-field--wide { grid-column: 1 / -1; }
.form-field span small { display: block; margin-top: .1rem; color: var(--color-text-muted); font-size: .72rem; font-weight: 500; }
.form-field input,
.form-field select,
.form-field textarea,
.auth-field input {
  width: 100%;
  padding: .72rem .8rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);
  background: #fff;
  color: var(--color-text);
  outline: 0;
}
.form-field textarea { min-height: 6rem; resize: vertical; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus,
.auth-field input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-soft); }

.tag-editor {
  display: grid;
  gap: .65rem;
  padding: .75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
  background: #fffdfb;
}
.tag-editor__selected,
.tag-editor__presets { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.tag-editor__selected { min-height: 2.25rem; }
.tag-editor__empty { color: var(--color-text-muted); font-size: .8rem; font-weight: 550; }
.tag-editor__presets button {
  min-height: 2rem;
  padding: .35rem .68rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--color-text);
  cursor: pointer;
  font: inherit;
  font-size: .78rem;
  font-weight: 750;
}
.tag-editor__presets button:hover:not(:disabled),
.tag-editor__presets button:focus-visible { border-color: rgba(242,140,40,.55); background: var(--color-primary-soft); color: var(--color-primary-strong); }
.tag-editor__presets button.is-selected,
.tag-editor__presets button:disabled { border-color: rgba(242,140,40,.38); background: var(--color-primary-soft); color: var(--color-primary-strong); cursor: default; opacity: .72; }
.editable-tag {
  display: inline-flex;
  min-height: 2.15rem;
  align-items: center;
  gap: .35rem;
  padding: .28rem .35rem .28rem .7rem;
  border: 1px solid rgba(242,140,40,.38);
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-text);
  font-size: .8rem;
  font-weight: 800;
}
.editable-tag > button {
  display: grid;
  width: 1.55rem;
  height: 1.55rem;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.82);
  color: var(--color-danger);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}
.editable-tag--fabric { padding-left: .65rem; }
.editable-tag__percent { display: inline-flex; align-items: center; gap: .12rem; color: var(--color-primary-strong); font-size: .74rem; }
.editable-tag__percent input {
  width: 3.25rem;
  min-height: 1.55rem;
  padding: .12rem .25rem;
  border: 1px solid rgba(242,140,40,.3);
  border-radius: .45rem;
  background: #fff;
  text-align: center;
  font: inherit;
  font-weight: 800;
}
.tag-editor__composer { display: flex; align-items: flex-start; gap: .6rem; }
.tag-editor__composer .tag-editor__presets { flex: 1; }
.tag-percent { display: inline-flex; min-width: 5.2rem; min-height: 2rem; align-items: center; gap: .2rem; padding: .2rem .45rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fff; color: var(--color-primary-strong); }
.tag-percent > span { font-weight: 850; }
.tag-percent input { width: 3rem; padding: .15rem; border: 0; outline: 0; background: transparent; text-align: center; font: inherit; font-weight: 800; }
.tag-editor__custom { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.tag-editor__custom input { width: 100%; min-height: 2.35rem; padding: .5rem .65rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); outline: 0; }
.tag-editor__custom input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-soft); }
.tag-editor__custom .secondary-button { min-height: 2.35rem; padding-block: .45rem; }
.tag-editor__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .45rem .8rem; color: var(--color-text-muted); }
.tag-editor__meta small { font-size: .76rem; }
.tag-editor__meta [data-fabric-total].is-complete { color: #3c7d4b; font-weight: 800; }
.tag-editor__meta [data-fabric-total].is-warning,
.tag-editor__message.is-error { color: var(--color-danger); font-weight: 800; }
.tag-editor__message:empty { display: none; }

.auth-gate {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  padding: 1.25rem;
  background: rgba(255,255,255,.98);
  place-items: center;
}
.auth-gate[hidden] { display: none; }
.auth-card { width: min(28rem,100%); padding: 2rem; border: 1px solid var(--color-border); border-radius: var(--radius-large); background: #fff; box-shadow: var(--shadow-menu); }
.auth-mark { display: block; width: 2.5rem; aspect-ratio: 1; margin-bottom: 1.1rem; border: .35rem solid var(--color-primary); border-radius: 50%; }
.auth-card h1 { margin-bottom: .7rem; font-size: clamp(2rem,1.7rem + 1.2vw,3rem); }
.auth-copy { color: var(--color-text-muted); }
.auth-field { display: grid; gap: .35rem; margin: .85rem 0; font-weight: 700; }
.auth-message, .dialog-message { min-height: 1.4rem; color: var(--color-danger); font-size: .82rem; }
.auth-submit { width: 100%; margin-top: .4rem; }

.admin-dialog,
.slot-actions-dialog {
  width: min(72rem,calc(100vw - 2rem));
  max-height: 90vh;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-large);
  background: #fff;
  color: var(--color-text);
  box-shadow: 0 2rem 6rem rgba(48,33,21,.22);
}
.admin-dialog::backdrop,
.slot-actions-dialog::backdrop { background: var(--color-overlay); backdrop-filter: blur(.3rem); }
.dialog-panel,
.slot-actions-panel { max-height: 90vh; overflow: auto; padding: 1.4rem; }
.dialog-panel--narrow { width: min(38rem,100%); margin-inline: auto; }
.dialog-header,
.slot-actions-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; margin-bottom: 1.1rem; border-bottom: 1px solid var(--color-border); }
.dialog-header h2,
.slot-actions-header h2 { margin: 0; }
.icon-button { width: 2.65rem; min-width: 2.65rem; padding: 0; border: 1px solid var(--color-border); background: #fff; color: var(--color-text); font-size: 1.35rem; }
.dialog-actions { display: flex; align-items: center; gap: .65rem; padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--color-border); }
.dialog-actions__spacer { flex: 1; }

.product-editor { display: grid; grid-template-columns: minmax(16rem,.8fr) minmax(0,1.2fr); gap: 1.3rem; }
.image-editor { display: grid; align-content: start; gap: .75rem; }
.image-editor__preview { display: grid; aspect-ratio: 1 / 1; overflow: hidden; place-items: center; border-radius: var(--radius-medium); background: #f7f4f0; color: #9b6a3d; font-weight: 800; }
.image-editor__preview img { width: 100%; height: 100%; object-fit: cover; }
.file-button { position: relative; display: block; }
.file-button input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-button span { width: 100%; }
.image-editor small { color: var(--color-text-muted); }

.slot-actions-dialog { width: min(46rem,calc(100vw - 2rem)); }
.slot-actions-header p:last-child { margin: .3rem 0 0; color: var(--color-text-muted); }
.slot-action-buttons { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.slot-action-buttons button { display: grid; min-height: 8.5rem; align-content: center; justify-items: center; gap: .25rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: #fff; color: var(--color-text); cursor: pointer; text-align: center; }
.slot-action-buttons button:hover:not(:disabled) { border-color: rgba(242,140,40,.5); background: #fffaf5; transform: translateY(-1px); }
.slot-action-buttons strong { font-size: .95rem; }
.slot-action-buttons small { color: var(--color-text-muted); font-size: .72rem; }
.slot-action-icon { display: grid; width: 2.2rem; aspect-ratio: 1; place-items: center; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary-strong); font-size: 1.2rem; font-weight: 900; }
.slot-action-danger .slot-action-icon { background: rgba(200,75,72,.08); color: var(--color-danger); }

.product-view-content { display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.9fr); gap: 1.2rem; }
.product-view-media { display: grid; min-height: 26rem; aspect-ratio: 1 / 1; overflow: hidden; place-items: center; border-radius: var(--radius-medium); background: #f7f4f0; color: #9b6a3d; font-weight: 800; }
.product-view-media img { width: 100%; height: 100%; object-fit: cover; }
.product-view-copy { padding: .5rem; }
.product-view-category { color: var(--color-primary-strong); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.product-view-copy section { padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--color-border); }
.product-view-copy ul { padding-left: 1.2rem; }
.product-view-sizes { display: flex; flex-wrap: wrap; gap: .45rem; }
.product-view-sizes span { padding: .35rem .65rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: #faf8f5; font-weight: 700; }

body.has-modal-open { overflow: hidden; }

@media (max-width: 87.5rem) {
  .admin-management-inner { width: calc(100% - 128px); }
}

@media (max-width: 64rem) {
  .admin-management-inner { width: calc(100% - 64px); }
  .grid-settings-form { grid-template-columns: 1fr; align-items: stretch; }
}

@media (max-width: 48rem) {
  .header-logout { min-height: 2.35rem; padding: .35rem .6rem; }
  .admin-context-bar, .management-heading { align-items: stretch; flex-direction: column; }
  .admin-management-inner { width: calc(100% - 32px); padding-block: 2rem 3rem; }
  .product-editor, .product-view-content { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field--wide { grid-column: auto; }
  .tag-editor__composer { align-items: stretch; flex-direction: column; }
  .tag-percent { width: fit-content; }
  .slot-action-buttons { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .category-row { grid-template-columns: 2.7rem minmax(0,1fr) auto; }
  .category-status { display: none; }
  .category-row--child { padding-left: .8rem; }
}

@media (max-width: 24rem) {
  .admin-management-inner { width: calc(100% - 24px); }
  .slot-action-buttons { grid-template-columns: 1fr; }
}

@media (max-width: 70rem) {
  .admin-management-inner { max-width: 100%; }
}
@media (max-width: 56rem) {
  .admin-context-bar { gap: .75rem; }
}
@media (max-width: 40rem) {
  .slot-action-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 28rem) {
  .slot-action-buttons { grid-template-columns: 1fr; }
}

/* Header brand asset manager */
.brand-assets-panel {
  margin: 0 0 1.5rem;
  padding: 1rem;
  border: 1px solid #eee4da;
  border-radius: var(--radius-medium);
  background: #fffdfb;
}

.brand-assets-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .9rem;
}

.brand-assets-heading h2 {
  margin: .08rem 0 .25rem;
  font-size: 1.25rem;
}

.brand-assets-heading p:last-child {
  margin: 0;
  color: var(--color-text-muted);
  font-size: .84rem;
}

.brand-format-warning {
  flex: 0 0 auto;
  padding: .45rem .72rem;
  border: 1px solid rgba(242,140,40,.28);
  border-radius: var(--radius-pill);
  background: #fff8f1;
  color: var(--color-primary-strong);
  font-size: .76rem;
  letter-spacing: .035em;
}

.brand-assets-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}

.brand-asset-card-wrap {
  display: grid;
  gap: .55rem;
  min-width: 0;
}

.brand-asset-card-wrap .brand-asset-card {
  width: 100%;
}

.brand-asset-visibility-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  min-width: 0;
}

.brand-asset-visibility-row small {
  color: var(--color-success);
  font-size: .76rem;
}

.brand-asset-visibility-row small.is-hidden-state {
  color: var(--color-text-muted);
}

.brand-visibility-toggle {
  flex: 0 0 auto;
  min-height: 2.25rem;
  padding: .4rem .72rem;
}

.brand-visibility-toggle.is-hidden-state {
  border-color: rgba(242,140,40,.45);
  color: var(--color-primary-strong);
}

.brand-asset-card {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(9rem, 14rem) minmax(0,1fr);
  align-items: center;
  gap: 1rem;
  padding: .8rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
  background: #fff;
  color: var(--color-text);
  cursor: pointer;
  text-align: left;
  transition: border-color var(--transition-fast), box-shadow var(--transition-normal), transform var(--transition-fast);
}

.brand-asset-card:hover,
.brand-asset-card:focus-visible {
  border-color: rgba(242,140,40,.52);
  box-shadow: 0 .65rem 1.8rem rgba(69,43,22,.08);
  transform: translateY(-1px);
  outline: none;
}

.brand-asset-preview {
  position: relative;
  display: grid;
  min-height: 7.2rem;
  place-items: center;
  overflow: hidden;
  border: 1px dashed #dfd3c7;
  border-radius: calc(var(--radius-medium) - .2rem);
  background: #faf6f1;
}

.brand-asset-preview--logo img {
  width: min(7.2rem, 92%);
  height: min(7.2rem, 92%);
  object-fit: contain;
}

.brand-asset-preview--ornament {
  padding-inline: .45rem;
}

.brand-asset-leaf-crop {
  position: relative;
  display: block;
  width: 100%;
  height: 4rem;
  overflow: hidden;
}

.brand-asset-leaf-crop img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  transform: translateY(-43.7%);
}

.brand-asset-copy {
  display: grid;
  gap: .3rem;
}

.brand-asset-copy strong {
  font-size: 1rem;
}

.brand-asset-copy small {
  color: var(--color-text-muted);
  line-height: 1.45;
}

.brand-asset-copy em {
  margin-top: .2rem;
  color: var(--color-primary-strong);
  font-size: .74rem;
  font-style: normal;
  font-weight: 760;
}

.brand-assets-message {
  min-height: 1.15rem;
  margin: .65rem 0 0;
  color: var(--color-text-muted);
  font-size: .8rem;
}

.brand-assets-message.is-error { color: var(--color-danger); }
.brand-assets-message.is-success { color: var(--color-success); }


.brand-manager-dialog {
  width: min(62rem, calc(100vw - 2rem));
  max-height: min(82vh, 44rem);
  padding: 0;
  border: 0;
  border-radius: var(--radius-large);
  background: transparent;
  box-shadow: var(--shadow-menu);
}

.brand-manager-dialog::backdrop {
  background: rgba(29,22,17,.35);
  backdrop-filter: blur(.15rem);
}

.brand-manager-panel {
  max-height: min(82vh, 44rem);
  overflow: auto;
  border-radius: var(--radius-large);
  background: #fff;
}

.brand-manager-panel .brand-assets-panel {
  margin: 0;
  border: 0;
  border-radius: var(--radius-large);
}

.brand-assets-heading__actions {
  display: flex;
  align-items: center;
  gap: .6rem;
}

.brand-upload-dialog {
  width: min(28rem, calc(100vw - 2rem));
  padding: 0;
  border: 0;
  border-radius: var(--radius-large);
  background: transparent;
  box-shadow: var(--shadow-menu);
}

.brand-upload-dialog::backdrop {
  background: rgba(29,22,17,.35);
  backdrop-filter: blur(.15rem);
}

.brand-upload-panel {
  padding: 1.15rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-large);
  background: #fff;
}

.brand-upload-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.brand-upload-header h2 {
  margin: .12rem 0 0;
  font-size: 1.35rem;
}

.brand-upload-copy {
  margin: .9rem 0 1rem;
  color: var(--color-text-muted);
}

.brand-upload-copy strong {
  color: var(--color-primary-strong);
}

.brand-upload-choose {
  width: 100%;
}

@media (max-width: 62rem) {
  .brand-assets-grid { grid-template-columns: 1fr; }
}

@media (max-width: 42rem) {
  .brand-assets-heading { align-items: flex-start; flex-direction: column; }
  .brand-asset-card { grid-template-columns: 7rem minmax(0,1fr); }
  .brand-asset-preview { min-height: 6.2rem; }
}


.image-tool-summary {
  display: grid;
  gap: 0.55rem;
  padding: 0.9rem 1rem;
  border: 1px dashed rgba(165, 102, 42, 0.32);
  border-radius: 1rem;
  background: rgba(250, 245, 239, 0.88);
}

.image-tool-summary strong {
  color: var(--color-brand-dark, #5c3420);
}

.image-tool-summary p {
  margin: 0;
  color: var(--color-copy-muted, #6d5a4c);
  line-height: 1.55;
}

.image-tool-status {
  font-size: 0.95rem;
}

.cropper-dialog::backdrop {
  background: rgba(33, 20, 11, 0.42);
}

.cropper-panel {
  width: min(840px, calc(100vw - 1.5rem));
  max-height: min(720px, calc(100dvh - 1.5rem));
  overflow: auto;
  padding: 1.15rem 1.25rem;
}

.cropper-panel .dialog-header {
  margin-bottom: 0.9rem;
  padding-bottom: 0.75rem;
}

.cropper-panel .dialog-header h2 {
  font-size: clamp(1.25rem, 2vw, 1.65rem);
}

.cropper-panel .dialog-header p:not(.eyebrow) {
  margin-top: 0.3rem;
  font-size: 0.9rem;
  line-height: 1.4;
}

.cropper-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(300px, 1.05fr);
  gap: 1.15rem;
  align-items: stretch;
}

.cropper-stage-wrap {
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  gap: 0.55rem;
}

.cropper-stage {
  position: relative;
  width: min(100%, 320px);
  aspect-ratio: 3 / 4;
  margin: 0 auto;
  border-radius: 1.4rem;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(253, 249, 244, 0.96), rgba(241, 231, 220, 0.96));
  border: 1px solid rgba(165, 102, 42, 0.22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.55);
  touch-action: none;
  user-select: none;
}

.cropper-stage {
  cursor: grab;
}

.cropper-stage.is-dragging {
  cursor: grabbing;
}

.cropper-stage img {
  position: absolute;
  top: 50%;
  left: 50%;
  max-width: none;
  max-height: none;
  pointer-events: none;
  transform-origin: center center;
  user-select: none;
  -webkit-user-drag: none;
  will-change: left, top, transform;
}

.cropper-frame {
  position: absolute;
  inset: 0;
  border: 2px solid rgba(165, 102, 42, 0.65);
  border-radius: 1.35rem;
  box-shadow: inset 0 0 0 999px rgba(255,255,255,0.04);
  pointer-events: none;
}

.cropper-frame::before,
.cropper-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, transparent 33.333%, rgba(165, 102, 42, 0.18) 33.333%, rgba(165, 102, 42, 0.18) calc(33.333% + 1px), transparent calc(33.333% + 1px), transparent 66.666%, rgba(165, 102, 42, 0.18) 66.666%, rgba(165, 102, 42, 0.18) calc(66.666% + 1px), transparent calc(66.666% + 1px)),
    linear-gradient(to bottom, transparent 25%, rgba(165, 102, 42, 0.18) 25%, rgba(165, 102, 42, 0.18) calc(25% + 1px), transparent calc(25% + 1px), transparent 50%, rgba(165, 102, 42, 0.18) 50%, rgba(165, 102, 42, 0.18) calc(50% + 1px), transparent calc(50% + 1px), transparent 75%, rgba(165, 102, 42, 0.18) 75%, rgba(165, 102, 42, 0.18) calc(75% + 1px), transparent calc(75% + 1px));
  pointer-events: none;
}

.cropper-stage-placeholder[hidden] {
  display: none !important;
}

.cropper-stage-placeholder {
  position: absolute;
  inset: auto 1rem 1rem 1rem;
  display: inline-flex;
  justify-content: center;
  padding: 0.5rem 0.75rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.9);
  color: var(--color-copy-muted, #6d5a4c);
  font-size: 0.95rem;
}

.cropper-help, .cropper-metadata p {
  margin: 0;
  color: var(--color-copy-muted, #6d5a4c);
  line-height: 1.45;
}

.cropper-help {
  font-size: 0.88rem;
}

.cropper-controls {
  display: grid;
  grid-template-rows: auto auto auto 1fr auto auto;
  gap: 0.72rem;
  align-content: stretch;
  min-height: 100%;
}

.cropper-controls .form-field {
  gap: 0.35rem;
}

.cropper-metadata {
  display: grid;
  gap: 0.25rem;
  padding: 0.75rem 0.85rem;
  border-radius: 1rem;
  background: rgba(250, 245, 239, 0.88);
  border: 1px solid rgba(165, 102, 42, 0.18);
}

.cropper-output strong {
  color: var(--color-brand-dark, #5c3420);
}

.cropper-estimated-size {
  display: block;
  min-height: 1.25rem;
  margin-top: 0.35rem;
  color: var(--color-copy-muted, #6d5a4c);
  font-size: 0.86rem;
  font-weight: 650;
}

.cropper-bottom-controls {
  align-self: end;
  display: grid;
  gap: 0.55rem;
  margin-top: auto;
}

.cropper-actions-inline {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.cropper-commit-actions {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  align-items: center;
}

.cropper-commit-actions .primary-button {
  flex: 1 1 220px;
}

.cropper-commit-actions .secondary-button {
  flex: 0 0 auto;
}

@media (max-width: 860px) {
  .cropper-layout {
    grid-template-columns: 1fr;
  }

  .cropper-panel {
    max-height: calc(100dvh - 1rem);
  }

  .cropper-stage {
    width: min(100%, 300px);
  }

  .cropper-controls {
    min-height: auto;
  }
}


/* v1.9.6 — text-only font scaling; modal geometry stays fixed */
.font-settings-dialog {
  width: min(31rem, calc(100vw - 1rem));
  max-height: calc(100dvh - 1rem);
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 1.15rem;
  background: #fff;
  color: var(--color-text);
  box-shadow: 0 1.5rem 4.5rem rgba(48,33,21,.22);
  /* Site 24px'e çıkarılsa bile ayar penceresi ekrandan taşmasın. */
  font-size: 16px;
}
.font-settings-dialog::backdrop { background: var(--color-overlay); backdrop-filter: blur(.3rem); }
.font-settings-panel {
  display: grid;
  gap: .62rem;
  box-sizing: border-box;
  max-height: calc(100dvh - 1rem);
  padding: .9rem 1rem .85rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.font-settings-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  padding-bottom:.62rem;
  margin-bottom:.05rem;
  border-bottom:1px solid var(--color-border);
}
.font-settings-header .eyebrow { margin:0 0 .22rem; font-size:.66rem; }
.font-settings-header h2 { margin:0 0 .18rem; font-size:1.42rem; line-height:1.08; }
.font-settings-header p:last-child { max-width:26rem; margin:0; color:var(--color-text-muted); font-size:.76rem; line-height:1.35; }
.font-settings-header .icon-button { width:2.2rem; min-width:2.2rem; height:2.2rem; font-size:1.05rem; }
.font-settings-tabs { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; margin:.1rem 0 .25rem; padding:.28rem; border:1px solid var(--color-border); border-radius:.82rem; background:var(--color-surface-raised); }
.font-settings-tab { min-height:2.45rem; padding:.45rem .7rem; border:0; border-radius:.62rem; background:transparent; color:var(--color-text-muted); font:inherit; font-size:.8rem; font-weight:800; cursor:pointer; }
.font-settings-tab.is-active { background:#fff; color:var(--color-primary-strong); box-shadow:0 .2rem .8rem rgba(46,34,24,.08); }
.font-settings-tabpanel { display:grid; gap:.62rem; padding:.68rem; border:1px solid var(--color-border); border-radius:.9rem; background:#fff; }
.font-settings-tabpanel[hidden] { display:none !important; }
.font-settings-section-copy { display:grid; gap:.12rem; }
.font-settings-section-copy strong { font-size:.9rem; }
.font-settings-section-copy small { color:var(--color-text-muted); font-size:.7rem; line-height:1.35; }
.font-settings-save { justify-self:end; min-height:2.45rem; }
.font-settings-preview--header { min-height:4rem; place-content:center; text-align:center; }
.font-settings-preview--header strong { font-size:1em; text-transform:uppercase; }
.font-settings-group { margin:0; padding:0; border:0; }
.font-settings-group > legend { margin:0 0 .4rem; font-weight:750; font-size:.86rem; }
.font-preset-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
.font-preset-option {
  position:relative;
  display:flex;
  align-items:center;
  gap:.58rem;
  min-width:0;
  padding:.58rem .66rem;
  border:1px solid var(--color-border);
  border-radius:.78rem;
  background:#fff;
  cursor:pointer;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.font-preset-option:hover { border-color:rgba(242,140,40,.55); background:#fffaf5; }
.font-preset-option:has(input:checked) { border-color:var(--color-primary); box-shadow:0 0 0 2px rgba(242,140,40,.12); background:#fff8ef; }
.font-preset-option input { flex:0 0 auto; width:1rem; height:1rem; accent-color:var(--color-primary); }
.font-preset-option__copy { display:grid; gap:.1rem; min-width:0; }
.font-preset-option__copy strong { font-size:.82rem; line-height:1.15; }
.font-preset-option__copy small { color:var(--color-text-muted); font-size:.68rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.font-size-field { margin-top:.05rem; gap:.28rem; }
.font-size-field__label { display:flex !important; align-items:center; justify-content:space-between; gap:.75rem; }
.font-size-field__label output { color:var(--color-primary-strong); font-size:.78rem; font-weight:800; }
.font-size-field small { color:var(--color-text-muted); font-size:.68rem; line-height:1.3; }
.font-size-field select { width:100%; min-height:2.45rem; padding-block:.48rem; }
.font-settings-preview {
  display:grid;
  gap:.12em;
  padding:.62rem .72rem;
  margin-top:.05rem;
  border:1px solid var(--color-border);
  border-radius:.78rem;
  background:#fffaf5;
  line-height:1.22;
  min-height:4.45rem;
}
/* Önizleme gerçekten seçilen px değerine göre büyüsün/küçülsün; çerçeve ölçüsü değişmez. */
.font-settings-preview strong { font-size:1.22em; letter-spacing:.05em; }
.font-settings-preview span { font-size:1em; font-weight:650; }
.font-settings-preview small { color:var(--color-text-muted); font-size:.76em; }
.font-settings-message { min-height:0; margin:.05rem 0 0; color:var(--color-text-muted); font-size:.72rem; line-height:1.25; }
.font-settings-message:empty { display:none; }
.font-settings-message.is-error { display:block; color:var(--color-danger); }
.font-settings-message.is-success { display:block; color:var(--color-success); }
.font-settings-actions {
  display:flex;
  justify-content:flex-end;
  gap:.5rem;
  padding-top:.58rem;
  margin-top:.05rem;
  border-top:1px solid var(--color-border);
}
.font-settings-actions button { min-height:2.45rem; padding:.52rem .82rem; }
@media (max-width: 30rem) {
  .font-settings-dialog { width:calc(100vw - .7rem); }
  .font-settings-panel { padding:.72rem; }
  .font-preset-option { padding:.5rem; }
}
@media (max-width: 23rem) { .font-preset-list { grid-template-columns:1fr; } }


/* v1.9.9 — Stage 6: gerçek admin mobil drawer + güvenli dialog geometrisi */
.admin-menu-toggle,
.admin-sidebar__topbar,
.admin-sidebar-backdrop {
  display: none;
}

@media (max-width: 68rem) {
  .admin-site-header .header-inner {
    position: relative;
  }

  .admin-site-header .brand-logo-frame {
    width: 3rem;
    height: 3rem;
  }

  .admin-site-header .brand-name {
    font-size: calc(var(--header-brand-base-size) * .82);
    letter-spacing: .045em;
  }

  .admin-menu-toggle {
    display: inline-flex;
    z-index: calc(var(--z-overlay) + 3);
  }

  .admin-sidebar {
    position: fixed;
    z-index: calc(var(--z-overlay) + 4);
    top: 0;
    right: 0;
    display: flex;
    width: min(22rem, calc(100vw - 2.5rem)) !important;
    height: 100dvh;
    min-width: 0;
    max-width: 100%;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: .35rem;
    padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px)) max(1rem, env(safe-area-inset-bottom, 0px)) 1rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border-left: 1px solid var(--color-border);
    background: rgba(255,255,255,.995);
    box-shadow: -1.25rem 0 3.5rem rgba(46,34,24,.16);
    opacity: 0;
    pointer-events: none;
    transform: translateX(105%);
    visibility: hidden;
    transition: transform var(--transition-normal), opacity var(--transition-fast), visibility var(--transition-normal);
  }

  body.sidebar-open {
    overflow: hidden;
  }

  body.sidebar-open .admin-sidebar {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    visibility: visible;
  }

  .admin-sidebar__topbar {
    display: flex;
    min-height: 3.25rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .75rem;
    margin-bottom: .35rem;
    border-bottom: 1px solid var(--color-border);
  }

  .admin-sidebar__topbar strong {
    font-size: .9rem;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .admin-sidebar__close {
    display: inline-grid;
    place-items: center;
  }

  .admin-sidebar > a,
  .admin-sidebar > .admin-nav-link,
  .admin-sidebar > .header-logout {
    display: flex;
    width: 100%;
    min-height: 3rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-start;
    padding: .7rem .85rem;
    border-radius: .75rem;
    text-align: left;
  }

  .admin-sidebar > a[aria-current="page"]::after {
    top: .6rem;
    right: auto;
    bottom: .6rem;
    left: .2rem;
    width: .125rem;
    height: auto;
  }

  .admin-sidebar-backdrop {
    position: fixed;
    z-index: calc(var(--z-overlay) + 2);
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(30,22,16,.34);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity var(--transition-fast), visibility var(--transition-fast);
  }

  body.sidebar-open .admin-sidebar-backdrop {
    display: block;
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }

  .admin-primary-nav {
    overflow: auto !important;
  }

  .admin-management-inner,
  .admin-catalog .catalog__inner {
    width: calc(100% - 40px);
  }
}

/* Tüm admin dialogları ekrana göre küçülür; footer/action alanları kaybolmaz. */
@media (max-width: 48rem) {
  .admin-dialog,
  .slot-actions-dialog,
  .brand-manager-dialog,
  .brand-upload-dialog,
  .font-settings-dialog {
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
    max-height: calc(100dvh - 1rem);
    margin: auto;
  }

  .dialog-panel,
  .slot-actions-panel,
  .brand-manager-panel,
  .font-settings-panel {
    max-height: calc(100dvh - 1rem);
  }

  .dialog-panel,
  .slot-actions-panel {
    padding: 1rem;
  }

  .dialog-header,
  .slot-actions-header,
  .font-settings-header,
  .brand-upload-header {
    gap: .65rem;
  }

  .dialog-actions {
    position: sticky;
    z-index: 2;
    bottom: -1rem;
    flex-wrap: wrap;
    padding: .75rem 0 calc(.15rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
  }

  .dialog-actions__spacer {
    display: none;
  }

  .dialog-actions > button {
    flex: 1 1 8rem;
  }

  .product-view-media {
    min-height: 0;
    aspect-ratio: 1 / 1;
  }

  .brand-assets-heading__actions {
    width: 100%;
    justify-content: space-between;
  }

  .brand-asset-card {
    grid-template-columns: minmax(5.5rem, 7rem) minmax(0, 1fr);
  }

  .brand-upload-panel {
    max-height: calc(100dvh - 1rem);
    overflow-y: auto;
  }

  .cropper-dialog {
    width: calc(100vw - .75rem);
    max-width: calc(100vw - .75rem);
    max-height: calc(100dvh - .75rem);
  }

  .cropper-panel {
    width: 100%;
    max-height: calc(100dvh - .75rem);
    padding: .9rem;
  }

  .cropper-stage {
    width: min(100%, 280px);
  }
}

@media (max-width: 26.875rem) {
  .admin-management-inner,
  .admin-catalog .catalog__inner {
    width: calc(100% - 24px);
  }

  .admin-context-bar {
    padding: .7rem;
  }

  .admin-context-bar .primary-button,
  .management-heading .secondary-button,
  .grid-settings-form .primary-button {
    width: 100%;
  }

  .category-row {
    grid-template-columns: 2.4rem minmax(0, 1fr) auto;
    gap: .45rem;
  }

  .brand-asset-card {
    grid-template-columns: 1fr;
  }

  .brand-asset-preview {
    min-height: 5.5rem;
  }

  .font-preset-list {
    grid-template-columns: 1fr;
  }

  .cropper-commit-actions,
  .cropper-actions-inline {
    flex-direction: column;
  }

  .cropper-commit-actions > *,
  .cropper-actions-inline > * {
    width: 100%;
  }
}

@media (max-width: 20rem) {
  .admin-sidebar {
    width: calc(100vw - 1rem);
  }

  .auth-gate {
    padding: .5rem;
  }

  .auth-card {
    padding: 1rem;
  }

  .dialog-panel,
  .slot-actions-panel,
  .brand-upload-panel,
  .font-settings-panel,
  .cropper-panel {
    padding: .7rem;
  }
}

/* v1.9.14 — admin workspace: her yönetim alanı kendi sekmesinde görünür. */
[data-admin-view-panel][hidden],
.admin-site-header [data-admin-product-filters][hidden] {
  display: none !important;
}

.admin-brand {
  min-width: max-content;
}

.admin-brand .brand-name {
  margin-inline-start: 0;
}

.admin-management-section--about {
  min-height: calc(100vh - 8rem);
  background: #fff;
}

.about-editor-form {
  display: grid;
  gap: 1.25rem;
  max-width: 62rem;
}

.about-editor-form textarea {
  line-height: 1.6;
}

.about-editor-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .35rem;
}

.about-editor-message {
  min-height: 1.35rem;
  margin: 0;
  color: var(--color-text-muted);
  font-size: .84rem;
}

.about-editor-message.is-error { color: var(--color-danger); }
.about-editor-message.is-success { color: var(--color-success); }

@media (max-width: 48rem) {
  .about-editor-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .about-editor-actions .primary-button {
    width: 100%;
  }
}
