/* GENERATED FILE. Do not edit directly.
   Source entrypoint: frontend/public/styles.css.
   Rebuild with: python3 scripts/build_css_runtime_bundles.py. */

/* BEGIN frontend/public/styles.css */
/* BlackStock BS2 runtime stylesheet. Module styles live in frontend/public/css/. */
/* BEGIN frontend/public/css/base.css */
/* BEGIN frontend/public/css/base-part-01.css */
/* Global tokens and primitives ownership. */
:root
{
  --blue:#2563eb;
  --blue-dark:#1d4ed8;
  --blue-soft:#dbeafe;
  --tiffany:#12b8b0;
  --tiffany-dark:#0f8f89;
  --tiffany-soft:#e6fffb;
  --brand-primary:#2563eb;
  --brand-primary-dark:#1d4ed8;
  --brand-soft:#dbeafe;
  --bg:#f6f7f9;
  --card:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --line:#e5e7eb;
  --danger:#dc2626;
  --success:#16a34a;
  --shadow:0 18px 50px rgba(15,23,42,.12);
  --topbar-height:56px;
  --topbar-action-size:40px;
  --topbar-action-gap:10px;
  --avatar-size:40px;
  --search-height:42px
}
*
{
  box-sizing:border-box
}
body
{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--text)
}
input,
textarea,
select
{
  font:inherit
}
button
{
  font:inherit;
  cursor:pointer
}
.is-hidden
{
  display:none!important
}
.form-stack
{
  display:grid;
  gap:14px
}
.form-stack label
{
  display:grid;
  gap:8px;
  color:#374151;
  font-size:14px;
  font-weight:700
}
.form-stack input,
.form-stack select
{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px 14px;
  outline:none;
  background:#fff;
  color:var(--text)
}
.form-stack textarea
{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px 14px;
  outline:none;
  background:#fff;
  color:var(--text);
  min-height:82px;
  resize:vertical
}
.form-stack input:focus,
.form-stack textarea:focus,
.form-stack select:focus
{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 4px rgba(10,186,181,.12)
}
.form-stack.compact
{
  gap:10px
}
.form-error,
.inline-error
{
  color:var(--danger);
  min-height:20px;
  font-size:14px
}
.primary-btn
{
  background:var(--brand-primary);
  color:#fff;
  border:0;
  border-radius:14px;
  padding:12px 16px;
  font-weight:800
}
.secondary-btn
{
  background:var(--brand-soft);
  color:var(--brand-primary-dark);
  border:1px solid rgba(10,186,181,.28);
  border-radius:14px;
  padding:12px 16px;
  font-weight:800
}
.small-btn
{
  border:1px solid var(--line);
  background:#fff;
  border-radius:10px;
  padding:7px 9px;
  font-weight:800;
  font-size:12px
}
.small-btn:disabled
{
  opacity:.45;
  cursor:not-allowed
}
.link-btn
{
  border:0;
  background:transparent;
  color:var(--brand-primary-dark);
  font-weight:800;
  padding:0;
  text-align:left
}
.chip
{
  background:var(--brand-soft);
  color:#087d79;
  border:1px solid rgba(10,186,181,.20);
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800
}
.muted
{
  color:var(--muted)
}
.danger-text
{
  color:var(--danger);
  font-size:12px
}
.status-badge
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 8px;
  font-size:12px;
  font-weight:900;
  background:#f3f4f6;
  color:#374151
}
.status-badge.processed
{
  background:#ecfdf5;
  color:#047857
}
.status-badge.processed_with_errors,
.status-badge.processed_with_warnings
{
  background:#fff7ed;
  color:#c2410c
}
.status-badge.failed
{
  background:#fef2f2;
  color:#b91c1c
}
.status-badge.processing
{
  background:var(--brand-soft);
  color:var(--brand-primary-dark)
}
.notice
{
  margin-top:14px;
  color:var(--success);
  font-weight:700
}
/* END frontend/public/css/base-part-01.css */

/* BEGIN frontend/public/css/base-part-02.css */
.notice.error
{
  color:#b91c1c
}
.notice.success
{
  color:#047857
}
.notice.info
{
  color:#075985
}
.stock-value
{
  display:inline-flex;
  align-items:baseline;
  justify-content:flex-end;
  min-width:3.1ch;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  line-height:1
}
.stock-value::after
{
  content:"";
  display:inline-block;
  width:.72ch;
  flex:0 0 .72ch
}
.stock-value--lower-bound::after
{
  display:none
}
.stock-value__number
{
  display:inline-block;
  min-width:1ch;
  text-align:right;
  font-variant-numeric:tabular-nums;
  line-height:1
}
.stock-value__plus
{
  display:inline-block;
  width:.72ch;
  margin-left:1px;
  text-align:left;
  line-height:1;
  font-variant-numeric:normal;
  transform:none
}
.stock-value--empty .stock-value__number
{
  color:var(--muted)
}
/* END frontend/public/css/base-part-02.css */

/* END frontend/public/css/base.css */

/* BEGIN frontend/public/css/app-shell.css */
/* BEGIN frontend/public/css/app-shell-part-01.css */
/* Base application shell ownership; feature CSS lives in modules. */
.app-shell
{
  min-height:100vh
}
.app-shell:not(.is-hidden)
{
  height:100vh;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  overflow:hidden
}
.app-scroll-root
{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable
}
.icon-btn
{
  width:42px;
  height:42px;
  border-radius:999px;
  border:0;
  color:#fff;
  background:rgba(255,255,255,.18);
  display:grid;
  place-items:center
}
.icon-btn.ghost
{
  background:rgba(255,255,255,.12)
}
.avatar
{
  width:42px;
  height:42px;
  border-radius:999px;
  background:#fff;
  color:var(--brand-primary-dark);
  display:grid;
  place-items:center;
  font-weight:900;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.7)
}
.avatar img
{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  display:block
}
.workspace
{
  padding:30px;
  max-width:1380px;
  margin:0 auto
}
#directory-page.workspace
{
  padding-top:4px
}
.page-head
{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom:20px;
  gap:20px
}
.page-head h1
{
  margin:0;
  font-size:clamp(30px,3vw,42px);
  letter-spacing:-.04em;
  line-height:1.08
}
.page-head p
{
  margin:8px 0 0;
  color:var(--muted);
  font-size:16px
}
.counter
{
  min-width:52px;
  height:42px;
  border-radius:999px;
  background:#fff;
  display:grid;
  place-items:center;
  color:var(--brand-primary-dark);
  font-weight:900;
  box-shadow:0 8px 24px rgba(15,23,42,.08)
}
.card-line
{
  display:grid;
  gap:2px;
  font-size:14px
}
.card-line b
{
  font-size:12px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.06em
}
.empty-state
{
  background:#fff;
  border:1px dashed #cbd5e1;
  border-radius:22px;
  padding:28px;
  text-align:center;
  color:var(--muted)
}
.drawer
{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.38);
  z-index:50;
  display:flex;
  justify-content:flex-end;
  padding:18px
}
.drawer-card
{
  width:min(470px,100%);
  height:100%;
  overflow:auto;
  background:#fff;
  border-radius:26px;
  box-shadow:var(--shadow);
  padding:22px;
  max-width:min(1180px,calc(100vw - 24px))
}
.drawer.wide .drawer-card
{
  width:min(1120px,100%)
}
.drawer-head
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px
}
.drawer-head h2
{
  margin:0;
  letter-spacing:-.03em
}
.close-btn
{
  border:0;
  background:#f3f4f6;
  border-radius:999px;
  width:38px;
  height:38px;
  font-size:24px
}
.toast
{
  position:fixed;
  bottom:22px;
  right:22px;
  background:#111827;
  color:#fff;
  border-radius:14px;
  padding:12px 16px;
  box-shadow:var(--shadow);
  z-index:100
}
@media(max-width:860px)
{
  .workspace
  {
    padding:18px
  }
  #directory-page.workspace
  {
    padding-top:4px
  }
  .page-head
  {
    align-items:flex-start;
    flex-direction:column
  }
}
/* END frontend/public/css/app-shell-part-01.css */

/* BEGIN frontend/public/css/app-shell-part-02.css */
.inline-check
{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  padding:10px 0;
  color:var(--text);
  text-transform:none;
  letter-spacing:0
}
.inline-check input
{
  width:17px;
  height:17px
}
.workbench-tabs
{
  display:inline-flex;
  gap:8px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:13px;
  margin:4px 0 12px
}
.code-box
{
  background:#0f172a;
  color:#e5e7eb;
  border-radius:12px;
  padding:14px;
  overflow:auto;
  max-height:420px;
  font-size:12px;
  line-height:1.45
}
.empty-state-card,
.loading-state
{
  display:grid;
  gap:8px;
  justify-items:start;
  border:1px dashed var(--line);
  border-radius:18px;
  background:#fff;
  color:var(--muted);
  padding:18px
}
.empty-state-card b
{
  color:var(--text);
  font-size:16px
}
@media(max-width:520px)
{
  .drawer.wide .drawer-card,
  .drawer-card
  {
    padding:14px;
    border-radius:18px
  }
}
.article-cell b
{
  font-weight:900;
  vertical-align:middle
}
.modal-overlay
{
  position:fixed;
  inset:0;
  z-index:80;
  background:rgba(15,23,42,.42);
  display:grid;
  place-items:center;
  padding:18px
}
.modal-card
{
  width:min(520px,100%);
  max-height:min(720px,calc(100vh - 36px));
  overflow:auto;
  background:#fff;
  border-radius:26px;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.9);
  padding:22px
}
.modal-head
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px
}
.modal-head h2
{
  margin:0;
  letter-spacing:-.03em
}
.modal-head p
{
  margin:6px 0 0;
  color:var(--muted)
}
.modal-actions
{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:4px
}
@media(max-width:520px)
{
  .modal-card
  {
    padding:16px;
    border-radius:20px
  }
}
.app-page
{
  width:100%
}
.app-page-card
{
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  box-shadow:0 10px 32px rgba(15,23,42,.07);
  padding:22px
}
.page-header
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px
}
.page-header h1
{
  margin:4px 0 0;
  font-size:28px;
  letter-spacing:-.04em
}
.page-back-link
{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--brand-primary-dark);
  font-size:13px;
  font-weight:900;
  text-decoration:none
}
.page-back-link:hover
{
  text-decoration:underline
}
.branding-shell
{
  width:min(1440px,calc(100vw - 44px));
  max-width:calc(100vw - 44px);
  margin:0 auto;
  padding:22px 0 28px;
  box-sizing:border-box;
  overflow-x:clip
}
.branding-production-layout
{
  display:grid;
  gap:20px;
  min-width:0;
  box-sizing:border-box
}
.branding-preview-card
{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(203,213,225,.78);
  border-radius:22px;
  box-shadow:0 16px 42px rgba(15,23,42,.06);
  padding:20px;
  min-width:0;
  box-sizing:border-box
}
.branding-preview-card h3
{
  margin:0 0 14px;
  font-size:15px;
  color:#0f172a;
  letter-spacing:-.01em
}
/* END frontend/public/css/app-shell-part-02.css */

/* BEGIN frontend/public/css/app-shell-part-03.css */
.branding-topbar-preview
{
  min-height:74px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--preview-primary),var(--preview-dark));
  display:grid;
  grid-template-columns:minmax(180px,310px) minmax(260px,1fr) auto;
  align-items:center;
  gap:18px;
  padding:0 22px;
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 14px 28px color-mix(in srgb,var(--preview-primary) 28%,transparent)
}
.branding-preview-brand
{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0
}
.branding-preview-logo
{
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:rgba(255,255,255,.12);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24)
}
.branding-preview-logo img
{
  width:100%;
  height:100%;
  object-fit:cover
}
.branding-preview-title
{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:22px;
  font-weight:800;
  letter-spacing:-.012em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.branding-preview-search
{
  height:44px;
  border-radius:999px;
  background:#fff;
  color:#7b8496;
  display:grid;
  grid-template-columns:1fr 50px;
  align-items:center;
  box-shadow:0 10px 25px rgba(15,23,42,.13);
  min-width:0
}
.branding-preview-search span
{
  padding-left:18px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.branding-preview-search svg
{
  width:22px;
  height:22px;
  fill:#0f172a;
  justify-self:center
}
.branding-preview-actions
{
  display:flex;
  align-items:center;
  gap:10px
}
.branding-preview-actions>span
{
  width:42px;
  height:42px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  display:grid;
  place-items:center;
  font-weight:900
}
.branding-preview-actions svg
{
  width:20px;
  height:20px;
  fill:#fff
}
.branding-preview-avatar
{
  background:#fff!important;
  color:var(--preview-dark)!important;
  border:2px solid rgba(255,255,255,.75);
  font-size:12px
}
.branding-preview-logout
{
  width:auto!important;
  padding:0 18px;
  background:rgba(0,0,0,.16)!important
}
.branding-settings-grid
{
  display:grid;
  grid-template-columns:minmax(260px,.88fr) minmax(380px,1.06fr) minmax(330px,1.06fr);
  gap:18px;
  align-items:stretch
}
.branding-setting-card
{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(203,213,225,.78);
  border-radius:22px;
  box-shadow:0 16px 42px rgba(15,23,42,.06);
  padding:22px;
  display:grid;
  align-content:start;
  gap:16px;
  min-width:0;
  box-sizing:border-box
}
.branding-card-title
{
  display:flex;
  align-items:center;
  gap:12px
}
.branding-card-title h3
{
  margin:0;
  font-size:18px;
  letter-spacing:-.02em
}
.branding-card-icon
{
  width:38px;
  height:38px;
  border-radius:14px;
  background:#eaf1ff;
  color:var(--brand-primary);
  display:grid;
  place-items:center;
  flex:0 0 auto
}
.branding-card-icon svg
{
  width:21px;
  height:21px;
  fill:currentColor
}
.branding-toggle-row
{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  color:#334155
}
.branding-toggle-row input
{
  width:18px;
  height:18px;
  accent-color:var(--brand-primary)
}
.branding-field-label
{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#64748b;
  font-weight:900
}
.branding-text-input
{
  width:100%;
  height:54px;
  border:1px solid #dbe4f0;
  border-radius:13px;
  background:#fff;
  padding:0 16px;
  font-size:16px;
  font-weight:750;
  color:#0f172a;
  box-sizing:border-box
}
.branding-text-input:focus
{
  outline:0;
  border-color:var(--brand-primary);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--brand-primary) 14%,transparent)
}
.branding-text-input:disabled
{
  background:#f8fafc;
  color:#94a3b8
}
/* END frontend/public/css/app-shell-part-03.css */

/* BEGIN frontend/public/css/app-shell-part-04.css */
.branding-help-text
{
  margin:0;
  color:#64748b;
  font-size:13px;
  line-height:1.55
}
.branding-logo-mode
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px
}
.branding-logo-mode-option
{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:54px;
  border:1px solid #dbe4f0;
  border-radius:14px;
  padding:0 14px;
  background:#fff;
  font-weight:850;
  color:#334155;
  cursor:pointer;
  box-sizing:border-box
}
.branding-logo-mode-option input
{
  width:18px;
  height:18px;
  accent-color:var(--brand-primary)
}
.branding-logo-mode-option.is-selected
{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary) 14%,transparent);
  color:#0f172a
}
.branding-logo-mode-option.is-disabled
{
  opacity:.55;
  cursor:not-allowed
}
.branding-logo-workspace
{
  display:grid;
  grid-template-columns:minmax(190px,1fr) minmax(190px,1fr);
  gap:12px
}
.branding-logo-preview
{
  min-height:126px;
  border:1px solid #dbe4f0;
  border-radius:16px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  padding:16px;
  box-sizing:border-box;
  color:#0f172a;
  font-weight:900;
  overflow:hidden
}
.branding-logo-preview img
{
  width:58px;
  height:58px;
  border-radius:14px;
  object-fit:cover;
  flex:0 0 auto
}
.branding-logo-preview span
{
  display:grid;
  gap:3px
}
.branding-logo-preview small
{
  color:#64748b;
  font-weight:700;
  line-height:1.25
}
.branding-upload-zone
{
  min-height:126px;
  border:1px dashed #cbd5e1;
  border-radius:16px;
  background:#f8fafc;
  display:grid;
  place-items:center;
  text-align:center;
  gap:4px;
  padding:16px;
  box-sizing:border-box;
  color:#64748b;
  cursor:pointer
}
.branding-upload-zone:hover
{
  border-color:var(--brand-primary);
  background:#f3fbfb
}
.branding-upload-zone svg
{
  width:30px;
  height:30px;
  fill:#64748b
}
.branding-upload-zone b
{
  color:var(--brand-primary-dark)
}
.branding-upload-zone small
{
  font-weight:700;
  color:#94a3b8;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.branding-file-input
{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none
}
.branding-logo-footer
{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:end
}
.branding-upload-btn,
.branding-save-btn,
.branding-back-btn
{
  border-radius:14px;
  font-weight:900;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:46px;
  box-sizing:border-box
}
.branding-upload-btn,
.branding-save-btn
{
  border:0;
  background:var(--brand-primary);
  color:#fff;
  padding:0 18px;
  min-width:230px;
  box-shadow:0 12px 24px color-mix(in srgb,var(--brand-primary) 22%,transparent)
}
.branding-upload-btn:hover,
.branding-save-btn:hover
{
  background:var(--brand-primary-dark)
}
.branding-save-btn svg
{
  width:19px;
  height:19px;
  fill:#fff
}
.branding-back-btn
{
  border:1px solid #cbd5e1;
  background:#fff;
  color:var(--brand-primary-dark);
  padding:0 22px;
  min-width:160px
}
.branding-theme-grid
{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px;
  min-width:0
}
/* END frontend/public/css/app-shell-part-04.css */

/* BEGIN frontend/public/css/app-shell-part-05.css */
.branding-theme-card
{
  position:relative;
  min-height:78px;
  border:1px solid #dbe4f0;
  background:#fff;
  border-radius:16px;
  padding:12px 13px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
  font-weight:900;
  color:#0f172a;
  text-align:left;
  cursor:pointer;
  min-width:0;
  box-sizing:border-box;
  overflow:hidden
}
.branding-theme-card:hover
{
  border-color:var(--theme-color)
}
.branding-theme-card.is-selected
{
  border-color:var(--theme-color);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--theme-color) 18%,transparent),0 14px 28px rgba(15,23,42,.07)
}
.branding-theme-card.is-selected::after
{
  content:"";
  position:absolute;
  left:13px;
  bottom:9px;
  width:16px;
  height:16px;
  border-radius:999px;
  background:radial-gradient(circle at center,#fff 0 34%,var(--theme-color) 38% 100%);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-color) 40%,#fff)
}
.branding-theme-swatch
{
  width:30px;
  height:30px;
  border-radius:999px;
  background:var(--theme-color);
  box-shadow:0 8px 18px rgba(15,23,42,.14);
  flex:0 0 auto
}
.branding-theme-body
{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  line-height:1.1
}
.branding-theme-name
{
  font-weight:950;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.branding-theme-default
{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  width:max-content;
  max-width:100%;
  margin-left:0;
  border-radius:999px;
  background:#dbeafe;
  color:#1d4ed8;
  font-size:10px;
  font-weight:950;
  padding:4px 7px;
  line-height:1.1;
  white-space:nowrap;
  text-align:center;
  box-sizing:border-box
}
.branding-action-bar
{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(203,213,225,.78);
  border-radius:22px;
  box-shadow:0 16px 42px rgba(15,23,42,.06);
  min-width:0;
  box-sizing:border-box;
  min-height:86px;
  padding:20px;
  display:flex;
  gap:16px;
  align-items:center
}
@media(max-width:1180px)
{
  .branding-settings-grid
  {
    grid-template-columns:1fr 1fr
  }
  .branding-theme-card-wrap
  {
    grid-column:1/-1
  }
  .branding-theme-grid
  {
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr))
  }
  .branding-topbar-preview
  {
    grid-template-columns:minmax(170px,260px) minmax(220px,1fr)
  }
  .branding-preview-actions span:not(.branding-preview-avatar):not(.branding-preview-logout)
  {
    display:none
  }
}
@media(max-width:820px)
{
  .branding-shell
  {
    width:min(100% - 28px,720px);
    padding-top:22px
  }
  .branding-settings-grid
  {
    grid-template-columns:1fr
  }
  .branding-topbar-preview
  {
    grid-template-columns:1fr;
    gap:12px;
    padding:16px;
    justify-items:stretch
  }
  .branding-preview-search
  {
    width:100%
  }
  .branding-preview-actions
  {
    justify-content:flex-start;
    flex-wrap:wrap
  }
  .branding-logo-workspace
  {
    grid-template-columns:1fr
  }
  .branding-logo-footer
  {
    grid-template-columns:1fr
  }
  .branding-upload-btn
  {
    width:100%
  }
  .branding-theme-grid
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .branding-action-bar
  {
    align-items:stretch;
    flex-direction:column
  }
  .branding-save-btn,
  .branding-back-btn
  {
    width:100%;
    min-width:0
  }
}
@media(max-width:520px)
{
  .branding-shell
  {
    width:min(100% - 20px,480px)
  }
  .branding-preview-card,
  .branding-setting-card,
  .branding-action-bar
  {
    border-radius:18px;
    padding:16px
  }
  .branding-logo-mode,
  .branding-theme-grid
  {
    grid-template-columns:1fr
  }
  .branding-preview-title
  {
    font-size:20px
  }
  .branding-preview-logout
  {
    width:100%!important
  }
  .branding-card-title
  {
    align-items:flex-start
  }
  .branding-card-title h3
  {
    font-size:17px
  }
}
/* END frontend/public/css/app-shell-part-05.css */

/* BEGIN frontend/public/css/app-shell-part-06.css */
.feature-admin-layout
{
  display:grid;
  gap:18px
}
.paid-features-clean-layout
{
  display:grid;
  grid-template-columns:repeat(2,minmax(320px,460px));
  gap:18px;
  align-items:start;
  justify-content:start
}
.feature-card-grid
{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
  gap:18px
}
.feature-admin-card
{
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px;
  background:#fff
}
.feature-admin-card h3
{
  margin:0 0 12px
}
.feature-admin-card .warning
{
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#9a3412;
  border-radius:14px;
  padding:10px;
  font-weight:700
}
.feature-actions
{
  display:flex;
  gap:10px;
  flex-wrap:wrap
}
.feature-admin-card select,
.feature-admin-card input
{
  width:100%
}
.feature-user-company-table
{
  margin-top:12px
}
.check.is-disabled,
.feature-toggle-row.is-disabled
{
  opacity:.55
}
.check.is-disabled input,
.feature-toggle-row.is-disabled input
{
  pointer-events:none
}
.feature-toggle-row span
{
  display:inline;
  line-height:1.35
}
.feature-admin-card label.feature-toggle-row input[type="checkbox"]
{
  display:inline-block;
  width:16px;
  height:16px;
  min-width:16px;
  flex:0 0 16px;
  margin:0;
  padding:0;
  accent-color:var(--brand-primary)
}
@media (max-width:900px)
{
  .paid-features-clean-layout
  {
    grid-template-columns:1fr
  }
  .paid-features-clean-layout .feature-admin-card
  {
    max-width:none
  }
}
.primary-branch-grid
{
  display:grid;
  grid-template-columns:repeat(4,minmax(140px,1fr));
  gap:12px;
  margin-top:14px
}
.primary-branch-grid div
{
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff
}
.primary-branch-grid b
{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--muted)
}
.primary-branch-grid span
{
  font-weight:800
}
.section-head-row
{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start
}
.primary-branch-grid.is-compact
{
  grid-template-columns:minmax(180px,1fr) 2fr
}
.compact-list
{
  display:grid;
  gap:8px
}
.compact-list-row
{
  display:grid;
  grid-template-columns:70px 120px minmax(180px,1fr) minmax(120px,auto);
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc
}
.compact-list-row b
{
  color:var(--text)
}
.compact-list-row span
{
  font-weight:800
}
.compact-list-row em
{
  font-style:normal;
  color:var(--muted)
}
.compact-list-row small
{
  color:var(--muted);
  font-weight:800
}
.row-actions
{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap
}
.small-primary
{
  padding:9px 14px;
  border-radius:12px
}
.modal-head-actions
{
  display:flex;
  align-items:center;
  gap:10px
}
.icon-plus-btn
{
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid rgba(20,184,166,.26);
  background:#ecfeff;
  color:#0f766e;
  font-size:24px;
  font-weight:900;
  line-height:1;
  cursor:pointer
}
.icon-plus-btn:hover
{
  background:#ccfbf1
}
/* END frontend/public/css/app-shell-part-06.css */

/* BEGIN frontend/public/css/app-shell-part-07.css */
@media print
{
  @page
  {
    size:A4 portrait;
    margin:8mm
  }
  html,
  body
  {
    width:auto;
    height:auto;
    background:#fff
  }
}
.diagnostics-actions
{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0
}
.loading-state span
{
  font-weight:650
}
.form-stack label.feature-toggle-row,
.feature-admin-card label.feature-toggle-row
{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:fit-content
}
/* PASS 85.34.R1 — branding master toggle and theme badge overflow polish */
.branding-master-card
{
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(248,250,252,.98));
  border:1px solid rgba(203,213,225,.78);
  border-radius:22px;
  box-shadow:0 16px 42px rgba(15,23,42,.06);
  padding:20px 22px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  min-width:0
}
.branding-master-copy
{
  display:flex;
  align-items:flex-start;
  gap:14px;
  min-width:0
}
.branding-master-copy h3
{
  margin:0 0 5px;
  font-size:18px;
  letter-spacing:-.02em;
  color:#0f172a
}
.branding-master-copy p
{
  margin:0;
  color:#64748b;
  font-size:14px;
  line-height:1.5;
  max-width:760px
}
.branding-master-switch
{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  border:1px solid #dbe4f0;
  background:#fff;
  border-radius:999px;
  padding:0 16px 0 10px;
  font-weight:900;
  color:#0f172a;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(15,23,42,.05)
}
.branding-master-switch input
{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none
}
.branding-master-switch-control
{
  width:46px;
  height:26px;
  border-radius:999px;
  background:#cbd5e1;
  position:relative;
  flex:0 0 auto;
  transition:background .16s ease
}
.branding-master-switch-control::after
{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 2px 7px rgba(15,23,42,.25);
  transition:transform .16s ease
}
.branding-master-switch input:checked+.branding-master-switch-control
{
  background:var(--brand-primary)
}
.branding-master-switch input:checked+.branding-master-switch-control::after
{
  transform:translateX(20px)
}
.branding-master-card.is-disabled
{
  border-color:#dbe4f0
}
.branding-master-card.is-disabled .branding-card-icon
{
  color:#64748b;
  background:#f1f5f9
}
.branding-production-layout.is-branding-disabled .branding-preview-card
{
  box-shadow:0 12px 34px rgba(15,23,42,.045)
}
.branding-production-layout.is-branding-disabled .branding-setting-card
{
  background:rgba(255,255,255,.92)
}
.branding-production-layout.is-branding-disabled .branding-help-text::selection
{
  background:transparent
}
/* END frontend/public/css/app-shell-part-07.css */

/* BEGIN frontend/public/css/app-shell-part-08.css */
.branding-title-card .branding-text-input
{
  margin-top:2px
}
@media(max-width:1180px)
{
  .branding-master-card
  {
    grid-template-columns:1fr
  }
  .branding-master-switch
  {
    width:max-content;
    max-width:100%;
    white-space:normal
  }
}
@media(max-width:520px)
{
  .branding-shell
  {
    max-width:calc(100vw - 20px)
  }
  .branding-master-card
  {
    border-radius:18px;
    padding:16px
  }
  .branding-master-switch
  {
    width:100%;
    justify-content:flex-start
  }
  .branding-theme-card
  {
    min-height:70px
  }
}
/* END frontend/public/css/app-shell-part-08.css */

/* END frontend/public/css/app-shell.css */

/* BEGIN frontend/public/css/topbar.css */
/* BEGIN frontend/public/css/topbar-part-01.css */
/* Topbar and app-menu UI ownership. */
.topbar
{
  height:var(--topbar-height);
  min-height:var(--topbar-height);
  flex:0 0 auto;
  background:var(--brand-primary);
  display:grid;
  grid-template-columns:minmax(180px,260px) minmax(280px,1fr) auto;
  gap:18px;
  align-items:center;
  padding:0 22px;
  position:relative;
  top:auto;
  z-index:20;
  box-shadow:0 8px 26px rgba(0,0,0,.12)
}
.brand
{
  color:#fff;
  min-width:0;
  max-width:100%;
  overflow:hidden
}
.brand-link
{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:#fff;
  min-width:0;
  max-width:100%;
  overflow:hidden
}
.brand-link:hover
{
  opacity:.92
}
.brand-logo
{
  width:38px;
  height:38px;
  min-width:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  flex:0 0 auto
}
.brand-logo__svg
{
  width:38px;
  height:38px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:4.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke
}
.brand-logo__magnifier-ring
{
  opacity:.98
}
.brand-logo__magnifier-handle
{
  opacity:.98;
  stroke-width:5.4
}
.brand-logo__nut
{
  opacity:.96;
  stroke-width:4.2
}
.brand-logo__nut-hole
{
  opacity:.96;
  stroke-width:4
}
.brand-logo--custom
{
  background:#fff;
  border-radius:12px;
  padding:0;
  overflow:hidden
}
.brand-logo__custom
{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:10px
}
.brand-logo--custom .brand-logo__svg
{
  display:none
}
.brand-title
{
  display:block;
  min-width:0;
  max-width:100%;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:22px;
  font-weight:800;
  line-height:1;
  letter-spacing:-.012em;
  color:#fff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.top-search
{
  position:relative;
  display:flex;
  align-items:center;
  justify-self:center;
  width:min(680px,100%);
  height:var(--search-height);
  background:#fff;
  border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(0,0,0,.08),inset 0 -1px 0 rgba(0,0,0,.08);
  overflow:visible
}
.top-search input
{
  flex:1;
  min-width:80px;
  height:100%;
  border:0;
  border-radius:999px;
  padding:0 14px 0 20px;
  outline:none;
  background:transparent;
  box-shadow:none;
  color:#0f172a;
  font-weight:600
}
.top-search-controls
{
  display:inline-flex;
  align-items:center;
  gap:4px;
  height:100%;
  flex:0 0 auto;
  padding-right:4px
}
.top-search-mode
{
  position:relative;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  height:100%;
  z-index:35
}
.top-search-mode__button
{
  height:100%;
  border:0;
  background:transparent;
  color:rgba(71,85,105,.82);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:0 8px;
  font-size:14px;
  font-weight:500;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  border-radius:999px;
  transition:color .14s ease,opacity .14s ease
}
.top-search-mode__button:hover,
.top-search-mode__button[aria-expanded="true"]
{
  color:rgba(15,23,42,.90);
  background:transparent
}
.top-search-mode__chevron
{
  width:13px;
  height:13px;
  fill:currentColor;
  opacity:.55;
  transition:transform .14s ease,opacity .14s ease
}
.top-search-mode__button:hover .top-search-mode__chevron
{
  opacity:.72
}
.top-search-mode__button[aria-expanded="true"] .top-search-mode__chevron
{
  transform:rotate(180deg);
  opacity:.72
}
/* END frontend/public/css/topbar-part-01.css */

/* BEGIN frontend/public/css/topbar-part-02.css */
.top-search-mode__menu
{
  position:absolute;
  right:0;
  left:auto;
  top:calc(100% + 10px);
  width:max-content;
  min-width:148px;
  padding:7px;
  border-radius:17px;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 18px 45px rgba(15,23,42,.16);
  display:grid;
  gap:2px;
  z-index:90
}
.top-search-mode__option
{
  width:100%;
  height:36px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#1f2937;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:0 11px;
  text-align:left;
  font-size:14px;
  font-weight:550;
  cursor:pointer
}
.top-search-mode__option:hover
{
  background:#f8fafc
}
.top-search-mode__option[aria-checked="false"] .top-search-mode__check
{
  visibility:hidden
}
.top-search-mode__option.is-selected
{
  background:#f8fafc;
  color:#0f172a
}
.top-search-mode__check
{
  color:#0f172a;
  font-weight:600
}
.top-search__submit
{
  width:54px;
  height:100%;
  border:0;
  border-radius:999px;
  background:transparent;
  display:grid;
  place-items:center;
  cursor:pointer;
  color:#111827
}
.top-search__submit:hover
{
  background:transparent;
  color:#000
}
.top-search svg,
.icon-btn svg
{
  width:22px;
  height:22px;
  fill:currentColor
}
.top-actions
{
  display:flex;
  align-items:center;
  gap:var(--topbar-action-gap);
  justify-content:flex-end;
  position:relative
}
.topbar-action,
.icon-btn.topbar-action
{
  width:var(--topbar-action-size);
  height:var(--topbar-action-size);
  min-width:var(--topbar-action-size);
  min-height:var(--topbar-action-size);
  border-radius:999px;
  border:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  line-height:1;
  color:#fff;
  background:rgba(255,255,255,.18)
}
.topbar-action:hover,
.icon-btn.topbar-action:hover
{
  background:rgba(255,255,255,.26)
}
.agent-toggle.is-active
{
  position:relative;
  background:#fff;
  color:var(--brand-primary-dark);
  box-shadow:0 0 0 3px rgba(255,255,255,.20)
}
.agent-toggle.is-active::after
{
  content:"";
  position:absolute;
  right:6px;
  top:6px;
  width:8px;
  height:8px;
  border-radius:999px;
  background:#10b981;
  box-shadow:0 0 0 2px #fff
}
.topbar-action svg,
.icon-btn.topbar-action svg
{
  width:20px;
  height:20px;
  display:block;
  fill:currentColor
}
.topbar-filter-btn,
.topbar-filter-btn--labeled
{
  position:relative;
  width:var(--topbar-action-size);
  min-width:var(--topbar-action-size);
  height:var(--topbar-action-size);
  min-height:var(--topbar-action-size);
  padding:0;
  gap:0;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  flex:0 0 auto
}
.topbar-filter-btn svg,
.topbar-filter-btn--labeled svg
{
  width:21px;
  height:21px;
  display:block;
  fill:currentColor;
  flex:0 0 auto
}
.topbar-filter-btn--labeled span
{
  display:none
}
.topbar-filter-btn.is-active::after,
.topbar-filter-btn--labeled.is-active::after
{
  content:'';
  position:absolute;
  right:7px;
  top:7px;
  width:8px;
  height:8px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 0 0 2px var(--brand-primary-dark)
}
.topbar-avatar,
.avatar.topbar-avatar
{
  width:var(--avatar-size);
  height:var(--avatar-size);
  min-width:var(--avatar-size);
  min-height:var(--avatar-size);
  border-radius:999px;
  background:#fff;
  color:var(--brand-primary-dark);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.7);
  line-height:1;
  padding:0
}
/* END frontend/public/css/topbar-part-02.css */

/* BEGIN frontend/public/css/topbar-part-03.css */
.topbar-logout,
.logout-btn.topbar-logout
{
  height:var(--topbar-action-size);
  min-height:var(--topbar-action-size);
  border:0;
  color:#fff;
  background:rgba(0,0,0,.16);
  border-radius:999px;
  padding:0 18px;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1
}
.app-menu
{
  position:absolute;
  right:112px;
  top:calc(100% + 12px);
  width:292px;
  max-width:calc(100vw - 24px);
  padding:10px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:20px;
  background:#fff;
  box-shadow:0 22px 55px rgba(15,23,42,.18);
  z-index:80;
  display:grid;
  gap:6px;
  overflow:visible
}
.app-menu::before
{
  content:'';
  position:absolute;
  top:-7px;
  right:50px;
  width:14px;
  height:14px;
  transform:rotate(45deg);
  background:#fff;
  border-left:1px solid rgba(15,23,42,.08);
  border-top:1px solid rgba(15,23,42,.08)
}
.app-menu__item
{
  position:relative;
  z-index:1;
  width:100%;
  border:0;
  background:transparent;
  border-radius:16px;
  padding:10px;
  display:grid;
  grid-template-columns:42px 1fr;
  align-items:center;
  gap:10px;
  text-align:left;
  color:var(--text);
  text-decoration:none;
  font:inherit;
  cursor:pointer
}
.app-menu__item:visited
{
  color:var(--text)
}
.app-menu__item:hover
{
  background:#f3fbfb
}
.app-menu__item b
{
  display:block;
  font-size:14px
}
.app-menu__item small
{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-weight:600;
  line-height:1.25
}
.app-menu__icon
{
  width:42px;
  height:42px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:var(--brand-soft);
  color:var(--brand-primary-dark);
  font-weight:900;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
  font-size:18px
}
.app-menu__icon--combo
{
  position:relative
}
.app-menu__icon svg
{
  width:22px;
  height:22px;
  display:block;
  fill:currentColor
}
.app-menu__icon-img
{
  width:34px;
  height:34px;
  display:block;
  object-fit:contain
}
.app-menu__icon--business-chat
{
  background:linear-gradient(135deg,#eff6ff,#dbeafe);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)
}
.app-menu__combo
{
  position:relative;
  width:24px;
  height:24px;
  display:block
}
.app-menu__combo-main
{
  display:block
}
.app-menu__combo-main svg
{
  width:22px;
  height:22px
}
.app-menu__combo-badge
{
  position:absolute;
  right:-2px;
  bottom:-2px;
  width:12px;
  height:12px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:var(--brand-primary-dark);
  color:#fff;
  box-shadow:0 0 0 2px var(--brand-soft)
}
.app-menu__combo-badge svg
{
  width:7px;
  height:7px;
  fill:currentColor
}
.app-menu__item:nth-child(1) .app-menu__icon
{
  background:linear-gradient(135deg,#eef2ff,#dbeafe);
  color:#4f46e5
}
.app-menu__item:nth-child(2) .app-menu__icon
{
  background:linear-gradient(135deg,#ecfeff,#ccfbf1);
  color:#0f766e
}
.app-menu__item:nth-child(3) .app-menu__icon
{
  background:linear-gradient(135deg,#eff6ff,#dbeafe);
  color:#2563eb
}
.app-menu__item:nth-child(4) .app-menu__icon
{
  background:linear-gradient(135deg,#fff7ed,#ffedd5);
  color:#ea580c
}
.app-menu__item:nth-child(5) .app-menu__icon
{
  background:linear-gradient(135deg,#f5f3ff,#ede9fe);
  color:#7c3aed
}
.search-mode-modal-backdrop
{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.34);
  display:grid;
  place-items:center;
  z-index:210
}
.search-mode-modal
{
  width:min(420px,calc(100vw - 28px));
  background:#fff;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 28px 80px rgba(15,23,42,.28);
  padding:20px
}
.search-mode-modal__head
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
/* END frontend/public/css/topbar-part-03.css */

/* BEGIN frontend/public/css/topbar-part-04.css */
.search-mode-modal__title
{
  font-size:20px;
  font-weight:900;
  color:#0f172a
}
.search-mode-modal__close
{
  width:36px;
  height:36px;
  border:0;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-size:22px;
  line-height:1
}
.search-mode-modal__body
{
  margin:18px 0;
  color:#475569;
  font-weight:700
}
.search-mode-modal__actions
{
  display:flex;
  justify-content:flex-end
}
.search-mode-modal__button
{
  height:40px;
  border:0;
  border-radius:14px;
  background:var(--brand-primary);
  color:#fff;
  font-weight:900;
  padding:0 18px
}
body[data-route="admin"] .directory-hero,
body[data-route="settings"] .directory-hero
{
  display:none
}
body[data-route="admin"] .topbar-filter-btn,
body[data-route="settings"] .topbar-filter-btn
{
  opacity:.45;
  pointer-events:none
}
@media(max-width:980px)
{
  .app-menu
  {
    right:0;
    top:calc(100% + 10px)
  }
  .app-menu::before
  {
    right:50px
  }
}
@media(max-width:860px)
{
  .topbar
  {
    grid-template-columns:1fr;
    height:auto;
    min-height:var(--topbar-height);
    padding:10px 12px;
    gap:10px
  }
  .top-actions
  {
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap
  }
  .top-search
  {
    justify-self:stretch
  }
  .brand-link
  {
    max-width:min(100%,360px)
  }
  .brand-logo
  {
    width:30px;
    height:30px;
    min-width:30px
  }
  .brand-logo__svg
  {
    width:30px;
    height:30px;
    stroke-width:4.4
  }
  .brand-title
  {
    font-size:20px
  }
}
@media(max-width:520px)
{
  .brand-link
  {
    max-width:min(100%,220px)
  }
  .brand-title
  {
    font-size:18px
  }
  .top-search
  {
    width:100%
  }
  .top-search input
  {
    padding-left:16px
  }
  .top-search-controls
  {
    gap:2px;
    padding-right:3px
  }
  .top-search-mode__button
  {
    padding:0 6px;
    font-size:13px
  }
  .top-search-mode__menu
  {
    right:-6px;
    min-width:142px
  }
  .top-search__submit
  {
    width:50px
  }
  .top-actions
  {
    width:100%;
    gap:8px
  }
  .topbar-logout
  {
    padding:8px 10px
  }
}
html[data-branding-source="snapshot"]:not([data-branding-hydrated="ready"]) .brand-identity
{
  visibility:hidden
}
/* END frontend/public/css/topbar-part-04.css */

/* END frontend/public/css/topbar.css */

/* BEGIN frontend/public/css/search.css */
/* BEGIN frontend/public/css/search-part-01.css */
/* Search results UI ownership. */
#directory-page
{
  --results-summary-sticky-top:-2px
}
.price-results
{
  display:grid;
  gap:3px
}
.price-results-head
{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:16px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  box-shadow:0 14px 34px rgba(15,23,42,.07)
}
.price-results-head h2
{
  margin:0;
  letter-spacing:-.035em
}
.price-results-head p
{
  margin:6px 0 0;
  color:var(--muted)
}
.price-results-head__main
{
  min-width:0;
  flex:1
}
.price-results-head.search-results-summary
{
  position:sticky;
  top:var(--results-summary-sticky-top,-2px);
  z-index:18;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.10)
}
.search-results-summary
{
  align-items:flex-start;
  gap:16px
}
.search-results-summary__top
{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  flex-wrap:nowrap;
  width:100%
}
.search-results-title
{
  margin:0;
  white-space:nowrap;
  line-height:1.1
}
.search-results-summary .search-results-tools
{
  margin:0;
  flex:1 1 520px;
  max-width:620px;
  min-width:260px;
  width:auto
}
.description-search-inline
{
  display:block;
  font-size:14px;
  line-height:1;
  color:var(--text)
}
.description-search-inline>span
{
  display:none
}
.description-search-inline__control
{
  position:relative;
  width:100%
}
.description-search-inline__input
{
  width:100%;
  height:40px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  padding:0 42px 0 16px;
  outline:none;
  font-size:14px;
  font-weight:750;
  line-height:40px;
  color:var(--text);
  appearance:none;
  -webkit-appearance:none
}
.description-search-inline__input::-webkit-search-cancel-button
{
  display:none
}
.description-search-inline__input::placeholder
{
  color:#6b7280;
  opacity:1
}
.description-search-inline__input:focus
{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 4px rgba(10,186,181,.11)
}
.description-search-inline__clear
{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  border:0;
  border-radius:999px;
  background:var(--brand-soft);
  color:var(--brand-primary-dark);
  font-size:18px;
  font-weight:900;
  display:grid;
  place-items:center;
  cursor:pointer;
  z-index:2
}
.description-search-inline__clear:hover
{
  background:#dff7f6
}
.description-search-inline__clear.is-hidden
{
  display:none
}
.price-results-count-badge
{
  height:42px;
  min-width:42px;
  border-radius:999px;
  background:var(--brand-soft);
  color:var(--brand-primary-dark);
  border:1px solid rgba(10,186,181,.30);
  display:inline-grid;
  place-items:center;
  font-size:13px;
  font-weight:950;
  margin-left:auto;
  flex:0 0 auto;
  padding:0 14px;
  white-space:nowrap
}
.price-results-counter
{
  display:none
}
.price-table-wrap
{
  background:#fff;
  border:1px solid rgba(203,213,225,.85);
  border-radius:24px;
  overflow:auto;
  box-shadow:0 16px 40px rgba(15,23,42,.08);
  max-width:100%;
  overflow-x:auto
}
.price-table
{
  min-width:1040px
}
.price-table td:nth-child(3)
{
  max-width:420px
}
.search-results-table
{
  --results-table-header-height:26px;
  --results-table-filter-size:22px;
  --results-table-filter-icon-size:10px;
  --results-table-filter-count-size:12px;
  width:100%;
  min-width:1040px;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed
}
.search-results-table thead
{
  position:sticky;
  top:0;
  z-index:4
}
/* END frontend/public/css/search-part-01.css */

/* BEGIN frontend/public/css/search-part-02.css */
.search-results-table thead tr
{
  height:var(--results-table-header-height);
  background:linear-gradient(180deg,#111a33,#0b1328)
}
.search-results-table th
{
  height:var(--results-table-header-height);
  min-height:0;
  border-bottom:0;
  vertical-align:middle;
  padding:0 10px;
  padding-top:0;
  padding-bottom:0;
  background:transparent;
  white-space:nowrap;
  color:#eef4ff;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.055em;
  line-height:1
}
.search-results-table th:first-child
{
  border-top-left-radius:16px
}
.search-results-table th:last-child
{
  border-top-right-radius:16px
}
.search-results-table tbody tr
{
  position:relative;
  border-bottom:1px solid #e7edf5;
  transition:background .14s ease, box-shadow .14s ease
}
.search-results-table tbody tr:hover
{
  background:#f8fbff;
  box-shadow:inset 0 0 0 999px rgba(37,99,235,.018)
}
.search-results-table tbody tr:last-child
{
  border-bottom:0
}
.search-results-table td
{
  border-bottom:1px solid #e7edf5;
  vertical-align:middle;
  padding:12px 10px;
  background:transparent
}
.search-results-table tbody tr:last-child td
{
  border-bottom:0
}

.search-results-table .result-cell-value
{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  max-width:100%
}
.search-results-table .result-cell-value--brand,
.search-results-table .result-cell-value--price
{
  min-width:0
}
.search-results-table .result-cell-value--stock,
.search-results-table .result-cell-value--info
{
  width:100%;
  justify-content:center
}
.search-results-table th:nth-child(1),
.search-results-table td:nth-child(1)
{
  width:220px
}
.search-results-table th:nth-child(2),
.search-results-table td:nth-child(2)
{
  width:160px
}
.search-results-table th:nth-child(3),
.search-results-table td:nth-child(3)
{
  width:auto
}
.search-results-table th:nth-child(4),
.search-results-table td:nth-child(4)
{
  width:96px;
  text-align:center
}
.search-results-table th:nth-child(5),
.search-results-table td:nth-child(5)
{
  width:72px;
  text-align:center
}
.search-results-table th:nth-child(6),
.search-results-table td:nth-child(6)
{
  width:120px
}
.search-results-table th:nth-child(7),
.search-results-table td:nth-child(7)
{
  width:200px
}
.search-results-table th:nth-child(8),
.search-results-table td:nth-child(8)
{
  width:72px;
  text-align:center
}
.search-results-table .article-cell
{
  position:relative;
  overflow:hidden;
  padding-left:24px
}
.search-results-table .article-cell.has-cross-source::before
{
  content:"";
  position:absolute;
  left:8px;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:999px;
  background:#2563eb
}
.search-results-table tr.source--mother-pair .article-cell::before
{
  background:#2563eb
}
.search-results-table tr.source--white-brand .article-cell::before
{
  background:#22c55e
}
.search-results-table tr.source--getcrosses .article-cell::before
{
  background:#f97316
}
.search-results-table .article-copy-wrap
{
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  max-width:100%;
  min-width:0
}
.search-results-table .article-content
{
  display:inline-flex;
  flex:1 1 auto;
  flex-direction:column;
  gap:2px;
  min-width:0;
  max-width:100%;
  line-height:1.15
}
.search-results-table .article-primary
{
  display:block;
  min-width:0;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.search-results-table .article-primary b
{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:950
}
.article-normalized
{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
  font-weight:800;
  color:#94a3b8
}
.brand-cell b
{
  font-weight:950;
  letter-spacing:.015em
}
.description-cell
{
  max-width:100%;
  white-space:normal;
  word-break:normal;
  color:#1f2937
}
/* END frontend/public/css/search-part-02.css */

/* BEGIN frontend/public/css/search-part-03.css */
.description-clamp
{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.35;
  max-height:2.7em;
  word-break:break-word
}
.price-cell
{
  color:#047857;
  white-space:nowrap;
  font-weight:950
}
.price-cell--request
{
  color:#64748B;
  font-weight:850
}
.search-results-table .supplier-cell .link-btn
{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:inline-block;
  vertical-align:middle;
  color:#1d4ed8;
  font-weight:950
}
.search-results-table .supplier-cell .link-btn:hover
{
  text-decoration:underline
}
.search-info-btn
{
  width:30px;
  height:30px;
  border-radius:999px;
  border:1px solid rgba(37,99,235,.18);
  background:#f8fbff;
  color:#2563eb;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  font-style:italic;
  line-height:1;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(37,99,235,.07)
}
.search-info-btn:hover
{
  background:#eff6ff;
  border-color:rgba(37,99,235,.35)
}
.source-stripe-legend
{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  flex-wrap:wrap;
  padding:16px 18px 18px;
  border-top:1px solid #edf2f7;
  color:#475569;
  font-size:13px;
  font-weight:850
}
.source-stripe-legend__item
{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap
}
.source-stripe-legend__line
{
  width:34px;
  height:4px;
  border-radius:999px;
  display:inline-block;
  background:#2563eb
}
.source-stripe-legend__line--mother-pair
{
  background:#2563eb
}
.source-stripe-legend__line--white-brand
{
  background:#22c55e
}
.source-stripe-legend__line--getcrosses
{
  background:#f97316
}
.search-filters
{
  display:none;
  grid-template-columns:repeat(8,minmax(110px,1fr));
  gap:10px;
  align-items:end;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:14px;
  margin:0 0 18px;
  box-shadow:0 10px 26px rgba(15,23,42,.05)
}
.search-filters label
{
  display:grid;
  gap:6px;
  font-size:12px;
  color:var(--muted);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em
}
.search-filters input,
.search-filters select
{
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 11px;
  outline:none;
  min-width:0;
  background:#fff;
  color:var(--text);
  text-transform:none;
  letter-spacing:0;
  font-weight:600
}
.search-filters input:focus,
.search-filters select:focus
{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 4px rgba(10,186,181,.10)
}
.filter-price-grid
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px
}
.filter-price-range
{
  display:grid;
  gap:4px
}
.match-badge
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  border:1px solid #d1e7e5;
  background:var(--brand-soft);
  color:#087b78;
  font-size:11px;
  padding:3px 8px;
  white-space:nowrap
}
.pager
{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px
}
.as-link
{
  display:inline-flex;
  text-decoration:none;
  color:var(--text)
}
.table-wrap
{
  max-width:100%;
  overflow-x:auto
}
.directory-page--searching .directory-hero
{
  display:none
}
.directory-page--searching
{
  padding-top:28px
}
.search-history
{
  position:fixed;
  z-index:90;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 18px 46px rgba(15,23,42,.16);
  overflow:hidden
}
/* END frontend/public/css/search-part-03.css */

/* BEGIN frontend/public/css/search-part-04.css */
.search-history__list
{
  max-height:calc(var(--search-history-visible,6) * 42px);
  overflow-y:auto;
  padding:6px;
  scrollbar-width:thin;
  scrollbar-color:rgba(10,186,181,.45) transparent
}
.search-history__list::-webkit-scrollbar
{
  width:6px
}
.search-history__list::-webkit-scrollbar-track
{
  background:transparent
}
.search-history__list::-webkit-scrollbar-thumb
{
  background:rgba(10,186,181,.45);
  border-radius:999px
}
.search-history__item
{
  width:100%;
  min-height:42px;
  border:0;
  background:transparent;
  border-radius:12px;
  padding:9px 10px;
  display:grid;
  grid-template-columns:24px 1fr;
  align-items:center;
  gap:8px;
  text-align:left;
  color:var(--text);
  font-weight:700
}
.search-history__item:hover
{
  background:var(--brand-soft);
  color:var(--brand-primary-dark)
}
.search-history__icon
{
  width:24px;
  height:24px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--brand-primary-dark);
  background:var(--brand-soft);
  font-weight:900
}
.search-history__clear
{
  display:none;
  width:100%;
  border:0;
  border-top:1px solid var(--line);
  background:#fff;
  padding:10px 12px;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-align:left
}
.search-history__clear:hover
{
  color:var(--danger);
  background:#fff7f7
}
.filters-card .filter-help
{
  margin:8px 0 0;
  color:var(--muted);
  font-size:13px;
  font-weight:700
}
.filter-facet-select,
.filters-card select,
.filters-card input
{
  width:100%
}
.active-filter-chips
{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px
}
.active-filter-chip
{
  border:1px solid rgba(10,186,181,.28);
  background:var(--brand-soft);
  color:var(--brand-primary-dark);
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:6px
}
.active-filter-chip:hover
{
  background:#dcf7f5
}
.active-filter-chip span
{
  font-size:14px;
  line-height:1
}
.active-filter-chip[data-remove-filter="description"]
{
  display:none
}
.active-filter-chips-wrap:empty
{
  display:none
}
.search-results-summary__top+.active-filter-chips-wrap:not(:empty)
{
  margin-top:12px
}
.search-filtered-empty .empty-state,
.directory-empty .search-filtered-empty
{
  border-color:rgba(10,186,181,.22)
}
.search-filtered-empty
{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  box-shadow:0 8px 20px rgba(15,23,42,.04)
}
.agent-blurred-article
{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  filter:blur(5px);
  user-select:none;
  transition:filter .15s ease, opacity .15s ease;
  display:inline-block
}
.agent-blurred-article:hover
{
  opacity:.82
}
.agent-blurred-article.is-revealed
{
  filter:none;
  user-select:text
}
.agent-price-cell
{
  color:var(--brand-primary-dark)
}
.agent-supplier-marker
{
  width:16px;
  height:16px;
  border-radius:999px;
  display:inline-block;
  vertical-align:middle;
  background:var(--agent-supplier-color,#111827);
  box-shadow:0 0 0 3px rgba(15,23,42,.06),0 4px 12px rgba(15,23,42,.16)
}
.search-results-table th.supplier-heading.is-agent-heading
{
  text-align:center
}
.search-results-table td.supplier-cell.is-agent-supplier-cell
{
  text-align:center
}
.search-results-table.is-agent-mode th:nth-child(6),
.search-results-table.is-agent-mode td:nth-child(6)
{
  width:150px;
  text-align:right;
  padding-right:16px
}
.search-results-table.is-agent-mode th:nth-child(7),
.search-results-table.is-agent-mode td:nth-child(7)
{
  width:96px;
  text-align:center;
  padding-left:8px;
  padding-right:8px
}
/* END frontend/public/css/search-part-04.css */

/* BEGIN frontend/public/css/search-part-05.css */
.search-results-table.is-agent-mode td.supplier-cell.is-agent-supplier-cell .agent-supplier-marker
{
  margin:0 auto
}
.agent-suppliers-header
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap
}
.agent-suppliers-header h3
{
  margin-bottom:4px
}
.agent-page-btn:hover
{
  box-shadow:0 8px 18px rgba(15,118,110,.16)
}
.supplier-info-card--wide .price-table-wrap
{
  overflow-x:auto
}
@media(max-width:1100px)
{
  .search-filters
  {
    grid-template-columns:repeat(2,minmax(140px,1fr))
  }
}
@media(max-width:900px)
{
  .search-results-summary__top
  {
    align-items:flex-start;
    flex-wrap:wrap
  }
  .search-results-summary .search-results-tools
  {
    order:3;
    flex-basis:100%;
    max-width:none
  }
  .price-results-count-badge
  {
    margin-left:0
  }
  .search-results-table .article-primary b
  {
    max-width:100%
  }
}
@media(max-width:520px)
{
  .search-filters
  {
    grid-template-columns:1fr
  }
  .filter-price-grid
  {
    grid-template-columns:1fr
  }
  .search-results-table
  {
    min-width:900px
  }
  .source-stripe-legend
  {
    justify-content:flex-start;
    gap:14px
  }
  .price-results-head
  {
    border-radius:18px;
    padding:14px
  }
  .price-table-wrap
  {
    border-radius:18px
  }
}
.cross-source-summary
{
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:16px;
  padding:10px 12px;
  color:#334155;
  font-size:13px;
  font-weight:850;
  line-height:1.35
}
.cross-source-summary__text
{
  min-width:220px;
  flex:1
}
.cross-source-summary__pills
{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap
}
.cross-source-summary__pill
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  background:#fff;
  border:1px solid #e2e8f0;
  font-size:12px;
  font-weight:900;
  white-space:nowrap
}
.cross-source-summary__pill--mother-pair
{
  color:#1d4ed8;
  border-color:#bfdbfe;
  background:#eff6ff
}
.cross-source-summary__pill--white-brand
{
  color:#15803d;
  border-color:#bbf7d0;
  background:#f0fdf4
}
.cross-source-summary__pill--getcrosses
{
  color:#c2410c;
  border-color:#fed7aa;
  background:#fff7ed
}
.search-results-table__heading
{
  position:relative
}
.search-results-table__heading-inner
{
  height:var(--results-table-header-height);
  min-height:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  line-height:1
}
/* END frontend/public/css/search-part-05.css */

/* BEGIN frontend/public/css/search-part-06.css */
.search-results-table__heading-label
{
  display:inline-block;
  line-height:1;
  white-space:nowrap
}
.search-results-table__heading--filterable .search-results-table__heading-inner
{
  gap:6px
}
.column-filter-trigger
{
  position:relative;
  flex:0 0 var(--results-table-filter-size);
  width:var(--results-table-filter-size);
  height:var(--results-table-filter-size);
  margin-left:0;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#eaf2ff;
  display:inline-grid;
  place-items:center;
  cursor:pointer;
  line-height:1
}
.column-filter-trigger svg
{
  width:var(--results-table-filter-icon-size);
  height:var(--results-table-filter-icon-size);
  fill:currentColor
}
.column-filter-trigger:hover,
.column-filter-trigger.is-active
{
  background:#eff6ff;
  color:#1d4ed8;
  border-color:#bfdbfe
}
.column-filter-count
{
  position:absolute;
  right:-3px;
  top:-3px;
  min-width:var(--results-table-filter-count-size);
  height:var(--results-table-filter-count-size);
  padding:0 3px;
  border-radius:999px;
  background:#22c55e;
  color:#fff;
  font-size:8px;
  font-weight:950;
  line-height:var(--results-table-filter-count-size);
  box-shadow:0 0 0 2px #101a32
}
.column-filter-disabled
{
  display:inline-block;
  flex:0 0 var(--results-table-filter-size);
  width:var(--results-table-filter-size);
  height:var(--results-table-filter-size);
  margin-left:0;
  border-radius:999px;
  opacity:.35;
  background:rgba(255,255,255,.12)
}
.results-anchored-overlay
{
  position:absolute;
  z-index:120;
  overflow:visible
}
.results-anchored-overlay.is-above::before
{
  top:auto;
  bottom:-7px;
  border-left:0;
  border-top:0;
  border-right:1px solid rgba(15,23,42,.08);
  border-bottom:1px solid rgba(15,23,42,.08)
}
.column-filter-popover
{
  position:absolute;
  z-index:120;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  box-shadow:0 24px 60px rgba(15,23,42,.22);
  padding:12px;
  display:grid;
  gap:10px;
  overflow:visible
}
.column-filter-popover::before
{
  content:'';
  position:absolute;
  top:-7px;
  left:var(--column-filter-arrow-left,28px);
  width:14px;
  height:14px;
  transform:rotate(45deg);
  background:#fff;
  border-left:1px solid rgba(15,23,42,.08);
  border-top:1px solid rgba(15,23,42,.08)
}
.column-filter-popover__title
{
  position:relative;
  z-index:1;
  font-size:14px;
  font-weight:950;
  color:#0f172a
}
.column-filter-search
{
  position:relative;
  z-index:1;
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 11px;
  font-weight:800;
  outline:none
}
.column-filter-search:focus
{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 4px rgba(10,186,181,.10)
}
.column-filter-options
{
  position:relative;
  z-index:1;
  display:grid;
  gap:4px;
  max-height:min(260px,max(120px,calc(var(--results-overlay-max-height,360px) - 126px)));
  overflow:auto;
  padding-right:2px
}
.column-filter-option
{
  display:grid;
  grid-template-columns:18px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  border-radius:12px;
  padding:8px 9px;
  font-size:13px;
  font-weight:850;
  color:#1f2937
}
.column-filter-option:hover
{
  background:#f3fbfb
}
.column-filter-option input
{
  width:16px;
  height:16px
}
.column-filter-option span
{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.column-filter-option b
{
  font-size:11px;
  color:#64748b
}
.column-filter-empty
{
  padding:14px;
  border-radius:12px;
  background:#f8fafc;
  color:#64748b;
  font-weight:850
}
.column-filter-loading,
.column-filter-error
{
  padding:14px;
  border-radius:12px;
  background:#f8fafc;
  color:#64748b;
  font-weight:850
}
.column-filter-error
{
  background:#fff1f2;
  color:#b91c1c
}
.column-filter-actions
{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  border-top:1px solid #eef2f7;
  padding-top:10px
}
/* END frontend/public/css/search-part-06.css */

/* BEGIN frontend/public/css/search-part-07.css */
.column-filter-reset,
.column-filter-apply
{
  border:1px solid var(--line);
  border-radius:12px;
  padding:9px 11px;
  font-weight:950;
  cursor:pointer
}
.column-filter-reset
{
  background:#fff;
  color:#475569
}
.column-filter-apply
{
  background:var(--brand-primary);
  border-color:var(--brand-primary);
  color:#fff
}
.supplier-stock-trigger
{
  cursor:pointer
}
.supplier-stock-trigger.link-btn:hover
{
  text-decoration:none;
  color:#1e40af
}
.supplier-stock-trigger.agent-supplier-marker
{
  border:0;
  padding:0
}
.supplier-stock-popover
{
  position:absolute;
  z-index:121;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  box-shadow:0 24px 60px rgba(15,23,42,.24);
  padding:12px;
  display:grid;
  gap:10px;
  overflow:visible
}
.supplier-stock-popover::before
{
  content:'';
  position:absolute;
  top:-7px;
  left:var(--supplier-stock-arrow-left,28px);
  width:14px;
  height:14px;
  transform:rotate(45deg);
  background:#fff;
  border-left:1px solid rgba(15,23,42,.08);
  border-top:1px solid rgba(15,23,42,.08)
}
.supplier-stock-popover__title
{
  position:relative;
  z-index:1;
  font-size:13px;
  font-weight:950;
  color:#0f172a
}
.supplier-stock-popover__list
{
  position:relative;
  z-index:1;
  display:grid;
  gap:5px;
  max-height:var(--results-overlay-max-height,360px);
  overflow:auto
}
.supplier-stock-popover__row
{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  border-radius:12px;
  padding:8px 9px;
  background:#f8fafc;
  color:#334155;
  font-weight:850
}
.supplier-stock-popover__row span
{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.supplier-stock-popover__row b
{
  white-space:nowrap;
  color:#047857
}
.supplier-stock-popover__empty
{
  position:relative;
  z-index:1;
  padding:10px;
  border-radius:12px;
  background:#f8fafc;
  color:#64748b;
  font-weight:850
}
.supplier-stock-trigger--private
{
  border:0;
  background:transparent;
  color:#1d4ed8;
  font-weight:950;
  padding:0
}
.supplier-stock-trigger--private:hover
{
  text-decoration:underline
}
@media(max-width:520px)
{
  .column-filter-popover,
  .supplier-stock-popover
  {
    max-width:calc(100vw - 24px)
  }
}
.search-token-highlight
{
  background:rgba(255,246,159,.72);
  color:inherit;
  font:inherit;
  font-weight:inherit;
  line-height:inherit;
  border:0;
  border-radius:0;
  padding:0;
  margin:0;
  box-shadow:none;
  text-decoration:none
}
/* END frontend/public/css/search-part-07.css */

/* END frontend/public/css/search.css */

/* BEGIN frontend/public/css/search-pagination.css */
.search-results-body
{
  display:grid;
  gap:0;
  min-width:0;
  max-width:100%;
}
.search-results-pagination
{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  overflow-x:auto;
  max-width:100%;
}
.search-results-pagination--top
{
  margin:0 0 3px;
}
.search-results-pagination--bottom
{
  margin:6px 0 6px;
}
.search-results-pagination__inner
{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px;
  border:1px solid rgba(148,163,184,.24);
  background:rgba(248,250,252,.78);
  border-radius:999px;
  box-shadow:0 8px 22px rgba(15,23,42,.05)
}
.search-results-page-btn
{
  border:0;
  background:transparent;
  color:#475569;
  min-width:28px;
  height:28px;
  border-radius:999px;
  padding:0 9px;
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  transition:background .15s ease,color .15s ease,box-shadow .15s ease
}
.search-results-page-btn:hover:not(:disabled)
{
  background:#eaf3ff;
  color:#1d4ed8
}
.search-results-page-btn:focus-visible
{
  outline:2px solid rgba(37,99,235,.35);
  outline-offset:2px
}
.search-results-page-btn.is-active
{
  background:#dbeafe;
  color:#1d4ed8;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.18)
}
.search-results-page-btn:disabled
{
  opacity:.38;
  cursor:default
}
.search-results-page-btn--arrow
{
  font-size:16px;
  padding:0 8px
}
.search-results-page-ellipsis
{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:28px;
  color:#94a3b8;
  font-weight:900
}
@media(max-width:640px)
{
  .search-results-pagination
  {
    justify-content:flex-start
  }
  .search-results-pagination__inner
  {
    border-radius:18px
  }
  .search-results-page-btn
  {
    min-width:26px;
    height:26px;
    padding:0 8px
  }
}
/* END frontend/public/css/search-pagination.css */

/* BEGIN frontend/public/css/agent-settings.css */
/* BEGIN frontend/public/css/agent-settings-part-01.css */
.agent-settings-page
{
  background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%);
  padding:0 0 32px
}
.agent-settings-shell
{
  max-width:1240px;
  margin:0 auto;
  padding:22px 20px 36px;
  box-sizing:border-box
}
.agent-settings-card
{
  display:grid;
  gap:18px;
  min-width:0
}
.agent-hero-card,
.agent-supplier-workbench
{
  background:#fff;
  border:1px solid rgba(148,163,184,.24);
  border-radius:22px;
  box-shadow:0 18px 42px rgba(15,23,42,.08);
  padding:22px;
  min-width:0
}
.agent-hero-head,
.agent-workbench-head
{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin-bottom:18px
}
.agent-card-icon
{
  width:34px;
  height:34px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eaf2ff;
  color:#2563eb;
  font-weight:900;
  flex:0 0 auto
}
.agent-hero-head h2,
.agent-workbench-head h3
{
  margin:0 0 6px;
  color:#0f172a;
  font-size:22px;
  line-height:1.18;
  font-weight:900
}
.agent-hero-head p,
.agent-workbench-head p,
.agent-default-markup-panel p,
.agent-calculation-preview small
{
  margin:0;
  color:#64748b;
  line-height:1.45;
  font-weight:600
}
.agent-hero-grid
{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,1fr);
  gap:24px;
  align-items:stretch
}
.agent-default-markup-panel
{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:18px;
  align-items:center;
  min-width:0
}
.agent-default-markup-panel h3
{
  margin:0 0 6px;
  font-size:18px;
  color:#0f172a
}
.agent-default-markup-control
{
  display:grid;
  grid-template-columns:minmax(0,1fr) 58px;
  border:1px solid rgba(100,116,139,.32);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.04)
}
.agent-default-markup-control input
{
  width:100%;
  border:0;
  padding:15px 18px;
  font-size:26px;
  font-weight:900;
  color:#0f172a;
  background:#fff;
  outline:0
}
.agent-default-markup-control span
{
  display:flex;
  align-items:center;
  justify-content:center;
  border-left:1px solid rgba(100,116,139,.22);
  background:#f8fafc;
  color:#475569;
  font-size:24px;
  font-weight:900
}
.agent-calculation-preview
{
  display:flex;
  gap:16px;
  align-items:flex-start;
  border:1px solid rgba(37,99,235,.22);
  border-radius:16px;
  background:linear-gradient(180deg,#f8fbff,#fff);
  padding:18px;
  min-width:0
}
.agent-calculation-preview p
{
  margin:0 0 6px;
  color:#475569;
  font-weight:800
}
.agent-calculation-preview strong
{
  display:block;
  color:#0f172a;
  font-size:24px;
  line-height:1.2;
  font-weight:950
}
.agent-calculation-preview strong span
{
  color:#2563eb;
  margin:0 10px
}
.agent-supplier-toolbar
{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  margin-bottom:14px;
  flex-wrap:wrap
}
.agent-supplier-search-label
{
  display:grid;
  gap:7px;
  min-width:280px;
  max-width:420px;
  flex:1 1 340px;
  color:#0f172a;
  font-weight:900
}
.agent-supplier-search-label span
{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#64748b
}
.agent-supplier-search-label input
{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(100,116,139,.22);
  border-radius:14px;
  padding:13px 15px;
  font:inherit;
  font-weight:700;
  background:#fff;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.04)
}
.agent-page-size-control
{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  color:#64748b;
  font-weight:800
}
.agent-page-size-control>div
{
  display:flex;
  gap:6px;
  border:1px solid rgba(100,116,139,.18);
  background:#f8fafc;
  border-radius:14px;
  padding:4px
}
/* END frontend/public/css/agent-settings-part-01.css */

/* BEGIN frontend/public/css/agent-settings-part-02.css */
.agent-page-size-btn
{
  min-width:42px;
  height:34px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#475569;
  font-weight:900;
  cursor:pointer
}
.agent-page-size-btn.is-active
{
  background:#2563eb;
  color:#fff;
  box-shadow:0 8px 18px rgba(37,99,235,.22)
}
.agent-table-scroll
{
  overflow-x:auto
}
.agent-supplier-table
{
  width:100%;
  border-collapse:collapse;
  min-width:900px
}
.agent-supplier-table th
{
  padding:10px 14px;
  text-align:left;
  color:#64748b;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  border-bottom:1px solid rgba(148,163,184,.22)
}
.agent-supplier-table td
{
  padding:13px 14px;
  border-bottom:1px solid rgba(148,163,184,.18);
  vertical-align:middle
}
.agent-supplier-cell
{
  display:flex;
  gap:12px;
  align-items:center;
  min-width:0
}
.agent-supplier-avatar
{
  width:34px;
  height:34px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#dbeafe;
  color:#1d4ed8;
  font-weight:950;
  font-size:13px;
  flex:0 0 auto
}
.agent-supplier-meta
{
  display:grid;
  gap:3px;
  min-width:0
}
.agent-supplier-meta b
{
  color:#0f172a;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.agent-supplier-meta small
{
  color:#64748b;
  font-weight:700
}
.agent-markup-cell
{
  white-space:nowrap
}
.agent-markup-input
{
  width:120px;
  border:1px solid rgba(100,116,139,.24);
  border-radius:10px;
  padding:9px 12px;
  background:#fff;
  font:inherit;
  font-weight:800;
  text-align:center;
  color:#0f172a
}
.agent-markup-cell small
{
  margin-left:12px;
  color:#64748b;
  font-weight:700
}
.agent-color-cell
{
  min-width:360px
}
.agent-color-palette
{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap
}
.agent-color-clear
{
  height:30px;
  border:1px solid rgba(100,116,139,.22);
  border-radius:999px;
  background:#fff;
  color:#475569;
  font-weight:900;
  padding:0 12px;
  cursor:pointer
}
.agent-color-clear.is-selected
{
  background:#111827;
  color:#fff;
  border-color:#111827
}
.agent-color-swatches
{
  display:grid;
  grid-template-columns:repeat(12,22px);
  gap:8px;
  align-items:center
}
.agent-color-dot
{
  width:20px;
  height:20px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.9);
  background:var(--agent-color);
  cursor:pointer;
  box-shadow:0 0 0 1px rgba(15,23,42,.16),0 7px 14px rgba(15,23,42,.12)
}
.agent-color-dot.is-selected
{
  box-shadow:0 0 0 2px #fff,0 0 0 5px rgba(37,99,235,.86),0 8px 18px rgba(37,99,235,.18);
  transform:scale(1.06)
}
.agent-supplier-pagination
{
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin:18px 0 0
}
.agent-page-btn
{
  border:1px solid rgba(37,99,235,.24);
  background:#fff;
  color:#2563eb;
  border-radius:12px;
  min-width:38px;
  height:38px;
  padding:0 12px;
  font-weight:900;
  cursor:pointer
}
.agent-page-btn.is-active
{
  background:#2563eb;
  color:#fff;
  border-color:#2563eb
}
.agent-settings-actions
{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
  border-top:1px solid rgba(148,163,184,.18);
  margin-top:16px;
  padding-top:16px
}
.agent-settings-actions .primary-btn,
.agent-settings-actions .secondary-btn
{
  min-height:46px;
  padding:0 18px;
  border-radius:12px
}
.agent-settings-actions .secondary-btn
{
  text-decoration:none;
  display:inline-flex;
  align-items:center
}
/* END frontend/public/css/agent-settings-part-02.css */

/* BEGIN frontend/public/css/agent-settings-part-03.css */
@media (max-width:960px)
{
  .agent-hero-grid,
  .agent-default-markup-panel
  {
    grid-template-columns:1fr
  }
  .agent-supplier-table
  {
    min-width:760px
  }
  .agent-color-swatches
  {
    grid-template-columns:repeat(6,22px)
  }
}
@media (max-width:640px)
{
  .agent-settings-shell
  {
    padding:14px 12px 28px
  }
  .agent-hero-card,
  .agent-supplier-workbench
  {
    padding:16px;
    border-radius:18px
  }
  .agent-hero-head h2,
  .agent-workbench-head h3
  {
    font-size:19px
  }
  .agent-supplier-toolbar
  {
    align-items:stretch
  }
  .agent-page-size-control
  {
    justify-content:space-between;
    width:100%
  }
  .agent-settings-actions .primary-btn,
  .agent-settings-actions .secondary-btn
  {
    width:100%;
    justify-content:center
  }
}
/* END frontend/public/css/agent-settings-part-03.css */

/* END frontend/public/css/agent-settings.css */

/* BEGIN frontend/public/css/private-listings.css */
/* BEGIN frontend/public/css/private-listings-part-01.css */
.private-listings-page
{
  background:#f5f7fb;
  min-height:calc(100vh - 74px);
  padding:28px clamp(18px,3vw,42px)
}
.private-listings-shell
{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  gap:18px
}
.private-listings-card
{
  background:#fff;
  border:1px solid #e5e9f2;
  border-radius:24px;
  box-shadow:0 18px 44px rgba(16,24,40,.08);
  padding:24px
}
.private-listings-card-head
{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:18px
}
.private-listings-card-head h1,
.private-listings-card-head h2
{
  margin:0;
  color:#101828
}
.private-listings-card-head p
{
  margin:6px 0 0;
  color:#667085;
  line-height:1.45
}
.private-listings-kicker
{
  margin:0 0 4px;
  color:#2563eb;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em
}
.private-listings-counter
{
  min-width:118px;
  border-radius:18px;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  padding:14px;
  text-align:center;
  color:#1d4ed8
}
.private-listings-counter b
{
  display:block;
  font-size:28px
}
.private-listings-counter span
{
  font-size:12px
}
.private-listings-profile-form
{
  display:grid;
  gap:12px
}
.private-listings-profile-grid
{
  display:grid;
  grid-template-columns:
    minmax(190px, 1.2fr)
    minmax(220px, 1.45fr)
    minmax(82px, .55fr)
    minmax(108px, .7fr)
    minmax(160px, 1.05fr)
    minmax(210px, 1.2fr);
  gap:14px;
  align-items:end
}
.private-listings-profile-field
{
  display:grid;
  gap:7px;
  font-weight:700;
  color:#344054;
  min-width:0
}
.private-listings-profile-field--city,
.private-listings-profile-field--street,
.private-listings-profile-field--house,
.private-listings-profile-field--building,
.private-listings-profile-field--phone
{
  min-width:0
}
.private-listings-profile-label-text
{
  white-space:nowrap
}
.private-listings-profile-field--custom-city
{
  grid-column:1 / span 2
}
.private-listings-profile-submit
{
  min-height:46px;
  white-space:nowrap
}
.private-listings-address-preview
{
  margin:0;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid #e5e9f2;
  padding:10px 12px;
  color:#475467;
  font-weight:800
}
.private-listings-address-preview.is-hidden
{
  display:none
}
.private-listings-profile-field.is-hidden
{
  display:none
}
.private-listings-add-form
{
  display:grid;
  gap:14px
}
.private-listings-add-grid
{
  display:grid;
  grid-template-columns:1.1fr 1.1fr .7fr .8fr;
  gap:14px;
  align-items:end
}
.private-listings-add-form label
{
  display:grid;
  gap:7px;
  font-weight:700;
  color:#344054
}
.private-listings-profile-form input,
.private-listings-profile-form select,
.private-listings-add-form input,
.private-listings-add-form textarea
{
  width:100%;
  border:1px solid #d0d5dd;
  border-radius:14px;
  padding:11px 13px;
  background:#fff;
  color:#101828;
  font:inherit
}
.private-listings-profile-form select
{
  appearance:auto
}
.private-listings-add-form textarea
{
  resize:vertical;
  min-height:76px
}
.private-listings-description-field
{
  display:grid;
  gap:7px
}
.private-listings-form-actions
{
  display:flex;
  align-items:center;
  gap:12px
}
.private-listings-form-submit
{
  min-width:220px
}
.private-listings-help
{
  margin:14px 0 0;
  font-weight:700
}
.private-listings-help.is-warning
{
  color:#b45309
}
/* END frontend/public/css/private-listings-part-01.css */

/* BEGIN frontend/public/css/private-listings-part-02.css */
.private-listings-help.is-ok
{
  color:#047857
}
.private-listings-table-wrap
{
  overflow:auto;
  border:1px solid #e5e9f2;
  border-radius:18px
}
.private-listings-table
{
  width:100%;
  border-collapse:collapse;
  min-width:980px
}
.private-listings-table th
{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#667085;
  background:#f8fafc;
  text-align:left;
  padding:12px
}
.private-listings-table td
{
  border-top:1px solid #eef2f7;
  padding:12px;
  vertical-align:top;
  color:#344054
}
.private-listings-table td span
{
  display:block;
  color:#98a2b3;
  font-size:12px;
  margin-top:4px
}
.private-listings-status
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 10px;
  font-weight:800;
  font-size:12px
}
.private-listings-status--active
{
  background:#ecfdf3;
  color:#047857
}
.private-listings-status--hidden
{
  background:#f2f4f7;
  color:#475467
}
.private-listings-status--sold
{
  background:#fff1f2;
  color:#be123c
}
.private-listings-row-actions
{
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
.private-seller-name
{
  display:inline;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#dc2626;
  font-size:inherit;
  font-family:inherit;
  line-height:inherit;
  font-weight:950
}
@media(max-width:1100px)
{
  .private-listings-profile-grid
  {
    grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) minmax(82px,.55fr) minmax(108px,.7fr)
  }
  .private-listings-profile-field--phone
  {
    grid-column:1 / span 2
  }
  .private-listings-profile-submit
  {
    width:100%;
    grid-column:3 / span 2
  }
}
@media(max-width:900px)
{
  .private-listings-add-grid
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .private-listings-profile-grid
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .private-listings-profile-field--custom-city,
  .private-listings-profile-field--phone,
  .private-listings-profile-submit
  {
    grid-column:auto
  }
  .private-listings-profile-submit
  {
    width:100%
  }
}
@media(max-width:760px)
{
  .private-listings-profile-grid,
  .private-listings-add-grid,
  .private-listings-card-head
  {
    grid-template-columns:1fr;
    display:grid
  }
  .private-listings-form-actions
  {
    display:grid
  }
  .private-listings-form-submit
  {
    min-width:0;
    width:100%
  }
  .private-listings-profile-submit
  {
    width:100%
  }
  .private-listings-page
  {
    padding:18px 12px
  }
  .private-listings-card
  {
    padding:18px;
    border-radius:18px
  }
}
/* END frontend/public/css/private-listings-part-02.css */

/* END frontend/public/css/private-listings.css */

/* BEGIN frontend/public/css/search-cross.css */
/* BEGIN frontend/public/css/search-cross-part-01.css */
/* Cross-search modal and source-stripe UI ownership. */
.cross-search-status-wrap,
.cross-search-status-wrap:empty
{
  display:none
}
.cross-article-match-note,
.cross-source-badge
{
  display:none
}
.cross-brand-modal-backdrop
{
  position:fixed;
  inset:0;
  z-index:1100;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(15,23,42,.42);
  backdrop-filter:blur(5px)
}
.cross-brand-modal
{
  width:fit-content;
  min-width:min(360px,calc(100vw - 48px));
  max-width:min(760px,calc(100vw - 48px));
  max-height:min(520px,92vh);
  overflow:auto;
  box-sizing:border-box;
  border-radius:24px;
  background:#fff;
  box-shadow:0 28px 86px rgba(15,23,42,.26);
  border:1px solid rgba(219,228,240,.95);
  padding:28px
}
.cross-brand-modal__head
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px
}
.cross-brand-modal__head h2
{
  margin:0;
  font-size:30px;
  line-height:1.08;
  letter-spacing:-.045em;
  color:#0f172a
}
.cross-brand-modal__close
{
  width:42px;
  height:42px;
  border:0;
  border-radius:999px;
  background:#eef2f7;
  color:#0f172a;
  font-size:24px;
  cursor:pointer;
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.cross-brand-modal__close:hover
{
  background:#dbeafe;
  color:#1d4ed8
}
.cross-brand-modal__list
{
  display:grid;
  gap:10px;
  margin:0 0 22px;
  overflow-x:auto;
  padding-bottom:2px
}
.cross-brand-option
{
  display:grid;
  grid-template-columns:max-content max-content max-content;
  column-gap:22px;
  align-items:center;
  justify-content:start;
  width:max-content;
  min-width:min(100%,320px);
  border:1px solid #dbe4f0;
  border-radius:16px;
  background:#fff;
  padding:16px 18px;
  text-align:left;
  cursor:pointer;
  box-shadow:0 10px 30px rgba(15,23,42,.04)
}
.cross-brand-option:hover
{
  border-color:#2563eb;
  background:#eff6ff;
  box-shadow:0 16px 40px rgba(37,99,235,.12)
}
.cross-brand-option__article,
.cross-brand-option__brand
{
  font-size:17px;
  font-weight:950;
  color:#0f172a;
  letter-spacing:.01em;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip
}
.cross-brand-option__description
{
  display:inline-block;
  max-width:180px;
  min-width:0;
  color:#64748b;
  font-size:14px;
  font-weight:850;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip
}
.cross-brand-modal__actions
{
  display:flex;
  justify-content:center;
  align-items:center;
  margin-top:6px
}
.cross-brand-modal__other
{
  min-height:44px;
  min-width:180px;
  border-radius:14px;
  font-weight:900
}
.directory-search-loader
{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(248,250,252,.62);
  backdrop-filter:blur(4px)
}
.directory-search-loader.is-hidden
{
  display:none
}
.directory-search-loader__card
{
  width:min(390px,calc(100vw - 36px));
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  gap:14px;
  align-items:center;
  border:1px solid rgba(219,228,240,.96);
  border-radius:24px;
  background:rgba(255,255,255,.96);
  box-shadow:0 24px 72px rgba(15,23,42,.18);
  padding:20px 22px
}
.directory-search-loader__mark
{
  width:46px;
  height:46px;
  border-radius:16px;
  background:linear-gradient(135deg,#0f172a,#2563eb);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:25px;
  font-weight:950;
  letter-spacing:-.08em;
  box-shadow:0 12px 28px rgba(37,99,235,.24)
}
.directory-search-loader__spinner
{
  width:28px;
  height:28px;
  border-radius:999px;
  border:3px solid #dbeafe;
  border-top-color:#2563eb;
  animation:blackstockSearchSpin .82s linear infinite
}
.directory-search-loader__content
{
  display:grid;
  gap:3px;
  min-width:0
}
.directory-search-loader__title
{
  color:#0f172a;
  font-size:18px;
  line-height:1.1;
  letter-spacing:-.025em
}
/* END frontend/public/css/search-cross-part-01.css */

/* BEGIN frontend/public/css/search-cross-part-02.css */
.directory-search-loader__subtitle
{
  color:#64748b;
  font-size:13px;
  font-weight:750;
  line-height:1.25
}
.directory-search-loader__step
{
  color:#2563eb;
  font-size:12px;
  font-weight:900;
  line-height:1.25
}
@keyframes blackstockSearchSpin
{
  to
  {
    transform:rotate(360deg)
  }
}
@media(max-width:720px)
{
  .cross-brand-modal-backdrop
  {
    padding:14px
  }
  .cross-brand-modal
  {
    min-width:calc(100vw - 28px);
    max-width:calc(100vw - 28px);
    border-radius:20px;
    padding:20px
  }
  .cross-brand-modal__head h2
  {
    font-size:25px
  }
  .cross-brand-option
  {
    column-gap:14px;
    padding:14px
  }
  .cross-brand-modal__actions
  {
    align-items:stretch
  }
  .cross-brand-modal__actions>*
  {
    width:100%
  }
  .directory-search-loader__card
  {
    grid-template-columns:auto minmax(0,1fr)
  }
  .directory-search-loader__spinner
  {
    grid-column:1
  }
  .directory-search-loader__content
  {
    grid-column:2
  }
  .directory-search-loader__mark
  {
    display:none
  }
}
/* END frontend/public/css/search-cross-part-02.css */

/* END frontend/public/css/search-cross.css */

/* BEGIN frontend/public/css/suppliers.css */
/* BEGIN frontend/public/css/suppliers-part-01.css */
/* Supplier directory UI ownership. */
.supplier-grid
{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:18px
}
.supplier-card
{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:20px;
  box-shadow:0 10px 26px rgba(15,23,42,.05);
  display:grid;
  gap:14px
}
.supplier-card h3
{
  margin:0;
  font-size:20px;
  letter-spacing:-.02em
}
.supplier-meta
{
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.supplier-workbench-box
{
  margin-top:14px
}
.supplier-workbench
{
  border:1px solid var(--border);
  border-radius:18px;
  background:#fff;
  padding:16px;
  box-shadow:0 14px 40px rgba(15,23,42,.07)
}
.supplier-workbench h4
{
  margin:16px 0 8px
}
.file-preview
{
  margin:-4px 0 2px;
  font-size:12px
}
@media(max-width:520px)
{
  .supplier-card
  {
    padding:14px
  }
}
.supplier-info-list
{
  display:grid;
  gap:10px
}
.supplier-info-line
{
  border:1px solid var(--line);
  background:#f9fafb;
  border-radius:16px;
  padding:12px 14px;
  display:grid;
  gap:4px
}
.supplier-info-line b
{
  color:var(--muted);
  font-size:12px;
  letter-spacing:.05em;
  text-transform:uppercase
}
.supplier-info-line span
{
  color:var(--text);
  font-weight:700
}
.supplier-grid--reference
{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
  align-items:stretch
}
.supplier-card--reference
{
  min-height:342px;
  border-radius:18px;
  padding:20px 20px 18px;
  gap:0;
  display:flex;
  flex-direction:column;
  box-shadow:0 10px 26px rgba(15,23,42,.06)
}

.supplier-card__identity
{
  display:grid;
  gap:8px;
  min-width:0;
  margin-bottom:0
}
.supplier-card__title-row
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0
}
.supplier-card--reference h3,
.supplier-card__name
{
  margin:0;
  min-width:0;
  color:var(--text);
  font-size:20px;
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.supplier-card__status
{
  flex:0 0 auto;
  border-radius:999px;
  padding:5px 11px;
  font-size:12px;
  font-weight:950;
  line-height:1;
  white-space:nowrap
}
.supplier-card__status--active
{
  background:#dcfce7;
  color:#15803d
}
.supplier-card__status--inactive
{
  background:#fee2e2;
  color:#b91c1c
}
.supplier-card__schedule-slot
{
  width:100%;
  min-width:0;
  margin-top:0
}

.supplier-card__line
{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  color:#374151;
  font-size:15px
}
.supplier-card__line svg
{
  width:18px;
  height:18px;
  flex:0 0 auto;
  fill:#6b7280
}
.supplier-card__divider
{
  height:1px;
  background:var(--line);
  margin:18px 0
}
/* END frontend/public/css/suppliers-part-01.css */

/* BEGIN frontend/public/css/suppliers-part-02.css */
.supplier-card__contacts,
.supplier-card__metrics
{
  display:grid;
  gap:12px
}
.supplier-card__line span
{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.supplier-card__line a
{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--brand-primary-dark);
  text-decoration:none;
  font-weight:700
}
.supplier-card__line--address
{
  align-items:flex-start
}
.supplier-card__line--address span
{
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical
}
.supplier-card__bottom
{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:end;
  margin-top:auto
}
.supplier-admin-layout
{
  grid-template-columns:minmax(320px,420px) minmax(0,1fr);
  gap:20px;
  align-items:start
}
.supplier-form-card
{
  min-width:0;
  width:100%
}
.supplier-list-card
{
  min-width:0;
  width:100%;
  overflow-x:auto
}
.supplier-form-card input,
.supplier-form-card select,
.supplier-form-card textarea
{
  width:100%;
  max-width:100%
}
.supplier-list-card .table
{
  min-width:640px
}
.admin-page .supplier-list-card
{
  max-height:none
}
@media(max-width:1180px)
{
  .supplier-grid--reference
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:980px)
{
  .supplier-admin-layout,
  .admin-page .admin-grid
  {
    grid-template-columns:1fr
  }
  .supplier-list-card .table
  {
    min-width:620px
  }
}
@media(max-width:760px)
{
  .supplier-grid--reference
  {
    grid-template-columns:1fr;
    gap:16px
  }
  .supplier-card--reference
  {
    min-height:0;
    padding:16px
  }
  .supplier-card__bottom
  {
    grid-template-columns:1fr
  }
}
.supplier-info-card--wide
{
  max-width: 820px;
  width: min(820px, calc(100vw - 32px));
}
.supplier-branch-offers
{
  margin-top: 16px;
}
.branch-offers-table .is-display-branch
{
  background: rgba(15, 118, 110, 0.08);
}
.supplier-branches-admin
{
  display: grid;
  gap: 14px;
  margin: 10px 0 20px;
}
.branch-create-form
{
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 10px;
  align-items: end;
}
.branch-create-form .checkbox-line
{
  align-self: center;
}
@media(max-width: 900px)
{
  .branch-create-form
  {
    grid-template-columns: 1fr;
  }
}
.supplier-primary-branch-card,
.supplier-branch-hierarchy
{
  border:1px solid var(--border);
  border-radius:18px;
  background:#f8fafc;
  padding:16px;
  margin:14px 0;
  box-shadow:0 10px 26px rgba(15,23,42,.04)
}
.supplier-primary-branch-card h4,
.supplier-branch-hierarchy h4
{
  margin:0 0 6px
}
.branch-create-card
{
  grid-template-columns:repeat(4,minmax(150px,1fr)) auto;
  padding:14px;
  border:1px dashed #cbd5e1;
  border-radius:16px;
  background:#fff
}
.branch-create-card label
{
  display:grid;
  gap:6px;
  font-size:13px;
  font-weight:800;
  color:#334155
}
.branch-create-card input
{
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  background:#fff
}
.branch-order-list
{
  display:grid;
  gap:8px;
  margin-top:12px
}
/* END frontend/public/css/suppliers-part-02.css */

/* BEGIN frontend/public/css/suppliers-part-03.css */
.branch-order-item
{
  display:grid;
  grid-template-columns:42px minmax(160px,1fr) 2fr;
  gap:12px;
  align-items:center;
  padding:10px 12px;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--line)
}
.branch-order-item b
{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:#e2e8f0
}
.branch-order-item.is-primary b
{
  background:#99f6e4;
  color:#075f5c
}
.branch-order-item span
{
  font-weight:850
}
.branch-order-item em
{
  font-style:normal;
  color:var(--muted)
}
@media(max-width:900px)
{
  .primary-branch-grid,
  .branch-create-card
  {
    grid-template-columns:1fr
  }
  .branch-order-item
  {
    grid-template-columns:36px 1fr
  }
  .branch-order-item em
  {
    grid-column:2
  }
}
.supplier-workbench.is-simplified
{
  display:grid;
  gap:16px
}
.supplier-workbench-title
{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start
}
.supplier-workbench-title h3
{
  margin:0 0 6px
}
.supplier-workbench-summary
{
  display:grid;
  grid-template-columns:repeat(5,minmax(120px,1fr));
  gap:10px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:#f8fafc
}
.supplier-workbench-summary div
{
  display:grid;
  gap:4px
}
.supplier-workbench-summary b
{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--muted)
}
.supplier-workbench-summary span
{
  font-weight:850
}
.branch-create-card.is-simple
{
  grid-template-columns:2fr 1.5fr auto
}
.branch-create-card.is-simple label
{
  min-width:0
}
.branch-table th:nth-child(2),
.branch-table td:nth-child(2)
{
  width:48%
}
.supplier-branch-hierarchy.is-compact
{
  background:#fff
}
.supplier-workbench-section
{
  border:1px solid var(--border);
  border-radius:18px;
  background:#fff;
  padding:16px
}
.supplier-workbench-section h4
{
  margin:0 0 10px
}
@media(max-width:900px)
{
  .supplier-workbench-summary,
  .primary-branch-grid.is-compact,
  .branch-create-card.is-simple,
  .compact-list-row
  {
    grid-template-columns:1fr
  }
}
.supplier-card-clean
{
  grid-template-columns:repeat(4,minmax(120px,1fr));
  align-items:start
}
.supplier-card-actions
{
  display:flex;
  align-items:end
}
.supplier-edit-card
{
  border:1px solid var(--border);
  border-radius:18px;
  background:#f8fafc;
  padding:16px
}
.supplier-edit-grid
{
  display:grid;
  grid-template-columns:repeat(3,minmax(160px,1fr));
  gap:12px
}
.supplier-edit-wide
{
  grid-column:1/-1
}
.supplier-edit-grid textarea
{
  min-height:82px
}
.branch-edit-row td
{
  background:#f8fafc
}
.branch-edit-form
{
  display:grid;
  grid-template-columns:2fr 1.3fr 1fr auto auto;
  gap:10px;
  align-items:end
}
.branch-active-check
{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:800
}
.branch-active-check input
{
  width:auto
}
.branch-table td:last-child,
.branch-table th:last-child
{
  width:210px
}
.supplier-info-card--wide .supplier-branch-offers
{
  margin-top:6px
}
/* END frontend/public/css/suppliers-part-03.css */

/* BEGIN frontend/public/css/suppliers-part-04.css */
.branch-offers-table th:nth-child(3),
.branch-offers-table td:nth-child(3)
{
  min-width:135px
}
.branch-offers-table th:nth-child(5),
.branch-offers-table td:nth-child(5)
{
  text-align:right;
  white-space:nowrap;
  width:110px
}
.branch-offers-table th:nth-child(6),
.branch-offers-table td:nth-child(6)
{
  text-align:right;
  white-space:nowrap
}
@media(max-width:900px)
{
  .supplier-card-clean,
  .supplier-edit-grid,
  .branch-edit-form
  {
    grid-template-columns:1fr
  }
  .branch-table td:last-child,
  .branch-table th:last-child
  {
    width:auto
  }
}
.supplier-info-card--wide .modal-head
{
  align-items:flex-start
}
.supplier-info-card--wide .supplier-branch-offers h3
{
  margin:0 0 12px
}
.branch-offers-table th:nth-child(4),
.branch-offers-table td:nth-child(4)
{
  text-align:center;
  width:90px
}
.branch-offers-table .branch-offers-price b
{
  display:inline-block;
  min-width:46px;
  text-align:right
}
.supplier-info-card--compact
{
  width:min(760px,calc(100vw - 36px));
  max-width:760px;
  max-height:min(720px,calc(100vh - 36px));
  display:flex;
  flex-direction:column;
  overflow:hidden
}
.branch-offers-table th:last-child,
.branch-offers-table td:last-child
{
  width:54px;
  text-align:center
}
.branch-note-action-cell
{
  text-align:center
}
.branch-note-add-btn
{
  width:28px;
  height:28px;
  border-radius:10px;
  border:1px solid rgba(20,184,166,.26);
  background:#ecfeff;
  color:#0f766e;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer
}
.branch-note-add-btn:hover
{
  background:#ccfbf1
}
.branch-row-note
{
  display:none;
  margin-top:3px;
  color:#64748b
}
@media(max-width:720px)
{
  .supplier-info-card--compact
  {
    width:calc(100vw - 24px);
    max-width:calc(100vw - 24px)
  }
}
.supplier-info-position
{
  margin:7px 0 0;
  color:#64748b;
  display:grid;
  gap:3px
}
.supplier-info-position b
{
  color:#111827
}
.supplier-info-position span
{
  font-size:13px;
  line-height:1.35;
  max-width:620px
}
.supplier-info-card--compact .supplier-branch-offers
{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  margin-top:16px
}
.supplier-info-card--compact .supplier-branch-offers h3
{
  flex:0 0 auto;
  margin:0 0 12px
}
.supplier-branch-offers__scroll
{
  flex:1 1 auto;
  min-height:0;
  max-width:100%;
  overflow:auto;
  border-bottom:1px solid var(--line)
}
.supplier-branch-offers__scroll .branch-offers-table
{
  margin:0
}
.supplier-branch-offers__scroll .branch-offers-table thead th
{
  position:sticky;
  top:0;
  z-index:1;
  background:#fff
}
.branch-offers-table--compact
{
  table-layout:fixed;
  width:100%;
  font-size:13px
}
.branch-offers-table--compact th,
.branch-offers-table--compact td
{
  padding:11px 10px;
  vertical-align:middle
}
/* END frontend/public/css/suppliers-part-04.css */

/* BEGIN frontend/public/css/suppliers-part-05.css */
.branch-address-cell,
.branch-phone-cell
{
  white-space:normal;
  overflow-wrap:anywhere
}
.branch-note-add-btn svg
{
  width:16px;
  height:16px;
  display:block;
  fill:currentColor
}
@media(max-width:760px)
{
  .branch-offers-table--compact
  {
    font-size:12px;
    min-width:620px
  }
  .branch-offers-table--compact th,
  .branch-offers-table--compact td
  {
    padding:9px 7px
  }
}
.supplier-actions
{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap
}
.supplier-actions .small-btn
{
  white-space:nowrap
}
.inline-filter
{
  display:grid;
  gap:6px;
  font-weight:800;
  color:#334155;
  min-width:170px
}
.inline-filter select
{
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  font-weight:800
}
.status-badge.archived
{
  background:#fee2e2;
  color:#991b1b
}
.supplier-workbench-summary.is-archived
{
  background:#fff7ed;
  border-color:#fed7aa
}
.supplier-actions .danger
{
  border-color:#fecaca;
  color:#991b1b;
  background:#fff5f5
}
.compact-list-row span[title="failed"],
.compact-list-row span[title="error"]
{
  color:#991b1b
}
/* PASS 85.13: minimal text tabs for supplier info modal.
   Keep the PASS 85.12 modal/table visual ownership; tabs are lightweight text navigation only. */
.supplier-info-text-tabs
{
  flex:0 0 auto;
  display:flex;
  align-items:flex-end;
  gap:26px;
  margin:18px 0 14px;
  border-bottom:1px solid rgba(148,163,184,.28);
  min-height:36px
}
.supplier-info-text-tab
{
  appearance:none;
  border:0;
  background:transparent;
  color:#475569;
  cursor:pointer;
  font:inherit;
  font-size:14px;
  font-weight:850;
  line-height:1;
  padding:0 0 12px;
  position:relative;
  white-space:nowrap
}
.supplier-info-text-tab::after
{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  border-radius:999px;
  background:transparent;
  transform:scaleX(.65);
  opacity:0;
  transition:opacity .16s ease,transform .16s ease,background .16s ease
}
.supplier-info-text-tab:hover
{
  color:#1d4ed8
}
.supplier-info-text-tab:focus-visible
{
  outline:2px solid rgba(37,99,235,.28);
  outline-offset:4px;
  border-radius:8px
}
.supplier-info-text-tab--active
{
  color:#0f5fe8
}
.supplier-info-text-tab--active::after
{
  background:#2563eb;
  opacity:1;
  transform:scaleX(1)
}
.supplier-info-tab-panel
{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
  overscroll-behavior:contain
}
.supplier-info-tab-panel .supplier-branch-offers
{
  margin-top:0
}
.supplier-info-tab-empty
{
  border:1px solid rgba(226,232,240,.95);
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  padding:20px 22px;
  margin-top:2px;
  color:#334155;
  box-shadow:0 10px 24px rgba(15,23,42,.035)
}
.supplier-info-tab-empty h3
{
  margin:0 0 8px;
  color:#0f172a;
  font-size:16px;
  line-height:1.25
}
.supplier-info-tab-empty p
{
  margin:0 0 10px;
  color:#475569;
  line-height:1.45;
  font-size:14px;
  max-width:620px
}
.supplier-info-tab-empty p:last-child
{
  margin-bottom:0
}
.supplier-info-tab-chips
{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px
}
.supplier-info-tab-chips span
{
  border:1px solid rgba(203,213,225,.85);
  background:#fff;
  border-radius:999px;
  color:#475569;
  font-size:12px;
  font-weight:800;
  padding:7px 10px
}
/* END frontend/public/css/suppliers-part-05.css */

/* BEGIN frontend/public/css/suppliers-part-06.css */
@media(max-width:760px)
{
  .supplier-info-text-tabs
  {
    gap:18px;
    overflow-x:auto;
    padding-bottom:1px
  }
  .supplier-info-text-tab
  {
    font-size:13px
  }
  .supplier-info-tab-empty
  {
    padding:16px
  }
}
/* PASS 85.66.R1: supplier modal optional opt price column. */
.branch-offers-table--compact th:nth-child(1),
.branch-offers-table--compact td:nth-child(1)
{
  width:28%
}
.branch-offers-table--compact th:nth-child(2),
.branch-offers-table--compact td:nth-child(2)
{
  width:19%
}
.branch-offers-table--compact th:nth-child(3),
.branch-offers-table--compact td:nth-child(3)
{
  width:10%;
  text-align:center
}
.branch-offers-table--compact th:nth-child(4),
.branch-offers-table--compact td:nth-child(4)
{
  width:15%;
  text-align:right;
  white-space:nowrap
}
.branch-offers-table--compact th:nth-child(5),
.branch-offers-table--compact td:nth-child(5)
{
  width:16%;
  text-align:right;
  white-space:nowrap
}
.branch-offers-table--compact th:nth-child(6),
.branch-offers-table--compact td:nth-child(6)
{
  width:12%;
  text-align:center
}
.branch-opt-price-cell b
{
  display:inline-block;
  min-width:46px;
  text-align:right
}
@media(max-width:760px)
{
  .branch-offers-table--compact
  {
    min-width:720px
  }
}
/* END frontend/public/css/suppliers-part-06.css */

/* END frontend/public/css/suppliers.css */

/* BEGIN frontend/public/css/suppliers-part-info.css */
/* BEGIN frontend/public/css/suppliers-part-info-part-01.css */
.supplier-part-info
{
  min-width: 0;
  overflow: visible;
  border: 1px solid #d8e2f0;
  border-radius: 14px;
  background: #f8fbff;
  padding: 14px;
  color: #172033;
}
.supplier-part-info--loading,
.supplier-part-info--empty
{
  display: block;
  min-height: 110px;
}
.supplier-part-info--empty h3
{
  margin: 0 0 8px;
  font-size: 16px;
}
.supplier-part-info--empty p
{
  margin: 0;
  color: #64748b;
  line-height: 1.45;
}
.supplier-part-info__main
{
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.supplier-part-info__visual
{
  min-width: 0;
}
.supplier-part-info__image
{
  width: 150px;
  height: 112px;
  border-radius: 12px;
  border: 1px solid #d6dfec;
  background: #fff;
  object-fit: contain;
  display: block;
}
.supplier-part-info__image-empty--loading
{
  background: linear-gradient(90deg, #fff 0%, #f4f8ff 50%, #fff 100%);
}
.supplier-part-info__image-empty
{
  width: 150px;
  height: 112px;
  border-radius: 12px;
  border: 1px solid #d6dfec;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px;
  color: #64748b;
  font-size: 13px;
}
.supplier-part-info__body
{
  min-width: 0;
}
.supplier-part-info__title
{
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.25;
  color: #0f172a;
}
.supplier-part-info__subtitle
{
  margin: 0 0 8px;
  font-size: 13px;
  color: #2563eb;
  font-weight: 700;
}
.supplier-part-info__message
{
  margin: 0;
  color: #64748b;
  line-height: 1.4;
}
.supplier-part-info__criteria-title
{
  margin: 16px 0 0;
  padding: 0 2px 8px;
  border-bottom: 1px solid #e3eaf4;
  color: #0f172a;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.supplier-part-info__criteria
{
  margin: 0;
  display: block;
}
.supplier-part-info__criteria-row
{
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  column-gap: 24px;
  align-items: baseline;
  padding: 8px 2px;
  border-bottom: 1px solid #e6edf7;
  background: transparent;
  border-radius: 0;
}
.supplier-part-info__criteria-row dt
{
  margin: 0;
  min-width: 0;
  overflow-wrap: normal;
  word-break: normal;
  white-space: normal;
  color: #64748b;
  font-size: 13px;
  line-height: 1.32;
}
.supplier-part-info__criteria-row dd
{
  margin: 0;
  min-width: 0;
  max-width: min(360px, 48vw);
  justify-self: end;
  text-align: right;
  overflow-wrap: anywhere;
  white-space: normal;
  color: #0f172a;
  font-size: 13px;
  line-height: 1.32;
  font-weight: 800;
}
@media (max-width: 720px)
{
  .supplier-part-info__main
  {
    grid-template-columns: 1fr;
  }
  .supplier-part-info__image,
  .supplier-part-info__image-empty
  {
    width: 100%;
    max-width: 180px;
  }
  .supplier-part-info__criteria-row
  {
    grid-template-columns: 1fr;
    row-gap: 3px;
  }
  .supplier-part-info__criteria-row dd
  {
    justify-self: start;
    text-align: left;
    max-width: 100%;
  }
}
.supplier-part-info__image--clickable
{
  cursor: zoom-in;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.supplier-part-info__image--clickable:hover,
.supplier-part-info__image--clickable:focus-visible
{
  border-color: rgba(37, 99, 235, .45);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .16);
  transform: translateY(-1px);
  outline: none;
}
.part-photo-viewer
{
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.part-photo-viewer.is-hidden
{
  display: none;
}
.part-photo-viewer__backdrop
{
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .72);
  backdrop-filter: blur(2px);
}
/* END frontend/public/css/suppliers-part-info-part-01.css */

/* BEGIN frontend/public/css/suppliers-part-info-part-02.css */
.part-photo-viewer__dialog
{
  position: relative;
  z-index: 1;
  max-width: 94vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.part-photo-viewer__close
{
  position: absolute;
  top: -16px;
  right: -16px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #0f172a;
  font-size: 24px;
  line-height: 1;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .24);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.part-photo-viewer__close:hover,
.part-photo-viewer__close:focus-visible
{
  background: #eff6ff;
  color: #1d4ed8;
  outline: 2px solid rgba(37, 99, 235, .28);
  outline-offset: 2px;
}
.part-photo-viewer__image
{
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(15, 23, 42, .38);
}
@media (max-width: 720px)
{
  .part-photo-viewer
  {
    padding: 16px;
  }
  .part-photo-viewer__close
  {
    top: -12px;
    right: -12px;
  }
}
/* END frontend/public/css/suppliers-part-info-part-02.css */

/* END frontend/public/css/suppliers-part-info.css */

/* BEGIN frontend/public/css/admin-suppliers-workbench.css */
/* BEGIN frontend/public/css/admin-suppliers-workbench-part-01.css */
/* Admin Suppliers workbench UI ownership. */
.supplier-r2-shell
{
  display:grid;
  gap:16px;
  padding:0 2px 30px;
  min-width:0
}
.supplier-r2-page-head
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 24px;
  border-radius:26px
}
.supplier-r2-page-head h2
{
  margin:4px 0 6px;
  font-size:30px;
  letter-spacing:-.04em;
  line-height:1
}
.supplier-r2-page-head p
{
  margin:0;
  max-width:760px;
  line-height:1.45
}
.supplier-r2-eyebrow
{
  margin:0;
  color:#2563eb;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.1em
}
.supplier-r2-add-btn
{
  min-width:220px;
  min-height:54px;
  border-radius:18px;
  font-size:16px;
  box-shadow:0 14px 34px rgba(37,99,235,.22)
}
.supplier-r2-filters
{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 180px auto;
  gap:12px;
  align-items:end;
  padding:16px 20px;
  border-radius:22px
}
.supplier-r2-filter
{
  display:grid;
  gap:7px;
  color:#334155;
  font-size:13px;
  font-weight:900;
  min-width:0
}
.supplier-r2-filter span
{
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#64748b;
  font-size:11px
}
.supplier-r2-filter input,
.supplier-r2-filter select
{
  width:100%;
  height:44px;
  border:1px solid #dbe4f0;
  border-radius:15px;
  background:#fff;
  padding:0 14px;
  font-weight:800;
  color:#0f172a;
  outline:none;
  box-shadow:0 8px 20px rgba(15,23,42,.035)
}
.supplier-r2-filter input:focus,
.supplier-r2-filter select:focus
{
  border-color:#93c5fd;
  box-shadow:0 0 0 4px rgba(37,99,235,.12)
}
.supplier-r2-reset
{
  height:44px;
  border-radius:15px;
  align-self:end
}
.supplier-r2-workbench
{
  display:grid;
  grid-template-columns:minmax(360px,.88fr) minmax(420px,1.12fr);
  gap:18px;
  align-items:start;
  min-width:0
}
.supplier-r2-list-panel
{
  min-width:0;
  border-radius:26px;
  padding:18px;
  overflow:hidden;
  max-height:calc(100vh - 230px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr)
}
.supplier-r2-detail-panel
{
  min-width:0;
  border-radius:26px;
  padding:18px;
  overflow:hidden
}
.supplier-r2-list-head
{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px
}
.supplier-r2-list-head h3
{
  margin:0;
  font-size:20px;
  letter-spacing:-.03em
}
.supplier-r2-list-body
{
  display:grid;
  gap:10px;
  overflow:auto;
  padding:2px 4px 2px 2px;
  min-width:0
}
.supplier-r2-list-card
{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px solid #e5eaf3;
  border-radius:19px;
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.035);
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease
}
.supplier-r2-list-card:hover
{
  border-color:#bfdbfe;
  box-shadow:0 14px 30px rgba(37,99,235,.08)
}
.supplier-r2-list-card.is-selected
{
  border-color:#93c5fd;
  background:#eff6ff;
  box-shadow:0 16px 34px rgba(37,99,235,.12)
}
.supplier-r2-list-card__main
{
  min-width:0;
  display:grid;
  gap:7px
}
.supplier-r2-list-card__titleline
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0
}
.supplier-r2-list-card h3
{
  margin:0;
  font-size:16px;
  line-height:1.2;
  font-weight:950;
  letter-spacing:-.02em;
  overflow-wrap:anywhere
}
.supplier-r2-list-card__meta
{
  margin:0;
  color:#64748b;
  font-size:13px;
  line-height:1.35;
  overflow-wrap:anywhere
}
/* END frontend/public/css/admin-suppliers-workbench-part-01.css */

/* BEGIN frontend/public/css/admin-suppliers-workbench-part-02.css */
.supplier-r2-list-card__facts
{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  color:#475569;
  font-size:12px;
  font-weight:800
}
.supplier-r2-list-card__facts span
{
  border:1px solid #e5eaf3;
  background:#f8fafc;
  border-radius:999px;
  padding:4px 8px;
  max-width:100%;
  overflow-wrap:anywhere
}
.supplier-r2-open-btn
{
  white-space:nowrap;
  border-radius:13px;
  height:38px
}
.supplier-r2-empty-list
{
  display:grid;
  place-items:center;
  text-align:center;
  min-height:240px;
  border:1px dashed #cbd5e1;
  border-radius:20px;
  background:#f8fafc;
  padding:20px
}
.supplier-r2-detail
{
  display:grid;
  gap:14px;
  min-width:0
}
.supplier-r2-detail.is-empty
{
  min-height:420px;
  place-items:center
}
.supplier-r2-empty
{
  max-width:390px;
  text-align:center
}
.supplier-r2-detail-head
{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
  padding:18px;
  border:1px solid #e5eaf3;
  border-radius:22px;
  background:linear-gradient(180deg,#fff,#f8fbff)
}
.supplier-r2-detail-head h3
{
  margin:0;
  font-size:22px;
  letter-spacing:-.04em;
  line-height:1.1
}
.supplier-r2-detail-head p
{
  margin:7px 0 0;
  color:#64748b;
  line-height:1.35;
  overflow-wrap:anywhere
}
.supplier-r2-chips
{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:11px
}
.supplier-r2-chips span:not(.status-badge)
{
  border:1px solid #dbe4f0;
  background:#fff;
  border-radius:999px;
  padding:6px 10px;
  color:#475569;
  font-size:.84rem;
  font-weight:800;
  overflow-wrap:anywhere
}
.supplier-r2-tabs
{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  padding:8px;
  border:1px solid #e5eaf3;
  border-radius:18px;
  background:#f8fafc
}
.supplier-r2-tab
{
  border:0;
  border-radius:13px;
  padding:9px 12px;
  background:transparent;
  color:#475569;
  font-weight:900;
  cursor:pointer
}
.supplier-r2-tab:hover
{
  background:#eef2ff;
  color:#1d4ed8
}
.supplier-r2-tab.is-active
{
  background:#2563eb;
  color:#fff;
  box-shadow:0 10px 24px rgba(37,99,235,.2)
}
.supplier-r2-tab-body
{
  min-height:260px;
  border:1px solid #e5eaf3;
  border-radius:22px;
  background:#fff;
  padding:18px;
  overflow:hidden
}
.supplier-r2-fields
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  min-width:0
}
.supplier-r2-field
{
  background:#f8fafc;
  border:1px solid #e5eaf3;
  border-radius:16px;
  padding:13px;
  min-width:0
}
.supplier-r2-field b
{
  display:block;
  color:#64748b;
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:6px
}
.supplier-r2-field span
{
  display:block;
  font-weight:850;
  color:#0f172a;
  overflow-wrap:anywhere;
  line-height:1.3
}
.supplier-r2-section-title
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px
}
.supplier-r2-section-title h4,
.supplier-r2-section-title p
{
  margin:0
}
.supplier-r2-split
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  min-width:0
}
.supplier-r2-mini-list
{
  display:grid;
  gap:8px;
  min-width:0
}
.supplier-r2-mini-row
{
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:11px 0;
  border-bottom:1px solid #edf2f7;
  min-width:0
}
/* END frontend/public/css/admin-suppliers-workbench-part-02.css */

/* BEGIN frontend/public/css/admin-suppliers-workbench-part-03.css */
.supplier-r2-mini-row em,
.supplier-r2-mini-row small
{
  overflow-wrap:anywhere;
  color:#64748b
}
.supplier-r2-note
{
  margin-top:14px
}
.supplier-r2-danger
{
  border:1px solid #fecaca;
  background:#fff7f7;
  border-radius:18px;
  padding:18px
}
.supplier-r2-danger h4
{
  margin:0 0 8px
}
.supplier-r2-danger p
{
  max-width:620px
}
.supplier-r2-branch-list
{
  display:grid;
  gap:10px
}
.supplier-r2-branch-card
{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(160px,.8fr) auto;
  gap:12px;
  align-items:center;
  border:1px solid #e5eaf3;
  border-radius:17px;
  background:#f8fafc;
  padding:13px;
  overflow:visible
}
.supplier-r2-branch-card h5
{
  margin:0 0 5px;
  font-size:15px;
  letter-spacing:-.02em
}
.supplier-r2-branch-card p
{
  margin:0;
  color:#64748b;
  overflow-wrap:anywhere
}
.supplier-r2-branch-meta
{
  display:grid;
  gap:7px
}
.supplier-r2-branch-actions
{
  display:inline-flex;
  gap:8px;
  flex-wrap:nowrap;
  justify-content:flex-end;
  overflow:visible
}
.supplier-r2-empty-block
{
  display:grid;
  gap:5px;
  place-items:center;
  text-align:center;
  min-height:120px;
  border:1px dashed #cbd5e1;
  border-radius:18px;
  background:#f8fafc;
  padding:18px
}
.supplier-r2-modal-backdrop,
.supplier-r2-edit-modal-backdrop,
.supplier-r2-branch-modal-backdrop
{
  position:fixed;
  inset:0;
  z-index:90;
  background:rgba(15,23,42,.42);
  backdrop-filter:blur(3px);
  display:grid;
  place-items:center;
  padding:22px
}
.supplier-r2-create-modal,
.supplier-r2-edit-modal,
.supplier-r2-branch-modal
{
  width:min(760px,calc(100vw - 32px));
  max-height:calc(100vh - 44px);
  display:grid;
  background:#fff;
  border-radius:26px;
  box-shadow:0 28px 90px rgba(15,23,42,.34);
  overflow:hidden
}
.supplier-r2-form
{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  max-height:inherit;
  min-height:0
}
.supplier-r2-form-head
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:22px 22px 14px
}
.supplier-r2-form-head h3,
.supplier-r2-form-head p
{
  margin:0
}
.supplier-r2-icon-close
{
  width:38px;
  height:38px;
  border-radius:13px;
  font-size:20px
}
.supplier-r2-form-body
{
  overflow:auto;
  padding:0 22px 8px;
  display:grid;
  gap:14px
}
.supplier-r2-form-section
{
  border:1px solid #e5eaf3;
  border-radius:18px;
  padding:16px;
  background:#f8fafc
}
.supplier-r2-form-section h4
{
  margin:0 0 12px
}
.supplier-r2-form-grid,
.supplier-r2-address-parts
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}
.supplier-r2-wide
{
  grid-column:1/-1
}
.supplier-r2-check
{
  display:flex;
  align-items:center;
  gap:8px;
  padding-top:25px
}
.supplier-r2-address-parts label,
.supplier-r2-form-section label
{
  display:grid;
  gap:6px;
  font-size:13px;
  font-weight:850;
  color:#334155
}
.supplier-r2-address-parts input,
.supplier-r2-address-parts select,
.supplier-r2-form-section input,
.supplier-r2-form-section select,
.supplier-r2-form-section textarea
{
  width:100%;
  border:1px solid #dbe4f0;
  border-radius:13px;
  background:#fff;
  padding:10px 12px;
  font-weight:750;
  color:#111827
}
.supplier-r2-form-section textarea
{
  min-height:88px
}
.supplier-r2-form-actions
{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:14px 22px 18px;
  background:linear-gradient(180deg,rgba(255,255,255,.76),#fff 42%);
  border-top:1px solid #eef2f7
}
/* END frontend/public/css/admin-suppliers-workbench-part-03.css */

/* BEGIN frontend/public/css/admin-suppliers-workbench-part-04.css */
.supplier-r2-confirm-backdrop
{
  position:fixed;
  inset:0;
  z-index:90;
  background:rgba(15,23,42,.42);
  backdrop-filter:blur(3px);
  display:grid;
  place-items:center;
  padding:20px
}
.supplier-r2-confirm-modal
{
  width:min(460px,calc(100vw - 32px));
  background:#fff;
  border-radius:22px;
  padding:22px;
  box-shadow:0 28px 90px rgba(15,23,42,.34);
  display:grid;
  gap:12px
}
.supplier-r2-confirm-modal h3,
.supplier-r2-confirm-modal p
{
  margin:0
}
.supplier-r2-confirm-actions
{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:8px
}
.small-btn.danger
{
  border-color:#fecaca;
  color:#991b1b;
  background:#fff5f5
}
.small-btn.danger.ghost
{
  background:#fff;
  color:#991b1b
}
@media (max-width:1180px)
{
  .supplier-r2-workbench
  {
    grid-template-columns:1fr
  }
  .supplier-r2-list-panel
  {
    max-height:none
  }
  .supplier-r2-detail-panel
  {
    min-height:360px
  }
  .supplier-r2-branch-card
  {
    grid-template-columns:1fr
  }
  .supplier-r2-branch-actions
  {
    justify-content:flex-start
  }
}
@media (max-width:760px)
{
  .supplier-r2-page-head
  {
    align-items:stretch;
    flex-direction:column
  }
  .supplier-r2-add-btn
  {
    width:100%
  }
  .supplier-r2-filters
  {
    grid-template-columns:1fr
  }
  .supplier-r2-detail-head,
  .supplier-r2-section-title
  {
    grid-template-columns:1fr;
    display:grid
  }
  .supplier-r2-fields,
  .supplier-r2-split,
  .supplier-r2-form-grid,
  .supplier-r2-address-parts
  {
    grid-template-columns:1fr
  }
  .supplier-r2-mini-row
  {
    grid-template-columns:1fr
  }
  .supplier-r2-create-modal,
  .supplier-r2-edit-modal,
  .supplier-r2-branch-modal
  {
    width:100%;
    max-height:100vh;
    border-radius:20px
  }
  .supplier-r2-modal-backdrop,
  .supplier-r2-edit-modal-backdrop,
  .supplier-r2-branch-modal-backdrop
  {
    padding:8px
  }
  .supplier-r2-list-card
  {
    grid-template-columns:1fr
  }
  .supplier-r2-open-btn
  {
    width:100%
  }
}
.supplier-r2-checkbox
{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  color:#0f172a;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f8fafc;
  padding:12px 14px
}
.supplier-r2-checkbox input[type="checkbox"]
{
  width:18px;
  height:18px;
  accent-color:var(--brand-primary)
}
/* PASS 85.66.R1: supplier Excel price profile form. */
.supplier-r2-price-format-card
{
  margin-top:14px;
  border:1px solid #e5eaf3;
  border-radius:18px;
  background:#f8fafc;
  padding:16px;
  min-width:0
}
.supplier-r2-price-format-form
{
  display:grid;
  gap:14px;
  min-width:0
}
.supplier-r2-price-format-grid
{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  min-width:0
}
.supplier-r2-price-format-field
{
  display:grid;
  gap:6px;
  min-width:0;
  color:#334155;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em
}
.supplier-r2-price-format-field input
{
  width:100%;
  height:40px;
  border:1px solid #dbe4f0;
  border-radius:13px;
  background:#fff;
  padding:0 12px;
  color:#0f172a;
  font-size:14px;
  font-weight:850;
  text-transform:none;
  letter-spacing:0;
  outline:none
}
.supplier-r2-price-format-field input:focus
{
  border-color:#93c5fd;
  box-shadow:0 0 0 4px rgba(37,99,235,.11)
}
.supplier-r2-price-format-actions
{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap
}
@media(max-width:1180px)
{
  .supplier-r2-price-format-grid
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
/* END frontend/public/css/admin-suppliers-workbench-part-04.css */

/* BEGIN frontend/public/css/admin-suppliers-workbench-part-05.css */
@media(max-width:760px)
{
  .supplier-r2-price-format-grid
  {
    grid-template-columns:1fr
  }
  .supplier-r2-price-format-actions
  {
    justify-content:stretch
  }
  .supplier-r2-price-format-actions button
  {
    width:100%
  }
}
/* END frontend/public/css/admin-suppliers-workbench-part-05.css */

/* END frontend/public/css/admin-suppliers-workbench.css */

/* BEGIN frontend/public/css/admin-shell.css */
/* BEGIN frontend/public/css/admin-shell-part-01.css */
/* Shared admin layout ownership; feature CSS lives in admin modules. */
.profile-box
{
  border:1px solid var(--line);
  border-radius:20px;
  padding:16px;
  background:#f9fafb;
  display:grid;
  gap:6px;
  margin-bottom:16px
}
.panel-section
{
  border-top:1px solid var(--line);
  padding-top:16px;
  margin-top:16px
}
.panel-section h3
{
  margin:0 0 12px
}
.admin-nav
{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:18px
}
.admin-nav__link
{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:10px 14px;
  font-weight:800;
  color:#0f172a;
  text-decoration:none
}
.admin-nav__link.is-active
{
  background:var(--brand-primary);
  color:#fff;
  border-color:var(--brand-primary)
}
.admin-section-root,
.admin-panel
{
  display:grid;
  gap:18px
}
.admin-grid
{
  display:grid;
  grid-template-columns:360px 1fr;
  gap:18px;
  align-items:start
}
.admin-form
{
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.05)
}
.admin-list
{
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.05);
  min-width:0;
  overflow-x:auto
}
.table
{
  width:100%;
  border-collapse:collapse;
  font-size:14px
}
.table th
{
  text-align:left;
  border-bottom:1px solid var(--line);
  padding:10px;
  vertical-align:top;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em
}
.table td
{
  text-align:left;
  border-bottom:1px solid var(--line);
  padding:10px;
  vertical-align:top
}
.inline-actions
{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center
}
@media(max-width:860px)
{
  .admin-grid
  {
    grid-template-columns:1fr
  }
}
@media(max-width:520px)
{
  .admin-nav
  {
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:4px
  }
}
.admin-address-row
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:start
}
.admin-select
{
  width:100%;
  appearance:auto
}
.admin-form input[readonly]
{
  background:#f9fafb;
  color:#374151;
  font-weight:800
}
.admin-address-block
{
  display:grid;
  gap:10px;
  min-width:0
}
.admin-address-street
{
  min-width:0
}
.admin-address-details-grid
{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  align-items:start;
  min-width:0
}
.admin-address-details-grid label,
.admin-address-details-grid input
{
  min-width:0
}
.admin-page
{
  padding:28px 30px 36px;
  max-width:1440px;
  margin:0 auto
}
.admin-page-card
{
  overflow:visible
}
.settings-page-card
{
  width:min(720px,100%)
}
.admin-page .admin-grid
{
  grid-template-columns:minmax(360px,420px) minmax(0,1fr)
}
.admin-page .admin-list
{
  min-width:0;
  overflow-x:auto
}
.settings-page .profile-box
{
  margin-bottom:18px
}
@media(max-width:980px)
{
  .admin-page,
  .settings-page
  {
    padding:18px
  }
}
/* END frontend/public/css/admin-shell-part-01.css */

/* BEGIN frontend/public/css/admin-shell-part-02.css */
@media(max-width:720px)
{
  .admin-address-row
  {
    grid-template-columns:1fr
  }
}
@media(max-width:560px)
{
  .admin-address-details-grid
  {
    grid-template-columns:1fr
  }
}
.admin-section-head
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px
}
.admin-section-head h3
{
  margin:0
}
.admin-section-head p
{
  margin:5px 0 0
}
.admin-detail-card
{
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fafc;
  padding:16px
}
.admin-detail-grid
{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px
}
.admin-detail-grid div
{
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
  padding:10px;
  display:grid;
  gap:5px
}
.admin-detail-grid b
{
  font-size:12px;
  text-transform:uppercase;
  color:#64748b
}
.admin-detail-grid span
{
  font-weight:750;
  overflow-wrap:anywhere
}
.admin-rbac-details
{
  margin-top:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:12px
}
.admin-rbac-details summary
{
  font-weight:900;
  cursor:pointer
}
.admin-diagnostics-layout
{
  display:grid;
  grid-template-columns:minmax(320px,1fr) minmax(320px,1fr);
  gap:18px;
  align-items:start
}
.admin-inline-form
{
  border:0;
  padding:0;
  background:transparent
}
.admin-statistics-panel
{
  display:grid;
  gap:16px
}
.admin-stat-grid
{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:12px
}
.admin-stat-card
{
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fafc;
  padding:16px;
  display:grid;
  gap:5px
}
.admin-stat-card span
{
  font-size:12px;
  text-transform:uppercase;
  color:#64748b;
  font-weight:900
}
.admin-stat-card b
{
  font-size:28px;
  letter-spacing:-.04em
}
.admin-stat-card small
{
  color:#64748b;
  font-weight:700
}
.ghost-btn
{
  background:#f8fafc;
  color:#334155
}
.admin-card
{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.05)
}
.admin-card h3,
.admin-list h3,
.admin-form h3
{
  margin-top:0
}
.actions-menu
{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.actions-menu__trigger
{
  width:38px;
  height:34px;
  min-width:38px;
  min-height:34px;
  padding:0;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1
}
.actions-menu__panel
{
  position:absolute;
  right:0;
  top:40px;
  z-index:35;
  display:grid;
  gap:4px;
  min-width:150px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.16)
}
.actions-menu__panel button
{
  border:0;
  background:transparent;
  border-radius:10px;
  padding:9px 10px;
  text-align:left;
  font-weight:850;
  cursor:pointer
}
.actions-menu__panel button:hover
{
  background:#f1f5f9
}
.table .table-actions,
.table .inline-actions,
.table .supplier-actions
{
  white-space:nowrap
}
/* END frontend/public/css/admin-shell-part-02.css */

/* BEGIN frontend/public/css/admin-shell-part-03.css */
.admin-json-block
{
  background:#0f172a;
  color:#e2e8f0;
  border-radius:14px;
  padding:12px;
  overflow:auto;
  font-size:12px
}
.settings-clean-grid
{
  display:grid;
  gap:16px;
  margin-top:16px
}
.settings-clean-card
{
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:18px;
  margin:0
}
.settings-clean-card h3
{
  margin:0 0 12px;
  font-size:18px;
  letter-spacing:-.02em
}
.settings-profile-card .profile-box
{
  margin:0;
  display:grid;
  gap:6px;
  border:0;
  background:#f8fafc;
  border-radius:16px;
  padding:14px
}
.settings-supplier-prices-hint .secondary-btn
{
  display:inline-flex;
  width:auto;
  margin-top:8px
}
/* END frontend/public/css/admin-shell-part-03.css */

/* END frontend/public/css/admin-shell.css */

/* BEGIN frontend/public/css/admin-users.css */
/* BEGIN frontend/public/css/admin-users-part-01.css */
/* Admin Users production UI ownership. */
.admin-user-left
{
  display:grid;
  gap:16px;
  align-content:start
}
.admin-users-page
{
  display:grid;
  gap:16px;
  min-width:0;
  overflow-x:hidden
}
.admin-users-actionsbar
{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:0 0 14px;
  min-width:0;
  border:0;
  background:transparent;
  padding:0;
  border-radius:0
}
.admin-users-actionsbar .primary-btn
{
  box-shadow:none
}
.admin-users-toolbar
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:18px
}
.admin-users-toolbar h3
{
  margin:0;
  font-size:24px;
  letter-spacing:-.03em
}
.admin-users-toolbar p
{
  margin:6px 0 0
}
.admin-users-table-card
{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  overflow:visible;
  padding:0;
  min-width:0
}
.admin-users-grid-table
{
  display:grid;
  min-width:0;
  width:100%
}
.admin-users-grid-head,
.admin-user-grid-row
{
  display:grid;
  grid-template-columns:minmax(230px,1.35fr) minmax(122px,.55fr) minmax(155px,.85fr) minmax(130px,.65fr) 105px 132px;
  gap:0;
  align-items:center;
  min-width:0
}
.admin-users-grid-head
{
  border-bottom:1px solid var(--line);
  color:#667085;
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase
}
.admin-users-grid-head span
{
  padding:13px 12px;
  min-width:0;
  white-space:nowrap
}
.admin-users-grid-body
{
  display:grid;
  min-width:0
}
.admin-user-grid-row
{
  position:relative;
  background:#fff
}
.admin-user-grid-row+.admin-user-grid-row
{
  border-top:1px solid var(--line)
}
.admin-user-grid-cell
{
  padding:14px 12px;
  min-width:0;
  align-self:stretch;
  display:flex;
  align-items:center;
  overflow-wrap:anywhere
}
.admin-user-identity
{
  display:grid;
  gap:3px;
  align-content:center
}
.admin-user-identity strong
{
  font-weight:950;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.admin-user-identity span,
.admin-user-identity small
{
  color:var(--muted);
  font-weight:650;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.admin-user-role-cell,
.admin-user-supplier-cell,
.admin-user-prices-cell,
.admin-user-status-cell
{
  min-width:0
}
.admin-user-supplier-cell
{
  font-weight:750;
  color:#111827;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.admin-user-role-pill
{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:30px;
  padding:5px 10px;
  border:1px solid #dbe4f0;
  border-radius:999px;
  background:#f8fafc;
  color:#1f2a44;
  font-size:13px;
  font-weight:900;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.admin-user-role-pill.is-system
{
  background:#eef2ff;
  border-color:#c7d2fe;
  color:#1d4ed8
}
.admin-user-role-pill.is-supplier
{
  background:#f8fafc;
  border-color:#dbe4f0;
  color:#1f2a44
}
.admin-user-role-pill.is-private
{
  background:#f0fdf4;
  border-color:#bbf7d0;
  color:#166534
}
.admin-user-access-badge
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  font-weight:900;
  line-height:1.15;
  background:#f1f5f9;
  color:#475569;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
/* END frontend/public/css/admin-users-part-01.css */

/* BEGIN frontend/public/css/admin-users-part-02.css */
.admin-user-access-badge.is-success
{
  background:#dcfce7;
  color:#166534
}
.admin-user-access-badge.is-warning
{
  background:#fff7ed;
  color:#9a3412
}
.admin-user-access-badge.is-neutral
{
  background:#eef2ff;
  color:#1d4ed8
}
.admin-user-access-badge.is-muted
{
  background:#f1f5f9;
  color:#64748b
}
.admin-user-actions
{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-start;
  overflow:visible
}
.admin-user-open-btn
{
  padding:8px 10px;
  line-height:1.05;
  white-space:nowrap
}
.admin-user-action-menu
{
  position:relative;
  display:inline-flex;
  overflow:visible
}
.admin-user-action-menu summary
{
  list-style:none;
  width:34px;
  height:34px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(15,23,42,.05)
}
.admin-user-action-menu summary::-webkit-details-marker
{
  display:none
}
.admin-user-action-menu[open] summary
{
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1d4ed8
}
.admin-user-action-menu__list
{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  z-index:30;
  min-width:170px;
  display:grid;
  gap:4px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
  padding:6px;
  box-shadow:0 18px 42px rgba(15,23,42,.16)
}
.admin-user-action-menu__list button
{
  border:0;
  background:transparent;
  text-align:left;
  padding:9px 10px;
  border-radius:10px;
  font-weight:850;
  cursor:pointer;
  color:#111827
}
.admin-user-action-menu__list button:hover
{
  background:#f8fafc
}
.admin-users-cards
{
  display:none
}
.admin-user-card-row
{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:14px;
  display:grid;
  gap:12px
}
.admin-user-card-row>div:first-child
{
  display:grid;
  gap:3px
}
.admin-user-card-row>div:first-child span,
.admin-user-card-row>div:first-child small
{
  color:var(--muted);
  font-weight:650
}
.admin-user-card-row dl
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0
}
.admin-user-card-row dl div
{
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f8fafc;
  padding:10px;
  min-width:0
}
.admin-user-card-row dt
{
  font-size:11px;
  text-transform:uppercase;
  color:#64748b;
  font-weight:900
}
.admin-user-card-row dd
{
  margin:3px 0 0;
  font-weight:800;
  overflow-wrap:anywhere
}
.admin-user-card-actions
{
  display:flex;
  gap:8px;
  flex-wrap:nowrap;
  overflow:visible
}
.admin-user-card-actions .small-btn
{
  flex:0 0 auto
}
.user-detail-box
{
  margin-top:16px
}
.user-edit-form
{
  margin-top:0
}
.admin-user-modal
{
  z-index:120
}
.admin-user-modal-card
{
  width:min(640px,100%)
}
.admin-user-form
{
  gap:12px
}
.admin-user-form label
{
  font-weight:900
}
.admin-user-detail-grid
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:14px 0
}
.admin-user-detail-grid div
{
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#f8fafc;
  padding:12px;
  display:grid;
  gap:5px;
  min-width:0
}
/* END frontend/public/css/admin-users-part-02.css */

/* BEGIN frontend/public/css/admin-users-part-03.css */
.admin-user-detail-grid b
{
  font-size:11px;
  text-transform:uppercase;
  color:#64748b
}
.admin-user-detail-grid span
{
  font-weight:850;
  overflow-wrap:anywhere
}
.admin-user-card .modal-actions
{
  justify-content:flex-end
}
.admin-users-roles-panel
{
  margin-top:0;
  overflow:hidden;
  border-radius:22px
}
.admin-users-roles-panel summary
{
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 0
}
.admin-users-roles-panel>summary
{
  font-size:17px
}
.admin-users-roles-table
{
  width:100%;
  min-width:0;
  table-layout:auto
}
.admin-users-roles-table th:first-child
{
  width:190px
}
.admin-role-permissions
{
  display:flex;
  gap:6px;
  flex-wrap:wrap
}
.admin-role-permissions span
{
  border:1px solid #e5e7eb;
  background:#f8fafc;
  border-radius:999px;
  padding:4px 8px;
  font-size:12px;
  font-weight:800;
  color:#334155;
  overflow-wrap:anywhere
}
.admin-role-cards
{
  display:grid;
  gap:12px;
  margin-top:14px
}
.admin-role-card
{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:14px;
  display:grid;
  gap:10px
}
.admin-role-card-head
{
  display:flex;
  justify-content:space-between;
  gap:12px
}
.admin-role-card strong
{
  font-size:16px
}
.admin-role-card small
{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-weight:750
}
.admin-role-card p
{
  margin:0;
  color:#334155;
  line-height:1.45;
  font-weight:650
}
.admin-role-tech-details
{
  border:1px dashed #d8dee8;
  border-radius:14px;
  background:#f8fafc;
  padding:10px
}
.admin-role-tech-details summary
{
  font-size:13px;
  font-weight:900;
  cursor:pointer
}
.admin-role-permission-chips
{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:10px
}
.admin-role-permission-chips span
{
  border:1px solid #e5e7eb;
  background:#fff;
  border-radius:999px;
  padding:4px 8px;
  font-size:12px;
  font-weight:800;
  color:#334155;
  overflow-wrap:anywhere
}
.admin-user-access-diagnostic
{
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#f8fafc;
  padding:12px;
  display:grid;
  gap:10px
}
.admin-user-access-diagnostic.is-ok
{
  border-color:#bbf7d0;
  background:#f0fdf4
}
.admin-user-access-diagnostic.is-blocked
{
  border-color:#fed7aa;
  background:#fff7ed
}
.admin-user-access-diagnostic__head
{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  font-weight:950
}
.admin-user-access-diagnostic__head span
{
  border-radius:999px;
  padding:4px 9px;
  background:#e5e7eb;
  color:#334155;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em
}
.admin-user-access-diagnostic.is-ok .admin-user-access-diagnostic__head span
{
  background:#dcfce7;
  color:#166534
}
.admin-user-access-diagnostic.is-blocked .admin-user-access-diagnostic__head span
{
  background:#ffedd5;
  color:#9a3412
}
.admin-user-access-diagnostic ul
{
  margin:0;
  padding:0;
  display:grid;
  gap:6px;
  list-style:none
}
.admin-user-access-diagnostic li
{
  font-weight:800;
  color:#475569;
  display:flex;
  gap:8px;
  align-items:flex-start
}
.admin-user-access-diagnostic li::before
{
  content:'•';
  font-weight:950;
  color:#94a3b8
}
/* END frontend/public/css/admin-users-part-03.css */

/* BEGIN frontend/public/css/admin-users-part-04.css */
.admin-user-access-diagnostic li.is-ok::before
{
  content:'✓';
  color:#16a34a
}
.admin-user-access-diagnostic li.is-blocked::before
{
  content:'!';
  color:#f97316
}
.admin-role-group
{
  display:grid;
  gap:10px;
  margin-top:14px
}
.admin-role-group h4
{
  margin:0;
  color:#334155;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em
}
@media(max-width:1220px)
{
  .admin-users-grid-head,
  .admin-user-grid-row
  {
    grid-template-columns:minmax(210px,1.25fr) minmax(110px,.55fr) minmax(140px,.75fr) minmax(115px,.62fr) 96px 122px
  }
  .admin-user-grid-cell,
  .admin-users-grid-head span
  {
    padding-left:10px;
    padding-right:10px
  }
  .admin-user-open-btn
  {
    padding-left:8px;
    padding-right:8px
  }
}
@media(max-width:980px)
{
  .admin-users-grid-table
  {
    display:none
  }
  .admin-users-cards
  {
    display:grid;
    gap:12px;
    padding:14px
  }
  .admin-users-table-card
  {
    padding:0
  }
  .admin-users-toolbar
  {
    flex-direction:column
  }
  .admin-users-toolbar .primary-btn,
  .admin-users-actionsbar .primary-btn
  {
    width:100%
  }
  .admin-users-actionsbar
  {
    justify-content:stretch;
    align-items:stretch;
    flex-direction:column
  }
}
@media(max-width:640px)
{
  .admin-user-card-row dl,
  .admin-user-detail-grid
  {
    grid-template-columns:1fr
  }
  .admin-user-modal
  {
    padding:10px
  }
  .admin-user-modal-card
  {
    border-radius:20px;
    padding:16px
  }
  .admin-users-roles-table
  {
    display:block
  }
  .admin-users-roles-table tbody
  {
    display:block
  }
  .admin-users-roles-table th
  {
    display:block
  }
  .admin-users-roles-table thead
  {
    display:none
  }
  .admin-users-roles-table tr
  {
    display:block;
    border-bottom:1px solid var(--line);
    padding:10px 0
  }
  .admin-users-roles-table td
  {
    display:block;
    border:0;
    padding:8px 0
  }
}
/* END frontend/public/css/admin-users-part-04.css */

/* END frontend/public/css/admin-users.css */

/* BEGIN frontend/public/css/admin-brand-pairs.css */
/* BEGIN frontend/public/css/admin-brand-pairs-part-01.css */
/* Admin Brand Pairs UI ownership. */
.brand-pairs-page
{
  display:grid;
  gap:14px;
  min-width:0;
  overflow-x:hidden
}
.brand-pairs-head
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:18px
}
.brand-pairs-head h3
{
  margin:0;
  font-size:22px;
  letter-spacing:-.03em
}
.brand-pairs-head p
{
  margin:6px 0 0
}
.brand-pairs-actions
{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;
  justify-content:flex-end;
  flex-shrink:0
}
.brand-pair-primary-action
{
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  line-height:1;
  padding:0 18px;
  min-width:174px
}
.brand-pair-secondary-action
{
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  line-height:1;
  padding:0 18px;
  min-width:142px
}
.brand-pairs-search
{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto auto auto;
  gap:10px;
  align-items:center
}
.brand-pairs-search input
{
  width:100%;
  height:44px
}
.brand-pairs-search .small-btn
{
  height:44px
}
.brand-pairs-table-card
{
  padding:0;
  overflow:visible;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff
}
.brand-pairs-table
{
  width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:collapse
}
.brand-pairs-col-article
{
  width:170px
}
.brand-pairs-col-brand
{
  width:160px
}
.brand-pairs-col-source
{
  width:170px
}
.brand-pairs-col-actions
{
  width:70px
}
.brand-pairs-table thead th
{
  border-bottom:1px solid var(--line);
  background:#fff
}
.brand-pairs-table tbody tr+tr td
{
  border-top:1px solid var(--line)
}
.brand-pairs-table th,
.brand-pairs-table td
{
  padding:13px 12px;
  vertical-align:middle;
  overflow-wrap:anywhere
}
.brand-pair-token
{
  display:block;
  white-space:normal;
  line-height:1.25
}
.brand-pair-description
{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:#334155;
  font-weight:650;
  line-height:1.35;
  max-height:2.8em
}
.brand-pair-source
{
  color:#334155;
  font-weight:750
}
.brand-pair-actions
{
  position:relative;
  text-align:center;
  overflow:visible
}
.brand-pair-action-menu
{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.brand-pair-actions-trigger
{
  width:38px;
  height:34px;
  min-width:38px;
  min-height:34px;
  padding:0;
  border-radius:12px;
  font-size:18px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--brand-primary-dark);
  background:var(--brand-soft);
  border:1px solid color-mix(in srgb,var(--brand-primary) 28%,transparent)
}
.compact-action-btn
{
  width:38px;
  height:34px;
  min-width:38px;
  min-height:34px;
  padding:0;
  border-radius:12px;
  font-size:18px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center
}
/* END frontend/public/css/admin-brand-pairs-part-01.css */

/* BEGIN frontend/public/css/admin-brand-pairs-part-02.css */
.brand-pair-menu
{
  position:absolute;
  right:0;
  top:40px;
  z-index:30;
  display:grid;
  gap:4px;
  min-width:150px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.16)
}
.brand-pair-menu button
{
  border:0;
  background:transparent;
  border-radius:10px;
  padding:9px 10px;
  text-align:left;
  font-weight:850;
  cursor:pointer
}
.brand-pair-menu button:hover
{
  background:#f1f5f9
}
.brand-pair-modal
{
  z-index:120
}
.brand-pair-modal-card
{
  width:min(640px,100%)
}
.brand-pair-form textarea
{
  resize:vertical
}
.brand-pairs-table-footer
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  border-top:1px solid var(--line);
  padding:12px;
  color:var(--muted);
  font-weight:800
}
.brand-pairs-pager-actions
{
  display:flex;
  gap:8px;
  align-items:center
}
@media(max-width:900px)
{
  .brand-pairs-head
  {
    flex-direction:column;
    align-items:stretch
  }
  .brand-pairs-actions
  {
    justify-content:flex-start;
    flex-wrap:wrap;
    width:100%
  }
  .brand-pairs-actions .primary-btn,
  .brand-pairs-actions .secondary-btn
  {
    width:100%
  }
  .brand-pairs-search
  {
    grid-template-columns:1fr
  }
  .brand-pairs-search .small-btn
  {
    width:100%
  }
  .brand-pairs-table
  {
    display:block
  }
  .brand-pairs-table tbody
  {
    display:block
  }
  .brand-pairs-table colgroup,
  .brand-pairs-table thead
  {
    display:none
  }
  .brand-pairs-table tr
  {
    display:block;
    padding:12px;
    border-bottom:1px solid var(--line)
  }
  .brand-pairs-table th
  {
    display:block
  }
  .brand-pairs-table td
  {
    display:block;
    border:0;
    padding:7px 0
  }
  .brand-pairs-table td::before
  {
    content:attr(data-label);
    display:block;
    font-size:11px;
    text-transform:uppercase;
    color:#64748b;
    font-weight:900;
    margin-bottom:3px
  }
  .brand-pair-description
  {
    max-height:none;
    -webkit-line-clamp:unset
  }
  .brand-pair-actions
  {
    text-align:left
  }
  .brand-pair-menu
  {
    left:0;
    right:auto
  }
  .brand-pairs-table-footer
  {
    justify-content:center;
    text-align:center
  }
  .brand-pairs-pager-actions
  {
    width:100%;
    justify-content:center
  }
}
/* END frontend/public/css/admin-brand-pairs-part-02.css */

/* END frontend/public/css/admin-brand-pairs.css */

/* BEGIN frontend/public/css/admin-prices.css */
/* BEGIN frontend/public/css/admin-prices-part-01.css */
/* Admin prices workbench UI ownership. */
.price-import
{
  min-width:0;
  max-width:100%
}
.import-jobs
{
  min-width:0;
  max-width:100%;
  overflow:hidden
}
.prices-workbench
{
  display:grid;
  gap:18px;
  min-width:0;
  max-width:100%
}
.prices-workbench-header
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:2px 0 4px;
  min-width:0
}
.prices-workbench-header h2
{
  margin:0;
  font-size:28px;
  line-height:1.15
}
.prices-workbench-header p
{
  margin:6px 0 0;
  color:var(--muted);
  font-weight:700;
  line-height:1.45
}
.prices-workbench-actions
{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end
}
.prices-summary-grid
{
  display:grid;
  grid-template-columns:repeat(6,minmax(130px,1fr));
  gap:10px;
  min-width:0
}
.prices-summary-card
{
  border:1px solid var(--line);
  background:#fff;
  border-radius:18px;
  padding:13px 14px;
  display:grid;
  gap:6px;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
  min-width:0;
  border-left:4px solid #dbe4ef
}
.prices-summary-card span
{
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:900;
  line-height:1.25
}
.prices-summary-card b
{
  font-size:22px;
  line-height:1;
  color:#0f172a;
  overflow-wrap:anywhere
}
.prices-summary-card--success
{
  border-left-color:#16a34a;
  background:#f4fbf6
}
.prices-summary-card--warning
{
  border-left-color:#f59e0b;
  background:#fff8eb
}
.prices-summary-card--danger
{
  border-left-color:#dc2626;
  background:#fff1f2
}
.prices-summary-card--info
{
  border-left-color:#2563eb;
  background:#eff6ff
}
.prices-summary-card--neutral
{
  border-left-color:#64748b
}
.prices-filters-card,
.prices-table-card
{
  border:1px solid var(--line);
  background:#fff;
  border-radius:22px;
  padding:14px 16px;
  box-shadow:0 12px 28px rgba(15,23,42,.04);
  min-width:0;
  max-width:100%;
  overflow:hidden
}
.prices-filters-grid
{
  display:grid;
  gap:12px;
  align-items:end;
  min-width:0
}
.prices-filters-grid--primary
{
  grid-template-columns:repeat(6,minmax(128px,1fr))
}
.prices-filters-grid--secondary
{
  grid-template-columns:minmax(240px,1.5fr) auto auto auto;
  margin-top:12px
}
.prices-filters-card label
{
  display:grid;
  gap:6px;
  font-size:12px;
  text-transform:none;
  color:#334155;
  font-weight:900;
  min-width:0
}
.prices-filters-card select,
.prices-filters-card input[type="text"],
.prices-filters-card input:not([type])
{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  font-weight:800;
  background:#fff
}
.prices-filter-search input
{
  height:42px
}
.prices-filters-card .prices-check
{
  display:flex;
  align-items:center;
  gap:8px;
  align-self:center;
  white-space:nowrap;
  text-transform:none
}
.prices-check input
{
  width:16px;
  height:16px
}
.prices-filter-actions
{
  display:flex;
  gap:9px;
  align-items:center;
  justify-content:flex-end;
  align-self:end
}
.prices-workbench-table-wrap
{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden
}
.prices-workbench-table
{
  min-width:1060px;
  width:100%;
  table-layout:fixed
}
/* END frontend/public/css/admin-prices-part-01.css */

/* BEGIN frontend/public/css/admin-prices-part-02.css */
.prices-workbench-table th
{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  padding:11px 10px
}
.prices-workbench-table td
{
  padding:10px 10px;
  vertical-align:middle;
  border-top:1px solid #edf2f7
}
.prices-workbench-table th:nth-child(1),
.prices-workbench-table td:nth-child(1)
{
  width:96px
}
.prices-workbench-table th:nth-child(2),
.prices-workbench-table td:nth-child(2)
{
  width:126px
}
.prices-workbench-table th:nth-child(3),
.prices-workbench-table td:nth-child(3)
{
  width:128px
}
.prices-workbench-table th:nth-child(4),
.prices-workbench-table td:nth-child(4)
{
  width:250px
}
.prices-workbench-table th:nth-child(5),
.prices-workbench-table td:nth-child(5)
{
  width:110px
}
.prices-workbench-table th:nth-child(6),
.prices-workbench-table td:nth-child(6)
{
  width:130px
}
.prices-workbench-table th:nth-child(7),
.prices-workbench-table td:nth-child(7)
{
  width:115px
}
.prices-workbench-table th:nth-child(8),
.prices-workbench-table td:nth-child(8)
{
  width:160px
}
.prices-workbench-table th:nth-child(9),
.prices-workbench-table td:nth-child(9)
{
  width:120px
}
.prices-workbench-table th:nth-child(10),
.prices-workbench-table td:nth-child(10)
{
  width:104px
}
.prices-import-row:hover
{
  background:#f8fbff
}
.import-date
{
  display:grid;
  gap:2px
}
.import-date b
{
  font-weight:900
}
.import-date span,
.prices-cell-muted
{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:700
}
.prices-file-name,
.prices-branch-label
{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0
}
.prices-actions
{
  display:grid;
  gap:6px;
  justify-items:start
}
.import-status-badge,
.import-source-badge,
.prices-snapshot,
.prices-quality
{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap
}
.import-status-badge--success,
.prices-snapshot--active,
.prices-quality--ok
{
  background:#dcfce7;
  color:#047857
}
.import-status-badge--warning,
.prices-quality--warning
{
  background:#ffedd5;
  color:#c2410c
}
.import-status-badge--danger,
.prices-quality--danger
{
  background:#fee2e2;
  color:#b91c1c
}
.import-status-badge--info
{
  background:#dbeafe;
  color:#1d4ed8
}
.import-status-badge--neutral,
.prices-snapshot
{
  background:#f1f5f9;
  color:#475569
}
.import-source-badge--mail
{
  background:#e0f2fe;
  color:#0369a1
}
.import-source-badge--manual
{
  background:#eef2ff;
  color:#4338ca
}
.import-source-badge--system
{
  background:#f1f5f9;
  color:#475569
}
.prices-pagination
{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  padding-top:12px;
  color:var(--muted);
  font-weight:900
}
.prices-empty-state
{
  display:grid;
  gap:6px;
  justify-items:center;
  text-align:center;
  color:var(--muted);
  padding:36px
}
.prices-empty-state b
{
  font-size:18px;
  color:#0f172a
}
.prices-drawer-shell
{
  position:fixed;
  inset:0;
  z-index:80;
  display:block
}
.prices-drawer-shell.is-hidden
{
  display:none
}
/* END frontend/public/css/admin-prices-part-02.css */

/* BEGIN frontend/public/css/admin-prices-part-03.css */
.prices-drawer-overlay
{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.28);
  backdrop-filter:blur(2px)
}
.prices-drawer
{
  position:absolute;
  right:0;
  top:0;
  height:100vh;
  width:min(720px,96vw);
  background:#fff;
  box-shadow:-22px 0 60px rgba(15,23,42,.22);
  overflow:auto;
  display:grid;
  align-content:start
}
.prices-upload-drawer
{
  width:min(520px,96vw)
}
.prices-drawer-header
{
  position:sticky;
  top:0;
  background:#fff;
  z-index:2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px;
  border-bottom:1px solid var(--line)
}
.prices-drawer-header h3
{
  margin:0;
  font-size:24px
}
.prices-drawer-header p
{
  margin:5px 0 0;
  color:var(--muted);
  font-weight:800
}
.prices-drawer-close
{
  border:0;
  background:#eff6ff;
  color:#1d4ed8;
  border-radius:14px;
  min-width:42px;
  height:42px;
  font-size:24px;
  font-weight:900;
  cursor:pointer
}
.prices-upload-form
{
  display:grid;
  gap:14px;
  padding:20px 22px
}
.prices-upload-form label
{
  display:grid;
  gap:7px;
  font-weight:900
}
.prices-upload-form select,
.prices-upload-form input
{
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  font-weight:800
}
.prices-upload-note
{
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  color:var(--muted);
  font-weight:800;
  line-height:1.45
}
.prices-drawer-actions
{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding-top:8px
}
.progress-box
{
  border:1px solid rgba(10,186,181,.25);
  background:var(--brand-soft);
  border-radius:16px;
  padding:12px;
  display:grid;
  gap:8px;
  min-width:0;
  max-width:100%;
  box-sizing:border-box
}
.progress-title
{
  font-weight:900;
  color:var(--brand-primary-dark);
  min-width:0;
  overflow-wrap:anywhere
}
.progress-bar
{
  height:10px;
  border-radius:999px;
  background:#d7f3f2;
  overflow:hidden;
  min-width:0
}
.progress-bar span
{
  display:block;
  height:100%;
  background:var(--brand-primary);
  border-radius:999px;
  transition:width .25s ease
}
.progress-meta
{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  overflow-wrap:anywhere
}
.prices-detail-drawer
{
  width:min(780px,96vw)
}
.prices-detail-drawer__accent
{
  height:5px
}
.prices-detail-drawer__accent--success
{
  background:#16a34a
}
.prices-detail-drawer__accent--warning
{
  background:#f59e0b
}
.prices-detail-drawer__accent--danger
{
  background:#dc2626
}
.prices-detail-drawer__accent--info
{
  background:#2563eb
}
.prices-detail-drawer__accent--neutral
{
  background:#94a3b8
}
.prices-detail-header
{
  position:static
}
.prices-detail-header-actions
{
  display:flex;
  align-items:center;
  gap:8px
}
.prices-detail-file-title
{
  max-width:460px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.prices-human-verdict
{
  margin:16px 22px 0;
  border-radius:18px;
  padding:14px 16px;
  font-weight:900;
  line-height:1.45
}
.prices-human-verdict--success
{
  background:#dcfce7;
  color:#065f46
}
/* END frontend/public/css/admin-prices-part-03.css */

/* BEGIN frontend/public/css/admin-prices-part-04.css */
.prices-human-verdict--warning
{
  background:#fff7ed;
  color:#9a3412
}
.prices-human-verdict--danger
{
  background:#fee2e2;
  color:#991b1b
}
.prices-human-verdict--info,
.prices-human-verdict--neutral
{
  background:#eff6ff;
  color:#1e40af
}
.prices-detail-body
{
  display:grid;
  gap:18px;
  padding:18px 22px 28px
}
.prices-detail-section
{
  display:grid;
  gap:10px
}
.prices-detail-section h4
{
  margin:0;
  font-size:17px
}
.prices-detail-grid
{
  display:grid;
  grid-template-columns:repeat(3,minmax(160px,1fr));
  gap:10px;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px
}
.prices-detail-kv
{
  display:grid;
  gap:5px;
  min-width:0
}
.prices-detail-kv b
{
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em
}
.prices-detail-kv span
{
  font-weight:800;
  overflow-wrap:anywhere
}
.prices-detail-kv.is-warning span
{
  color:#c2410c
}
.prices-detail-kv.is-danger span
{
  color:#b91c1c
}
.prices-detail-file
{
  word-break:break-all
}
.import-card
{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:10px;
  background:#f9fafb;
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px;
  min-width:0;
  max-width:100%;
  box-sizing:border-box
}
.import-card div
{
  display:grid;
  gap:5px;
  min-width:0
}
.import-card b
{
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em
}
.import-card span
{
  min-width:0;
  overflow-wrap:anywhere
}
.prices-source-run-section>h3
{
  margin-top:0
}
.prices-source-run-section table
{
  font-size:13px
}
.prices-source-run-section .table
{
  display:block;
  max-height:280px;
  overflow:auto
}
.prices-timeline summary
{
  cursor:pointer;
  font-weight:900;
  color:#1d4ed8
}
.prices-stage-grid
{
  margin-top:10px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px
}
.prices-stage-item
{
  display:grid;
  gap:4px
}
.prices-stage-item b
{
  font-size:11px;
  text-transform:uppercase;
  color:#64748b;
  letter-spacing:.05em
}
.prices-stage-item span
{
  font-weight:800;
  line-height:1.35
}
.prices-detail-loading,
.prices-detail-error
{
  padding:24px;
  font-weight:900;
  color:var(--muted)
}
.prices-error-table code
{
  white-space:pre-wrap;
  word-break:break-word
}
.has-prices-drawer
{
  overflow:hidden
}
body[data-route="admin"] .price-results-head.search-results-summary
{
  display:none
}
@media(max-width:1200px)
{
  .prices-summary-grid
  {
    grid-template-columns:repeat(3,minmax(140px,1fr))
  }
  .prices-filters-grid--primary
  {
    grid-template-columns:repeat(3,minmax(160px,1fr))
  }
  .prices-filters-grid--secondary
  {
    grid-template-columns:1fr 1fr 1fr
  }
  .prices-filter-actions
  {
    grid-column:1/-1;
    justify-content:flex-start
  }
}
/* END frontend/public/css/admin-prices-part-04.css */

/* BEGIN frontend/public/css/admin-prices-part-05.css */
@media(max-width:760px)
{
  .prices-workbench-header
  {
    display:grid
  }
  .prices-summary-grid
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .prices-filters-grid--primary,
  .prices-filters-grid--secondary
  {
    grid-template-columns:1fr
  }
  .prices-filter-actions
  {
    justify-content:stretch
  }
  .prices-filter-actions button
  {
    width:100%
  }
  .prices-detail-grid
  {
    grid-template-columns:1fr
  }
  .prices-stage-grid
  {
    grid-template-columns:1fr
  }
}
.prices-mode-switch
{
  display:flex;
  gap:8px;
  align-items:center;
  margin:0 0 12px;
  padding:4px;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:16px;
  width:max-content;
  max-width:100%
}
.prices-mode-switch button
{
  border:0;
  background:transparent;
  border-radius:12px;
  padding:9px 14px;
  font-weight:900;
  color:#475569;
  cursor:pointer
}
.prices-mode-switch button.is-active
{
  background:#2563eb;
  color:#fff;
  box-shadow:0 8px 20px rgba(37,99,235,.22)
}
.prices-summary-grid--supplier
{
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr))
}
.supplier-health-card
{
  overflow:hidden
}
.supplier-health-table-wrap
{
  overflow-x:auto;
  max-width:100%
}
.supplier-health-table
{
  min-width:1080px;
  width:100%;
  table-layout:fixed
}
.supplier-health-table th
{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  padding:11px 10px
}
.supplier-health-table td
{
  padding:11px 10px;
  vertical-align:middle;
  border-top:1px solid #edf2f7
}
.supplier-health-table th:nth-child(1),
.supplier-health-table td:nth-child(1)
{
  width:170px
}
.supplier-health-table th:nth-child(2),
.supplier-health-table td:nth-child(2)
{
  width:120px
}
.supplier-health-table th:nth-child(3),
.supplier-health-table td:nth-child(3)
{
  width:120px
}
.supplier-health-table th:nth-child(4),
.supplier-health-table td:nth-child(4)
{
  width:160px
}
.supplier-health-table th:nth-child(5),
.supplier-health-table td:nth-child(5)
{
  width:120px
}
.supplier-health-table th:nth-child(6),
.supplier-health-table td:nth-child(6)
{
  width:230px
}
.supplier-health-table th:nth-child(7),
.supplier-health-table td:nth-child(7)
{
  width:80px
}
.supplier-health-table th:nth-child(8),
.supplier-health-table td:nth-child(8)
{
  width:130px
}
.supplier-health-table th:nth-child(9),
.supplier-health-table td:nth-child(9)
{
  width:90px
}
.supplier-health-row:hover
{
  background:#f8fbff
}
.supplier-health-row.supplier-status-warning,
.supplier-health-row.supplier-status-partial
{
  background:linear-gradient(90deg,rgba(245,158,11,.07),transparent 22%)
}
.supplier-health-row.supplier-status-error,
.supplier-health-row.supplier-status-no_snapshot
{
  background:linear-gradient(90deg,rgba(220,38,38,.07),transparent 22%)
}
.supplier-status-badge
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap
}
.supplier-status-badge--success
{
  background:#dcfce7;
  color:#047857
}
.supplier-status-badge--warning
{
  background:#ffedd5;
  color:#c2410c
}
.supplier-status-badge--danger
{
  background:#fee2e2;
  color:#b91c1c
}
.supplier-status-badge--neutral
{
  background:#f1f5f9;
  color:#475569
}
.prices-source-plain
{
  font-weight:900;
  color:#334155
}
.compact-warning-list
{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#334155;
  font-weight:800
}
/* END frontend/public/css/admin-prices-part-05.css */

/* BEGIN frontend/public/css/admin-prices-part-06.css */
.supplier-detail-drawer
{
  width:min(860px,96vw)
}
.supplier-drawer-header h3
{
  margin-bottom:4px
}
.supplier-drawer-tabs
{
  display:flex;
  gap:8px;
  padding:14px 22px 0;
  border-bottom:1px solid var(--line);
  background:#fff;
  position:sticky;
  top:83px;
  z-index:1
}
.supplier-drawer-tabs button
{
  border:1px solid var(--line);
  border-bottom:0;
  border-radius:12px 12px 0 0;
  background:#f8fafc;
  color:#475569;
  padding:10px 13px;
  font-weight:900;
  cursor:pointer
}
.supplier-drawer-tabs button.is-active
{
  background:#fff;
  color:#1d4ed8;
  box-shadow:0 -2px 0 #2563eb inset
}
.supplier-drawer-body
{
  padding:16px 22px 28px
}
.branch-health-table-wrap
{
  max-height:62vh;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff
}
.branch-health-table
{
  width:100%;
  min-width:760px;
  table-layout:fixed
}
.branch-health-table th
{
  position:sticky;
  top:0;
  background:#f8fafc;
  z-index:1;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#64748b;
  padding:10px
}
.branch-health-table td
{
  padding:10px;
  border-top:1px solid #edf2f7;
  vertical-align:middle
}
.branch-health-table tr:hover
{
  background:#f8fbff
}
.supplier-quality-grid
{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px
}
.prices-human-verdict span
{
  display:block;
  margin-top:5px;
  line-height:1.45
}
.import-source-badge--mixed
{
  background:#fef3c7;
  color:#92400e
}
@media(max-width:900px)
{
  .prices-mode-switch
  {
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .supplier-drawer-tabs
  {
    overflow:auto
  }
  .supplier-health-table,
  .branch-health-table
  {
    min-width:840px
  }
  .supplier-detail-drawer
  {
    width:min(760px,96vw)
  }
}
.supplier-health-row.supplier-status-ok
{
  background:linear-gradient(90deg,rgba(22,163,74,.045),transparent 20%)
}
.supplier-health-row.supplier-status-stale,
.supplier-health-row.supplier-status-unknown
{
  background:linear-gradient(90deg,rgba(100,116,139,.06),transparent 20%)
}
/* END frontend/public/css/admin-prices-part-06.css */

/* END frontend/public/css/admin-prices.css */

/* BEGIN frontend/public/css/admin-mail.css */
/* BEGIN frontend/public/css/admin-mail-part-01.css */
/* Admin mail price wizard/settings UI ownership. */
.mail-prices-list .table-actions
{
  white-space:normal;
  overflow:visible
}
#mail-prices-modal
{
  position:fixed;
  inset:0;
  z-index:90;
  display:grid;
  place-items:center;
  padding:20px;
  overflow:auto
}
.mail-modal-backdrop
{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.50);
  backdrop-filter:blur(3px)
}
.mail-source-modal
{
  position:relative;
  width:min(1120px,calc(100vw - 44px));
  height:min(760px,calc(100vh - 44px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:0;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(226,232,240,.95);
  box-shadow:0 28px 80px rgba(15,23,42,.28)
}
.mail-modal-head
{
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px 26px 18px;
  background:linear-gradient(135deg,#ffffff 0%,#effefd 100%);
  border-bottom:1px solid var(--line)
}
.mail-modal-head h3
{
  margin:0;
  font-size:24px;
  line-height:1.1;
  letter-spacing:-.035em
}
.mail-modal-head p
{
  margin:7px 0 0;
  color:var(--muted);
  font-weight:650
}
.mail-source-wizard .close-btn
{
  flex:0 0 auto
}
.mail-wizard-layout
{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  background:#f8fafc
}
.mail-wizard-sidebar
{
  border-right:1px solid var(--line);
  padding:18px;
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:9px;
  overflow:auto
}
.mail-wizard-title
{
  font-weight:900;
  color:#0f172a;
  margin-bottom:4px
}
.mail-wizard-help
{
  margin-top:auto;
  padding:12px;
  border-radius:16px;
  background:var(--brand-soft);
  color:#075f5c;
  font-size:13px;
  line-height:1.35
}
.mail-wizard-step
{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:10px 11px;
  text-align:left;
  font-weight:850;
  color:#334155;
  cursor:pointer
}
.mail-wizard-step b
{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:999px;
  background:#f1f5f9;
  color:#64748b
}
.mail-wizard-step.is-active
{
  border-color:rgba(10,186,181,.45);
  background:var(--brand-soft);
  color:#075f5c;
  box-shadow:0 8px 18px rgba(10,186,181,.10)
}
.mail-wizard-step.is-active b
{
  background:var(--brand-primary);
  color:#fff
}
.mail-wizard-content
{
  min-width:0;
  overflow:auto;
  padding:22px 26px 96px
}
.mail-wizard-panel
{
  display:none;
  max-width:760px;
  margin:0 auto
}
.mail-wizard-panel.is-active
{
  display:block
}
.mail-panel-title
{
  margin-bottom:18px
}
.mail-panel-title h4
{
  margin:0;
  font-size:22px;
  letter-spacing:-.03em
}
.mail-panel-title p
{
  margin:7px 0 0;
  color:var(--muted);
  font-weight:650;
  line-height:1.4
}
.mail-form-grid
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px
}
.mail-field
{
  display:grid;
  gap:7px;
  font-size:13px;
  font-weight:850;
  color:#334155
}
.mail-field input,
.mail-field select
{
  width:100%;
  min-width:0;
  height:46px;
  border:1px solid var(--line);
  border-radius:15px;
  padding:10px 12px;
  background:#fff;
  color:var(--text);
  outline:none
}
.mail-field em
{
  font-style:normal;
  font-size:12px;
  line-height:1.35;
  color:var(--muted);
  font-weight:650
}
/* END frontend/public/css/admin-mail-part-01.css */

/* BEGIN frontend/public/css/admin-mail-part-02.css */
.mail-field input:focus,
.mail-field select:focus,
.mail-branch-table input:focus,
.mail-branch-table select:focus
{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 4px rgba(10,186,181,.10)
}
.mail-help
{
  margin:10px 0 0;
  color:var(--muted);
  font-size:13px
}
.mail-check-grid
{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
  margin-top:16px
}
.mail-check-grid label
{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-weight:850;
  color:#334155
}
.mail-check-grid input
{
  width:18px;
  height:18px;
  accent-color:var(--brand-primary)
}
.mail-business-hints
{
  display:grid;
  gap:8px;
  margin:16px 0 4px
}
.mail-business-hints span
{
  padding:11px 13px;
  border-radius:15px;
  background:#fff;
  border:1px solid var(--line);
  color:#475569
}
.mail-business-hints b
{
  color:#075f5c
}
.mail-mapping-head
{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin:4px 0 14px
}
.mail-mapping-head p
{
  margin:4px 0 0;
  color:var(--muted);
  font-size:13px
}
.mail-branch-table-wrap
{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff
}
.mail-branch-table
{
  width:100%;
  border-collapse:collapse
}
.mail-branch-table th
{
  border-bottom:1px solid var(--line);
  padding:10px;
  text-align:left;
  vertical-align:middle;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted)
}
.mail-branch-table td
{
  border-bottom:1px solid var(--line);
  padding:10px;
  text-align:left;
  vertical-align:middle
}
.mail-branch-table tr:last-child td
{
  border-bottom:0
}
.mail-branch-table input,
.mail-branch-table select
{
  width:100%;
  min-width:180px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  background:#fff
}
.mail-branch-row-actions
{
  width:110px;
  text-align:right
}
.mail-file-input
{
  display:grid;
  gap:8px;
  font-size:13px;
  font-weight:850;
  color:#334155
}
.mail-file-input input
{
  border:1px dashed #cbd5e1;
  border-radius:16px;
  padding:13px;
  background:#fff
}
.mail-action-row
{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px
}
.mail-action-row .btn:disabled,
.mail-wizard-actions .btn:disabled
{
  opacity:.48;
  cursor:not-allowed
}
.mail-disabled-note
{
  margin-top:12px;
  padding:11px 13px;
  border-radius:14px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#9a3412;
  font-weight:750
}
.mail-disabled-note.is-hidden
{
  display:none
}
.mail-prices-output
{
  margin-top:14px;
  max-height:300px;
  overflow:auto;
  padding:13px 14px;
  border-radius:16px;
  background:#0f172a;
  color:#e5e7eb;
  font-size:12px;
  white-space:pre-wrap
}
.mail-prices-output.is-empty
{
  background:#fff;
  color:var(--muted);
  border:1px dashed #cbd5e1
}
.mail-finish-card
{
  padding:18px;
  border-radius:20px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.04)
}
.mail-finish-card h4
{
  margin:0 0 8px
}
.mail-finish-card p
{
  margin:0 0 12px;
  color:var(--muted);
  font-weight:650
}
.mail-finish-card ul
{
  margin:0;
  padding-left:20px;
  color:#334155;
  line-height:1.55
}
/* END frontend/public/css/admin-mail-part-02.css */

/* BEGIN frontend/public/css/admin-mail-part-03.css */
.mail-sticky-actions
{
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:14px 26px;
  background:rgba(255,255,255,.97);
  border-top:1px solid var(--line);
  backdrop-filter:blur(8px)
}
@media(max-width:900px)
{
  #mail-prices-modal
  {
    padding:10px
  }
  .mail-source-modal
  {
    width:calc(100vw - 20px);
    height:calc(100vh - 20px);
    border-radius:22px
  }
  .mail-modal-head
  {
    padding:18px
  }
  .mail-wizard-layout
  {
    grid-template-columns:1fr
  }
  .mail-wizard-sidebar
  {
    border-right:0;
    border-bottom:1px solid var(--line);
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-height:230px
  }
  .mail-wizard-title,
  .mail-wizard-help
  {
    grid-column:1/-1
  }
  .mail-wizard-content
  {
    padding:18px 16px 86px
  }
  .mail-form-grid
  {
    grid-template-columns:1fr
  }
  .mail-sticky-actions
  {
    padding:12px 14px;
    flex-wrap:wrap
  }
  .mail-panel-title h4
  {
    font-size:20px
  }
}
.mail-prices
{
  display:grid;
  gap:14px
}
.mail-runtime-banner
{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);
  gap:14px;
  margin:14px 0;
  padding:16px;
  border-radius:20px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.04)
}
.mail-runtime-banner b
{
  display:block;
  font-size:16px;
  margin-bottom:5px;
  color:#0f172a
}
.mail-runtime-banner span
{
  display:block;
  color:#475569;
  font-weight:700;
  line-height:1.45
}
.mail-runtime-banner ul
{
  margin:10px 0 0;
  padding-left:18px;
  color:#7f1d1d;
  font-weight:750
}
.mail-runtime-banner dl
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0
}
.mail-runtime-banner dl div
{
  padding:10px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid rgba(226,232,240,.9)
}
.mail-runtime-banner dt
{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#64748b;
  font-weight:900
}
.mail-runtime-banner dd
{
  margin:4px 0 0;
  color:#0f172a;
  font-weight:900
}
.mail-runtime-banner.danger
{
  background:#fff7ed;
  border-color:#fdba74
}
.mail-runtime-banner.danger b
{
  color:#9a3412
}
.mail-runtime-banner.danger dl div
{
  background:#fff
}
.mail-runtime-banner.ok
{
  background:#f0fdfa;
  border-color:#99f6e4
}
.mail-runtime-banner.warning
{
  background:#fffbeb;
  border-color:#fde68a
}
.mail-last-state.error
{
  color:#9f1239;
  font-weight:800
}
.mail-last-state.ok
{
  color:#047857;
  font-weight:800
}
@media(max-width:900px)
{
  .mail-runtime-banner
  {
    grid-template-columns:1fr
  }
  .mail-runtime-banner dl
  {
    grid-template-columns:1fr
  }
}
.mail-verify-stack
{
  display:grid;
  gap:14px
}
.mail-verify-card
{
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.035)
}
.mail-verify-card h4
{
  margin:0 0 7px;
  font-size:16px;
  color:#0f172a
}
.mail-verify-card p
{
  margin:0;
  color:#64748b;
  font-size:13px;
  font-weight:650;
  line-height:1.45
}
.mail-verify-card-primary
{
  border-color:rgba(10,186,181,.35);
  background:var(--brand-soft)
}
/* END frontend/public/css/admin-mail-part-03.css */

/* BEGIN frontend/public/css/admin-mail-part-04.css */
.mail-verify-card-muted
{
  background:#f8fafc
}
.mail-verify-card .mail-file-input
{
  margin-top:12px
}
/* Mail Prices global monitor runtime control block. */
.mail-monitor-card
{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(320px,.95fr);
  gap:14px;
  margin:14px 0;
  padding:16px;
  border-radius:20px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.04)
}
.mail-monitor-main
{
  min-width:0
}
.mail-monitor-title-row
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px
}
.mail-monitor-title-row h4
{
  margin:0 0 5px;
  font-size:18px;
  letter-spacing:-.025em;
  color:#0f172a
}
.mail-monitor-title-row b
{
  display:block;
  color:#0f172a;
  font-size:15px
}
.mail-monitor-main p
{
  margin:9px 0 0;
  color:#475569;
  font-weight:700;
  line-height:1.45
}
.mail-monitor-main ul
{
  margin:10px 0 0;
  padding-left:18px;
  color:#7f1d1d;
  font-weight:750
}
.mail-monitor-metrics
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0
}
.mail-monitor-metrics div
{
  padding:10px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid rgba(226,232,240,.9)
}
.mail-monitor-metrics dt
{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#64748b;
  font-weight:900
}
.mail-monitor-metrics dd
{
  margin:4px 0 0;
  color:#0f172a;
  font-weight:900;
  overflow-wrap:anywhere
}
.mail-monitor-card.ok
{
  background:#f0fdfa;
  border-color:#99f6e4
}
.mail-monitor-card.ok .mail-monitor-metrics div
{
  background:#fff
}
.mail-monitor-card.ok .mail-monitor-title-row b
{
  color:#047857
}
.mail-monitor-card.danger
{
  background:#fff7ed;
  border-color:#fdba74
}
.mail-monitor-card.danger .mail-monitor-title-row b
{
  color:#9a3412
}
.mail-monitor-card.danger .mail-monitor-metrics div
{
  background:#fff
}
.mail-monitor-card.warning
{
  background:#fffbeb;
  border-color:#fde68a
}
.mail-monitor-card.warning .mail-monitor-title-row b
{
  color:#92400e
}
.mail-monitor-card .btn:disabled
{
  opacity:.55;
  cursor:not-allowed
}
@media(max-width:900px)
{
  .mail-monitor-card
  {
    grid-template-columns:1fr
  }
  .mail-monitor-title-row
  {
    flex-direction:column
  }
  .mail-monitor-metrics
  {
    grid-template-columns:1fr
  }
}
/* END frontend/public/css/admin-mail-part-04.css */

/* END frontend/public/css/admin-mail.css */

/* BEGIN frontend/public/css/admin-security.css */
/* BEGIN frontend/public/css/admin-security-part-01.css */
/* Admin Security Console UI ownership. */
.security-console
{
  display:grid;
  gap:14px;
  min-width:0
}
.security-page-head
{
  margin-bottom:0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px
}
.security-page-head h3
{
  margin:0 0 4px
}
.security-page-head p
{
  margin:0
}
.security-summary-grid
{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px
}
.security-summary-card
{
  position:relative;
  min-height:82px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8fafc;
  padding:12px 14px;
  display:grid;
  align-content:center;
  gap:4px;
  box-shadow:0 8px 18px rgba(15,23,42,.05);
  overflow:hidden
}
.security-summary-card:before
{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:#93c5fd
}
.security-summary-card span
{
  font-size:11px;
  line-height:1.15;
  text-transform:uppercase;
  color:#64748b;
  font-weight:900;
  letter-spacing:.055em
}
.security-summary-card b
{
  font-size:26px;
  line-height:1;
  letter-spacing:-.05em;
  color:var(--text)
}
.security-summary-card--critical:before,
.security-summary-card--failed:before,
.security-summary-card--blocked:before
{
  background:#ef4444
}
.security-summary-card--warning:before,
.security-summary-card--file:before,
.security-summary-card--import:before
{
  background:#f59e0b
}
.security-summary-card--total:before
{
  background:#3b82f6
}
.security-filters
{
  padding:14px;
  display:grid;
  gap:12px
}
.security-filters-row
{
  display:grid;
  gap:10px;
  align-items:end
}
.security-filters-row--primary
{
  grid-template-columns:repeat(5,minmax(128px,1fr))
}
.security-filters-row--secondary
{
  grid-template-columns:minmax(190px,1fr) minmax(170px,1fr) minmax(260px,2fr) auto
}
.security-filters label
{
  display:grid;
  gap:6px;
  font-size:12px;
  font-weight:900;
  color:#334155
}
.security-filters input,
.security-filters select
{
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px 10px;
  background:#fff;
  color:var(--text);
  font:inherit;
  min-height:38px
}
.security-filter-actions
{
  display:flex;
  gap:8px;
  align-items:end;
  justify-content:flex-end
}
.security-events-card
{
  overflow:hidden
}
.security-table-wrap
{
  width:100%;
  overflow-x:auto
}
.security-table
{
  font-size:13px
}
.security-table th
{
  font-size:11px;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:#64748b;
  vertical-align:middle;
  padding-top:9px;
  padding-bottom:9px
}
.security-table td
{
  vertical-align:middle;
  padding-top:9px;
  padding-bottom:9px
}
.security-table small
{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:11px;
  font-weight:750;
  overflow-wrap:anywhere
}
.security-row
{
  border-left:4px solid transparent
}
.security-row--success
{
  border-left-color:#22c55e
}
.security-row--warning
{
  border-left-color:#f59e0b
}
.security-row--failed,
.security-row--critical
{
  border-left-color:#ef4444
}
.security-row--auth
{
  border-left-color:#6366f1
}
.security-row--mail
{
  border-left-color:#0ea5e9
}
.security-row--import
{
  border-left-color:#10b981
}
/* END frontend/public/css/admin-security-part-01.css */

/* BEGIN frontend/public/css/admin-security-part-02.css */
.security-time
{
  white-space:nowrap
}
.security-time b
{
  display:block
}
.security-time span
{
  display:block;
  color:#64748b;
  font-weight:800
}
.security-event-cell
{
  min-width:220px
}
.security-actor-cell
{
  max-width:190px;
  overflow:hidden;
  text-overflow:ellipsis
}
.security-target-cell
{
  max-width:320px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.security-badge
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  font-weight:950;
  border:1px solid #e2e8f0;
  background:#f8fafc;
  color:#334155;
  white-space:nowrap;
  line-height:1.2
}
.security-badge--event
{
  font-size:12px;
  padding:5px 9px
}
.security-tone--success,
.security-tone--processed
{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534
}
.security-tone--info,
.security-tone--notice,
.security-tone--started,
.security-tone--queued,
.security-tone--auth,
.security-tone--mail,
.security-tone--total
{
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1d4ed8
}
.security-tone--warning,
.security-tone--admin,
.security-tone--file,
.security-tone--import
{
  background:#fffbeb;
  border-color:#fde68a;
  color:#92400e
}
.security-tone--critical,
.security-tone--failed,
.security-tone--blocked,
.security-tone--abuse,
.security-tone--security
{
  background:#fef2f2;
  border-color:#fecaca;
  color:#991b1b
}
.security-tone--system,
.security-tone--neutral,
.security-tone--unknown
{
  background:#f8fafc;
  border-color:#e2e8f0;
  color:#475569
}
.security-pagination
{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  margin-top:12px;
  color:#64748b;
  font-weight:850
}
.security-state-card
{
  border:1px dashed #cbd5e1;
  border-radius:16px;
  background:#f8fafc;
  padding:18px;
  display:grid;
  gap:6px;
  color:#475569
}
.security-state-card b
{
  color:var(--text)
}
.security-state-card--danger
{
  border-color:#fecaca;
  background:#fef2f2;
  color:#991b1b
}
.security-state-card--loading
{
  border-color:#bfdbfe;
  background:#eff6ff;
  color:#1d4ed8
}
.security-drawer.is-hidden
{
  display:none
}
.security-drawer-open
{
  overflow:hidden
}
.security-drawer__overlay
{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.34);
  z-index:80;
  backdrop-filter:blur(1px)
}
.security-drawer__panel
{
  position:fixed;
  top:0;
  right:0;
  z-index:81;
  width:min(680px,96vw);
  height:100vh;
  background:#fff;
  box-shadow:-28px 0 60px rgba(15,23,42,.22);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border-left:5px solid #94a3b8
}
.security-drawer--success
{
  border-left-color:#22c55e
}
.security-drawer--warning
{
  border-left-color:#f59e0b
}
.security-drawer--failed,
.security-drawer--critical
{
  border-left-color:#ef4444
}
.security-drawer--auth
{
  border-left-color:#6366f1
}
.security-drawer--mail
{
  border-left-color:#0ea5e9
}
.security-drawer--import
{
  border-left-color:#10b981
}
.security-drawer--neutral
{
  border-left-color:#94a3b8
}
/* END frontend/public/css/admin-security-part-02.css */

/* BEGIN frontend/public/css/admin-security-part-03.css */
.security-drawer__header
{
  padding:18px 18px 14px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  background:linear-gradient(180deg,#fff,#f8fafc)
}
.security-drawer__title h3
{
  margin:0 0 4px;
  font-size:20px;
  letter-spacing:-.02em
}
.security-drawer__title p
{
  margin:0;
  color:#64748b;
  font-weight:850;
  overflow-wrap:anywhere
}
.security-drawer__actions
{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap
}
.security-drawer__body
{
  min-height:0;
  overflow:auto;
  padding:16px 18px 22px;
  display:grid;
  gap:14px
}
.security-drawer__summary
{
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
  border-radius:16px;
  padding:12px 14px;
  line-height:1.35
}
.security-drawer__section
{
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#fff;
  padding:12px;
  display:grid;
  gap:10px
}
.security-drawer__section h4
{
  margin:0;
  color:#0f172a;
  font-size:14px
}
.security-drawer__kv-grid
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px
}
.security-drawer__kv-grid--3
{
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.security-drawer__kv
{
  border:1px solid #e5e7eb;
  border-radius:13px;
  background:#f8fafc;
  padding:9px 10px;
  display:grid;
  gap:4px;
  min-width:0
}
.security-drawer__kv span
{
  font-size:11px;
  line-height:1.15;
  text-transform:uppercase;
  color:#64748b;
  font-weight:950;
  letter-spacing:.045em
}
.security-drawer__kv b
{
  font-size:14px;
  line-height:1.25;
  overflow-wrap:anywhere
}
.security-drawer__message
{
  margin:0;
  line-height:1.45;
  overflow-wrap:anywhere
}
.security-drawer__ua
{
  grid-column:1/-1
}
.security-drawer__ua-toggle
{
  justify-self:start;
  padding:0;
  border:0;
  background:transparent;
  color:#2563eb;
  font:inherit;
  font-weight:900;
  cursor:pointer
}
.security-drawer__ua-full
{
  display:block;
  margin-top:6px;
  background:#0f172a;
  color:#e2e8f0;
  border-radius:12px;
  padding:10px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:12px
}
.security-drawer__metadata
{
  min-width:0
}
.security-empty-note
{
  margin:0;
  color:#64748b
}
.security-metadata-grid
{
  display:grid;
  gap:8px
}
.security-metadata-row
{
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f8fafc;
  padding:9px 10px;
  display:grid;
  grid-template-columns:minmax(120px,190px) minmax(0,1fr);
  gap:10px;
  min-width:0
}
.security-metadata-row b,
.security-metadata-pair b
{
  font-size:11px;
  text-transform:uppercase;
  color:#64748b;
  letter-spacing:.04em
}
.security-metadata-value
{
  font-weight:750;
  overflow-wrap:anywhere
}
.security-metadata-list
{
  margin:0;
  padding-left:18px
}
.security-metadata-nested
{
  display:grid;
  gap:6px
}
.security-metadata-pair
{
  display:grid;
  grid-template-columns:minmax(110px,170px) minmax(0,1fr);
  gap:8px;
  border-top:1px solid #e5e7eb;
  padding-top:6px
}
.security-metadata-pair:first-child
{
  border-top:0;
  padding-top:0
}
/* END frontend/public/css/admin-security-part-03.css */

/* BEGIN frontend/public/css/admin-security-part-04.css */
@media(max-width:1100px)
{
  .security-filters-row--primary
  {
    grid-template-columns:repeat(3,minmax(140px,1fr))
  }
  .security-filters-row--secondary
  {
    grid-template-columns:repeat(2,minmax(180px,1fr))
  }
  .security-filter-actions
  {
    justify-content:flex-start
  }
}
@media(max-width:720px)
{
  .security-page-head
  {
    display:grid
  }
  .security-summary-grid
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .security-filters-row--primary,
  .security-filters-row--secondary
  {
    grid-template-columns:1fr
  }
  .security-filter-actions
  {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .security-pagination
  {
    justify-content:flex-start;
    flex-wrap:wrap
  }
  .security-drawer__panel
  {
    width:100vw
  }
  .security-drawer__header
  {
    display:grid
  }
  .security-drawer__actions
  {
    justify-content:flex-start
  }
  .security-drawer__kv-grid,
  .security-drawer__kv-grid--3,
  .security-metadata-row,
  .security-metadata-pair
  {
    grid-template-columns:1fr
  }
}
@media(max-width:460px)
{
  .security-summary-grid
  {
    grid-template-columns:1fr
  }
}
/* END frontend/public/css/admin-security-part-04.css */

/* END frontend/public/css/admin-security.css */

/* BEGIN frontend/public/css/auth-sessions.css */
/* PASS 85.51.R3.R1 — active refresh sessions UI owner. */
.auth-sessions-panel,
.auth-sessions-maintenance-card
{
  display: grid;
  gap: 14px;
}
.auth-sessions-head,
.auth-sessions-admin-actions
{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.auth-sessions-head h3,
.auth-sessions-maintenance-card h3
{
  margin: 0;
}
.auth-sessions-head p,
.auth-sessions-maintenance-note
{
  margin: 4px 0 0;
}
.auth-sessions-list
{
  display: grid;
  gap: 10px;
}
.auth-session-card
{
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.86);
  padding: 12px 14px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
}
.auth-session-card.is-current
{
  border-color: rgba(37, 99, 235, 0.28);
  background: rgba(239, 246, 255, 0.82);
}
.auth-session-card.is-revoked
{
  background: rgba(248, 250, 252, 0.82);
  color: #64748b;
}
.auth-session-card__title
{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.auth-session-card__title b
{
  font-size: 14px;
  color: #0f172a;
}
.auth-session-device
{
  margin: 6px 0 0;
  color: #334155;
  font-size: 13px;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.auth-session-meta
{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-top: 10px;
  color: #64748b;
  font-size: 12px;
}
.auth-session-badge
{
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.auth-session-badge.is-current
{
  background: rgba(37, 99, 235, 0.12);
  color: #1d4ed8;
}
.auth-session-badge.is-active
{
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
}
.auth-session-badge.is-revoked,
.auth-session-badge.is-inactive
{
  background: rgba(100, 116, 139, 0.14);
  color: #475569;
}
.auth-sessions-empty,
.auth-sessions-loading
{
  border: 1px dashed rgba(100, 116, 139, 0.28);
  border-radius: 14px;
  padding: 14px;
  color: #64748b;
  background: rgba(248, 250, 252, 0.72);
}
.auth-sessions-notice
{
  margin: 0;
}
.admin-auth-sessions-drawer .admin-auth-sessions-card
{
  width: min(760px, calc(100vw - 32px));
  max-height: min(82vh, 760px);
  overflow: auto;
}
.auth-sessions-admin-actions
{
  margin: 0 0 14px;
  justify-content: flex-end;
}
.auth-sessions-danger-btn
{
  border: 0;
  border-radius: 10px;
  padding: 9px 12px;
  background: #dc2626;
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}
.auth-sessions-danger-btn:hover
{
  background: #b91c1c;
}
@media (max-width: 720px)
{
  .auth-sessions-head,
  .auth-sessions-admin-actions
  {
    align-items: stretch;
    flex-direction: column;
  }
  .auth-session-device
  {
    white-space: normal;
  }
}
/* END frontend/public/css/auth-sessions.css */

/* BEGIN frontend/public/css/admin-local-agents.css */
/* BEGIN frontend/public/css/admin-local-agents-part-01.css */
/* Admin Local Agents UI ownership. */
.local-agents-page
{
  display:grid;
  gap:16px;
  min-width:0;
  max-width:100%
}
.local-agents-head
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:2px 0 4px
}
.local-agents-head h2
{
  margin:0;
  font-size:28px;
  line-height:1.15
}
.local-agents-head p
{
  margin:6px 0 0;
  color:var(--muted);
  font-weight:800;
  line-height:1.45
}
.local-agents-card
{
  border:1px solid var(--line);
  background:#fff;
  border-radius:22px;
  padding:14px 16px;
  box-shadow:0 12px 28px rgba(15,23,42,.04);
  min-width:0;
  max-width:100%;
  overflow:hidden
}
.local-agents-filters
{
  display:grid;
  grid-template-columns:minmax(220px,1.4fr) minmax(150px,.8fr) minmax(190px,1fr) minmax(190px,1fr) auto;
  gap:12px;
  align-items:end
}
.local-agents-filters label
{
  display:grid;
  gap:6px;
  font-size:12px;
  color:#334155;
  font-weight:900
}
.local-agents-filters input,
.local-agents-filters select,
.local-agent-form input,
.local-agent-form select,
.local-agent-form textarea
{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  font-weight:800;
  background:#fff
}
.local-agents-filter-actions
{
  display:flex;
  gap:9px;
  justify-content:flex-end;
  align-items:center
}
.local-agents-table-card .admin-section-head
{
  align-items:center
}
.local-agent-count
{
  color:var(--muted);
  font-weight:900
}
.local-agents-table-wrap
{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto
}
.local-agents-table
{
  min-width:1180px;
  width:100%;
  table-layout:fixed
}
.local-agents-table th
{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  padding:11px 10px
}
.local-agents-table td
{
  padding:11px 10px;
  vertical-align:middle;
  border-top:1px solid #edf2f7;
  overflow-wrap:anywhere;
  overflow:visible
}
.local-agents-table th:nth-child(1),
.local-agents-table td:nth-child(1)
{
  width:190px
}
.local-agents-table th:nth-child(2),
.local-agents-table td:nth-child(2)
{
  width:160px
}
.local-agents-table th:nth-child(3),
.local-agents-table td:nth-child(3)
{
  width:145px
}
.local-agents-table th:nth-child(5),
.local-agents-table td:nth-child(5)
{
  width:150px
}
.local-agents-table th:nth-child(9),
.local-agents-table td:nth-child(9)
{
  width:250px
}
.local-agents-table tr:hover
{
  background:#f8fbff
}
.local-agent-muted
{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  margin-top:3px
}
.local-agent-badge
{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap
}
.local-agent-badge--success
{
  background:#dcfce7;
  color:#047857
}
.local-agent-badge--danger
{
  background:#fee2e2;
  color:#b91c1c
}
.local-agent-badge--neutral
{
  background:#f1f5f9;
  color:#475569
}
.local-agent-actions
{
  display:inline-flex;
  gap:8px;
  flex-wrap:nowrap;
  overflow:visible
}
.local-agents-empty
{
  display:grid;
  gap:8px;
  justify-items:center;
  text-align:center;
  color:var(--muted);
  padding:34px;
  font-weight:800
}
.local-agents-empty b
{
  font-size:18px;
  color:#0f172a
}
/* END frontend/public/css/admin-local-agents-part-01.css */

/* BEGIN frontend/public/css/admin-local-agents-part-02.css */
.local-agents-empty--error b
{
  color:#b91c1c
}
.local-agent-modal-shell,
.local-agent-drawer-shell
{
  position:fixed;
  inset:0;
  z-index:90;
  display:block
}
.local-agent-modal-overlay
{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.30);
  backdrop-filter:blur(2px)
}
.local-agent-modal
{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(620px,94vw);
  max-height:92vh;
  overflow:auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 24px 72px rgba(15,23,42,.28);
  display:grid;
  align-content:start
}
.local-agent-modal header,
.local-agent-drawer header
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px;
  border-bottom:1px solid var(--line);
  background:#fff
}
.local-agent-modal h3,
.local-agent-drawer h3
{
  margin:0;
  font-size:23px
}
.local-agent-modal p,
.local-agent-drawer p
{
  margin:5px 0 0;
  color:var(--muted);
  font-weight:800;
  line-height:1.45
}
.local-agent-modal header button,
.local-agent-drawer header button
{
  border:0;
  background:#eff6ff;
  color:#1d4ed8;
  border-radius:14px;
  min-width:42px;
  height:42px;
  font-size:24px;
  font-weight:900;
  cursor:pointer
}
.local-agent-form
{
  display:grid;
  gap:13px;
  padding:18px 22px 22px
}
.local-agent-form label
{
  display:grid;
  gap:7px;
  font-weight:900
}
.local-agent-form textarea[name="notes"]
{
  resize:vertical
}
.local-agent-note,
.local-agent-doc-card
{
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  color:#334155;
  font-weight:800;
  line-height:1.45
}
.local-agent-form footer,
.local-agent-modal footer
{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding-top:8px
}
.local-agent-token-modal
{
  width:min(720px,94vw)
}
.local-agent-token-warning
{
  margin:18px 22px 0;
  background:#fff7ed;
  color:#9a3412;
  border:1px solid #fed7aa;
  border-radius:16px;
  padding:12px;
  font-weight:800;
  line-height:1.45;
  display:grid;
  gap:5px
}
.local-agent-token-box
{
  margin:14px 22px 0;
  padding:14px;
  border-radius:16px;
  background:#0f172a;
  color:#e2e8f0;
  white-space:pre-wrap;
  word-break:break-all;
  font-weight:900
}
.local-agent-token-modal footer,
.local-agent-confirm-modal footer
{
  padding:18px 22px 22px
}
.local-agent-drawer
{
  position:absolute;
  right:0;
  top:0;
  height:100vh;
  width:min(760px,96vw);
  background:#fff;
  box-shadow:-22px 0 60px rgba(15,23,42,.22);
  overflow:auto;
  display:grid;
  align-content:start
}
.local-agent-detail-body
{
  display:grid;
  gap:16px;
  padding:18px 22px 28px
}
.local-agent-detail-grid
{
  display:grid;
  grid-template-columns:repeat(3,minmax(150px,1fr));
  gap:10px;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px
}
.local-agent-detail-grid div
{
  display:grid;
  gap:5px;
  min-width:0
}
.local-agent-detail-grid b
{
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em
}
.local-agent-detail-grid span
{
  font-weight:800;
  overflow-wrap:anywhere
}
.local-agent-doc-card h4
{
  margin:0 0 8px
}
.local-agent-doc-card ol
{
  margin:0;
  padding-left:19px
}
.local-agent-doc-card li
{
  margin:4px 0
}
/* END frontend/public/css/admin-local-agents-part-02.css */

/* BEGIN frontend/public/css/admin-local-agents-part-03.css */
.local-agent-confirm-text
{
  margin:18px 22px 0;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  color:#334155;
  font-weight:800;
  line-height:1.45
}
.danger-btn
{
  border:0;
  border-radius:12px;
  background:#dc2626;
  color:#fff;
  font-weight:900;
  padding:10px 13px;
  cursor:pointer
}
.danger-btn:hover
{
  background:#b91c1c
}
@media(max-width:1100px)
{
  .local-agents-filters
  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .local-agents-filter-actions
  {
    justify-content:flex-start
  }
}
@media(max-width:760px)
{
  .local-agents-head
  {
    display:grid
  }
  .local-agents-filters
  {
    grid-template-columns:1fr
  }
  .local-agents-filter-actions
  {
    display:grid
  }
  .local-agent-detail-grid
  {
    grid-template-columns:1fr
  }
  .local-agent-modal
  {
    top:calc(50% + env(safe-area-inset-top)/2);
    width:96vw
  }
  .local-agent-modal footer
  {
    display:grid
  }
  .local-agent-drawer
  {
    width:100vw
  }
}
/* END frontend/public/css/admin-local-agents-part-03.css */

/* END frontend/public/css/admin-local-agents.css */

/* BEGIN frontend/public/css/admin-actions.css */
/* Shared admin action menu contract: primary action stays visible,
secondary/lifecycle actions live in overflow menu. */
.admin-row-actions
{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  flex-wrap:nowrap;
  min-width:0;
  overflow:visible
}
.admin-row-action-primary
{
  white-space:nowrap;
  flex:0 0 auto
}
.admin-row-action-menu
{
  position:relative;
  display:inline-flex;
  flex:0 0 auto;
  overflow:visible;
  z-index:2
}
.admin-row-action-menu summary,
.admin-row-action-menu__trigger
{
  list-style:none;
  width:34px;
  height:34px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
  line-height:1;
  color:#111827
}
.admin-row-action-menu summary::-webkit-details-marker,
.admin-row-action-menu__trigger::-webkit-details-marker
{
  display:none
}
.admin-row-action-menu[open] summary,
.admin-row-action-menu[open] .admin-row-action-menu__trigger
{
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1d4ed8
}
.admin-row-action-menu__list
{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  z-index:70;
  min-width:180px;
  display:grid;
  gap:4px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
  padding:6px;
  box-shadow:0 18px 42px rgba(15,23,42,.16)
}
.admin-row-action-menu__list button
{
  border:0;
  background:transparent;
  text-align:left;
  padding:9px 10px;
  border-radius:10px;
  font-weight:850;
  cursor:pointer;
  color:#111827;
  white-space:nowrap
}
.admin-row-action-menu__list button:hover
{
  background:#f8fafc
}
.admin-row-action-menu__list .admin-row-action-menu__danger,
.admin-row-action-menu__danger
{
  color:#b42318
}
.admin-row-action-menu__list .admin-row-action-menu__danger:hover
{
  background:#fff1f2;
  color:#991b1b
}
.mail-source-actions
{
  flex-wrap:nowrap;
  overflow:visible
}
.admin-user-detail-actions
{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  overflow:visible
}
.admin-table td
{
  overflow:visible
}
@media(max-width:980px)
{
  .admin-user-actions
  {
    flex-wrap:nowrap
  }
  .admin-user-card-actions
  {
    justify-content:flex-start
  }
  .admin-row-action-menu__list
  {
    right:auto;
    left:0
  }
}
/* END frontend/public/css/admin-actions.css */

/* BEGIN frontend/public/css/admin-legal.css */
.admin-legal-page
{
  display:grid;
  gap:18px;
}
.admin-legal-layout
{
  display:grid;
  grid-template-columns:minmax(220px,300px) 1fr;
  gap:18px;
  align-items:start;
}
.admin-legal-nav
{
  display:grid;
  gap:8px;
  border:1px solid #dbe3ee;
  background:#fff;
  border-radius:18px;
  padding:14px;
}
.admin-legal-nav button
{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:12px;
  padding:10px 12px;
  text-align:left;
  font-weight:850;
  color:#334155;
  cursor:pointer;
}
.admin-legal-nav button.active
{
  background:#eff6ff;
  border-color:#93c5fd;
  color:#1d4ed8;
}
.admin-legal-card
{
  padding:18px;
}
.admin-legal-editor
{
  display:grid;
  gap:14px;
}
.admin-legal-form-grid
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.admin-legal-form-grid label
{
  display:grid;
  gap:6px;
  font-weight:800;
  color:#334155;
}
.admin-legal-form-grid input,
.admin-legal-form-grid textarea
{
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:10px 12px;
  font:inherit;
  background:#fff;
  color:#0f172a;
}
.admin-legal-full
{
  grid-column:1/-1;
}
.admin-legal-form-grid label.admin-legal-check
{
  display:flex;
  grid-column:1/-1;
  align-items:center;
  gap:8px;
}
.admin-legal-check input
{
  width:auto;
}
.admin-legal-meta
{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  color:#64748b;
  font-weight:700;
}
.admin-legal-actions
{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.admin-legal-preview
{
  border:1px solid #dbe3ee;
  background:#f8fafc;
  border-radius:16px;
  padding:16px;
}
.admin-legal-preview-body h3
{
  margin:12px 0 8px;
}
.admin-legal-preview-body p
{
  margin:0 0 8px;
  line-height:1.55;
  color:#334155;
}
.admin-legal-preview-body ul
{
  margin:0 0 10px 18px;
}
@media (max-width: 860px)
{
  .admin-legal-layout,
  .admin-legal-form-grid
  {
    grid-template-columns:1fr;
  }
}
/* END frontend/public/css/admin-legal.css */

/* BEGIN frontend/public/css/notes.css */
/* BEGIN frontend/public/css/notes-part-01.css */
/* Notes UI ownership. */
.article-copy-wrap
{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap
}
.copy-article-btn
{
  width:24px;
  height:24px;
  min-width:24px;
  border:1px solid rgba(20,184,166,.28);
  background:rgba(20,184,166,.08);
  color:#0f766e;
  border-radius:9px;
  font-weight:900;
  line-height:0;
  cursor:pointer;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  vertical-align:middle
}
.copy-article-btn:hover
{
  background:rgba(20,184,166,.18)
}
.note-add-btn
{
  white-space:nowrap
}
.add-note-card
{
  max-width:560px
}
.add-note-position
{
  display:grid;
  gap:4px;
  padding:12px 14px;
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#f8fafc;
  margin-bottom:14px
}
.add-note-position small
{
  color:#64748b
}
.field-inline
{
  display:grid;
  gap:6px;
  margin:12px 0;
  font-weight:800
}
.field-inline input
{
  border:1px solid #dbe3ea;
  border-radius:12px;
  padding:10px 12px
}
.note-pick-list
{
  display:grid;
  gap:8px;
  margin-bottom:16px
}
.note-pick
{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid #dbe3ea;
  border-radius:14px;
  background:#fff;
  padding:12px 14px;
  text-align:left;
  cursor:pointer
}
.note-pick:hover,
.note-pick.last-used
{
  border-color:#14b8a6;
  background:#effdf9
}
.note-pick small
{
  color:#64748b
}
.note-create-inline
{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px
}
.note-create-inline input
{
  border:1px solid #dbe3ea;
  border-radius:12px;
  padding:10px 12px
}
.notes-page-card
{
  max-width:1360px;
  margin:0 auto
}
.notes-layout
{
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:18px
}
.notes-sidebar,
.notes-detail
{
  border:1px solid #e5e7eb;
  border-radius:20px;
  background:#fff;
  padding:16px
}
.notes-create-box
{
  display:grid;
  gap:10px;
  margin-bottom:14px
}
.notes-create-box label
{
  display:grid;
  gap:6px;
  font-weight:800
}
.notes-create-box input
{
  border:1px solid #dbe3ea;
  border-radius:14px;
  padding:11px 12px
}
.notes-list
{
  display:grid;
  gap:8px
}
.notes-list-item
{
  border:0;
  border-radius:14px;
  padding:12px 42px 12px 12px;
  background:transparent;
  text-align:left;
  display:grid;
  gap:4px;
  cursor:pointer;
  width:100%
}
.notes-list-item.active
{
  border-color:#14b8a6;
  background:#ecfeff
}
.notes-list-item small,
.notes-empty
{
  color:#64748b
}
.notes-detail-head
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px
}
.notes-detail-head h2
{
  margin:0
}
.notes-actions
{
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
.notes-comment-label
{
  display:grid;
  gap:6px;
  font-weight:800;
  margin-bottom:10px
}
/* END frontend/public/css/notes-part-01.css */

/* BEGIN frontend/public/css/notes-part-02.css */
.notes-comment-label textarea
{
  border:1px solid #dbe3ea;
  border-radius:14px;
  padding:11px 12px;
  min-height:76px;
  resize:vertical;
  font-weight:500
}
.notes-inline-actions
{
  margin-bottom:14px
}
.notes-items-table th,
.notes-items-table td
{
  vertical-align:top
}
.notes-danger-btn
{
  border:1px solid #fecaca;
  background:#fff1f2;
  color:#be123c;
  border-radius:12px;
  padding:10px 14px;
  font-weight:800;
  cursor:pointer
}
@media(max-width:860px)
{
  .notes-layout
  {
    grid-template-columns:1fr
  }
  .note-create-inline
  {
    grid-template-columns:1fr
  }
}
.copy-article-btn svg
{
  width:13px;
  height:13px;
  display:block;
  fill:currentColor
}
.add-note-card--compact
{
  max-width:500px
}
.add-note-head
{
  align-items:flex-start
}
.add-note-head__actions
{
  display:flex;
  align-items:center;
  gap:8px
}
.add-note-position-card
{
  display:grid;
  gap:10px;
  border:1px solid #e5e7eb;
  border-radius:18px;
  background:#f8fafc;
  padding:12px;
  margin:12px 0
}
.add-note-position-card__main
{
  display:grid;
  gap:3px
}
.add-note-position-card__main b
{
  font-size:17px
}
.add-note-position-card__main span
{
  font-weight:800
}
.add-note-position-card__main small
{
  color:#64748b;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden
}
.add-note-position-card__meta
{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  color:#64748b;
  font-size:13px
}
.add-note-position-card__meta b
{
  color:#0f766e;
  font-size:16px
}
.add-note-row
{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:14px;
  align-items:start
}
.note-selector-wrap
{
  display:grid;
  gap:7px;
  font-weight:900;
  position:relative
}
.note-selector-current
{
  border:1px solid #dbe3ea;
  border-radius:14px;
  background:#fff;
  padding:10px 12px;
  display:grid;
  grid-template-columns:1fr auto auto;
  align-items:center;
  gap:8px;
  text-align:left;
  cursor:pointer
}
.note-selector-current span
{
  font-weight:900
}
.note-selector-current small
{
  color:#64748b
}
.note-selector-panel
{
  position:absolute;
  z-index:3;
  top:calc(100% + 8px);
  left:0;
  right:0;
  max-height:220px;
  overflow:auto;
  background:#fff;
  border:1px solid #dbe3ea;
  border-radius:16px;
  box-shadow:0 18px 45px rgba(15,23,42,.16);
  padding:8px
}
.note-selector-option
{
  width:100%;
  border:0;
  background:transparent;
  border-radius:12px;
  padding:10px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  text-align:left
}
.note-selector-option:hover,
.note-selector-option.active
{
  background:#ecfeff;
  color:#0f766e
}
.note-selector-option small
{
  color:#64748b
}
.note-selector-empty
{
  padding:12px;
  color:#64748b
}
.add-note-submit
{
  width:100%;
  margin-top:16px
}
.note-create-popover
{
  position:absolute;
  inset:0;
  z-index:6
}
/* END frontend/public/css/notes-part-02.css */

/* BEGIN frontend/public/css/notes-part-03.css */
.note-create-popover__backdrop
{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.22);
  border-radius:inherit
}
.note-create-popover__card
{
  position:absolute;
  right:18px;
  top:70px;
  width:min(340px,calc(100% - 36px));
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  box-shadow:0 20px 55px rgba(15,23,42,.22);
  padding:16px;
  display:grid;
  gap:12px
}
.note-create-popover__card h3
{
  margin:0
}
.note-create-popover__card input
{
  border:1px solid #dbe3ea;
  border-radius:12px;
  padding:11px 12px
}
.note-create-popover__actions
{
  display:flex;
  justify-content:flex-end;
  gap:8px
}
.note-print-btn
{
  display:inline-flex;
  align-items:center;
  gap:8px
}
.notes-list-item-wrap
{
  position:relative;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f8fafc;
  overflow:hidden
}
.notes-list-item-wrap.active
{
  border-color:#14b8a6;
  background:#ecfeff
}
.note-list-delete-btn
{
  position:absolute;
  right:8px;
  top:8px;
  width:28px;
  height:28px;
  border:0;
  border-radius:10px;
  background:#fff1f2;
  color:#be123c;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center
}
.note-list-delete-btn:hover
{
  background:#ffe4e6
}
.note-delete-confirm
{
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center
}
.note-delete-confirm__backdrop
{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.35)
}
.note-delete-confirm__card
{
  position:relative;
  z-index:1;
  width:min(380px,calc(100vw - 32px));
  background:#fff;
  border-radius:20px;
  border:1px solid #e5e7eb;
  box-shadow:0 24px 60px rgba(15,23,42,.24);
  padding:18px
}
.note-delete-confirm__card h3
{
  margin:0 0 8px
}
.note-delete-confirm__actions
{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:14px
}
@media(max-width:720px)
{
  .add-note-row
  {
    grid-template-columns:1fr
  }
}
.add-note-head .muted
{
  display:none
}
.note-print-icon-btn
{
  width:48px;
  height:48px;
  border-radius:16px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.note-print-icon-btn svg
{
  width:22px;
  height:22px;
  fill:currentColor
}
.note-cell-actions
{
  text-align:center;
  white-space:nowrap
}
.note-row-delete-btn
{
  width:26px;
  height:26px;
  border:0;
  border-radius:10px;
  background:#fff1f2;
  color:#be123c;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  min-width:26px;
  padding:0
}
.note-row-delete-btn:hover
{
  background:#ffe4e6
}
@media(max-width:760px)
{
  .add-note-row
  {
    grid-template-columns:1fr
  }
}
.notes-items-wrap
{
  overflow:visible
}
.notes-items-table--simple
{
  table-layout:fixed;
  width:100%;
  font-size:8px
}
.notes-items-table--simple th,
.notes-items-table--simple td
{
  vertical-align:middle
}
.notes-print-sheet
{
  display:none
}
.notes-screen-sheet
{
  display:block
}
.notes-items-wrap--screen
{
  overflow:visible
}
/* END frontend/public/css/notes-part-03.css */

/* BEGIN frontend/public/css/notes-part-04.css */
.notes-items-table--screen
{
  table-layout:fixed;
  width:100%;
  font-size:13px
}
.notes-items-table--screen th,
.notes-items-table--screen td
{
  box-sizing:border-box;
  vertical-align:middle;
  text-align:left;
  padding:10px 8px;
  min-width:0
}
.notes-items-table--screen th:nth-child(1),
.notes-items-table--screen td:nth-child(1)
{
  width:11%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
  font-weight:800
}
.notes-items-table--screen th:nth-child(2),
.notes-items-table--screen td:nth-child(2)
{
  width:9%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.notes-items-table--screen th:nth-child(3),
.notes-items-table--screen td:nth-child(3)
{
  width:12%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.notes-items-table--screen th:nth-child(4),
.notes-items-table--screen td:nth-child(4)
{
  width:15%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.notes-items-table--screen th:nth-child(5),
.notes-items-table--screen td:nth-child(5)
{
  width:18%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.notes-items-table--screen th:nth-child(6),
.notes-items-table--screen td:nth-child(6)
{
  width:14%;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip
}
.notes-items-table--screen th:nth-child(7),
.notes-items-table--screen td:nth-child(7)
{
  width:6%;
  text-align:center;
  white-space:nowrap;
  font-weight:800
}
.notes-items-table--screen th:nth-child(8),
.notes-items-table--screen td:nth-child(8)
{
  width:11%;
  text-align:right;
  white-space:nowrap;
  font-weight:800
}
.notes-items-table--screen th:nth-child(9),
.notes-items-table--screen td:nth-child(9)
{
  width:4%;
  text-align:center;
  white-space:nowrap
}
.notes-items-table--screen .note-cell-price
{
  text-align:right;
  white-space:nowrap;
  font-weight:800
}
.notes-items-table--screen .note-cell-stock
{
  text-align:center;
  white-space:nowrap;
  font-weight:800
}
.notes-items-table--screen .note-cell-actions
{
  text-align:center;
  white-space:nowrap
}
.notes-items-table--screen .note-row-delete-btn
{
  width:26px;
  height:26px;
  min-width:26px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.notes-items-table--screen .note-cell-description,
.notes-items-table--screen .note-cell-supplier,
.notes-items-table--screen .note-cell-address,
.notes-items-table--screen .note-cell-brand
{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.notes-items-table--screen .note-cell-phone
{
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip
}
.note-cell-description,
.note-cell-address,
.note-cell-phone,
.note-cell-supplier,
.note-cell-brand
{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.note-cell-price
{
  text-align:right;
  white-space:nowrap;
  font-weight:800
}
.note-cell-stock
{
  text-align:center;
  white-space:nowrap;
  font-weight:800
}
.add-note-select-stock-row
{
  display:grid;
  grid-template-columns:minmax(0,1fr) 160px;
  gap:12px;
  align-items:end
}
.add-note-stock-picker
{
  display:grid;
  gap:7px;
  align-self:end
}
.add-note-stock-label
{
  display:flex;
  align-items:center;
  gap:4px;
  margin:0;
  font-weight:900;
  line-height:1.2;
  white-space:nowrap;
  color:#111827
}
.add-note-stock-label span,
.add-note-stock-label b
{
  font-size:14px;
  font-weight:900;
  color:#111827
}
.stock-stepper
{
  height:46px;
  border:1px solid #d8e1ea;
  border-radius:14px;
  background:#fff;
  display:grid;
  grid-template-columns:38px 1fr 38px;
  align-items:center;
  overflow:hidden
}
.stock-stepper button
{
  height:100%;
  border:0;
  background:#eefdfb;
  color:#008f86;
  font-size:20px;
  font-weight:900;
  cursor:pointer
}
/* END frontend/public/css/notes-part-04.css */

/* BEGIN frontend/public/css/notes-part-05.css */
.stock-stepper input
{
  width:100%;
  border:0;
  text-align:center;
  font-weight:900;
  font-size:16px;
  outline:none
}
.add-note-stock-picker small
{
  display:none!important
}
.qty-stepper,
.qty-stepper-label,
.notes-qty-input
{
  display:none
}
.add-note-row--single
{
  display:block
}
.add-note-row--single .note-selector-wrap
{
  width:100%
}
.add-note-card--compact .add-note-position-card__meta span
{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0
}
.add-note-card--compact .add-note-position-card__meta
{
  grid-template-columns:minmax(0,1fr) auto;
  display:grid
}
@media print
{
  .app-page,
  .app-page-card,
  .notes-page-card,
  .notes-layout,
  .notes-detail
  {
    display:block;
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    border:0;
    box-shadow:none;
    background:#fff
  }
  .notes-print-sheet
  {
    display:block;
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    color:#111827;
    font-family:Arial,Helvetica,sans-serif
  }
  .notes-print-header
  {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin:0 0 8mm
  }
  .notes-print-header h1
  {
    font-size:18pt;
    line-height:1;
    margin:0 0 4px
  }
  .notes-print-header h2
  {
    font-size:13pt;
    line-height:1.12;
    margin:0
  }
  .notes-print-meta
  {
    font-size:9.5pt;
    line-height:1.2;
    text-align:right
  }
  .notes-print-table
  {
    width:100%;
    table-layout:fixed;
    border-collapse:collapse;
    font-size:9.3pt;
    line-height:1.12
  }
  .notes-print-table th,
  .notes-print-table td
  {
    border:1px solid #cbd5e1;
    padding:4px 5px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    vertical-align:middle;
    text-align:left;
    box-sizing:border-box
  }
  .notes-print-table th
  {
    background:#f1f5f9;
    font-weight:800
  }
  .notes-print-table th:nth-child(1),
  .notes-print-table td:nth-child(1)
  {
    width:12%
  }
  .notes-print-table th:nth-child(2),
  .notes-print-table td:nth-child(2)
  {
    width:10%
  }
  .notes-print-table th:nth-child(3),
  .notes-print-table td:nth-child(3)
  {
    width:12%
  }
  .notes-print-table th:nth-child(4),
  .notes-print-table td:nth-child(4)
  {
    width:15%
  }
  .notes-print-table th:nth-child(5),
  .notes-print-table td:nth-child(5)
  {
    width:20%
  }
  .notes-print-table th:nth-child(6),
  .notes-print-table td:nth-child(6)
  {
    width:16%
  }
  .notes-print-table th:nth-child(7),
  .notes-print-table td:nth-child(7)
  {
    width:6%;
    text-align:center
  }
  .notes-print-table th:nth-child(8),
  .notes-print-table td:nth-child(8)
  {
    width:9%;
    text-align:right
  }
  .notes-print-stock
  {
    text-align:center;
    font-weight:800
  }
  .notes-print-price
  {
    text-align:right;
    font-weight:800
  }
  .note-print-icon-btn
  {
    display:none
  }
  .notes-detail-head .muted,
  .notes-comment-label,
  .notes-inline-actions,
  .note-delete-confirm
  {
    display:none
  }
  .notes-detail-head
  {
    display:block
  }
  .note-print-btn
  {
    display:none
  }
}
@media(max-width:760px)
{
  .add-note-select-stock-row
  {
    grid-template-columns:1fr
  }
  .add-note-stock-picker
  {
    max-width:180px
  }
}
/* END frontend/public/css/notes-part-05.css */

/* END frontend/public/css/notes.css */

/* BEGIN frontend/public/css/my-prices.css */
.my-prices-page-card
{
  display: grid;
  gap: 18px;
  max-width: 1400px;
}
.my-prices-header
{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.my-prices-header h1
{
  margin: 4px 0 6px;
  font-size: 32px;
}
.my-prices-header p
{
  margin: 0;
  color: var(--muted, #6b7280);
}
.my-prices-summary
{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
}
.my-prices-summary-card
{
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 16px;
  padding: 14px 16px;
  background: #fff;
  display: grid;
  gap: 6px;
  min-height: 78px;
}
.my-prices-summary-card span
{
  color: var(--muted, #6b7280);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.my-prices-summary-card b
{
  font-size: 18px;
  color: #0f172a;
}
.my-prices-tabs
{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line, #e5e7eb);
  padding-bottom: 8px;
}
.my-prices-tabs button
{
  border: 1px solid var(--line, #e5e7eb);
  background: #fff;
  color: #334155;
  border-radius: 999px;
  padding: 10px 18px;
  font-weight: 800;
  cursor: pointer;
}
.my-prices-tabs button.active
{
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}
.my-prices-content
{
  display: grid;
  gap: 14px;
}
.my-prices-notice
{
  border-radius: 16px;
  padding: 14px 16px;
  display: grid;
  gap: 6px;
  border: 1px solid #dbeafe;
  background: #eff6ff;
  color: #1e3a8a;
}
.my-prices-notice b
{
  font-size: 16px;
}
.my-prices-notice span
{
  color: inherit;
  opacity: .86;
}
.my-prices-notice--success
{
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #065f46;
}
.my-prices-notice--warning
{
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}
.my-prices-notice--danger
{
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}
.my-prices-section
{
  background: #fff;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 18px;
  padding: 16px;
  display: grid;
  gap: 12px;
}
.my-prices-section h3,
.my-prices-section h4
{
  margin: 0;
}
.my-prices-section-head
{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.my-prices-table-wrap
{
  overflow-x: auto;
}
.my-prices-table
{
  width: 100%;
  border-collapse: collapse;
  min-width: 840px;
}
.my-prices-table th
{
  text-align: left;
  color: #64748b;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 10px 12px;
  border-bottom: 1px solid #e5e7eb;
}
.my-prices-table td
{
  padding: 12px;
  border-bottom: 1px solid #edf2f7;
  vertical-align: middle;
}
.my-prices-table small
{
  display: block;
  color: #64748b;
  margin-top: 3px;
}
.my-prices-badge
{
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
  background: #f1f5f9;
  color: #334155;
}
.my-prices-badge--success
{
  background: #dcfce7;
  color: #166534;
}
.my-prices-badge--warning
{
  background: #ffedd5;
  color: #9a3412;
}
.my-prices-badge--danger
{
  background: #fee2e2;
  color: #991b1b;
}
.my-prices-badge--info
{
  background: #dbeafe;
  color: #1d4ed8;
}
.my-prices-badge--neutral
{
  background: #f1f5f9;
  color: #475569;
}
.my-prices-table--owner
{
  min-width:680px
}
.my-prices-table--owner th,
.my-prices-table--owner td
{
  padding:10px 12px
}
/* END frontend/public/css/my-prices.css */

/* BEGIN frontend/public/css/my-prices-forms.css */
.my-prices-form
{
  display: grid;
  gap: 12px;
  max-width: 720px;
}
.my-prices-form-grid
{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: none;
}
.my-prices-form label,
.my-prices-filters label
{
  display: grid;
  gap: 6px;
  font-weight: 800;
  color: #334155;
}
.my-prices-form input,
.my-prices-form select,
.my-prices-filters input,
.my-prices-filters select
{
  min-height: 42px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  padding: 0 12px;
  font: inherit;
  background: #fff;
}
.my-prices-form .my-prices-checkbox,
.my-prices-filters .my-prices-checkbox,
.my-prices-checkbox
{
  display: flex;
  align-items: center;
  gap: 8px;
}
.my-prices-checkbox input
{
  min-height: auto;
}
.my-prices-filters
{
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
  align-items: end;
  padding: 14px;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #f8fafc;
  margin-bottom: 12px;
}
.my-prices-filter-wide
{
  grid-column: span 2;
}
.my-prices-file
{
  display: inline-block;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}
.my-prices-empty,
.my-prices-loading
{
  border: 1px dashed #cbd5e1;
  border-radius: 16px;
  padding: 18px;
  display: grid;
  gap: 6px;
  color: #475569;
  background: #f8fafc;
}
.my-prices-error
{
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}
.my-prices-create-user
{
  padding: 14px;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #f8fafc;
}
.my-prices-actions
{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
@media (max-width: 900px)
{
  .my-prices-section-head
  {
    flex-direction: column;
    align-items: stretch;
  }
  .my-prices-filters,
  .my-prices-form-grid
  {
    grid-template-columns: 1fr;
  }
  .my-prices-filter-wide
  {
    grid-column: auto;
  }
}
/* END frontend/public/css/my-prices-forms.css */

/* BEGIN frontend/public/css/my-prices-drawer.css */
.my-prices-drawer-shell
{
  position: fixed;
  inset: 0;
  z-index: 60;
}
.my-prices-drawer-overlay
{
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .28);
}
.my-prices-drawer
{
  position: absolute;
  right: 0;
  top: 0;
  width: min(680px, 96vw);
  height: 100%;
  overflow: auto;
  background: #fff;
  box-shadow: -28px 0 80px rgba(15, 23, 42, .24);
  padding: 18px;
}
.my-prices-drawer-head
{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 12px;
  margin-bottom: 12px;
}
.my-prices-drawer-head h3
{
  margin: 0 0 4px;
}
.my-prices-drawer-head p
{
  margin: 0;
  color: #64748b;
}
.my-prices-drawer-close
{
  border: 0;
  background: #f1f5f9;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 22px;
}
.my-prices-verdict
{
  display: flex;
  gap: 10px;
  align-items: center;
  border-radius: 14px;
  padding: 12px;
  background: #f8fafc;
  margin-bottom: 12px;
}
.my-prices-detail-section
{
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 12px;
}
.my-prices-kv-grid
{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.my-prices-kv
{
  background: #f8fafc;
  border-radius: 12px;
  padding: 10px;
  display: grid;
  gap: 4px;
}
.my-prices-kv span
{
  color: #64748b;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.my-prices-stage-list
{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.my-prices-stage-list div
{
  background: #f8fafc;
  border-radius: 12px;
  padding: 10px;
  display: grid;
  gap: 4px;
}
@media (max-width: 900px)
{
  .my-prices-header
  {
    flex-direction: column;
    align-items: stretch;
  }
  .my-prices-kv-grid,
  .my-prices-stage-list
  {
    grid-template-columns: 1fr;
  }
}
/* END frontend/public/css/my-prices-drawer.css */

/* BEGIN frontend/public/css/settings.css */
/* BEGIN frontend/public/css/settings-part-01.css */
/* Settings/profile UX single source for /settings layout. */
.settings-page
{
  padding:32px 32px 44px;
  max-width:1280px;
  margin:0 auto
}
.settings-shell
{
  width:min(1180px,100%);
  margin:0 auto
}
.settings-page-head
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px
}
.settings-page-head h1
{
  margin:6px 0 4px;
  font-size:34px;
  line-height:1.05;
  letter-spacing:-.04em;
  color:#0f172a
}
.settings-page-head p
{
  margin:0;
  color:#64748b;
  font-weight:700
}
.settings-back-link
{
  display:inline-flex;
  align-items:center;
  color:var(--brand-primary-dark);
  font-weight:900;
  text-decoration:none
}
.settings-layout
{
  display:grid;
  grid-template-columns:minmax(280px,320px) minmax(0,1fr);
  gap:22px;
  align-items:start
}
.settings-summary-card
{
  position:sticky;
  top:96px;
  display:grid;
  gap:16px;
  padding:22px;
  background:#fff;
  border:1px solid rgba(15,23,42,.09);
  border-radius:24px;
  box-shadow:0 18px 42px rgba(15,23,42,.06)
}
.settings-panel
{
  padding:22px;
  background:#fff;
  border:1px solid rgba(15,23,42,.09);
  border-radius:24px;
  box-shadow:0 18px 42px rgba(15,23,42,.06)
}
.settings-summary-avatar
{
  width:74px;
  height:74px;
  border-radius:24px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,rgba(20,184,166,.18),rgba(59,130,246,.10));
  border:1px solid rgba(20,184,166,.16);
  color:#0f766e;
  font-size:24px;
  font-weight:950;
  letter-spacing:-.04em
}
.settings-avatar-preview
{
  width:86px;
  height:86px;
  border-radius:28px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,rgba(20,184,166,.18),rgba(59,130,246,.10));
  border:1px solid rgba(20,184,166,.16);
  color:#0f766e;
  font-size:24px;
  font-weight:950;
  letter-spacing:-.04em
}
.settings-summary-avatar img,
.settings-avatar-preview img
{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}
.settings-summary-main h2
{
  margin:0;
  color:#0f172a;
  font-size:22px;
  letter-spacing:-.035em
}
.settings-summary-main p
{
  margin:4px 0 0
}
.settings-summary-list
{
  display:grid;
  gap:10px;
  padding-top:4px
}
.settings-summary-row
{
  display:grid;
  gap:4px;
  padding:12px 0;
  border-top:1px solid rgba(15,23,42,.07)
}
.settings-summary-row span,
.settings-readonly-item span
{
  color:#64748b;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:11px;
  font-weight:900
}
.settings-summary-row b,
.settings-readonly-item b
{
  color:#0f172a;
  font-size:15px;
  line-height:1.25;
  overflow-wrap:anywhere
}
.settings-summary-link
{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:44px;
  border-radius:16px;
  background:rgba(20,184,166,.11);
  border:1px solid rgba(20,184,166,.18);
  color:#0f766e;
  font-weight:950;
  text-decoration:none
}
.settings-main-column
{
  display:grid;
  gap:18px;
  min-width:0
}
.settings-panel-head
{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px
}
.settings-panel-head h3
{
  margin:0;
  color:#0f172a;
  font-size:21px;
  letter-spacing:-.03em
}
.settings-panel-head p
{
  margin:4px 0 0;
  color:#64748b;
  font-weight:700
}
.settings-readonly-grid
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}
/* END frontend/public/css/settings-part-01.css */

/* BEGIN frontend/public/css/settings-part-02a.css */
.settings-readonly-item
{
  display:grid;
  gap:6px;
  min-width:0;
  border:1px solid rgba(15,23,42,.07);
  border-radius:18px;
  background:#f8fafc;
  padding:14px
}
.settings-avatar-form
{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:18px;
  align-items:center
}
.settings-avatar-controls
{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  min-width:0
}
.settings-file-input
{
  position:absolute;
  inline-size:1px;
  block-size:1px;
  opacity:0;
  pointer-events:none
}
.settings-file-button
{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:44px;
  border-radius:16px;
  padding:10px 16px;
  font-weight:950;
  border:1px solid rgba(20,184,166,.24);
  color:#0f766e;
  background:#ecfeff;
  cursor:pointer
}
.settings-action-btn
{
  width:auto;
  min-height:44px;
  border-radius:16px;
  padding:10px 16px;
  font-weight:950
}
.settings-file-name
{
  min-width:180px;
  max-width:100%;
  color:#64748b;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.settings-security-form
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:end
}
.settings-security-form label
{
  display:grid;
  gap:7px;
  color:#0f172a;
  font-weight:900
}
.settings-security-form input
{
  min-height:46px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  padding:10px 14px;
  font:inherit;
  font-weight:800;
  background:#fff
}
.settings-security-form .settings-action-btn
{
  justify-self:start
}
.settings-help-text
{
  grid-column:1/-1;
  margin:0;
  color:#64748b;
  font-weight:700
}
@media(max-width:980px)
{
  .settings-page
  {
    padding:18px
  }
  .settings-page-head
  {
    display:grid
  }
  .settings-layout
  {
    grid-template-columns:1fr
  }
  .settings-summary-card
  {
    position:static
  }
}
@media(max-width:680px)
{
  .settings-page
  {
    padding:14px
  }
  .settings-page-head h1
  {
    font-size:28px
  }
  .settings-panel,
  .settings-summary-card
  {
    border-radius:20px;
    padding:16px
  }
  .settings-readonly-grid,
  .settings-security-form
  {
    grid-template-columns:1fr
  }
  .settings-avatar-form
  {
    grid-template-columns:1fr
  }
  .settings-avatar-controls
  {
    display:grid;
    grid-template-columns:1fr
  }
  .settings-file-name
  {
    min-width:0;
    white-space:normal
  }
  .settings-file-button,
  .settings-action-btn
  {
    width:100%
  }
}
/* END frontend/public/css/settings-part-02a.css */

/* BEGIN frontend/public/css/settings-part-02b.css */
.settings-my-prices-modal,
.settings-company-modal
{
  align-items:center;
  justify-content:center;
  padding:24px
}
.settings-my-prices-dialog,
.settings-company-dialog
{
  width:min(920px,calc(100vw - 32px));
  max-height:calc(100vh - 44px);
  overflow:auto;
  background:#fff;
  border-radius:26px;
  box-shadow:0 28px 90px rgba(15,23,42,.32);
  padding:22px
}
.settings-company-dialog
{
  width:min(720px,calc(100vw - 32px))
}
.settings-my-prices-dialog__head,
.settings-company-dialog__head
{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:16px
}
.settings-my-prices-dialog__head h2,
.settings-my-prices-dialog__head p,
.settings-company-dialog__head h2,
.settings-company-dialog__head p
{
  margin:0
}
.settings-my-prices-dialog__head p,
.settings-company-dialog__head p
{
  color:#64748b;
  font-weight:850
}
.settings-my-prices-dialog__actions
{
  display:flex;
  align-items:center;
  gap:10px
}
.settings-my-prices-dialog__body
{
  display:grid;
  gap:14px
}
.settings-modal-loading,
.settings-modal-error
{
  border:1px dashed #cbd5e1;
  border-radius:18px;
  padding:18px;
  background:#f8fafc;
  color:#475569;
  font-weight:850
}
.settings-modal-error
{
  border-color:#fecaca;
  background:#fef2f2;
  color:#991b1b
}
.settings-company-modal__summary
{
  display:grid;
  gap:6px;
  margin:16px 0;
  padding:14px;
  border:1px solid #e5eaf3;
  border-radius:18px;
  background:#f8fafc
}
.settings-company-modal__summary h3
{
  margin:0;
  color:#0f172a
}
.settings-company-modal__summary span
{
  color:#475569;
  font-weight:750
}
.settings-company-hours-form h4
{
  margin:0 0 12px
}
.settings-company-dialog__actions
{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:16px
}
.settings-company-modal-message:empty,
#owner-prices-upload-message:empty
{
  display:none
}
@media(max-width:720px)
{
  .settings-my-prices-dialog,
  .settings-company-dialog
  {
    width:calc(100vw - 24px);
    padding:16px;
    border-radius:22px
  }
  .settings-my-prices-dialog__head,
  .settings-company-dialog__head
  {
    gap:12px
  }
}
/* END frontend/public/css/settings-part-02b.css */

/* END frontend/public/css/settings.css */

/* BEGIN frontend/public/css/settings-password.css */
/* Settings password form owner: reset-safe UX and visibility toggles. */
.settings-password-field
{
  display:grid;
  gap:7px;
  color:#0f172a;
  font-weight:900
}
.settings-password-wrap
{
  position:relative;
  display:block;
  min-width:0
}
.settings-security-form .settings-password-wrap input
{
  width:100%;
  padding-right:52px
}
.settings-password-toggle
{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border:0;
  border-radius:12px;
  background:#f1f5f9;
  color:#0f172a;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:background .16s ease,color .16s ease,box-shadow .16s ease
}
.settings-password-toggle:hover
{
  background:#e2e8f0;
  color:#0f172a
}
.settings-password-toggle:focus-visible
{
  outline:2px solid rgba(37,99,235,.35);
  outline-offset:2px;
  box-shadow:0 0 0 4px rgba(37,99,235,.12)
}
.settings-password-toggle[aria-pressed="true"]
{
  background:#dbeafe;
  color:#1d4ed8
}
.settings-password-toggle-icon
{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round
}
.settings-password-toggle-icon circle
{
  fill:none
}
.settings-security-form .settings-password-field
{
  min-width:0
}
@media(max-width:680px)
{
  .settings-security-form .settings-password-wrap input
  {
    padding-right:52px
  }
  .settings-password-toggle
  {
    right:7px
  }
}
/* END frontend/public/css/settings-password.css */

/* BEGIN frontend/public/css/working-hours.css */
/* BEGIN frontend/public/css/working-hours-part-01.css */
.working-hours-lines
{
  display:grid;
  gap:3px;
  min-width:0
}
.working-hours-lines span
{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.working-hours-summary
{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:start;
  gap:9px;
  min-width:0;
  color:#475569;
  font-size:13px;
  line-height:1.32
}
.working-hours-summary__icon,
.working-hours-summary__clock
{
  width:18px;
  height:18px;
  margin-top:1px;
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.working-hours-summary__icon svg
{
  width:18px;
  height:18px;
  fill:#64748b
}
.working-hours-summary__body
{
  display:grid;
  gap:4px;
  min-width:0
}
.working-hours-summary__title
{
  color:#0f172a;
  font-size:13px;
  font-weight:900
}
.working-hours-summary__lines
{
  display:grid;
  gap:3px;
  min-width:0
}
.working-hours-summary__line
{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.working-hours-summary--card
{
  margin-top:6px;
  font-weight:780
}

.working-hours-summary--modal
{
  grid-template-columns:15px minmax(0,1fr);
  align-items:center;
  gap:6px;
  width:fit-content;
  max-width:min(100%,560px);
  padding:8px 11px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75)
}
.working-hours-summary--modal .working-hours-summary__icon,
.working-hours-summary--modal .working-hours-summary__clock
{
  width:15px;
  height:15px;
  margin-top:0
}
.working-hours-summary--modal .working-hours-summary__icon svg
{
  width:15px;
  height:15px;
  fill:#475569
}
.working-hours-summary--modal .working-hours-summary__body
{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0
}
.working-hours-summary--modal .working-hours-summary__title
{
  flex:0 0 auto;
  font-size:13px;
  line-height:1.2
}
.working-hours-summary--modal .working-hours-summary__lines
{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px 8px;
  min-width:0
}
.working-hours-summary--modal .working-hours-summary__line
{
  color:#475569;
  font-size:13px;
  line-height:1.25;
  white-space:nowrap
}
.working-hours-summary--modal .working-hours-summary__line + .working-hours-summary__line::before
{
  content:"·";
  margin-right:8px;
  color:#94a3b8;
  font-weight:900
}
.supplier-info-card--compact .supplier-info-head
{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:start;
  column-gap:16px;
  row-gap:9px;
  margin-bottom:14px
}
.supplier-info-card--compact .supplier-info-head__title
{
  grid-column:1;
  grid-row:1;
  min-width:0
}
.supplier-info-card--compact .supplier-info-head .close-btn
{
  grid-column:2;
  grid-row:1;
  justify-self:end
}
.supplier-info-card--compact .supplier-info-head__hours-slot
{
  grid-column:1/-1;
  justify-self:start;
  max-width:100%;
  min-width:0;
  margin:0 0 3px
}
.supplier-info-card--compact .supplier-info-head__tabs-row
{
  grid-column:1/-1;
  min-width:0;
  border-bottom:1px solid rgba(148,163,184,.28)
}
.supplier-info-card--compact .supplier-info-head__tabs-row .supplier-info-text-tabs
{
  margin:0;
  border-bottom:0;
  min-width:0
}
@media(max-width:720px)
{
  .working-hours-summary--modal
  {
    width:100%;
    max-width:none
  }
  .working-hours-summary--modal .working-hours-summary__body
  {
    display:grid;
    gap:4px
  }
  .supplier-info-card--compact .supplier-info-head__hours-slot
  {
    justify-self:stretch
  }
}
/* END frontend/public/css/working-hours-part-01.css */

/* BEGIN frontend/public/css/working-hours-part-02.css */
.working-hours-editor
{
  display:grid;
  gap:12px;
  min-width:0
}
.working-hours-editor__actions
{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center
}
.working-hours-editor__grid
{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  min-width:0
}
.working-hours-editor__row
{
  display:grid;
  grid-template-columns:minmax(56px,.8fr) minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  align-items:center;
  padding:8px;
  border:1px solid #e5eaf3;
  border-radius:14px;
  background:#fff;
  min-width:0
}
.working-hours-editor__enabled
{
  display:flex!important;
  align-items:center;
  gap:7px!important;
  min-width:0;
  color:#0f172a;
  font-weight:900!important;
  white-space:nowrap
}
.working-hours-editor__enabled input[type="checkbox"]
{
  width:16px;
  height:16px;
  min-width:16px;
  flex:0 0 16px;
  padding:0;
  border:0;
  border-radius:4px;
  box-shadow:none;
  accent-color:var(--brand-primary)
}
.working-hours-editor__enabled input[type="checkbox"]:focus
{
  outline:none;
  box-shadow:none
}
.working-hours-editor__enabled input[type="checkbox"]:focus-visible
{
  outline:2px solid rgba(37,99,235,.38);
  outline-offset:2px
}
.working-hours-editor__enabled span
{
  display:inline-flex;
  min-width:24px;
  color:#0f172a;
  font-weight:900;
  line-height:1
}
.working-hours-editor__row input[type="time"]
{
  width:100%;
  min-width:0;
  height:36px;
  padding:0 8px;
  border:1px solid #dbe5f3;
  border-radius:11px;
  background:#fff;
  color:#0f172a;
  font:800 14px/1.2 inherit;
  outline:none
}
.working-hours-editor__row input[type="time"]:focus
{
  border-color:#93c5fd;
  box-shadow:0 0 0 3px rgba(59,130,246,.14)
}
@media(max-width:720px)
{
  .working-hours-editor__grid
  {
    grid-template-columns:1fr
  }
}
/* END frontend/public/css/working-hours-part-02.css */

/* END frontend/public/css/working-hours.css */

/* BEGIN frontend/public/css/working-hours-directory.css */
.working-hours-summary--directory-card
{
  grid-template-columns:15px minmax(0,1fr);
  align-items:center;
  gap:6px;
  width:100%;
  max-width:100%;
  margin:0;
  padding:6px 10px;
  border:1px solid #e2e8f0;
  border-radius:999px;
  background:#f8fafc;
  font-size:12px;
  line-height:1.2;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72)
}
.working-hours-summary--directory-card .working-hours-summary__icon,
.working-hours-summary--directory-card .working-hours-summary__clock
{
  width:15px;
  height:15px;
  margin-top:0
}
.working-hours-summary--directory-card .working-hours-summary__icon svg
{
  width:15px;
  height:15px;
  fill:#475569
}
.working-hours-summary--directory-card .working-hours-summary__body
{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  overflow:hidden;
  white-space:nowrap
}
.working-hours-summary--directory-card .working-hours-summary__title
{
  flex:0 0 auto;
  font-size:12px;
  line-height:1.2;
  white-space:nowrap
}
.working-hours-summary--directory-card .working-hours-summary__lines
{
  display:block;
  min-width:0;
  overflow:hidden;
  white-space:nowrap
}
.working-hours-summary--directory-card .working-hours-summary__line
{
  display:block;
  min-width:0;
  overflow:hidden;
  color:#475569;
  text-overflow:ellipsis;
  white-space:nowrap
}
/* END frontend/public/css/working-hours-directory.css */

/* BEGIN frontend/public/css/legal.css */
/* BEGIN frontend/public/css/legal-part-01.css */
.legal-screen
{
  min-height:100vh;
  background:linear-gradient(180deg,#f8fbff 0%,#eef4fb 100%);
  padding:clamp(18px,3vw,36px) clamp(14px,2.4vw,24px);
  color:#0f172a;
}
.legal-shell
{
  width:min(1160px,100%);
  margin:0 auto;
  display:grid;
  gap:22px;
}
.legal-topbar
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.legal-brand
{
  display:flex;
  align-items:center;
  gap:12px;
  color:#0f172a;
  text-decoration:none;
  font-weight:900;
  font-size:clamp(21px,2vw,24px);
  letter-spacing:-.04em;
}
.legal-brand img
{
  width:42px;
  height:39px;
  object-fit:contain;
}
.legal-back
{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 16px;
  border-radius:12px;
  border:1px solid #cfd8e3;
  background:#fff;
  color:#2563eb;
  text-decoration:none;
  font-weight:850;
}
.legal-hero
{
  border:1px solid #dbe3ee;
  background:#fff;
  border-radius:22px;
  padding:clamp(22px,3vw,30px);
  box-shadow:0 18px 56px rgba(15,23,42,.08);
}
.legal-hero h1
{
  margin:0 0 10px;
  font-size:clamp(25px,3vw,34px);
  line-height:1.1;
  letter-spacing:-.045em;
}
.legal-hero p
{
  margin:0;
  color:#64748b;
  font-weight:650;
  line-height:1.55;
  max-width:820px;
}
.legal-layout
{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));
  gap:22px;
  align-items:start;
}
.legal-index-card
{
  position:sticky;
  top:18px;
  border:1px solid #dbe3ee;
  background:#fff;
  border-radius:20px;
  padding:22px;
  box-shadow:0 12px 38px rgba(15,23,42,.06);
}
.legal-index-card h2
{
  margin:0 0 14px;
  font-size:22px;
  letter-spacing:-.03em;
}
.legal-index-list
{
  margin:0;
  padding-left:22px;
  display:grid;
  gap:10px;
}
.legal-index-list a
{
  color:#2563eb;
  text-decoration:none;
  font-weight:800;
  line-height:1.35;
}
.legal-index-list a:hover
{
  text-decoration:underline;
}
.legal-documents
{
  display:grid;
  gap:18px;
}
.legal-document-card
{
  scroll-margin-top:18px;
  border:1px solid #dbe3ee;
  background:#fff;
  border-radius:20px;
  padding:22px;
  box-shadow:0 12px 38px rgba(15,23,42,.06);
}
.legal-document-card h2
{
  margin:0 0 14px;
  font-size:22px;
  letter-spacing:-.03em;
}
.legal-document-lead
{
  margin:0 0 18px;
  color:#475569;
  font-weight:700;
  line-height:1.55;
}
.legal-document-section
{
  border-top:1px solid #edf2f7;
  padding-top:16px;
  margin-top:16px;
}
.legal-document-section h3
{
  margin:0 0 10px;
  font-size:17px;
  letter-spacing:-.015em;
}
.legal-document-section p
{
  margin:0 0 10px;
  color:#334155;
  line-height:1.62;
  font-weight:560;
}
.public-footer
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  width:min(1120px,100%);
  margin:0 auto;
  color:#64748b;
  font-size:14px;
  font-weight:700;
  flex-wrap:wrap;
}
.public-footer a
{
  color:#2563eb;
  text-decoration:none;
  font-weight:850;
}
.public-footer a:hover
{
  text-decoration:underline;
}
.legal-index-button
{
  appearance:none;
  border:0;
  background:transparent;
  color:#2563eb;
  text-align:left;
  text-decoration:none;
  font:inherit;
  font-weight:850;
  line-height:1.35;
  cursor:pointer;
  padding:0;
  border-radius:8px;
}
/* END frontend/public/css/legal-part-01.css */

/* BEGIN frontend/public/css/legal-part-02.css */
.legal-index-button:hover
{
  text-decoration:underline;
}
.legal-index-button[aria-current="true"]
{
  color:#0f172a;
  background:#eff6ff;
  padding:6px 8px;
  margin-left:-8px;
  text-decoration:none;
}
.legal-fallback-notice
{
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:12px;
  background:#fff7ed;
  color:#9a3412;
  font-weight:800;
  border:1px solid #fed7aa;
}
.legal-document-content h3
{
  margin:16px 0 10px;
  font-size:17px;
  letter-spacing:-.015em;
}
.legal-document-content p
{
  margin:0 0 10px;
  color:#334155;
  line-height:1.62;
  font-weight:560;
}
.legal-document-content ul
{
  margin:0 0 12px 18px;
  color:#334155;
  line-height:1.62;
  font-weight:560;
}
/* END frontend/public/css/legal-part-02.css */

/* END frontend/public/css/legal.css */

/* BEGIN frontend/public/css/maintenance.css */
.maintenance-page
{
  padding:32px 20px;
  max-width:980px;
  margin:0 auto;
  min-height:calc(100vh - 92px);
  display:flex;
  align-items:center;
  justify-content:center
}
.maintenance-screen-root
{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center
}
.maintenance-screen-card
{
  width:min(620px,100%);
  border:1px solid #dbe4f0;
  border-radius:28px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  box-shadow:0 28px 80px rgba(15,23,42,.12);
  padding:38px;
  text-align:center;
  display:grid;
  gap:12px;
  justify-items:center
}
.maintenance-screen-mark
{
  width:58px;
  height:58px;
  border-radius:18px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#c2410c;
  font-size:34px;
  font-weight:950;
  display:grid;
  place-items:center;
  box-shadow:0 14px 34px rgba(194,65,12,.14)
}
.maintenance-screen-eyebrow
{
  margin:6px 0 0;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#64748b;
  font-size:12px;
  font-weight:950
}
.maintenance-screen-card h1
{
  margin:0;
  font-size:34px;
  line-height:1.08;
  letter-spacing:-.04em;
  color:#0f172a
}
.maintenance-screen-message
{
  margin:6px 0 0;
  font-size:18px;
  font-weight:850;
  color:#1f2937
}
.maintenance-screen-muted
{
  margin:0;
  color:#64748b;
  font-weight:650;
  max-width:420px;
  line-height:1.5
}
body.maintenance-active .top-search,
body.maintenance-active #top-filter-btn,
body.maintenance-active #top-agent-btn,
body.maintenance-active #admin-open-btn,
body.maintenance-active #topbar-app-menu
{
  display:none!important
}
.admin-maintenance-mode-root
{
  margin-left:auto;
  min-width:min(420px,100%)
}
.admin-maintenance-toggle
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid #dbe4f0;
  background:#f8fafc;
  border-radius:18px;
  padding:12px 14px;
  box-shadow:0 10px 28px rgba(15,23,42,.06)
}
.admin-maintenance-toggle.is-enabled
{
  border-color:#fed7aa;
  background:#fff7ed
}
.admin-maintenance-toggle__text
{
  display:grid;
  gap:2px;
  min-width:0;
  text-align:left
}
.admin-maintenance-toggle__text b
{
  font-size:13px;
  font-weight:950;
  color:#111827
}
.admin-maintenance-toggle__text span
{
  font-size:12px;
  font-weight:750;
  color:#64748b;
  line-height:1.25
}
.admin-maintenance-toggle.is-enabled .admin-maintenance-toggle__text span
{
  color:#9a3412
}
.admin-maintenance-switch
{
  position:relative;
  width:52px;
  height:30px;
  flex:0 0 auto;
  cursor:pointer
}
.admin-maintenance-switch input
{
  position:absolute;
  opacity:0;
  pointer-events:none
}
.admin-maintenance-switch span
{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#cbd5e1;
  transition:.18s ease;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)
}
.admin-maintenance-switch span::after
{
  content:"";
  position:absolute;
  width:24px;
  height:24px;
  top:3px;
  left:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 3px 10px rgba(15,23,42,.22);
  transition:.18s ease
}
.admin-maintenance-switch input:checked+span
{
  background:#ea580c
}
.admin-maintenance-switch input:checked+span::after
{
  transform:translateX(22px)
}
.admin-maintenance-warning
{
  margin-top:10px;
  border:1px solid #fed7aa;
  background:#fff7ed;
  color:#9a3412;
  border-radius:14px;
  padding:9px 12px;
  font-size:12px;
  font-weight:850;
  text-align:left
}
@media(max-width:780px)
{
  .admin-maintenance-mode-root
  {
    margin-left:0;
    width:100%
  }
  .admin-page .page-header
  {
    display:grid
  }
  .maintenance-screen-card
  {
    padding:28px 20px
  }
  .maintenance-screen-card h1
  {
    font-size:28px
  }
}
/* END frontend/public/css/maintenance.css */

/* END frontend/public/styles.css */
