/*! @license © 2026 Гореньков М. С. · КарЧоо. Все права защищены. */
.workspace-layout-v2 .layout {grid-template-columns:230px minmax(420px,1fr) 460px!important}
.workspace-layout-v2 .center-col {display:flex;flex-direction:column;min-height:0;gap:14px}
.workspace-layout-v2 .form-panel {flex:0 0 auto}
.workspace-layout-v2 .cal-panel {flex:0 0 auto;min-height:0;margin-top:auto}
/* Все строки настройки помещаются на холсте без внутренней прокрутки. */
.workspace-layout-v2 .cal-settings-wrap,
.workspace-layout-v2 .cal-controls-zone,
.workspace-layout-v2 .cal-lockable,
.workspace-layout-v2 .cal-body {flex:1 1 auto;min-height:0}
.workspace-layout-v2 .cal-panel > .panel-head,
.workspace-layout-v2 .cal-foot {flex-shrink:0}
/* Высота определяется строками в обоих состояниях: разблокировка не двигает панель. */
.workspace-layout-v2 .cal-panel.is-locked .cal-lockable {overflow:hidden}
/* Нижняя строка закреплена: содержимое предпросмотра не сдвигает изготовителя. */
.workspace-layout-v2 .right-col {display:grid;grid-template-rows:minmax(0,1fr) 144px;gap:14px;min-height:0;min-width:0}
.workspace-layout-v2 .preview-panel {align-self:start;max-height:100%;min-height:0}
.workspace-layout-v2 .preview-body {flex:0 1 500px;height:500px;min-height:0}
.workspace-layout-v2 #presetPanel {height:100%;min-height:0;margin-top:0;box-sizing:border-box;container-type:inline-size}
.workspace-layout-v2 .preset-head {align-items:center}
.workspace-layout-v2 .preset-nav {display:flex;gap:5px;margin-left:auto;overflow:visible;flex:none}
.workspace-layout-v2 .preset-scroll {width:28px;min-height:26px;padding:0;font-size:18px;line-height:24px;border-radius:7px}
.workspace-layout-v2 .preset-scroll:disabled {opacity:.3;cursor:default}
/* Размеры и оформление боевой полосы; свободная прокрутка без привязки к карточкам. */
.workspace-layout-v2 .preset-opts {position:relative;display:flex;flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:8px;padding:2px 2px 5px;scrollbar-width:thin;scroll-snap-type:none;min-height:0}
.workspace-layout-v2 .preset-opt {flex:0 0 83px;height:72px}
.workspace-layout-v2 .preset-opt[data-preset="bbs"] {flex-basis:43px}
.workspace-layout-v2 .preset-opt[data-preset="neoblank"] {flex-basis:86px}
.workspace-layout-v2 .preset-opt[data-preset="sibpro"],
.workspace-layout-v2 .preset-opt[data-preset="ao-format"] {flex-basis:63px}
.workspace-layout-v2 #btnSave[hidden] {display:none!important}
#cardSaveStatus {margin-left:auto;font-size:12px;font-weight:500;color:#668078}
#cardSaveStatus.save-error {color:#b93828}
.card-filter-empty {padding:16px 12px;color:#17678e;font-size:13px;line-height:1.5}

/* Тип карточки рядом с датой; пропорции уточнены владельцем 19.10. */
.workspace-layout-v2 #cardForm {grid-template-areas:"worker worker" "org boss" "issue boss"}
.workspace-layout-v2 .form-actions[hidden] {display:none}
.workspace-layout-v2 .blk-issue .issue-row {margin-top:auto;display:flex;gap:10px;align-items:flex-end}
.workspace-layout-v2 .blk-issue .issue-row .field {margin-bottom:0;min-width:0}
.workspace-layout-v2 .blk-issue .date-field {flex:0 0 144px}
.workspace-layout-v2 .blk-issue .kind-field {flex:1 1 auto}
.workspace-layout-v2 .blk-issue .kind-switch {width:100%;box-sizing:border-box}
.workspace-layout-v2 .blk-issue .kind-opt {flex:1;padding-left:6px;padding-right:6px;min-width:0}
.workspace-layout-v2 .form-panel .panel-head #btnDelete {margin-left:8px}
.workspace-layout-v2 .preview-actions .btn {white-space:normal;min-width:0;padding:6px 8px}
.workspace-layout-v2 .preset-opt small {white-space:normal}

/* Единое поле: один крестик внутри вместо встроенного и отдельной кнопки. */
.workspace-layout-v2 .filter-row {position:relative}
.workspace-layout-v2 #filter {width:100%;min-width:0;padding-right:36px}
.workspace-layout-v2 #filter::-webkit-search-cancel-button,
.workspace-layout-v2 #filter::-webkit-search-decoration {display:none;-webkit-appearance:none}
.workspace-layout-v2 #clearCardFilter {position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;min-height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:21px;line-height:1;box-shadow:none}
.workspace-layout-v2 #clearCardFilter:hover {background:var(--accent-soft);color:var(--accent)}
.workspace-layout-v2 #clearCardFilter:focus-visible {outline:2px solid var(--accent);outline-offset:0}
.workspace-layout-v2 #clearCardFilter:disabled {visibility:hidden}
.workspace-layout-v2 .registry-io .btn {border-radius:8px;font-size:12px;min-height:32px}

/* Личный контакт разработчика в свободной области рабочего экрана. */
/* Две самостоятельные карточки: помощь слева, чистая печать справа. */
.workspace-layout-v2 .workspace-owner-space {flex:1 0 auto;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-content:center;align-items:stretch;gap:12px;min-height:0}
.workspace-layout-v2 .workspace-owner-space:has(.workspace-watermarks[hidden]) {grid-template-columns:minmax(0,1fr)}
.workspace-layout-v2 .workspace-owner {flex-direction:row;width:100%;min-width:0;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;min-height:112px;border:1px solid #c8dfd9;border-radius:16px;box-shadow:0 3px 12px #175b4f08;background:linear-gradient(120deg,#e8f5f0,#f8fcfa)}
.workspace-owner-person {display:flex;align-items:center;gap:10px;min-width:0}
.workspace-owner-avatar {display:flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;border:2px solid var(--surface);border-radius:50%;background:linear-gradient(145deg,#e4f6ed,#b9dfd1);color:var(--accent-hover);font-size:20px;font-weight:650;box-shadow:0 2px 6px #175b4f0d}
.workspace-owner-details {min-width:0}
.workspace-owner-details h2 {margin:0 0 1px;font-size:11px;line-height:15px;font-weight:500;color:#4d766c}
.workspace-owner-name {margin:0 0 3px;font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.35px;color:#214b41}
.workspace-owner-phone {display:inline-flex;align-items:center;gap:5px;color:#32695c;text-decoration:none;font-size:12px;line-height:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
.workspace-owner-phone svg {width:12px;height:12px}
.workspace-owner-phone:hover {color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.workspace-owner-phone:focus-visible {outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}
.workspace-owner-support {position:relative;display:grid;grid-template-columns:20px 1fr;align-items:center;justify-content:center;gap:7px;flex:none;width:116px;min-height:54px;padding:10px 9px;border-radius:11px;box-shadow:0 2px 5px #0f766e08;background:var(--surface);border-color:#b8d9cf;color:var(--accent-hover);transition:background .18s,border-color .18s,box-shadow .18s}
.workspace-owner-support:hover {background:#f1faf5;border-color:var(--accent);box-shadow:0 3px 9px #0f766e12}
.workspace-owner-support-label {display:inline-flex;flex-direction:column;align-items:flex-start;white-space:normal;text-align:left;font-size:12px;line-height:15px;font-weight:650}
.workspace-owner-support-online {display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.workspace-owner-support svg,.workspace-owner-phone svg {flex:none}
.workspace-owner-support .support-dot {position:static;width:6px;height:6px;margin:0}
.workspace-owner-support .support-unread[hidden] {display:none!important}
.workspace-layout-v2 .workspace-watermarks {min-width:0;min-height:112px;justify-content:center;gap:11px;padding:13px 14px;border:1px solid #e5ddc9;border-radius:16px;background:linear-gradient(125deg,#fffdf6,#faf8f0);box-shadow:0 3px 12px #61502c05}
.workspace-watermarks-head {display:flex;align-items:center;gap:9px;min-width:0}
.workspace-watermarks-icon {display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:36px;border:1px solid #e7ddbf;border-radius:9px;background:#f4edd8;color:#8d763e}
.workspace-watermarks-head h2 {margin:0 0 3px;color:var(--ink);font-size:14px;line-height:17px;font-weight:650;letter-spacing:-.15px}
.workspace-watermarks-head p {margin:0;color:#817760;font-size:10.5px;line-height:14px}
#workspaceWatermarks #btnRemoveWatermarks {display:flex;align-items:center;justify-content:space-between;gap:7px;width:100%;min-height:34px;padding:8px 10px;white-space:nowrap;border-color:#d8cfb6;border-radius:9px;background:var(--surface);color:#65572e;font-size:11.5px;line-height:16px;font-weight:650;box-shadow:0 1px 2px #61502c05;transition:border-color .18s,background .18s}
#workspaceWatermarks #btnRemoveWatermarks:hover {background:#fffdf4;border-color:#ab975d}
#workspaceWatermarks #btnRemoveWatermarks span {font-size:16px;font-weight:400}
#workspaceWatermarks .print-watermark-status {align-self:stretch;padding:8px 10px;text-align:center;border:1px solid #b8d9cf;border-radius:9px;background:var(--surface);color:var(--accent);font-size:12px;line-height:16px;font-weight:600}
.workspace-layout-v2 .workspace-watermarks.is-active {border-color:#c8dfd9;background:linear-gradient(125deg,#f1f9f5,#fbfdfb)}
.workspace-watermarks.is-active .workspace-watermarks-icon {color:var(--accent);border-color:#c5e1d6;background:#e1f1e9}
.workspace-watermarks.is-active .workspace-watermarks-head p {color:#608176}
body.workspace-layout-v2[data-first-card-print="1"] .preview-actions {display:flex}



/* Значки видео рядом с заголовками; статус и выбор принтера остаются справа. */
.workspace-layout-v2 .form-panel .panel-head > .video-course-camera,
.workspace-layout-v2 .cal-panel .panel-head > .video-course-camera {margin-left:0;flex:0 0 26px}

.workspace-layout-v2 #calPanel .panel-head h2 {margin-right:0}
.workspace-layout-v2 #calPanel .panel-head > .video-course-camera {order:0}
.workspace-layout-v2 #btnPrinterProfiles {margin-left:auto}

.workspace-owner-hours {margin:3px 0 0;color:#4d766c;font-size:10.5px;line-height:14px}

/* Компактная подпись организации и общая линия нижних полей карточки. */
.workspace-layout-v2 .blk-org label[for="d4"] {white-space:nowrap;font-size:11px}
.workspace-layout-v2 .blk-boss .field:first-of-type label {min-height:0}
.workspace-layout-v2 .blk-boss .field:last-child {margin-bottom:0}
/* Двухстрочный переключатель выше обычных полей; их нижняя линия общая. */
.workspace-layout-v2 .blk-issue .kind-switch {height:42px;box-sizing:border-box}
.workspace-layout-v2 .blk-issue .date-row {align-items:stretch}
.workspace-layout-v2 .blk-issue .date-row .btn {padding:0;width:32px;box-sizing:border-box;justify-content:center}

/* Значок объяснения относится к заголовку картотеки. */
.workspace-layout-v2 .registry .panel-head h2 {margin-right:0}
.workspace-layout-v2 .registry #btnNew {margin-left:auto}

/* Компактные настройки оставляют место карточке и контакту разработчика. */
.workspace-layout-v2 .cal-body {overflow:visible}
.workspace-layout-v2 .cal-body .row-cal {padding-top:0;padding-bottom:0}
.workspace-layout-v2 .cal-nudge {height:26px}
/* Запас для текста и кнопок приглашения к калибровке без изменения высоты при открытии. */
.workspace-layout-v2 .cal-controls-zone {min-height:171px}

/* Нижний отступ равен видимому отступу над рамкой «Работник»:
   6 px формы и 7 px до середины легенды высотой 14 px. */
body.app-fixed-scale.workspace-layout-v2 .form-panel #cardForm {padding-bottom:13px}

/* Рабочее поле шага 7: общий контур объединяет заголовок, масштаб и бланк. */
#calibBackdrop .calib7-stage-wrap { border:1px solid #72b8aa; border-radius: 0; background:#f0f8f5; box-shadow:0 0 0 2px #0085770c,0 4px 14px #164e4310; }
#calibBackdrop .calib7-stage-head { padding:10px 10px 9px; margin:0; gap:8px; border-bottom:1px solid #c7e2da; background:linear-gradient(110deg,#dcefe9,#f4faf7); border-radius:11px 11px 0 0; }
#calibBackdrop .calib7-stage-head .calib7-h { display:flex; align-items:center; gap:8px; color:#126b5e; font-size:15px; }
#calibBackdrop .calib7-stage-head .calib7-h svg { flex:none; }
#calibBackdrop #calibStage { margin:6px; border:1px solid #d1e3dc; background:#e8f1ed; border-radius:0; }
#calibBackdrop #calibCanvas { box-shadow:0 2px 9px #153e301a; }

/* Верхнее предупреждение и подсказка масштаба не перекрывают друг друга. */
#calibBackdrop #calibStage:has(.calib-position-warning.is-top:not([hidden])) .calib-precision-tip {top:calc(50% + 18px)}



/* Выбор принтера — такой же блок с легендой, как поля карточки. */
.workspace-layout-v2 #calPanel .pp-current-setting {order:1;flex:0 1 268px;min-width:0;margin:0 0 0 auto;padding:4px 10px 7px;background:#f3f4f1;border:1px solid #d9ddd8;border-radius:10px;box-sizing:border-box}
.workspace-layout-v2 .pp-current-setting legend {padding:0 3px;margin:0 0 3px;font-size:12px;line-height:14px;font-weight:650;color:var(--muted)}
.workspace-layout-v2 .pp-current-setting #btnPrinterProfiles {margin:0;width:100%;max-width:none;min-height:30px;box-sizing:border-box;background:#fff;font-size:13px;padding:5px 9px;text-align:left}
.workspace-layout-v2 .pp-current-setting #btnPrinterProfiles span {flex:1;text-align:left}
.workspace-layout-v2 .pp-current-setting:focus-within {border-color:var(--accent);box-shadow:0 0 0 2px #00857712}

/* Семь отдельных строк СибПро помещаются в ту же панель, что пять обычных. */
.workspace-layout-v2 #calPanel .cal-table:has(.row-cal[data-f="d1"]) .row-cal {grid-template-columns:200px minmax(0,1fr) minmax(0,1fr) 54px}
.workspace-layout-v2 #calPanel .cal-table:has(.row-cal[data-f="d1"]) .row-cal[data-f] {height:21px;min-height:0}
.workspace-layout-v2 #calPanel .cal-table:has(.row-cal[data-f="d1"]) .row-cal-name {white-space:nowrap}
.workspace-layout-v2 #calPanel .cal-table:has(.row-cal[data-f="d1"]) .cal-nudge {height:20px;font-size:16px}
.workspace-layout-v2 #calPanel .cal-table:has(.row-cal[data-f="d1"]) .cal-position output {padding:2px;line-height:14px}
.workspace-layout-v2 #calPanel .cal-table:has(.row-cal[data-f="d1"]) .row-size {height:20px;padding:0 16px 0 6px}
/* ППД: формат подачи выбирается отдельно от изготовителя и типа сотрудника. */
.ppd-media{display:flex;align-items:center;gap:6px;margin-top:6px;min-width:0}
.ppd-media>span{font-size:11px;color:#61796f;flex:none}
.ppd-media button{font:600 11px/1.2 system-ui;border:1px solid #b7d2c8;border-radius:7px;background:#fff;color:#31564b;padding:6px 8px;cursor:pointer;min-width:0}
.ppd-media button.active{background:#d9f0e9;border-color:#078477;color:#006d61;box-shadow:inset 0 0 0 1px #078477}
.ppd-media button:focus-visible{outline:2px solid #168dce;outline-offset:2px}
body.ppd-a5 .preview-body{align-items:center}
body.ppd-a5 #previewCanvas{width:100%;height:auto;max-width:100%}
body.ppd-a5 .preview-hint:after{content:' · целый бумажный лист'}

/* Формат ППД находится рядом с изготовителем, в правой части заголовка. */
.workspace-layout-v2 #presetPanel .preset-head{gap:6px}
.workspace-layout-v2 #presetPanel .preset-head .ppd-media{margin:0 0 0 auto;gap:4px;flex:none}
.workspace-layout-v2 #presetPanel .preset-head .ppd-media>span{display:none}
.workspace-layout-v2 #presetPanel .preset-head .ppd-media button{width:76px;min-height:32px;padding:3px 4px;font-size:10px;line-height:12px;white-space:normal}
.workspace-layout-v2 #presetPanel .preset-head .ppd-media button:last-child{width:82px}
.workspace-layout-v2 #presetPanel .preset-head:has(.ppd-media:not([hidden])) .preset-nav{margin-left:0}

/* ППД: выбор состояния бланка до подготовки пробной печати. */
.ppd-media button img,.ppd-media button small{display:none}
.ppd-media button b{font:inherit}
.ppd-format-summary{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid #b8d8cd;border-radius:8px;color:#176255;background:#eff8f4;font-size:12px;font-weight:600;margin-bottom:10px}
#wizBody:has(.ppd-format-summary) .w1-title{margin-top:0}

/* Выбор состояния ППД открывается в центре над основным экраном и мастером. */
#ppdMediaDialog{position:fixed;inset:0;margin:auto;width:1160px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:30px;box-sizing:border-box;border:1px solid #c5dcd5;border-radius:20px;background:#fff;color:#214c44;box-shadow:0 24px 90px #153f3a40;font-family:system-ui,sans-serif}
#ppdMediaDialog::backdrop{background:#173c3666;backdrop-filter:blur(3px)}
#ppdMediaDialog .ppd-media-close{position:absolute;right:16px;top:16px;width:34px;height:34px;padding:0;border:1px solid #dce5e1;border-radius:10px;background:#f7faf8;color:#537168;font-size:24px;line-height:1;cursor:pointer}
#ppdMediaDialog .ppd-media-eyebrow{margin:0 35px 10px 0;font-size:12px;font-weight:650;color:#007f73;letter-spacing:.04em}
#ppdMediaDialog h2{margin:0 20px 10px 0;outline:none;font-size:30px;line-height:1.25}
#ppdMediaDialog #ppdMediaDescription{margin:0 0 22px;font-size:14px;line-height:1.5;color:#637b73}
#ppdMediaDialog .ppd-media-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#ppdMediaDialog [data-ppd-media]{display:flex;flex-direction:column;gap:9px;min-width:0;padding:15px;border:1px solid #cbded7;border-radius:14px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
#ppdMediaDialog.pointer-ready [data-ppd-media]:hover{border-color:#008579;background:#f1faf7;box-shadow:inset 0 0 0 1px #008579}
#ppdMediaDialog button:focus-visible{outline:3px solid #3b9fb5;outline-offset:3px}
#ppdMediaDialog .ppd-media-picture{display:flex;align-items:center;justify-content:center;height:clamp(240px,44vh,400px);width:100%;background:#edf3ef;border-radius:9px}
#ppdMediaDialog .ppd-media-picture img{width:auto;height:auto;max-width:94%;max-height:calc(100% - 24px);object-fit:contain;filter:drop-shadow(0 2px 3px #254f3c12)}
#ppdMediaDialog [data-ppd-media] b{font-size:18px;line-height:1.3}
#ppdMediaDialog [data-ppd-media] small{font-size:12px;line-height:1.4;color:#60796f}
#ppdMediaDialog .ppd-media-choice{display:flex;justify-content:space-between;gap:6px;align-items:center;width:100%;box-sizing:border-box;margin-top:auto;padding-top:10px;color:#007b70;font-size:13px;font-weight:650}
@media(max-width:520px){
  #ppdMediaDialog{padding:24px 18px}
  #ppdMediaDialog h2{font-size:21px}
  #ppdMediaDialog .ppd-media-options{grid-template-columns:1fr}
  #ppdMediaDialog [data-ppd-media]{display:grid;grid-template-columns:104px 1fr;gap:5px 12px;padding:12px}
  #ppdMediaDialog .ppd-media-picture{grid-row:1/4;height:132px}
  #ppdMediaDialog .ppd-media-picture img{max-height:120px}
  #ppdMediaDialog [data-ppd-media] b{font-size:15px}
  #ppdMediaDialog .ppd-media-choice{padding-top:5px}
}

/* Общий отступ доступен независимо от блокировки ручных ползунков. */
.workspace-layout-v2 #calPanel .line-gap-control {order:0;flex:0 0 154px;min-width:0;margin:0 0 0 auto;padding:4px 7px 7px;background:#f3f4f1;border:1px solid #d9ddd8;border-radius:10px;box-sizing:border-box}
.line-gap-control legend {padding:0 3px;margin:0 0 3px;color:var(--muted);font-size:11px;line-height:14px;font-weight:650;white-space:nowrap}
.line-gap-input {display:flex;align-items:center;gap:2px;height:30px;background:#fff;border:1px solid var(--line,#d9ddd8);border-radius:7px;box-sizing:border-box}
.line-gap-input button {flex:none;width:25px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--accent);font-size:17px;cursor:pointer}
.line-gap-input button:hover {background:var(--accent-soft)}
.line-gap-input button:last-child {margin-left:auto}
.workspace-layout-v2 #calPanel .line-gap-input input {width:52px;min-width:0;height:28px;padding:0;border:0;box-shadow:none;background:transparent;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}
.line-gap-input span {font-size:10px;color:var(--muted)}
.line-gap-input input[aria-invalid="true"] {outline:1px solid #bd4233}
.line-gap-dirty {color:#b56b12;margin-left:3px}
.line-gap-control:focus-within {border-color:var(--accent)!important}
.workspace-layout-v2 #calPanel .pp-current-setting {flex:0 0 245px;margin-left:0}
.workspace-layout-v2 #calPanel.has-gap-changes #btnSaveSettings {filter:none;opacity:1;pointer-events:auto;visibility:visible}

/* Масштаб правого предпросмотра не влияет на размеры бланка при печати. */
.preview-zoom-controls {display:inline-flex;align-items:center;flex:none;margin-left:auto;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.preview-zoom-controls button {display:flex;align-items:center;justify-content:center;min-height:28px;width:27px;padding:0;border:0;border-radius:0;background:transparent;color:var(--accent);font-size:15px;cursor:pointer}
.preview-zoom-controls #previewZoomFit {width:48px;border-left:1px solid var(--line);border-right:1px solid var(--line);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
.preview-zoom-controls button:hover {background:var(--accent-soft)}
.preview-zoom-controls button:disabled {opacity:.35;cursor:default}
.preview-zoom-controls button:focus-visible {outline:2px solid var(--accent);outline-offset:-2px}
.workspace-layout-v2 .preview-body.preview-zoom-viewport {overflow:hidden;isolation:isolate;touch-action:none;user-select:none}
.workspace-layout-v2 .preview-zoom-viewport #previewCanvas {position:absolute;left:50%;top:50%;max-width:none;max-height:none;margin:0;transform-origin:center;pointer-events:none}
.preview-zoom-viewport.can-pan {cursor:grab}
.preview-zoom-viewport.is-panning {cursor:grabbing}
.preview-zoom-viewport:focus-visible {outline:2px solid var(--accent);outline-offset:-2px}
.preview-head .preview-title {width:auto;flex:1 1 auto}

/* Выбор формата ППД и двухстрочная подпись не двигают соседние элементы. */
.workspace-layout-v2 #presetPanel .preset-head {min-height:32px;flex-shrink:0}
.workspace-layout-v2 .preview-footer {min-height:51px;box-sizing:border-box;flex-shrink:0}

/* Подпись ЛКР занимает две строки: резервируем их и для коротких подписей. */
.wizard .wiz-body .w0-cap {min-height:3em}

/* Шаг 7: целевой отступ отделён от фактических отметок печати. */
#calibBackdrop .calib7-listcol:has(#calibLineGapControl) {display:grid;grid-template-columns:minmax(0,1fr) 164px;grid-template-rows:auto minmax(0,1fr);column-gap:14px;row-gap:6px}
#calibBackdrop .calib-fields-head {display:contents}
#calibBackdrop .calib-fields-head .calib7-h {grid-column:1;grid-row:1;margin:0}
#calibBackdrop .calib7-listcol:has(#calibLineGapControl) .calib-list {grid-column:1;grid-row:2;min-width:0}
#calibBackdrop .calib-fields-head .line-gap-control {grid-column:2;grid-row:2;align-self:center;min-width:0;box-sizing:border-box;margin:0;padding:12px 10px 10px;border:1px solid #c7ded6;border-radius:11px;background:#fff;box-shadow:0 2px 7px #1b514909}
#calibBackdrop .calib-fields-head .line-gap-control legend {float:none;margin:0 auto;padding:0 4px;font-size:12px;color:#356b5e}
#calibBackdrop .calib-fields-head .line-gap-control::after {content:"Для всех строк";display:block;margin-top:8px;text-align:center;font-size:11px;line-height:1.4;color:var(--muted)}
#calibBackdrop .calib-fields-head .line-gap-input {width:100%;flex:none}
#calibBackdrop .calib-fields-head .line-gap-input input {width:49px;min-width:0;height:28px;padding:0;border:0;box-shadow:none;background:transparent;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}

/* Контакты разработчика: MAX слева от чата, центры кнопок совпадают. */
.workspace-layout-v2 .workspace-owner {display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:4px}
.workspace-owner-person {margin-right:0}
.workspace-owner-details .workspace-owner-hours {margin:3px 0 0;font-size:10px;line-height:14px;white-space:nowrap}
.workspace-owner-person {gap:7px}
.workspace-owner-avatar {width:32px;height:32px;font-size:17px}
.workspace-owner-actions {display:flex;align-items:center;justify-content:center;gap:8px;margin-left:0}
.workspace-owner-actions .workspace-owner-support {margin:0}
/* Мятный тон повторяет карточку разработчика и соседнюю поддержку. */
.btn.workspace-owner-max {
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  width:116px;min-height:54px;flex:none;padding:9px 8px;border-radius:11px;
  border:1px solid #a9d6c8;background:linear-gradient(145deg,#dcf3e9,#eef9f4);
  color:#205f50;font-size:12px;line-height:15px;font-weight:650;
  text-decoration:none;text-align:left;
  box-shadow:inset 0 1px 0 #ffffffc4,0 2px 5px #175b4f0a;
  transition:background .18s,border-color .18s,box-shadow .18s;
}
.workspace-owner-max-icon {
  display:grid;place-items:center;flex:none;width:25px;height:25px;
  border:1px solid #ffffffc7;border-radius:50%;background:#ffffffb3;color:#23745e;
  box-shadow:0 1px 3px #175b4f0a;
}
.workspace-owner-max-icon svg {width:14px;height:14px;flex:none}
.workspace-owner-max-label {display:flex;flex-direction:column;align-items:flex-start;gap:1px;white-space:nowrap}
.workspace-owner-max-label > span {font-size:11px;line-height:14px;font-weight:600}
.workspace-owner-max-label > strong {font-size:12px;line-height:15px;font-weight:750;letter-spacing:.025em}
.btn.workspace-owner-max:hover {
  background:linear-gradient(145deg,#cfeddf,#e5f6ed);border-color:#7fbaa5;
  box-shadow:inset 0 1px 0 #ffffffc4,0 3px 8px #175b4f12;
}
.workspace-owner-max:focus-visible {outline:2px solid var(--accent);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.btn.workspace-owner-max{transition:none}}

/* Пустые макеты доступны рядом с заголовком предпросмотра. */
.preview-title .preview-proofs {flex:none;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:5px 8px;border-radius:8px;font-size:11px;line-height:16px;font-weight:600;white-space:nowrap}
.preview-proofs svg {flex:none}
.preview-proofs:focus-visible {outline:2px solid var(--accent);outline-offset:2px}
