
:root {
  --page-edge: 14px;
  --bg: #fff7ed;
  --panel: #ffffff;
  --ink: #1f2937;
  --muted: #6b7280;
  --line: #fed7aa;
  --orange: #f97316;
  --orange-dark: #c2410c;
  --orange-soft: #ffedd5;
  --blue: #1d4ed8;
  --blue-dark: #1e40af;
  --red: #dc2626;
  --green: #15803d;
  --shadow: 0 18px 45px rgba(124, 45, 18, 0.12);
  --radius: 22px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at top left, rgba(249, 115, 22, 0.18), transparent 35%),
    linear-gradient(135deg, #fff7ed 0%, #fff 48%, #ffedd5 100%);
  min-height: 100vh;
  overflow-x: hidden;
}
.page { width: calc(100% - (var(--page-edge) * 2)); max-width: 1220px; margin: 0 auto; padding: 28px 0 42px; }
.hero { display: grid; grid-template-columns: 1.35fr 0.65fr; gap: 20px; align-items: stretch; margin-bottom: 20px; }
.hero-card, .result-card, .card, .panel-card { background: rgba(255,255,255,.9); border: 1px solid rgba(251,146,60,.28); border-radius: var(--radius); box-shadow: var(--shadow); width: 100%; }
.hero-card { padding: 30px; position: relative; overflow: hidden; min-height: 220px; display: flex; flex-direction: column; justify-content: center; }
.hero-card:after { content:""; position:absolute; width:170px; height:170px; right:-56px; top:-56px; background:linear-gradient(135deg,#fb923c,#fdba74); border-radius:999px; opacity:.22; }
h1 { font-size: clamp(28px,4vw,46px); line-height: 1.04; margin:0 0 14px; letter-spacing:-.04em; }
.lead { margin:0; max-width:760px; color:var(--muted); font-size:16px; line-height:1.55; }
.result-card { padding:22px; display:flex; flex-direction:column; justify-content:space-between; gap:14px; min-height:220px; background: linear-gradient(155deg,#fff,#fff7ed); }
.result-label { color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-size:12px; font-weight:900; }
.result-line { width:54px; height:4px; background:#c2410c; margin:12px 0 14px; }
.result-price { color:#c2410c; font-size: clamp(42px,6vw,66px); line-height:.95; font-weight:900; letter-spacing:-.06em; margin:0 0 8px; }
.result-note { color:var(--muted); font-size:14px; line-height:1.45; margin:0; }
.button-row { display:flex; align-items:center; gap:12px; flex-wrap:nowrap; }
button, .button { border:0; border-radius:14px; padding:13px 18px; min-height:50px; background:var(--orange); color:#fff; font-weight:900; font-size:15px; cursor:pointer; text-decoration:none; display:inline-flex; justify-content:center; align-items:center; }
button:hover { background:var(--orange-dark); }
button.blue { background:var(--blue); } button.blue:hover { background:var(--blue-dark); }
button.green { background:var(--green); } button.danger { background:#fff; border:1px solid #fecaca; color:var(--red); }
button.outline { background:#fff; border:1px solid #fdba74; color:#7c2d12; }
button:disabled { opacity:.55; cursor:not-allowed; }
.user-pill { display:inline-flex; border:1px solid #fed7aa; background:#fff7ed; color:#7c2d12; padding:8px 12px; border-radius:999px; font-weight:900; font-size:13px; margin-top:14px; position:relative; z-index:1; }
.top-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tab-btn { background:#fff; color:#7c2d12; border:1px solid #fdba74; }
.tab-btn.active { background:var(--orange); color:#fff; border-color:var(--orange); }
.main-grid { display:grid; grid-template-columns: minmax(0,1fr) 380px; gap:20px; align-items:start; }
.left-stack, .right-stack { display:grid; gap:18px; }
.right-stack { position: sticky; top:20px; }
.card, .panel-card { padding:22px; }
.card-title, .section-title { display:flex; align-items:center; gap:12px; margin:0 0 20px; font-size:20px; line-height:1.2; letter-spacing:-.02em; }
.num { width:30px; height:30px; border-radius:10px; background:var(--orange); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:900; flex:0 0 auto; }
.grid { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:14px; }
.grid2 { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:14px; }
.field.full { grid-column:1 / -1; }
label { display:block; min-height:18px; margin-bottom:7px; color:#7c2d12; font-size:13px; line-height:1.25; font-weight:900; }
input, select { width:100%; min-height:44px; border:1px solid #fdba74; border-radius:14px; padding:10px 12px; background:#fff; color:var(--ink); font-size:14px; outline:none; }
input:focus, select:focus { border-color:var(--orange); box-shadow:0 0 0 4px rgba(249,115,22,.12); }
/* V137: возврат прежнего цвета. В v134 я перекрашивал .help в красный по
   запросу, но это оказалось слишком ярко — подсказки заглушали важные
   сообщения об ошибках. Возвращаю серый, как было исходно. .status-msg
   (текст ошибок) остаётся красным из v134. */
.help { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.35; }
.option-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.option-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.radio-card { position:relative; min-height:112px; border:1px solid #fdba74; border-radius:16px; padding:14px 12px 12px; background:#fff; cursor:pointer; transition:.15s; display:flex; flex-direction:column; justify-content:flex-end; }
.radio-card input { position:absolute; left:12px; top:12px; width:20px; height:20px; min-height:0; margin:0; accent-color:var(--orange); }
.radio-card strong { color:#7c2d12; font-size:24px; line-height:1; margin-bottom:8px; }
.radio-card span { color:#6b7280; font-size:13px; font-weight:900; line-height:1.25; }
.radio-card.active { background:#fff3e4; border-color:var(--orange); box-shadow:0 0 0 1px var(--orange) inset; }
.detail-list { display:grid; grid-template-columns: 1fr 1fr; gap:0 22px; }
.detail-row { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px dashed #fed7aa; font-size:14px; }
.detail-row b { color:#7c2d12; }
.formula-box { margin-top:14px; border:1px solid #fed7aa; border-radius:16px; background:#fff7ed; color:#7c2d12; padding:14px; font-size:13px; line-height:1.45; }
.panel { display:none; } .panel.active { display:block; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #fed7aa; border-radius:16px; overflow:hidden; }
th, td { padding:10px; border-bottom:1px solid #fed7aa; font-size:13px; text-align:left; vertical-align:top; }
th { color:#7c2d12; background:#fff7ed; font-weight:900; }
.status-msg { color:#dc2626; font-weight:900; font-size:13px; min-height:18px; }
.muted { color:var(--muted); font-size:13px; line-height:1.4; }
pre { white-space:pre-wrap; word-break:break-word; background:#fff7ed; border:1px solid #fed7aa; border-radius:14px; padding:12px; max-height:360px; overflow:auto; font-size:12px; }
canvas { width:100%; max-width:100%; min-height:240px; border:1px solid #fed7aa; border-radius:16px; background:#fff; }
.login-wrap { max-width:1050px; }
.auth-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:18px; }
@media (max-width: 1050px) { .hero, .main-grid { grid-template-columns:1fr; } .right-stack { position:static; } .option-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .top-nav { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) { .page{width:calc(100% - 18px); padding:14px 0 28px;} .grid,.grid2,.auth-grid,.option-grid,.option-grid.three,.top-nav{grid-template-columns:1fr;} .hero-card,.result-card,.card,.panel-card{border-radius:18px; padding:16px;} .hero-card,.result-card{min-height:unset;} .button-row{display:grid; grid-template-columns:1fr 1fr;} .button-row button{width:100%; padding-left:10px; padding-right:10px;} .result-price{font-size:42px;} .detail-list{grid-template-columns:1fr;} }



.hero-single {
  grid-template-columns: minmax(0, 1fr);
}
.hero-card-compact {
  min-height: 150px;
  padding: 34px 34px 30px;
}
.hero-card-compact h1 {
  margin-bottom: 0;
}
.auth-single-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.auth-card-single {
  width: min(100%, 560px);
  min-height: 460px;
  display: flex;
  flex-direction: column;
}
.auth-card-single .card-title {
  margin-bottom: 24px;
}
.auth-form-grid {
  gap: 18px;
}
.auth-button-row {
  margin-top: 18px;
}
.auth-card-single .status-msg {
  margin-top: 18px;
  font-size: 15px;
  line-height: 1.35;
  min-height: 42px;
}
.auth-switch {
  margin-top: auto;
  padding-top: 18px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}
.link-button {
  border: 0;
  background: transparent;
  color: var(--blue);
  padding: 0;
  min-height: 0;
  border-radius: 0;
  font-size: inherit;
  font-weight: 900;
  display: inline;
  text-decoration: underline;
  cursor: pointer;
}
.link-button:hover {
  background: transparent;
  color: var(--blue-dark);
}
.success-box {
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid #86efac;
  background: #dcfce7;
  color: #166534;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 900;
}
.is-hidden {
  display: none !important;
}
@media (max-width: 720px) {
  .hero-card-compact {
    min-height: 120px;
    padding: 26px 22px;
  }
  .auth-card-single {
    min-height: auto;
  }
  .auth-button-row {
    margin-top: 14px;
  }
}


/* v4: Login page header width is aligned with auth/registration card */
.login-wrap .hero-single {
  display: flex;
  justify-content: center;
  align-items: stretch;
  margin-bottom: 22px;
}
.login-wrap .hero-card-compact {
  width: min(100%, 560px);
  min-height: 142px;
  padding: 30px 34px;
}
.login-wrap .hero-card-compact h1 {
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.12;
  letter-spacing: -0.035em;
}


/* v5: fixed typography title and auth spacing */
.login-wrap .hero-card-compact {
  min-height: 128px;
  padding: 24px 30px;
}
.login-wrap .brand-title {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0;
  font-size: clamp(25px, 2.6vw, 34px);
  line-height: 1.06;
  letter-spacing: -0.035em;
}
.login-wrap .brand-title span:first-child {
  white-space: nowrap;
}
.login-wrap .brand-title span:last-child {
  white-space: normal;
}
.auth-switch {
  margin-top: 28px;
  padding-top: 0;
}
.auth-card-single {
  min-height: 400px;
}
.auth-card-single .status-msg {
  min-height: 24px;
  margin-top: 16px;
}
@media (max-width: 720px) {
  .login-wrap .hero-card-compact {
    min-height: 110px;
    padding: 22px 24px;
  }
  .login-wrap .brand-title {
    font-size: clamp(24px, 7vw, 32px);
  }
  .auth-switch {
    margin-top: 28px;
  }
}

/* v7 cumulative UI fixes */
.auth-hero-card{text-align:left}.auth-hero-kicker{color:var(--orange-dark);font-size:13px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}.auth-hero-subtitle{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.auth-button-center{justify-content:center}.auth-button-center button{min-width:130px}.auth-switch-center{width:100%;text-align:center;margin-top:16px;padding-top:0}.status-msg-auth{text-align:center;margin-top:14px}.login-wrap .auth-card-single{min-height:390px}.top-nav-card{min-height:auto}.admin-hidden{display:none!important}.aligned-grid>div,.aligned-grid>.field{display:flex;flex-direction:column}.controls-gap{margin-top:14px}.app-hero.stock-mode .hero-card h1{font-size:clamp(28px,3.4vw,40px)}
.result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result-actions button{width:100%;min-width:160px;min-height:64px}.result-total-card .result-price{font-size:clamp(34px,5vw,58px);word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:clip}.autosize-price{font-size:clamp(30px,5vw,58px)}
.color-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}.color-card{min-height:118px;padding-top:42px;justify-content:flex-start}.color-card input{top:16px}.color-card strong{font-size:22px;line-height:1;margin:0 0 10px}.color-card span{font-size:12px;line-height:1.25;display:block;overflow:visible}.lamination-grid .lam-card{min-height:104px;padding-top:42px;justify-content:flex-start}.lamination-grid .lam-card strong{font-size:19px;line-height:1;margin:0 0 9px}.lamination-grid .lam-card span{font-size:12px;line-height:1.25}.radio-card.disabled{opacity:.45;pointer-events:none;background:#f9fafb}.radio-card.disabled:after{content:'Недоступно';position:absolute;right:10px;top:10px;font-size:10px;color:#9ca3af;font-weight:900}.media-grid{align-items:end}.bleed-inline{grid-column:1/-1;display:flex!important;flex-direction:row!important;align-items:center;gap:2mm;border:1px solid #fdba74;border-radius:14px;padding:10px 12px;background:#fff}.checkbox-line{display:flex;align-items:center;gap:2mm;margin:0;min-height:0;color:#7c2d12}.checkbox-line input{width:18px;height:18px;min-height:0;accent-color:var(--orange);padding:0}.bleed-inline #bleedSize{width:110px;min-height:38px;text-align:center;font-weight:900}.mm-label{font-weight:900;color:#7c2d12}.orientation-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.orientation-btn,.metric-info{min-height:112px;border:1px solid #fdba74;border-radius:16px;background:#fff;padding:14px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;color:var(--ink)}.orientation-btn{cursor:pointer}.orientation-btn:hover{background:#fff7ed;border-color:var(--orange)}.orientation-btn.active{background:#fff3e4;border-color:var(--orange);box-shadow:0 0 0 1px var(--orange) inset}.orientation-btn span,.metric-info span{color:#6b7280;font-size:13px;font-weight:900;line-height:1.25}.orientation-btn b,.metric-info b{color:#7c2d12;font-size:36px;line-height:1;margin-top:8px}.metric-info{cursor:default;background:#fffdfa}.stock-meta{min-height:44px;border:1px solid #fdba74;border-radius:14px;padding:10px 12px;background:#fff7ed;color:#7c2d12;font-size:13px;line-height:1.35;display:flex;align-items:center}.stock-meta.ok{background:#ecfdf5;border-color:#86efac;color:#166534}.stock-meta.warn{background:#fff7ed;border-color:#fdba74;color:#9a3412}.stock-meta.bad{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.stock-warning{margin-top:14px;min-height:18px}.field-error{border-color:#dc2626!important;box-shadow:0 0 0 4px rgba(220,38,38,.12)!important;background:#fffafa!important}.detail-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-card{min-height:86px;border:1px solid #fed7aa;border-radius:16px;padding:12px 14px;background:#fffdfa;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.detail-card span{color:var(--muted);font-size:13px;line-height:1.3}.detail-card b{color:#7c2d12;font-size:18px;line-height:1.25;word-break:break-word}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:122px;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:900;line-height:1.2}.status-badge.saved{background:#fff7ed;color:#9a3412;border:1px solid #fdba74}.status-badge.in_work{background:#eff6ff;color:#1d4ed8;border:1px solid #93c5fd}.status-badge.issued{background:#ecfdf5;color:#15803d;border:1px solid #86efac}.status-badge.cancelled{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.payment-method-select{min-width:180px}.stock-button-row{margin-top:20px;align-items:flex-start}.stock-button-row button{min-width:160px}.stock-grid{align-items:end}.revenue-filter-grid{align-items:end}.revenue-button-cell{display:flex;flex-direction:column;align-items:flex-end}.revenue-button-cell button{min-width:150px}.revenue-total{font-size:clamp(26px,3.5vw,42px)!important;line-height:1.05;margin:18px 0 14px;white-space:nowrap;overflow:hidden}.mini-table{margin-bottom:14px}.audit-filter-grid,.admin-user-tools{align-items:end}.muted-small{font-size:12px;color:var(--muted)}
@media(max-width:1050px){.color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.orientation-actions{grid-template-columns:1fr}.right-stack{position:static}.result-actions button{min-width:0}}
@media(max-width:760px){.result-actions{grid-template-columns:1fr 1fr}.orientation-actions{grid-template-columns:1fr}.detail-cards{grid-template-columns:1fr}.bleed-inline{align-items:flex-start;flex-wrap:wrap}.bleed-inline #bleedSize{width:90px}.color-grid{grid-template-columns:1fr}.revenue-button-cell{align-items:stretch}}


/* v8 navigation */
.global-nav-bar {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(255, 247, 237, .96);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(251,146,60,.28);
}
.global-nav-inner {
  width: calc(100% - 28px);
  max-width: 1220px;
  margin: 0 auto;
  display: flex;
  gap: 8px;
  align-items: stretch;
  padding: 8px 0;
}
.nav-menu-item { position: relative; flex: 1 1 0; min-width: 130px; }
.nav-main, .nav-logout {
  width: 100%;
  min-height: 44px;
  border-radius: 12px;
}
.nav-dropdown {
  display: grid;
  gap: 6px;
  position: absolute;
  left: 0;
  top: calc(100% + 4px);
  min-width: 240px;
  background: #fff;
  border: 1px solid #fdba74;
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 8px;
  z-index: 300;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease, visibility 0s linear .18s;
}
.nav-menu-item:hover .nav-dropdown, .nav-menu-item:focus-within .nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; transition-delay: 0s; }
.nav-dropdown button {
  justify-content: flex-start;
  min-height: 38px;
  background: #fff7ed;
  color: #7c2d12;
  border: 1px solid transparent;
  text-align: left;
}
.nav-dropdown button:hover { background: #ffedd5; border-color: #fdba74; }
.nav-dropdown button:disabled { opacity: .45; cursor: not-allowed; }
.nav-logout { flex: 0 0 120px; background:#fff; border:1px solid #fecaca; color:var(--red); }
.top-nav-card { display: none !important; }
.app-hero { grid-template-columns: 1fr; }

/* v8 fixed data panes */
#auditList, #ordersList, #stockList, #receiptsList, .fixed-small-table {
  max-height: 390px;
  overflow: auto;
  border: 1px solid #fed7aa;
  border-radius: 16px;
  background: #fff;
}
#ordersList { max-height: 520px; }
#revenueMethods { max-height: 180px; overflow:auto; }
.revenue-card { max-height: 680px; overflow: hidden; }
.revenue-total {
  display: block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
  font-size: clamp(30px, 4.3vw, 50px) !important;
  line-height: 1.05;
}
#revenueChart {
  width: 100%;
  max-width: 100%;
  height: 260px;
  border: 1px solid #fed7aa;
  border-radius: 16px;
  margin-top: 14px;
}

/* v8 paper search */
.paper-search-wrap { position: relative; }
.paper-dropdown {
  display: none;
  position: absolute;
  left: 0; right: 0;
  top: calc(100% + 6px);
  max-height: 260px;
  overflow: auto;
  background: #fff;
  border: 1px solid #fdba74;
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 6px;
  z-index: 150;
}
.paper-dropdown.open { display: grid; gap: 6px; }
.paper-suggestion {
  width: 100%;
  border-radius: 10px;
  min-height: 44px;
  background: #fff7ed;
  color: #1f2937;
  border: 1px solid transparent;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 10px;
  text-align: left;
}
.paper-suggestion:hover { background: #ffedd5; border-color: #fdba74; }
.paper-suggestion b { color:#7c2d12; font-size: 13px; }
.paper-suggestion span, .paper-suggestion em { color:#6b7280; font-size: 12px; font-style: normal; }
.paper-suggestion em { grid-column: 1 / -1; }

/* v8 input and cards */
input.field-error, select.field-error {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 4px rgba(220,38,38,.12) !important;
}
.color-grid .radio-card,
.lamination-grid .radio-card {
  justify-content: flex-start;
  padding-top: 38px;
  min-height: 112px;
}
.color-grid .radio-card strong,
.lamination-grid .radio-card strong {
  min-height: 28px;
  display: flex;
  align-items: center;
  font-size: 22px;
  line-height: 1;
  margin-bottom: 7px;
}
.color-grid .radio-card span,
.lamination-grid .radio-card span {
  font-size: 12px;
  line-height: 1.25;
}
.lamination-grid .radio-card strong { font-size: 19px; }
.result-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.result-actions button { width: 100%; min-height: 54px; }
.autosize-price { max-width:100%; white-space:nowrap; overflow:hidden; }
.phone-col { min-width: 155px; white-space: nowrap; }
.orders-table td, .orders-table th { vertical-align: top; }
.layout-upload-btn {
  border: 1px solid #fdba74;
  color: #7c2d12;
  background: #fff;
  border-radius: 12px;
  min-height: 42px;
  padding: 10px 12px;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}
.layout-upload-btn input { display:none; }
.customer-type-line { min-height: 36px; display:inline-flex; align-items:center; gap:10px; margin:0; }
.customer-type-line input { width:18px; min-height:18px; accent-color:var(--orange); }
.stock-button-row { margin-top: 18px; }

/* v8 role/no access */
.no-access-panel.active { display:block; }
.admin-hidden { display:none !important; }

/* v8 reports layout */
.revenue-filter-grid .revenue-button-cell { align-self: end; }
.revenue-filter-grid .revenue-button-cell button { width:100%; }
.promo-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.audit-filter-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }

/* v8 mobile */
@media (max-width: 900px) {
  .page { width: calc(100% - 16px); padding-top: 14px; }
  .global-nav-inner { width: calc(100% - 16px); overflow-x: auto; align-items: stretch; }
  .nav-menu-item { min-width: 150px; flex: 0 0 150px; }
  .nav-logout { flex: 0 0 100px; }
  .hero-card { min-height: auto; padding: 20px; }
  .main-grid { grid-template-columns: 1fr; }
  .right-stack { position: static; }
  .grid, .grid2, .option-grid, .option-grid.three, .promo-grid, .audit-filter-grid {
    grid-template-columns: 1fr !important;
  }
  .result-actions { grid-template-columns: 1fr 1fr; }
  .orientation-actions { grid-template-columns: 1fr; }
  .metric-info, .orientation-btn { min-height: 92px; }
  h1 { font-size: 30px; }
  .card, .panel-card, .result-card { padding: 16px; border-radius: 18px; }
  .radio-card { min-height: 98px; }
  .table-wrap { overflow-x: auto; }
  table { min-width: 860px; }
}
@media (max-width: 520px) {
  .result-actions { grid-template-columns: 1fr; }
  .button-row { flex-wrap: wrap; }
  button, .button { width: 100%; }
}


.compact-actions { gap: 6px; align-items: flex-start; }
.compact-btn, .compact-actions .compact-btn, .compact-actions button, .compact-actions .layout-upload-btn {
  min-height: 34px !important;
  padding: 7px 10px !important;
  font-size: 12px !important;
  border-radius: 10px !important;
}
.compact-select { min-height: 34px; padding: 6px 9px; font-size: 12px; min-width: 130px; }
.orders-table tbody tr { height: auto; max-height: 5cm; }
.orders-table td { padding-top: 8px; padding-bottom: 8px; line-height: 1.25; }
.orders-table .table-actions { min-width: 170px; }
#adminPanel .main-grid { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
#adminPanel .right-stack { position: static; }
#adminPanel .left-stack, #adminPanel .right-stack { min-width: 0; }
.revenue-card { max-height: none; overflow: hidden; }
@media (max-width: 1050px){ #adminPanel .main-grid { grid-template-columns: 1fr; } }

/* v10 manager, materials, hardcover */
.manager-filter-grid { grid-template-columns: repeat(5,minmax(0,1fr)); align-items:end; }
#managerOrdersList { max-height: 520px; overflow:auto; border:1px solid #fed7aa; border-radius:16px; background:#fff; }
.manager-details-box { max-height: 430px; overflow:auto; border:1px solid #fed7aa; border-radius:16px; background:#fffdfa; padding:14px; }
.manager-details-box h3 { margin:16px 0 8px; font-size:16px; }
#materialStockList { max-height: 320px; overflow:auto; border:1px solid #fed7aa; border-radius:16px; background:#fff; }
#bindingPanel .result-card { min-height: 210px; }
#hardcoverDetails .detail-card { min-height: 92px; }
.global-nav-inner { gap: 7px; }
.nav-menu-item.manager-only { display:block; }
@media (max-width: 1050px){ .manager-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px){ .manager-filter-grid { grid-template-columns: 1fr; } #managerOrdersList table, .manager-orders-table { min-width: 980px; } }

/* v11 fixes */
#adminPanel .main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 22px;
  align-items: start;
}
#adminPanel .left-stack, #adminPanel .right-stack { min-width: 0; }
#adminPanel .right-stack { position: static; }
.menu-perms-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.menu-perm-item {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  padding: 9px 10px;
  background: #fff7ed;
  font-weight: 800;
  color: #7c2d12;
}
.menu-perm-item input { width: 18px; min-height: 18px; accent-color: var(--orange); }
#bindingPanel .paper-dropdown { z-index: 500; }
#bindingPanel .detail-card b { line-height: 1.25; }
#bindingPanel .stock-meta { min-height: 42px; }
#stockPanel .card { overflow: visible; }
#materialStockList table td:first-child, #materialStockList table th:first-child { min-width: 150px; }
.orders-table pre, .manager-details-box pre { white-space: pre-wrap; word-break: break-word; }
.manager-details-box table { width: 100%; min-width: 0; }
.manager-details-box th { text-align: left; width: 230px; color: #7c2d12; }
.manager-details-box td, .manager-details-box th { border-bottom: 1px solid #fed7aa; padding: 8px; }
@media (max-width: 1050px) {
  #adminPanel .main-grid { grid-template-columns: 1fr; }
  .menu-perms-grid { grid-template-columns: 1fr; }
}


/* v12: единая ширина, центрирование, отчеты без перекрытия, мобильная адаптация */
.global-nav-bar { position: sticky; top: 0; z-index: 50; background: rgba(255,247,237,.96); border-bottom: 1px solid #fed7aa; }
.global-nav-inner { width: min(100% - 28px, 1220px); margin: 0 auto; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 6px; padding: 6px 0; }
.global-nav-inner .nav-main,.global-nav-inner .nav-logout { width: 100%; min-height: 44px; }
/* V137: блок пользователя (Tester / ФИО) всегда прибит к правому краю,
   независимо от количества видимых вкладок. У дизайнера видны только
   3 элемента ("Визитки", "Дизайнер", "Tester") из 6 колонок — раньше они
   занимали колонки 1-3 слева, теперь Tester прыгает в самую правую. */
#userMenuItem { grid-column: -2 / -1; }
.nav-menu-item { position: relative; }
.nav-dropdown { display: none; position: absolute; left: 0; top: calc(100% + 4px); min-width: 220px; padding: 8px; border: 1px solid #fdba74; border-radius: 14px; background: #fff7ed; box-shadow: var(--shadow); z-index: 100; }
.nav-menu-item:hover .nav-dropdown { display: grid; gap: 6px; }
.nav-dropdown button { min-height: 38px; border-radius: 10px; background: #fff; color: #7c2d12; border: 1px solid transparent; justify-content: flex-start; }
.nav-dropdown button:hover { border-color: var(--orange); }
#stockPanel, #adminPanel, #ordersPanel, #managerPanel, #bindingPanel, #calcPanel { width: 100%; }
#adminPanel .main-grid { grid-template-columns: minmax(0,1fr); max-width: 1220px; margin: 0 auto; }
#adminPanel .right-stack { position: static; }
#adminPanel .revenue-card { max-width: 100%; }
#adminPanel .admin-user-tools, #adminPanel .promo-grid, #adminPanel .audit-filter-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.revenue-filter-grid { grid-template-columns: repeat(4,minmax(0,1fr)); align-items: end; }
.revenue-total { max-width: 100%; overflow: hidden; white-space: nowrap; }
#revenueChart { display: block; width: 100%; height: 260px; }
.aligned-grid > div { min-width: 0; }
.binding-form-grid, .manager-filter-grid, .stock-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: end; }
.human-order-data { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.human-order-data > div { border: 1px solid #fed7aa; border-radius: 12px; padding: 10px; background: #fffaf5; min-height: 58px; }
.human-order-data span { display:block; color: var(--muted); font-size: 12px; margin-bottom: 5px; }
.human-order-data b { color:#7c2d12; font-size:14px; line-height:1.25; }
.paper-dropdown { display:none; position:absolute; z-index:60; left:0; right:0; top:calc(100% + 4px); max-height:260px; overflow:auto; background:#fff; border:1px solid #fdba74; border-radius:14px; box-shadow:var(--shadow); padding:6px; }
.paper-dropdown.open { display:grid; gap:4px; }
.paper-search-wrap { position:relative; }
.paper-suggestion { width:100%; justify-content:flex-start; min-height:44px; background:#fff; color:#1f2937; border:1px solid #fed7aa; border-radius:10px; display:grid; gap:2px; text-align:left; }
.paper-suggestion span,.paper-suggestion em { color:#6b7280; font-size:12px; font-style:normal; }
.stock-meta.ok { border-color:#86efac; background:#f0fdf4; color:#166534; }
.stock-meta.bad { border-color:#fecaca; background:#fef2f2; color:#991b1b; }
.stock-meta { min-height:44px; border:1px solid #fdba74; border-radius:14px; padding:12px; background:#fff; font-size:13px; font-weight:700; }
.detail-cards { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:10px; }
.detail-card { border:1px solid #fed7aa; border-radius:14px; padding:12px; background:#fffaf5; }
.detail-card span { display:block; color:#6b7280; font-size:12px; margin-bottom:8px; }
.detail-card b { color:#7c2d12; font-size:18px; line-height:1.2; }
@media (max-width: 900px) {
  .global-nav-inner { grid-template-columns: repeat(2,minmax(0,1fr)); width: calc(100% - 16px); }
  .nav-dropdown { position: static; margin-top: 4px; width: 100%; }
  .page { width: calc(100% - 16px); max-width: 100%; }
  #adminPanel .admin-user-tools, #adminPanel .promo-grid, #adminPanel .audit-filter-grid, .revenue-filter-grid, .binding-form-grid, .manager-filter-grid, .stock-grid { grid-template-columns: 1fr; }
  .main-grid, .hero { grid-template-columns:1fr; }
  .right-stack { position: static; }
  .human-order-data, .detail-cards { grid-template-columns: 1fr; }
  table { min-width: 760px; }
  .table-wrap { max-width: 100%; overflow:auto; }
}


/* v13: объединенные страницы, сворачиваемые блоки, мобильная адаптация */
.nav-menu-item .nav-dropdown{display:none!important;}
.designer-only.admin-hidden{display:none!important;}
.collapsible .collapse-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:14px 18px;color:#7c2d12;font-weight:800;cursor:pointer;}
.collapsible .collapse-head b{background:#f97316;color:#fff;border-radius:10px;padding:6px 10px;margin-right:10px;}
.collapsible.collapsed .collapse-body{display:none;}
.collapsible .collapse-body{margin-top:14px;}
.combine-box{display:grid;grid-template-columns:1fr 280px;gap:14px;align-items:end;margin-top:16px;padding:14px;border:1px solid #fed7aa;border-radius:16px;background:#fffaf4;}
.combine-box label{display:block;font-size:12px;color:#7c2d12;font-weight:800;margin-bottom:6px;}
.combine-box input{width:100%;}
.human-order-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.human-order-data div{border:1px solid #fed7aa;border-radius:12px;padding:10px;background:#fffaf4;}
.human-order-data span{display:block;color:#6b7280;font-size:12px;margin-bottom:6px;}
.human-order-data b{color:#7c2d12;word-break:break-word;}
.orders-table .compact-btn,.compact-btn{padding:7px 10px!important;min-height:32px!important;font-size:12px!important;border-radius:9px!important;}
.orders-table tr{height:auto;max-height:5cm;}
#auditList{max-height:360px;overflow:auto;}
#adminPanel .main-grid{grid-template-columns:minmax(0,1fr);max-width:1320px;margin:0 auto;}
#adminPanel .right-stack{width:100%;}
#revenueChart{max-width:100%;height:auto;}
.detail-card small{font-size:11px;color:#6b7280;}
@media (max-width: 900px){
  .global-nav-inner,.top-nav{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;}
  .page{padding:10px!important;}
  .main-grid,.grid,.grid2,.manager-filter-grid,.stock-grid,.promo-grid,.admin-user-tools,.audit-filter-grid,.revenue-filter-grid,.combine-box{grid-template-columns:1fr!important;}
  .hero,.app-hero{grid-template-columns:1fr!important;}
  .result-card,.card{border-radius:16px!important;padding:16px!important;}
  h1,#heroTitle{font-size:28px!important;line-height:1.15!important;}
  .result-price{font-size:42px!important;}
  .option-grid,.option-grid.three,.color-grid,.lamination-grid{grid-template-columns:1fr!important;}
  .detail-cards,.human-order-data{grid-template-columns:1fr!important;}
  table{font-size:12px;}
  .table-wrap{overflow:auto;}
}

/* v14: возврат выпадающего меню расчета и корректировка новых полей */
.nav-menu-item .nav-dropdown{
  display:grid!important;
  gap:6px;
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  pointer-events:none;
  transition:opacity .16s ease, transform .16s ease, visibility 0s linear .25s;
}
.nav-menu-item:hover .nav-dropdown,
.nav-menu-item:focus-within .nav-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
.combine-box{grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:end;}
.combine-box .help{grid-column:2;align-self:start;margin:0;color:#64748b;}
.combine-box .blue{grid-column:1 / -1;}
.design-flags{display:flex;gap:22px;align-items:center;flex-wrap:wrap;}
.designer-total-pill{display:inline-block;margin:0 0 14px 0;}
@media (max-width:900px){
  .nav-menu-item .nav-dropdown{position:static;width:100%;margin-top:4px;}
  .combine-box .help,.combine-box .blue{grid-column:auto;}
}
/* v15: склад, объединенные заказы, статусы */
.combined-item{border:1px solid #fed7aa;border-radius:18px;padding:12px;margin:10px 0;background:#fffaf4}
.combined-item h4{margin:0 0 10px;color:#7c2d12;font-size:15px}
.status-badge.combined{background:#fef3c7;color:#92400e;border-color:#f59e0b}
#stockPaperSelectedMeta{min-height:18px}
#stockName:disabled,#stockGsm:disabled,#stockMedia:disabled{background:#fff7ed;color:#7c2d12;font-weight:700;opacity:1}
@media(max-width:760px){.combined-item{padding:10px}.human-order-data{grid-template-columns:1fr!important}.stock-grid{grid-template-columns:1fr!important}.paper-dropdown{max-width:calc(100vw - 32px)}}


/* v16: точечные исправления по объединению, книгам и полям */
#saveOrderBtn::after { content: ""; }
.binding-form-grid > div { min-width:0; display:flex; flex-direction:column; justify-content:flex-end; }
.binding-form-grid label { min-height:34px; display:flex; align-items:flex-end; }
.binding-form-grid .paper-search-wrap { width:100%; }
#bindingPanel .grid.binding-form-grid { grid-template-columns: repeat(2, minmax(0,1fr)); align-items:end; }
#bindingPanel .design-flags { grid-column: 1 / -1; }
#bindSelfAdhesiveMeta, #bindPaperStockMeta { min-height:50px; }
#paperSearch:placeholder-shown, #bindPaperSearch:placeholder-shown { color:#64748b; }
@media(max-width:900px){
  #bindingPanel .grid.binding-form-grid { grid-template-columns:1fr!important; }
  .binding-form-grid label { min-height:auto; }
}
.upload-inline{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}
#designerPanel .detail-card{margin-top:10px;max-width:420px}
#designerPanel .orders-table td{vertical-align:top}
#designerPanel .table-actions{gap:6px;flex-wrap:wrap}


.subsection-title{display:flex;align-items:center;gap:8px;margin:14px 0 8px;font-size:16px;color:#1f2937}.small-num{font-size:12px;min-width:26px;height:26px;border-radius:9px}.icon-actions{gap:4px;align-items:center}.icon-btn{display:inline-flex!important;align-items:center;justify-content:center;width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;padding:0!important;border-radius:6px!important;border:1px solid #fb923c;background:#fff7ed;color:#7c2d12;font-size:13px;font-weight:900;line-height:1;cursor:pointer;vertical-align:middle}.icon-btn.green{background:#15803d;color:white;border-color:#15803d}.icon-btn.blue{background:#1d4ed8;color:white;border-color:#1d4ed8}.icon-btn.danger{background:#fff1f2;color:#dc2626;border-color:#fecaca}.icon-btn.outline{background:#fff7ed;color:#7c2d12}.icon-btn:hover{filter:brightness(.94);transform:translateY(-1px)}.layout-upload-btn.icon-btn input,.upload-inline.icon-btn input{display:none}.compact-actions .compact-btn{min-height:22px;padding:3px 8px;font-size:12px}.payment-method-select.compact-select{max-width:120px;height:24px;font-size:11px;padding:2px 5px}.field-error{border-color:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.12)}

/* v22 UI compactness, responsive layout, icons and admin tools */
.page{max-width:1280px;padding-top:18px}.hero{display:none}.top-nav-card{display:none!important}.main-grid{grid-template-columns:minmax(0,1fr)}.right-stack{position:static}
.card,.panel-card,.result-card{padding:18px}.grid,.grid2{gap:12px}.field{margin-bottom:2px}.field + .button-row,.button-row + .field{margin-top:6px}
button,.button{min-height:42px;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.2}.button-row{gap:10px;align-items:stretch;flex-wrap:wrap}.compact-buttons-row button,.result-actions button,.button-row button{min-width:0}.result-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.result-actions button{min-height:54px;padding:10px 12px}
#multiOrderList+.grid2,.top-space-12{margin-top:12px}
.icon-actions{display:grid;grid-auto-flow:column;grid-auto-columns:34px;gap:6px;align-items:center;justify-content:start}.icon-btn{width:34px;height:34px;min-height:34px;padding:0;border-radius:10px;font-size:16px;line-height:1}.icon-btn .icon-glyph{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.layout-upload-btn{position:relative;overflow:hidden}.layout-upload-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.compact-select{min-width:155px;max-width:165px;min-height:34px;padding:6px 8px;border-radius:10px;font-size:13px}.table-actions.compact-actions{align-items:center;gap:6px;flex-wrap:nowrap}
.status-badge{min-width:104px;padding:6px 10px;font-size:11px}.orders-table th,.orders-table td,table th,table td{padding:8px 8px;font-size:12px}.table-wrap{overflow:auto;max-width:100%}
#ordersPanel .card,#managerPanel .card,#designerPanel .card,#adminPanel .card,#stockPanel .card,#bindingPanel .card{overflow:hidden}
.menu-perm-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #fed7aa;border-radius:14px;background:#fff}.menu-perm-item span{display:flex;flex-direction:column;gap:4px;color:#7c2d12;font-size:13px;line-height:1.25}.menu-perm-item small{font-size:11px;color:var(--muted);font-weight:400}.menu-perm-item input{width:18px;height:18px;min-height:18px;margin-top:2px}
.checkbox-line{display:flex;align-items:center;gap:8px}.checkbox-line input{width:18px;height:18px;min-height:18px}
#usersList table td:last-child,#printerAdminList table td:last-child{min-width:170px}
.revenue-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
canvas#revenueChart{cursor:pointer}
@media (max-width:1200px){.result-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.revenue-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.page{width:calc(100% - 12px)}.grid,.grid2,.detail-cards,.revenue-filter-grid{grid-template-columns:1fr}.result-actions{grid-template-columns:1fr}.button-row{display:grid;grid-template-columns:1fr 1fr}.button-row button{width:100%}.compact-buttons-row,.compact-buttons-row button{grid-template-columns:1fr}.orders-table th,.orders-table td,table th,table td{white-space:normal}.main-grid{gap:12px}}
@media (max-width:640px){.page{padding-top:10px}.card,.panel-card,.result-card{padding:14px;border-radius:16px}.button-row{grid-template-columns:1fr}.icon-actions{grid-auto-columns:32px}.icon-btn{width:32px;height:32px;min-height:32px}.orientation-actions{grid-template-columns:1fr}.bleed-inline{display:grid!important;grid-template-columns:1fr auto auto;gap:8px}.revenue-total{white-space:normal}.top-nav{grid-template-columns:1fr 1fr}.orders-table{min-width:760px}}

.combine-box{display:none!important}

/* v23 mobile table cards and extended printer model */
.inline-checks{display:flex;flex-wrap:wrap;gap:8px 12px;min-height:44px;align-items:center;border:1px solid #fdba74;border-radius:14px;padding:8px 10px;background:#fff}.inline-checks label{display:inline-flex;align-items:center;gap:6px;margin:0;min-height:0;font-size:13px;color:#7c2d12}.inline-checks input{width:16px;height:16px;min-height:16px;padding:0}.printer-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.printer-admin-grid .field.full{grid-column:1/-1}
@media (max-width: 760px){
  .table-wrap{overflow:visible!important}
  table.mobile-card-table{display:block;width:100%;border:0;background:transparent;min-width:0!important}
  table.mobile-card-table thead{display:none}
  table.mobile-card-table tbody{display:grid;grid-template-columns:1fr;gap:12px;width:100%}
  table.mobile-card-table tr{display:block;background:#fff;border:1px solid #fed7aa;border-radius:16px;padding:10px 12px;box-shadow:0 10px 28px rgba(124,45,18,.08);width:100%}
  table.mobile-card-table td{display:grid;grid-template-columns:minmax(115px,42%) minmax(0,1fr);gap:8px;border:0;border-bottom:1px dashed #fed7aa;padding:8px 0;white-space:normal!important;word-break:break-word;align-items:start;font-size:13px}
  table.mobile-card-table td:last-child{border-bottom:0}
  table.mobile-card-table td::before{content:attr(data-label);font-weight:900;color:#7c2d12;font-size:12px;line-height:1.25}
  table.mobile-card-table td:empty::after{content:'—';color:#6b7280}
  table.mobile-card-table .table-actions{justify-content:flex-start;flex-wrap:wrap}
  table.mobile-card-table .icon-actions{display:flex;gap:6px;flex-wrap:wrap}
  table.mobile-card-table .compact-select{max-width:100%;width:100%;grid-column:1/-1;margin-bottom:6px}
  .orders-table{min-width:0!important}
  .global-nav-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.global-nav-inner .nav-menu-item,.global-nav-inner button{width:100%}.nav-dropdown{position:static;width:100%;box-shadow:none;margin-top:4px}
  .printer-admin-grid{grid-template-columns:1fr}.inline-checks{align-items:flex-start}.result-price{white-space:normal!important}
}


/* V23.2 fixes: classic wide menu, clean action grid, no icon overlap */
.global-nav-inner{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(6,minmax(150px,1fr));
  gap:8px;
  padding:8px 12px;
  align-items:stretch;
}
.global-nav-inner .nav-menu-item,
.global-nav-inner > button{
  width:100%;
}
.global-nav-inner .nav-main,
.global-nav-inner .nav-logout,
.global-nav-inner .tab-btn{
  width:100%;
  min-height:44px;
  border-radius:12px;
}
.nav-dropdown{
  min-width:220px;
}
#adminTopNavBtn::after,
#adminTabBtn::after{
  content:'';
}
.order-action-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  align-items:start;
  justify-items:start;
  min-width:174px;
}
.action-cluster{
  display:grid;
  grid-template-columns:repeat(4,34px);
  gap:6px;
  align-items:center;
}
.action-cluster .compact-select{
  grid-column:1 / -1;
  width:174px;
  max-width:174px;
  min-width:174px;
  order:2;
}
.action-cluster .icon-btn{
  order:1;
}
.icon-actions,
.table-actions.compact-actions.icon-actions{
  display:grid;
  grid-template-columns:repeat(4,34px);
  gap:6px;
  align-items:center;
  justify-content:start;
}
.icon-btn{
  position:relative;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  max-width:34px!important;
  padding:0!important;
  line-height:1!important;
  overflow:hidden;
}
.icon-btn input[type="file"]{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.payment-method-select.compact-select{
  margin-top:2px;
}
.orders-table td:last-child,
.manager-orders-table td:last-child{
  min-width:190px;
}
.table-wrap{
  overflow-x:auto;
}
@media(max-width:760px){
  .global-nav-inner{
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:8px;
  }
  .orders-table td:last-child,
  .manager-orders-table td:last-child{
    min-width:0;
  }
  .order-action-grid{
    min-width:0;
  }
  .action-cluster{
    grid-template-columns:repeat(4,34px);
  }
  .action-cluster .compact-select{
    width:100%;
    max-width:none;
    min-width:0;
  }
}

/* v23.3 personal layout and audit filters */
.layout-control-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:12px 14px;border:1px solid rgba(251,146,60,.28);border-radius:18px;background:rgba(255,255,255,.86);box-shadow:0 10px 28px rgba(124,45,18,.08)}
.layout-control-bar button{min-height:38px;padding:8px 12px;border-radius:12px;font-size:13px}.layout-help{color:var(--muted);font-size:12px;line-height:1.35}.layout-drag-handle{display:none;position:absolute;right:12px;top:12px;z-index:3;width:34px;height:34px;min-height:34px;padding:0;border-radius:10px;background:#fff;border:1px solid #fdba74;color:#7c2d12;box-shadow:0 6px 18px rgba(124,45,18,.12);cursor:grab}.layout-zone>.card,.layout-zone>.result-card{position:relative;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, opacity .18s ease}.layout-edit-mode .layout-drag-handle{display:inline-flex}.layout-edit-mode .layout-zone{min-height:90px;border:1px dashed #fdba74;border-radius:18px;padding:6px;background:rgba(255,247,237,.34)}.layout-edit-mode .layout-zone>.card,.layout-edit-mode .layout-zone>.result-card{cursor:grab}.layout-edit-mode .layout-zone>.card:hover,.layout-edit-mode .layout-zone>.result-card:hover{transform:translateY(-2px);border-color:var(--orange);box-shadow:0 18px 38px rgba(124,45,18,.16)}.layout-edit-mode .is-dragging{opacity:.58;transform:scale(.99)}
.audit-filter-grid input[list]::-webkit-calendar-picker-indicator{opacity:.9;cursor:pointer}.audit-filter-grid input,.audit-filter-grid select{min-height:44px}.audit-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-hidden{display:none!important}
@media(max-width:980px){.audit-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-control-bar{align-items:stretch}.layout-control-bar button{flex:1 1 180px}.layout-help{flex-basis:100%}}
@media(max-width:640px){.audit-filter-grid{grid-template-columns:1fr}.layout-control-bar{position:sticky;top:58px;z-index:110}.layout-control-bar button{width:100%}.layout-help{display:none}.layout-edit-mode .layout-zone{padding:4px}}

/* v23.4 fixes: restore calculation pages, compact action grid, stock actions */
#calcPanel .main-grid,
#bindingPanel .main-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 380px!important;
  gap:20px!important;
  align-items:start!important;
}
#calcPanel .right-stack,
#bindingPanel .right-stack{
  position:sticky!important;
  top:76px!important;
}
#calcPanel .left-stack,
#bindingPanel .left-stack,
#calcPanel .right-stack,
#bindingPanel .right-stack{
  display:grid!important;
  gap:18px!important;
}
#calcPanel .card,
#bindingPanel .card,
#calcPanel .result-card,
#bindingPanel .result-card{
  border-radius:22px!important;
  padding:22px!important;
}
#calcPanel .result-actions,
#bindingPanel .result-actions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.order-action-grid{
  min-width:138px!important;
  width:138px!important;
  display:grid!important;
  gap:5px!important;
  align-items:start!important;
}
.action-cluster,
.icon-actions,
.table-actions.compact-actions.icon-actions{
  display:grid!important;
  grid-template-columns:repeat(4,28px)!important;
  gap:5px!important;
  align-items:center!important;
  justify-content:start!important;
}
.icon-btn{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  max-width:28px!important;
  border-radius:8px!important;
  font-size:13px!important;
  padding:0!important;
}
.icon-btn .icon-glyph{
  font-size:13px!important;
  line-height:1!important;
}
.payment-method-select.compact-select,
.action-cluster .compact-select{
  width:138px!important;
  max-width:138px!important;
  min-width:138px!important;
  min-height:31px!important;
  height:31px!important;
  padding:4px 8px!important;
  border-radius:9px!important;
  font-size:12px!important;
  margin:0!important;
}
.orders-table td:last-child,
.manager-orders-table td:last-child{
  min-width:150px!important;
}
.stock-name-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.stock-table td:last-child{
  min-width:80px!important;
}
.stock-table .icon-actions{
  grid-template-columns:repeat(2,28px)!important;
}
@media(max-width:1050px){
  #calcPanel .main-grid,
  #bindingPanel .main-grid{grid-template-columns:1fr!important;}
  #calcPanel .right-stack,
  #bindingPanel .right-stack{position:static!important;}
}
@media(max-width:760px){
  .order-action-grid{width:100%!important;min-width:0!important;}
  .action-cluster,.icon-actions,.table-actions.compact-actions.icon-actions{grid-template-columns:repeat(4,28px)!important;}
  .payment-method-select.compact-select,.action-cluster .compact-select{width:100%!important;max-width:none!important;min-width:0!important;}
  #calcPanel .card,#bindingPanel .card,#calcPanel .result-card,#bindingPanel .result-card{padding:16px!important;border-radius:18px!important;}
}


/* v24 UI refinements */
.layout-control-bar{display:none!important}
.layout-zone>.card,.layout-zone>.result-card{position:relative;transition:transform .25s ease, box-shadow .25s ease, opacity .25s ease, border-color .25s ease}
.layout-drag-handle{display:inline-flex!important;align-items:center;justify-content:center;position:absolute;top:10px;right:10px;z-index:5;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border-radius:10px;border:1px solid #fdba74;background:#fff;color:#7c2d12;box-shadow:0 8px 18px rgba(124,45,18,.12);cursor:grab;font-size:0}
.layout-drag-handle::before{content:"⠿";font-size:16px;line-height:1;color:#9a3412;letter-spacing:1px}
.layout-zone>.card.drag-ready,.layout-zone>.result-card.drag-ready{box-shadow:0 16px 32px rgba(37,99,235,.14);transform:translateY(-2px)}
.layout-zone>.card.is-dragging,.layout-zone>.result-card.is-dragging{opacity:.72;transform:scale(.985)}
.inline-design-control{display:grid;grid-template-columns:minmax(210px,320px) minmax(220px,1fr);gap:12px;align-items:end}
.design-fee-inline{display:grid;gap:6px}
.single-service-check{display:flex;align-items:flex-end}
.service-check-left{justify-content:flex-start;width:100%}
#bindDesignFee:disabled,#designFee:disabled,#printerCustomWidth:disabled,#printerCustomHeight:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}
.animated-reveal-hint{transition:opacity .3s ease, transform .3s ease}
.animated-reveal-hint.attention{opacity:1;transform:translateY(-2px)}
.action-cluster,.table-actions.compact-actions.icon-actions{display:grid;grid-template-columns:repeat(auto-fit,34px);gap:6px;align-items:center}
.icon-btn,.layout-upload-btn.icon-btn,.upload-inline.icon-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;border-radius:10px!important}
.orders-table th,.orders-table td{vertical-align:middle}
.order-action-grid{display:grid;grid-template-columns:1fr;gap:8px;align-items:start}
.payment-method-select.compact-select{width:100%;max-width:100%}
.inline-custom-size-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.preview-thumb{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid #fed7aa;cursor:pointer;box-shadow:0 6px 18px rgba(124,45,18,.12)}
.fullscreen-preview-overlay{position:fixed;inset:0;background:rgba(15,23,42,.86);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}
.fullscreen-preview-overlay img{max-width:min(94vw,1400px);max-height:92vh;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.35)}
#designerPanel .orders-table th:nth-child(7),#designerPanel .orders-table td:nth-child(7){min-width:320px}
@media(max-width:760px){.inline-design-control{grid-template-columns:1fr}.inline-custom-size-fields{grid-template-columns:1fr}.action-cluster,.table-actions.compact-actions.icon-actions{grid-template-columns:repeat(4,32px)}}

@keyframes cardFlash{0%{transform:translateY(0);box-shadow:0 0 0 rgba(59,130,246,0)}50%{transform:translateY(-4px);box-shadow:0 20px 45px rgba(59,130,246,.18)}100%{transform:translateY(0);box-shadow:0 0 0 rgba(59,130,246,0)}}
.attention-flash{animation:cardFlash .7s ease}
.layout-item-inline{display:inline-flex;align-items:center;gap:10px;margin:6px 8px 6px 0;}


/* v25 UI workflow refinements */
.design-inline-row{display:grid!important;grid-template-columns:auto minmax(180px,260px) auto;align-items:center;column-gap:12px;row-gap:8px}
.design-check-line{justify-self:start;font-size:17px;font-weight:900;color:#7c2d12}
.compact-fee-inline{display:flex;align-items:center;gap:8px;max-width:280px}
.compact-fee-inline input{min-height:54px;font-size:18px;font-weight:700}
.currency-suffix{font-size:22px;font-weight:900;color:#9a3412;line-height:1}
.inline-design-control #promoStatus{grid-column:1/-1;margin-top:0}
.flow-card-hidden{display:none!important}
.flow-card-enter{display:block!important;animation:flowCardIn .32s ease both}
.flow-card-exit{animation:flowCardOut .28s ease both}
@keyframes flowCardIn{0%{opacity:0;transform:translateY(18px) scale(.98)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes flowCardOut{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-14px) scale(.98)}}
#multiOrderCard,#customerOrderCard,#multiOrderList{height:auto!important;overflow:visible!important;align-self:start}
#multiOrderList .multi-order-lines{display:grid;grid-template-columns:1fr;gap:14px}
#multiOrderCard .combined-item{height:auto}
.customer-checkout-actions{margin-top:14px}
.table-actions.compact-actions.icon-actions,.icon-actions{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:2mm!important}
.icon-btn,.layout-upload-btn.icon-btn,.upload-inline.icon-btn{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;border-radius:11px!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}
.manager-orders-table tr.urgent-deadline-row{background:#fff1f2!important}
.manager-orders-table tr.urgent-deadline-row td{background:transparent!important}
.status-badge.urgent_1d{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}
/* V103: просроченные заказы — ярко-красная строка для моментальной видимости */
.manager-orders-table tr.overdue-row{background:#fee2e2!important}
.manager-orders-table tr.overdue-row td{background:transparent!important;font-weight:600}
.status-badge.overdue{background:#dc2626;color:#fff;border:1px solid #991b1b;font-weight:700}
/* V105: новые заказы — мягкая жёлтая подсветка чтобы менеджер заметил свежие */
.manager-orders-table tr.new-order-row{background:#fefce8!important}
.manager-orders-table tr.new-order-row td{background:transparent!important}
/* V105: строка «Использовать поля под обрезку» — чекбокс + ввод значения + единица в одной линии,
   паттерн как у визиток (.bleed-inline), но в более компактном виде для талонов. */
.bleed-row{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #fdba74;border-radius:14px;padding:10px 12px;background:#fff}
.bleed-row .bleed-toggle{flex:1 1 auto;margin:0;min-height:0}
.bleed-row input[type=number]{min-height:38px;text-align:center;font-weight:900;border:1px solid #fdba74;border-radius:10px;padding:6px 8px}
.bleed-row .bleed-unit{font-weight:900;color:#7c2d12}
.muted.small{font-size:12px;color:var(--muted);font-weight:400}
/* V103: модалка выбора позиции при загрузке макета дизайнером */
.v103-pick-modal{position:fixed;inset:0;background:rgba(15,23,42,.65);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}
.v103-pick-card{width:min(560px,96vw);max-height:88vh;overflow:auto;background:#fff;border:1px solid #fed7aa;border-radius:18px;box-shadow:0 24px 80px rgba(15,23,42,.3);padding:22px}
.v103-pick-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.v103-pick-header h3{margin:0 0 6px;font-size:18px;color:#7c2d12}
.v103-pick-file{margin:0;font-size:13px;color:#475569;word-break:break-all}
.v103-pick-close{background:transparent;border:none;font-size:20px;cursor:pointer;color:#64748b;padding:0 6px}
.v103-pick-close:hover{color:#dc2626}
.v103-pick-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:10px 12px;border-radius:8px;margin-bottom:14px;font-size:13px;line-height:1.4}
.v103-pick-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.v103-pick-item{background:#fff;border:2px solid #fed7aa;border-radius:12px;padding:12px 14px;cursor:pointer;text-align:left;transition:all .15s}
.v103-pick-item:hover{background:#fff7ed;border-color:#fb923c;transform:translateX(2px)}
.v103-pick-item-no{font-weight:700;color:#7c2d12;font-size:14px;margin-bottom:4px}
.v103-pick-item-info{font-size:13px;color:#475569}
.v103-pick-footer{display:flex;justify-content:flex-end;gap:8px}
.v103-pick-cancel{background:#fff;border:1px solid #cbd5e1;color:#475569;border-radius:10px;padding:8px 18px;font-weight:600;cursor:pointer}
.v103-pick-cancel:hover{background:#f1f5f9}
.fullscreen-preview-overlay{flex-direction:column;gap:12px}
.fullscreen-preview-close{align-self:flex-end;background:#fff;border:1px solid #cbd5e1;color:#111827;border-radius:10px;padding:8px 12px;font-weight:800;cursor:pointer}
.designer-order-modal{position:fixed;inset:0;background:rgba(15,23,42,.72);z-index:1200;padding:20px;display:flex;align-items:center;justify-content:center}
.designer-order-modal-card{width:min(1100px,96vw);max-height:92vh;overflow:auto;background:#fff;border:1px solid #fed7aa;border-radius:24px;box-shadow:0 24px 80px rgba(15,23,42,.25);padding:22px}
.designer-order-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.designer-order-modal-close{border:1px solid #fdba74;background:#fff7ed;color:#7c2d12;border-radius:12px;min-width:42px;min-height:42px;font-size:20px;font-weight:900;cursor:pointer}
.designer-order-layout{display:grid;grid-template-columns:minmax(0,1.4fr) 260px;gap:18px;align-items:start}
.designer-order-preview-box{border:1px solid #fed7aa;border-radius:18px;padding:12px;background:#fffaf5;position:sticky;top:0}
.designer-order-preview-box .preview-thumb{width:100%;max-height:220px;object-fit:cover;border-radius:14px;cursor:pointer;display:block}
.designer-order-preview-box .preview-empty{min-height:140px;display:flex;align-items:center;justify-content:center;color:#6b7280;font-size:13px;text-align:center;border:1px dashed #fdba74;border-radius:14px;padding:12px}
.designer-order-list{display:grid;gap:12px}
.designer-order-list .detail-card{min-height:auto}
@media(max-width:760px){.design-inline-row{grid-template-columns:1fr}.compact-fee-inline{max-width:none}.designer-order-layout{grid-template-columns:1fr}.designer-order-preview-box{position:static}.table-actions.compact-actions.icon-actions,.icon-actions{gap:7px!important}}

/* v26 fixes */
.inline-category-add{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.audit-filter-grid select{width:100%}
.detail-card small{display:block;font-size:11px;color:#6b7280;margin-top:4px;line-height:1.25}

/* v27 stock and checkout fixes */
.compact-details summary{cursor:pointer;font-weight:800;color:#7c2d12;margin-bottom:8px}
.inline-category-add{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,.8fr) minmax(80px,.4fr) auto;gap:8px;align-items:end}
.material-size-field.is-hidden{display:none!important}
.paid-note{padding:10px 12px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:12px;color:#166534;font-weight:700}
@media(max-width:760px){.inline-category-add{grid-template-columns:1fr}.compact-details{grid-column:1/-1}}


/* v28 manager/customer/reports */
.report-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.report-tab{border:1px solid #fdba74;background:#fff7ed;color:#7c2d12;border-radius:12px;padding:10px 14px;font-weight:800}.report-tab.active{background:#f97316;color:#fff}.compact-input{max-width:120px;padding:8px 10px;border:1px solid #fdba74;border-radius:10px}.saved-flash{box-shadow:0 0 0 3px rgba(34,197,94,.25)}.manager-report-pane.is-hidden{display:none}.revenue-chart{width:100%;max-width:100%;background:#fff;border:1px solid #fed7aa;border-radius:16px;margin-top:14px;padding:8px}

/* v29 refinements */
.customer-markup-info{border:1px solid #fed7aa;background:#fff7ed;border-radius:14px;padding:10px 12px;color:#7c2d12;font-weight:800}
.fit-detail-text{display:block;line-height:1.18;word-break:normal;overflow-wrap:normal;hyphens:none;max-width:100%}
.fit-detail-text.fit-sm{font-size:0.92em}.fit-detail-text.fit-xs{font-size:0.82em}.fit-detail-text.fit-xxs{font-size:0.72em;line-height:1.12}
.manager-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px;margin-top:18px}
.dashboard-card{background:#fff;border:1px solid #fed7aa;border-radius:22px;box-shadow:0 12px 36px rgba(15,23,42,.08);padding:18px}
.dashboard-card h3{margin:0 0 12px;color:#0f172a;font-size:18px}
.chart-legend{display:grid;gap:6px;margin-top:10px;font-size:14px}.chart-legend div{display:flex;align-items:center;gap:8px}.chart-legend span{display:inline-block;width:14px;height:14px;border-radius:50%}
@media(max-width:900px){.manager-dashboard-grid{grid-template-columns:1fr}}

/* v30 customer search and compact details */
.checkout-customer-lookup-field{position:relative}
.customer-lookup-dropdown{display:none;position:absolute;z-index:900;left:0;right:0;top:calc(100% + 6px);max-height:300px;overflow:auto;background:#fff;border:1px solid #fdba74;border-radius:16px;box-shadow:0 18px 40px rgba(124,45,18,.16);padding:8px}
.customer-lookup-dropdown.open{display:grid;gap:6px}
.customer-lookup-option{min-height:54px;border:1px solid #fed7aa;background:#fffaf5;color:#7c2d12;border-radius:12px;text-align:left;padding:8px 12px;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;cursor:pointer}
.customer-lookup-option:hover{background:#ffedd5;border-color:#fb923c}
.customer-lookup-option b{font-size:14px;white-space:normal;overflow-wrap:normal;word-break:normal}
.customer-lookup-option span,.customer-lookup-option em{font-size:12px;color:#6b7280;font-style:normal;white-space:nowrap}
.customer-lookup-empty{padding:12px;color:#6b7280;font-size:13px}
.detail-card b,.fit-detail-text{word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important;white-space:normal!important}
.fit-detail-text.fit-sm{font-size:.86em}.fit-detail-text.fit-xs{font-size:.75em}.fit-detail-text.fit-xxs{font-size:.64em;line-height:1.08}
.detail-card{overflow:hidden}.detail-card small{word-break:normal!important;overflow-wrap:normal!important}


/* v31 fixes: customer lookup, details visibility, stock readonly */
.customer-lookup-dropdown{position:fixed!important;z-index:5000!important;max-height:360px!important;overflow:auto!important;box-shadow:0 22px 55px rgba(15,23,42,.22)!important;}
.customer-lookup-option{min-height:58px!important;padding:10px 14px!important;grid-template-columns:minmax(0,1fr) auto auto!important;}
.customer-lookup-option:focus{outline:3px solid rgba(37,99,235,.25);background:#ffedd5;border-color:#fb923c;}
.detail-card{overflow:visible!important;height:auto!important;min-height:92px!important;}
.detail-card b,.fit-detail-text{overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;white-space:normal!important;}
.fit-detail-text.fit-sm{font-size:.82em!important;line-height:1.16!important;}
.fit-detail-text.fit-xs{font-size:.70em!important;line-height:1.12!important;}
.fit-detail-text.fit-xxs{font-size:.58em!important;line-height:1.08!important;}
#stockList .icon-actions{display:none!important;}

/* V32 stabilization: fixed price boxes, customer lookup, detail text */
.result-total-card,.result-card{min-width:0;overflow:hidden;}
.result-price,#finalTotal,.autosize-price{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:clip;line-height:.96;}
.detail-card{min-width:0;overflow:visible!important;height:auto!important;}
.detail-card b,.fit-detail-text{display:block;max-width:100%;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;hyphens:auto;}
.fit-detail-text.fit-sm{font-size:15px!important}.fit-detail-text.fit-xs{font-size:13px!important}.fit-detail-text.fit-xxs{font-size:11px!important;line-height:1.18!important}
.customer-lookup-dropdown{position:fixed!important;z-index:99999!important;pointer-events:auto!important;max-height:360px!important;overflow:auto!important;background:#fff!important;}
.customer-lookup-option{cursor:pointer!important;user-select:none!important;}
select{background-position:right 14px center;padding-right:42px!important;}


/* V33 focused fixes */
#adminPanel .card{overflow:visible!important;}
#adminPaperMarkupDropdown{z-index:120000!important;max-height:360px!important;}
.paper-search-wrap{overflow:visible!important;}
.customer-markup-info{font-size:18px;font-weight:900;color:#7c2d12;}
.customer-lookup-option em{font-weight:900;color:#7c2d12!important;}
#adminPanel .main-grid > .left-stack > .card.admin-auto-collapsed > :not(.card-title),
#adminPanel .main-grid > .right-stack > .card.admin-auto-collapsed > :not(.card-title){display:none!important;}
#adminPanel .card-title[role=button]{cursor:pointer;user-select:none;}
#adminPanel .card-title .admin-card-collapse-label{margin-left:auto;font-size:12px;font-style:normal;color:#7c2d12;font-weight:900;}
#adminPanel .card-title:hover .admin-card-collapse-label{text-decoration:underline;}
.customer-lookup-dropdown{z-index:120000!important;}


/* V34 targeted stability fixes */
#detailList.detail-cards{align-items:stretch;grid-auto-rows:minmax(118px,auto);} 
#detailList .detail-card{min-height:118px!important;display:flex!important;flex-direction:column;justify-content:space-between;overflow:hidden!important;}
#detailList .detail-card b.fit-detail-text{font-size:15px;line-height:1.15;overflow:hidden;}
#detailList .detail-card b.fit-detail-text.fit-sm{font-size:13px!important;line-height:1.12!important;}
#detailList .detail-card b.fit-detail-text.fit-xs{font-size:11px!important;line-height:1.10!important;}
#detailList .detail-card b.fit-detail-text.fit-xxs{font-size:10px!important;line-height:1.05!important;}
.fullscreen-preview-overlay.fullscreen-preview-top{z-index:2147483000!important;background:rgba(15,23,42,.92)!important;}
.fullscreen-preview-overlay.fullscreen-preview-top img{position:relative;z-index:2147483001!important;max-width:94vw!important;max-height:88vh!important;object-fit:contain!important;}
.fullscreen-preview-overlay.fullscreen-preview-top .fullscreen-preview-close{position:fixed;right:24px;top:24px;z-index:2147483002!important;}
body.preview-open{overflow:hidden;}
#adminPanel{overflow-x:hidden!important;}
#adminPanel .main-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;max-width:1320px!important;width:100%!important;margin:0 auto!important;gap:16px!important;}
#adminPanel .left-stack,#adminPanel .right-stack,#adminPanel .card,#adminPanel .collapse-body{min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important;}
#adminPanel .card{overflow:hidden!important;}
#adminPanel .card:not(.admin-auto-collapsed){overflow:visible!important;}
#adminPanel .card.admin-auto-collapsed > :not(.card-title){display:none!important;}
#adminPanel .card-title{display:flex!important;align-items:center!important;gap:10px!important;min-width:0!important;}
#adminPanel .card-title .admin-card-collapse-label{margin-left:auto!important;white-space:nowrap!important;}
#adminPanel .grid,#adminPanel .grid2,#adminPanel .admin-user-tools,#adminPanel .promo-grid,#adminPanel .audit-filter-grid,#adminPanel .printer-admin-grid,#adminPanel .revenue-filter-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;gap:12px!important;min-width:0!important;max-width:100%!important;}
#adminPanel .field.full,#adminPanel .grid .field.full,#adminPanel .grid2 .field.full{grid-column:1/-1!important;}
#adminPanel input,#adminPanel select,#adminPanel button{max-width:100%!important;box-sizing:border-box!important;}
#adminPanel .table-wrap{max-width:100%!important;overflow-x:auto!important;overflow-y:visible!important;}
#adminPanel table{width:max-content;min-width:100%;max-width:none;}
#adminPaperMarkupDropdown{position:absolute!important;z-index:2147482500!important;left:0!important;right:0!important;top:calc(100% + 6px)!important;max-height:360px!important;overflow:auto!important;background:#fff!important;}
#adminPanel .paper-search-wrap{position:relative!important;overflow:visible!important;}
@media(max-width:760px){#adminPanel .grid,#adminPanel .grid2,#adminPanel .admin-user-tools,#adminPanel .promo-grid,#adminPanel .audit-filter-grid,#adminPanel .printer-admin-grid,#adminPanel .revenue-filter-grid{grid-template-columns:1fr!important;}#detailList.detail-cards{grid-auto-rows:auto;}#detailList .detail-card{min-height:112px!important;}}


/* v35: admin dropdown and admin reports placement */
#adminPanel,
#adminPanel .main-grid,
#adminPanel .left-stack,
#adminPanel .right-stack,
#adminPanel .card,
#adminPanel .collapse-body,
#adminPanel .grid,
#adminPanel .grid2 {
  overflow: visible !important;
}
#adminPanel .card {
  position: relative !important;
  z-index: 1;
}
#adminPanel .card.dropdown-card-active {
  z-index: 2147482000 !important;
}
#adminPanel .paper-search-wrap.dropdown-active {
  position: relative !important;
  z-index: 2147482500 !important;
}
#adminPaperMarkupDropdown.open {
  display: grid !important;
  position: absolute !important;
  z-index: 2147483000 !important;
  left: 0 !important;
  right: auto !important;
  top: calc(100% + 6px) !important;
  min-width: min(520px, calc(100vw - 40px)) !important;
  width: max-content !important;
  max-width: calc(100vw - 40px) !important;
  max-height: 360px !important;
  overflow: auto !important;
  background: #fff !important;
  box-shadow: 0 24px 70px rgba(15,23,42,.22) !important;
}
#adminPanel .admin-reports-card {
  overflow: hidden !important;
}
#adminPanel .admin-reports-card .table-wrap,
#adminPanel .admin-reports-card .dashboard-card {
  max-width: 100% !important;
  overflow: auto !important;
}
#adminPanel .admin-reports-card canvas {
  width: 100% !important;
  max-width: 100% !important;
}


/* V36 expanded calculators */
.v36-hidden-orders-panel{display:none!important}
.v36-customer-dropdown{position:fixed!important;z-index:999999!important;max-height:320px;overflow:auto;background:#fff;border:1px solid #fdba74;border-radius:14px;box-shadow:0 18px 50px rgba(15,23,42,.22)}
.v36-product-grid .detail-card{min-height:116px;overflow:hidden}.v36-product-grid .detail-card b{overflow-wrap:normal;word-break:normal;hyphens:none}.wide-rows{display:grid;gap:10px;margin-top:14px}.wide-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}.wide-row input{width:100%}.v36-panel-actions{margin-top:14px}.paper-dropdown,.customer-lookup-dropdown{z-index:999999!important}.nav-menu-item[data-menu-key="orders"],.tab-btn[data-tab="orders"]{display:none!important}@media(max-width:760px){.wide-row{grid-template-columns:1fr}.v36-product-grid{grid-template-columns:1fr!important}}

/* V37: unify Flyers / Eurobooklets / Wide-format calculators with Books and Business Cards visual structure */
.v37-calc-page{
  align-items:start;
}
.v37-calc-page .left-stack,
.v37-calc-page .right-stack{
  min-width:0;
}
.v37-calc-page .v37-step-card{
  overflow:visible;
}
.v37-calc-page .card-title{
  align-items:center;
}
.v37-calc-page .grid2.aligned-grid{
  align-items:end;
}
.v37-calc-page .result-total-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
}
.v37-calc-page .result-actions.v37-result-actions{
  margin-top:12px;
  grid-template-columns:1fr;
}
.v37-calc-page .result-actions.v37-result-actions button{
  min-height:58px;
}
.v37-calc-page .v36-customer-card{
  border-color:#fed7aa;
  background:linear-gradient(180deg,#fff,#fffaf5);
}
.v37-calc-page .v36-customer-card .customer-markup-info{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:8px 14px;
  border:1px solid #fdba74;
  border-radius:14px;
  color:#9a3412;
  font-weight:900;
  background:#fff7ed;
}
.v37-detail-cards:empty::before{
  content:'Расчет появится после нажатия кнопки «Рассчитать».';
  grid-column:1/-1;
  min-height:86px;
  border:1px dashed #fed7aa;
  border-radius:16px;
  padding:16px;
  color:#6b7280;
  background:#fffdfa;
  display:flex;
  align-items:center;
}
.v37-calc-page .v37-detail-cards .detail-card{
  min-height:104px!important;
}
.v37-wide-row-actions{
  margin-top:14px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.v37-wide-row-actions button{
  min-height:56px;
}
.v37-calc-page select,
.v37-calc-page input{
  width:100%;
}
.v37-calc-page .help{
  margin-top:7px;
}
@media(max-width:900px){
  .v37-calc-page{grid-template-columns:1fr!important;}
  .v37-calc-page .result-actions.v37-result-actions,
  .v37-wide-row-actions{grid-template-columns:1fr;}
}

/* V39: new calculators must visually match business cards/books layout */
.disabled-card{opacity:.58;cursor:not-allowed}
.v39-color-grid .radio-card input{pointer-events:none}
#flyersPanel .main-grid,
#eurobookletsPanel .main-grid,
#wideformatPanel .main-grid,
#documentsPanel .main-grid{align-items:start}
#flyersPanel .result-card,
#eurobookletsPanel .result-card,
#wideformatPanel .result-card,
#documentsPanel .result-card{min-height:300px}
#flyersPanel .detail-card,
#eurobookletsPanel .detail-card,
#wideformatPanel .detail-card,
#documentsPanel .detail-card{min-height:112px;overflow:hidden}
#flyersPanel .detail-card b,
#eurobookletsPanel .detail-card b,
#wideformatPanel .detail-card b,
#documentsPanel .detail-card b{overflow-wrap:normal;word-break:normal;hyphens:none}

/* V40: force new calculators to use the same visual structure as business cards */
.exact-calc-page{align-items:start;grid-template-columns:minmax(0,1fr) 360px!important;gap:24px!important}
.exact-calc-page .left-stack,.exact-calc-page .right-stack{min-width:0}
.exact-calc-page .card{overflow:visible}
.exact-calc-page .result-total-card{display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-height:330px}
.exact-calc-page .result-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.exact-calc-page .result-actions button{min-height:56px!important;border-radius:12px!important;font-weight:900!important}
.exact-calc-page .detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.exact-calc-page .detail-card{min-height:110px!important;overflow:hidden!important}
.exact-calc-page .detail-card b{overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important}
.exact-calc-page .option-grid.color-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.exact-calc-page .radio-card strong{font-size:22px!important;line-height:1.05!important}
.exact-calc-page .radio-card span{font-size:12px!important;line-height:1.25!important}
.exact-calc-page .disabled-card{opacity:.45;filter:grayscale(.2)}
.exact-calc-page .wide-row{grid-template-columns:1fr 1fr 1fr auto!important}
@media(max-width:1100px){.exact-calc-page{grid-template-columns:1fr!important}.exact-calc-page .option-grid.color-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.exact-calc-page .result-actions{grid-template-columns:1fr!important}}
@media(max-width:760px){.exact-calc-page .detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.exact-calc-page .wide-row{grid-template-columns:1fr!important}}


/* V41: hard clone visual shell of Business Cards calculator for every new calculator */
#flyersPanel .main-grid,
#eurobookletsPanel .main-grid,
#wideformatPanel .main-grid,
#documentsPanel .main-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 380px!important;
  gap:20px!important;
  align-items:start!important;
}
#flyersPanel .right-stack,
#eurobookletsPanel .right-stack,
#wideformatPanel .right-stack,
#documentsPanel .right-stack{
  position:sticky!important;
  top:76px!important;
}
#flyersPanel .left-stack,
#eurobookletsPanel .left-stack,
#wideformatPanel .left-stack,
#documentsPanel .left-stack,
#flyersPanel .right-stack,
#eurobookletsPanel .right-stack,
#wideformatPanel .right-stack,
#documentsPanel .right-stack{
  display:grid!important;
  gap:18px!important;
  min-width:0!important;
}
#flyersPanel .card,
#eurobookletsPanel .card,
#wideformatPanel .card,
#documentsPanel .card,
#flyersPanel .result-card,
#eurobookletsPanel .result-card,
#wideformatPanel .result-card,
#documentsPanel .result-card{
  border-radius:22px!important;
  padding:22px!important;
  overflow:visible!important;
}
#flyersPanel .result-total-card,
#eurobookletsPanel .result-total-card,
#wideformatPanel .result-total-card,
#documentsPanel .result-total-card{
  min-height:auto!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  gap:18px!important;
}
#flyersPanel .result-actions,
#eurobookletsPanel .result-actions,
#wideformatPanel .result-actions,
#documentsPanel .result-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:0!important;
}
#flyersPanel .result-actions button,
#eurobookletsPanel .result-actions button,
#wideformatPanel .result-actions button,
#documentsPanel .result-actions button{
  width:100%!important;
  min-height:58px!important;
  border-radius:12px!important;
  font-weight:900!important;
}
#flyersPanel .option-grid.color-grid,
#eurobookletsPanel .option-grid.color-grid,
#wideformatPanel .option-grid.color-grid,
#documentsPanel .option-grid.color-grid{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:12px!important;
}
#flyersPanel .option-grid.three,
#eurobookletsPanel .option-grid.three,
#wideformatPanel .option-grid.three,
#documentsPanel .option-grid.three{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
}
#flyersPanel .detail-cards,
#eurobookletsPanel .detail-cards,
#wideformatPanel .detail-cards,
#documentsPanel .detail-cards{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
#flyersPanel .detail-card,
#eurobookletsPanel .detail-card,
#wideformatPanel .detail-card,
#documentsPanel .detail-card{
  min-height:112px!important;
  overflow:hidden!important;
}
#flyersPanel .detail-card b,
#eurobookletsPanel .detail-card b,
#wideformatPanel .detail-card b,
#documentsPanel .detail-card b{
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}
#flyersPanel .grid2.aligned-grid,
#eurobookletsPanel .grid2.aligned-grid,
#wideformatPanel .grid2.aligned-grid,
#documentsPanel .grid2.aligned-grid{
  align-items:end!important;
}
#flyersPanel .wide-row,
#eurobookletsPanel .wide-row,
#wideformatPanel .wide-row,
#documentsPanel .wide-row{
  grid-template-columns:1fr 1fr 1fr auto!important;
  gap:10px!important;
}
@media(max-width:1050px){
  #flyersPanel .main-grid,
  #eurobookletsPanel .main-grid,
  #wideformatPanel .main-grid,
  #documentsPanel .main-grid{grid-template-columns:1fr!important;}
  #flyersPanel .right-stack,
  #eurobookletsPanel .right-stack,
  #wideformatPanel .right-stack,
  #documentsPanel .right-stack{position:static!important;}
}
@media(max-width:760px){
  #flyersPanel .card,#eurobookletsPanel .card,#wideformatPanel .card,#documentsPanel .card,
  #flyersPanel .result-card,#eurobookletsPanel .result-card,#wideformatPanel .result-card,#documentsPanel .result-card{padding:16px!important;border-radius:18px!important;}
  #flyersPanel .option-grid.color-grid,#eurobookletsPanel .option-grid.color-grid,#wideformatPanel .option-grid.color-grid,#documentsPanel .option-grid.color-grid,
  #flyersPanel .option-grid.three,#eurobookletsPanel .option-grid.three,#wideformatPanel .option-grid.three,#documentsPanel .option-grid.three{grid-template-columns:1fr!important;}
  #flyersPanel .result-actions,#eurobookletsPanel .result-actions,#wideformatPanel .result-actions,#documentsPanel .result-actions{grid-template-columns:1fr!important;}
  #flyersPanel .wide-row,#eurobookletsPanel .wide-row,#wideformatPanel .wide-row,#documentsPanel .wide-row{grid-template-columns:1fr!important;}
}

/* V42: stable calculator dropdown, cloned paper search, eurobooklet options */
.nav-menu-item{position:relative;}
.nav-menu-item::after{content:"";position:absolute;left:0;right:0;top:100%;height:18px;}
.nav-menu-item .nav-dropdown{top:calc(100% + 10px)!important;transition:opacity .16s ease, transform .16s ease, visibility 0s linear .85s!important;}
.nav-menu-item:hover .nav-dropdown,.nav-menu-item:focus-within .nav-dropdown{transition-delay:0s!important;}
.paper-search-wrap{position:relative;width:100%;}
.paper-dropdown.open{display:grid!important;gap:6px;}
.paper-dropdown button{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;width:100%;min-height:42px;text-align:left;background:#fff;border:1px solid transparent;border-radius:10px;padding:8px 10px;color:#7c2d12;font-weight:800;}
.paper-dropdown button:hover{background:#ffedd5;border-color:#fb923c;}
.paper-dropdown button span{font-size:12px;color:#64748b;font-weight:600;}
.paper-empty{padding:10px;color:#6b7280;font-size:13px;}
.option-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));}
#eurobookletsPanel .right-stack .v36-customer-card{position:relative;z-index:1;}
#eurobookletsPanel .bleed-inline{grid-column:1 / -1;}
#calcMenuMainBtn{white-space:normal;line-height:1.15;}

/* V43: eurobooklet type preview and safer detail text */
.custom-booklet-fields.is-hidden{display:none!important;}
.booklet-preview-wrap{overflow:visible;}
.booklet-preview{position:relative;min-height:150px;border:1px solid #fed7aa;border-radius:18px;background:linear-gradient(135deg,#fff7ed,#ffffff);display:grid;grid-template-columns:210px 1fr;gap:18px;align-items:center;padding:18px;overflow:hidden;}
.booklet-preview .fold-sheet{position:absolute;width:76px;height:104px;background:linear-gradient(160deg,#f8fafc,#fff);border:1px solid #cbd5e1;box-shadow:0 10px 24px rgba(15,23,42,.12);}
.booklet-preview.booklet-single .p1{left:35px;top:24px;transform:rotate(-6deg);}
.booklet-preview.booklet-single .p2{left:86px;top:42px;transform:skewY(-12deg);background:linear-gradient(135deg,#e0f2fe,#d9f99d);clip-path:polygon(0 70%,100% 55%,100% 100%,0 100%);}
.booklet-preview.booklet-single .p3{display:none;}
.booklet-preview.booklet-leaflet .p1{left:42px;top:23px;transform:rotate(-7deg);}
.booklet-preview.booklet-leaflet .p2{left:93px;top:42px;transform:skewY(-17deg);background:linear-gradient(135deg,#e0f2fe,#d9f99d);clip-path:polygon(0 70%,100% 55%,100% 100%,0 100%);}
.booklet-preview.booklet-leaflet .p3{left:103px;top:18px;transform:rotate(8deg);}
.booklet-preview.booklet-zigzag .p1{left:31px;top:35px;}
.booklet-preview.booklet-zigzag .p2{left:83px;top:55px;background:linear-gradient(135deg,#e0f2fe,#d9f99d);clip-path:polygon(0 0,100% 35%,100% 100%,0 65%);}
.booklet-preview.booklet-zigzag .p3{left:121px;top:24px;}
.booklet-preview .fold-info{grid-column:2;position:relative;z-index:2;color:#7c2d12;display:grid;gap:6px;}
.booklet-preview .fold-info b{font-size:18px;font-weight:900;}
.booklet-preview .fold-info span{font-size:13px;color:#6b7280;line-height:1.35;}
.detail-card b.fit-detail-text{display:block;line-height:1.24;max-width:100%;overflow-wrap:normal;word-break:normal;hyphens:none;}
.detail-card b.fit-detail-text.fit-sm{font-size:16px!important;}
.detail-card b.fit-detail-text.fit-xs{font-size:13px!important;}
.detail-card b.fit-detail-text.fit-xxs{font-size:11px!important;}
#euroRollFinish:disabled{opacity:.45;background:#f3f4f6;color:#9ca3af;cursor:not-allowed;}
@media(max-width:760px){.booklet-preview{grid-template-columns:1fr;min-height:220px}.booklet-preview .fold-info{grid-column:1;align-self:end;margin-top:120px}}

/* V44 — booklet diagrams, exact cards and safer responsive text */
.booklet-preview{display:grid;grid-template-columns:minmax(260px,1fr) 1.2fr;gap:18px;align-items:center;min-height:132px;padding:18px;border:1px solid #fed7aa;border-radius:16px;background:#fffaf5;overflow:hidden}
.booklet-diagram{display:flex;align-items:stretch;justify-content:center;min-height:86px;perspective:600px;gap:0;max-width:100%;overflow:hidden}
.booklet-panel{width:74px;min-height:86px;border:1px solid #cbd5e1;background:linear-gradient(145deg,#fff,#eef2f7);display:flex;align-items:center;justify-content:center;color:#334155;font-weight:800;font-size:12px;box-shadow:0 10px 20px rgba(15,23,42,.08)}
.booklet-fold-line{width:18px;min-height:86px;border-left:2px dashed #fb923c;border-right:2px dashed #fb923c;background:linear-gradient(180deg,#ffedd5,#dcfce7);display:flex;align-items:center;justify-content:center;color:#9a3412;font-size:10px;font-weight:900;writing-mode:vertical-rl;text-orientation:mixed}
.booklet-diagram-single .booklet-panel{width:96px}.booklet-diagram-single .booklet-fold-line{width:26px}
.booklet-diagram-zigzag .panel-0{transform:skewY(-4deg)}.booklet-diagram-zigzag .panel-2{transform:skewY(4deg)}
.booklet-preview .fold-info b{display:block;font-size:20px;line-height:1.15;color:#7c2d12}.booklet-preview .fold-info span{display:block;margin-top:8px;color:#64748b;line-height:1.35}
@media(max-width:760px){.booklet-preview{grid-template-columns:1fr}.booklet-panel{width:64px}}

/* V47: menu must close after submenu click until pointer leaves main menu */
.nav-menu-item.nav-force-closed .nav-dropdown,
.nav-menu-item.nav-force-closed:hover .nav-dropdown,
.nav-menu-item.nav-force-closed:focus-within .nav-dropdown{
  opacity:0!important;
  visibility:hidden!important;
  transform:translateY(6px)!important;
  pointer-events:none!important;
  display:grid!important;
}

/* V48: опасные административные действия */
.admin-danger-card { border-color: rgba(220, 38, 38, .45); background: rgba(255, 247, 237, .95); }
.admin-danger-card .danger-text { color: #7f1d1d; font-weight: 700; }
.danger-admin-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.danger-admin-actions .danger { background: #fee2e2; border: 1px solid #ef4444; color: #991b1b; font-weight: 800; }
.danger-admin-actions .danger:hover { background: #fecaca; }
/* V50: PDF analysis indicator and generic service calculators */
.pdf-busy{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:#8a341f}
.pdf-spinner{width:16px;height:16px;border:3px solid rgba(255,105,24,.25);border-top-color:#ff6918;border-radius:50%;display:inline-block;animation:pdfSpin .8s linear infinite}
@keyframes pdfSpin{to{transform:rotate(360deg)}}
.generic-service-calc .card,.generic-service-calc .result-card{box-sizing:border-box}
.finance-chart-box{margin-top:12px;padding:14px;overflow:hidden}
.finance-tabs{margin-top:12px;margin-bottom:10px}

/* V51: unified calculator shell and stable top navigation */
.order-card-grid{align-items:start;grid-template-columns:minmax(0,1fr) 360px!important;gap:24px!important}
.order-card-grid .left-stack,.order-card-grid .right-stack{min-width:0}
.sticky-summary{position:sticky;top:86px;align-self:start}
.order-card-grid .card{overflow:visible}
.order-card-grid .result-total-card{display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-height:330px}
.order-card-grid .result-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.order-card-grid .result-actions button{min-height:56px!important;border-radius:12px!important;font-weight:900!important}
.order-card-grid .detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.order-card-grid .detail-card{min-height:110px!important;overflow:hidden!important}
.inline-admin-edit{display:grid;grid-template-columns:minmax(90px,1fr) 70px auto;gap:6px;align-items:center}
.daily-expense-row{border:1px solid var(--orange-border);border-radius:14px;padding:10px;margin-top:10px;background:#fffaf5}
.expense-lines{margin-top:12px}
@media(min-width:761px){.global-nav-inner{grid-template-columns:repeat(5,minmax(120px,1fr)) 120px!important}.global-nav-inner .nav-logout{grid-column:6!important}}
@media(max-width:1100px){.order-card-grid{grid-template-columns:1fr!important}.sticky-summary{position:static}.order-card-grid .result-actions{grid-template-columns:1fr!important}}
@media(max-width:760px){.order-card-grid .detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.inline-admin-edit{grid-template-columns:1fr}}


/* V52: stable logout and exact universal calculator shell */
.global-nav-bar{position:sticky;top:0;z-index:5000}
.global-nav-inner{display:flex!important;align-items:center!important;gap:10px!important;min-height:56px!important;flex-wrap:nowrap!important}
.global-nav-inner .nav-menu-item{flex:0 0 auto!important}
.global-nav-inner .nav-logout{margin-left:auto!important;flex:0 0 120px!important;position:relative!important;right:auto!important;top:auto!important;white-space:nowrap!important}
#genericServicePanel .main-grid{grid-template-columns:minmax(0,1fr) 390px!important;gap:24px!important;align-items:start!important}
#genericServicePanel .right-stack{position:sticky!important;top:86px!important;align-self:start!important}
#genericServicePanel .card,#genericServicePanel .result-card{border-radius:var(--radius)!important;box-shadow:var(--shadow)!important;overflow:visible!important}
#genericServicePanel .result-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
#genericServicePanel .detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
@media(max-width:1100px){#genericServicePanel .main-grid{grid-template-columns:1fr!important}#genericServicePanel .right-stack{position:static!important}.global-nav-inner{flex-wrap:wrap!important}.global-nav-inner .nav-logout{margin-left:0!important}}


/* V53: stable navigation width, no page overflow, V51 compatibility */
html, body { max-width: 100%; overflow-x: clip; }
.global-nav-bar{
  position:sticky!important;
  top:0!important;
  z-index:5000!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.global-nav-inner{
  width:calc(100% - 28px)!important;
  max-width:1220px!important;
  margin:0 auto!important;
  padding:6px 0!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:0!important;
  overflow:visible!important;
}
.global-nav-inner .nav-menu-item,
.global-nav-inner > button{
  flex:1 1 150px!important;
  min-width:0!important;
  max-width:220px!important;
  width:auto!important;
}
.global-nav-inner .nav-main,
.global-nav-inner .nav-logout,
.global-nav-inner .tab-btn{
  width:100%!important;
  min-width:0!important;
  min-height:38px!important;
  padding:8px 10px!important;
  font-size:13px!important;
  line-height:1.15!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.global-nav-inner .nav-logout{
  margin-left:0!important;
  flex:0 1 120px!important;
  max-width:140px!important;
  position:relative!important;
  right:auto!important;
  top:auto!important;
}
.nav-dropdown{
  max-width:min(320px,calc(100vw - 28px))!important;
  z-index:7000!important;
}
.nav-dropdown button{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-align:left!important;
  justify-content:flex-start!important;
}
@media (max-width:900px){
  .global-nav-inner{width:calc(100% - 16px)!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch!important;}
  .global-nav-inner .nav-menu-item,.global-nav-inner > button{max-width:none!important;width:100%!important;flex:auto!important;}
  .nav-menu-item .nav-dropdown{position:static!important;width:100%!important;max-width:none!important;margin-top:4px!important;}
}
@media (max-width:520px){
  .global-nav-inner{grid-template-columns:1fr!important;}
  .global-nav-inner .nav-main,.global-nav-inner .nav-logout,.global-nav-inner .tab-btn{min-height:40px!important;}
}


/* V56: phone layout optimization, compact navigation and touch-safe controls */
@media (max-width: 768px) {
  html, body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body {
    padding-bottom: 64px !important;
  }

  .global-nav-bar,
  header,
  .top-navbar {
    min-height: 50px !important;
    height: auto !important;
    padding: 0 8px !important;
    overflow: visible !important;
  }

  .global-nav-inner {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 6px 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }

  .global-nav-inner .nav-menu-item,
  .global-nav-inner > button {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    flex: none !important;
  }

  .global-nav-inner .nav-main,
  .global-nav-inner .nav-logout,
  .global-nav-inner .tab-btn {
    min-height: 42px !important;
    height: auto !important;
    padding: 8px 8px !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
    border-radius: 10px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .nav-menu-item .nav-dropdown,
  .dropdown-menu {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-top: 5px !important;
    padding: 5px 0 !important;
    font-size: 14px !important;
    box-shadow: none !important;
    border-radius: 10px !important;
    overflow: hidden !important;
  }

  .nav-dropdown button,
  .dropdown-item {
    min-height: 40px !important;
    padding: 8px 12px !important;
    border-bottom: 1px solid rgba(251, 146, 60, .20) !important;
    font-size: 14px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: left !important;
  }

  .page,
  main.page {
    width: 100% !important;
    max-width: 100% !important;
    padding: 10px !important;
    box-sizing: border-box !important;
  }

  .hero,
  .app-hero,
  .main-grid,
  .order-card-grid,
  #genericServicePanel .main-grid {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .left-stack,
  .right-stack,
  #genericServicePanel .right-stack,
  .sticky-summary {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    position: static !important;
  }

  .card,
  .result-card,
  .hero-card,
  .top-nav-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding: 12px !important;
    overflow-wrap: anywhere !important;
  }

  .grid2,
  .grid3,
  .grid4,
  .form-grid,
  .wide-row,
  .daily-expense-row,
  .expense-row,
  .result-actions,
  .order-card-grid .result-actions,
  #genericServicePanel .result-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
  }

  input,
  select,
  textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    font-size: 16px !important;
  }

  .btn-action,
  button,
  .icon-btn,
  .compact-btn {
    min-height: 44px !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
    touch-action: manipulation !important;
  }

  .detail-cards,
  .order-card-grid .detail-cards,
  #genericServicePanel .detail-cards {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .detail-card {
    min-height: 0 !important;
    padding: 10px !important;
  }

  .top-nav-card,
  .mobile-hide {
    display: none !important;
  }

  #logoutTopBtn,
  .global-nav-inner .nav-logout,
  .btn-logout,
  .sidebar-footer .btn-logout {
    position: fixed !important;
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    width: calc(100% - 16px) !important;
    max-width: none !important;
    min-height: 44px !important;
    margin: 0 !important;
    z-index: 9999 !important;
    background: #fee2e2 !important;
    border: 1px solid #ef4444 !important;
    color: #991b1b !important;
    box-shadow: 0 -2px 12px rgba(0,0,0,.12) !important;
  }

  .sidebar-footer {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    background: #fff !important;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.1) !important;
    padding: 5px !important;
    z-index: 9999 !important;
  }
}

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

  .global-nav-inner .nav-main,
  .global-nav-inner .tab-btn {
    min-height: 40px !important;
    font-size: 13px !important;
  }

  .card,
  .result-card,
  .hero-card {
    padding: 10px !important;
  }
}

/* V57: compact click-controlled calculations menu */
.compact-calc-menu {
  position: relative !important;
  overflow: visible !important;
}
#calcMenuMainBtn {
  position: relative !important;
  padding-right: 30px !important;
  cursor: pointer !important;
}
#calcMenuMainBtn::after {
  content: '▼';
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  line-height: 1;
  transition: transform .22s ease;
  opacity: .9;
}
.compact-calc-menu.is-open #calcMenuMainBtn::after,
#calcMenuMainBtn.menu-open::after {
  transform: translateY(-50%) rotate(180deg);
}
.compact-calc-menu > .nav-dropdown,
.compact-calc-menu:hover > .nav-dropdown,
.compact-calc-menu:focus-within > .nav-dropdown,
.compact-calc-menu.nav-force-closed > .nav-dropdown,
.compact-calc-menu.nav-force-closed:hover > .nav-dropdown,
.compact-calc-menu.nav-force-closed:focus-within > .nav-dropdown {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 5px !important;
  position: absolute !important;
  left: 0 !important;
  top: calc(100% + 6px) !important;
  width: min(340px, calc(100vw - 24px)) !important;
  min-width: 0 !important;
  max-width: min(340px, calc(100vw - 24px)) !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 8px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-4px) !important;
  transition: max-height .24s ease, padding .24s ease, opacity .18s ease, transform .18s ease, visibility 0s linear .24s !important;
  background: #fff7ed !important;
  border: 1px solid #fdba74 !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 36px rgba(124,45,18,.16) !important;
  z-index: 9000 !important;
}
.compact-calc-menu.is-open > .nav-dropdown,
.compact-calc-menu.is-open.nav-force-closed > .nav-dropdown {
  max-height: min(64vh, 560px) !important;
  padding: 8px !important;
  overflow-y: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
  transition: max-height .24s ease, padding .24s ease, opacity .18s ease, transform .18s ease, visibility 0s !important;
}
.compact-calc-menu > .nav-dropdown button {
  min-height: 34px !important;
  padding: 7px 10px !important;
  border-radius: 10px !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
  text-align: left !important;
  justify-content: flex-start !important;
  white-space: normal !important;
}
@media (max-width: 768px) {
  .global-nav-bar {
    padding: 0 6px !important;
  }
  .global-nav-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 5px !important;
    padding: 5px 0 !important;
  }
  .global-nav-inner .nav-main,
  .global-nav-inner .tab-btn {
    min-height: 34px !important;
    padding: 6px 8px !important;
    font-size: 12px !important;
    border-radius: 9px !important;
  }
  #calcMenuMainBtn {
    padding-right: 26px !important;
  }
  .compact-calc-menu > .nav-dropdown,
  .compact-calc-menu:hover > .nav-dropdown,
  .compact-calc-menu:focus-within > .nav-dropdown {
    position: absolute !important;
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    left: 0 !important;
    top: calc(100% + 5px) !important;
    border-radius: 12px !important;
  }
  .compact-calc-menu > .nav-dropdown button {
    min-height: 34px !important;
    padding: 7px 10px !important;
    font-size: 12px !important;
  }
}
@media (max-width: 480px) {
  .global-nav-inner {
    grid-template-columns: 1fr !important;
  }
  .compact-calc-menu > .nav-dropdown,
  .compact-calc-menu:hover > .nav-dropdown,
  .compact-calc-menu:focus-within > .nav-dropdown {
    width: calc(100vw - 20px) !important;
  }
}

/* V58: UI, PDF rows, daily expenses, icon actions */
.global-nav-inner{
  max-width:1220px !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(120px,1fr)) !important;
  gap:8px !important;
  align-items:start !important;
}
.global-nav-inner .nav-menu-item,
.global-nav-inner .nav-main,
.global-nav-inner .tab-btn,
.global-nav-inner .nav-logout{ min-width:0 !important; }
.nav-logout{
  position:sticky !important;
  bottom:0 !important;
  z-index:20 !important;
  margin-top:0 !important;
  background:#fff7f7 !important;
  border-color:#fca5a5 !important;
}
.wide-combined-card .wide-combined-grid,
.wide-combined-card .button-row,
.button-row,
.compact-buttons-row,
.result-actions,
.stock-button-row{ gap:8px !important; }
.wide-rows:empty,
.pdf-size-rows:empty{ display:none !important; }
.wide-row.pdf-size-row{
  display:grid !important;
  grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(130px,.8fr) auto !important;
  gap:8px !important;
  align-items:end !important;
  border:1px dashed #fed7aa !important;
  border-radius:14px !important;
  padding:10px !important;
  margin-top:8px !important;
  background:#fffaf5 !important;
}
.pdf-size-note{
  grid-column:1 / -1 !important;
  font-weight:800 !important;
  color:#7c2d12 !important;
  font-size:13px !important;
}
button,.btn-action,.compact-btn,.icon-btn{ touch-action:manipulation; }
.icon-actions,.table-actions.compact-actions{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(32px,36px)) !important;
  gap:4px !important;
  justify-content:start !important;
  align-items:center !important;
}
.icon-btn{
  min-width:34px !important;
  width:34px !important;
  height:34px !important;
  min-height:34px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:14px !important;
  line-height:1 !important;
  border-radius:9px !important;
}
.manager-filters,
.orders-filter-grid,
.admin-filter-grid,
.audit-filters,
.grid2.aligned-grid,
.stock-grid{ gap:8px !important; }
#managerOrdersList .table-actions,
#ordersList .table-actions,
#usersList .table-actions,
#materialStockList .table-actions{ gap:4px !important; }
.daily-expense-row{
  display:grid !important;
  grid-template-columns:minmax(220px,1.4fr) 90px 120px 120px minmax(180px,1fr) auto !important;
  gap:8px !important;
  align-items:end !important;
  border:1px solid #fed7aa !important;
  border-radius:12px !important;
  padding:10px !important;
  margin-bottom:8px !important;
  background:#fffaf5 !important;
}
.expense-title-wrap{
  position:relative !important;
  /* V77: контейнер должен жёстко иметь свою высоту независимо от списка */
  display:flex !important;
  flex-direction:column !important;
  gap:3px !important;
}
.expense-title-wrap input[data-expense-title]{ position:relative; z-index:1; }
.expense-autocomplete{
  display:none;
  position:absolute;
  left:0; right:0; top:calc(100% + 2px);
  /* V77: расширяем список так, чтобы он накладывался поверх соседних колонок */
  min-width:280px;
  max-height:240px;
  overflow-y:auto;
  background:#fff;
  border:1.5px solid #fdba74;
  border-radius:10px;
  box-shadow:0 12px 28px rgba(124,45,18,.18);
  z-index:10050;
  padding:4px;
}
.expense-autocomplete.open{ display:block; }
.expense-autocomplete button{
  width:100%; text-align:left; background:#fff; border:0; border-radius:8px; padding:7px 10px; min-height:32px;
  display:grid; gap:1px; cursor:pointer;
}
.expense-autocomplete button:hover{ background:#fff7ed; }
.expense-autocomplete button b{ font-size:13px; color:#7c2d12; line-height:1.2; }
.expense-autocomplete span{ color:#6b7280; font-size:11.5px; line-height:1.2; }
/* V77: фикс — родитель .daily-expense-row не должен резать выпадающий список */
.daily-expense-row{ overflow:visible !important; }
.tiny-btn{ min-height:28px !important; padding:4px 8px !important; font-size:12px !important; margin-top:4px !important; }
.daily-expense-saved table{ margin-top:8px; }
/* V134: все статусные сообщения красные. Раньше тут был зелёный #15803d,
   из-за чего «Failed to fetch» и подобные ошибки отображались зелёным. */
.status-msg{ margin-top:6px; min-height:18px; font-weight:700; color:#dc2626; }
#financeExpensesList table th,
#financeExpensesList table td{ white-space:normal !important; }
@media (max-width: 768px){
  .global-nav-inner{
    grid-template-columns:1fr !important;
    gap:6px !important;
    padding:6px !important;
  }
  .nav-logout{
    order:999 !important;
    width:100% !important;
    position:sticky !important;
    bottom:0 !important;
    box-shadow:0 -2px 10px rgba(0,0,0,.08) !important;
  }
  .wide-row.pdf-size-row,
  .daily-expense-row{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  .button-row,
  .compact-buttons-row,
  .result-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  .icon-actions,
  .table-actions.compact-actions{
    grid-template-columns:repeat(auto-fit,minmax(34px,38px)) !important;
    gap:4px !important;
  }
  .expense-autocomplete{ position:static !important; margin-top:4px; }
}

/* V58 override: logout must not cover menu */
#logoutTopBtn.global-nav-inner,
#logoutTopBtn{ position:sticky !important; left:auto !important; right:auto !important; top:auto !important; bottom:0 !important; width:auto !important; max-width:none !important; margin-top:0 !important; z-index:25 !important; }
@media (max-width:768px){
  #logoutTopBtn{ position:sticky !important; left:auto !important; right:auto !important; bottom:0 !important; width:100% !important; margin:0 !important; order:999 !important; box-shadow:0 -2px 10px rgba(0,0,0,.08) !important; }
  body{ padding-bottom:0 !important; }
}

/* V59: файловый анализ, архив вложений, стабильная мобильная сетка */
.nav-stack { display:flex; flex-direction:column; gap:8px; }
#logoutBtn { margin-top:8px; position:sticky; bottom:8px; align-self:stretch; z-index:5; }
.storage-info-box { border:1px solid var(--border); border-radius:12px; padding:10px 12px; margin:10px 0; background:#fff7ef; font-weight:700; color:#7a2c16; }
.attachment-item { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:4px 0; }
.file-thumb { display:inline-flex; width:34px; height:34px; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:10px; background:#fff7ef; }
.pdf-size-rows { display:grid; gap:8px; margin-top:10px; }
.pdf-size-row { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:8px; align-items:end; border:1px dashed var(--border); border-radius:12px; padding:10px; }
.pdf-size-note { grid-column:1/-1; font-weight:800; color:#8a3a15; }
.button-row, .compact-buttons-row, .result-actions, .table-actions, .audit-filter-grid, .manager-actions { gap:8px !important; }
.table-actions.icon-actions { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(34px,auto); justify-content:start; align-items:center; gap:6px !important; }
button, .icon-btn, .compact-btn { touch-action:manipulation; }
@media (max-width: 768px) {
  body { overflow-x:hidden; }
  .app-shell, .main-grid, .order-card-grid, .wide-combined-grid { width:100%; max-width:100%; }
  .pdf-size-row { grid-template-columns:1fr; }
  .button-row, .result-actions, .compact-buttons-row { display:grid !important; grid-template-columns:1fr; }
  .summary-card, .sticky-summary, .right-stack { position:static !important; width:100% !important; max-width:100% !important; }
  #logoutBtn { position:static !important; margin-top:8px !important; }
  .attachment-item { display:grid; grid-template-columns:auto 1fr auto; }
  .attachment-item .compact-btn { width:100%; overflow:hidden; text-overflow:ellipsis; }
}

/* V62: распечатка документов и общий заказ клиента */
.hidden-file-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.document-combined-card .wide-rows,
.document-combined-card .doc-fit-actions,
.document-combined-card .document-combined-grid {
  gap: 8px !important;
}
.doc-color-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(92px, 1fr)) !important;
  align-items: stretch !important;
  gap: 8px !important;
}
.doc-color-grid .doc-pdf-button {
  min-height: 74px;
  font-weight: 900;
  border-width: 2px;
}
.doc-fit-actions {
  margin-top: 12px;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px !important;
}
.doc-size-row {
  grid-template-columns: minmax(160px, 1fr) minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, 1fr) auto !important;
}
.compact-multi-card {
  margin: 0;
  box-shadow: none;
}
.compact-multi-wrap {
  /* V155: убран max-height — список растёт динамически вместе с позициями.
     Master: «Окно с заказами должно расти динамически вместе со списком,
     нельзя чтобы список выходил за пределы окна». Раньше max-height: 260px
     создавал внутренний scroll и при множестве позиций «Общая сумма к оплате»
     визуально накладывалась на нижние строки. */
  overflow: visible;
}
.compact-multi-total {
  /* V155: 4мм отступ между списком/итогом и кнопками («В расчёт» /
     «Очистить позиции»). Master: «сделай отступ между последним полем
     и кнопкой в 4мм». */
  margin-bottom: 4mm;
}
.compact-multi-lines {
  display: grid;
  gap: 4px;
}
/* V126: 6 колонок и для головки, и для строки данных — иначе в head все span'ы
   склеивались (grid не был задан), а в строке последний 6-й элемент попадал на новую
   визуальную линию (был задан grid только на 5 колонок). max-height убран — длинные
   суммы переносились внутри ячейки. */
.compact-multi-head,
.compact-multi-line {
  display: grid;
  grid-template-columns:
    minmax(150px, 1.7fr)   /* Позиция */
    minmax(96px, .8fr)     /* Цена/шт */
    minmax(56px, .45fr)    /* Тираж */
    minmax(76px, .55fr)    /* Копий (input) */
    minmax(110px, 1fr)     /* Сумма */
    34px;                  /* кнопка × */
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
}
.compact-multi-head {
  font-size: 11.5px;
  letter-spacing: .02em;
  text-transform: uppercase;
  font-weight: 800;
  color: #7c2d12;
  border-bottom: 1px solid rgba(244, 105, 18, .35);
  padding-bottom: 7px;
  margin-bottom: 2px;
  background: rgba(255, 247, 237, .6);
  border-top-left-radius: 9px;
  border-top-right-radius: 9px;
}
.compact-multi-head > span,
.compact-multi-head > b {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.compact-multi-line {
  min-height: 34px;
  border: 1px solid rgba(244, 105, 18, .24);
  border-radius: 9px;
  background: rgba(255,255,255,.86);
  font-size: 12.5px;
  line-height: 1.2;
}
.compact-multi-line > span,
.compact-multi-line > b {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.compact-multi-line > b {
  font-weight: 800;
  text-align: right;
}
.compact-multi-name {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 800;
}
.compact-multi-remove {
  min-height: 28px !important;
  width: 30px !important;
  padding: 0 !important;
  font-weight: 900;
}
.compact-multi-total {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(244, 105, 18, .35);
  font-weight: 900;
}
@media (max-width: 768px) {
  .doc-color-grid {
    grid-template-columns: repeat(3, minmax(88px, 1fr)) !important;
  }
  .doc-fit-actions {
    grid-template-columns: 1fr 1fr !important;
  }
  .doc-size-row,
  .compact-multi-head,
  .compact-multi-line {
    grid-template-columns: 1fr !important;
    max-height: none;
  }
  .compact-multi-head { display: none; } /* на мобилке заголовки не нужны — линии сами подписывают себя */
  .compact-multi-line {
    min-height: 30px;
  }
}


/* V63: единый блок заказчика только в менеджере и корректная форма рулонов */
#bindingPanel .v36-customer-card,
#flyerPanel .v36-customer-card,
#euroPanel .v36-customer-card,
#widePanel .v36-customer-card,
#documentPanel .v36-customer-card,
#genericPanel .v36-customer-card,
#saveOrderBtn,#bindSaveBtn,#flyerSaveBtn,#euroSaveBtn,#wideSaveBtn,#docSaveBtn,#genericSaveBtn{display:none!important;}
.wide-roll-receipt-fields{border:1px dashed #fdba74;border-radius:14px;padding:10px;background:#fff7ed;}
.wide-roll-receipt-fields .grid2{gap:8px;}
.detail-card b{word-break:normal;overflow-wrap:anywhere;}

/* V65: compact admin users, visible roll receipt and finance fixes */
.wide-roll-receipt-fields{display:block!important;}
.wide-roll-receipt-fields.is-hidden{display:none!important;}
.wide-roll-receipt-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px!important;align-items:start;}
.wide-roll-receipt-grid label{font-size:12px;font-weight:900;color:#7c2d12;margin-bottom:4px;}
.admin-users-compact{font-size:12px!important;border-collapse:collapse!important;}
.admin-users-compact th,.admin-users-compact td{padding:3px 6px!important;line-height:1.05!important;vertical-align:middle!important;max-height:37px!important;}
.admin-users-compact input{height:22px!important;min-height:22px!important;padding:2px 6px!important;font-size:12px!important;border-radius:7px!important;}
.admin-users-compact small{display:block;font-size:10px!important;line-height:1.05!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px;}
.compact-user-finance{display:grid!important;grid-template-columns:minmax(70px,1fr) 42px 20px 20px;gap:3px!important;align-items:center!important;}
.mini-icon-btn{width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;padding:0!important;border-radius:5px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;line-height:1!important;border-width:1px!important;}
#usersList .icon-actions{display:flex!important;gap:3px!important;align-items:center!important;flex-wrap:nowrap!important;}
#usersList .table-wrap,#usersList{overflow-x:auto;}
.finance-breakdown{display:block;font-size:11px;font-weight:700;color:#6b7280;margin-top:4px;line-height:1.2;}
@media(max-width:768px){.wide-roll-receipt-grid{grid-template-columns:1fr!important}.admin-users-compact th,.admin-users-compact td{padding:3px!important;font-size:11px!important}.compact-user-finance{grid-template-columns:70px 34px 20px 20px!important}}

/* V66: понятное сообщение при ошибке сохранения общего заказа */
.order-save-status{display:none;margin:10px 0 12px;padding:10px 12px;border-radius:10px;font-weight:700;line-height:1.35;white-space:pre-wrap;}
.order-save-status.error{display:block;border:1px solid #f2a3a3;background:#fff0f0;color:#8a1f16;}
.order-save-status.ok{display:block;border:1px solid #8fd19e;background:#eefaf1;color:#145a22;}
.order-save-status.info{display:block;border:1px solid #bdd7ff;background:#f3f8ff;color:#143d7a;}

/* V67: finance chart legend and employee search */
.chart-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:13px;color:#374151;align-items:center}
.chart-legend .legend-item{display:inline-flex;align-items:center;gap:5px;margin-right:10px;white-space:nowrap}
.chart-legend .legend-item i{display:inline-block;width:10px;height:10px;border-radius:50%}
.goal-user-dropdown{display:none;position:absolute;z-index:5000;background:#fff;border:1px solid var(--border,#f4b27b);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.12);max-height:220px;overflow:auto;min-width:320px;margin-top:4px;padding:4px}
.goal-user-dropdown.open{display:block}
.goal-user-dropdown button{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #f3e4d8;border-radius:6px;padding:7px 9px;min-height:30px;color:#421b11;font-size:13px}
.goal-user-dropdown button:hover{background:#fff3e8}


/* V68: исправление легенды графиков и сетки широкоформата */
.chart-legend{display:flex!important;flex-wrap:wrap!important;gap:8px 14px!important;align-items:center!important;margin-top:10px!important;min-height:18px!important;line-height:1.25!important;}
.chart-legend .legend-item{display:inline-flex!important;align-items:center!important;gap:6px!important;width:auto!important;height:auto!important;min-width:0!important;max-width:100%!important;white-space:nowrap!important;border-radius:0!important;}
.chart-legend .legend-item i{display:inline-block!important;width:10px!important;height:10px!important;min-width:10px!important;border-radius:50%!important;flex:0 0 10px!important;}
#wideformatPanel .wide-combined-card .field.full{min-width:0!important;overflow:visible!important;}
#wideformatPanel #widePdfFile,#wideformatPanel #wideMaterialId{display:block!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
#wideformatPanel .help{display:block!important;clear:both!important;margin-top:6px!important;line-height:1.35!important;}
#wideformatPanel .wide-row.pdf-size-row{position:relative!important;z-index:1!important;overflow:visible!important;}
#wideformatPanel .pdf-size-note{display:block!important;width:100%!important;height:auto!important;min-height:0!important;line-height:1.3!important;margin-bottom:2px!important;}

/* V72.1: Upload progress overlay
   Анимация привязана к фактическому прогрессу XHR upload events.
   При ошибке/отмене/завершении overlay удаляется JS-кодом. */
.upload-progress-overlay{position:fixed;inset:0;background:rgba(20,16,12,.45);z-index:9999;display:flex;align-items:center;justify-content:center;animation:up-fade .15s ease-out}
.upload-progress-card{background:#fff;border-radius:16px;padding:22px 24px;min-width:340px;max-width:90vw;box-shadow:0 24px 60px rgba(20,16,12,.25);border:1px solid #fed7aa}
.upload-progress-title{font-weight:900;color:#7c2d12;font-size:15px;margin-bottom:6px}
.upload-progress-filename{color:#6b7280;font-size:13px;margin-bottom:14px;word-break:break-all;line-height:1.35;max-width:420px}
.upload-progress-bar-wrap{height:10px;background:#fff7ed;border-radius:999px;overflow:hidden;border:1px solid #fed7aa;margin-bottom:10px}
.upload-progress-bar{height:100%;background:linear-gradient(90deg,var(--orange,#ea580c) 0%,#f97316 50%,var(--orange,#ea580c) 100%);background-size:200% 100%;animation:up-shimmer 1.2s linear infinite;border-radius:999px;transition:width .25s ease-out;width:0%}
.upload-progress-meta{display:flex;justify-content:space-between;font-size:12px;color:#7c2d12;font-weight:900;margin-bottom:14px}
.upload-progress-percent{color:#7c2d12}
.upload-progress-stage{color:#9a3412;font-weight:700}
.upload-progress-cancel{display:block;width:100%;padding:8px 14px;border:1px solid #fca5a5;background:#fff;color:#b91c1c;border-radius:10px;font-weight:900;cursor:pointer;font-size:13px}
.upload-progress-cancel:hover{background:#fef2f2}
@keyframes up-fade{from{opacity:0}to{opacity:1}}
@keyframes up-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* V72.1: Компактный склад
   Цель: уменьшить высоту полей, плотнее упаковать форму оприходования
   и блок материалов. Группировка по смысловой нагрузке через grid-templates.
   Применяется только внутри #stockPanel, не задевает другие разделы. */
#stockPanel .field{margin-bottom:0}
#stockPanel .field label{font-size:12px;font-weight:700;color:#7c2d12;margin-bottom:3px;display:block;line-height:1.2}
#stockPanel .field input,
#stockPanel .field select,
#stockPanel .field textarea{padding:7px 10px;min-height:34px;height:34px;font-size:13px;border-radius:9px;line-height:1.2}
#stockPanel .field textarea{height:auto;min-height:48px}
#stockPanel .card{padding:14px 16px}
#stockPanel .card .card-title{font-size:15px;margin-bottom:10px}
#stockPanel .card .card-title .num{width:22px;height:22px;font-size:12px}
/* Форма оприходования бумаги: 2 колонки, тесная сетка */
#stockPanel .stock-grid,
#stockPanel .grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;align-items:end}
/* Группировка полей материалов: ID/название слева, плотность/листы справа,
   цена/валюта в отдельной строке. На широких экранах — 4 колонки. */
@media (min-width:920px){
  #stockPanel .stock-grid.stock-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}
}
#stockPanel .button-row,
#stockPanel .stock-button-row{margin-top:12px}
#stockPanel .button-row button,
#stockPanel .stock-button-row button{min-height:34px;padding:7px 16px;font-size:13px}
/* Таблицы остатков более компактные */
#stockPanel table th,
#stockPanel table td{padding:6px 9px;font-size:12.5px;line-height:1.3}
#stockPanel table th{font-size:11.5px;letter-spacing:.02em;text-transform:uppercase;font-weight:900}
#stockPanel .stock-meta{min-height:34px;padding:6px 10px;font-size:12px}
/* Подсказки и муты */
#stockPanel .help,
#stockPanel .muted-small,
#stockPanel small{font-size:11.5px;line-height:1.35;color:#9a3412;margin-top:2px;display:block}
/* Чтобы поля шириной не «прыгали» при отсутствии лейбла */
#stockPanel .field.no-label{padding-top:0}

/* V74: Компактный склад — реально-направленные стили (привязка к stock-grid, paper-search-wrap, материалам) */
#stockPanel .stock-receipt-card{padding:14px 16px}
#stockPanel .card{padding:14px 16px}
#stockPanel .card-title{font-size:15px;margin-bottom:10px}
#stockPanel .card-title .num{width:22px;height:22px;font-size:12px;line-height:22px}
#stockPanel .grid.stock-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;align-items:end}
#stockPanel .grid.stock-grid>div{margin-bottom:0}
#stockPanel .grid.stock-grid label{font-size:12px;font-weight:700;color:#7c2d12;margin-bottom:3px;display:block;line-height:1.15}
#stockPanel .grid.stock-grid input,
#stockPanel .grid.stock-grid select{padding:6px 10px;min-height:32px;height:32px;font-size:13px;border-radius:9px;line-height:1.15}
#stockPanel .paper-search-wrap input{padding:6px 10px;min-height:32px;height:32px;font-size:13px}
#stockPanel .help{font-size:11.5px;line-height:1.3;color:#9a3412;margin-top:2px;margin-bottom:0}
#stockPanel .button-row.stock-button-row{margin-top:10px}
#stockPanel .button-row.stock-button-row button{min-height:32px;padding:6px 16px;font-size:13px}
#stockPanel .compact-details summary{font-size:13px;padding:4px 6px}
#stockPanel .compact-details .inline-category-add{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
#stockPanel .compact-details .inline-category-add input,
#stockPanel .compact-details .inline-category-add select,
#stockPanel .compact-details .inline-category-add button{min-height:30px;padding:5px 9px;font-size:12.5px}
#stockPanel #stockList table,
#stockPanel #materialStockList table,
#stockPanel #receiptsList table{font-size:12.5px}
#stockPanel table th,#stockPanel table td{padding:5px 8px;line-height:1.25}
#stockPanel table th{font-size:11px;letter-spacing:.02em;text-transform:uppercase;font-weight:900}
/* На широких экранах форма оприходования может быть в 3 колонки */
@media (min-width:1100px){
  #stockPanel .stock-receipt-card .grid.stock-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* V75: Компактнее панель документов */
#documentsPanel .card{padding:14px 16px}
#documentsPanel .card-title{font-size:15px;margin-bottom:10px}
#documentsPanel .grid2.document-combined-grid{gap:8px 14px;align-items:end}
#documentsPanel .grid2.document-combined-grid>div{margin-bottom:0}
#documentsPanel .grid2.document-combined-grid label{font-size:12px;font-weight:700;color:#7c2d12;margin-bottom:3px;line-height:1.15}
#documentsPanel .grid2.document-combined-grid input,
#documentsPanel .grid2.document-combined-grid select{padding:6px 10px;min-height:32px;height:32px;font-size:13px;border-radius:9px;line-height:1.15}
#documentsPanel .help{font-size:11.5px;line-height:1.3;color:#9a3412;margin-top:2px}
#documentsPanel .doc-fit-actions{margin-top:10px}
#documentsPanel .doc-fit-actions button{min-height:32px;padding:6px 14px;font-size:13px}
#documentsPanel .pdf-size-rows .pdf-size-row{padding:8px 10px;font-size:12.5px}
#documentsPanel .color-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
#documentsPanel .color-card{min-height:90px;padding:32px 8px 10px}
#documentsPanel .color-card strong{font-size:18px}
#documentsPanel .color-card span{font-size:11px;line-height:1.2}

/* V75: Доп. стили для прогресс-оверлея — мобильная адаптация */
@media (max-width: 640px){
  .upload-progress-card{min-width:280px;padding:16px 18px}
  .upload-progress-filename{font-size:12px}
}

/* V76: Кнопки действий в менеджере — выровнены по сетке, зазор 1мм. */
/* V76/V80: Кнопки действий в менеджере. */
.v76-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.v76-action-cluster{display:inline-grid;grid-auto-flow:column;grid-auto-columns:34px;gap:4px;align-items:center}
.v76-action-cluster .icon-btn,
.v76-action-cluster label.icon-btn{
  width:34px;
  height:34px;
  min-width:34px;
  min-height:34px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  position:relative;
  cursor:pointer;
  /* V80: НЕ выставляем font-size:0 — это могло прятать SVG в некоторых конфигурациях.
     SVG показывается надёжно благодаря явному width/height + display:block. */
  font-size:0;
  line-height:0;
}
.v76-action-cluster .icon-btn .icon-glyph,
.v76-action-cluster label.icon-btn .icon-glyph{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  line-height:1;
  pointer-events:none;
}
.v76-action-cluster .icon-btn .icon-glyph svg,
.v76-action-cluster label.icon-btn .icon-glyph svg{
  display:block;
  width:18px;
  height:18px;
  /* V80: цвет берётся из currentColor родительской кнопки */
}
/* V80: цвет иконки наследуется от .icon-btn (green/blue/outline/danger ставят color) */
.v76-action-cluster .icon-btn.green{ background:#16a34a; color:#fff; border-color:#15803d; }
.v76-action-cluster .icon-btn.blue{ background:#2563eb; color:#fff; border-color:#1d4ed8; }
.v76-action-cluster .icon-btn.outline{ background:#fff7ed; color:#7c2d12; border:1.5px solid #fed7aa; }
.v76-action-cluster .icon-btn.outline:hover{ background:#ffedd5; }
.v76-action-cluster .icon-btn.danger{ background:#fee2e2; color:#b91c1c; border:1.5px solid #fecaca; }
.v76-action-cluster label.icon-btn{ background:#fff7ed; color:#7c2d12; border:1.5px solid #fed7aa; }
.v76-action-cluster label.icon-btn:hover{ background:#ffedd5; }
.v76-action-cluster label.icon-btn input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.v76-pay-select{height:34px;padding:0 10px;font-size:12px;border-radius:8px;margin-left:6px;max-width:160px}
@media (max-width: 720px){
  .v76-action-cluster{grid-auto-columns:30px;gap:3px}
  .v76-action-cluster .icon-btn,
  .v76-action-cluster label.icon-btn{width:30px;height:30px;min-width:30px;min-height:30px}
  .v76-action-cluster .icon-btn .icon-glyph,
  .v76-action-cluster label.icon-btn .icon-glyph,
  .v76-action-cluster .icon-btn .icon-glyph svg,
  .v76-action-cluster label.icon-btn .icon-glyph svg{width:16px;height:16px}
}

/* V76: Блок остатков рулона */
.v76-roll-stock-info-wrap{margin-top:8px}
.v76-roll-stock-info{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 12px;color:#7c2d12;font-size:13px;line-height:1.45}
.v76-roll-stock-info b{font-weight:900}
.v76-roll-stock-info small{display:block;color:#9a3412;margin-top:3px;font-size:11.5px}

/* V77: Прокручиваемая таблица для выполненных заказов дизайнера */
.v77-scroll-table{max-height:480px;overflow-y:auto;border:1px solid #fed7aa;border-radius:10px;padding:4px}
.v77-scroll-table table{margin-bottom:0}
.v77-scroll-table thead th{position:sticky;top:0;background:#fff7ed;z-index:2;box-shadow:0 1px 0 #fed7aa}

/* V77: Компактная карточка заказа в менеджере */
#managerOrderDetails .detail-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#managerOrderDetails .detail-card{min-height:auto;padding:8px 10px;gap:4px}
#managerOrderDetails .detail-card span{font-size:11px;color:#9a3412;line-height:1.2}
#managerOrderDetails .detail-card b{font-size:14px;line-height:1.2;word-break:break-word}
#managerOrderDetails h3,#managerOrderDetails .subsection-title{font-size:13px;margin:10px 0 6px;color:#7c2d12;font-weight:900}
#managerOrderDetails h4{font-size:12px;margin:8px 0 4px;color:#9a3412;font-weight:800;text-transform:uppercase;letter-spacing:0.02em}
#managerOrderDetails p{font-size:12.5px;line-height:1.4;margin:4px 0}
#managerOrderDetails .field{margin-bottom:6px}
#managerOrderDetails .field label{font-size:11px;margin-bottom:2px;color:#7c2d12}
#managerOrderDetails .field input,
#managerOrderDetails .field select,
#managerOrderDetails .field textarea{min-height:30px;height:30px;padding:5px 9px;font-size:12.5px}
#managerOrderDetails .field textarea{height:auto;min-height:44px}
#managerOrderDetails .button-row button{min-height:30px;padding:5px 12px;font-size:12px}
/* Компактные «карточки внутри карточек» — позиции, история, оплаты */
#managerOrderDetails .order-position-card{padding:8px 10px;margin-bottom:6px;border:1px solid #fed7aa;border-radius:8px;background:#fffdfa;font-size:12.5px;line-height:1.35}
#managerOrderDetails .order-position-card .pos-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin-top:4px}
#managerOrderDetails .order-position-card .pos-row span{color:#9a3412;font-size:11px}
#managerOrderDetails .order-position-card .pos-row b{color:#7c2d12;font-size:12.5px}
/* Скрываем дубликат кнопки "Сохранить карточку" — оставляем только в основной форме */
#managerOrderDetails .v77-hide-save-card{display:none !important}
/* Печать карточки — компактная */
#managerOrderDetails .v77-print-btn{min-height:28px;padding:4px 12px;font-size:12px;border-radius:8px}
@media (min-width:1100px){
  #managerOrderDetails .detail-cards{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* V78: Z-отчёт за смену */
#adminZReportCard .grid2{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 12px;align-items:end}
#adminZReportCard .grid2>div{margin-bottom:0}
#adminZReportCard label{font-size:12px;font-weight:700;color:#7c2d12;margin-bottom:3px;display:block}
#adminZReportCard input,#adminZReportCard select{min-height:32px;height:32px;padding:5px 10px;font-size:13px;border-radius:9px}
#adminZReportCard button{min-height:32px;padding:5px 16px;font-size:13px}
.z-report-wrap{display:grid;gap:14px}
.z-section{background:#fffaf5;border:1px solid #fed7aa;border-radius:12px;padding:12px 14px}
.z-section-title{font-size:14px;color:#7c2d12;font-weight:900;margin:0 0 8px;padding-bottom:4px;border-bottom:2px solid #fed7aa;letter-spacing:0.02em}
.detail-cards.z-detail-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:6px}
.detail-cards.z-detail-cards .detail-card{padding:8px 10px;min-height:auto}
.detail-cards.z-detail-cards .detail-card span{font-size:11px;line-height:1.2;color:#9a3412}
.detail-cards.z-detail-cards .detail-card b{font-size:14px;line-height:1.2;color:#7c2d12;display:block;margin-top:2px}
.detail-cards.z-detail-cards .detail-card small{display:block;font-size:10.5px;color:#9a3412;margin-top:2px}
.z-card-end{background:#dcfce7 !important;border-color:#86efac !important}
.z-card-end b{font-size:18px !important;color:#166534 !important}
.z-card-total b{font-size:16px !important;color:#7c2d12 !important}
.z-card-net b{font-size:16px !important;color:#15803d !important}
.z-card-refund b{color:#b91c1c !important}
.z-card-cash{background:#fef9c3 !important;border-color:#fde68a !important}
.z-card-cash b{color:#854d0e !important}
.z-closure-row{font-size:12.5px;line-height:1.5;padding:6px 8px;border-radius:8px;background:#fff;border:1px solid #fed7aa;margin-bottom:4px}
.z-closure-row b{color:#7c2d12}
.z-expenses-table{width:100%;border-collapse:collapse;font-size:12px}
.z-expenses-table th,.z-expenses-table td{border:1px solid #fed7aa;padding:4px 8px;text-align:left;line-height:1.3}
.z-expenses-table th{background:#fff7ed;color:#7c2d12;font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:0.02em}
.z-expenses-table tfoot td{background:#fff7ed;font-size:13px}
.z-expenses-table button.tiny-btn{min-height:24px;padding:2px 8px;font-size:11px}
@media (max-width:780px){
  .detail-cards.z-detail-cards{grid-template-columns:repeat(2,1fr)}
}

/* V80: кликабельные карточки способа оплаты в Z-отчёте */
.z-clickable{cursor:pointer;transition:transform 0.1s, box-shadow 0.1s}
.z-clickable:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(124,45,18,0.15)}
.z-clickable span::after{content:''}

/* V80: Модалка детализации заказов по способу оплаты */
.z-method-modal{
  position:fixed;inset:0;background:rgba(15,23,42,0.55);
  display:flex;align-items:center;justify-content:center;
  z-index:10100;padding:20px;
}
.z-method-modal-content{
  background:#fff;border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,0.3);
  max-width:1000px;width:100%;max-height:90vh;display:flex;flex-direction:column;
}
.z-method-modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid #fed7aa;
}
.z-method-modal-header h3{margin:0;color:#7c2d12;font-size:16px;font-weight:900}
.z-method-modal-close{
  background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;
  width:32px;height:32px;border-radius:8px;font-size:18px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1
}
.z-method-modal-close:hover{background:#fee2e2}
.z-method-modal-body{padding:14px 18px;overflow-y:auto}
.z-method-table{width:100%;border-collapse:collapse;font-size:12.5px}
.z-method-table th,.z-method-table td{border:1px solid #fed7aa;padding:6px 8px;text-align:left;line-height:1.35}
.z-method-table th{background:#fff7ed;color:#7c2d12;font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:0.02em}
.z-method-table tbody tr:hover{background:#fff7ed}
.z-method-table button.tiny-btn{min-height:26px;padding:3px 10px;font-size:11px}

/* V81: ГАРАНТИЯ ВИДИМОСТИ КНОПОК ДЕЙСТВИЙ.
   Эти правила имеют приоритет и работают независимо от других v7x-правил. */
.icon-btn{
  border:1.5px solid #fed7aa;
  background:#fff7ed;
  color:#7c2d12;
}
.icon-btn.green{ background:#16a34a !important; color:#fff !important; border-color:#15803d !important; }
.icon-btn.blue{ background:#2563eb !important; color:#fff !important; border-color:#1d4ed8 !important; }
.icon-btn.outline{ background:#fff7ed !important; color:#7c2d12 !important; border:1.5px solid #fed7aa !important; }
.icon-btn.outline:hover{ background:#ffedd5 !important; }
.icon-btn.danger{ background:#fee2e2 !important; color:#b91c1c !important; border:1.5px solid #fecaca !important; }
.icon-btn svg{ display:block !important; }
/* SVG-иконки наследуют цвет через currentColor */
.icon-btn svg path,
.icon-btn svg line,
.icon-btn svg rect,
.icon-btn svg circle{ stroke:currentColor; }
.icon-btn svg path[fill="currentColor"],
.icon-btn svg rect[fill="currentColor"]{ fill:currentColor; }

/* V81: модалка карточки заказа поверх Z-отчёта */
.order-card-modal{
  position:fixed;inset:0;background:rgba(15,23,42,0.55);
  display:flex;align-items:center;justify-content:center;
  z-index:10200;padding:20px;
}
.order-card-modal-content{
  background:#fffaf5;border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,0.3);
  max-width:1100px;width:100%;max-height:92vh;display:flex;flex-direction:column;
}
.order-card-modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid #fed7aa;background:#fff7ed;border-radius:14px 14px 0 0
}
.order-card-modal-header h3{margin:0;color:#7c2d12;font-size:15px;font-weight:900}
.order-card-modal-close{
  background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;
  width:32px;height:32px;border-radius:8px;font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;line-height:1
}
.order-card-modal-close:hover{background:#fee2e2}
.order-card-modal-body{padding:14px 18px;overflow-y:auto;flex:1}
.order-card-modal-body .detail-cards{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:10px
}
.order-card-modal-body .detail-card{
  padding:8px 10px;background:#fff;border:1px solid #fed7aa;border-radius:8px
}
.order-card-modal-body .detail-card span{font-size:11px;color:#9a3412;display:block;line-height:1.2}
.order-card-modal-body .detail-card b{font-size:13px;color:#7c2d12;display:block;margin-top:2px}
.order-card-modal-body h4{font-size:12px;color:#9a3412;margin:10px 0 4px;font-weight:800;text-transform:uppercase;letter-spacing:0.02em}
.order-card-modal-body .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.order-card-modal-body .field{margin-bottom:0}
.order-card-modal-body .field label{font-size:11px;color:#7c2d12;display:block;margin-bottom:2px}
.order-card-modal-body .modal-readonly{font-size:13px;color:#1f2937;padding:6px 9px;background:#fff;border:1px solid #fed7aa;border-radius:6px;min-height:30px}
.order-card-modal-footer{
  display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #fed7aa;background:#fff7ed;border-radius:0 0 14px 14px
}
.order-card-modal-footer button{min-height:34px;padding:6px 16px;font-size:13px}

/* V83: компактные строки в менеджере (≤3см) */
#managerOrdersList table td{padding:6px 8px;font-size:12px;line-height:1.35;vertical-align:middle}
#managerOrdersList table th{padding:6px 8px;font-size:11px}
#managerOrdersList .v83-actions-row{justify-content:flex-end}
#managerOrdersList .v83-actions-stack{align-items:flex-end;min-width:200px}

/* V83: текст никогда не выпирает */
.result-card .result-note,
.detail-card b,
.detail-card span,
.order-row td,
.modal-readonly{
  word-break:break-word;
  overflow-wrap:anywhere;
  max-width:100%;
}
.result-card{overflow:hidden}
.autosize-price{
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* V83: длинные имена файлов в превью статусе обрезаются */
.status-msg{
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* V84: HTML-схемы евробуклета. SVG не работает у некоторых пользователей,
   делаем на чистом HTML+CSS. */
.booklet-preview{
  background:#fff;
  border:1px solid #fed7aa;
  border-radius:10px;
  padding:18px 16px;
  margin-bottom:10px;
  min-height:140px;
}
.booklet-preview .booklet-svg-box{
  width:100%;
  max-width:520px;
  margin:0 auto;
}
.booklet-preview .fold-info{
  margin-top:10px;
  text-align:center;
  padding-top:10px;
  border-top:1px solid #fed7aa;
}
.booklet-preview .fold-info b{
  display:block;
  color:#7c2d12;
  font-size:13px;
  margin-bottom:3px;
}
.booklet-preview .fold-info span{
  color:#9a3412;
  font-size:11.5px;
  line-height:1.4;
}

/* V98: модалка деталей постпечатного заказа */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:100000;display:flex;align-items:center;justify-content:center;padding:16px}
.modal-backdrop .modal-content{background:#fff;border-radius:14px;padding:18px 20px;max-width:600px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 18px 60px rgba(0,0,0,0.3)}
.modal-backdrop .modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #fed7aa;padding-bottom:10px;margin-bottom:12px}
.modal-backdrop .modal-header h3{margin:0;color:#7c2d12;font-size:18px}
.modal-backdrop .modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#7c2d12;padding:0 6px;line-height:1}
.modal-backdrop .modal-body h4{color:#7c2d12;font-size:14px}


/* V126: красивые модалки подтверждения и ввода (промт/пароль/инфо) — заменяют
   нативные browser-prompt/confirm/alert. Стили намеренно отдельные от .modal-backdrop
   из V98, чтобы не задеть другие модалки (детали постпечати и т.п.). */
.appmodal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(20, 7, 0, .58);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 100050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  animation: appmodal-fade-in .14s ease-out;
}
@keyframes appmodal-fade-in { from { opacity: 0 } to { opacity: 1 } }
@keyframes appmodal-pop-in { from { transform: translateY(8px) scale(.98); opacity: 0 } to { transform: none; opacity: 1 } }
.appmodal-card {
  background: #fff;
  border-radius: 14px;
  width: 100%;
  max-width: 460px;
  box-shadow: 0 26px 70px rgba(0, 0, 0, .35), 0 0 0 1px rgba(244, 105, 18, .12);
  overflow: hidden;
  animation: appmodal-pop-in .16s ease-out;
}
.appmodal-card.danger { box-shadow: 0 26px 70px rgba(120, 0, 0, .35), 0 0 0 1px rgba(220, 38, 38, .25); }
.appmodal-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
  border-bottom: 1px solid #fed7aa;
}
.appmodal-card.danger .appmodal-head {
  background: linear-gradient(180deg, #fee2e2 0%, #fecaca 100%);
  border-bottom-color: #fca5a5;
}
.appmodal-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: rgba(244, 105, 18, .18);
  color: #c2410c;
  font-size: 22px;
  font-weight: 900;
}
.appmodal-card.danger .appmodal-icon {
  background: rgba(220, 38, 38, .22);
  color: #991b1b;
}
.appmodal-title {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: #7c2d12;
  line-height: 1.25;
}
.appmodal-card.danger .appmodal-title { color: #7f1d1d; }
.appmodal-body {
  padding: 16px 18px;
  color: #4a2a14;
  font-size: 14px;
  line-height: 1.5;
}
.appmodal-body p { margin: 0 0 10px; }
.appmodal-body p:last-child { margin-bottom: 0; }
.appmodal-body .appmodal-emphasize {
  background: #fef3c7;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 9px 11px;
  margin: 8px 0;
  color: #7c2d12;
  font-weight: 700;
}
.appmodal-body label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #7c2d12;
  margin: 12px 0 4px;
}
.appmodal-body input[type="text"],
.appmodal-body input[type="password"] {
  width: 100%;
  height: 38px;
  padding: 6px 11px;
  border: 1.5px solid #fed7aa;
  border-radius: 9px;
  font-size: 14px;
  font-family: inherit;
  background: #fff;
  color: #4a2a14;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}
.appmodal-body input:focus {
  outline: none;
  border-color: #f97316;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, .2);
}
.appmodal-card.danger .appmodal-body input:focus {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, .18);
}
.appmodal-error {
  margin-top: 8px;
  color: #b91c1c;
  font-size: 12.5px;
  font-weight: 700;
  display: none;
}
.appmodal-error.visible { display: block; }
.appmodal-foot {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 18px 16px;
  border-top: 1px solid #fed7aa;
  background: #fffbf6;
}
.appmodal-card.danger .appmodal-foot { border-top-color: #fca5a5; }
.appmodal-btn {
  height: 38px;
  padding: 0 16px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: background-color .12s, border-color .12s, transform .08s;
}
.appmodal-btn:active { transform: translateY(1px); }
.appmodal-btn-cancel {
  background: #fff;
  border-color: #fed7aa;
  color: #7c2d12;
}
.appmodal-btn-cancel:hover { background: #fff7ed; }
.appmodal-btn-primary {
  background: #2563eb;
  border-color: #1d4ed8;
  color: #fff;
}
.appmodal-btn-primary:hover { background: #1d4ed8; }
.appmodal-btn-danger {
  background: #dc2626;
  border-color: #b91c1c;
  color: #fff;
}
.appmodal-btn-danger:hover { background: #b91c1c; }
.appmodal-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }

/* ========================================================================
   V190.30: модалка выбора действия для негабаритных страниц широкоформата.
   Карточка-опция с radio слева, текстом справа, и опционально полноразмерным
   select-ом для выбора дополнительного рулона. Заменяет inline-стили
   в openWideOversizeModal.
   ====================================================================== */
.v190-oversize-option {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 14px;
  border: 1.5px solid #fde68a;
  border-radius: 10px;
  background: #fffbeb;
  cursor: pointer;
  transition: border-color .15s, background .15s, box-shadow .15s;
  font-weight: 400 !important;   /* override .appmodal-body label { font-weight:700 } */
  color: #4a2a14 !important;     /* override .appmodal-body label */
  margin: 0 !important;          /* override .appmodal-body label margin */
}
.v190-oversize-option:hover {
  border-color: #f59e0b;
  background: #fef3c7;
}
.v190-oversize-option[data-checked="true"] {
  border-color: #ea580c;
  background: #fff7ed;
  box-shadow: 0 2px 6px rgba(234, 88, 12, 0.12);
}
.v190-oversize-option input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0 0;
  accent-color: #ea580c;
  cursor: pointer;
  flex-shrink: 0;
}
.v190-oversize-option-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;            /* для корректного wrap'а текста в grid */
}
.v190-oversize-option-text b {
  font-size: 14px;
  font-weight: 700;
  color: #7c2d12;
  line-height: 1.3;
}
.v190-oversize-option-text span {
  font-size: 12.5px;
  color: #78350f;
  line-height: 1.5;
}
.v190-oversize-extra-select {
  width: 100%;
  margin-top: 8px;
  padding: 8px 10px;
  border: 1.5px solid #fed7aa;
  border-radius: 8px;
  font-size: 13px;
  background: #fff;
  color: #4a2a14;
  font-family: inherit;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.v190-oversize-extra-select:hover:not(:disabled) {
  border-color: #f59e0b;
}
.v190-oversize-extra-select:focus {
  outline: none;
  border-color: #ea580c;
  box-shadow: 0 0 0 3px rgba(234, 88, 12, 0.15);
}
.v190-oversize-extra-select:disabled {
  background: #f9fafb;
  color: #9ca3af;
  cursor: not-allowed;
}

/* ========================================================================
   V190.4: индикатор выполнения для кнопок «Рассчитать» и «PDF анализ».
   Применяется через JS: добавляется класс .v190-busy на <button>, во время
   анализа PDF и API-запроса /quote. Кнопка получает disabled state,
   вращающийся спиннер слева от текста, и pulse-анимацию для привлечения
   внимания. После окончания состояния класс снимается.
   ====================================================================== */
button.v190-busy {
  position: relative;
  cursor: progress !important;
  pointer-events: none;
  opacity: 0.85;
  padding-left: 38px !important;
  animation: v190PulseBtn 1.4s ease-in-out infinite;
}
button.v190-busy::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  width: 16px;
  height: 16px;
  margin-top: -8px;
  border: 2.5px solid rgba(255, 255, 255, 0.35);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: v190SpinBtn 0.7s linear infinite;
}
/* Спиннер на не-цветных кнопках (outline / без класса .blue) — тёмный */
button.v190-busy:not(.blue):not(.green):not(.danger)::before {
  border-color: rgba(60, 60, 60, 0.18);
  border-top-color: #4b5563;
}
@keyframes v190SpinBtn { to { transform: rotate(360deg); } }
@keyframes v190PulseBtn {
  0%, 100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.0); }
  50%      { box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.18); }
}

/* V190.4: предупреждение под кнопкой расчёта про сброс состояния при
   перезагрузке. Постоянное, но малозаметное; красное чтобы привлекать
   внимание именно в момент когда пользователь видит «Анализ N/M...» */
.v190-reload-warning {
  display: block;
  margin-top: 6px;
  font-size: 11.5px;
  line-height: 1.35;
  color: #b91c1c;
  font-weight: 500;
}

/* V190.4: красная подсветка полей, требующих заполнения.
   markFieldError() уже добавляет .field-error — здесь мы делаем эту
   подсветку более заметной + анимация-вспышка при первой ошибке. */
.field-error,
.field-error input,
.field-error select,
.field-error textarea,
input.field-error,
select.field-error {
  border-color: #dc2626 !important;
  background-color: #fef2f2 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
  animation: v190FieldFlash 0.5s ease-out;
}
@keyframes v190FieldFlash {
  0%   { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.45); }
  100% { box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12); }
}

/* ========================================================================
   V190.11: визуальные элементы для multi-PDF загрузки в широкоформат
   и сводки расхода рулонов в общем заказе.
   ====================================================================== */

/* Заголовок-разделитель «📄 file.pdf 3/100» перед группой строк одного PDF */
.wide-source-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 10px 0 4px 0;
  padding: 6px 10px;
  background: linear-gradient(90deg, #fef3c7 0%, #fef9e8 100%);
  border-left: 3px solid #f59e0b;
  border-radius: 4px;
  font-size: 13px;
  color: #92400e;
}
.wide-source-header b {
  flex: 1;
  font-weight: 600;
  word-break: break-all;
}
.wide-source-icon { font-size: 14px; }
.wide-source-counter {
  font-size: 11px;
  color: #b45309;
  font-weight: 500;
  background: #fde68a;
  padding: 2px 8px;
  border-radius: 10px;
}

/* Блок «Расход рулонов в этом заказе» в общем заказе */
.multi-rolls-summary {
  margin-top: 14px;
  padding: 10px 12px;
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  border-radius: 8px;
}
.multi-rolls-header {
  font-size: 12.5px;
  font-weight: 600;
  color: #0c4a6e;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.multi-roll-line {
  display: grid;
  grid-template-columns: minmax(140px, 1.5fr) minmax(110px, 0.8fr) minmax(140px, 1.2fr);
  gap: 8px;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px dashed #cbd5e1;
  font-size: 13px;
}
.multi-roll-line:last-child { border-bottom: none; }
.multi-roll-name { color: #0f172a; font-weight: 500; }
.multi-roll-need { color: #1e293b; text-align: center; }
.multi-roll-need b { color: #0c4a6e; }
.multi-roll-status { font-size: 12px; text-align: right; }
@media (max-width: 640px) {
  .multi-roll-line {
    grid-template-columns: 1fr;
    gap: 2px;
    padding: 8px 0;
  }
  .multi-roll-need, .multi-roll-status { text-align: left; }
}

/* ========================================================================
   V190.12: модалка «Файлы заказа» и «Изменить срок сдачи».
   Переиспользуем appmodal-overlay/appmodal-card (setupAppModal) с
   расширенными классами для списка файлов и сetки upload.
   ====================================================================== */

/* Расширенная карточка для модалки файлов — нужна высота под список */
.ofile-card {
  max-width: 720px !important;
  width: 95vw !important;
  max-height: 85vh;
  display: flex !important;
  flex-direction: column;
}
.ofile-card .appmodal-body {
  overflow-y: auto;
  flex: 1;
}

/* Блок загрузки в верхней части модалки */
.ofile-upload {
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 12px;
}
.ofile-upload-title {
  font-size: 12.5px;
  font-weight: 600;
  color: #0c4a6e;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.ofile-upload-row {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 8px;
  align-items: center;
}
.ofile-upload-row input[type="file"] { font-size: 13px; }
.ofile-upload-row select {
  padding: 8px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 13px;
  background: #fff;
}
.ofile-upload-error {
  margin-top: 6px;
  color: #b91c1c;
  font-size: 13px;
}
@media (max-width: 640px) {
  .ofile-upload-row { grid-template-columns: 1fr; }
}

/* Списки файлов с группировкой по позициям */
.ofile-list { display: flex; flex-direction: column; gap: 14px; }
.ofile-section { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 10px; }
.ofile-section-title {
  font-weight: 600;
  font-size: 13px;
  color: #334155;
  margin-bottom: 6px;
  padding-bottom: 4px;
  border-bottom: 1px dashed #e2e8f0;
}
.ofile-empty {
  color: #94a3b8;
  font-size: 13px;
  padding: 6px 0;
  font-style: italic;
}

/* Строка файла */
.ofile-row {
  display: grid;
  grid-template-columns: 28px 1fr auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 4px;
  border-radius: 6px;
}
.ofile-row:hover { background: #f8fafc; }
.ofile-icon { font-size: 18px; text-align: center; }
.ofile-meta { min-width: 0; }
.ofile-name {
  font-size: 13.5px;
  font-weight: 500;
  color: #0f172a;
  word-break: break-word;
}
.ofile-sub {
  font-size: 11.5px;
  color: #64748b;
  margin-top: 2px;
}
.ofile-badge {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 600;
  background: #fef3c7;
  color: #92400e;
  padding: 1px 6px;
  border-radius: 8px;
  margin-left: 6px;
  text-transform: lowercase;
  vertical-align: middle;
}

/* Кнопки скачать/удалить — компактные */
.ofile-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  font-size: 15px;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #1e293b;
  transition: background-color 120ms;
}
.ofile-btn:hover { background: #e2e8f0; }
.ofile-btn-dl { color: #0369a1; border-color: #bae6fd; }
.ofile-btn-dl:hover { background: #e0f2fe; }
.ofile-btn-del { color: #b91c1c; border-color: #fecaca; }
.ofile-btn-del:hover { background: #fee2e2; }

/* ========================================================================
   V190.13: модалка фальцовки + таблица team постпечатников
   ====================================================================== */

/* Карточка фальцовки */
.fold-card {
  max-width: 720px !important;
  width: 95vw !important;
  max-height: 85vh;
  display: flex !important;
  flex-direction: column;
}
.fold-card .appmodal-body {
  overflow-y: auto;
  flex: 1;
}

/* Таблица настроек фальцовки */
.fold-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-top: 10px;
}
.fold-table th {
  background: #f8fafc;
  padding: 8px 10px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
  font-size: 12px;
  color: #334155;
  font-weight: 600;
  text-transform: uppercase;
}
.fold-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #e2e8f0;
  vertical-align: middle;
}
.fold-table tr:hover { background: #f8fafc; }
.fold-table input[type="checkbox"] {
  transform: scale(1.3);
  cursor: pointer;
}
.fold-table select {
  width: 100%;
  padding: 6px 8px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  font-size: 13px;
}
.fold-table select:disabled {
  background: #f1f5f9;
  color: #94a3b8;
}
.fold-file-name {
  font-weight: 500;
  color: #0f172a;
  word-break: break-all;
}
.fold-file-name small {
  color: #64748b;
  font-weight: normal;
  margin-left: 6px;
}
.fold-eye-btn {
  font-size: 18px;
  padding: 4px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: background 120ms;
}
.fold-eye-btn:hover:not(:disabled) {
  background: #e0f2fe;
  border-color: #38bdf8;
}
.fold-eye-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.fold-hint {
  margin-top: 12px;
  font-size: 12.5px;
  color: #0c4a6e;
  background: #f0f9ff;
  padding: 8px 10px;
  border-left: 3px solid #0ea5e9;
  border-radius: 4px;
}

/* Таблица команды постпечатников (модалка 👥) */
.team-table th {
  background: #f8fafc;
  padding: 8px 10px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
  font-size: 12px;
  color: #334155;
  font-weight: 600;
}
.team-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #e2e8f0;
}
.team-table tr:hover { background: #f8fafc; }

/* ========================================================================
   V190.14: PDF preview через inline iframe + уведомления постпечатнику
   ====================================================================== */

/* Модалка предпросмотра PDF — занимает почти весь экран */
.pdf-preview-card {
  max-width: 1200px !important;
  width: 95vw !important;
  height: 90vh;
  display: flex !important;
  flex-direction: column;
}
.pdf-preview-body {
  flex: 1;
  padding: 0 !important;
  overflow: hidden;
  background: #f1f5f9;
}
.pdf-preview-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Badge на табе «Доступные заказы» — красный кружок с числом новых */
.pp-notify-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  margin-left: 6px;
  background: #dc2626;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  border-radius: 10px;
  vertical-align: middle;
  animation: pp-notify-pulse 1.5s ease-in-out infinite;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.2);
}

@keyframes pp-notify-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

/* Toast-уведомление в правом верхнем углу */
.pp-notify-toast {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 2147483647;
  background: #fff;
  border: 2px solid #f59e0b;
  border-radius: 12px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  max-width: 380px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18);
  cursor: pointer;
  animation: pp-notify-slide-in 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes pp-notify-slide-in {
  from { transform: translateX(120%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

.pp-notify-icon {
  font-size: 28px;
  line-height: 1;
  animation: pp-notify-ring 1s ease-in-out 2;
  transform-origin: top center;
}

@keyframes pp-notify-ring {
  0%, 100% { transform: rotate(0); }
  10%, 30% { transform: rotate(-15deg); }
  20%, 40% { transform: rotate(15deg); }
}

.pp-notify-content { min-width: 0; }
.pp-notify-title {
  font-weight: 700;
  color: #92400e;
  font-size: 14px;
  margin-bottom: 3px;
}
.pp-notify-sub {
  color: #64748b;
  font-size: 12px;
  line-height: 1.4;
}

.pp-notify-close {
  background: none;
  border: 0;
  font-size: 22px;
  line-height: 1;
  color: #94a3b8;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
}
.pp-notify-close:hover {
  background: #f1f5f9;
  color: #1e293b;
}

/* Адаптив для мобилок */
@media (max-width: 640px) {
  .pp-notify-toast {
    top: 10px;
    right: 10px;
    left: 10px;
    max-width: none;
  }
}

/* V190.16: fallback блок в PDF preview модалке */
.pdf-preview-body {
  position: relative; /* для абсолютного позиционирования fallback */
}
.pdf-preview-fallback {
  position: absolute;
  inset: 0;
  background: rgba(248, 250, 252, 0.96);
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 40px;
  text-align: center;
  z-index: 2;
}
.pdf-preview-fallback-icon {
  font-size: 64px;
  opacity: 0.4;
}
.pdf-preview-fallback-text {
  font-size: 15px;
  color: #475569;
  line-height: 1.6;
  max-width: 460px;
}
.pdf-preview-fallback-link {
  display: inline-block;
  margin-top: 4px;
  padding: 8px 16px;
  background: #2563eb;
  color: #fff !important;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 600;
}
.pdf-preview-fallback-link:hover { background: #1d4ed8; }

/* V190.26: input «копий» в шапке группы PDF */
.wide-source-header {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.wide-source-copies {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  font-size: 13px;
  font-weight: 600;
  color: #92400e;
  background: #fff7ed;
  padding: 4px 10px;
  border-radius: 8px;
  border: 1px solid #fed7aa;
}
.wide-source-copies span { white-space: nowrap; }
.wide-source-copies input[type="number"] {
  width: 60px;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid #fdba74;
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  color: #7c2d12;
}
.wide-source-copies input[type="number"]:focus {
  outline: 2px solid #ea580c;
  outline-offset: 1px;
}
