/* ==========================================================================
   AmHub — тёмная тема CRM (v1)
   Подключается ПОСЛЕДНЕЙ в layout/header.php и перекрывает старые стили.
   Чтобы откатиться — просто уберите <link ... amhub.theme.css> из header.php.
   ========================================================================== */

:root,
:root[data-theme="dark"]{
  /* Поверхности */
  --ah-bg:        #07090d;
  --ah-bg-2:      #0b0e14;
  --ah-surface:   #10141c;
  --ah-surface-2: #151a24;
  --ah-surface-3: #1b2130;
  --ah-line:      rgba(255,255,255,.07);
  --ah-line-2:    rgba(255,255,255,.12);

  /* Текст */
  --ah-text:   #e8ebf2;
  --ah-text-2: #a4acbd;
  --ah-text-3: #6d7588;

  /* Акцент — «сигнальный оранжевый» */
  --ah-accent:      #ff6b1f;
  --ah-accent-2:    #ff8a47;
  --ah-accent-soft: rgba(255,107,31,.12);
  --ah-accent-line: rgba(255,107,31,.35);

  /* Семантика */
  --ah-blue:   #5b8cff;
  --ah-violet: #a07cff;
  --ah-amber:  #f5b23d;
  --ah-green:  #2fd47a;
  --ah-red:    #ff4d5e;
  --ah-cyan:   #38d0f0;

  --ah-radius:    14px;
  --ah-radius-sm: 10px;
  --ah-shadow:    0 1px 0 rgba(255,255,255,.03) inset, 0 12px 32px -12px rgba(0,0,0,.6);
  --ah-font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --ah-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --ah-sidebar: 248px;

  /* Старые переменные проекта → на новую палитру */
  --crm-text: var(--ah-text);
  --crm-muted: var(--ah-text-2);
  --crm-card: var(--ah-surface);

  /* Pico CSS v2 */
  --pico-font-family: var(--ah-font);
  --pico-font-size: 15px;
  --pico-line-height: 1.5;
  --pico-background-color: var(--ah-bg);
  --pico-color: var(--ah-text);
  --pico-h1-color: var(--ah-text);
  --pico-h2-color: var(--ah-text);
  --pico-h3-color: var(--ah-text);
  --pico-h4-color: var(--ah-text);
  --pico-muted-color: var(--ah-text-2);
  --pico-muted-border-color: var(--ah-line);
  --pico-primary: var(--ah-accent);
  --pico-primary-background: var(--ah-accent);
  --pico-primary-border: var(--ah-accent);
  --pico-primary-underline: var(--ah-accent-line);
  --pico-primary-hover: var(--ah-accent-2);
  --pico-primary-hover-background: var(--ah-accent-2);
  --pico-primary-hover-border: var(--ah-accent-2);
  --pico-primary-focus: rgba(255,107,31,.35);
  --pico-primary-inverse: #fff;
  --pico-secondary: var(--ah-text-2);
  --pico-secondary-background: var(--ah-surface-3);
  --pico-secondary-border: var(--ah-line-2);
  --pico-secondary-hover-background: #232a3b;
  --pico-secondary-hover-border: var(--ah-line-2);
  --pico-secondary-inverse: var(--ah-text);
  --pico-contrast: #fff;
  --pico-contrast-background: var(--ah-accent);
  --pico-contrast-border: var(--ah-accent);
  --pico-contrast-hover-background: var(--ah-accent-2);
  --pico-contrast-hover-border: var(--ah-accent-2);
  --pico-contrast-inverse: #fff;
  --pico-border-radius: var(--ah-radius-sm);
  --pico-form-element-background-color: var(--ah-bg-2);
  --pico-form-element-selected-background-color: var(--ah-surface-3);
  --pico-form-element-border-color: var(--ah-line-2);
  --pico-form-element-color: var(--ah-text);
  --pico-form-element-placeholder-color: var(--ah-text-3);
  --pico-form-element-active-background-color: var(--ah-bg-2);
  --pico-form-element-active-border-color: var(--ah-accent);
  --pico-form-element-focus-color: rgba(255,107,31,.25);
  --pico-form-element-spacing-vertical: .6rem;
  --pico-form-element-spacing-horizontal: .85rem;
  --pico-card-background-color: var(--ah-surface);
  --pico-card-sectioning-background-color: var(--ah-surface-2);
  --pico-card-border-color: var(--ah-line);
  --pico-card-box-shadow: var(--ah-shadow);
  --pico-table-border-color: var(--ah-line);
  --pico-table-row-stripped-background-color: rgba(255,255,255,.02);
  --pico-mark-background-color: rgba(255,77,94,.15);
  --pico-mark-color: #ffc2c8;
  --pico-dropdown-background-color: var(--ah-surface-2);
  --pico-dropdown-border-color: var(--ah-line-2);
  --pico-dropdown-color: var(--ah-text);
  --pico-dropdown-hover-background-color: var(--ah-surface-3);
  --pico-modal-overlay-background-color: rgba(3,5,9,.7);
  --pico-code-background-color: var(--ah-surface-2);
  --pico-spacing: 1rem;
  --pico-typography-spacing-vertical: .9rem;
  color-scheme: dark;
}

/* ---------- База ---------- */
[hidden]{ display: none !important; }
html, body{
  margin: 0 !important;
  background: var(--ah-bg) !important;
  color: var(--ah-text) !important;
  font-family: var(--ah-font) !important;
  -webkit-font-smoothing: antialiased;
}
body{
  min-height: 100vh;
  background:
    radial-gradient(1100px 520px at 78% -10%, rgba(255,107,31,.10), transparent 60%),
    radial-gradient(900px 600px at -10% 110%, rgba(91,140,255,.07), transparent 60%),
    var(--ah-bg) !important;
  background-attachment: fixed !important;
}
/* Едва заметная инженерная сетка */
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse at 60% 0%, #000 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 60% 0%, #000 0%, transparent 70%);
}
::selection{ background: rgba(255,107,31,.35); color:#fff; }
a{ color: var(--ah-accent-2); }
a:hover{ color: #ffb07f; }
h1,h2,h3,h4,h5{ letter-spacing: -.01em; font-weight: 700; }
small{ color: var(--ah-text-2); }
hr{ border-color: var(--ah-line) !important; }

*, *::before, *::after{ box-sizing: border-box; }
*{ scrollbar-width: thin; scrollbar-color: #2a3142 transparent; }
*::-webkit-scrollbar{ width:10px; height:10px; }
*::-webkit-scrollbar-thumb{ background:#262d3d; border-radius:10px; border:2px solid var(--ah-bg); }
*::-webkit-scrollbar-thumb:hover{ background:#343c50; }
*::-webkit-scrollbar-track{ background: transparent; }

/* ---------- Каркас ---------- */
.app{
  position: relative; z-index: 1;
  display: grid !important;
  grid-template-columns: var(--ah-sidebar) minmax(0,1fr) !important;
  min-height: 100vh;
}
html body .app > main.content,
html body .app > main.content.container{
  max-width: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 28px 36px 64px !important;
  min-width: 0;
}
@media (min-width: 1800px){
  html body .app > main.content{ padding-left: 48px !important; padding-right: 48px !important; }
}

/* ---------- Сайдбар ---------- */
.sidebar{
  position: sticky; top: 0; height: 100vh;
  display: flex !important; flex-direction: column; gap: 22px;
  padding: 20px 14px !important;
  background: linear-gradient(180deg, rgba(16,20,28,.92), rgba(9,11,16,.92)) !important;
  border-right: 1px solid var(--ah-line) !important;
  backdrop-filter: blur(12px);
  overflow-y: auto;
}
.sidebar .brand{ display:flex; align-items:center; gap:12px; padding: 4px 8px 6px; text-decoration:none; }
.sidebar .logo{
  width: 40px; height: 40px; border-radius: 12px;
  display: grid; place-items: center;
  background: linear-gradient(140deg, #ff7a2e, #e2480a) !important;
  box-shadow: 0 8px 22px -8px rgba(255,107,31,.7), inset 0 1px 0 rgba(255,255,255,.25);
  color: #fff; font-size: 0;
}
.sidebar .logo svg{ width: 24px; height: 24px; }
.sidebar .brand-text{ display:flex; flex-direction:column; line-height:1.1; }
.sidebar .brand-text strong{ font-size: 18px; font-weight: 800; letter-spacing: -.02em; color:#fff; }
.sidebar .brand-text strong span{ color: var(--ah-accent); }
.sidebar .brand-text small{
  margin-top: 3px !important; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ah-text-3) !important;
}

.sidebar .menu-caption{
  padding: 0 12px; margin: 6px 0 2px;
  font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ah-text-3);
}
.sidebar .menu{ display:flex !important; flex-direction:column !important; gap: 2px !important; }
.sidebar .menu-item{
  position: relative;
  display: flex !important; align-items: center; gap: 12px;
  padding: 9px 12px !important; border-radius: 10px !important;
  color: var(--ah-text-2) !important; text-decoration: none !important;
  font-size: 14px; font-weight: 600;
  border: 1px solid transparent !important; background: transparent !important;
  transition: background .15s, color .15s, border-color .15s;
}
.sidebar .menu-item .mi-icon{
  width: 20px; height: 20px; flex: 0 0 20px;
  display: grid; place-items: center; color: var(--ah-text-3); transition: color .15s;
}
.sidebar .menu-item .mi-icon svg{ width: 19px; height: 19px; }
.sidebar .menu-item:hover{ background: rgba(255,255,255,.04) !important; color: var(--ah-text) !important; }
.sidebar .menu-item:hover .mi-icon{ color: var(--ah-text); }
.sidebar .menu-item.is-active{
  background: linear-gradient(90deg, rgba(255,107,31,.16), rgba(255,107,31,.04)) !important;
  border-color: rgba(255,107,31,.22) !important;
  color: #fff !important;
}
.sidebar .menu-item.is-active .mi-icon{ color: var(--ah-accent); }
.sidebar .menu-item.is-active::before{
  content:""; position:absolute; left:-14px; top:9px; bottom:9px; width:3px;
  border-radius: 0 3px 3px 0; background: var(--ah-accent);
  box-shadow: 0 0 12px rgba(255,107,31,.8);
}
.sidebar .menu-item .badge--parts{
  margin-left: auto !important;
  background: var(--ah-red) !important; color:#fff !important;
  font-size: 11px !important; font-weight: 700; padding: 1px 7px !important;
  box-shadow: 0 0 0 3px rgba(255,77,94,.15);
}

.sidebar-footer{ margin-top: auto; display:flex; flex-direction:column; gap: 8px; }
.sidebar .user{
  display:flex; align-items:center; gap: 10px; padding: 10px !important;
  background: var(--ah-surface) !important; border: 1px solid var(--ah-line);
  border-radius: 12px !important;
}
.sidebar .avatar{
  width: 34px; height: 34px; border-radius: 10px !important;
  display:grid; place-items:center;
  background: linear-gradient(140deg, #2b3347, #1a2030) !important;
  color: var(--ah-text); font-weight: 800; font-size: 14px; text-transform: uppercase;
}
.sidebar .user-name{ font-weight: 700; font-size: 14px; color: var(--ah-text); }
.sidebar .user-role{ font-size: 11.5px; color: var(--ah-text-3); text-transform: uppercase; letter-spacing: .08em; }
.sidebar .btn-logout, .sidebar .btn-login{
  display:flex !important; align-items:center; justify-content:center; gap:8px;
  padding: 9px 12px !important; border-radius: 10px !important;
  font-size: 13.5px; font-weight: 600; text-decoration: none !important;
  color: var(--ah-text-2) !important;
  border: 1px solid var(--ah-line) !important; background: transparent !important;
}
.sidebar .btn-logout svg{ width:16px; height:16px; }
.sidebar .btn-logout:hover{ color: #fff !important; border-color: rgba(255,77,94,.4) !important; background: rgba(255,77,94,.08) !important; }

/* ---------- Заголовок страницы ---------- */
.page-head{
  display:flex !important; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap;
  margin: 0 0 22px !important;
}
.page-head .title, h1.title{
  margin: 0 !important;
  font-size: clamp(24px, 2.2vw, 30px) !important; font-weight: 800 !important;
  letter-spacing: -.025em; color: #fff;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.page-head .sub, p.sub{ margin: 4px 0 0 !important; color: var(--ah-text-3) !important; font-size: 14px; }
.page-head .actions{ display:flex; gap: 10px; flex-wrap: wrap; }
.page-head .actions > *{ margin: 0 !important; }

/* ---------- Карточки ---------- */
.card, section.card, article.card{
  position: relative;
  background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,0) 40%), var(--ah-surface) !important;
  border: 1px solid var(--ah-line) !important;
  border-radius: var(--ah-radius) !important;
  box-shadow: var(--ah-shadow) !important;
  padding: 20px !important;
  margin: 0 0 18px !important;
}
.card h3, section.card h3{ font-size: 16px; font-weight: 700; margin: 0 0 14px; color: #fff; }
.card > header{ background: transparent !important; border: 0 !important; margin: 0 0 12px !important; padding: 0 !important; }
article{ --pico-block-spacing-vertical: 1rem; }

/* ---------- Кнопки ---------- */
button, [role="button"], input[type="submit"], input[type="button"]{
  --pico-font-weight: 650;
  font-weight: 650 !important;
  border-radius: 10px !important;
  padding: .58rem 1rem;
  font-size: 14px;
  transition: background-color .15s, border-color .15s, box-shadow .15s, transform .05s, color .15s;
}
[role="button"]{ text-decoration: none !important; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
button:active, [role="button"]:active{ transform: translateY(1px); }
:where(button:not(.secondary):not(.outline):not(.contrast):not([class*="btn"]):not(.tab):not(.close):not(.x):not(.parts-modal-close)),
:where([role="button"]:not(.secondary):not(.outline):not(.contrast)),
:where(input[type="submit"]){
  background: var(--ah-surface-3) !important;
  border: 1px solid var(--ah-line-2) !important;
  color: var(--ah-text) !important;
}
:where(button:not(.secondary):not(.outline):not(.contrast):not([class*="btn"]):not(.tab):not(.close):not(.x):not(.parts-modal-close)):hover,
:where([role="button"]:not(.secondary):not(.outline):not(.contrast)):hover{
  background: #242b3c !important; border-color: rgba(255,255,255,.18) !important;
}
.contrast, button.contrast, [role="button"].contrast,
button[type="submit"].contrast{
  background: linear-gradient(180deg, #ff7a2e, #f05c12) !important;
  border: 1px solid #ff7a2e !important;
  color: #fff !important;
  box-shadow: 0 8px 20px -10px rgba(255,107,31,.9), inset 0 1px 0 rgba(255,255,255,.2) !important;
}
.contrast:hover{ background: linear-gradient(180deg, #ff8a47, #ff6b1f) !important; }
.secondary, button.secondary, [role="button"].secondary{
  background: transparent !important; border: 1px solid var(--ah-line-2) !important; color: var(--ah-text-2) !important;
}
.secondary:hover{ color: #fff !important; border-color: rgba(255,255,255,.25) !important; }
:is(button,[role="button"],input,select,textarea):focus-visible{
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(255,107,31,.28) !important;
}

/* ---------- Поля ввода ---------- */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
select, textarea{
  background-color: var(--ah-bg-2) !important;
  border: 1px solid var(--ah-line-2) !important;
  color: var(--ah-text) !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  padding: .6rem .85rem;
  min-height: 42px;
}
input:not([type="checkbox"]):not([type="radio"]):hover, select:hover, textarea:hover{ border-color: rgba(255,255,255,.18) !important; }
input:not([type="checkbox"]):not([type="radio"]):focus, select:focus, textarea:focus{
  border-color: var(--ah-accent) !important;
  box-shadow: 0 0 0 3px rgba(255,107,31,.18) !important;
}
input::placeholder, textarea::placeholder{ color: var(--ah-text-3) !important; }
textarea{ font-family: inherit !important; }
select option, select optgroup{ background: var(--ah-surface-2); color: var(--ah-text); }
input[type="checkbox"], input[type="radio"]{ accent-color: var(--ah-accent); }
label{ color: var(--ah-text-2); font-size: 13px; font-weight: 600; }
input[type="file"]{ color: var(--ah-text-2); }
input[type="file"]::file-selector-button{
  background: var(--ah-surface-3); color: var(--ah-text); border: 1px solid var(--ah-line-2);
  border-radius: 8px; padding: 6px 12px; margin-right: 10px; cursor: pointer;
}
mark{ background: rgba(255,77,94,.14) !important; color: #ffc2c8 !important; padding: 6px 10px; border-radius: 8px; border:1px solid rgba(255,77,94,.3); }

.form-vertical fieldset{
  background: var(--ah-bg-2) !important;
  border: 1px solid var(--ah-line) !important;
  border-radius: 12px !important;
  padding: 16px !important;
}
.form-vertical legend{
  padding: 0 8px !important; color: var(--ah-accent-2) !important;
  font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
}
.form-vertical .field{ display:block; margin-bottom: 10px; }
.form-vertical .field > span{ display:block; margin-bottom: 6px; }
.form-actions{
  background: linear-gradient(180deg, rgba(16,20,28,0), var(--ah-surface) 45%) !important;
  padding: 14px 0 4px !important;
}
.form-actions > *{ margin: 0 !important; width: auto !important; }

/* ---------- Таблицы ---------- */
section.card:has(> table), section.card:has(> .table){ overflow-x: auto; }
.table, table.table{
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  margin: 0 !important;
  font-size: 14px;
}
.table thead th, table thead th{
  background: transparent !important;
  color: var(--ah-text-3) !important;
  font-size: 11.5px !important; font-weight: 700 !important;
  text-transform: uppercase; letter-spacing: .08em;
  padding: 10px 14px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ah-line) !important;
  white-space: nowrap;
  text-align: left !important;
}
.table tbody tr, table tbody tr{ background: transparent !important; border: 0 !important; }
.table tbody td, table tbody td{
  background: transparent !important;
  padding: 13px 14px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ah-line) !important;
  border-radius: 0 !important;
  color: var(--ah-text);
  vertical-align: middle;
}
.table tbody tr:last-child td{ border-bottom: 0 !important; }
.table tbody tr:hover td{ background: rgba(255,255,255,.025) !important; }
.table tr.js-open:hover td,
.table tr.js-open:hover{
  background: rgba(255,107,31,.06) !important;
  border-color: var(--ah-line) !important;
}
.table tr.js-open td:first-child strong{
  font-family: var(--ah-mono); font-weight: 600; font-size: 13px; color: #fff;
  letter-spacing: .02em;
}
td.nowrap, .nowrap{ white-space: nowrap; font-variant-numeric: tabular-nums; }
.low td{ background: rgba(255,77,94,.07) !important; }

/* Касса */
tr.cash-row td:first-child{ border-left: 0 !important; }
tr.cash-row.cash-in td:first-child,
tr.cash-row.cash-close td:first-child{ box-shadow: inset 3px 0 0 var(--ah-green); }
tr.cash-row.cash-out td:first-child{ box-shadow: inset 3px 0 0 var(--ah-red); }
tr.cash-row.cash-in, tr.cash-row.cash-close, tr.cash-row.cash-out{ background: transparent !important; }
tr.cash-row.cash-in:hover td, tr.cash-row.cash-close:hover td{ background: rgba(47,212,122,.06) !important; }
tr.cash-row.cash-out:hover td{ background: rgba(255,77,94,.06) !important; }

/* ---------- Статусы ---------- */
.badge{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 10px 3px 8px !important;
  border-radius: 999px !important;
  font-size: 12px !important; font-weight: 700; line-height: 1.5;
  white-space: nowrap;
  background: rgba(255,255,255,.06); color: var(--ah-text-2);
  border: 1px solid var(--ah-line-2);
}
.badge.new, .badge.awaiting_parts, .badge.repairing, .badge.in_progress, .badge.done, .badge.cancelled{
  --c: var(--ah-text-2);
  color: var(--c) !important;
  background: color-mix(in srgb, var(--c) 13%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--c) 32%, transparent) !important;
}
.badge.new::before, .badge.awaiting_parts::before, .badge.repairing::before,
.badge.in_progress::before, .badge.done::before, .badge.cancelled::before{
  content:""; width: 6px; height: 6px; border-radius: 50%; background: var(--c);
  box-shadow: 0 0 8px var(--c);
}
.badge.new{ --c: var(--ah-blue); }
.badge.awaiting_parts{ --c: var(--ah-amber); }
.badge.repairing{ --c: var(--ah-accent); }
.badge.in_progress{ --c: var(--ah-violet); }
.badge.done{ --c: var(--ah-green); }
.badge.cancelled{ --c: var(--ah-red); }
h1 .badge{ font-size: 13px !important; letter-spacing: 0; }

/* ---------- KPI ---------- */
.kpis{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 14px !important; margin: 0 0 18px !important;
}
.kpi{
  position: relative; overflow: hidden;
  padding: 18px 20px !important;
  border-radius: var(--ah-radius) !important;
  background: var(--ah-surface) !important;
  border: 1px solid var(--ah-line) !important;
  box-shadow: var(--ah-shadow) !important;
  color: var(--ah-text) !important;
}
.kpi::before{
  content:""; position:absolute; inset: 0 0 auto 0; height: 2px; background: var(--k);
}
.kpi::after{
  content:""; position:absolute; right:-40px; top:-60px; width:180px; height:180px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--k) 22%, transparent), transparent 70%);
  pointer-events:none;
}
.kpi h4{
  margin: 0 0 8px !important; font-size: 11.5px !important; font-weight: 700 !important;
  text-transform: uppercase; letter-spacing: .08em; color: var(--ah-text-3) !important;
}
.kpi > div{
  font-size: 26px !important; font-weight: 800; letter-spacing: -.02em;
  font-variant-numeric: tabular-nums; color: #fff;
}
.kpi.agreed{ --k: var(--ah-blue); }
.kpi.costs{ --k: var(--ah-red); }
.kpi.profit{ --k: var(--ah-green); }
.kpi.profit > div{ color: #b9f5d3; }

/* ---------- Вкладки ---------- */
nav.tabs, .tabs{
  display: flex !important; gap: 4px !important; flex-wrap: wrap;
  padding: 4px !important; margin: 0 0 18px !important;
  background: var(--ah-bg-2) !important;
  border: 1px solid var(--ah-line) !important;
  border-radius: 12px !important;
  width: fit-content; max-width: 100%;
}
nav.tabs ul, nav.tabs li{ margin:0; padding:0; }
.tabs a{
  padding: 8px 14px !important; border-radius: 9px !important;
  border: 1px solid transparent !important;
  color: var(--ah-text-2) !important; text-decoration: none !important;
  font-size: 13.5px; font-weight: 650;
}
.tabs a:hover{ color: #fff !important; background: rgba(255,255,255,.04) !important; }
.tabs a.active{
  background: var(--ah-surface-3) !important;
  border-color: var(--ah-line-2) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.crm-tab-badge{ background: var(--ah-accent) !important; color: #fff !important; }

/* ---------- Доска (канбан) ---------- */
.board{
  display: grid !important;
  grid-auto-flow: column;
  grid-template-columns: none !important;
  grid-auto-columns: minmax(270px, 1fr);
  gap: 14px !important;
  overflow-x: auto; padding-bottom: 12px;
  align-items: start;
}
.board .column{
  background: rgba(255,255,255,.015) !important;
  border: 1px solid var(--ah-line) !important;
  border-radius: var(--ah-radius) !important;
  padding: 12px !important;
  min-height: 200px;
}
.board .column h3{
  display:flex; align-items:center; justify-content:space-between;
  margin: 2px 4px 12px !important;
  font-size: 12px !important; font-weight: 800; text-transform: uppercase; letter-spacing: .1em;
  color: var(--ah-text-2);
}
.board .column:nth-child(1) h3{ --c: var(--ah-blue); }
.board .column:nth-child(2) h3{ --c: var(--ah-amber); }
.board .column:nth-child(3) h3{ --c: var(--ah-accent); }
.board .column:nth-child(4) h3{ --c: var(--ah-violet); }
.board .column:nth-child(5) h3{ --c: var(--ah-green); }
.board .column:nth-child(6) h3{ --c: var(--ah-red); }
.board .column h3::after{
  content:""; width: 8px; height: 8px; border-radius: 50%; background: var(--c);
  box-shadow: 0 0 10px var(--c);
}
.card-order{
  position: relative;
  background: var(--ah-surface) !important;
  border: 1px solid var(--ah-line) !important;
  border-radius: 12px !important;
  padding: 12px !important; margin: 0 0 10px !important;
  box-shadow: 0 6px 16px -10px rgba(0,0,0,.7);
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.card-order:hover{ border-color: rgba(255,107,31,.35) !important; transform: translateY(-1px); box-shadow: 0 12px 26px -12px rgba(0,0,0,.8); }
.card-order .overlay-link{ position:absolute; inset:0; z-index:1; border-radius: 12px; }
.card-order header{
  display:flex; align-items:center; justify-content:space-between; gap: 8px;
  margin: 0 0 8px !important; padding: 0 !important; background: none !important; border: 0 !important;
}
.card-order header strong{ font-family: var(--ah-mono); font-size: 13px; color: #fff; }
.card-order header .badge{ display: none; } /* статус уже понятен по колонке */
.card-order small{ color: var(--ah-text-3); }
.card-order .controls{
  position: relative; z-index: 2;
  display:flex; gap: 6px; margin: 10px 0 0 !important;
  padding-top: 10px; border-top: 1px dashed var(--ah-line);
}
.card-order .controls select{ margin:0 !important; height: 34px; padding: 4px 10px !important; font-size: 13px !important; }
.card-order .controls button{ margin:0 !important; width:auto !important; padding: 4px 12px !important; font-size: 13px; height: 34px; }

/* ---------- Файлы ---------- */
.files-grid{ gap: 12px !important; }
.file-item{
  background: var(--ah-bg-2) !important; border: 1px solid var(--ah-line) !important;
  border-radius: 12px !important; padding: 8px !important;
}

/* ---------- Комментарии ---------- */
section.card .comments-scroll > article.crm-comment{
  background: var(--ah-bg-2) !important;
  border: 1px solid var(--ah-line) !important;
  border-left: 3px solid var(--ah-line-2) !important;
  box-shadow: none !important;
}
section.card .comments-scroll > article.crm-comment.mine{ border-left-color: var(--ah-accent) !important; }
section.card .comments-scroll > article.crm-comment.is-new{ border-left-color: var(--ah-cyan) !important; }
section.card .comments-scroll > article.crm-comment header{ color: var(--ah-text-3) !important; }

/* ---------- Модалки / диалоги ---------- */
dialog > article, dialog#edit-order-modal, .add-device-modal, .pmz, .parts-modal .modal{
  background: var(--ah-surface) !important;
  border: 1px solid var(--ah-line-2) !important;
  border-radius: 16px !important;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.85) !important;
  color: var(--ah-text) !important;
}
dialog::backdrop, .add-device-backdrop, .pmz-overlay{ background: rgba(3,5,9,.72) !important; backdrop-filter: blur(4px); }
.add-device-field input, .add-device-field textarea, .add-device-field select{
  background: var(--ah-bg-2) !important; border-color: var(--ah-line-2) !important;
}
.add-device-btn-primary, .edit-actions button:not(.secondary), .pmz .btn.primary, .parts-modal .btn.primary{
  background: var(--ah-accent) !important; border-color: var(--ah-accent) !important; color:#fff !important;
}
.edit-order-btn{
  background: rgba(255,107,31,.08) !important; border-color: rgba(255,107,31,.3) !important; color: #ffc9a8 !important;
}
.edit-order-btn:hover{ background: rgba(255,107,31,.16) !important; border-color: var(--ah-accent) !important; color:#fff !important; }

/* Кнопка-иконка удаления */
.btn-icon{ background: var(--ah-surface-3) !important; border-color: var(--ah-line-2) !important; }
.btn-icon-danger{ background: rgba(255,77,94,.14) !important; border-color: rgba(255,77,94,.4) !important; color: #ff9aa5 !important; }
.btn-icon-danger:hover{ background: var(--ah-red) !important; color:#fff !important; }

/* ==========================================================================
   Модуль «Запчасти» (#parts-app) — перебиваем force-skin
   ========================================================================== */
html body #parts-app{ font-family: var(--ah-font) !important; color: var(--ah-text); }
html body #parts-app .parts-toolbar{ margin: 0 0 18px !important; gap: 12px !important; }
html body #parts-app .parts-tabs{
  padding: 4px !important; gap: 4px !important;
  background: var(--ah-bg-2) !important; border: 1px solid var(--ah-line) !important; border-radius: 12px !important;
}
html body #parts-app .parts-tabs .tab{
  background: transparent !important; border: 1px solid transparent !important;
  color: var(--ah-text-2) !important; outline: none !important;
  padding: 7px 12px !important; border-radius: 9px !important; font-weight: 650 !important; font-size: 13.5px !important;
}
html body #parts-app .parts-tabs .tab:hover{ color:#fff !important; background: rgba(255,255,255,.04) !important; }
html body #parts-app .parts-tabs .tab.is-active{
  background: var(--ah-surface-3) !important; border-color: var(--ah-line-2) !important; color: #fff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.35) !important;
}
html body #parts-app .parts-tabs .tab .badge{
  padding: 0 7px !important; min-width: 20px; height: 20px; font-size: 11px !important;
  display: inline-flex; justify-content: center;
}
html body #parts-app .parts-btn,
html body #parts-app button.parts-btn{
  background: var(--ah-surface-3) !important; border: 1px solid var(--ah-line-2) !important;
  color: var(--ah-text) !important; border-radius: 10px !important;
  padding: 9px 14px !important; font-weight: 650 !important; font-size: 14px !important;
}
html body #parts-app .parts-btn:hover{ background: #242b3c !important; }
html body #parts-app .parts-btn.primary{
  background: linear-gradient(180deg, #ff7a2e, #f05c12) !important; border-color: #ff7a2e !important; color:#fff !important;
  box-shadow: 0 8px 20px -10px rgba(255,107,31,.9) !important;
}
html body #parts-app .parts-layout{ grid-template-columns: 240px minmax(0,1fr) !important; gap: 18px !important; }
html body #parts-app .parts-brands{
  background: var(--ah-surface) !important; border: 1px solid var(--ah-line) !important;
  border-radius: var(--ah-radius) !important; padding: 8px !important; gap: 2px !important;
  box-shadow: var(--ah-shadow) !important;
}
html body #parts-app .parts-brands a,
html body #parts-app .parts-brands .brand,
html body #parts-app .parts-brands .brand-btn{
  background: transparent !important; border: 1px solid transparent !important;
  color: var(--ah-text-2) !important; padding: 8px 10px !important; border-radius: 9px !important;
  box-shadow: none !important; transform: none !important; margin: 0 !important; font-weight: 600; font-size: 13.5px;
  outline: none !important;
}
html body #parts-app .parts-brands a:hover,
html body #parts-app .parts-brands .brand:hover,
html body #parts-app .parts-brands .brand-btn:hover{
  background: rgba(255,255,255,.04) !important; color: #fff !important; text-decoration: none !important;
}
html body #parts-app .parts-brands a.is-active,
html body #parts-app .parts-brands .brand.is-active,
html body #parts-app .parts-brands .brand-btn.is-active{
  background: var(--ah-accent-soft) !important; border-color: rgba(255,107,31,.25) !important; color: #fff !important;
}
html body #parts-app .parts-brands .badge,
html body #parts-app .parts-brands .count{
  background: rgba(255,255,255,.06) !important; color: var(--ah-text-2) !important;
  border: 1px solid var(--ah-line) !important; font-size: 11px !important; height: 20px !important;
}
html body #parts-app .parts-brands .is-active .badge,
html body #parts-app .parts-brands .is-active .count{
  background: var(--ah-accent) !important; color: #fff !important; border-color: var(--ah-accent) !important;
}
html body #parts-app .panel-header{
  display:flex; align-items:center; justify-content:space-between; gap: 12px;
  margin: 0 0 12px !important; background: none !important;
}
html body #parts-app .panel-title{ margin: 0; font-size: 18px; font-weight: 800; color: #fff; }
html body #parts-app .parts-search .search-input{
  background: var(--ah-bg-2) !important; border: 1px solid var(--ah-line-2) !important;
  border-radius: 10px !important; padding: 9px 14px 9px 38px !important; height: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236d7588' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: 12px center !important;
}
html body #parts-app .parts-search .search-input:focus{ border-color: var(--ah-accent) !important; box-shadow: 0 0 0 3px rgba(255,107,31,.18) !important; }
html body #parts-app .table-wrap{
  background: var(--ah-surface) !important; border: 1px solid var(--ah-line) !important;
  border-radius: var(--ah-radius) !important; box-shadow: var(--ah-shadow) !important;
}
html body #parts-app .parts-table{ border-radius: 0 !important; }
html body #parts-app .parts-table thead th{
  background: var(--ah-surface-2) !important; color: var(--ah-text-3) !important;
  font-size: 11.5px !important; letter-spacing: .08em; text-transform: uppercase; font-weight: 700 !important;
}
html body #parts-app .parts-table td{ padding: 11px 14px !important; }
html body #parts-app .parts-table th{ padding: 11px 14px !important; }
html body #parts-app .parts-table tr:nth-child(even) td{ background: rgba(255,255,255,.012) !important; }
html body #parts-app .parts-table tbody tr:hover td{ background: rgba(255,107,31,.05) !important; }
html body #parts-app .btn-ico,
html body #parts-app td.actions .btn,
html body #parts-app .col-actions .btn{
  width: 32px !important; height: 32px !important; border-radius: 9px !important; font-size: 15px !important;
  background: var(--ah-surface-3) !important; border: 1px solid var(--ah-line-2) !important; color: var(--ah-text) !important;
  box-shadow: none !important;
}
html body #parts-app td.actions .btn-edit,  html body #parts-app .btn-ico.btn-edit{ color: var(--ah-blue) !important; }
html body #parts-app td.actions .btn-order, html body #parts-app .btn-ico.btn-order{ color: var(--ah-green) !important; }
html body #parts-app td.actions .btn-delete,html body #parts-app .btn-ico.btn-delete{ color: var(--ah-red) !important; }
html body #parts-app td.actions .btn-edit:hover{ background: var(--ah-blue) !important; color:#fff !important; border-color: var(--ah-blue) !important; }
html body #parts-app td.actions .btn-order:hover{ background: var(--ah-green) !important; color:#06130b !important; border-color: var(--ah-green) !important; }
html body #parts-app td.actions .btn-delete:hover{ background: var(--ah-red) !important; color:#fff !important; border-color: var(--ah-red) !important; }

html body #parts-modal-root .parts-modal{
  background: var(--ah-surface) !important; border: 1px solid var(--ah-line-2) !important;
  border-radius: 16px !important; box-shadow: 0 30px 80px -20px rgba(0,0,0,.85) !important;
}
html body #parts-modal-root .parts-modal-backdrop{ background: rgba(3,5,9,.72) !important; backdrop-filter: blur(4px) !important; }
html body #parts-modal-root .parts-form input,
html body #parts-modal-root .parts-form select{ background: var(--ah-bg-2) !important; border-color: var(--ah-line-2) !important; }

.parts-toast__item{ background: var(--ah-surface-2) !important; border:1px solid var(--ah-line-2); border-left-width: 4px !important; }

/* ==========================================================================
   Страница входа
   ========================================================================== */
body.is-auth .app{ grid-template-columns: 1fr !important; }
body.is-auth .sidebar{ display: none !important; }
body.is-auth .app > main.content{
  display: grid; place-items: center; min-height: 100vh; padding: 24px 16px !important;
}
.auth-wrap{ width: 100%; max-width: 400px; margin: 0 auto; }
.auth-wrap .auth-logo{
  display:flex; flex-direction: column; align-items:center; gap: 14px; margin-bottom: 22px; text-align:center;
}
.auth-wrap .auth-logo .logo{
  width: 58px; height: 58px; border-radius: 16px; display:grid; place-items:center;
  background: linear-gradient(140deg, #ff7a2e, #e2480a);
  box-shadow: 0 16px 40px -12px rgba(255,107,31,.8), inset 0 1px 0 rgba(255,255,255,.25);
  color:#fff;
}
.auth-wrap .auth-logo .logo svg{ width: 34px; height: 34px; }
.auth-wrap .auth-logo strong{ font-size: 26px; font-weight: 800; letter-spacing: -.03em; color:#fff; }
.auth-wrap .auth-logo strong span{ color: var(--ah-accent); }
.auth-wrap .card{ padding: 26px !important; }
.auth-wrap .card header{ margin-bottom: 18px !important; }
.auth-wrap .title{ font-size: 22px !important; }
.auth-wrap form.grid{ display: grid !important; grid-template-columns: 1fr !important; gap: 4px !important; }
.auth-wrap form label{ display:block; }
.auth-wrap form input{ display:block; width:100% !important; margin: 6px 0 12px !important; }
html body .auth-wrap form button[type="submit"]{
  width: 100%; margin-top: 8px;
  background: linear-gradient(180deg, #ff7a2e, #f05c12) !important;
  border: 1px solid #ff7a2e !important; color: #fff !important;
  box-shadow: 0 10px 24px -10px rgba(255,107,31,.9) !important;
  padding: .75rem 1rem !important;
}
.auth-foot{ margin-top: 18px; text-align:center; font-size: 12px; color: var(--ah-text-3); }

/* ==========================================================================
   Адаптив
   ========================================================================== */
@media (max-width: 1100px){
  .kpis{ grid-template-columns: 1fr !important; }
}

/* Мобильные элементы скрыты на компьютере */
.ah-topbar, .ah-bottomnav, .ah-overlay, .ah-drawer-close{ display: none; }

/* ==========================================================================
   ТЕЛЕФОНЫ И ПЛАНШЕТЫ (≤ 900px)
   ========================================================================== */
@media (max-width: 900px){
  :root{ --ah-top: 56px; --ah-bottom: 64px; }

  .app{ display: block !important; }

  /* --- Верхняя панель --- */
  .ah-topbar{
    position: sticky; top: 0; z-index: 900;
    display: flex; align-items: center; gap: 10px;
    height: calc(var(--ah-top) + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 12px 0;
    background: rgba(9,11,16,.86);
    backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%);
    border-bottom: 1px solid var(--ah-line);
  }
  .ah-burger, .ah-topbar-new{
    width: 40px; height: 40px; flex: 0 0 40px; padding: 0 !important; margin: 0 !important;
    display: grid !important; place-items: center;
    border-radius: 11px !important;
    background: var(--ah-surface) !important; border: 1px solid var(--ah-line) !important;
    color: var(--ah-text) !important; text-decoration: none !important;
  }
  .ah-burger svg{ width: 21px; height: 21px; }
  .ah-topbar-new{
    margin-left: auto !important; font-size: 24px; font-weight: 500; line-height: 1;
    background: linear-gradient(180deg, #ff7a2e, #f05c12) !important; border-color: #ff7a2e !important; color: #fff !important;
    box-shadow: 0 6px 16px -8px rgba(255,107,31,.9);
  }
  .ah-topbar-brand{ display: flex; align-items: center; gap: 9px; text-decoration: none !important; }
  .ah-topbar-brand .logo{
    width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; color: #fff;
    background: linear-gradient(140deg, #ff7a2e, #e2480a);
  }
  .ah-topbar-brand .logo svg{ width: 19px; height: 19px; }
  .ah-topbar-brand strong{ font-size: 17px; font-weight: 800; color: #fff; letter-spacing: -.02em; }
  .ah-topbar-brand strong span{ color: var(--ah-accent); }

  /* --- Выезжающее меню --- */
  .sidebar{
    position: fixed !important; top: 0; left: 0; bottom: 0; z-index: 1001;
    width: min(300px, 86vw); height: 100% !important;
    padding: calc(18px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom)) !important;
    transform: translateX(-105%); transition: transform .26s cubic-bezier(.2,.8,.2,1);
    background: var(--ah-bg-2) !important;
    box-shadow: 20px 0 60px rgba(0,0,0,.6);
  }
  body.nav-open .sidebar{ transform: none; }
  .ah-overlay{
    display: block; position: fixed; inset: 0; z-index: 1000;
    background: rgba(3,5,9,.6); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
    opacity: 0; pointer-events: none; transition: opacity .2s;
  }
  body.nav-open .ah-overlay{ opacity: 1; pointer-events: auto; }
  body.nav-open{ overflow: hidden; }
  .ah-drawer-close{
    display: grid !important; place-items: center; position: absolute; top: calc(18px + env(safe-area-inset-top)); right: 12px;
    width: 38px; height: 38px; padding: 0 !important; margin: 0 !important;
    background: transparent !important; border: 1px solid var(--ah-line) !important; border-radius: 10px !important;
    color: var(--ah-text-2) !important;
  }
  .ah-drawer-close svg{ width: 18px; height: 18px; }
  .sidebar .menu-item{ padding: 12px 12px !important; font-size: 15px; }
  .sidebar .menu-item.is-active::before{ left: -14px; }

  /* --- Нижняя панель --- */
  .ah-bottomnav{
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
    display: grid; grid-template-columns: repeat(5, 1fr);
    height: calc(var(--ah-bottom) + env(safe-area-inset-bottom));
    padding: 6px 6px env(safe-area-inset-bottom);
    background: rgba(9,11,16,.92);
    backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%);
    border-top: 1px solid var(--ah-line);
  }
  .ah-bottomnav a, .ah-bottomnav button{
    display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    margin: 0 !important; padding: 0 !important; width: auto !important; height: auto;
    background: transparent !important; border: 0 !important; box-shadow: none !important;
    color: var(--ah-text-3) !important; text-decoration: none !important;
    font-size: 10.5px !important; font-weight: 700 !important; letter-spacing: .01em;
    border-radius: 12px !important; position: relative;
  }
  .ah-bottomnav svg{ width: 22px; height: 22px; }
  .ah-bottomnav .is-active{ color: #fff !important; }
  .ah-bottomnav .is-active svg{ color: var(--ah-accent); }
  .ah-bottomnav .is-active::before{
    content:""; position: absolute; top: -6px; width: 26px; height: 3px; border-radius: 0 0 3px 3px;
    background: var(--ah-accent); box-shadow: 0 0 10px rgba(255,107,31,.8);
  }
  .ah-bottomnav .badge--parts{ position: absolute; top: 2px; right: 18%; min-width: 17px; line-height: 16px; text-align: center; font-size: 10px !important; font-weight: 800; padding: 0 5px !important; border-radius: 999px; background: var(--ah-red); color: #fff; box-shadow: 0 0 0 2px rgba(9,11,16,.92); }

  /* --- Контент --- */
  html body .app > main.content,
  html body .app > main.content.container{
    padding: 16px 14px calc(var(--ah-bottom) + env(safe-area-inset-bottom) + 24px) !important;
  }
  body.is-auth .app > main.content{ padding: 24px 16px !important; }

  .page-head{ margin-bottom: 16px !important; align-items: stretch; }
  .page-head > div:first-child{ width: 100%; }
  .page-head .title, h1.title{ font-size: 24px !important; }
  .page-head .actions{
    width: 100%; flex-wrap: nowrap; overflow-x: auto; gap: 8px;
    margin: 0 -14px; padding: 2px 14px 4px; width: calc(100% + 28px);
    scrollbar-width: none;
  }
  .page-head .actions::-webkit-scrollbar{ display: none; }
  .page-head .actions > *, .page-head .actions button, .page-head .actions [role="button"]{
    flex: 0 0 auto; white-space: nowrap; padding: .5rem .85rem !important; font-size: 13.5px !important;
  }

  .card, section.card, article.card{ padding: 16px !important; border-radius: 14px !important; margin-bottom: 14px !important; }

  /* Поля: 16px — иначе iPhone приближает страницу при вводе */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select, textarea{ font-size: 16px !important; min-height: 44px; }
  button, [role="button"], input[type="submit"]{ min-height: 42px; }

  /* Все сетки форм — в одну колонку */
  .grid, form.grid, .grid.two, .grid.three, .grid.four{
    display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important;
  }
  .grid > *{ margin: 0 !important; min-width: 0; }
  .grid label, form label{ display: block; }
  .grid label > input, .grid label > select, .grid label > textarea{ width: 100% !important; margin-top: 6px !important; margin-bottom: 0 !important; }
  .grid .actions, form .actions{ display: flex; gap: 8px; align-self: stretch !important; }
  .grid .actions button, form .actions button{ flex: 1; width: 100% !important; margin: 0 !important; }
  .form-actions{ flex-wrap: wrap; position: static !important; }
  .card > h1.title{ margin-bottom: 14px !important; }
  .form-actions > *{ flex: 1 1 auto; }

  /* KPI — компактные строки */
  .kpis{ gap: 8px !important; margin-bottom: 14px !important; }
  .kpi{ display: flex !important; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px !important; }
  .kpi h4{ margin: 0 !important; font-size: 11px !important; max-width: 55%; }
  .kpi > div{ font-size: 20px !important; white-space: nowrap; }
  .kpi::after{ display: none; }

  /* Вкладки — горизонтальная прокрутка */
  nav.tabs, .tabs{
    flex-wrap: nowrap !important; overflow-x: auto; width: 100% !important;
    scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  nav.tabs::-webkit-scrollbar{ display: none; }
  .tabs a{ white-space: nowrap; flex: 0 0 auto; }

  /* --- Таблицы → карточки --- */
  section.card:has(> table), section.card:has(> .table){ overflow: visible; }
  table.ah-labeled, table.ah-labeled tbody, table.ah-labeled tr, table.ah-labeled td{ display: block; width: 100% !important; }
  table.ah-labeled{ border-spacing: 0 !important; }
  table.ah-labeled thead{ display: none !important; }
  table.ah-labeled tbody tr{
    position: relative;
    margin: 0 0 10px !important; padding: 4px 14px !important;
    background: var(--ah-bg-2) !important;
    border: 1px solid var(--ah-line) !important; border-radius: 12px !important;
    overflow: hidden;
  }
  table.ah-labeled tbody tr:last-child{ margin-bottom: 0 !important; }
  table.ah-labeled tbody td{
    display: flex !important; align-items: center; justify-content: space-between; gap: 14px;
    padding: 9px 0 !important; min-height: 38px;
    text-align: right !important; white-space: normal !important; word-break: break-word;
    border: 0 !important; border-bottom: 1px dashed var(--ah-line) !important;
    background: transparent !important; box-shadow: none !important;
  }
  table.ah-labeled tbody td:last-child{ border-bottom: 0 !important; }
  table.ah-labeled tbody td[data-label]::before{
    content: attr(data-label);
    flex: 0 0 auto; max-width: 45%;
    text-align: left; color: var(--ah-text-3);
    font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  }
  table.ah-labeled tbody td:empty{ display: none !important; }
  table.ah-labeled tbody td.ah-nolabel{ justify-content: flex-end; }
  table.ah-labeled tbody tr.ah-single td{ justify-content: center; text-align: center !important; }
  table.ah-labeled tbody tr:hover td{ background: transparent !important; }
  table.ah-labeled td form{ margin: 0 !important; }
  table.ah-labeled td button{ min-height: 36px; padding: 6px 12px !important; width: auto !important; }

  /* Таблица-карточки без лишней внешней рамки */
  section.card:has(> table.ah-labeled){
    background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important;
  }
  section.card:has(> table.ah-labeled) table.ah-labeled tbody tr{ background: var(--ah-surface) !important; }

  /* Список заказов: код — как заголовок карточки */
  table.ah-labeled tr.js-open{ padding-top: 0 !important; }
  table.ah-labeled tr.js-open td:first-child{
    margin: 0 -14px 4px; padding: 11px 14px !important; width: calc(100% + 28px) !important;
    background: rgba(255,255,255,.025) !important;
    border-bottom: 1px solid var(--ah-line) !important;
  }
  table.ah-labeled tr.js-open td:first-child::before{ display: none; }
  table.ah-labeled tr.js-open td:first-child strong{ font-size: 15px; }
  table.ah-labeled tr.js-open:active{ border-color: var(--ah-accent-line) !important; }

  /* Касса: цвет операции — полоса слева у карточки */
  table.ah-labeled tr.cash-row td:first-child{ box-shadow: none !important; padding-left: 0 !important; }
  table.ah-labeled tr.cash-row.cash-in, table.ah-labeled tr.cash-row.cash-close{ border-left: 3px solid var(--ah-green) !important; }
  table.ah-labeled tr.cash-row.cash-out{ border-left: 3px solid var(--ah-red) !important; }

  /* --- Доска: колонки листаются пальцем --- */
  .board{
    grid-auto-columns: 84vw !important; gap: 10px !important;
    margin: 0 -14px; padding: 0 14px 12px !important;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    scroll-padding: 0 14px;
  }
  .board .column{ scroll-snap-align: start; min-height: 0; }
  .card-order .controls select{ font-size: 16px !important; height: 40px; }
  .card-order .controls button{ height: 40px; }

  /* --- Модальные окна — во всю ширину --- */
  dialog > article, dialog#edit-order-modal, .add-device-modal, .pmz, .parts-modal .modal,
  #cash-info-modal > div, #cash-delete-modal > div{
    width: calc(100vw - 20px) !important; max-width: none !important; min-width: 0 !important;
    max-height: calc(100vh - 40px) !important; overflow: auto !important;
    padding: 18px 16px !important; margin: 0 auto !important;
  }
  #cash-info-modal > div, #cash-delete-modal > div{ background: var(--ah-surface) !important; border: 1px solid var(--ah-line-2); }
  .edit-grid, .pmz form, .parts-modal .row, .parts-modal .form{ grid-template-columns: 1fr !important; }
  .add-device-field{ flex-basis: 100% !important; min-width: 0 !important; }
  html body #parts-modal-root .parts-modal{ width: calc(100vw - 20px) !important; padding: 16px !important; }
  html body #parts-modal-root .grid2, html body #parts-modal-root .grid3{ grid-template-columns: 1fr !important; }

  /* --- Склад запчастей --- */
  html body #parts-app .parts-toolbar{ flex-direction: column; align-items: stretch !important; gap: 10px !important; }
  html body #parts-app, html body #parts-app .parts-toolbar, html body #parts-app .parts-main{ min-width: 0; max-width: 100%; }
  html body #parts-app .parts-tabs{ overflow-x: auto; flex-wrap: nowrap !important; scrollbar-width: none; max-width: 100%; min-width: 0; }
  html body #parts-app .parts-tabs .tab{ flex: 1 0 auto; white-space: nowrap; justify-content: center; }
  html body #parts-app .parts-actions{ display: flex; gap: 8px; width: 100%; min-width: 0; }
  html body #parts-app .parts-actions .parts-btn{ flex: 1 1 0 !important; min-width: 0 !important; justify-content: center !important; }
  html body #parts-app .parts-actions .parts-btn[data-action="refresh"]{ flex: 0 0 46px; }
  html body #parts-app .parts-layout{ display: block !important; }
  html body #parts-app .parts-brands{
    display: flex !important; flex-wrap: nowrap; overflow-x: auto; gap: 6px !important;
    position: static !important; padding: 6px !important; margin-bottom: 12px; max-width: 100% !important; width: 100% !important;
    scrollbar-width: none;
  }
  html body #parts-app .parts-brands > *{ flex: 0 0 auto; }
  html body #parts-app .parts-brands .brand-list{ flex-direction: row !important; gap: 6px !important; }
  html body #parts-app .parts-brands a,
  html body #parts-app .parts-brands .brand,
  html body #parts-app .parts-brands .brand-btn{ white-space: nowrap; gap: 8px !important; width: auto !important; }
  html body #parts-app .panel-header{ flex-direction: column; align-items: stretch; }
  html body #parts-app .parts-search{ max-width: none !important; min-width: 0 !important; margin: 0 !important; }
  html body #parts-app .search-input{ font-size: 16px !important; height: 44px !important; }
  html body #parts-app .table-wrap{ background: transparent !important; border: 0 !important; box-shadow: none !important; overflow: visible !important; }
  html body #parts-app .parts-table.ah-labeled tbody td{ padding: 9px 0 !important; }
  html body #parts-app .parts-table.ah-labeled tr:nth-child(even) td{ background: transparent !important; }
  html body #parts-app .parts-table.ah-labeled tbody tr{ background: var(--ah-surface) !important; }
  html body #parts-app .parts-table.ah-labeled .actions-group, html body #parts-app .row-actions{ gap: 8px !important; }
  html body #parts-app .parts-table.ah-labeled td.actions .btn,
  html body #parts-app .parts-table.ah-labeled .btn-ico{ width: 40px !important; height: 40px !important; }

  /* Карточка заказа: блоки «Техника/Клиент» */
  .card .grid.two > div > div{ padding: 3px 0; }
  .files-grid{ grid-template-columns: repeat(2, 1fr) !important; }

  .parts-toast{ top: auto !important; bottom: calc(var(--ah-bottom) + 12px) !important; left: 12px; right: 12px !important; align-items: stretch !important; }
  .parts-toast__item{ max-width: none !important; min-width: 0 !important; }
}

@media (max-width: 380px){
  .ah-bottomnav span{ font-size: 9.5px; }
  .kpi > div{ font-size: 18px !important; }
}

/* ==========================================================================
   Приложение (PWA): кнопка и подсказка установки
   ========================================================================== */
.sidebar .ah-install{
  display: flex !important; align-items: center; justify-content: center; gap: 8px;
  width: 100%; margin: 0 !important; padding: 10px 12px !important;
  font-size: 13.5px; font-weight: 700 !important;
  background: var(--ah-accent-soft) !important; color: #ffc9a8 !important;
  border: 1px solid var(--ah-accent-line) !important; border-radius: 10px !important;
}
.sidebar .ah-install[hidden]{ display: none !important; }
.sidebar .ah-install svg{ width: 17px; height: 17px; }
.sidebar .ah-install:hover{ background: rgba(255,107,31,.2) !important; color: #fff !important; }

.ah-install-banner{
  position: fixed; z-index: 1100; left: 12px; right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  display: flex; align-items: center; gap: 12px;
  padding: 12px 12px 12px 14px; border-radius: 16px;
  background: rgba(21,26,36,.96); border: 1px solid var(--ah-line-2);
  box-shadow: 0 20px 50px -10px rgba(0,0,0,.8);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  transform: translateY(140%); opacity: 0; transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .25s;
  max-width: 520px; margin: 0 auto;
}
.ah-install-banner.show{ transform: none; opacity: 1; }
.ah-ib-icon{
  flex: 0 0 44px; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: linear-gradient(140deg, #ff7a2e, #e2480a);
}
.ah-ib-icon svg{ width: 26px; height: 26px; }
.ah-ib-text{ flex: 1; min-width: 0; font-size: 12.5px; line-height: 1.4; color: var(--ah-text-2); }
.ah-ib-text strong{ display: block; font-size: 14px; color: #fff; margin-bottom: 2px; }
.ah-ib-text b{ color: var(--ah-text); }
.ah-install-banner .ah-ib-go{
  flex: 0 0 auto; margin: 0 !important; padding: 9px 14px !important; min-height: 0 !important; width: auto !important;
  font-size: 13px !important; color: #fff !important; border: 0 !important;
  background: linear-gradient(180deg, #ff7a2e, #f05c12) !important;
}
.ah-install-banner .ah-ib-x{
  flex: 0 0 30px; width: 30px; height: 30px; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
  display: grid; place-items: center; font-size: 20px; line-height: 1;
  background: transparent !important; border: 0 !important; color: var(--ah-text-3) !important;
}
@media (max-width: 900px){
  body:not(.is-auth) .ah-install-banner{ bottom: calc(var(--ah-bottom) + 10px + env(safe-area-inset-bottom)); }
}

/* Режим приложения (открыто с иконки на экране) */
body.is-standalone{ -webkit-tap-highlight-color: transparent; overscroll-behavior-y: none; }
body.is-standalone .ah-bottomnav a, body.is-standalone .ah-bottomnav button,
body.is-standalone .sidebar .menu-item{ -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
body.is-auth.is-standalone .app > main.content{ padding-top: calc(24px + env(safe-area-inset-top)) !important; }
@media (min-width: 901px){
  body.is-standalone .sidebar{ padding-top: calc(20px + env(safe-area-inset-top)) !important; }
}
