body { background: #ffffff; }
.border-dashed { border: 2px dashed #e5e7eb; }
.navbar .nav-link.active { font-weight: 600; }
.table td, .table th { vertical-align: middle; }

.badge-soft { background: #f3f4f6; color: #111827; }

.tabular-nums { font-variant-numeric: tabular-nums; }

.icon-btn { border: 0; background: transparent; padding: 0 .25rem; line-height: 1; cursor: pointer; opacity: .9; }
.icon-btn:hover { opacity: 1; }
.icon-btn:disabled { opacity: .5; cursor: default; }
.icon-btn i { font-size: 1rem; vertical-align: -0.15rem; }
.icon-save { color: #198754; }
.icon-cancel { color: #6c757d; }

.price-cell { min-height: 1.25rem; }
.price-input { width: 12ch; text-align: center; }

.nowrap { white-space: nowrap; }
.pre-wrap { white-space: pre-wrap; }

.news-details {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: .75rem;
  padding: 1rem;
}
.news-details img { max-width: 100%; height: auto; border-radius: .5rem; }

.table-actions{ display: flex; flex-wrap: wrap; gap: .4rem .5rem; justify-content: flex-start; align-items: center; }
.col-actions .btn{ margin: 0; white-space: nowrap; }

.btn-grid-two{ display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }

.calendar-list .day{ background: #fff; border: 1px solid #eee; border-radius: .5rem; margin-bottom: .75rem; }
.calendar-list .day-header{ padding: .5rem .75rem; background: #f6f7f8; border-bottom: 1px solid #eee; font-weight: 600; }
.calendar-list .item{
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: .5rem;
  padding: .5rem .75rem;
  align-items: center;
  border-top: 1px solid #f3f4f6;
}
.calendar-list .item:first-child{ border-top: 0; }
.calendar-list .time{ color:#6b7280; font-variant-numeric: tabular-nums; }
.calendar-list .title{ font-weight: 500; }
.calendar-list .badge{ justify-self: end; }

.dropdown > .btn { padding: .25rem .5rem; line-height: 1; }

.view-switch .btn { min-width: 120px; }

.btn-check:checked + .btn { color: #fff; background-color: #4d5154; border-color: #4d5154; }
.btn-outline-secondary.active { color: #fff !important; background-color: #4d5154 !important; border-color: #4d5154 !important; }

[aria-label="filters"] .btn, .view-switch .btn {
  transition: background-color .12s ease, border-color .12s ease, color .12s ease, box-shadow .12s ease;
}
[aria-label="filters"] .btn.btn-outline-secondary:hover, .view-switch .btn.btn-outline-secondary:hover {
  background-color: #f3f4f6; border-color: #cbd5e1; color: #111827;
}
[aria-label="filters"] .btn.active:hover, .view-switch .btn-check:checked + .btn:hover { background-color: #3b3f42; border-color: #3b3f42; }
[aria-label="filters"] .btn:focus-visible, .view-switch .btn:focus-visible { box-shadow: 0 0 0 .2rem rgba(77,81,84,.25); }

.pagination { --gap: .25rem; }
.pagination .page-item { margin: 0 var(--gap); }
.pagination .page-link { color: #4d5154; border-color: #dee2e6; }
.pagination .page-item.active .page-link { color: #fff; background-color: #4d5154; border-color: #4d5154; }
.pagination .page-item.disabled .page-link { color: #9ca3af; background: #f8f9fa; }

.pagination-modern{
  --pg-radius: 10px;
  --pg-gap: .35rem;
  --pg-pad-y: .35rem;
  --pg-pad-x: .6rem;
}
.pagination-modern .page-item{ margin: 0 var(--pg-gap); }
.pagination-modern .page-link{
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
  line-height: 1;
  padding: var(--pg-pad-y) var(--pg-pad-x);
  border-radius: var(--pg-radius);
  box-shadow: 0 1px 0 rgba(17,24,39,.04);
  transition: background-color .12s ease, border-color .12s ease,
              color .12s ease, box-shadow .12s ease, transform .12s ease;
}
.pagination-modern .page-link:hover{
  background: #fff4de;
  border-color: #ffd089;
  color: var(--brand-orange);
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(204,87,3,.10);
}
.pagination-modern .page-item.active .page-link{
  color:#fff;
  background-color: var(--brand-orange);
  border-color: var(--brand-orange);
  box-shadow: 0 6px 14px rgba(204,87,3,.25);
}
.pagination-modern .page-item.disabled .page-link{
  color:#9ca3af;
  background:#f8f9fa;
  border-color:#eee;
  box-shadow:none;
  cursor:not-allowed;
}
.pagination-modern .page-link:focus-visible{
  outline: none;
  box-shadow: 0 0 0 .2rem rgba(204,87,3,.25);
}

#tableWrap, #calendarWrap { overflow: hidden; }

.payload-pre{
  white-space: pre-wrap;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  padding: .5rem .75rem;
  border-radius: .5rem;
  font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size: .8125rem;
}

.text-viber{ color:#7c3aed; }

.chat-wrap{ display: grid; grid-template-columns: 340px 1fr; gap: 0; height: calc(100vh - 130px); background: #fff; border: 1px solid #e5e7eb; border-radius: .75rem; overflow: hidden; }
.chat-sidebar{ border-right: 1px solid #e5e7eb; background: #fbfbfb; display: flex; flex-direction: column; min-height: 0; }
.chat-search{ padding: .75rem; border-bottom: 1px solid #e5e7eb; background: #fff; }
.chat-threads{ overflow: auto; padding: .5rem .25rem; min-height: 0; flex: 1 1 auto; }
.thread{ display: grid; grid-template-columns: 44px minmax(0,1fr) max-content; gap: .5rem; padding: .5rem .5rem; border-radius: .5rem; cursor: pointer; align-items: center; overflow: hidden; }
.thread:hover{ background: #f3f4f6; }
.thread.active{ background: #e9ecef; }
.thread .avatar{ width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: #e5e7eb; display:flex; align-items:center; justify-content:center; font-weight:600; color:#6b7280; }
.thread .meta{ width: auto; min-width: 0; text-align: right; white-space: nowrap; }
.thread .time{ color:#9ca3af; font-size:.75rem; font-variant-numeric: tabular-nums; }
.thread .name{ font-weight: 600; line-height: 1.1; }
.thread .last{ color:#6b7280; font-size:.875rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.thread .badge-unread{ background:#ef4444; color:#fff; border-radius:999px; padding:.1rem .45rem; font-size:.75rem; line-height:1; }
.thread .chan{ display:inline-flex; align-items:center; gap:.25rem; color:#6b7280; font-size:.875rem; }

.chat-main{ display: grid; grid-template-rows: auto 1fr auto; height: 100%; min-height: 0; }
.chat-header{ padding:.75rem 1rem; border-bottom:1px solid #e5e7eb; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.chat-title{ display:flex; align-items:center; gap:.5rem; }
.chat-title .name{ font-weight:600; }
.chat-title .status{ font-size:.875rem; color:#6b7280; }

.msg-list{ overflow:auto; padding:1rem; background: linear-gradient(#f9fafb, #fff 25%); min-height: 0; scroll-behavior: smooth; }
.msg-day{ text-align:center; color:#9ca3af; font-size:.75rem; margin: .25rem 0 .5rem; }

.msg{ max-width: 70%; margin:.25rem 0; position:relative; word-wrap: break-word; white-space: normal; border-radius:.75rem; padding: .5rem 3.25rem 1.1rem .75rem; line-height: 1.35; }
.msg--in{ background:#f3f4f6; color:#111827; }
.msg--out{ background:#dcfce7; color:#065f46; margin-left:auto; }

.msg:has(.msg-kb){ padding-bottom: 2.2rem; }
.msg.msg--with-kb{ padding-bottom: 2.2rem; }

.msg-time{ position:absolute; right:.55rem; bottom:.4rem; font-size:.75rem; line-height:1; color:#9ca3af; pointer-events:none; }
.msg--out .msg-time{ color:#047857; }

.msg-attach-list{ margin: .15rem 0 .4rem; }
.msg-attach-title{ font-size:.75rem; color:#6b7280; margin-bottom:.2rem; }
.msg-attach{ display:block; font-size:.875rem; }
.msg-attach a{ text-decoration: none; }

.msg-text a{ color:#f5a220; text-decoration: underline; }
.msg-text a:hover{ color:#e18f0d; }
.msg-text pre{ white-space: pre-wrap; }

.msg-kb{ margin-top:8px; display:flex; flex-direction:column; gap:6px; }
.msg-kb-row{ display:flex; flex-wrap:wrap; gap:6px; }
.msg-kb-btn{ font-size:12px; line-height:1; padding:6px 10px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; user-select:none; }
.msg--out .msg-kb-btn{ background:#e8fff1; border-color:#b7f0c9; }

.chat-composer{ border-top:1px solid #e5e7eb; background:#fff; padding:.5rem; }
.composer-row{ display:grid; grid-template-columns: 1fr auto; gap:.5rem; }
#composerText{ min-height:48px; max-height:160px; resize:vertical; }

@media (max-width: 992px){
  .chat-wrap{ grid-template-columns: 1fr; height: auto; }
  .chat-sidebar{ height: 50vh; border-right:0; border-bottom:1px solid #e5e7eb; }
  .chat-main{ height: 70vh; }
}

.section-toggle{ position: relative; cursor: pointer; font-weight: 600; padding: .6rem .9rem; border-bottom: 1px solid #e5e7eb; border-left: 4px solid transparent; background: #fff; transition: border-color .12s ease, background-color .12s ease, box-shadow .12s ease, color .12s ease; }
.section-toggle:hover{ background: #fafafa; }
.section-toggle:not(.collapsed){ border-left-color: #4d5154; background: #f6f7f8; }
.section-toggle:focus-visible{ box-shadow: 0 0 0 .2rem rgba(77,81,84,.15); }
.section-toggle::after{ filter: contrast(1.1) brightness(.9); }
.section-toggle::before{ content: "Нажмите, чтобы развернуть"; position: absolute; right: 2.25rem; top: 50%; transform: translateY(-50%); font-size: .75rem; color: #9ca3af; opacity: 0; transition: opacity .12s ease; pointer-events: none; }
.section-toggle:hover::before{ opacity: 1; }
.section-toggle:not(.collapsed)::before{ content: "Нажмите, чтобы свернуть"; }
@media (max-width: 576px){ .section-toggle::before{ display: none; } }

.news-table { table-layout: fixed; width: 100%; }
.news-table .col-id      { width: 70px; }
.news-table .col-status  { width: 130px; }
.news-table .col-when    { width: 170px; }
.news-table .col-actions { width: 90px; }
.news-title{ display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.news-status-clip .badge{ display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.news-when-clip{ display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.rte .ql-toolbar.ql-snow{ border-radius: .5rem .5rem 0 0; }
.rte .ql-toolbar .ql-header{ display:none !important; }
.rte .ql-container.ql-snow{ border-radius: 0 0 .5rem .5rem; min-height: 200px; }
.rte .ql-editor{ min-height: 200px; font-size: 1rem; line-height: 1.35; }
.rte .ql-editor p{ margin: .25rem 0; }
.rte .ql-editor ol, .rte .ql-editor ul{ margin: .25rem 0; padding-left: 1.1rem; }

.news-content{ line-height: 1.35; }
.news-content p{ margin-bottom: .35rem; }
.news-content a{ color:#f5a220; text-decoration: underline; }

:root{
  --brand-orange: #f5a220;
  --border: #e5e7eb;

  --sidebar-w: 280px;
  --sidebar-compact-w: 80px;
  --sidebar-pad-x: 14px;
  --sidebar-compact-pad-x: 14px;
  --icon-size: 24px;

  --page-pad-desktop: 24px;
  --page-pad-mobile: 16px;
  --page-pad: var(--page-pad-desktop);

  --bs-link-color: var(--brand-orange);
  --bs-link-hover-color: #e18f0d;
  --bs-link-color-rgb: 204,87,3;
}

.app-link,
.app-sidebar__top a { color:#374151 !important; }
.app-link:hover { color:#111827 !important; }

a.link-primary{ color: var(--brand-orange); text-decoration: none; }
a.link-primary:hover{ text-decoration: underline; }

.btn-primary{
  --bs-btn-color:#fff;
  --bs-btn-bg: var(--brand-orange);
  --bs-btn-border-color: var(--brand-orange);
  --bs-btn-hover-bg: #e18f0d;
  --bs-btn-hover-border-color:#e18f0d;
  --bs-btn-active-bg:#c97d08;
  --bs-btn-active-border-color:#c97d08;
  --bs-btn-disabled-bg: var(--brand-orange);
  --bs-btn-disabled-border-color: var(--brand-orange);
  --bs-btn-focus-shadow-rgb: 204,87,3;
}
.btn-outline-primary{
  --bs-btn-color: var(--brand-orange);
  --bs-btn-border-color: var(--brand-orange);
  --bs-btn-hover-bg: var(--brand-orange);
  --bs-btn-hover-border-color: var(--brand-orange);
  --bs-btn-active-bg: #c97d08;
  --bs-btn-active-border-color:#c97d08;
  --bs-btn-focus-shadow-rgb: 204,87,3;
}

.app-shell{ display:flex; min-height:100vh; background:#fff; }

.app-sidebar{
  position: fixed; inset: 0 auto 0 0;
  width: var(--sidebar-w);
  background:#fff;
  border-right: 1px solid var(--border);
  display:flex; flex-direction:column;
  transition: width .22s ease, transform .22s ease;
  z-index: 1040;

  overflow: hidden;
  contain: paint;
  will-change: width;
}

.app-sidebar__top{ padding: 8px var(--sidebar-pad-x); border-bottom:1px solid var(--border); }
.app-sidebar__top a{ display:flex; align-items:center; gap:10px; padding:10px var(--sidebar-pad-x); border-radius:12px; text-decoration:none; transition: background-color .12s ease, color .12s ease; }
.app-sidebar__top a:hover{ background:#f3f4f6; }

.app-logo{ height: 28px; width:auto; display:block; }

.app-nav{ padding: 10px var(--sidebar-pad-x); display:flex; flex-direction:column; gap:6px; }
.app-link{ display:flex; align-items:center; padding:10px var(--sidebar-pad-x); border-radius:12px; gap:10px; text-decoration:none; transition: background-color .12s ease, color .12s ease; }
.app-link:hover{ background:#f3f4f6; }
.app-link .app-ico{ width: var(--icon-size); height: var(--icon-size); flex: 0 0 var(--icon-size); opacity:.9; }
.app-link .t{ white-space: nowrap; overflow:hidden; transition: opacity .18s ease, max-width .22s ease; max-width: 220px; }
.app-link.active{ background: var(--brand-orange); color:#fff !important; }
.app-link.active .app-ico{ opacity:1; filter: brightness(0) invert(1); }

.app-main{ flex:1 1 auto; min-width:0; width:100%; margin-left: var(--sidebar-w); display:flex; flex-direction:column; transition: margin-left .22s ease; }

.app-topbar{ height:56px; flex:0 0 56px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding: 0 var(--page-pad); border-bottom:1px solid var(--border); background:#fff; }

.page{ padding-left: var(--page-pad); padding-right: var(--page-pad); }

.app-burger{ display:none; border:1px solid var(--border); background:#fff; padding:6px 10px; border-radius:10px; line-height:1; align-items:center; gap:8px; cursor:pointer; }
.app-burger:focus-visible{ outline: 2px solid rgba(77,81,84,.25); }
.app-burger i{ font-size: 1.15rem; color:#374151; }

.app-overlay{ position: fixed; inset:0; background: rgba(17,24,39,.35); opacity:0; pointer-events:none; transition: opacity .22s ease; z-index:1035; }

.is-collapsed .app-sidebar{ width: var(--sidebar-compact-w); }
.is-collapsed .app-link{ gap:0; padding:10px var(--sidebar-compact-pad-x); }
.is-collapsed .app-link .t{ opacity:0; max-width:0; }
.is-collapsed .app-main{ margin-left: var(--sidebar-compact-w); }

@media (hover:hover) and (min-width: 992px){
  .is-collapsed .app-sidebar:hover{ width: var(--sidebar-w); }
  .is-collapsed .app-sidebar:hover .app-link{ gap:10px; padding:10px var(--sidebar-pad-x); }
  .is-collapsed .app-sidebar:hover .app-link .t{ opacity:1; max-width:220px; }
}

@media (max-width: 991.98px){
  :root{ --page-pad: var(--page-pad-mobile); }
  .app-burger{ display:inline-flex; }
  .app-main{ margin-left: 0; }
  .app-sidebar{
    left:0; right:0; top:0; bottom:auto;
    width:100%; max-height:80vh;
    border-right:0; border-bottom:1px solid var(--border);
    transform: translateY(-110%);

    overflow: auto;
    contain: initial;
  }
  .app-link{ gap:10px; padding:10px var(--sidebar-pad-x); }
  .app-link .t{ opacity:1; max-width:220px; }

  body.menu-open .app-sidebar{ transform: translateY(0); }
  body.menu-open .app-overlay{ opacity:1; pointer-events:auto; }
  body.menu-open{ overflow:hidden; }
}

a.link-primary{ color: var(--brand-orange); text-decoration: none; }
a.link-primary:hover{ text-decoration: underline; }

.card-align{ display:flex; flex-direction:column; }
.card-align .btn{ margin-top:auto; align-self:flex-start; }

.app-link .notif{ margin-left:auto; background:#ef4444; color:#fff; border-radius:999px; font-size:.75rem; line-height:1; padding:.1rem .45rem; }

.link-primary,
a.link-primary{ color: var(--brand-orange) !important; }
.link-primary:visited{ color: var(--brand-orange) !important; }
.link-primary:hover,
.link-primary:focus{ color:#e18f0d !important; text-decoration: underline; }

.app-sidebar__footer{
  margin-top: auto;
  padding: 10px var(--sidebar-pad-x);
  border-top: 1px solid var(--border);
}
.app-sidebar__footer .app-link{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px var(--sidebar-pad-x);
  border-radius: 12px;
  color: #374151;
  text-decoration: none;
  transition: background-color .12s ease, color .12s ease;
}
.app-sidebar__footer .app-link:hover{ background:#f3f4f6; color:#111827; }

.is-collapsed .app-sidebar__footer .app-link{
  gap: 0;
  padding: 10px var(--sidebar-compact-pad-x);
}

.page-hero{
  padding: 12px var(--page-pad) 8px;
  border-bottom: 1px solid var(--border);
  background:
    radial-gradient(1200px 300px at -10% -20%, rgba(204,87,3,.06), transparent 60%),
    radial-gradient(800px 200px at 110% -10%, rgba(204,87,3,.05), transparent 60%),
    #fff;
}
.page-hero h1{ margin: 0 0 .25rem; }
.page-hero .sub{ color:#6b7280; margin:0; }

.quick-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.5rem; }
.quick-chips .chip{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.35rem .6rem; border:1px solid #e5e7eb; border-radius:999px;
  text-decoration:none; color:#374151; background:#fff;
  transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease;
}
.quick-chips .chip i{ font-size:1rem; color:var(--brand-orange); }
.quick-chips .chip:hover{ border-color:#d1d5db; box-shadow:0 1px 0 rgba(17,24,39,.04); transform: translateY(-1px); }

.card.tile{
  position:relative; text-decoration:none; color:inherit;
  border-radius:16px; border:1px solid #e5e7eb; background:#fff;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
  overflow:hidden;
}
.card.tile::before{
  content:""; position:absolute; inset:0 0 0 0; pointer-events:none;
  background:
    linear-gradient(90deg, var(--brand-orange), rgba(245,162,32,0));
  opacity:.08;
}
.card.tile:hover{ transform: translateY(-2px); box-shadow:0 6px 18px rgba(17,24,39,.08); border-color:#e2e8f0; }
.card.tile:focus-visible{ outline:2px solid rgba(204,87,3,.35); outline-offset:2px; }

.card.tile .card-body{
  display:grid; grid-template-columns: auto 1fr auto; align-items:center; gap:12px;
  padding:16px 16px;
}
.tile-icon{
  width:48px; height:48px; border-radius:14px;
  display:grid; place-items:center;
  background: radial-gradient(circle at 30% 20%, rgba(204,87,3,.18), rgba(204,87,3,.08));
  border:1px solid #f1f5f9;
}
.tile-icon i{ font-size:22px; color:#f5a220; }

.tile-title{ margin:0; font-weight:700; }
.tile-desc{ margin:.15rem 0 0; color:#6b7280; font-size:.95rem; }
.tile-cta{
  width:36px; height:36px; border-radius:10px; display:grid; place-items:center;
  border:1px solid #e5e7eb; transition: transform .14s ease, background-color .14s ease, border-color .14s ease;
}
.card.tile:hover .tile-cta{ transform: translateX(2px); background:#fff4de; border-color:#ffd089; }
.tile-cta i{ font-size:18px; color:#f5a220; }

@media (max-width: 575.98px){
  .card.tile .card-body{ grid-template-columns: auto 1fr; }
  .tile-cta{ display:none; }
}

@media (prefers-reduced-motion: reduce){
  .card.tile, .quick-chips .chip{ transition:none; }
}

.app-sidebar__top,
.app-nav,
.app-sidebar__footer{
  position: relative;
  z-index: 1;
}

.btn-icon{
  position:relative; display:inline-grid; place-items:center;
  width:36px; height:36px; border-radius:10px;
  border:1px solid #e5e7eb; background:#fff; line-height:1;
  transition: background-color .12s ease, border-color .12s ease, transform .12s ease, box-shadow .12s ease;
}
.btn-icon img.i{ width:18px; height:18px; display:block; }
.btn-icon:disabled{ opacity:.5; cursor:not-allowed; }
.btn-icon::after{
  content:""; position:absolute; left:8px; right:8px; bottom:-6px;
  height:8px; border-radius:999px; filter: blur(6px);
  opacity:0; transition:opacity .12s ease;
}
.btn-icon:focus-visible{ outline:2px solid rgba(204,87,3,.25); outline-offset:2px; }

.btn-icon--edit:hover{ background:#fff4de; border-color:#ffd089; transform:translateY(-1px); }
.btn-icon--edit::after{ background: rgba(204,87,3,.45); }
.btn-icon--edit:hover::after{ opacity:.9; }

.btn-icon--delete:hover{ background:#fff4f4; border-color:#fecaca; transform:translateY(-1px); }
.btn-icon--delete::after{ background: rgba(239,68,68,.5); }
.btn-icon--delete:hover::after{ opacity:.95; }

.price-cell[data-editing="1"]{
  background:#fffef8; border-radius:8px; padding:.15rem .25rem;
  box-shadow: inset 0 0 0 1px #ffe2a8;
}

.select-modern{
  position:relative; width:100%;
  font-size:.95rem;
}
.select-modern__trigger{
  width:100%; text-align:left;
  background:#fff; border:1px solid #e5e7eb;
  border-radius:10px; padding:.47rem .75rem;
  display:flex; align-items:center; gap:.5rem;
  transition: border-color .12s ease, box-shadow .12s ease, background-color .12s ease;
}
.select-modern__trigger:hover{ border-color:#e2e8f0; background:#fbfbfb; }
.select-modern[aria-expanded="true"] .select-modern__trigger{
  border-color:#ffd089; background:#fff;
  box-shadow: 0 0 0 .2rem rgba(204,87,3,.10), 0 6px 18px rgba(17,24,39,.06);
}
.select-modern__label{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.select-modern__caret{
  width:18px; height:18px; position:relative; flex:0 0 18px;
}
.select-modern__caret::before{
  content:""; position:absolute; inset:0; margin:auto;
  width:10px; height:10px;
  border-right:2px solid #9ca3af; border-bottom:2px solid #9ca3af;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .16s ease, border-color .12s ease;
}
.select-modern[aria-expanded="true"] .select-modern__caret::before{
  transform: rotate(-135deg) translateY(2px);
  border-color: var(--brand-orange);
}

.select-modern__menu{
  position:absolute; left:0; right:0; top:calc(100% + 6px);
  background:#fff; border:1px solid #e5e7eb; border-radius:12px;
  box-shadow: 0 12px 28px rgba(17,24,39,.14);
  padding:6px; max-height:280px; overflow:auto; z-index:1060;
  will-change: opacity, transform;
}
.select-modern__opt{
  padding:.45rem .6rem; border-radius:8px; cursor:pointer;
  transition: background-color .12s ease, color .12s ease, border-color .12s ease;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.select-modern__opt:hover{ background:#fff4de; }
.select-modern__opt[aria-selected="true"]{
  background:#ffe2a8; border:1px solid #ffd089;
}

.modal .select-modern{ width:100%; }