/* Shared control layer for the public site and the administration panel. */
:root {
  --control-focus: #c36c28;
}

button, select, summary, a.button { -webkit-tap-highlight-color: transparent; }
:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--control-focus);
  outline-offset: 3px;
}
button:disabled, .button:disabled, [aria-disabled="true"] { cursor: not-allowed; }
.button { min-height: 46px; padding-inline: 19px; line-height: 1.25; text-align: center; text-decoration: none; }
.button:active:not(:disabled), .filter-button:active, .row-action:active:not(:disabled) { transform: translateY(1px); }
.button:disabled:not([aria-busy="true"]) { background: #e4ebe5; border-color: #c3d0c6; color: #45584d; box-shadow: none; }
.button[aria-busy="true"] { position: relative; padding-right: 42px; cursor: progress; }
.button[aria-busy="true"]::after {
  content: ""; position: absolute; right: 16px; width: 14px; height: 14px;
  border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
  animation: control-spin .7s linear infinite;
}
@keyframes control-spin { to { transform: rotate(360deg); } }

body:not(.admin-page) .button--primary { background: var(--brand); color: #fff; border-color: var(--brand); }
body:not(.admin-page) .button--primary:hover { background: color-mix(in srgb, var(--brand) 82%, #000); border-color: color-mix(in srgb, var(--brand) 82%, #000); }
body:not(.admin-page) .button--ghost, body:not(.admin-page) .button--secondary {
  border-color: #608270; background: #fffdf8; color: var(--brand);
}
body:not(.admin-page) .button--ghost:hover, body:not(.admin-page) .button--secondary:hover {
  border-color: var(--brand); background: #e8f1e9; color: var(--brand);
}
body:not(.admin-page) .button--accent { background: #e99a39; color: #202719; }
body:not(.admin-page) .button--accent:hover { background: #f3aa4b; }
body:not(.admin-page) .visual-hero .button--primary { background: #e9bb68; border-color: #e9bb68; color: #173b32; box-shadow: none; }
body:not(.admin-page) .visual-hero .button--primary:hover { background: #f6cc80; border-color: #f6cc80; }
body:not(.admin-page) .filter-button { min-height: 42px; padding: 9px 17px; border-color: #a4b7aa; color: var(--brand); }
body:not(.admin-page) .filter-button:hover { background: #e8f1e9; }
body:not(.admin-page) .filter-button[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; box-shadow: 0 6px 14px rgba(23,75,63,.18); }
body:not(.admin-page) .collection-card a { min-height: 44px; padding: 9px 13px; border: 1px solid var(--brand); border-radius: 8px; background: var(--brand); color: #fff; font-size: .82rem; text-decoration: none; }
body:not(.admin-page) .collection-card a:hover { background: color-mix(in srgb, var(--brand) 82%, #000); color: #fff; text-decoration: none; }
body:not(.admin-page) .product-card__button:focus-visible { outline-offset: -4px; }
body:not(.admin-page) .product-card__footer b { color: var(--brand); }
body:not(.admin-page) .menu-toggle { border: 1px solid #8cab98; background: #fffdf8; }
body:not(.admin-page) .menu-toggle[aria-expanded="true"] { background: #e8f1e9; border-color: var(--brand); }
body:not(.admin-page) .contact-methods a { min-height: 44px; color: #fff; }
body:not(.admin-page) .contact-methods a:hover { color: #f3c181; }
body:not(.admin-page) .form-status.is-success { color: #176346; font-weight: 700; }
body:not(.admin-page) .form-status.is-error { color: #a12c24; font-weight: 700; }

.admin-page .button--primary { background: #174b3f; border-color: #174b3f; color: #fff; box-shadow: 0 7px 16px rgba(23,75,63,.15); }
.admin-page .button--primary:hover { background: #103b31; border-color: #103b31; }
.admin-page .button--secondary, .admin-page .button--ghost { background: #fff; border-color: #89a699; color: #174b3f; }
.admin-page .button--secondary:hover, .admin-page .button--ghost:hover { background: #e8f1e9; border-color: #174b3f; }
.admin-page .admin-nav__item { min-height: 48px; }
.admin-page .sidebar-action { display: flex; min-height: 38px; align-items: center; padding: 7px 9px; border-radius: 7px; color: #e2efe5; font-size: .75rem; text-decoration: none; }
.admin-page .sidebar-action:hover, .admin-page .sidebar-action:focus-visible { background: rgba(255,255,255,.11); color: #fff; }
.admin-page .text-button { min-height: 40px; padding: 7px 10px; border-radius: 7px; font-size: .8rem; }
.admin-page .text-button:hover { background: #e8f1e9; }
.admin-page .row-actions { flex-wrap: wrap; gap: 7px; }
.admin-page .row-action { min-height: 38px; padding: 8px 11px; border-color: #91aa9c; color: #174b3f; font-size: .74rem; }
.admin-page .row-action:hover { background: #e8f1e9; }
.admin-page .row-action--danger { border-color: #dfa9a4; background: #fff9f8; color: #a6382f; }
.admin-page .row-action--danger:hover { border-color: #a6382f; background: #fce9e6; color: #87271f; }
.admin-page .row-action:disabled { border-color: #c5cfca; background: #edf1ee; color: #596a61; opacity: 1; }
.admin-page .icon-button, .admin-page .dialog-close { min-width: 44px; min-height: 44px; color: #174b3f; }
.admin-page .icon-button:hover, .admin-page .dialog-close:hover { border-color: #174b3f; background: #e8f1e9; }
.admin-page .quick-actions>a:hover, .admin-page .quick-actions>button:hover { background: #e8f1e9; }
.admin-page .builder-block-actions button, .admin-page .builder-preview-toolbar button, .admin-page .builder-image-item__head button { min-height: 38px; min-width: 38px; padding: 6px 9px; color: #174b3f; }
.admin-page .builder-block-actions button:hover, .admin-page .builder-preview-toolbar button:hover, .admin-page .builder-image-item__head button:hover { border-color: #174b3f; background: #e8f1e9; }
.admin-page .builder-preview-toolbar button.is-active { background: #174b3f; color: #fff; }
.admin-page .media-folder__delete { width: 38px; height: 38px; border-color: #dfa9a4; color: #a6382f; font-size: 1.1rem; }
.admin-page .media-folder__delete:hover { background: #fce9e6; }
.admin-page .media-item__actions button { min-height: 36px; padding: 7px 10px; border: 1px solid #cbd8cf; color: #174b3f; font-size: .72rem; font-weight: 700; }
.admin-page .media-item__actions button:hover { background: #e8f1e9; border-color: #174b3f; }
.admin-page .media-item__actions button[data-delete-asset] { color: #a6382f; }
.admin-page .media-import-status, .admin-page .form-status { line-height: 1.5; }
.admin-page .form-status.is-error { color: #a12c24; font-weight: 700; }
.admin-page .form-status.is-success { color: #176346; font-weight: 700; }
.admin-page .connection-pill { min-height: 36px; font-size: .73rem; }
.admin-page .table-tools input, .admin-page .table-tools select, .admin-page .field input, .admin-page .field select { min-height: 44px; }
.admin-page .dialog-actions { flex-wrap: wrap; }
.admin-page .dialog-actions .button { min-width: 130px; }
.admin-page .toast, body:not(.admin-page) .toast { border: 1px solid rgba(255,255,255,.25); background: #153d31; color: #fff; font-weight: 700; line-height: 1.45; }

@media (max-width: 720px) {
  body:not(.admin-page) .button-row { align-items: stretch; }
  body:not(.admin-page) .button-row .button { width: 100%; }
  body:not(.admin-page) .collection-card a { align-self: stretch; justify-content: center; }
  body:not(.admin-page) .filter-bar { gap: 8px; }
  .admin-page .panel-toolbar { align-items: stretch; flex-direction: column; }
  .admin-page .page-builder-actions .button { width: 100%; }
  .admin-page .dialog-actions .button { flex: 1 1 130px; }
  .admin-page .media-item__actions { flex-wrap: wrap; justify-content: flex-end; max-width: 65%; }
}

@media (prefers-reduced-motion: reduce) {
  .button[aria-busy="true"]::after { animation-duration: 1.5s; }
}
