/* style.css — палитра Юла-групп (CMYK) */
:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --text:#101828;
  --muted:#667085;
  --border:#e5e7eb;
  --shadow:0 10px 30px rgba(16,24,40,.08);

  /* Акценты по логотипу: голубой, пурпурный, жёлтый */
  --brand-cyan:#00A0D0;
  --brand-cyan-dark:#0088b3;
  --brand-cyan-light:#b3e5f7;
  --brand-glow:rgba(0,160,208,.14);
  
  /* Масштаб - базовые значения для 100%. Увеличены по умолчанию, сдвиги согласованы для 80–120%. */
  --zoom-scale: 1;
  --font-base: 17px;
  --font-num: 22px;
  --font-badge: 14px;
  --font-heading: 13px;
  --row-padding-y: 18px;
  --row-padding-x: 14px;
  --row-spacing: 16px;
  --col-padding-x: 10px;
  /* Множитель для отступов между колонками - уменьшается при увеличении масштаба */
  --col-gap-scale: 1;

  /* Палитра статусов */
  --st-cancel: #ffb2b2;
  --st-nacc: #f3f4f6;
  --st-accept: #fff2a6;
  --st-print: #b3e5f7;
  --st-post: #c3bbff;
  --st-ready: #d9f5a9;
  --st-done: #6fe29a;

  /* Лампочки */
  --st-cancel-dot:#ef4444;
  --st-nacc-dot:  #9ca3af;
  --st-accept-dot:#f59e0b;
  --st-print-dot: var(--brand-cyan);
  --st-post-dot:  #7c3aed;
  --st-ready-dot: #65a30d;
  --st-done-dot:  #16a34a;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

/* ---------- Sidebar Menu ---------- */
.sidebar{
  position:fixed;
  left:0;
  top:0;
  bottom:0;
  width:280px;
  background:#fff;
  border-right:1px solid var(--border);
  box-shadow:2px 0 12px rgba(0,0,0,.08);
  z-index:100;
  transform:translateX(-100%);
  transition:transform 0.3s ease;
  display:flex;
  flex-direction:column;
}
.sidebar[aria-hidden="false"]{
  transform:translateX(0);
}

.sidebar__overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.4);
  z-index:99;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.3s ease, visibility 0.3s ease;
}
.sidebar__overlay[aria-hidden="false"]{
  opacity:1;
  visibility:visible;
}

.sidebar__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 20px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
}

.sidebar__title{
  font-size:16px;
  font-weight:700;
  color:var(--text);
}

.sidebar__close{
  width:32px;
  height:32px;
  border:1px solid var(--border);
  border-radius:8px;
  background:#fff;
  font-size:18px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all 0.15s ease;
}
.sidebar__close:hover{
  background:#f9fafb;
  border-color:#cbd5e1;
}

.sidebar__nav{
  flex:1;
  padding:12px 0;
  overflow-y:auto;
}

.sidebar__item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 20px;
  color:var(--text);
  text-decoration:none;
  transition:all 0.15s ease;
  border-left:3px solid transparent;
}
.sidebar__item:hover{
  background:#f9fafb;
  color:var(--text);
}
.sidebar__item--hidden{ display:none !important; }
.sidebar__item--active{
  background:#f1f5f9;
  border-left-color:var(--brand-cyan);
  font-weight:600;
  color:var(--brand-cyan);
}

.sidebar__icon{
  font-size:20px;
  width:24px;
  text-align:center;
}

.sidebar__label{
  font-size:15px;
}
.sidebar__newTabBtn{
  margin-left:auto; padding:2px 6px; border:none; background:transparent;
  color:#9ca3af; font-size:16px; cursor:pointer; border-radius:4px; line-height:1;
  opacity:0; transition:opacity .2s;
}
.sidebar__item:hover .sidebar__newTabBtn{ opacity:1; }
.sidebar__newTabBtn:hover{ background:rgba(59,130,246,.15); color:#3b82f6; }

/* ---------- AppBar ---------- */
.appBar{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 20px;
  border-bottom:1px solid var(--border);
  background:rgba(246,247,251,.95);
  backdrop-filter:saturate(140%) blur(8px);
}

.appBar__left{
  display:flex;
  align-items:center;
  gap:16px;
}

.appBar__menuBtn{
  width:40px;
  height:40px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-size:20px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all 0.15s ease;
}
.appBar__menuBtn:hover{
  background:#f9fafb;
  border-color:#cbd5e1;
}

.appBar__brand{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.appBar__title{
  font-weight:700;
  font-size:16px;
  color:var(--text);
}

.appBar__status{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
}

.appBar__statusDot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#9ca3af;
  display:inline-block;
}
.appBar__status[data-online="true"] .appBar__statusDot{
  background:#16a34a;
}

.appBar__statusText{
  color:var(--muted);
}

.appBar__right{
  display:flex;
  align-items:center;
  gap:12px;
}

.appBar__user{
  display:flex;
  align-items:center;
  gap:10px;
  padding:6px 12px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:10px;
}

.appBar__userName{
  font-size:14px;
  font-weight:600;
  color:var(--text);
}

.appBar__logoutBtn{
  height:28px;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:8px;
  background:#fff;
  font-size:12px;
  color:var(--muted);
  cursor:pointer;
}

.appBar__logoutBtn:hover{
  background:#f9fafb;
  color:var(--text);
}

.appBar__time{
  font-size:14px;
  color:var(--muted);
  font-weight:500;
  padding:8px 12px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:10px;
}

.appBar__refreshBtn{
  height:40px;
  padding:0 16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-weight:600;
  font-size:14px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:8px;
  transition:all 0.15s ease;
}
.appBar__refreshBtn:hover{
  background:#f9fafb;
  border-color:#cbd5e1;
}

.appBar__refreshIcon{
  font-size:16px;
}

.appBar__lastUpdate{
  font-size:11px;
  color:var(--muted);
}

/* ---------- FilterBar ---------- */
.filterBar{
  position:sticky;
  top:64px;
  z-index:25;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 20px;
  border-bottom:1px solid var(--border);
  background:#fff;
  flex-wrap:wrap;
}

.filterBar__group{
  display:flex;
  align-items:center;
  gap:8px;
}

.filterBar__label{
  font-size:13px;
  color:var(--muted);
  font-weight:500;
  white-space:nowrap;
}

.filterBar__search{
  position:relative;
  display:flex;
  align-items:center;
  flex:1;
  min-width:280px;
}

.filterBar__input{
  width:100%;
  height:40px;
  padding:0 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-size:14px;
  outline:none;
}
.filterBar__input:focus{
  border-color:var(--brand-cyan-light);
  box-shadow:0 0 0 4px var(--brand-glow);
}

.filterBar__select{
  height:40px;
  padding:0 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-size:14px;
  outline:none;
  cursor:pointer;
  min-width:100px;
}
.filterBar__select:focus{
  border-color:var(--brand-cyan-light);
  box-shadow:0 0 0 4px var(--brand-glow);
}

.filterBar__count{
  margin-left:auto;
  font-size:13px;
  color:var(--muted);
  font-weight:500;
  white-space:nowrap;
}

/* ---------- Segmented Control ---------- */
.segmentedControl{
  display:flex;
  background:#f1f5f9;
  border-radius:10px;
  padding:4px;
  gap:4px;
}

.segmentedControl__btn{
  height:32px;
  padding:0 16px;
  border:none;
  border-radius:8px;
  background:transparent;
  font-size:13px;
  font-weight:600;
  color:var(--muted);
  cursor:pointer;
  transition:all 0.15s ease;
  white-space:nowrap;
}
.segmentedControl__btn[aria-selected="true"]{
  background:#fff;
  color:var(--text);
  box-shadow:0 1px 3px rgba(0,0,0,.1);
}
.segmentedControl__btn:hover:not([aria-selected="true"]){
  color:var(--text);
}

/* ---------- Multi-select (статусы) ---------- */
.ms{position:relative; display:inline-block}
.ms__btn{
  height:40px;
  padding:0 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  font-weight:600;
  font-size:14px;
  color:var(--text);
  min-width:150px;
  text-align:left;
}
.ms__btn:focus{outline:none; border-color:var(--brand-cyan-light); box-shadow:0 0 0 4px var(--brand-glow);}
.ms__btn::after{content:"▾"; float:right; color:var(--muted); margin-left:8px}

.ms__menu{
  position:absolute;
  right:0;
  top:42px;
  min-width:240px;
  max-height:340px;
  overflow:auto;
  padding:8px;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow);
  display:none;
}
.ms.is-open .ms__menu{display:block}

.ms__item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
  user-select:none;
}
.ms__item:hover{background:#f3f4f6}
.ms__item input{width:16px;height:16px}

/* ---------- Content Area ---------- */
.contentArea{
  padding:20px;
}

.contentArea__view{
  display:none;
}

.contentArea__view--table.active,
.contentArea__view--cards.active{
  display:block;
}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.tableWrap{
  overflow:hidden;
}

.tbl{
  width:100%;
  border-collapse:separate;
  border-spacing:0 calc(var(--row-spacing) * var(--zoom-scale));
  table-layout:fixed;
  padding:calc(14px * var(--zoom-scale)) calc(18px * var(--zoom-scale)) calc(18px * var(--zoom-scale));
}
.tbl thead th{
  font-size:calc(var(--font-heading) * var(--zoom-scale));
  color:var(--muted);
  font-weight:700;
  text-align:left;
  padding:calc(12px * var(--zoom-scale)) calc(var(--col-padding-x) * var(--col-gap-scale) * var(--zoom-scale));
  letter-spacing:0.02em;
  text-transform:uppercase;
}
.tbl tbody td{
  padding:calc(var(--row-padding-y) * var(--zoom-scale)) calc(var(--row-padding-x) * var(--col-gap-scale) * var(--zoom-scale));
  vertical-align:middle;
  font-size:calc(var(--font-base) * var(--zoom-scale));
  font-weight:400;
  line-height:1.5;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#1e293b;
}

/* Жирный номер заказа */
.tbl tbody td.col-num{
  font-weight:700;
  font-size:calc(var(--font-num) * var(--zoom-scale));
  letter-spacing:0.02em;
  color:#0f172a;
}

.tbl tbody tr{
  background:transparent;
  transition: transform 0.4s ease-out, opacity 0.3s ease;
}
.tbl tbody tr td:first-child{border-top-left-radius:calc(8px * var(--zoom-scale)); border-bottom-left-radius:calc(8px * var(--zoom-scale));}
.tbl tbody tr td:last-child{border-top-right-radius:calc(8px * var(--zoom-scale)); border-bottom-right-radius:calc(8px * var(--zoom-scale));}

.row{
  border:1px solid rgba(229,231,235,.8);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:all 0.2s ease;
  position:relative;
}
.row:hover{
  box-shadow:0 2px 6px rgba(0,0,0,.08);
  border-color:rgba(203,213,225,.9);
}

/* Цветной фон строки с прозрачностью + тонкая полоса слева */
.row--accept td{
  background:rgba(255, 242, 166, 0.4) !important;
}
.row--accept td:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-accept-dot);
}

.row--print td{
  background:rgba(179, 229, 247, 0.4) !important;
}
.row--print td:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-print-dot);
}

.row--post td{
  background:rgba(195, 187, 255, 0.4) !important;
}
.row--post td:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-post-dot);
}

.row--ready td{
  background:rgba(217, 245, 169, 0.4) !important;
}
.row--ready td:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-ready-dot);
}

.row--done td{
  background:rgba(111, 226, 154, 0.4) !important;
}
.row--done td:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-done-dot);
}

.row--cancel td{
  background:rgba(255, 178, 178, 0.4) !important;
}
.row--cancel td:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-cancel-dot);
}

.row--nacc td{
  background:rgba(243, 244, 246, 0.4) !important;
}
.row--nacc td:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-nacc-dot);
}

.row td{
  border-top:1px solid rgba(229,231,235,.9);
  border-bottom:1px solid rgba(229,231,235,.9);
}
.row td:first-child{border-left:1px solid rgba(229,231,235,.9);}
.row td:last-child{border-right:1px solid rgba(229,231,235,.9);}

.badge{
  display:inline-flex;
  align-items:center;
  gap:calc(8px * var(--zoom-scale));
  padding:calc(6px * var(--zoom-scale)) calc(14px * var(--zoom-scale));
  border-radius:calc(6px * var(--zoom-scale));
  border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.85);
  font-weight:600;
  font-size:calc(var(--font-badge) * var(--zoom-scale));
  letter-spacing:0.01em;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}

/* Увеличенные размеры для бейджей в карточках */
.cardItem .badge{
  font-size:calc(15px * var(--zoom-scale));
  padding:calc(8px * var(--zoom-scale)) calc(16px * var(--zoom-scale));
}
.dot{
  width:calc(8px * var(--zoom-scale));
  height:calc(8px * var(--zoom-scale));
  border-radius:50%;
  display:inline-block;
  flex-shrink:0;
  box-shadow:0 0 0 calc(2px * var(--zoom-scale)) rgba(255,255,255,.8);
}

/* Увеличенные точки для карточек */
.cardItem .dot{
  width:calc(10px * var(--zoom-scale));
  height:calc(10px * var(--zoom-scale));
}
.dot--draft{background:#9ca3af}
.dot--accept{background:var(--st-accept-dot)}
.dot--print{background:var(--st-print-dot)}
.dot--post{background:var(--st-post-dot)}
.dot--ready{background:var(--st-ready-dot)}
.dot--done{background:var(--st-done-dot)}
.dot--cancel{background:var(--st-cancel-dot)}
.dot--nacc{background:var(--st-nacc-dot)}
.dot--overdue{background:#dc2626; box-shadow:0 0 0 calc(2px * var(--zoom-scale)) rgba(255,255,255,.9);}

.blank-not-printed{
  display:inline-block;
  width:calc(7px * var(--zoom-scale)); height:calc(7px * var(--zoom-scale));
  border-radius:calc(2px * var(--zoom-scale));
  background:#f59e0b; opacity:0.75;
  margin-left:calc(4px * var(--zoom-scale));
  vertical-align:middle; cursor:pointer;
}

.col-num__inner{display:inline-flex; align-items:center; gap:calc(10px * var(--zoom-scale));}

.cardItem__overdue{
  position:absolute;
  top:calc(14px * var(--zoom-scale));
  left:calc(14px * var(--zoom-scale));
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}
.cardItem__overdue .dot{width:calc(10px * var(--zoom-scale)); height:calc(10px * var(--zoom-scale));}

.muted{
  color:var(--muted);
  padding:calc(20px * var(--zoom-scale)) calc(14px * var(--zoom-scale));
  font-size:calc(16px * var(--zoom-scale));
  text-align:center;
  font-weight:400;
}

.act{
  display:flex;
  gap:calc(8px * var(--zoom-scale));
  align-items:center;
  justify-content:flex-start;
}
.selectAct{
  height:calc(38px * var(--zoom-scale));
  border-radius:calc(6px * var(--zoom-scale));
  font-size:calc(16px * var(--zoom-scale));
  font-weight:500;
  padding:0 calc(14px * var(--zoom-scale));
  border:1px solid var(--border);
  background:#fff;
}

.comm{display:flex; gap:calc(8px * var(--zoom-scale)); align-items:center;}
.comm__text{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
  font-size:calc(16px * var(--zoom-scale));
  color:#475569;
  line-height:1.4;
}
.comm__hint{
  font-size:calc(12px * var(--zoom-scale));
  color:#64748b;
  border:1px solid var(--border);
  border-radius:calc(4px * var(--zoom-scale));
  padding:calc(4px * var(--zoom-scale)) calc(8px * var(--zoom-scale));
  background:#fff;
  transition: all 0.15s ease;
  cursor:pointer;
  font-weight:500;
  flex-shrink:0;
  white-space:nowrap;
}
.comm[data-has="1"]{cursor:pointer;}
.comm[data-has="1"]:hover .comm__hint{
  background:#f1f5f9;
  border-color:#cbd5e1;
  color:#475569;
  box-shadow: 0 1px 3px rgba(0,0,0,.1);
}

/* column widths - адаптивные под масштаб, оптимизированы для всех масштабов */
.col-num{width:calc(80px * var(--zoom-scale) * var(--col-gap-scale))}
.col-manager{
  width:calc(110px * var(--zoom-scale) * var(--col-gap-scale));
  font-weight:500;
  color:#334155;
}
.col-client{
  width:calc(130px * var(--zoom-scale) * var(--col-gap-scale));
  font-weight:400;
  color:#475569;
}
.col-status{width:calc(170px * var(--zoom-scale) * var(--col-gap-scale))}
.col-deadline{
  width:calc(135px * var(--zoom-scale) * var(--col-gap-scale));
  font-weight:500;
  color:#475569;
  font-family:'Segoe UI', system-ui, -apple-system, sans-serif;
}
.col-type{
  width:calc(180px * var(--zoom-scale) * var(--col-gap-scale));
  font-weight:400;
  color:#64748b;
  white-space:normal;
  word-break:break-word;
  line-height:1.4;
  font-size:calc(14px * var(--zoom-scale));
}

.hide-lg{display:table-cell}
@media (max-width: 1100px){
  .hide-lg{display:none}
}
@media (max-width: 900px){
  .filterBar{
    flex-direction:column;
    align-items:stretch;
  }
  .filterBar__group{
    width:100%;
  }
  .filterBar__search{
    min-width:100%;
  }
  .filterBar__count{
    margin-left:0;
    width:100%;
    text-align:center;
  }
  .appBar__right{
    flex-wrap:wrap;
    gap:8px;
  }
  .appBar__lastUpdate{
    width:100%;
    text-align:center;
  }
}

/* ---------- Клиенты ---------- */
.clientsCard{ padding:16px 20px; }
.clientsToolbar{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.clientsToolbar__label{ font-size:13px; color:var(--muted); font-weight:500; white-space:nowrap; }
.clientsToolbar__select{
  height:36px; padding:0 10px; border:1px solid var(--border); border-radius:10px;
  background:#fff; font-size:14px; min-width:120px; cursor:pointer; outline:none;
}
.clientsToolbar__select:focus{ border-color:var(--brand-cyan-light); box-shadow:0 0 0 2px var(--brand-glow); }
.clientsCount{ font-size:13px; color:var(--muted); }
.tbl--clients{ table-layout:auto; }
.tbl--clients .col-id{ width:60px; }
.tbl--clients .col-name{ min-width:120px; }
.tbl--clients .col-phone{ min-width:110px; }
.tbl--clients .col-email{ min-width:140px; }
.tbl--clients .col-inn{ width:100px; }
.tbl--clients .col-comment{ width:160px; min-width:160px; }
.tbl--clients .col-tg-id{ width:100px; min-width:90px; }
.tbl--clients .col-tg-id .clientsInput{ width:100%; min-width:70px; max-width:140px; }
.tbl--clients .col-actions{ width:160px; white-space:nowrap; }
.tbl--clients .col-payers{ width:120px; text-align:center; }
.tbl--clients th[data-sort]{ user-select:none; }
.tbl--clients th[data-sort]:hover{ background:rgba(0,160,208,.06); }
.tbl--clients .sortArr{ font-size:10px; color:var(--brand-cyan); }

.clientsToolbar__search{
  flex:1; min-width:220px; max-width:520px;
  height:36px; padding:0 14px; border:1px solid var(--border); border-radius:10px;
  background:#fff; font-size:14px; outline:none;
}
.clientsToolbar__search:focus{ border-color:var(--brand-cyan-light); box-shadow:0 0 0 2px var(--brand-glow); }

/* Payers badge in clients row */
.payersBadge{
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--border); background:#f8fafc; color:var(--muted);
  padding:3px 10px; border-radius:999px; font-size:12px; font-weight:600;
  cursor:pointer; transition:all .15s;
}
.payersBadge:hover{ border-color:var(--brand-cyan); background:rgba(0,160,208,.06); color:var(--brand-cyan-dark); }
.payersBadge--has{ background:#dcfce7; border-color:#bbf7d0; color:#166534; }
.payersBadge--has:hover{ background:#bbf7d0; }
.payersBadge--open{ background:rgba(0,160,208,.1); border-color:var(--brand-cyan); color:var(--brand-cyan-dark); }
.payersBadge__chevron{ font-size:10px; }
.payersBadge__count{ font-variant-numeric:tabular-nums; }

/* Expanded payers block */
.clients-row--payers > td{ padding:0 !important; background:#f8fafc; border-bottom:2px solid var(--border); }
.payersBlock{ padding:14px 18px; }
.payersBlock__header{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:10px;
}
.payersBlock__title{ font-size:13px; font-weight:600; color:var(--text); }

.payers__table{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.payers__head{ background:#f1f5f9; padding:8px 12px; font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.4px; text-align:left; border-bottom:1px solid var(--border); }
.payers__head--actions{ width:200px; text-align:right; }
.payers__cell{ padding:8px 12px; font-size:13px; border-bottom:1px solid #f1f3f5; }
.payers__row:last-child .payers__cell{ border-bottom:none; }
.payers__cell--inn{ font-family:monospace; font-weight:600; color:var(--text); width:140px; }
.payers__cell--name{ color:var(--text); }
.payers__cell--comment{ color:var(--muted); font-size:12px; }
.payers__cell--actions{ text-align:right; white-space:nowrap; }
.payers__row--empty .payers__cell{ padding:14px; text-align:center; }
.payers__input{ width:100%; padding:5px 8px; border:1px solid var(--border); border-radius:6px; font-size:13px; }
.payers__input:focus{ border-color:var(--brand-cyan); outline:none; box-shadow:0 0 0 2px rgba(0,160,208,.1); }
.payers__row--edit .payers__cell{ background:#fefce8; }

/* Журнал изменений: панель как на Табло (filterBar внутри карточки) */
.changelogCard .changelogFilterBar{
  position:relative;
  top:auto;
  border-radius:12px;
  margin-bottom:16px;
}
.changelogFilterBar__input--short{ width:140px; min-width:140px; }
/* Дата: тот же шрифт и стиль, что и у остальных полей (как body и filterBar__input) */
.changelogFilterBar__date,
.changelogCard input[type="date"]{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size:14px;
  font-weight:400;
  color:var(--text);
  min-width:140px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.changelogFilterBar__date::-webkit-calendar-picker-indicator,
.changelogCard input[type="date"]::-webkit-calendar-picker-indicator{
  opacity:0.7;
  cursor:pointer;
}
.changelogFilterBar__date::-webkit-datetime-edit,
.changelogCard input[type="date"]::-webkit-datetime-edit{
  font-family: inherit;
  font-size: inherit;
}
/* Таблица журнала: на всю ширину, ровное распределение колонок */
.tbl--changelog{
  table-layout:fixed;
  width:100%;
}
.tbl--changelog .changelog-col-id{ width:5%; min-width:48px; text-align:right; white-space:nowrap; }
.tbl--changelog .changelog-col-date{ width:18%; min-width:140px; white-space:nowrap; }
.tbl--changelog .changelog-col-order{ width:16%; min-width:100px; overflow:hidden; text-overflow:ellipsis; }
.tbl--changelog .changelog-col-status{ width:36%; min-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:normal; }
.tbl--changelog .changelog-col-user{ width:15%; min-width:90px; overflow:hidden; text-overflow:ellipsis; }
.tbl--changelog tbody td.changelog-col-status{ white-space:normal; }

/* Консоль: блоки на главном экране и панель редактирования */
.consoleCard{
  padding:28px 32px 36px;
  max-width:100%;
}
.consoleCard__head{
  margin-bottom:32px;
  padding-bottom:20px;
  border-bottom:1px solid var(--border);
}
.consoleCard__title{
  font-size:1.5rem;
  font-weight:700;
  margin:0 0 10px 0;
  color:var(--text);
  letter-spacing:-0.02em;
}
.consoleCard__hint{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
  max-width:560px;
}

.consoleBlocksGrid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:20px;
}
.consoleBlock{
  display:flex;
  flex-direction:column;
  background:#f8fafc;
  border:1px solid var(--border);
  border-radius:12px;
  padding:22px;
  cursor:pointer;
  transition:border-color 0.15s ease, box-shadow 0.15s ease;
  text-align:left;
}
.consoleBlock:hover{
  border-color:#cbd5e1;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  background:#fff;
}
.consoleBlock__icon{ font-size:24px; margin-bottom:12px; line-height:1; }
.consoleBlock__title{ font-size:16px; font-weight:700; color:var(--text); margin:0 0 4px 0; }
.consoleBlock__hint{ font-size:13px; color:var(--muted); margin:0 0 8px 0; line-height:1.35; }
.consoleBlock__count{ font-size:12px; font-weight:600; color:var(--muted); }

/* Overlay: панель редактирования справочника (как orderBlankOverlay / clientDashboard) */
body.consolePanel-open{ overflow:hidden; }
.consoleOverlay{
  position:fixed; inset:0; z-index:100; display:none;
  align-items:center; justify-content:center; padding:20px;
}
.consoleOverlay[aria-hidden="false"]{ display:flex; }
.consoleOverlay__backdrop{
  position:absolute; inset:0;
  background:rgba(16,24,40,.45);
  backdrop-filter:blur(4px);
  cursor:pointer;
}
.consoleOverlay__panel{
  position:relative;
  width:92vw;
  max-width:1100px;
  max-height:calc(100vh - 40px);
  background:#fff;
  border-radius:16px;
  border:1px solid var(--border);
  box-shadow:0 24px 48px rgba(0,0,0,.2);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.consoleOverlay__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.consoleOverlay__title{ margin:0; font-size:18px; font-weight:700; color:var(--text); }
.consoleOverlay__close{
  width:36px; height:36px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-size:16px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  transition:background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.consoleOverlay__close:hover{ background:#f1f5f9; border-color:#cbd5e1; color:var(--text); }
.consoleOverlay__body{
  padding:16px;
  overflow:auto;
  flex:1;
  min-height:0;
}
.consoleOverlay__foot{
  padding:12px 16px;
  border-top:1px solid var(--border);
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  flex-shrink:0;
}
.consoleOverlay__hint{ margin:0 0 12px 0; font-size:13px; color:var(--muted); line-height:1.4; }
.consoleOverlay__listWrap{ margin-bottom:16px; overflow:auto; }
.consoleOverlay__table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
  table-layout:fixed;
}
.consoleOverlay__table thead th{
  text-align:left;
  padding:10px 12px;
  font-weight:600;
  color:var(--muted);
  background:#f1f5f9;
  border:1px solid var(--border);
  border-bottom:2px solid var(--border);
}
.consoleOverlay__table tbody td{
  padding:8px 12px;
  border:1px solid var(--border);
  vertical-align:middle;
}
.consoleOverlay__table tbody tr:nth-child(even) td{ background:#fafbfc; }
.consoleOverlay__table tbody tr:hover td{ background:#f8fafc; }
.consoleOverlay__table .col-actions{ white-space:nowrap; width:180px; overflow:visible; text-overflow:clip; }
.consoleOverlay__table tbody td.col-actions{ overflow:visible; text-overflow:clip; }
.consoleOverlay__table .col-actions .btn--small{ margin-right:6px; }
.consoleOverlay__table .col-actions .btn--small:last-child{ margin-right:0; }
/* Кнопка удаления: красный квадрат с белым крестиком (перебиваем .btn) */
.consoleOverlay .consoleOverlay__btnDel{
  width:28px;
  height:28px;
  min-width:28px;
  padding:0;
  background:#dc2626 !important;
  border:1px solid #b91c1c !important;
  color:#fff !important;
  font-size:18px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:6px;
  flex-shrink:0;
}
.consoleOverlay .consoleOverlay__btnDel:hover{
  background:#b91c1c !important;
  border-color:#991b1b !important;
  color:#fff !important;
}
.consoleOverlay .consoleOverlay__btnDel .consoleOverlay__btnDelIcon{
  font-size:1.25em;
  line-height:1;
  font-weight:300;
  color:#fff;
}
.consoleConfirmPopover{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  z-index:10;
  margin:0;
}
.consoleConfirmPopover.is-open{ display:block; }
.consoleOverlay__thName{ width:auto; }
.consoleOverlay__editCell{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.consoleOverlay__editCell .orderForm__input{ flex:1; min-width:120px; }
.consoleOverlay__add{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.consoleOverlay__input{ flex:1; min-width:0; max-width:400px; }
.consoleSection__table{ width:100%; max-width:480px; }
.consoleSection__table .col-actions{ white-space:nowrap; }
.consoleSection__add{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.consoleSection__input{ max-width:280px; }
.consoleSection__input--inline{ max-width:200px; margin-right:8px; }
.consoleSection__addBtn{ flex-shrink:0; }
.btn--small{ height:28px; padding:0 10px; font-size:13px; }
.consoleSection__cellVal .btn--small{ margin-left:4px; }
.consoleOverlay__editCell .btn--small{ flex-shrink:0; }

@media (max-width: 640px){
  .consoleBlocksGrid{ grid-template-columns:1fr; }
  .consoleCard{ padding:20px 20px 28px; }
  .consoleCard__head{ margin-bottom:24px; padding-bottom:16px; }
  .consoleCard__title{ font-size:1.25rem; }
}

/* Цвета бейджа «стало» по статусам (как на Табло) */
.badge--draft{ background:#f3f4f6; color:#6b7280; border:1px dashed #9ca3af; }
.badge--accept{ background:var(--st-accept); color:#92400e; border-color:rgba(0,0,0,.06); }
.badge--print{ background:var(--st-print); color:var(--brand-cyan-dark); border-color:rgba(0,0,0,.06); }
.badge--post{ background:var(--st-post); color:#5b21b6; border-color:rgba(0,0,0,.06); }
.badge--ready{ background:var(--st-ready); color:#4d7c0f; border-color:rgba(0,0,0,.06); }
.badge--done{ background:var(--st-done); color:#166534; border-color:rgba(0,0,0,.06); }
.badge--cancel{ background:var(--st-cancel); color:#b91c1c; border-color:rgba(0,0,0,.06); }
.badge--nacc{ background:var(--st-nacc); color:var(--muted); border-color:rgba(0,0,0,.06); }

.clientsAnalyticsBtn{ padding:0 6px; min-width:28px; }
.clientsInput{
  width:100%;
  min-width:80px;
  padding:6px 10px;
  border:1px solid var(--border);
  border-radius:8px;
  font-size:14px;
  outline:none;
}
.clientsInput:focus{ border-color:var(--brand-cyan); }
.clients-row--edit td{ vertical-align:middle; }
.btn{
  height:36px;
  padding:0 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
}
.btn:hover{ background:#f9fafb; }
.btn--primary{ background:var(--brand-cyan); color:#fff; border-color:var(--brand-cyan); }
.btn--primary:hover{ background:var(--brand-cyan-dark); }
.btn--secondary{ background:#fff; color:var(--text); }
.btn--danger{ background:#dc2626; color:#fff; border-color:#dc2626; }
.btn--danger:hover{ background:#b91c1c; }
.btn--sm{ height:28px; padding:0 10px; font-size:12px; }

/* ---------- Добавление заказа (форма) ---------- */
.orderFormCard{ padding:24px 28px; max-width:960px; margin-left:auto; margin-right:auto; }
.orderFormCard__header{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:24px;
  padding-bottom:20px;
  border-bottom:1px solid var(--border);
}
.orderFormCard__headerLeft{ flex:1; min-width:0; }
.orderFormCard__headerRight{
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-end;
}
.orderFormCard__title{ margin:0 0 8px; font-size:22px; font-weight:700; color:var(--text); }
.orderFormCard__desc{ margin:0 0 0; font-size:14px; color:var(--muted); }
.orderFormCard__dateLabel{ font-size:12px; font-weight:500; color:var(--muted); }
.orderFormCard__dateInput{
  min-height:36px;
  padding:6px 10px;
  border:1px solid var(--border);
  border-radius:8px;
  font-size:14px;
  background:var(--bg);
  cursor:default;
  color:var(--text);
}
.orderFormCard__required{ color:var(--muted); }
.orderForm__section{ margin-bottom:28px; }
.orderForm__section:last-of-type{ margin-bottom:24px; }
.orderForm__sectionTitle{
  margin:0 0 14px;
  font-size:13px;
  font-weight:600;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:0.02em;
  padding-bottom:8px;
  border-bottom:1px solid var(--border);
}
.orderForm__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:16px 20px;
}
.orderForm__grid--row{ margin-top:0; }
.orderForm__grid--row + .orderForm__grid--row{ margin-top:16px; }
.orderForm__field{ display:flex; flex-direction:column; gap:6px; }
.orderForm__field--wide{ grid-column:1 / -1; }
.orderForm__field--deadline{ min-width:0; }
.orderForm__deadlineWrap{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:nowrap;
}
.orderForm__deadlineWrap .orderForm__input[type="date"]{ flex:1; min-width:130px; }
.orderForm__select--hour{ width:auto; min-width:68px; flex-shrink:0; }
.orderForm__select--wide{ min-width:220px; }
.orderForm__label{
  font-size:13px;
  font-weight:500;
  color:var(--text);
}
.orderForm__input,
.orderForm__select,
.orderForm__textarea{
  width:100%;
  min-height:40px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:14px;
  font-family:inherit;
  outline:none;
  background:#fff;
}
.orderForm__textarea{ min-height:100px; resize:vertical; }
.orderForm__input:focus,
.orderForm__select:focus,
.orderForm__textarea:focus{
  border-color:var(--brand-cyan-light);
  box-shadow:0 0 0 3px var(--brand-glow);
}
.orderForm__input::placeholder,
.orderForm__textarea::placeholder{ color:#9ca3af; }
.orderForm__input[readonly]{ background:var(--bg); cursor:default; }
.orderForm__input--auto{ font-weight:600; color:var(--text-main); background:var(--bg-alt, #f0f4f8); }
.orderForm__autoBadge{ display:inline-block; font-size:10px; font-weight:600; color:#fff; background:#3b82f6; padding:1px 6px; border-radius:8px; margin-left:6px; vertical-align:middle; letter-spacing:0.5px; text-transform:uppercase; }
.orderForm__hint{ font-size:12px; margin-top:2px; }
.orderForm__hint--error{ color:#dc2626; }
.orderForm__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  padding-top:8px;
  border-top:1px solid var(--border);
}

/* Кастомные выпадающие списки (всегда открываются вниз) */
.orderForm__customSelectWrap{ position:relative; }
.orderForm__customSelectTrigger{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:40px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:14px;
  font-family:inherit;
  background:#fff;
  color:var(--text);
  cursor:pointer;
  outline:none;
  text-align:left;
}
.orderForm__customSelectTrigger:hover{ border-color:#cbd5e1; }
.orderForm__customSelectTrigger:focus{
  border-color:var(--brand-cyan-light);
  box-shadow:0 0 0 3px var(--brand-glow);
}
.orderForm__customSelectTriggerText{ flex:1; min-width:0; }
.orderForm__customSelectTriggerArrow{ flex-shrink:0; margin-left:8px; font-size:10px; color:var(--muted); }
.orderForm__customSelectDropdown{
  position:absolute;
  left:0;
  right:0;
  top:100%;
  bottom:auto;
  margin-top:4px;
  max-height:220px;
  overflow-y:auto;
  background:#fff;
  border:1px solid var(--border);
  border-radius:10px;
  box-shadow:var(--shadow);
  z-index:25;
  display:none;
}
.orderForm__customSelectDropdown[aria-hidden="false"]{ display:block; }
.orderForm__customSelectOption{
  display:block;
  width:100%;
  padding:10px 12px;
  text-align:left;
  font-size:14px;
  color:var(--text);
  background:transparent;
  border:none;
  cursor:pointer;
  transition:background 0.15s ease;
}
.orderForm__customSelectOption:hover,
.orderForm__customSelectOption:focus{ background:var(--bg); outline:none; }
.orderForm__customSelectOption:not(:last-child){ border-bottom:1px solid var(--border); }
.orderForm__customSelectWrap--hour{ min-width:68px; width:auto; }
.orderForm__customSelectWrap--hour .orderForm__customSelectTrigger{ min-width:68px; }
.orderForm__customSelectWrap--wide{ min-width:220px; }

/* Выпадающий список клиентов (добавление заказа) */
.orderForm__clientWrap{ position:relative; }
.orderForm__clientDropdown{
  position:absolute;
  left:0;
  right:0;
  top:100%;
  bottom:auto;
  margin-top:4px;
  max-height:240px;
  overflow-y:auto;
  background:#fff;
  border:1px solid var(--border);
  border-radius:10px;
  box-shadow:var(--shadow);
  z-index:20;
  display:none;
}
.orderForm__clientDropdown[aria-hidden="false"]{
  display:block;
}
.orderForm__clientDropdownItem{
  display:block;
  width:100%;
  padding:10px 12px;
  text-align:left;
  font-size:14px;
  color:var(--text);
  background:transparent;
  border:none;
  cursor:pointer;
  transition:background 0.15s ease;
}
.orderForm__clientDropdownItem:hover,
.orderForm__clientDropdownItem:focus{
  background:var(--bg);
  outline:none;
}
.orderForm__clientDropdownItem:not(:last-child){
  border-bottom:1px solid var(--border);
}
.orderForm__clientDropdownEmpty{
  padding:12px;
  font-size:13px;
  color:var(--muted);
  text-align:center;
}

/* ---------- Оформление нового заказа v2 (юзерфрендли: ширина, закругления, подсветка пустых) ---------- */
.orderFormV2.card{
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
  padding:28px 32px;
  background:#fff;
  border-radius:12px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  border:1px solid #e5e7eb;
}
.orderFormV2 .orderFormV2__form{ background:transparent; color:#374151; max-width:100%; }
.orderFormV2 .orderForm__label,
.orderFormV2 .orderFormV2__equipmentBlockTitle,
.orderFormV2 .orderFormV2__worksHead span,
.orderFormV2 .orderFormV2__sectionTitle,
.orderFormV2 .orderFormV2__grandTotalLabel{ color:#374151; }
.orderFormV2 .orderForm__input,
.orderFormV2 .orderForm__select,
.orderFormV2 .orderForm__textarea{
  border:1px solid #d1d5db;
  background:#fff;
  color:#1f2937;
  border-radius:8px;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.orderFormV2 .orderForm__input.orderFormV2__empty,
.orderFormV2 .orderForm__select.orderFormV2__empty,
.orderFormV2 .orderForm__textarea.orderFormV2__empty{
  background:#fef8f8;
  border-color:#fecaca;
}
.orderFormV2 .orderForm__input.orderFormV2__filled,
.orderFormV2 .orderForm__select.orderFormV2__filled,
.orderFormV2 .orderForm__textarea.orderFormV2__filled{
  background:#fff;
  border-color:#d1d5db;
}
.orderFormV2 .orderForm__input:focus,
.orderFormV2 .orderForm__select:focus,
.orderFormV2 .orderForm__textarea:focus{
  border-color:var(--brand-cyan, #0ea5e9);
  outline:none;
  box-shadow:0 0 0 3px rgba(14,165,233,.12);
}
.orderFormV2__section{ margin-bottom:24px; }
#v2PrintMenuSection{ margin-top:28px; }
.orderFormV2__headerRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:20px;
  flex-wrap:wrap;
}
.orderFormV2__headerTitle{ margin:0; font-size:22px; font-weight:700; color:#111827; }
.orderFormV2__headerFields{
  display:flex;
  align-items:flex-end;
  gap:16px;
  flex-wrap:wrap;
}
.orderFormV2__rowBlock{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:16px;
  align-items:end;
  margin-bottom:16px;
}
.orderFormV2__rowBlock--second{ margin-bottom:0; }
.orderFormV2__shipWrap{ min-width:0; }
.orderFormV2__shipRow{
  display:flex;
  gap:10px;
  align-items:flex-end;
  flex-wrap:nowrap;
}
.orderFormV2__shipDateField{ flex:1; min-width:0; max-width:150px; }
.orderFormV2__shipHourField{ flex:0 0 auto; width:120px; min-width:120px; }
.orderFormV2__hourSelectWrap{ position:relative; }
.orderFormV2__hourTrigger{
  width:100%;
  min-height:40px;
  padding:8px 12px;
  border:1px solid #d1d5db;
  border-radius:8px;
  background:#fff;
  font-size:14px;
  color:#374151;
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  box-sizing:border-box;
}
.orderFormV2__hourTrigger:hover{ border-color:#9ca3af; }
.orderFormV2__hourSelectWrap.orderFormV2__empty .orderFormV2__hourTrigger{ background:#fef8f8; border-color:#fecaca; }
.orderFormV2__hourSelectWrap.orderFormV2__filled .orderFormV2__hourTrigger{ background:#fff; border-color:#d1d5db; }
.orderFormV2__hourTriggerText{ flex:1; text-align:left; }
.orderFormV2__hourTriggerArrow{ font-size:10px; color:#6b7280; margin-left:6px; }
.orderFormV2__hourDropdown{
  position:absolute;
  left:0;
  right:0;
  top:100%;
  z-index:25;
  max-height:200px;
  overflow-y:auto;
  background:#fff;
  border:1px solid #d1d5db;
  border-radius:8px;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  margin-top:4px;
  display:none;
}
.orderFormV2__hourDropdown[aria-hidden="false"]{ display:block; }
.orderFormV2__hourDropdown button{
  display:block;
  width:100%;
  padding:8px 12px;
  text-align:left;
  border:none;
  background:#fff;
  font-size:14px;
  color:#374151;
  cursor:pointer;
}
.orderFormV2__hourDropdown button:hover{ background:#f9fafb; }
.orderFormV2__hourDropdown button:not(:last-child){ border-bottom:1px solid #f3f4f6; }
.orderFormV2__rowBlockSpacer{ display:block; }
@media (max-width:640px){
  .orderFormV2__rowBlock{ grid-template-columns:1fr; }
  .orderFormV2__rowBlockSpacer{ display:none; }
  .orderFormV2__shipHourField{ width:120px; min-width:120px; flex:0 0 120px; }
}
.orderFormV2__gridPayment{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
  align-items:end;
}
@media (max-width:640px){ .orderFormV2__gridPayment{ grid-template-columns:1fr; } }
.orderFormV2__searchWrap{ position:relative; }
.orderFormV2__searchWrap--cell{ position:relative; width:100%; }
.orderFormV2__searchWrap--cell .orderFormV2__dropdown{ min-width:180px; }
.orderFormV2__dropdown{
  position:absolute;
  left:0;
  right:0;
  top:100%;
  z-index:500;
  max-height:220px;
  overflow-y:auto;
  background:#fff;
  border:1px solid #d1d5db;
  border-radius:8px;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  margin-top:4px;
  display:none;
}
.orderFormV2__dropdown[aria-hidden="false"]{ display:block; }
.orderFormV2__dropdown button,
.orderFormV2__dropdown .orderFormV2__dropdownItem{
  display:block;
  width:100%;
  padding:10px 12px;
  text-align:left;
  border:none;
  border-bottom:1px solid #f3f4f6;
  background:#fff;
  font-size:14px;
  color:#374151;
  cursor:pointer;
}
.orderFormV2__dropdown button:first-child,
.orderFormV2__dropdown .orderFormV2__dropdownItem:first-child{ border-radius:8px 8px 0 0; }
.orderFormV2__dropdown button:last-child,
.orderFormV2__dropdown .orderFormV2__dropdownItem:last-child{ border-bottom:none; border-radius:0 0 8px 8px; }
.orderFormV2__dropdown button:hover,
.orderFormV2__dropdown .orderFormV2__dropdownItem:hover{ background:#f9fafb; }
.orderFormV2__dropdownItem--add{ color:#3b82f6; font-weight:600; border-top:1px solid #e5e7eb; }
.orderFormV2__dropdownItem--add:hover{ background:#eff6ff; }
.orderFormV2__checkItem{
  display:flex; align-items:center; gap:8px;
  padding:8px 12px;
  cursor:pointer; user-select:none;
  border-bottom:1px solid #f3f4f6;
  font-size:14px; color:#374151;
}
.orderFormV2__checkItem:last-child{ border-bottom:none; }
.orderFormV2__checkItem:hover{ background:#f9fafb; }
.orderFormV2__checkItem input[type="checkbox"]{
  width:15px; height:15px; flex-shrink:0;
  cursor:pointer; accent-color:var(--brand-cyan,#0ea5e9);
}
.orderFormV2__addBlockBtn{
  margin-top:12px;
  padding:10px 18px;
  border:1px solid #d1d5db;
  border-radius:8px;
  background:#fff;
  color:#6b7280;
  font-size:14px;
  cursor:pointer;
  transition:border-color .15s, color .15s;
}
.orderFormV2__addBlockBtn:hover{ border-color:var(--brand-cyan, #0ea5e9); color:var(--brand-cyan, #0ea5e9); }
.orderFormV2__equipmentList{ display:flex; flex-direction:column; gap:20px; }
.orderFormV2__subcontractList{
  display:flex;
  flex-direction:column;
  gap:20px;
  max-width:75%;
  min-width:0;
}
.orderFormV2__equipmentBlock{
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:16px;
  background:#fafbfc;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  min-width:0;
}
.orderFormV2__equipmentBlockHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}
.orderFormV2__equipmentBlockTitle{ font-weight:600; font-size:15px; color:#374151; }
.orderFormV2__headBtns{ display:flex; align-items:center; gap:8px; }
.orderFormV2__addInlineBtn{
  width:26px;
  height:26px;
  border:1.5px solid #b8860b;
  border-radius:50%;
  background:#f1c40f;
  font-size:15px;
  line-height:1;
  cursor:pointer;
  color:#1a1a1a;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background .15s, filter .15s;
}
.orderFormV2__addInlineBtn:hover{ background:#e6b800; filter:brightness(1.05); }
.orderFormV2__delBlockBtn,
.orderFormV2__delWorkBtn{
  width:26px;
  height:26px;
  border:1.5px solid rgba(255,255,255,.9);
  border-radius:50%;
  background:#c0392b;
  font-size:14px;
  line-height:1;
  cursor:pointer;
  color:#fff;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background .15s, filter .15s;
}
.orderFormV2__delBlockBtn:hover,
.orderFormV2__delWorkBtn:hover{ background:#a93226; filter:brightness(1.1); }
.orderFormV2__confirmPopover{
  position:fixed;
  z-index:10000;
  min-width:220px;
  max-width:320px;
  padding:12px 14px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:10px;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
  display:none;
}
.orderFormV2__confirmPopover.is-open{ display:block; }
.orderFormV2__confirmText{ margin:0 0 12px; font-size:14px; line-height:1.4; color:#374151; }
.orderFormV2__confirmActions{ display:flex; gap:8px; justify-content:flex-start; }
.orderFormV2__confirmBtn{
  padding:6px 14px;
  font-size:13px;
  border-radius:6px;
  cursor:pointer;
  border:1px solid #d1d5db;
  background:#fff;
  color:#374151;
  transition:background .15s, border-color .15s;
}
.orderFormV2__confirmBtn--yes{ background:#c0392b; border-color:#c0392b; color:#fff; }
.orderFormV2__confirmBtn--yes:hover{ background:#a93226; }
.orderFormV2__confirmBtn--no:hover{ background:#f3f4f6; }
.orderFormV2__inlineConfirm{ display:inline-flex; align-items:center; gap:6px; margin-left:6px; font-size:12px; animation:fadeIn .15s ease; }
.orderFormV2__inlineConfirm .orderFormV2__confirmText{ color:#DC2626; font-weight:600; margin:0; font-size:12px; white-space:nowrap; }
.orderFormV2__confirmYes{ background:#DC2626; color:#fff; border:none; border-radius:4px; padding:2px 8px; font-size:11px; font-weight:600; cursor:pointer; white-space:nowrap; }
.orderFormV2__confirmYes:hover{ background:#B91C1C; }
.orderFormV2__confirmNo{ background:#F1F5F9; color:#64748B; border:none; border-radius:4px; padding:2px 8px; font-size:11px; font-weight:600; cursor:pointer; white-space:nowrap; }
.orderFormV2__confirmNo:hover{ background:#E2E8F0; }
/* Float the confirm outside narrow table cells */
.orderFormV2__workRowDel{ position:relative; }
.orderFormV2__workRowDel .orderFormV2__inlineConfirm{ position:absolute; right:0; top:50%; transform:translateY(-50%); background:#fff; border:1px solid #E2E8F0; border-radius:8px; padding:6px 10px; box-shadow:0 4px 12px rgba(0,0,0,.12); z-index:10; margin-left:0; }
/* Hide spinners on number inputs in order form, except qty */
.orderFormV2 input[type="number"]:not([data-edit="qty"])::-webkit-inner-spin-button,
.orderFormV2 input[type="number"]:not([data-edit="qty"])::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.orderFormV2 input[type="number"]:not([data-edit="qty"]){ -moz-appearance:textfield; }
.orderFormV2__equipmentBlockFields{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:12px;
  margin-bottom:16px;
}
.orderFormV2__worksWrap{
  margin-top:12px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:12px;
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  min-width:0;
}
.orderFormV2__worksHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
  font-weight:500;
  font-size:14px;
  color:#374151;
}
.orderFormV2__worksTableWrap{
  width:100%;
  min-width:0;
  border-radius:8px;
  overflow:visible;
}
.orderFormV2__worksTable{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  font-size:13px;
}
/* Ширины колонок в % — таблица всегда вписывается в контейнер, без горизонтального скролла */
.orderFormV2__worksTable .orderFormV2__col--size1{ width:11%; }
.orderFormV2__worksTable .orderFormV2__col--size2{ width:11%; }
.orderFormV2__worksTable .orderFormV2__col--qty{ width:10%; }
.orderFormV2__worksTable .orderFormV2__col--area{ width:9%; }
.orderFormV2__worksTable .orderFormV2__col--processing{ width:20%; }
.orderFormV2__worksTable .orderFormV2__col--whiteCmyk{ width:13%; }
.orderFormV2__worksTable .orderFormV2__col--price{ width:14%; }
.orderFormV2__worksTable .orderFormV2__col--del{ width:6%; }
.orderFormV2__worksTable th,
.orderFormV2__worksTable td{
  padding:6px 8px;
  border:1px solid #e5e7eb;
  text-align:left;
  vertical-align:middle;
  box-sizing:border-box;
}
.orderFormV2__worksTable th{ background:#f9fafb; font-weight:500; font-size:12px; color:#374151; }
.orderFormV2__worksTable th:nth-child(1),
.orderFormV2__worksTable th:nth-child(2),
.orderFormV2__worksTable th:nth-child(4){ white-space:normal; line-height:1.3; }
.orderFormV2__worksTable td{ font-size:13px; }
.orderFormV2__cellInput{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:6px;
  font-size:13px;
}
/* Поля размер 1/2 — узкие (4 цифры), кол-во — на всю ширину ячейки */
.orderFormV2__worksTable td:nth-child(1) .orderFormV2__cellInput,
.orderFormV2__worksTable td:nth-child(2) .orderFormV2__cellInput{ width:4.5em; max-width:100%; }
.orderFormV2__worksTable td:nth-child(3) .orderFormV2__cellInput{ max-width:100%; }
.orderFormV2__worksTable td:nth-child(1) input[type="number"],
.orderFormV2__worksTable td:nth-child(2) input[type="number"],
.orderFormV2__worksTable td:nth-child(7) input[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
}
.orderFormV2__worksTable td:nth-child(1) input[type="number"]::-webkit-inner-spin-button,
.orderFormV2__worksTable td:nth-child(1) input[type="number"]::-webkit-outer-spin-button,
.orderFormV2__worksTable td:nth-child(2) input[type="number"]::-webkit-inner-spin-button,
.orderFormV2__worksTable td:nth-child(2) input[type="number"]::-webkit-outer-spin-button,
.orderFormV2__worksTable td:nth-child(7) input[type="number"]::-webkit-inner-spin-button,
.orderFormV2__worksTable td:nth-child(7) input[type="number"]::-webkit-outer-spin-button{
  -webkit-appearance:none; margin:0;
}
.orderFormV2__worksTable th:last-child,
.orderFormV2__worksTable td:last-child{
  text-align:center;
  padding-left:4px;
  padding-right:8px;
  overflow:visible;
}
.orderFormV2__workRowDel{
  text-align:center;
  vertical-align:middle;
}
.orderFormV2__workRowDel .orderFormV2__delWorkBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
/* Material row inside works table — under comment row */
/* Визуальный разделитель между группами работ */
.orderFormV2__workCommentRow + .orderFormV2__workRow td{ border-top:4px solid #9ca3af; padding-top:14px; }
.orderFormV2__workMaterialRow{ background:#fafafa; }
.orderFormV2__workMaterialRow td{ border:1px solid #e5e7eb; vertical-align:middle; padding:6px 8px; text-align:left; }
.orderFormV2__workMaterialCell .orderFormV2__materialLabel{ display:block; margin-bottom:4px; font-size:12px; font-weight:500; color:#6b7280; text-align:center; }
.orderFormV2__workMaterialCell .orderFormV2__searchWrap--material{ display:block; width:100%; position:relative; }
.orderFormV2__workMaterialCell .orderFormV2__materialInput{ width:100%; box-sizing:border-box; border-radius:6px; font-size:13px; padding:5px 10px; }
.orderFormV2__workCommentCell .orderFormV2__commentsLabel{ display:block; margin-bottom:4px; font-size:12px; font-weight:500; color:#6b7280; }
.orderFormV2__workCommentInput{
  width:100%;
  min-height:32px;
  box-sizing:border-box;
  border:1px solid #d1d5db;
  border-radius:6px;
  font-size:13px;
  resize:vertical;
  display:block;
}
.orderFormV2__areaDisplay,
.orderFormV2__blockTotalValue{ font-weight:500; color:#374151; }
.orderFormV2__processingInput{ width:100%; min-width:0; box-sizing:border-box; border-radius:6px; font-size:13px; }
.orderFormV2__whiteCmykSelect{ width:100%; min-width:0; box-sizing:border-box; border-radius:6px; font-size:13px; }
.orderFormV2__worksFooter td{ background:#f9fafb; font-weight:500; border:1px solid #e5e7eb; vertical-align:middle; }
.orderFormV2__commentsCell{ min-width:0; }
.orderFormV2__commentsLabel{ display:block; margin-bottom:4px; font-size:13px; font-weight:500; color:#374151; }
.orderFormV2__blockComments{
  width:100%;
  min-height:52px;
  box-sizing:border-box;
  border:1px solid #d1d5db;
  border-radius:6px;
  font-size:13px;
  resize:none;
  transition:min-height .2s ease;
}
.orderFormV2__blockComments.orderFormV2__blockComments--expanded{ min-height:120px; }
.orderFormV2__discountCell{ vertical-align:middle; white-space:nowrap; }
.orderFormV2__discountLabel{ display:block; margin-bottom:4px; font-size:13px; font-weight:500; color:#374151; }
.orderFormV2__blockDiscount{ width:100%; min-width:70px; box-sizing:border-box; }
.orderFormV2__blockTotalCell{ text-align:right; vertical-align:middle; }
.orderFormV2__blockTotalLabel{ display:block; margin-bottom:2px; font-size:13px; font-weight:500; color:#374151; line-height:1.3; }
.orderFormV2__blockTotalValue{ display:block; font-weight:600; }
.orderFormV2__sectionTotal{ margin-top:20px; }
.orderFormV2__totalRow{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:24px;
  flex-wrap:wrap;
}
.orderFormV2__totalTitle{
  margin-right:auto;
  font-size:1.5rem;
  font-weight:700;
  color:#111827;
  line-height:1.2;
  align-self:center;
}
.orderFormV2__totalRow .orderForm__field.orderFormV2__totalField{ max-width:140px; }
.orderFormV2__totalRow .orderFormV2__totalField--discount{ max-width:90px; }
.orderFormV2__totalValue{
  display:block;
  min-height:40px;
  padding:8px 0;
  font-size:16px;
  font-weight:500;
  color:#111827;
  line-height:1.4;
}
.orderFormV2__totalAreaValue{ font-weight:500; }
.orderFormV2__finalPriceValue{ font-weight:700; font-size:18px; }
.orderFormV2__discountInput{
  width:100%;
  max-width:72px;
  text-align:center;
  box-sizing:border-box;
}
#v2_order_discount{
  appearance:textfield;
  -moz-appearance:textfield;
}
#v2_order_discount::-webkit-inner-spin-button,
#v2_order_discount::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.orderFormV2__deliveryRow{
  display:flex;
  align-items:flex-end;
  gap:24px;
  flex-wrap:wrap;
}
.orderFormV2__deliveryField{ max-width:120px; }
.orderFormV2__deliveryCheckWrap{
  min-height:40px;
  display:flex;
  align-items:center;
  cursor:pointer;
}
.orderFormV2__deliveryCheckbox{
  width:40px;
  height:40px;
  margin:0;
  cursor:pointer;
  flex-shrink:0;
  accent-color:var(--brand-cyan, #0ea5e9);
}
/* Поле цены доставки — без стрелочек, только ручной ввод */
#v2_delivery_price{
  appearance:textfield;
  -moz-appearance:textfield;
}
#v2_delivery_price::-webkit-inner-spin-button,
#v2_delivery_price::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
/* Поле суммы оплаты — без стрелочек, только ручной ввод */
#v2_payment_sum{
  appearance:textfield;
  -moz-appearance:textfield;
}
#v2_payment_sum::-webkit-inner-spin-button,
#v2_payment_sum::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
/* --- Order Card Preview (карточка заказа для копирования) --- */
.orderCard__section{ margin-top:16px; }
.orderCard__wrap{ display:flex; flex-direction:column; align-items:center; gap:12px; }
.orderCard{
  width:320px;
  border:2px dashed #6b7280;
  border-radius:4px;
  overflow:hidden;
  font-family: Arial, sans-serif;
  font-size:14px;
  background:#fff;
}
.orderCard__headerRow{
  background:#22c55e;
  padding:6px 10px;
  text-align:center;
}
.orderCard__headerInput{
  width:100%;
  text-align:center;
  background:transparent;
  border:1px dashed rgba(255,255,255,0.4);
  border-radius:4px;
  color:#fff;
  font-weight:700;
  font-size:14px;
  font-style:italic;
  padding:4px 8px;
  outline:none;
  font-family: Arial, sans-serif;
}
.orderCard__headerInput::placeholder{ color:rgba(255,255,255,0.7); font-style:italic; }
.orderCard__headerInput:focus{ border-color:rgba(255,255,255,0.8); }
.orderCard__table{
  width:100%;
  border-collapse:collapse;
}
.orderCard__table td{
  padding:6px 12px;
  border:1px solid #d1d5db;
}
.orderCard__label{
  background:#fef08a;
  font-weight:700;
  color:#374151;
  white-space:nowrap;
  width:42%;
  text-align:right;
}
.orderCard__value{
  background:#dbeafe;
  color:#1e3a5f;
  font-weight:600;
  text-align:center;
}
.orderCard__copyBtns{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.orderCard__copyBtn{
  font-size:13px;
  padding:8px 20px;
  border-radius:8px;
  transition: background .2s, color .2s;
}
.orderCard__copyBtn--ok{
  background:#22c55e !important;
  color:#fff !important;
  border-color:#22c55e !important;
}
/* Hide card section for production role */
.orderFormV2--production .orderCard__section{ display:none; }

.orderFormV2__grandTotalWrap{
  margin:24px 0;
  padding:16px;
  background:#f9fafb;
  border:1px solid #e5e7eb;
  border-radius:10px;
  font-size:18px;
  color:#374151;
}
.orderFormV2__grandTotalLabel{ margin-right:8px; }
.orderFormV2__grandTotalValue{ font-weight:700; }
.orderFormV2__grandTotalCurrency{ margin-left:4px; }

/* --- Файлы (макеты) — attachment zone --- */
.orderFormV2__attachZone{ margin-top:8px; }
.orderFormV2__attachDropArea{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:28px 16px; border:2px dashed #d1d5db; border-radius:12px;
  background:#f9fafb; text-align:center; transition:border-color .2s, background .2s;
  cursor:pointer;
}
.orderFormV2__attachDropArea--active,
.orderFormV2__attachDropArea:hover{ border-color:#6366f1; background:#eef2ff; }
.orderFormV2__attachDropIcon{ font-size:28px; line-height:1; }
.orderFormV2__attachDropText{ font-size:14px; color:#6b7280; }
.orderFormV2__attachBtn{
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 18px; font-size:13px; cursor:pointer;
}
.orderFormV2__attachHint{ font-size:12px; color:#9ca3af; }
.orderFormV2__attachList{
  display:flex; flex-wrap:wrap; gap:12px; margin-top:12px;
}
.orderFormV2__attachItem{
  position:relative; display:flex; flex-direction:column; align-items:center;
  width:120px; padding:10px 8px 8px; border:1px solid #e5e7eb; border-radius:10px;
  background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.05); overflow:hidden;
}
.orderFormV2__attachThumb{
  width:96px; height:72px; object-fit:cover; border-radius:6px; background:#f3f4f6;
  display:flex; align-items:center; justify-content:center;
}
.orderFormV2__attachThumb--pdf{
  font-size:22px; font-weight:700; color:#ef4444; background:#fef2f2;
  border:1px solid #fecaca; border-radius:6px; width:96px; height:72px;
  display:flex; align-items:center; justify-content:center;
}
.orderFormV2__attachName{
  margin-top:6px; font-size:11px; color:#374151; max-width:104px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center;
}
.orderFormV2__attachSize{ font-size:10px; color:#9ca3af; margin-top:2px; }
.orderFormV2__attachRemove{
  position:absolute; top:2px; right:2px; width:22px; height:22px;
  border:none; background:rgba(239,68,68,.1); color:#ef4444;
  border-radius:50%; font-size:15px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s;
}
.orderFormV2__attachRemove:hover{ background:rgba(239,68,68,.25); }
.orderFormV2__attachDownload{
  margin-top:4px; font-size:11px; color:#6366f1; text-decoration:none;
  cursor:pointer; border:none; background:none; padding:0;
}
.orderFormV2__attachDownload:hover{ text-decoration:underline; }

/* Read-only mode: скрыть загрузку/удаление */
.orderFormV2--readonly .orderFormV2__attachDropArea{ display:none; }
.orderFormV2--readonly .orderFormV2__attachRemove{ display:none; }
.orderFormV2--readonly .orderFormV2__attachList:empty::after{
  content:'Нет прикреплённых файлов'; color:#9ca3af; font-size:13px;
}

/* Режим цеха: скрываем финансовые данные */
.orderFormV2--production [data-section="payment"],
.orderFormV2--production [data-section="grand-total"],
.orderFormV2--production [data-section="discount"],
.orderFormV2--production [data-section="prices"],
.orderFormV2--production [data-section="delivery-price"]{ display:none !important; }

.orderFormV2__subcontractBlock{
  display:grid;
  grid-template-columns:3fr 2fr 100px 100px;
  gap:12px 16px;
  padding:12px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#fafbfc;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  align-items:end;
}
.orderFormV2__subcontractBlockHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
  grid-column:1 / -1;
}
.orderFormV2__subcontractBlock .orderForm__field{
  min-width:0;
}
/* Числовые поля в подрядных работах — без стрелочек */
.orderFormV2__subcontractBlock input[type="number"]{
  max-width:100%;
  appearance:textfield;
  -moz-appearance:textfield;
}
.orderFormV2__subcontractBlock input[type="number"]::-webkit-inner-spin-button,
.orderFormV2__subcontractBlock input[type="number"]::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.orderFormV2__workRowDel{
  text-align:center;
  vertical-align:middle;
}
.orderFormV2__workRowDel .orderFormV2__delWorkBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.orderFormV2__sectionTitle--center{ text-align:center; font-weight:700; }
.orderFormV2__sectionTitle--centerOnly{ text-align:center; }
.orderFormV2__actionsWrap{ margin-top:24px; }
.orderFormV2 .orderForm__actions .btn{
  border-radius:8px;
  border:1px solid #d1d5db;
  padding:10px 20px;
  font-size:14px;
  transition:border-color .15s, background .15s, color .15s;
}
.orderFormV2 .orderForm__actions .btn--primary{
  background:var(--brand-cyan, #0ea5e9);
  border-color:var(--brand-cyan, #0ea5e9);
  color:#fff;
}
.orderFormV2 .orderForm__actions .btn--primary:hover{ filter:brightness(1.05); }
.orderFormV2 .orderForm__actions .btn--secondary{ background:#fff; color:#374151; }
.orderFormV2 .orderForm__actions .btn--secondary:hover{ background:#f9fafb; border-color:#9ca3af; }

/* ---------- Экран входа ---------- */
.login-wrap{
  position:fixed;
  inset:0;
  z-index:9999;
  background:var(--bg);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.login-wrap--hidden{display:none}
.login-wrap__panel{
  width:100%;
  max-width:360px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--shadow);
  padding:32px 28px;
}
.login-wrap__title{
  margin:0 0 24px;
  font-size:22px;
  font-weight:700;
  color:var(--text);
  text-align:center;
}
.login-wrap__form{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.login-wrap__input{
  height:44px;
  padding:0 14px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:15px;
  outline:none;
}
.login-wrap__input:focus{
  border-color:var(--brand-cyan-light);
  box-shadow:0 0 0 4px var(--brand-glow);
}
.login-wrap__showPass{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  color:var(--text);
  cursor:pointer;
  user-select:none;
}
.login-wrap__showPass input{ cursor:pointer }
.login-wrap__btn{
  height:44px;
  margin-top:4px;
  border:none;
  border-radius:10px;
  background:var(--brand-cyan);
  color:#fff;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
}
.login-wrap__btn:hover{background:var(--brand-cyan-dark)}
.login-wrap__hint{
  margin:16px 0 0;
  font-size:12px;
  color:var(--muted);
  text-align:center;
}

/* ---------- Modal ---------- */
.modal{position:fixed; inset:0; display:none; z-index:50}
.modal[aria-hidden="false"]{display:block}
.modal__backdrop{position:absolute; inset:0; background:rgba(16,24,40,.45)}
.modal__panel{
  position:relative;
  max-width:720px;
  width:calc(100% - 24px);
  margin:60px auto;
  background:#fff;
  border-radius:14px;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.modal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
}
.modal__title{font-weight:900}
.iconBtn{
  border:1px solid var(--border);
  background:#fff;
  border-radius:10px;
  height:32px;
  width:32px;
  cursor:pointer;
}
.iconBtn:focus{ outline:none; border-color:var(--brand-cyan-light); box-shadow:0 0 0 2px var(--brand-glow); }
.modal__meta{
  padding:10px 14px;
  color:var(--muted);
  font-size:12px;
  border-bottom:1px solid var(--border);
}
.modal__body{
  margin:0;
  padding:12px 14px;
  white-space:pre-wrap;
  word-break:break-word;
  max-height:50vh;
  overflow:auto;
}
.modal__foot{padding:12px 14px; border-top:1px solid var(--border); display:flex; justify-content:flex-end}

/* ---------- Toast ---------- */
.toastWrap{
  position:fixed;
  right:14px;
  bottom:14px;
  display:flex;
  flex-direction:column;
  gap:10px;
  z-index:10001;
}
.toast{
  background:#111827;
  color:#fff;
  padding:10px 12px;
  border-radius:12px;
  max-width:360px;
  box-shadow:var(--shadow);
  font-size:13px;
}
.toast--ok{background:#065f46}
.toast--err{background:#7f1d1d}

/* ---------- Cards View ---------- */
.cardsGrid{
  display:grid;
  gap:16px;
  padding:0;
  /* grid-template-columns будет устанавливаться через JS */
}

/* Адаптивность для мобильных устройств */
@media (max-width: 768px){
  .cardsGrid{
    grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)) !important;
  }
}

@media (max-width: 480px){
  .cardsGrid{
    grid-template-columns:1fr !important;
  }
}

.cardItem{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:calc(20px * var(--zoom-scale));
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:all 0.2s ease;
  position:relative;
  display:flex;
  flex-direction:column;
  gap:calc(16px * var(--zoom-scale));
  min-height:calc(200px * var(--zoom-scale));
}
.cardItem:hover{
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  border-color:rgba(203,213,225,.9);
  transform:translateY(-2px);
}

/* Цветной фон карточки с прозрачностью + тонкая полоса слева */
.cardItem--accept{
  background:rgba(255, 242, 166, 0.4);
}
.cardItem--accept::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-accept-dot);
  border-radius:12px 0 0 12px;
}

.cardItem--print{
  background:rgba(179, 229, 247, 0.4);
}
.cardItem--print::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-print-dot);
  border-radius:12px 0 0 12px;
}

.cardItem--post{
  background:rgba(195, 187, 255, 0.4);
}
.cardItem--post::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-post-dot);
  border-radius:12px 0 0 12px;
}

.cardItem--ready{
  background:rgba(217, 245, 169, 0.4);
}
.cardItem--ready::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-ready-dot);
  border-radius:12px 0 0 12px;
}

.cardItem--done{
  background:rgba(111, 226, 154, 0.4);
}
.cardItem--done::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-done-dot);
  border-radius:12px 0 0 12px;
}

.cardItem--cancel{
  background:rgba(255, 178, 178, 0.4);
}
.cardItem--cancel::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-cancel-dot);
  border-radius:12px 0 0 12px;
}

.cardItem--nacc{
  background:rgba(243, 244, 246, 0.4);
}
.cardItem--nacc::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--st-nacc-dot);
  border-radius:12px 0 0 12px;
}

.cardItem__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.cardItem__numberWrap{
  display:inline-flex;
  align-items:center;
  gap:calc(10px * var(--zoom-scale));
}
.cardItem__number{
  font-size:calc(33px * var(--zoom-scale));
  font-weight:700;
  color:#0f172a;
  letter-spacing:0.02em;
  line-height:1.2;
}

.cardItem__status{
  flex-shrink:0;
}

/* Статус в карточке: вся кнопка кликабельна (селект поверх), визуально — кружок + текст + стрелка */
.cardItem__statusSelect{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:calc(8px * var(--zoom-scale));
  padding:calc(8px * var(--zoom-scale)) calc(12px * var(--zoom-scale));
  border-radius:calc(6px * var(--zoom-scale));
  border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.85);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  font-size:calc(15px * var(--zoom-scale));
  font-weight:600;
  letter-spacing:0.01em;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease;
}
.cardItem__statusSelect:hover{
  background:rgba(255,255,255,.95);
  border-color:rgba(0,0,0,.12);
}
.cardItem__statusSelect .dot,
.cardItem__statusLabel,
.cardItem__statusChevron{
  pointer-events:none;
}
.cardItem__statusSelect .dot{
  width:calc(10px * var(--zoom-scale));
  height:calc(10px * var(--zoom-scale));
  flex-shrink:0;
}
.cardItem__statusLabel{
  flex:1;
  min-width:0;
  text-align:left;
}
.cardItem__select.cardItem__select--badge{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
  border:none;
  background:transparent;
  appearance:none;
  -webkit-appearance:none;
  z-index:1;
}
.cardItem__select.cardItem__select--badge:focus{
  outline:none;
}
.cardItem__select.cardItem__select--badge option{
  background:#fff;
  color:#0f172a;
  padding:calc(8px * var(--zoom-scale)) calc(12px * var(--zoom-scale));
}
.cardItem__statusChevron{
  font-size:calc(10px * var(--zoom-scale));
  color:var(--muted);
  flex-shrink:0;
  line-height:1;
}

.cardItem__deadlineRow{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:calc(12px * var(--zoom-scale));
  padding:calc(14px * var(--zoom-scale)) 0;
}
.cardItem__deadline{
  font-size:calc(19px * var(--zoom-scale));
  color:#475569;
  font-weight:600;
  font-family:'Segoe UI', system-ui, -apple-system, sans-serif;
  line-height:1.4;
  flex-shrink:0;
}
.cardItem__client{
  font-size:calc(16px * var(--zoom-scale));
  color:var(--muted);
  font-weight:500;
  text-align:right;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:60%;
}

.cardItem__type{
  font-size:calc(13px * var(--zoom-scale));
  color:#64748b;
  font-weight:400;
  line-height:1.4;
  word-break:break-word;
}

.cardItem__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:calc(12px * var(--zoom-scale));
  margin-top:auto;
  padding-top:calc(14px * var(--zoom-scale));
  border-top:1px solid rgba(229,231,235,.6);
}

.cardItem__manager{
  font-size:calc(16px * var(--zoom-scale));
  color:var(--muted);
  font-weight:500;
  flex:1;
}

.cardItem__comment{
  position:absolute;
  top:calc(14px * var(--zoom-scale));
  right:calc(14px * var(--zoom-scale));
  width:calc(32px * var(--zoom-scale));
  height:calc(32px * var(--zoom-scale));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:calc(18px * var(--zoom-scale));
  cursor:pointer;
  opacity:0.5;
  transition:all 0.15s ease;
  border-radius:calc(6px * var(--zoom-scale));
  background:rgba(255,255,255,.8);
  border:1px solid rgba(229,231,235,.5);
}
.cardItem__comment:hover{
  opacity:1;
  background:rgba(255,255,255,.95);
  border-color:var(--border);
  transform:scale(1.1);
}

/* ---------- Аналитика: карточка выбора клиента ---------- */
.analyticsCard{ padding:28px 32px; }
.analyticsCard__header{ margin-bottom:24px; }
.analyticsCard__title{
  font-size:20px; font-weight:600; color:var(--text); margin:0;
  letter-spacing:-0.02em;
}
.analyticsCard__desc{ font-size:14px; color:var(--muted); margin:0; line-height:1.5; }
.analyticsCard__body{ display:flex; flex-direction:row; gap:40px; align-items:flex-start; flex-wrap:wrap; }
.analyticsCard__selector{
  display:flex; flex-direction:column; gap:16px;
  flex:0 1 480px; min-width:260px;
}
.analyticsCard__metrics{
  flex:1;
  min-width:0;
  display:flex; flex-direction:row; flex-wrap:wrap; gap:24px; align-items:flex-start; justify-content:center;
}
.analyticsMetrics__item{ flex:0 1 auto; min-width:120px; }
.analyticsMetrics__item:nth-child(2){ min-width:180px; }
.analyticsMetrics__label{
  font-size:11px; font-weight:500; color:#94a3b8; text-transform:uppercase;
  letter-spacing:0.08em; margin-bottom:8px;
}
.analyticsMetrics__value{
  font-size:26px; font-weight:700; color:var(--text); line-height:1.2;
  font-variant-numeric:tabular-nums; letter-spacing:-0.02em;
}
.analyticsMetrics__list{ display:flex; flex-direction:column; gap:5px; }
.analyticsMetrics__row{
  font-size:13px; color:#475569; line-height:1.5;
  font-variant-numeric:tabular-nums;
}
.analyticsMetrics__loading,
.analyticsMetrics__empty{ font-size:13px; color:#94a3b8; }
.analyticsMetrics__growth{ font-size:12px; color:#64748b; margin-top:6px; font-variant-numeric:tabular-nums; }
.analyticsMetrics__growth--up{ color:#059669; }
.analyticsMetrics__growth--down{ color:#dc2626; }

.analyticsCard__row{ display:flex; flex-direction:column; gap:8px; }
.analyticsCard__row--actions{ margin-top:4px; }
.analyticsCard__label{ font-size:13px; font-weight:500; color:#64748b; }
.analyticsCard__search{
  height:44px; padding:0 14px; border:1px solid var(--border); border-radius:8px;
  background:#fff; font-size:15px; outline:none;
  transition:border-color 0.2s ease, box-shadow 0.2s ease;
}
.analyticsCard__search:focus{
  border-color:var(--brand-cyan-light); box-shadow:0 0 0 3px var(--brand-glow);
}
.analyticsCard__select{
  height:44px; padding:0 14px; border:1px solid var(--border); border-radius:8px;
  background:#fff; font-size:15px; cursor:pointer; outline:none;
  transition:border-color 0.2s ease, box-shadow 0.2s ease;
}
.analyticsCard__select:focus{
  border-color:var(--brand-cyan-light); box-shadow:0 0 0 3px var(--brand-glow);
}
.analyticsCard__status{ font-size:12px; color:#94a3b8; }

/* ---------- Overlay: дашборд аналитики клиента (на весь экран) ---------- */
body.clientDashboard-open{ overflow:hidden; }
.clientDashboardOverlay{
  position:fixed; inset:0; z-index:100; display:none;
  align-items:center; justify-content:center; padding:20px;
}
.clientDashboardOverlay[aria-hidden="false"]{ display:flex; }
.clientDashboardOverlay__backdrop{
  position:absolute; inset:0; background:rgba(16,24,40,.5);
  cursor:pointer;
}
.clientDashboardOverlay__panel{
  position:relative; width:100%; max-width:900px; max-height:calc(100vh - 40px);
  background:#fff; border-radius:16px; border:1px solid var(--border);
  box-shadow:0 24px 48px rgba(0,0,0,.2); overflow:auto;
}
.clientDashboard{ padding:28px 32px; }
.clientDashboard__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.clientDashboard__title{ font-size:24px; font-weight:700; color:var(--text); margin:0; flex:1; min-width:0; }
.clientDashboard__phones{ font-size:14px; color:var(--muted); margin-top:4px; }
.clientDashboard__close{
  width:40px; height:40px; flex-shrink:0; border:1px solid var(--border);
  border-radius:10px; background:#fff; font-size:18px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all 0.15s ease; color:var(--muted);
}
.clientDashboard__close:hover{ background:#f1f5f9; border-color:#cbd5e1; color:var(--text); }
.clientDashboard__grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:16px;
}
.clientDashboard__card{
  background:#f8fafc; border:1px solid var(--border); border-radius:12px;
  padding:16px; transition:all 0.15s ease;
}
.clientDashboard__card:hover{ border-color:#cbd5e1; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.clientDashboard__card--accent{ background:linear-gradient(135deg, #e6f7fc 0%, #b3e5f7 100%); border-color:var(--brand-cyan-light); }
.clientDashboard__cardLabel{ font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em; margin-bottom:6px; }
.clientDashboard__cardValue{ font-size:18px; font-weight:700; color:var(--text); }
.clientDashboard__cardValue .clientDashboard__pct{ font-size:14px; font-weight:600; margin-left:4px; }
.clientDashboard__pct.positive{ color:#059669; }
.clientDashboard__pct.negative{ color:#dc2626; }

@media (max-width: 640px){
  .clientDashboard__grid{ grid-template-columns:1fr; }
  .clientDashboard{ padding:20px 20px; }
}

/* ---------- Гостевая страница (дашборды по ролям) ---------- */
.guestCardWrap{ padding:0; overflow:visible; }
.guestGreeting{
  padding:32px 40px 24px; border-bottom:1px solid var(--border);
  font-size:18px; color:var(--text);
}
.guestGreeting__title{ font-size:28px; font-weight:700; margin:0 0 8px; color:var(--text); }
.guestGreeting__date{ font-size:15px; color:var(--muted); margin-bottom:4px; }
.guestGreeting__wish{ font-size:15px; color:var(--muted); }
.guestGreeting__placeholder{ padding:8px 0; }

.guestStrips{ display:flex; flex-direction:column; gap:24px; padding:24px 40px 32px; }
.guestStrip{
  background:#f8fafc; border:1px solid var(--border); border-radius:12px;
  padding:20px 24px; transition:all 0.15s ease;
}
.guestStrip:hover{ border-color:#e2e8f0; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.guestStrip__title{
  font-size:16px; font-weight:700; color:var(--text); margin:0 0 16px;
  padding-bottom:12px; border-bottom:1px solid var(--border);
  text-transform:uppercase; letter-spacing:0.04em;
}
.guestStrip__grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:18px;
}
.guestCard{
  display:flex; flex-direction:column;
  background:var(--card); border:1px solid var(--border); border-radius:12px;
  padding:18px 20px; transition:all 0.15s ease;
}
.guestCard:hover{ border-color:#cbd5e1; box-shadow:0 2px 6px rgba(0,0,0,.05); }
.guestCard--featured{ grid-column: span 1; min-width:0; }
.guestCard__body{ flex:1; min-height:0; }
.guestCard__footer{ margin-top:auto; padding-top:12px; }
.guestCard__footer .guestCard__deltaWrap{ margin-bottom:8px; }
.guestCard__footer .guestCard__progress{ margin-top:0; }
.guestCard__label{
  font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase;
  letter-spacing:0.06em; margin-bottom:10px;
}
.guestCard__fact{
  font-size:1.65rem; font-weight:700; color:var(--text); line-height:1.2;
  font-variant-numeric:tabular-nums; margin-bottom:4px;
}
.guestCard__plan{ font-size:0.875rem; color:var(--muted); margin-bottom:6px; font-variant-numeric:tabular-nums; }
.guestCard__deltaWrap{ display:flex; align-items:center; gap:6px; margin-bottom:10px; }
.guestCard__delta{ font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; }
.guestCard__delta--up{ color:#059669; }
.guestCard__delta--down{ color:#dc2626; }
.guestCard__delta--flat{ color:var(--muted); }
.guestCard__deltaArrow{ font-size:10px; line-height:1; }
.guestCard__deltaArrow.guestCard__delta--up{ color:#059669; }
.guestCard__deltaArrow.guestCard__delta--down{ color:#dc2626; }
.guestCard__deltaArrow.guestCard__delta--flat{ color:var(--muted); }
.guestCard__progress{ height:8px; background:#e5e7eb; border-radius:4px; overflow:hidden; margin-top:8px; }
.guestCard__progressTrack{ height:100%; background:#e5e7eb; border-radius:4px; position:relative; }
.guestCard__progressFill{
  height:100%; border-radius:4px; transition:width 0.3s ease;
}
.guestCard__progressFill--up{ background:#059669; }
.guestCard__progressFill--down{ background:#dc2626; }
.guestCard__progressFill--flat{ background:var(--muted); }

.guestCard__gauge{ text-align:center; padding:12px 0 8px; }
.guestCard__gaugeWrap{ position:relative; width:120px; height:70px; margin:0 auto 8px; }
.guestCard__gaugeSvg{ width:120px; height:60px; display:block; margin:0 auto; overflow:visible; }
.guestCard__gaugeValue{
  position:absolute; left:50%; bottom:4px; transform:translateX(-50%);
  font-size:1.25rem; font-weight:700; font-variant-numeric:tabular-nums;
}
.guestCard__gaugeValue--up{ color:#059669; }
.guestCard__gaugeValue--down{ color:#dc2626; }
.guestCard__gaugeValue--flat{ color:var(--text); }
.guestCard__gaugeLabel{ font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em; }

.guestCehDonutWrap{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:12px; }
.guestCehDonut{
  width:100px; height:100px; border-radius:50%; flex-shrink:0;
  position:relative; overflow:visible;
}
.guestCehDonut::before{
  content:""; position:absolute; inset:20%; border-radius:50%;
  background:var(--card);
}
.guestCehStatus{ display:flex; flex-direction:column; gap:6px; flex:1; min-width:0; }
.guestCehStatus__item{
  display:inline-flex; align-items:center; gap:8px;
  padding:4px 0; font-size:13px; font-variant-numeric:tabular-nums;
}
.guestCehStatus__dot{ width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.guestCehStatus__label{ color:var(--muted); }
.guestCehStatus__count{ font-weight:700; color:var(--text); }

.guestCard__row{ display:flex; gap:12px; margin-bottom:6px; font-variant-numeric:tabular-nums; }
.guestCard__rowItem{ flex:1; }
.guestCard__rowItem span{ font-size:12px; color:var(--muted); }
.guestCard__value{ font-size:20px; font-weight:700; color:var(--text); }

@media (max-width: 640px){
  .guestGreeting{ padding:24px 20px 20px; }
  .guestStrips{ padding:20px; gap:20px; }
  .guestStrip__grid{ grid-template-columns:1fr; }
  .guestCard--featured{ grid-column: span 1; }
  .guestCard__gaugeWrap{ width:100px; height:55px; }
  .guestCard__gaugeSvg{ width:100px; height:50px; }
  .guestCard__fact{ font-size:1.4rem; }
}

/* ---------- Overlay: бланк заказа ---------- */
body.orderBlank-open{ overflow:hidden; }
.orderBlankOverlay{
  position:fixed; inset:0; z-index:100; display:none;
  align-items:center; justify-content:center; padding:20px;
}
.orderBlankOverlay[aria-hidden="false"]{ display:flex; }
.orderBlankOverlay__backdrop{
  position:absolute; inset:0; background:rgba(16,24,40,.5);
  cursor:pointer;
}
.orderBlankOverlay__panel{
  position:relative; width:100%; max-width:1200px; max-height:calc(100vh - 40px);
  background:#fff; border-radius:16px; border:1px solid var(--border);
  box-shadow:0 24px 48px rgba(0,0,0,.2); overflow:hidden;
  display:flex; flex-direction:column;
}
.orderBlankOverlay__head{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border-bottom:1px solid var(--border); flex-shrink:0;
}
.orderBlankOverlay__title{ margin:0; font-size:18px; font-weight:700; }
.orderBlankOverlay__body{ padding:16px; overflow:auto; flex:1; min-height:0; }
.orderBlankOverlay__foot{
  padding:12px 16px; border-top:1px solid var(--border);
  display:flex; gap:10px; flex-wrap:wrap; flex-shrink:0;
}

/* Три блока бланка: верх (thead), середина (tbody), низ (tfoot) — отступы между блоками */
.orderBlankForm__headerRow .orderBlankForm__headerCell{ padding-bottom:12px; }
.orderBlankForm__table thead .orderBlankForm__headerRow + tr th{ padding-top:12px; border-top:none; }
.orderBlankForm__table tbody tr:first-child td{ padding-top:12px; }
.orderBlankForm__table tbody tr:last-child td{ padding-bottom:12px; }
.orderBlankForm__table tfoot .orderBlankForm__footerRow td{ padding-top:12px; }

/* Верхний блок — первая строка thead (colspan 1,2,1,1,3) */
.orderBlankForm__headerRow .orderBlankForm__headerCell{
  border:1px solid var(--border); padding:6px 8px 12px; vertical-align:middle;
  background:var(--bg-subtle, #f8fafc); text-align:center; font-weight:normal;
}
.orderBlankForm__headerRow .orderBlankForm__headerCell:not(:last-child){ border-right:1px solid var(--border); }
.orderBlankForm__headerRow .orderBlankForm__headerCell--num{ text-align:center; }
.orderBlankForm__headerRow .orderBlankForm__headerCell--num .orderBlankForm__label{ margin-bottom:0; text-align:center; }
.orderBlankForm__headerRow .orderBlankForm__headerCell--num .orderBlankForm__input--num{ padding:4px 4px; text-align:center; font-size:12px; }
.orderBlankForm__headerRow .orderBlankForm__headerCell--client{ min-width:0; }
.orderBlankForm__headerRow .orderBlankForm__headerCell--sep{ border-left-width:2px; }
.orderBlankForm__headerRow .orderBlankForm__headerCell .orderBlankForm__label{ display:block; font-size:10px; font-weight:600; color:var(--muted); margin-bottom:2px; text-align:center; }
.orderBlankForm__headerRow .orderBlankForm__headerCell--dpi .orderBlankForm__dpiTable{ margin-left:auto; margin-right:auto; }
.orderBlankForm__headerRow .orderBlankForm__headerCell--date .orderBlankForm__dateGroup{ justify-content:center; }
.orderBlankForm__tableWrap{ margin-bottom:0; overflow:auto; border:1px solid var(--border); border-radius:8px; }
.orderBlankForm__tableWrap .orderBlankForm__table{ margin-bottom:0; }
.orderBlankForm__input{
  width:100%; min-width:0; padding:4px 6px; border:1px solid var(--border);
  border-radius:4px; font-size:12px; box-sizing:border-box;
}
.orderBlankForm__input--short{ width:52px; }
.orderBlankForm__input--handover{ min-width:100px; }
.orderBlankForm__input--footer{ max-width:100px; }
.orderBlankForm__dpiTable{ border-collapse:collapse; font-size:11px; width:100%; }
.orderBlankForm__dpiTable td{ border:1px solid var(--border); padding:1px 4px; vertical-align:middle; }
.orderBlankForm__dpiLabel{ white-space:nowrap; color:var(--text); }
.orderBlankForm__dpiCell{ width:56px; background:#fff; }
.orderBlankForm__dpiInput{ width:100%; min-width:0; border:1px solid var(--border); border-radius:4px; padding:2px 4px; font-size:11px; background:#fff; box-sizing:border-box; }
.orderBlankForm__dpiInput:focus{ outline:none; background:#f0f9ff; border-color:var(--brand-cyan, #0ea5e9); }
.orderBlankForm__dateGroup{ display:flex; flex-direction:row; gap:8px; align-items:center; flex-wrap:wrap; }
.orderBlankForm__dateItem{ display:flex; align-items:center; gap:4px; }
.orderBlankForm__dateLabel{ font-size:10px; color:var(--muted); min-width:32px; }
.orderBlankForm__tdMerge{ vertical-align:top; padding:3px; position:relative; }
.orderBlankForm__tdMerge .orderBlankForm__mergeInput{
  position:absolute; inset:3px; width:calc(100% - 6px); height:calc(100% - 6px);
  min-height:0; border:none; padding:4px 6px; font-size:14px; resize:none;
  background:transparent; box-sizing:border-box; font-family:inherit;
  vertical-align:top; text-align:left;
}
.orderBlankForm__mergeInput:focus{ outline:none; background:#f0f9ff; }
/* Динамически объединённые ячейки: textarea заполняет ячейку по размеру */
.orderBlankForm__table td[rowspan] .orderBlankForm__mergeInput,
.orderBlankForm__table td[colspan] .orderBlankForm__mergeInput{
  position:absolute; inset:3px; width:calc(100% - 6px); height:calc(100% - 6px);
  min-height:0; border:none; padding:4px 6px; font-size:14px; resize:none;
  background:transparent; box-sizing:border-box; font-family:inherit;
  vertical-align:top; text-align:left;
}
.orderBlankForm__table td[rowspan],
.orderBlankForm__table td[colspan]{ position:relative; vertical-align:top; }

.orderBlankForm__table{ width:100%; border-collapse:collapse; font-size:14px; table-layout:fixed; }
.orderBlankForm__col--material{ width:16%; }
.orderBlankForm__col--size{ width:13%; }
.orderBlankForm__col--qty{ width:6%; }
.orderBlankForm__col--extra{ width:25%; }
.orderBlankForm__col--sep{ border-left:2px solid var(--border); }
.orderBlankForm__th{
  border:1px solid var(--border); padding:5px 6px; text-align:center; vertical-align:middle;
  font-weight:600; color:var(--muted); background:#e2e8f0; font-size:11px;
}
.orderBlankForm__th--sep{ border-left-width:2px; }
.orderBlankForm__table tbody tr{ height:34px; }
.orderBlankForm__table td{ border:1px solid var(--border); padding:3px 5px; vertical-align:middle; }
.orderBlankForm__table .orderBlankForm__td--sep{ border-left-width:2px; }
.orderBlankForm__cellInput{ width:100%; min-width:0; border:none; padding:4px 5px; font-size:14px; box-sizing:border-box; background:transparent; }
.orderBlankForm__cellInput:focus{ outline:none; background:#f0f9ff; }
.orderBlankForm__table td.orderBlankForm__cell--mergeable{ cursor:cell; }
.orderBlankOverlay--ctrlHeld .orderBlankForm__table td.orderBlankForm__cell--mergeable{ cursor:copy; }
.orderBlankForm__table td.orderBlankForm__cell--selected{ background:var(--brand-cyan-light); outline:2px solid var(--brand-cyan); outline-offset:-2px; }

/* Нижний блок — tfoot (Оплата=Материал, Площадь=Размеры+Кол-во, Цена=Доп.работы, только левая половина) */
.orderBlankForm__footerRow .orderBlankForm__footerCell{
  border:1px solid var(--border); padding:8px 10px; vertical-align:middle;
  background:var(--bg-subtle, #f8fafc); font-weight:normal; text-align:center;
}
.orderBlankForm__footerRow .orderBlankForm__footerCell:not(:last-child){ border-right:1px solid var(--border); }
.orderBlankForm__footerRow .orderBlankForm__footerCell--last{ border-right:2px solid var(--border); }
.orderBlankForm__footerRow .orderBlankForm__footerCell .orderBlankForm__label{ display:block; font-size:10px; font-weight:600; color:var(--muted); margin-bottom:2px; text-align:center; }
.orderBlankForm__footerRow .orderBlankForm__footerCell{ min-height:44px; }
.orderBlankForm__footerRow .orderBlankForm__footerCell .orderBlankForm__input--footer{ max-width:100%; font-size:14px; }
.orderBlankForm__footerSpacer{ border:1px solid var(--border); border-left:2px solid var(--border); background:var(--bg-subtle, #f8fafc); padding:0; vertical-align:middle; }

/* Контекстное меню таблицы бланка */
.orderBlankContextMenu{
  position:fixed; z-index:200; display:none;
  background:#fff; border:1px solid var(--border); border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.15); padding:4px 0; min-width:180px;
}
.orderBlankContextMenu[aria-hidden="false"]{ display:block; }
.orderBlankContextMenu__item{
  display:block; width:100%; padding:8px 14px; border:none; background:none;
  font-size:13px; text-align:left; cursor:pointer; color:var(--text);
}
.orderBlankContextMenu__item:hover{ background:#f1f5f9; }
.orderBlankContextMenu__item:disabled{ opacity:0.5; cursor:not-allowed; }

/* Область для печати/PDF: скрыта на экране, показывается только при печати (A5 альбомная) */
.orderBlankPrintArea{
  position:absolute; left:-9999px; top:0; width:210mm; min-height:148mm;
  padding:5mm; box-sizing:border-box;
  font-size:11px; font-family:inherit; color:#000; background:#fff;
  border:1px solid #ccc;
}
.orderBlankPrintArea .orderBlankPrintArea__header{ width:100%; border-collapse:collapse; table-layout:fixed; margin-bottom:6px; font-size:9px; }
.orderBlankPrintArea .orderBlankPrintArea__header td{ border:0.5px solid #bbb; padding:2px 4px; text-align:center; vertical-align:middle; }
.orderBlankPrintArea .orderBlankPrintArea__headerCell--num{ font-weight:700; font-size:20px; }
.orderBlankPrintArea .orderBlankPrintArea__headerCell--date strong{ font-size:12px; }
.orderBlankPrintArea .orderBlankPrintArea__header .orderBlankPrintArea__dpiTable{ margin-left:auto; margin-right:auto; }
.orderBlankPrintArea .orderBlankPrintArea__dpiTable{ border-collapse:collapse; font-size:9px; }
.orderBlankPrintArea .orderBlankPrintArea__dpiTable td{ border:0.5px solid #bbb; padding:1px 4px; }
.orderBlankPrintArea .orderBlankPrintArea__table{ width:100%; border-collapse:collapse; font-size:14px; table-layout:fixed; }
.orderBlankPrintArea .orderBlankPrintArea__table th,
.orderBlankPrintArea .orderBlankPrintArea__table td{ border:0.5px solid #bbb; padding:2px 4px; word-wrap:break-word; overflow-wrap:break-word; word-break:break-word; }
.orderBlankPrintArea .orderBlankPrintArea__table th{ font-size:11px; font-weight:700; }
.orderBlankPrintArea .orderBlankPrintArea__th--sep,
.orderBlankPrintArea .orderBlankPrintArea__td--sep{ border-left-width:0.5px; }
.orderBlankPrintArea .orderBlankPrintArea__tdMerge{ vertical-align:top; }
.orderBlankPrintArea .orderBlankPrintArea__footer{ width:100%; border-collapse:collapse; table-layout:fixed; margin-top:8px; font-size:10px; }
.orderBlankPrintArea .orderBlankPrintArea__footer td{ border:0.5px solid #bbb; padding:4px 6px; }
.orderBlankPrintArea .orderBlankPrintArea__footer td div{ font-size:14px; }

@media print{
  /* Режим печати бланка v1 (A5 альбомная): размеры и скрытие v2 только когда НЕ печатаем v2 */
  html{
    width:210mm !important; height:148mm !important; max-height:148mm !important;
    margin:0 !important; padding:0 !important; overflow:hidden !important;
  }
  body:not(.print-blank-v2){
    width:210mm !important; height:148mm !important; max-height:148mm !important;
    margin:0 !important; padding:0 !important; overflow:hidden !important;
  }
  body:not(.print-blank-v2) > *:not(.orderBlankPrintArea){ display:none !important; }
  body:not(.print-blank-v2) .orderBlankPrintAreaV2{ display:none !important; }
  body:not(.print-blank-v2) .orderBlankPrintArea{
    display:flex !important; flex-direction:column !important;
    position:static !important; left:auto !important; top:auto !important;
    width:100% !important; height:148mm !important; min-height:148mm !important; max-height:148mm !important;
    margin:0 !important; padding:5mm !important; box-sizing:border-box !important;
    border:none !important; box-shadow:none !important; overflow:hidden !important;
  }
  body:not(.print-blank-v2) .orderBlankPrintArea .orderBlankPrintArea__header{ flex-shrink:0; }
  body:not(.print-blank-v2) .orderBlankPrintArea .orderBlankPrintArea__table{ flex:1 1 0; min-height:0; height:100%; }
  body:not(.print-blank-v2) .orderBlankPrintArea .orderBlankPrintArea__footer{ flex-shrink:0; }
  /* Страница A5 только для печати v1; для v2 размер задаётся инжектом в script.js (A4) */
  @page{ size:210mm 148mm; margin:0; }
}

/* Клон для PDF: те же размеры и раскладка, что при печати (A5 альбомная) */
.orderBlankPrintArea--pdf .orderBlankPrintArea__header{ flex-shrink:0; }
.orderBlankPrintArea--pdf .orderBlankPrintArea__table{ flex:1 1 0; min-height:0; height:100%; }
.orderBlankPrintArea--pdf .orderBlankPrintArea__footer{ flex-shrink:0; }

/* ---------- Бланк заказа v2 ---------- */
.orderBlankOverlayV2 .orderBlankOverlay__panel{
  max-width: min(1400px, 96vw);
  max-height: calc(100vh - 16px);
  min-height: 75vh;
}
.orderBlankOverlayV2 .orderBlankOverlay__body{ padding: 8px 16px; }
.orderBlankFormV2__headerTable{
  width:100%; border-collapse:collapse; margin-bottom:12px; font-size:15px;
  border:1px solid var(--border); border-radius:8px; overflow:hidden;
  table-layout:fixed;
}
.orderBlankFormV2__headerCell{
  border:1px solid var(--border); padding:8px 10px 14px; vertical-align:middle;
  background:var(--bg-subtle, #f8fafc); text-align:center; font-weight:normal;
}
.orderBlankFormV2__headerCell--num{ width:12%; }
.orderBlankFormV2__headerCell--num .orderBlankFormV2__input--num{ padding:4px 4px; text-align:center; font-size:12px; }
.orderBlankFormV2__headerTable td:nth-child(2){ width:14%; }
.orderBlankFormV2__headerTable td:nth-child(3){ width:28%; }
.orderBlankFormV2__headerTable td:nth-child(4){ width:22%; }
.orderBlankFormV2__headerTable td:nth-child(5){ width:24%; }
.orderBlankFormV2__headerCell--date .orderBlankFormV2__dateGroup{ display:flex; flex-direction:column; align-items:center; gap:6px; justify-content:center; }
.orderBlankFormV2__label{ display:block; font-size:11px; font-weight:600; color:var(--muted); margin-bottom:2px; text-align:center; }
.orderBlankFormV2__headerTable .orderBlankFormV2__input{ font-size:14px; padding:5px 8px; text-align:center; }
.orderBlankFormV2__input{
  width:100%; min-width:0; padding:4px 6px; border:1px solid var(--border);
  border-radius:4px; font-size:12px; box-sizing:border-box;
}
.orderBlankFormV2__input--short{ width:64px; }
.orderBlankFormV2__input--dateReceipt,
.orderBlankFormV2__input--dateShip{ width:110px; min-width:110px; max-width:110px; text-align:center; box-sizing:border-box; }
.orderBlankFormV2__input--time{ min-width:72px; width:72px; font-size:15px; text-align:center; }
.orderBlankFormV2__dateItem{ display:flex; align-items:center; justify-content:center; gap:8px; min-width:0; }
.orderBlankFormV2__dateLabel{ font-size:11px; color:var(--muted); min-width:52px; text-align:right; }
.orderBlankFormV2__tableWrap{ margin-bottom:0; overflow:auto; border:1px solid var(--border); border-radius:8px; }
.orderBlankFormV2__table{ width:100%; border-collapse:collapse; font-size:14px; table-layout:fixed; }
.orderBlankFormV2__th{
  border:1px solid var(--border); padding:5px 6px; text-align:center; vertical-align:middle;
  font-weight:600; color:var(--muted); background:#e2e8f0; font-size:11px;
}
.orderBlankFormV2__table tbody tr{ min-height:34px; height:auto; }
.orderBlankFormV2__table td{ border:1px solid var(--border); padding:3px 5px; vertical-align:middle; word-wrap:break-word; overflow-wrap:break-word; white-space:normal; text-align:center; }
.orderBlankFormV2__table .orderBlankFormV2__cellInput{
  width:100%; min-width:0; border:none; padding:4px 5px; font-size:14px; box-sizing:border-box; background:transparent; text-align:center;
}
.orderBlankFormV2__table .orderBlankFormV2__cellInput:focus{ outline:none; background:#f0f9ff; }
.orderBlankFormV2__table td.orderBlankFormV2__cell--mergeable{ cursor:cell; word-wrap:break-word; overflow-wrap:break-word; white-space:normal; }
.orderBlankOverlayV2.orderBlankOverlay--ctrlHeld .orderBlankFormV2__table td.orderBlankFormV2__cell--mergeable{ cursor:copy; }
.orderBlankFormV2__table td.orderBlankFormV2__cell--selected{ background:var(--brand-cyan-light); outline:2px solid var(--brand-cyan); outline-offset:-2px; }
.orderBlankFormV2__table td.orderBlankFormV2__tdMerge{ vertical-align:middle; text-align:center; position:relative; word-wrap:break-word; overflow-wrap:break-word; white-space:normal; }
.orderBlankFormV2__table td.orderBlankFormV2__tdMerge[data-col="7"]{ text-align:left; vertical-align:top; padding:6px 8px; }
.orderBlankFormV2__table td.orderBlankFormV2__tdMerge[data-col="0"],
.orderBlankFormV2__table td.orderBlankFormV2__tdMerge[data-col="1"]{ vertical-align:middle; padding:6px 8px; }
.orderBlankFormV2__table td[data-col="6"]{ vertical-align:middle; padding:6px 8px; }
.orderBlankFormV2__table td.orderBlankFormV2__tdMerge .orderBlankFormV2__mergeInput{
  position:static; display:inline-block; width:100%; vertical-align:middle; min-height:1.2em;
  border:none; padding:4px 6px; font-size:14px; resize:none;
  background:transparent; box-sizing:border-box; font-family:inherit; text-align:center;
}
/* Комментарии (колонка 7): динамическая высота по содержимому, без обрезки */
.orderBlankFormV2__table td.orderBlankFormV2__tdMerge[data-col="7"] .orderBlankFormV2__mergeInput{
  position:static; width:100%; min-height:2.5em; height:auto; resize:none;
  overflow-y:hidden; display:block; box-sizing:border-box; text-align:left;
  -ms-overflow-style:none; scrollbar-width:none;
}
.orderBlankFormV2__table td.orderBlankFormV2__tdMerge[data-col="7"] .orderBlankFormV2__mergeInput::-webkit-scrollbar{ display:none; }
.orderBlankFormV2__mergeInput:focus{ outline:none; background:#f0f9ff; }
/* Оборудование, Материал, Обработка (колонки 0,1,6): перенос по словам, динамическая высота */
.orderBlankFormV2__table td[data-col="0"] .orderBlankFormV2__wrapInput,
.orderBlankFormV2__table td[data-col="1"] .orderBlankFormV2__wrapInput,
.orderBlankFormV2__table td[data-col="6"] .orderBlankFormV2__wrapInput{
  position:static; width:100%; min-height:2.5em; height:auto; resize:none;
  overflow-y:hidden; display:block; box-sizing:border-box; text-align:center;
  word-wrap:break-word; overflow-wrap:break-word;
  border:none; padding:4px 6px; font-size:14px; font-family:inherit; background:transparent;
  -ms-overflow-style:none; scrollbar-width:none;
}
.orderBlankFormV2__table td[data-col="0"] .orderBlankFormV2__wrapInput::-webkit-scrollbar,
.orderBlankFormV2__table td[data-col="1"] .orderBlankFormV2__wrapInput::-webkit-scrollbar,
.orderBlankFormV2__table td[data-col="6"] .orderBlankFormV2__wrapInput::-webkit-scrollbar{ display:none; }
.orderBlankFormV2__wrapInput:focus{ outline:none; background:#f0f9ff; }
.orderBlankFormV2__table td:nth-child(8){ text-align:left; vertical-align:top; }
.orderBlankFormV2__table td:nth-child(8) .orderBlankFormV2__cellInput{ text-align:left; }
.orderBlankFormV2__table td:nth-child(8) textarea{
  resize:none; font-family:inherit; font-size:14px;
  -webkit-appearance:none; appearance:none;
}
.orderBlankFormV2__col--equipment{ width:12%; }
.orderBlankFormV2__col--material{ width:14%; }
.orderBlankFormV2__col--size{ width:10%; }
.orderBlankFormV2__col--qty{ width:6%; }
.orderBlankFormV2__col--area{ width:7%; }
.orderBlankFormV2__col--dpi{ width:5%; }
.orderBlankFormV2__col--processing{ width:22%; }
.orderBlankFormV2__col--comments{ width:24%; }

/* Область печати бланка v2 (A4 портретная 210×297 mm) */
.orderBlankPrintAreaV2{
  width:210mm; min-height:auto; padding:4mm; box-sizing:border-box;
  font-family:inherit; color:#000; background:#fff; font-size:14px;
  position:absolute; left:-9999px; top:0;
}
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerTable{
  width:100%; border-collapse:collapse; margin-bottom:4px; flex-shrink:0;
  table-layout:fixed;
}
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerTable{ table-layout:fixed; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerTable td{ border:0.5px solid #bbb; padding:3px 5px; text-align:center; vertical-align:middle; font-size:12px; font-weight:700; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerTable td.orderBlankPrintAreaV2__headerCell--num{ font-size:36px !important; line-height:1.1; min-width:60px; padding:4px 8px; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerCell--label{ white-space:nowrap; font-size:10px; font-weight:400; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerCell--dateTitle{ line-height:1.2; font-size:10px; font-weight:400; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerCell--dateCell{ line-height:1.2; padding:2px 4px; font-size:11px; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerCell--shipTime{ font-size:22px !important; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerCell--shipTimeLabel{ font-size:9px; font-weight:400; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerCell--dateShip{ font-size:16px !important; font-weight:700; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerCell--client{ font-size:16px !important; }
/* Шапка использует ту же 8-колоночную сетку (colgroup), ширины задаются через colgroup */
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table{
  width:100%; border-collapse:collapse; font-size:12px; table-layout:fixed;
  flex:1 1 auto; min-height:0;
}
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table thead{ display:table-header-group; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table tbody tr{ page-break-inside:avoid; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__headerTable{ page-break-inside:avoid; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table th,
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table td{ border:0.5px solid #bbb; padding:4px 3px; word-wrap:break-word; overflow-wrap:break-word; word-break:break-word; line-height:1.2; vertical-align:middle; text-align:center; font-size:12px; overflow:hidden; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table th{ font-weight:700; font-size:10px; line-height:1.2; white-space:normal; word-wrap:break-word; padding:3px 3px; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table th.orderBlankPrintAreaV2__th--equipment{ white-space:normal; }
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table th:nth-child(4){ white-space:normal; }
/* Числовые ячейки — компактный шрифт */
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table td.col-1,
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table td.col-3,
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table td.col-4,
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table td.col-5{ font-size:10px; white-space:nowrap; }
/* Комментарии — всегда сверху слева */
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table td.col-7{ vertical-align:top; text-align:left; font-size:11px; }
/* Пустые строки — компактная высота */
.orderBlankPrintAreaV2 .orderBlankPrintAreaV2__table tr.orderBlankPrintAreaV2__row--empty td{ padding:0 4px; height:8px; min-height:8px; line-height:8px; font-size:0; overflow:hidden; }
/* Ширины столбцов данных — Оборудование|dpi|Материал|Размеры|Кол-во|M²|Обработка|Коментарии */
.orderBlankPrintAreaV2 col:nth-child(1){ width:14%; }
.orderBlankPrintAreaV2 col:nth-child(2){ width:5%; }
.orderBlankPrintAreaV2 col:nth-child(3){ width:14%; }
.orderBlankPrintAreaV2 col:nth-child(4){ width:11%; }
.orderBlankPrintAreaV2 col:nth-child(5){ width:5%; }
.orderBlankPrintAreaV2 col:nth-child(6){ width:6%; }
.orderBlankPrintAreaV2 col:nth-child(7){ width:17%; }
.orderBlankPrintAreaV2 col:nth-child(8){ width:22%; }

@media print{
  /* Режим печати бланка v2 (A5 альбомная): контент течёт вниз, перенос на следующие страницы */
  html:has(body.print-blank-v2){
    width:100% !important; height:auto !important; min-height:100% !important; margin:0 !important; padding:0 !important; overflow:visible !important;
  }
  body.print-blank-v2{
    width:100% !important; height:auto !important; min-height:100% !important; margin:0 !important; padding:0 !important; overflow:visible !important;
  }
  body.print-blank-v2 > *:not(.orderBlankPrintAreaV2){ display:none !important; }
  body.print-blank-v2 .orderBlankPrintAreaV2{
    display:flex !important; flex-direction:column !important;
    position:static !important; left:auto !important; top:auto !important;
    width:100% !important; max-width:100% !important; min-height:100% !important; height:auto !important; max-height:none !important;
    margin:0 !important; padding:4mm !important; box-sizing:border-box !important;
    border:none !important; overflow:visible !important;
  }
}

/* ========================
   Order Edit Overlay
   ======================== */
body.orderEdit-open{ overflow:hidden; }
.orderEditOverlay{
  position:fixed; inset:0; z-index:110; display:none;
  align-items:center; justify-content:center; padding:20px;
}
.orderEditOverlay[aria-hidden="false"]{ display:flex; }
.orderEditOverlay__backdrop{
  position:absolute; inset:0; background:rgba(16,24,40,.5);
  cursor:pointer;
}
.orderEditOverlay__panel{
  position:relative; width:100%; max-width:960px; max-height:calc(100vh - 40px);
  background:#fff; border-radius:12px; border:1px solid #e5e7eb;
  box-shadow:0 24px 48px rgba(0,0,0,.2); overflow:hidden;
  display:flex; flex-direction:column;
}
.orderEditOverlay__head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px; border-bottom:1px solid #e5e7eb; flex-shrink:0;
}
.orderEditOverlay__title{ margin:0; font-size:18px; font-weight:700; color:#111827; }
.orderEditOverlay__closeBtn{
  background:none; border:none; font-size:24px; cursor:pointer; color:#6b7280;
  padding:4px 8px; line-height:1;
}
.orderEditOverlay__closeBtn:hover{ color:#111827; }
.orderEditOverlay__body{
  padding:24px 32px; overflow:auto; flex:1; min-height:0;
}
.orderEditOverlay__foot{
  display:flex; gap:12px; padding:14px 24px;
  border-top:1px solid #e5e7eb; flex-shrink:0;
}
.orderEditOverlay__foot .btn{ border-radius:8px; padding:10px 20px; font-size:14px; }
.orderEditOverlay__foot .btn--accent{
  background:#10B981; border-color:#10B981; color:#fff; font-weight:700;
}
.orderEditOverlay__foot .btn--accent:hover{ background:#059669; border-color:#059669; }
.orderEditOverlay__foot .btn--primary{
  background:var(--brand-cyan, #0ea5e9); border-color:var(--brand-cyan, #0ea5e9); color:#fff;
}
.orderEditOverlay__foot .btn--primary:hover{ filter:brightness(1.05); }
.orderEditOverlay__foot .btn--secondary{
  background:#fff; border:1px solid #d1d5db; color:#374151;
}
.orderEditOverlay__foot .btn--secondary:hover{ background:#f9fafb; border-color:#9ca3af; }

/* Иконка-карандаш в табло — заметная кнопка */
.row__editBtn, .cardItem__editBtn{
  background:#fff; cursor:pointer;
  font-size:calc(14px * var(--zoom-scale)); color:#374151;
  padding:calc(4px * var(--zoom-scale)) calc(8px * var(--zoom-scale));
  border-radius:6px; line-height:1;
  border:1px solid #d1d5db;
  transition:background .15s, border-color .15s, color .15s;
  flex-shrink:0;
}
.row__editBtn:hover, .cardItem__editBtn:hover{
  background:var(--brand-cyan, #0ea5e9); color:#fff; border-color:var(--brand-cyan, #0ea5e9);
}
.row__viewBtn, .cardItem__viewBtn{
  font-size:calc(12px * var(--zoom-scale));
}

/* Внутри overlay — форма редактирования повторяет стили orderFormV2 */
.orderFormV2--edit{ color:#374151; }
.orderFormV2--edit .orderForm__label{ color:#374151; }
.orderFormV2--edit .orderForm__input,
.orderFormV2--edit .orderForm__select,
.orderFormV2--edit .orderForm__textarea{
  border:1px solid #d1d5db; background:#fff; color:#1f2937;
  border-radius:8px; transition:border-color .15s, box-shadow .15s;
}
.orderFormV2--edit .orderForm__input:focus,
.orderFormV2--edit .orderForm__textarea:focus{
  border-color:var(--brand-cyan, #0ea5e9); outline:none;
  box-shadow:0 0 0 3px rgba(14,165,233,.12);
}

/* Бланк заказа поверх overlay редактирования */
body.orderEdit-open .orderBlankOverlay{ z-index:120; }
body.orderEdit-open .orderBlankOverlayV2{ z-index:120; }

/* === Лайтбокс для превью файлов === */
.fileLightbox{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; }
.fileLightbox[aria-hidden="true"]{ display:none; }
.fileLightbox__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.8); }
.fileLightbox__content{ position:relative; z-index:1; max-width:90vw; max-height:90vh; display:flex; align-items:center; justify-content:center; }
.fileLightbox__img{ max-width:90vw; max-height:90vh; object-fit:contain; border-radius:8px; box-shadow:0 4px 32px rgba(0,0,0,.4); }
.fileLightbox__iframe{ width:80vw; height:85vh; border:none; border-radius:8px; background:#fff; box-shadow:0 4px 32px rgba(0,0,0,.4); }
.fileLightbox__close{ position:fixed; top:16px; right:16px; z-index:2; width:40px; height:40px; border:none; background:rgba(255,255,255,.2); color:#fff; font-size:24px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.fileLightbox__close:hover{ background:rgba(255,255,255,.4); }

/* ========================
   Reconciliation (Сверка) Page
   ======================== */
.recon{ padding:0 0 32px; }
.recon__header{ margin-bottom:20px; }
.recon__title{ font-size:22px; font-weight:700; color:var(--text); margin:0; }

.recon__controls{
  display:flex; flex-direction:column; gap:16px;
  background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:20px 24px; margin-bottom:20px;
}
.recon__field{ }
.recon__label{ display:block; font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.3px; margin-bottom:6px; }
.recon__input{
  padding:10px 14px; border:1px solid var(--border); border-radius:8px;
  font-size:14px; background:#fff; color:var(--text); width:100%; max-width:400px;
  box-sizing:border-box; transition:border-color .2s;
}
.recon__input:focus{ border-color:var(--brand-cyan); outline:none; box-shadow:0 0 0 3px rgba(0,160,208,.1); }
.recon__input--date{ width:160px; }

/* Autocomplete dropdown */
.recon__autocomplete{ position:relative; max-width:400px; }
.recon__dropdown{
  display:none; position:absolute; top:100%; left:0; right:0; z-index:100;
  background:#fff; border:1px solid var(--border); border-radius:10px;
  box-shadow:0 8px 24px rgba(16,24,40,.12); max-height:240px; overflow-y:auto;
  margin-top:4px;
}
.recon__dropdownItem{
  padding:10px 14px; cursor:pointer; font-size:14px; color:var(--text);
  border-bottom:1px solid #f1f3f5; transition:background .1s;
}
.recon__dropdownItem:last-child{ border-bottom:none; }
.recon__dropdownItem:hover{ background:rgba(0,160,208,.06); color:var(--brand-cyan-dark); }

/* Period tabs */
.recon__periodControls{ }
.recon__periodTabs{
  display:flex; gap:0; margin-bottom:12px;
  background:#f1f3f5; border-radius:8px; padding:3px; width:fit-content;
}
.recon__periodTab{
  padding:7px 18px; border:none; background:none; cursor:pointer;
  font-size:13px; font-weight:500; color:var(--muted); border-radius:6px; transition:all .2s;
}
.recon__periodTab:hover{ color:var(--text); }
.recon__periodTab--active{ color:#fff; background:var(--brand-cyan); box-shadow:0 1px 4px rgba(0,160,208,.2); }

/* Month grid */
.recon__monthGrid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:6px; max-width:480px;
}
.recon__monthBtn{
  padding:10px 8px; border:1px solid var(--border); border-radius:8px;
  background:#fff; cursor:pointer; font-size:13px; font-weight:500;
  color:var(--text); transition:all .15s; text-align:center;
}
.recon__monthBtn:hover{ border-color:var(--brand-cyan); background:rgba(0,160,208,.04); }
.recon__monthBtn--current{ border-color:var(--brand-cyan); color:var(--brand-cyan); font-weight:600; }
.recon__monthBtn--selected{ background:var(--brand-cyan); color:#fff; border-color:var(--brand-cyan); box-shadow:0 2px 8px rgba(0,160,208,.25); }
.recon__monthBtn--year{ font-size:15px; font-weight:600; padding:12px; }

/* Custom range */
.recon__customRange{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.recon__rangeSep{ color:var(--muted); font-size:16px; }

/* Results */
.recon__results{ }
.recon__resultHeader{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-bottom:16px; flex-wrap:wrap;
}
.recon__resultInfo{ display:flex; flex-direction:column; gap:2px; }
.recon__resultClient{ font-size:18px; font-weight:700; color:var(--text); }
.recon__resultPeriod{ font-size:13px; color:var(--muted); }

/* Balance cards */
.recon__balanceCard{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; border-radius:10px; margin-bottom:12px;
  background:#f8fafc; border:1px solid var(--border);
}
.recon__balanceCard--opening{ }
.recon__balanceCard--closing{
  background:linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border-color:var(--brand-cyan-light);
}
.recon__balanceCard--positive{ background:#fef2f2; border-color:#fecaca; }
.recon__balanceCard--positive .recon__balanceValue{ color:#dc2626; }
.recon__balanceCard--zero{ opacity:.6; }
.recon__balanceLabel{ font-size:13px; color:var(--muted); font-weight:500; }
.recon__balanceValue{ font-size:18px; font-weight:700; color:var(--text); font-variant-numeric:tabular-nums; }

/* Table */
.recon__tableWrap{
  background:#fff; border:1px solid var(--border); border-radius:12px;
  overflow:hidden; margin-bottom:16px;
}
.recon__table{ width:100%; border-collapse:collapse; font-size:13px; }
.recon__table thead{ background:#f8fafc; }
.recon__table th{
  padding:10px 14px; text-align:left; font-weight:600; color:var(--muted);
  font-size:11px; text-transform:uppercase; letter-spacing:.4px;
  border-bottom:2px solid #edf0f4;
}
.recon__table td{ padding:9px 14px; border-bottom:1px solid #f1f3f5; color:var(--text); }
.recon__table tbody tr:nth-child(even){ background:#fafbfc; }
.recon__table tbody tr:hover{ background:rgba(0,160,208,.04); }
.recon__cellNum{ font-weight:600; color:var(--brand-cyan-dark); }
.recon__cellMoney{ text-align:right; font-variant-numeric:tabular-nums; font-weight:500; }
.recon__cellPaid{ color:#059669; font-weight:600; }
.recon__cellComment{ max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:12px; }
.recon__noOrders{ text-align:center; color:var(--muted); padding:24px; }

/* Status badges (reuse palette) */
.recon__status{
  display:inline-block; padding:2px 8px; border-radius:6px;
  font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.2px;
}
.recon__status--отгружен{ background:var(--st-done); color:#065f46; }
.recon__status--готов{ background:var(--st-ready); color:#3f6212; }
.recon__status--в_печати{ background:var(--st-print); color:#0369a1; }
.recon__status--в_пост-печати{ background:var(--st-post); color:#5b21b6; }
.recon__status--принят{ background:var(--st-accept); color:#92400e; }

/* Totals */
.recon__totals{ }
.recon__totalRow{
  display:flex; align-items:center; gap:20px;
  padding:12px 20px; background:#f8fafc; border:1px solid var(--border);
  border-radius:10px; margin-bottom:12px; font-size:14px; font-weight:600;
}
.recon__totalRow span:first-child{ flex:1; color:var(--muted); }
.recon__totalDebit{ color:var(--text); font-variant-numeric:tabular-nums; }
.recon__totalCredit{ color:#059669; font-variant-numeric:tabular-nums; }

/* Empty state */
.recon__empty{
  text-align:center; padding:60px 20px; color:var(--muted); font-size:15px;
}

/* ========================
   Pricelist Page
   ======================== */
.pricelist{ padding: 0 0 32px; }

/* Header */
.pricelist__header{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-bottom:20px; flex-wrap:wrap;
}
.pricelist__title{ font-size:22px; font-weight:700; color:var(--text); margin:0; }
.pricelist__search{ position:relative; }
.pricelist__searchInput{
  padding:10px 14px 10px 36px; border:1px solid var(--border); border-radius:10px;
  font-size:14px; width:300px; background:#fff; color:var(--text);
  transition:border-color .2s, box-shadow .2s;
}
.pricelist__searchInput:focus{ border-color:var(--brand-cyan); outline:none; box-shadow:0 0 0 3px rgba(0,160,208,.12); }
.pricelist__search::before{
  content:'\1F50D'; position:absolute; left:12px; top:50%; transform:translateY(-50%);
  font-size:14px; pointer-events:none; opacity:.45;
}

/* Tabs */
.pricelist__tabs{
  display:flex; gap:0; margin-bottom:20px;
  background:#fff; border:1px solid var(--border); border-radius:10px;
  padding:4px; width:fit-content;
}
.pricelist__tab{
  padding:9px 22px; border:none; background:none; cursor:pointer;
  font-size:14px; font-weight:500; color:var(--muted);
  border-radius:7px; transition:all .2s;
}
.pricelist__tab:hover{ color:var(--text); background:#f8fafc; }
.pricelist__tab--active{
  color:#fff; background:var(--brand-cyan);
  box-shadow:0 2px 8px rgba(0,160,208,.25);
}
.pricelist__tabBadge{
  display:inline-block; margin-left:6px; font-size:11px; font-weight:700;
  background:rgba(0,0,0,.08); padding:1px 7px; border-radius:10px;
  min-width:18px; text-align:center;
}
.pricelist__tab--active .pricelist__tabBadge{ background:rgba(255,255,255,.25); }

/* Settings panel */
.pricelist__settings{
  margin-bottom:20px; background:#fff; border:1px solid var(--border);
  border-radius:12px; overflow:hidden;
}
.pricelist__settingsToggle{
  cursor:pointer; font-size:13px; color:var(--muted); padding:14px 18px;
  display:block; font-weight:500;
}
.pricelist__settingsToggle:hover{ color:var(--brand-cyan); }
.pricelist__settings[open] .pricelist__settingsToggle{ border-bottom:1px solid var(--border); }
.pricelist__settingsGrid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
  gap:14px; padding:18px;
}
.pricelist__settingsItem label{ display:block; font-size:11px; color:var(--muted); margin-bottom:4px; text-transform:uppercase; letter-spacing:.3px; }
.pricelist__settingsInput{
  width:100%; padding:8px 10px; border:1px solid var(--border); border-radius:8px;
  font-size:14px; font-weight:600; background:#f8fafc; color:var(--text);
  transition:border-color .2s;
}
.pricelist__settingsInput:focus{ border-color:var(--brand-cyan); outline:none; background:#fff; }
.pricelist__settingsSave{ margin:0 18px 18px auto; display:block; }

/* Subcategory cards */
.pricelist__content{ display:flex; flex-direction:column; gap:16px; }
.pricelist__subcategory{
  background:#fff; border:1px solid var(--border); border-radius:12px;
  overflow:hidden; box-shadow:0 1px 3px rgba(16,24,40,.04);
}
.pricelist__subcatHeader{
  display:flex; align-items:center; gap:10px;
  padding:12px 18px;
  background:linear-gradient(135deg, #f0f9ff 0%, #f8fafc 100%);
  border-bottom:1px solid var(--border);
}
.pricelist__subcatName{ font-size:14px; font-weight:700; color:var(--text); margin:0; text-transform:uppercase; letter-spacing:.3px; }
.pricelist__subcatCount{
  font-size:11px; color:var(--brand-cyan-dark); margin-left:auto;
  background:rgba(0,160,208,.1); padding:3px 10px; border-radius:12px; font-weight:600;
}
.pricelist__subcatEdit, .pricelist__subcatDelete{
  border:none; background:none; cursor:pointer; font-size:13px; color:var(--muted);
  padding:4px 6px; border-radius:6px; transition:all .15s; opacity:.5;
}
.pricelist__subcatEdit:hover{ color:var(--brand-cyan); background:rgba(0,160,208,.1); opacity:1; }
.pricelist__subcatDelete:hover{ color:#ef4444; background:rgba(239,68,68,.08); opacity:1; }

/* Table */
.pricelist__table{ width:100%; border-collapse:collapse; font-size:13px; }
.pricelist__table thead{ background:#f8fafc; }
.pricelist__table th{
  padding:10px 14px; text-align:left; font-weight:600; color:var(--muted);
  font-size:11px; text-transform:uppercase; letter-spacing:.4px;
  border-bottom:2px solid #edf0f4;
}
.pricelist__table th:not(.pricelist__thName){ text-align:right; }
.pricelist__table td{
  padding:10px 14px; border-bottom:1px solid #f1f3f5;
  color:var(--text); font-size:13px;
}
.pricelist__table td:not(.pricelist__cellName):not(.pricelist__cellActions){ text-align:right; font-variant-numeric:tabular-nums; }
.pricelist__thName{ min-width:280px; }
.pricelist__row:nth-child(even){ background:#fafbfc; }
.pricelist__row:hover{ background:rgba(0,160,208,.05); }
.pricelist__row td:first-child{ border-left:3px solid transparent; }
.pricelist__row:hover td:first-child{ border-left-color:var(--brand-cyan); }
.pricelist__cellName{ font-weight:500; color:var(--text); }
.pricelist__notes{ display:block; font-size:11px; color:var(--muted); font-weight:400; margin-top:2px; line-height:1.3; }
.pricelist__cellCost{ color:#94a3b8; font-size:12px; }
.pricelist__cellPrice{ font-weight:600; color:var(--text); }
.pricelist__cellUnit{ color:var(--muted); font-size:12px; }
.pricelist__cellDash{ color:#d1d5db; }
.pricelist__cellActions{ white-space:nowrap; text-align:center !important; }
.pricelist__editItem, .pricelist__deleteItem{
  border:none; background:none; cursor:pointer; font-size:13px; color:var(--muted);
  padding:4px 6px; border-radius:6px; transition:all .15s; opacity:.45;
}
.pricelist__editItem:hover{ color:var(--brand-cyan); opacity:1; background:rgba(0,160,208,.08); }
.pricelist__deleteItem:hover{ color:#ef4444; opacity:1; background:rgba(239,68,68,.06); }
.pricelist__empty, .pricelist__emptySubcat{
  color:var(--muted); font-size:13px; padding:24px 18px; text-align:center;
}

/* Action buttons */
.pricelist__actions{ display:flex; gap:8px; margin-top:20px; }

/* Pricelist Modal */
.pricelist__modal{
  position:fixed; inset:0; z-index:9000;
  display:flex; align-items:center; justify-content:center;
}
.pricelist__modalBackdrop{
  position:absolute; inset:0;
  background:rgba(16,24,40,.45); backdrop-filter:blur(4px);
  cursor:pointer;
}
.pricelist__modalContent{
  position:relative; z-index:1;
  background:#fff; border-radius:16px; width:620px; max-width:95vw;
  max-height:90vh; display:flex; flex-direction:column;
  box-shadow:0 20px 60px rgba(16,24,40,.18);
  overflow:hidden;
}
.pricelist__modalHeader{
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 24px 16px; border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.pricelist__modalHeader h3{ margin:0; font-size:18px; font-weight:700; color:var(--text); }
.pricelist__modalClose{
  border:none; background:#f1f3f5; width:32px; height:32px; border-radius:8px;
  font-size:18px; cursor:pointer; color:var(--muted); transition:all .15s;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.pricelist__modalClose:hover{ color:var(--text); background:#e5e7eb; }
.pricelist__modalBody{ overflow-y:auto; padding:20px 24px 24px; flex:1; }
.pricelist__form label{ display:block; font-size:11px; color:var(--muted); margin-bottom:5px; text-transform:uppercase; letter-spacing:.3px; font-weight:600; }
.pricelist__formRow{ margin-bottom:14px; }
.pricelist__formRow input, .pricelist__formRow select{
  width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:8px;
  font-size:14px; background:#fff; color:var(--text); box-sizing:border-box;
  transition:border-color .2s, box-shadow .2s;
}
.pricelist__formRow input:focus, .pricelist__formRow select:focus{ border-color:var(--brand-cyan); outline:none; box-shadow:0 0 0 3px rgba(0,160,208,.1); }
.pricelist__formRow--half{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pricelist__pricesSection{ margin:20px 0; padding-top:16px; border-top:1px solid var(--border); }
.pricelist__pricesSection h4{ margin:0 0 12px; font-size:14px; font-weight:700; color:var(--text); }
.pricelist__priceRow{
  display:flex; gap:8px; margin-bottom:8px; align-items:center;
  background:#f8fafc; padding:8px 10px; border-radius:8px; border:1px solid #edf0f4;
}
.pricelist__priceRow select, .pricelist__priceRow input{
  padding:7px 9px; border:1px solid var(--border); border-radius:6px;
  font-size:13px; background:#fff; color:var(--text);
}
.pricelist__priceRow select{ width:130px; }
.pricelist__priceRow input{ width:95px; }
.pricelist__removePriceRow{ border:none; background:none; color:#d1d5db; cursor:pointer; font-size:18px; transition:color .15s; }
.pricelist__removePriceRow:hover{ color:#ef4444; }
.pricelist__formActions{ display:flex; gap:10px; margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }

/* Collapsible subcategories */
.pricelist__subcatChevron{
  display:inline-block; width:18px; height:18px; flex-shrink:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 7l3 3 3-3'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .2s;
}
.pricelist__subcatHeader{ cursor:pointer; user-select:none; }
.pricelist__subcatBody{ overflow:hidden; transition:max-height .25s ease, opacity .2s; max-height:5000px; opacity:1; }
.pricelist__subcategory--collapsed .pricelist__subcatBody{ max-height:0; opacity:0; padding:0; }
.pricelist__subcategory--collapsed .pricelist__subcatChevron{ transform:rotate(-90deg); }
.pricelist__subcategory--collapsed .pricelist__subcatHeader{ border-bottom:none; }
.pricelist__subcategory--collapsed{ opacity:.8; }

/* Inline popup (replaces native prompt/confirm) */
.plPopup{
  background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:16px 18px; min-width:240px; max-width:320px;
  box-shadow:0 8px 30px rgba(16,24,40,.15), 0 2px 8px rgba(16,24,40,.08);
  animation:plPopupIn .15s ease;
}
@keyframes plPopupIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:translateY(0); } }
.plPopup__title{ font-size:13px; font-weight:600; color:var(--text); margin-bottom:12px; line-height:1.4; }
.plPopup__input{
  width:100%; padding:9px 12px; border:1px solid var(--border); border-radius:8px;
  font-size:14px; background:#fff; color:var(--text); margin-bottom:12px; box-sizing:border-box;
  transition:border-color .2s;
}
.plPopup__input:focus{ border-color:var(--brand-cyan); outline:none; box-shadow:0 0 0 3px rgba(0,160,208,.12); }
.plPopup__btns{ display:flex; gap:8px; justify-content:flex-end; }
.plPopup__btn{
  padding:7px 16px; border:none; border-radius:7px; font-size:13px; font-weight:600;
  cursor:pointer; transition:all .15s;
}
.plPopup__btn--ok{ background:var(--brand-cyan); color:#fff; }
.plPopup__btn--ok:hover{ background:var(--brand-cyan-dark); }
.plPopup__btn--danger{ background:#fee2e2; color:#dc2626; }
.plPopup__btn--danger:hover{ background:#fecaca; }
.plPopup__btn--cancel{ background:#f1f3f5; color:var(--muted); }
.plPopup__btn--cancel:hover{ background:#e5e7eb; color:var(--text); }

/* ====== Order List V2 (страница "Новый заказ") ====== */
.orderListV2{ padding:24px; }
.orderListV2__header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:16px;
}
.orderListV2__title{ font-size:22px; font-weight:700; margin:0; }
.orderListV2__addBtn{
  width:44px; height:44px; font-size:24px; line-height:1;
  border-radius:50%; padding:0; display:flex; align-items:center; justify-content:center;
}
.orderListV2__tableWrap{ overflow-x:auto; }
.orderListV2__table{
  width:100%; border-collapse:collapse; font-size:14px;
}
.orderListV2__table th{
  text-align:left; padding:8px 12px; font-weight:600; color:var(--muted);
  border-bottom:2px solid var(--border); font-size:12px; text-transform:uppercase; letter-spacing:.5px;
}
.orderListV2__table td{ padding:10px 12px; border-bottom:1px solid var(--border); }
.orderListV2__row{ cursor:pointer; transition:background .15s; }
.orderListV2__row:hover{ background:var(--hover-bg, #f8fafc); }
.orderListV2__row--draft{ background:#fafafa; }
.orderListV2__row--draft:hover{ background:#f0f0f0; }
.orderListV2__row--draft td{ color:#6b7280; }
.orderListV2__cell--num{ font-weight:600; white-space:nowrap; }
.orderListV2__cell--sum{ text-align:right; white-space:nowrap; }
.orderListV2__loading,
.orderListV2__empty{ text-align:center; color:var(--muted); padding:40px 12px; }

/* ===================== Bank statement import (recon__import*) ===================== */
.recon__import{
  display:block;
  background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:24px 28px; margin-top:24px;
}
.recon__importHeader{ margin-bottom:16px; }
.recon__importTitle{ font-size:18px; font-weight:700; color:var(--text); margin:0 0 6px 0; }
.recon__importHint{ font-size:13px; color:var(--muted); margin:0; line-height:1.5; }

/* Drop zone */
.recon__importDrop{
  border:2px dashed #cbd5e1; border-radius:12px; padding:28px 20px;
  background:#f8fafc; text-align:center; cursor:pointer;
  transition:border-color .15s, background .15s;
}
.recon__importDrop:hover,
.recon__importDrop--active{
  border-color:var(--brand-cyan); background:rgba(0,160,208,.05);
}
.recon__importDropLabel{ display:flex; flex-direction:column; align-items:center; gap:6px; pointer-events:none; }
.recon__importDropIcon{ font-size:36px; line-height:1; }
.recon__importDropText{ font-size:14px; color:var(--text); font-weight:500; }
.recon__importDropSub{ font-size:12px; color:var(--muted); }
.recon__importBrowseBtn{
  background:none; border:none; color:var(--brand-cyan); cursor:pointer;
  text-decoration:underline; font:inherit; padding:0; pointer-events:auto;
}

/* Status strip */
.recon__importStatus{
  margin-top:16px; padding:12px 16px; border-radius:8px;
  background:#f1f5f9; border:1px solid var(--border);
  font-size:13px; color:var(--text); display:flex; flex-wrap:wrap; gap:14px; align-items:center;
}
.recon__importStatus--err{ background:#fef2f2; border-color:#fecaca; color:#b91c1c; }
.recon__importStatus--ok{ background:#f0fdf4; border-color:#bbf7d0; color:#166534; }
.recon__importStatusItem{ display:inline-flex; align-items:center; gap:5px; }
.recon__importStatusItem strong{ font-weight:600; }

/* Manual mapper */
.recon__importMapper{
  margin-top:16px; padding:16px 18px; border-radius:10px;
  background:#fff7ed; border:1px solid #fed7aa;
}
.recon__importMapperHeader{ font-size:13px; color:#9a3412; margin-bottom:12px; font-weight:600; }
.recon__importMapperGrid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:10px;
  margin-bottom:14px;
}
.recon__importMapperCell{ display:flex; flex-direction:column; gap:4px; }
.recon__importMapperCell label{ font-size:11px; color:var(--muted); text-transform:uppercase; font-weight:600; }
.recon__importMapperCell select{ padding:6px 8px; border:1px solid var(--border); border-radius:6px; font-size:13px; }

/* Preview block */
.recon__importPreview{
  margin-top:16px; border:1px solid var(--border); border-radius:10px; overflow:hidden;
}
.recon__importPreviewHeader{
  display:flex; justify-content:space-between; align-items:center;
  padding:10px 16px; background:#f8fafc; border-bottom:1px solid var(--border);
  font-size:13px; font-weight:600; color:var(--text);
}
.recon__importToggle{
  background:none; border:none; color:var(--brand-cyan); cursor:pointer;
  font-size:12px; font-weight:500; padding:0;
}
.recon__importPreviewBody{ max-height:280px; overflow:auto; }
.recon__importPreviewBody table{
  width:100%; border-collapse:collapse; font-size:12px;
}
.recon__importPreviewBody th,
.recon__importPreviewBody td{
  padding:6px 10px; border-bottom:1px solid #f1f3f5; text-align:left; vertical-align:top;
}
.recon__importPreviewBody th{
  background:#f8fafc; font-weight:600; color:var(--muted); position:sticky; top:0;
  text-transform:uppercase; font-size:10px; letter-spacing:.4px;
}
.recon__importPreviewBody tr.--debit td{ background:#f0fdf4; }
.recon__importPreviewBody tr.--credit td{ color:var(--muted); }

/* Match table */
.recon__importMatches{ margin-top:20px; }
.recon__importMatchesHeader{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:12px;
}
.recon__importMatchesTitle{ font-size:15px; font-weight:700; color:var(--text); }
.recon__importMatchesCounter{ font-size:13px; color:var(--muted); }
.recon__importMatchesBody{ display:flex; flex-direction:column; gap:10px; }

.recon__matchRow{
  border:1px solid var(--border); border-radius:10px; padding:12px 14px;
  background:#fff; transition:opacity .15s;
}
.recon__matchRow--confirmed{ background:#f0fdf4; border-color:#bbf7d0; }
.recon__matchRow--dup{ opacity:.55; background:#fafafa; }
.recon__matchRowMain{
  display:grid; grid-template-columns:120px 1fr 140px 200px; gap:12px; align-items:start;
}
@media (max-width:900px){
  .recon__matchRowMain{ grid-template-columns:1fr 1fr; }
}
.recon__matchPaymentDate{ font-size:13px; font-weight:600; color:var(--text); }
.recon__matchPaymentInfo{ font-size:13px; color:var(--text); line-height:1.45; }
.recon__matchPaymentInfo .--cp{ font-weight:600; display:block; margin-bottom:2px; }
.recon__matchPaymentInfo .--comment{ color:var(--muted); font-size:12px; display:block; margin-top:4px; }
.recon__matchPaymentAmount{ font-size:15px; font-weight:700; color:#166534; text-align:right; white-space:nowrap; }
.recon__matchPaymentAmount.--negative{ color:#9a3412; }

/* Confidence pills */
.recon__confidence{
  display:inline-block; font-size:11px; font-weight:600; padding:3px 10px;
  border-radius:999px; text-transform:uppercase; letter-spacing:.4px;
  white-space:nowrap;
}
.recon__confidence--inn{ background:#dcfce7; color:#166534; }
.recon__confidence--full{ background:#d1fae5; color:#065f46; }
.recon__confidence--partial{ background:#fef9c3; color:#854d0e; }
.recon__confidence--weak{ background:#ffedd5; color:#9a3412; }
.recon__confidence--none{ background:#fee2e2; color:#991b1b; }

.recon__matchCandidates{
  margin-top:10px; padding-top:10px; border-top:1px dashed #e5e7eb;
  display:flex; flex-direction:column; gap:8px;
}
.recon__matchCandidate{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  padding:8px 10px; border-radius:8px; background:#f8fafc;
  font-size:13px; color:var(--text);
}
.recon__matchCandidate--top{ background:#ecfeff; border:1px solid #a5f3fc; }
.recon__matchCandidateOrder{ font-weight:600; }
.recon__matchCandidateClient{ color:var(--muted); font-size:12px; }
.recon__matchCandidateAmount{ margin-left:auto; font-weight:600; color:#166534; white-space:nowrap; }
.recon__matchCandidateSignals{ font-size:11px; color:var(--muted); display:flex; gap:6px; flex-wrap:wrap; }
.recon__matchCandidateSignals span{ background:#fff; padding:1px 6px; border-radius:4px; border:1px solid var(--border); }

.recon__matchActions{
  margin-top:10px; display:flex; flex-wrap:wrap; gap:8px;
}
.recon__matchActions .btn{ font-size:12px; padding:6px 12px; }
.recon__matchLinkBtn{ background:#fef9c3 !important; border-color:#fde047 !important; color:#854d0e !important; }
.recon__matchLinkBtn:hover{ background:#fde047 !important; }
.recon__matchSkipped{ color:var(--muted); font-style:italic; font-size:12px; }
.recon__matchConfirmedTag{
  color:#166534; font-weight:600; font-size:13px; display:inline-flex; align-items:center; gap:4px;
}

/* Manual order picker dropdown */
.recon__matchPicker{
  margin-top:8px; padding:10px; border:1px solid var(--border); border-radius:8px;
  background:#fff;
}
.recon__matchPickerSearch{
  width:100%; padding:6px 10px; border:1px solid var(--border); border-radius:6px;
  font-size:13px; margin-bottom:8px;
}
.recon__matchPickerList{ max-height:240px; overflow:auto; }
.recon__matchPickerItem{
  padding:6px 10px; border-radius:6px; cursor:pointer; font-size:13px;
  display:flex; justify-content:space-between; gap:10px;
}
.recon__matchPickerItem:hover{ background:rgba(0,160,208,.06); }

/* Toolbar */
.recon__importToolbar{
  margin-top:18px; display:flex; flex-wrap:wrap; gap:10px;
  padding-top:14px; border-top:1px solid var(--border);
}

