/* Реестр обращений: таблица, фильтры, мультиселект, выезжающая панель */
  /* ── Реестр обращений ── */
  /* карточка-таблица: строка-заголовок (фильтры/добавить) + сама таблица в одной рамке */
  .req-table-card{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:visible;position:relative}
  .req-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px 9px 14px;border-bottom:1px solid var(--line)}
  .req-bar-left{display:flex;align-items:center;gap:8px}
  .req-bar-title{font-size:13px;font-weight:700;color:var(--ink)}
  .req-bar-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:19px;padding:0 6px;
    border-radius:999px;background:#EEF1F6;color:var(--ink-soft);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}
  .req-bar-right{display:flex;align-items:center;gap:8px}
  /* контейнер тела: крест-фейд при подмене таблица↔карточки (плавное сворачивание/разворачивание) */
  #reqTable{transition:opacity .14s ease}
  .req-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}
  .req-table th{text-align:left;font-weight:500;color:#002033;font-size:12px;
    padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fff}
  .req-table td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top}
  .req-table tbody tr{cursor:pointer;transition:background .1s;position:relative}
  .req-table tbody tr:hover{background:#F6F8FC}
  .req-table tbody tr:last-child td{border-bottom:none}
  /* узкие колонки жмутся по содержимому; «Замечание» забирает всю оставшуюся ширину */
  .rc-tight{white-space:nowrap;width:1%}
  /* сортируемая шапка колонки (как в основном продукте) */
  .req-sort-th{cursor:pointer;user-select:none}
  .req-sort-h{display:inline-flex;align-items:center;gap:6px;min-width:0}
  .req-sort-ico{flex:0 0 auto;color:var(--line-2);transition:color .12s}
  .req-sort-ico rect{transition:width .2s ease}
  .req-sort-th:hover .req-sort-ico{color:var(--accent)}
  .req-sort-ico.on{color:var(--brand-navy,#1c2469)}
  .req-sort-th.is-sorted{color:#002033}
  /* кнопка-меню «Сортировка» + список стратегий (работает и в карточном режиме) */
  .req-sort-wrap{position:relative}
  .req-sort-btn-label{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* специфичнее .filter-dropdown (иначе ширина/right перебиваются им): компактное меню, открываем вправо */
  .filter-dropdown.sort-menu{width:280px;max-width:280px;padding:6px;right:auto;left:0}
  .sort-menu__list{display:flex;flex-direction:column;gap:2px}
  .sort-menu__item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;
    padding:8px 10px;border:none;background:none;border-radius:9px;cursor:pointer;
    font-family:inherit;font-size:13px;color:var(--ink);transition:background .1s}
  .sort-menu__item:hover{background:#F6F8FC}
  .sort-menu__item.on{color:var(--brand-navy,#1c2469);font-weight:600}
  .sort-menu__check{flex:0 0 16px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent)}
  .sort-menu__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .req-type-cell{color:var(--ink-soft);font-size:12px}
  .req-defect{font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .req-comment{color:var(--ink);font-size:12.5px;min-width:260px;line-height:1.45}
  /* обрезку держим на внутреннем div: -webkit-box на самом td ломает collapsed-границу строки */
  .req-comment-clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .rc-disc{width:1%;text-align:center;color:var(--line-2)}
  .req-dash{color:var(--line-2)}
  .req-link{text-decoration:none;color:var(--accent);font-weight:700}
  /* колонка «Ссылки»: только пиктограммы, по центру, открываются в новой вкладке */
  .rc-link-h{color:var(--line-2);text-align:center}
  .rc-link-cell{text-align:center}
  .rc-link-cell .req-link{display:inline-flex;align-items:center;vertical-align:middle}
  .rc-link-cell .req-link+.req-link{margin-left:6px}
  /* крестик удаления — вынесен правее таблицы, появляется на ховере строки, места в потоке не занимает */
  .req-del-cell{padding:0;width:0;border:none!important}
  .req-del{position:absolute;right:-28px;top:50%;transform:translateY(-50%);border:none;background:none;
    color:var(--ink-faint);cursor:pointer;font-size:13px;line-height:1;padding:4px 6px;border-radius:6px;opacity:0;transition:opacity .12s}
  .req-table tbody tr:hover .req-del{opacity:1}
  .req-del:hover{background:#FDECEC;color:#D4503E}
  .req-nowrap{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-soft)}
  .req-disc{display:inline-flex;align-items:center;gap:2px;color:var(--line-2);cursor:default;justify-content:center}
  .req-disc i{font-style:normal;font-size:10.5px;font-weight:700}
  .req-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin-bottom:12px}
  .reqf{display:flex;flex-direction:column;gap:4px}
  .reqf>span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);font-weight:700}
  .reqf select,.reqf input{font-family:inherit;font-size:13px;height:32px;box-sizing:border-box;border:1px solid rgba(0,32,51,.28);border-radius:8px;padding:0 10px;color:#002033;outline:none;background:#fff;transition:border-color .15s ease}
  .reqf select:hover,.reqf input:hover{border-color:rgba(61,76,212,.5)}
  .reqf select:focus,.reqf input:focus{border-color:#3D4CD4}
  .reqf-search{flex:1;min-width:200px}
  .reqf-search input{width:100%;box-sizing:border-box}
  .req-modal{width:640px}
  .req-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}
  .mini.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
  .rf-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;margin:8px 0 8px}
  .rf-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
  .rf{display:flex;flex-direction:column;gap:4px;position:relative}
  .rf.rf-wide{grid-column:1 / -1}
  .rf>span{font-size:11.5px;color:var(--ink-soft);font-weight:600}
  .rf-req>span::after{content:" *";color:#D4503E}
  .rf input.rf-disabled,.rf input:disabled{background:#F4F5F7;color:var(--ink-faint);cursor:not-allowed}
  .rf input,.rf select,.rf textarea{font-family:inherit;font-size:13px;border:1px solid var(--line-2);border-radius:9px;padding:7px 10px;color:var(--ink);outline:none;background:#fff;width:100%;box-sizing:border-box}
  .rf select{appearance:none;-webkit-appearance:none;font-weight:600;cursor:pointer;padding-right:30px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236C7480' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat:no-repeat;background-position:right 10px center}
  .rf input:focus,.rf select:focus,.rf textarea:focus{border-color:var(--accent)}
  .rf input.rf-missing,.rf select.rf-missing,.rf textarea.rf-missing{border-color:#D4503E;background:#FDF3F1}
  .rf textarea{resize:vertical}
  .rf-hint{font-size:10.5px;color:var(--ink-faint)}
  /* «как проверяется» у выбранного дефекта (из базы правил клиники) */
  .rf-check{margin-top:6px;font-size:11.5px;line-height:1.45;color:var(--ink-soft);background:#F4F7FF;
    border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:7px 10px;display:none}
  .rf-check.on{display:block}
  .rf-check b{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}
  .rp-key>.rf-check{grid-column:1 / -1}     /* блок «как проверяется» — во всю ширину формы */
  /* шапка-переключатель: шеврон + подпись, справа — стрелка-переход (новая вкладка) */
  .rf-check__head{display:flex;align-items:center;gap:7px;cursor:pointer;user-select:none}
  .rf-check__head .rf-check-go{margin-left:2px}
  .rf-check__chev{flex:none;display:inline-flex;width:12px;height:12px;color:var(--ink-faint);transform:rotate(-90deg);transition:transform .15s}
  .rf-check__chev svg{width:12px;height:12px}
  .rf-check.open .rf-check__chev{transform:rotate(0)}
  /* тело — скрыто по умолчанию, раскрывается по клику на шапку */
  .rf-check__wrap{display:none;margin-top:6px}
  .rf-check.open .rf-check__wrap{display:block}
  /* тело правила «как проверяется» — сохраняем переносы строк и переносим длинные слова/ссылки */
  .rf-check__body{white-space:pre-wrap;word-break:break-word}
  .rf-check-empty{color:var(--ink-faint);font-style:italic}
  /* стрелка-переход к дефекту в каталоге — иконка без подписи, открывает новую вкладку */
  .rf-check-go{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;
    border-radius:5px;border:1px solid var(--line-2);background:#fff;color:var(--accent);
    font-size:12px;font-weight:700;line-height:1;text-decoration:none;cursor:pointer}
  .rf-check-go:hover{background:var(--accent-soft);border-color:var(--accent)}
  .rf-drop{position:absolute;top:100%;left:0;right:0;z-index:5;background:#fff;border:1px solid var(--line-2);border-radius:9px;
    box-shadow:0 14px 30px -12px rgba(16,24,40,.3);max-height:240px;overflow:auto;display:none;margin-top:3px}
  .rf-drop.on{display:block}
  .rf-opt{padding:7px 10px;cursor:pointer;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:1px}
  .rf-opt:last-child{border-bottom:none}
  .rf-opt:hover{background:#F2F6FF}
  .rf-opt b{font-size:12.5px;font-weight:600;color:var(--ink)}
  .rf-opt span{font-size:11px;color:var(--ink-faint)}
  /* подсветка совпавших ключевых слов в названии дефекта */
  .rf-hl{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 1px}
  .rf-details{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
  .rf-details summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--accent);margin-bottom:10px;user-select:none}
  .rf input.rf-missing{border-color:#D4503E;background:#FDF3F1}

  /* ── статус-плашка в таблице ── */
  .status-pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;
    background:#EEF1F6;color:var(--ink-soft);white-space:nowrap}
  .status-pill.sp-open{background:#EAF2FF;color:#1E5FBF}
  .status-pill.sp-review{background:#F1ECFB;color:#6A3FB0}
  .status-pill.sp-discuss{background:#FFF1DA;color:#A86400}
  .status-pill.sp-work{background:#E2F4F0;color:#0E8169}
  .status-pill.sp-later{background:#EDF0F4;color:#5B6B7B}
  .status-pill.sp-ok{background:#E7F6EC;color:#1E7D43}
  .status-pill.sp-no{background:#FBE9E7;color:#B23A2B}
  .req-disc.on{color:var(--accent);font-weight:700;cursor:default}
  .req-disc.on i{font-style:normal;font-size:10.5px;margin-left:1px}
  /* непрочитанное обсуждение: иконка чата перекрашивается + точка-уведомление */
  .req-disc.unread{color:#E5484D;position:relative}
  /* точку-уведомление сажаем на верх-правый угол ИКОНКИ (иконка 15px от левого края),
     а не на правый край блока — иначе кружок наезжает на число с кол-вом сообщений */
  .req-disc.unread::after{content:"";position:absolute;top:-2px;left:8px;right:auto;width:7px;height:7px;border-radius:50%;background:#E5484D;border:1.5px solid #fff}
  .req-row-active>td{background:#EEF3FF!important}
  .req-row-active>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}

  /* ── выпадашка реестра в хедере рядом с заголовком ── */
  .topbar-reg{display:inline-flex;align-items:center}
  .topbar-reg .reg-cfg{margin-left:6px;border:1px solid var(--line-2);background:#fff;color:var(--ink-soft);
    font-size:14px;line-height:1;cursor:pointer;border-radius:8px;padding:6px 9px;transition:all .15s}
  .topbar-reg .reg-cfg:hover{border-color:var(--accent);color:var(--accent)}
  .topbar-reg .reg-clone{font-size:12.5px;font-weight:600;padding:6px 11px;white-space:nowrap}
  .topbar-reg #reqSetSelect,.topbar-reg #setSelect{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:13px;font-weight:600;
    border:1px solid var(--line-2);border-radius:9px;padding:6px 28px 6px 11px;background:#fff;color:var(--ink);outline:none;cursor:pointer;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236C7480' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat:no-repeat;background-position:right 9px center}
  .topbar-reg #reqSetSelect:focus,.topbar-reg #setSelect:focus{border-color:var(--accent)}

  /* ── фильтр (попап) + добавить — внутри строки-заголовка таблицы ── */
  .req-add-btn{flex:0 0 auto}
  /* обёртка кнопки НЕ позиционирована: попап якорится к .req-bar (правый край блока обращений) */
  .req-filter-wrap{position:static}
  /* ── фильтр-дропдаун в стиле основного продукта (filter-dropdown) ── */
  .filter-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:640px;max-width:calc(100vw - 32px);
    background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 36px -14px rgba(16,24,40,.26);
    display:none;flex-direction:column;overflow:visible}
  .filter-dropdown.on{display:flex}
  .filter-dropdown__body{padding:16px;display:flex;flex-direction:column;gap:13px;overflow:visible}
  .filter-dropdown__fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px 14px}
  .filter-dropdown__field{display:flex;flex-direction:column;gap:6px;min-width:0}
  .filter-dropdown__field--full{grid-column:1 / -1}
  .filter-dropdown__field-label{font-size:10.5px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}
  /* select--s select--rounded поверх нативного <select> */
  .filter-dropdown .select{position:relative;display:block}
  .filter-dropdown .select select{appearance:none;-webkit-appearance:none;width:100%;font-family:inherit;font-size:13px;
    color:var(--ink);border:1px solid var(--line-2);border-radius:9px;background:#fff;padding:8px 30px 8px 11px;
    cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}
  .filter-dropdown .select select:hover{border-color:#C7CCD6}
  .filter-dropdown .select select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .filter-dropdown .select__arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-faint)}
  .filter-dropdown .text-field__control{width:100%;font-family:inherit;font-size:13px;color:var(--ink);box-sizing:border-box;
    border:1px solid var(--line-2);border-radius:9px;background:#fff;padding:8px 11px;outline:none;transition:border-color .15s,box-shadow .15s}
  .filter-dropdown .text-field__control:hover{border-color:#C7CCD6}
  .filter-dropdown .text-field__control:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .filter-dropdown .text-field__control::placeholder{color:var(--ink-faint)}
  .filter-dropdown__footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;
    border-top:1px solid var(--line);background:#FAFBFC;border-radius:0 0 14px 14px}
  .ms-reset{border:none;background:transparent;color:var(--accent);font-family:inherit;font-size:12.5px;font-weight:600;
    cursor:pointer;padding:6px 8px;border-radius:7px;transition:background .15s}
  .ms-reset:hover{background:var(--accent-soft)}
  .ms-reset:disabled{color:var(--ink-faint);cursor:default;background:transparent}
  .ms-done{border:1px solid var(--line-2);background:#fff;color:var(--ink-soft);font-family:inherit;font-size:12.5px;
    font-weight:600;cursor:pointer;padding:7px 16px;border-radius:8px;transition:all .15s}
  .ms-done:hover{border-color:var(--accent);color:var(--accent)}
  /* ── мультиселект-комбобокс (чекбоксы + чипы, как в основном продукте) ── */
  .ms{position:relative}
  .ms__control{display:flex;align-items:center;gap:6px;min-height:36px;padding:4px 8px 4px 9px;border:1px solid var(--line-2);
    border-radius:9px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}
  .ms__control:hover{border-color:#C7CCD6}
  .ms.open .ms__control{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .ms__chips{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
  .ms__ph{color:var(--ink-faint);font-size:13px}
  .ms__chip{display:inline-flex;align-items:center;gap:2px;max-width:100%;background:var(--accent-soft);color:var(--accent);
    font-size:12px;font-weight:600;border-radius:6px;padding:2px 3px 2px 7px;line-height:1.35}
  .ms__chip-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
  .ms__x{flex:0 0 auto;border:none;background:transparent;color:var(--accent);font-size:14px;line-height:1;cursor:pointer;
    padding:0 3px;border-radius:4px;font-family:inherit}
  .ms__x:hover{background:rgba(47,98,230,.16)}
  .ms__arrow{flex:0 0 auto;color:var(--ink-faint);transition:transform .15s,color .15s}
  .ms.open .ms__arrow{transform:rotate(180deg);color:var(--accent)}
  .ms__menu{display:none;position:absolute;left:0;right:auto;top:calc(100% + 5px);z-index:40;min-width:100%;width:max-content;
    max-width:320px;border:1px solid var(--line-2);border-radius:10px;background:#fff;box-shadow:0 14px 30px -10px rgba(16,24,40,.30);
    max-height:260px;overflow:auto;padding:4px}
  .ms.open .ms__menu{display:block}
  .ms.open{z-index:41}
  .ms__opt{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--ink)}
  .ms__opt:hover{background:var(--accent-soft)}
  .ms__box{flex:0 0 auto;width:17px;height:17px;border:1.5px solid var(--line-2);border-radius:5px;background:#fff;
    display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}
  .ms__opt.is-checked .ms__box{background:var(--accent);border-color:var(--accent)}
  .ms__opt.is-checked .ms__box::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;
    transform:rotate(-45deg) translateY(-1px)}
  .ms__txt{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ms__empty{padding:9px 10px;font-size:12.5px;color:var(--ink-faint)}

  /* ── бабл значимости ── */
  .imp-pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;
    background:#EEF1F6;color:var(--ink-soft)}
  .imp-pill.imp-hi{background:#FBE9E7;color:#B23A2B}
  .imp-pill.imp-mid{background:#FFF3E0;color:#B26A00}
  .imp-pill.imp-low{background:#E7F1FF;color:#2B5FB2}
  .imp-pill.imp-final i{font-style:normal;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;opacity:.65;margin-right:4px}

  /* ── чипы реестра в стиле основного продукта (QRS pill): только внутри таблицы/карточек реестра ── */
  .req-table-card .imp-pill,
  .req-table-card .status-pill,
  .req-cards .imp-pill,
  .req-cards .status-pill{
    display:inline-flex;align-items:center;font-size:12px;font-weight:400;line-height:1;
    padding:4px 8px;border-radius:12px;border:1px solid;white-space:nowrap}
  /* значимость: высокая→danger, средняя→warn, низкая→navy */
  .req-table-card .imp-pill, .req-cards .imp-pill{background:rgb(243,244,246);border-color:rgba(0,0,0,.12);color:rgb(55,65,81)}
  .req-table-card .imp-pill.imp-hi, .req-cards .imp-pill.imp-hi{background:rgb(254,230,232);border-color:rgba(118,23,1,.2);color:rgb(118,23,1)}
  .req-table-card .imp-pill.imp-mid, .req-cards .imp-pill.imp-mid{background:rgb(255,249,196);border-color:rgba(118,96,1,.2);color:rgb(118,96,1)}
  .req-table-card .imp-pill.imp-low, .req-cards .imp-pill.imp-low{background:rgb(224,237,255);border-color:rgba(28,36,105,.2);color:#1c2469}
  /* статус: каждый — свой оттенок; ok→success, no→danger, прочее не сливается в серое */
  .req-table-card .status-pill, .req-cards .status-pill{background:rgb(243,244,246);border-color:rgba(0,0,0,.12);color:rgb(55,65,81)}
  .req-table-card .status-pill.sp-open, .req-cards .status-pill.sp-open{background:rgb(231,240,255);border-color:rgba(28,72,150,.2);color:rgb(28,72,150)}
  .req-table-card .status-pill.sp-review, .req-cards .status-pill.sp-review{background:rgb(238,231,250);border-color:rgba(83,42,140,.2);color:rgb(83,42,140)}
  .req-table-card .status-pill.sp-discuss, .req-cards .status-pill.sp-discuss{background:rgb(255,240,214);border-color:rgba(130,78,1,.2);color:rgb(130,78,1)}
  .req-table-card .status-pill.sp-work, .req-cards .status-pill.sp-work{background:rgb(214,242,236);border-color:rgba(1,100,80,.2);color:rgb(1,100,80)}
  .req-table-card .status-pill.sp-later, .req-cards .status-pill.sp-later{background:rgb(232,237,242);border-color:rgba(60,75,90,.2);color:rgb(70,85,100)}
  .req-table-card .status-pill.sp-ok, .req-cards .status-pill.sp-ok{background:rgb(224,247,224);border-color:rgba(1,118,1,.2);color:rgb(1,118,1)}
  .req-table-card .status-pill.sp-no, .req-cards .status-pill.sp-no{background:rgb(254,230,232);border-color:rgba(118,23,1,.2);color:rgb(118,23,1)}

  /* ── компактные карточки (правый блок открыт) ── */
  .req-cards{display:flex;flex-direction:column;gap:8px;padding:10px}
  .req-card{border:1px solid var(--line);border-radius:11px;padding:11px 13px;cursor:pointer;background:#fff;
    transition:border-color .15s ease, box-shadow .15s ease}
  .req-card:hover{border-color:var(--line-2)}
  .req-card.req-row-active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
  /* активная карточка закреплена в скролле: вниз — липнет к верху, вверх — к низу (всегда видна) */
  .req-cards .req-card.req-row-active{position:sticky;top:0;bottom:0;z-index:3;
    box-shadow:inset 3px 0 0 var(--accent), 0 8px 20px -10px rgba(16,24,40,.45)}
  .req-card-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .req-card-spacer{flex:1}
  .req-card-clinic{font-size:11px;font-weight:700;color:var(--ink-faint);background:#EEF1F6;border-radius:6px;
    padding:2px 8px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .req-card-date{font-size:11.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap}
  .req-card-comment{font-size:13.5px;line-height:1.5;color:var(--ink);white-space:pre-wrap;word-break:break-word}
  .req-card-defect{margin-top:8px;font-size:12px;color:var(--ink-soft);background:#F7F9FB;border:1px solid var(--line);
    border-radius:8px;padding:6px 9px;display:flex;align-items:center;gap:6px}
  .req-link{display:inline-flex;align-items:center;vertical-align:middle}
  .req-link svg{display:block}

  /* ── выезжающая панель (Notion-style) ── */
  /* в реестре таблица во всю ширину; при открытой панели лимит .content тоже снят */
  .content:has(#view-requests.active){max-width:none}
  .req-layout{display:flex;gap:10px;align-items:flex-start}
  /* правый отступ — «карман» для вынесенного за таблицу крестика удаления */
  /* ширина едет по ease-out (как в нативных панелях), will-change снимает дёрганье первого кадра */
  /* basis НЕ должен стартовать с auto — auto не интерполируется и левая колонка щёлкает.
     Держим grow/shrink=0 в обоих состояниях, чтобы анимировался только flex-basis:
     закрыто calc(100% - 10px) (полная ширина минус gap) → открыто 40%. */
  .req-main{flex:0 0 calc(100% - 10px);min-width:0;padding-right:30px;box-sizing:border-box;
    will-change:flex-basis;transition:flex-basis .28s cubic-bezier(.4,0,.2,1)}
  .req-panel{flex:0 0 0;min-width:0;overflow:hidden;opacity:0;will-change:flex-basis,opacity;
    transition:flex-basis .28s cubic-bezier(.4,0,.2,1), opacity .22s ease}
  /* В детализации обе половины закреплены под топбаром на ОДНОЙ линии (top:86px = высота
     топбара 60 + паддинг контента 26), и каждая скроллится ВНУТРИ себя. Так верхние
     границы не плывут друг относительно друга, а шапки (заголовок+фильтры слева,
     название клиники+табы справа) не уезжают вверх при скролле списка.
     max-height = 100vh − (верхний оффсет 86 + нижний паддинг контента 26): иначе колонки
     на 8px выше вьюпорта, страница чуть прокручивается, и высокая левая колонка (без запаса)
     уезжает вверх относительно более низкой панели — их верхние границы расходятся. */
  /* в режиме карточек крестика удаления нет — убираем «карман» (padding-right:30px из базы),
     чтобы список не отстоял так далеко от панели обращения */
  .req-layout.panel-open .req-main{flex:0 0 40%;position:sticky;top:86px;align-self:flex-start;
    padding-right:8px;max-height:calc(100vh - 112px);display:flex;flex-direction:column}
  .req-layout.panel-open .req-table-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .req-layout.panel-open .req-bar{flex:0 0 auto}
  .req-layout.panel-open #reqTable{overflow:auto;min-height:0;flex:1 1 auto}
  .req-layout.panel-open .req-panel{flex:0 0 calc(60% - 10px);overflow:visible;opacity:1;
    border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 18px 40px -22px rgba(16,24,40,.35);
    position:sticky;top:86px;align-self:flex-start;max-height:calc(100vh - 112px);display:flex;flex-direction:column}
  /* при открытой панели слева идут компактные карточки (см. .req-cards), таблица скрыта */

  .rp-head{padding:16px 18px 0;border-bottom:1px solid var(--line)}
  .rp-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
  .rp-title{font-size:15px;font-weight:700;color:var(--ink)}
  .rp-head-actions{display:flex;align-items:center;gap:10px}
  .rp-collapse{border:none;background:none;line-height:0;color:var(--ink-faint);cursor:pointer;padding:5px;border-radius:7px}
  .rp-collapse:hover{background:#F1F3F7;color:var(--ink)}
  /* кнопка сохранения: бледная/неактивная пока нет изменений, акцентная — когда есть */
  .rp-save{border:1px solid var(--line-2);background:#fff;color:var(--ink-faint);font-family:inherit;font-size:12px;
    font-weight:700;cursor:not-allowed;padding:6px 14px;border-radius:9px;transition:all .15s ease;
    min-width:112px;box-sizing:border-box;text-align:center}
  .rp-save.on{background:var(--accent);border-color:var(--accent);color:#fff;cursor:pointer;box-shadow:0 6px 16px -8px rgba(58,90,255,.6)}
  .rp-save.on:hover{filter:brightness(1.05)}
  /* «Удалить» в ряду табов — прижата к правому краю, в стиле таба, но danger */
  .rp-tab-del{margin-left:auto;color:#B23A2B}
  .rp-tab-del:hover{color:#B23A2B;background:#FBE9E7;border-radius:7px 7px 0 0}
  /* статус справа сверху — той же ширины/формы, что и кнопка «Сохранить», чтобы шапка читалась парой */
  .rp-status .status-pill{font-size:12px;padding:6px 14px;border-radius:9px;min-width:112px;box-sizing:border-box;
    display:inline-flex;align-items:center;justify-content:center;text-align:center}
  /* статус — редактируемый select для Панацеи, в стиле обычных селектов формы */
  .rp-status .status-sel{appearance:none;-webkit-appearance:none;cursor:pointer;height:32px;box-sizing:border-box;
    font-family:inherit;font-size:13px;font-weight:600;color:var(--ink);border:1px solid var(--line-2);
    border-radius:9px;background:#fff;padding:0 30px 0 12px;min-width:150px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236C7480' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat:no-repeat;background-position:right 10px center}
  .rp-status .status-sel:focus{outline:none;border-color:var(--accent)}
  .rp-key{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding-bottom:14px}
  .rp-key .rf.rf-wide{grid-column:1 / -1}
  .rp-row3{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 14px}
  .rp-row2{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
  /* дефект (слева, шире) + специальность (справа) на одном уровне; align-items:start —
     блок «как проверяется» растёт под дефектом и не двигает селектор специальности.
     3 равные дорожки (дефект занимает 2): так специальность совпадает по ширине и
     краям со «Значимостью/итоговой» в .rp-row3 выше, а не оказывается чуть шире из-за
     разного числа промежутков. */
  .rp-defrow{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 14px;align-items:start}
  .rp-defrow > #rf_defect_wrap{grid-column:1 / 3;min-width:0}
  .rp-title-clinic{font-weight:600;color:var(--ink-faint)}
  /* мета-строка в шапке: дата создания + автор */
  .rp-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:-4px 0 12px;font-size:12px;color:var(--ink-faint)}
  .rp-meta b{font-weight:600;color:var(--ink-soft)}
  /* ссылки на протокол — облако тегов */
  .rf-links-cloud{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:2px 0}
  .rf-links-cloud.rf-missing{outline:1px solid #D4503E;outline-offset:4px;border-radius:8px}
  .rf-link-chip{display:inline-flex;align-items:center;gap:2px;background:#F4F7FF;border:1px solid var(--line-2);
    border-radius:999px;padding:3px 4px 3px 11px;max-width:100%}
  .rf-link-chip .rf-link-go{font-size:12.5px;color:var(--accent);text-decoration:none;max-width:240px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rf-link-chip .rf-link-go:hover{text-decoration:underline}
  .rf-link-ed,.rf-link-rm{border:none;background:none;cursor:pointer;font-size:11px;line-height:1;color:var(--ink-faint);
    padding:3px 5px;border-radius:999px;flex:0 0 auto}
  .rf-link-ed:hover{background:#E4ECFF;color:var(--accent)}
  .rf-link-rm:hover{background:#FDECEC;color:#D4503E}
  .rf-link-chip.editing{padding:2px 4px}
  .rf-link-edit-inp{font-family:inherit;font-size:12.5px;border:none;outline:none;background:transparent;min-width:160px}
  .rf-link-new{font-family:inherit;font-size:12.5px;border:1px dashed var(--line-2);border-radius:999px;
    padding:4px 12px;outline:none;min-width:120px;flex:1 1 120px}
  .rf-link-new:focus{border-color:var(--accent);border-style:solid}
  /* инфо-окно «тот же протокол в других обращениях» */
  .rf-proto[hidden]{display:none}
  .rf-proto{background:#F6F8FC;border:1px solid var(--line);border-radius:11px;padding:10px 12px;gap:8px}
  .rf-proto__label{font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
  .rf-proto__list{display:flex;flex-direction:column;gap:6px}
  .rf-proto-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
    background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:8px 10px;font-family:inherit;
    color:var(--ink);transition:border-color .12s,background .12s}
  .rf-proto-item:hover{border-color:var(--accent);background:#F4F7FF}
  .rf-proto-item__main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
  .rf-proto-item__defect{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rf-proto-item__meta{font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rf-proto-item svg{flex:0 0 auto;color:var(--ink-faint)}
  .rf-proto-item:hover svg{color:var(--accent)}
  .rp-tabs{display:flex;gap:4px;position:relative}
  .rp-tab{border:none;background:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--tab-idle);
    cursor:pointer;padding:9px 12px;border-bottom:2px solid transparent;margin-bottom:-1px}
  .rp-tab:hover{color:var(--tab-hover)}
  .rp-tab.active{color:var(--tab-active)}
  .rp-tabbody{padding:16px 18px;overflow:auto;flex:1 1 auto;min-height:0}
  .rp-placeholder{color:var(--ink-faint);font-size:12.5px;padding:18px 4px;text-align:center}
  .rp-hist{display:flex;flex-direction:column;gap:2px}
  .rp-hist .hist-line{font-size:12.5px;color:var(--ink);padding:1px 0}
  .rp-hist .hist-line b{font-weight:600}
  .rp-pgroup{margin-bottom:16px}
  .rp-pgroup-h{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;margin-bottom:8px}
  .rp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}
  .rp-grid .rf.rf-wide{grid-column:1 / -1}

  /* чат обсуждения */
  .rp-chat{display:flex;flex-direction:column;gap:10px}
  .rp-bubbles{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto}
  .rp-bubble{border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:#FAFBFC}
  .rp-bubble-h{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-faint);margin-bottom:3px}
  .rp-bubble-h b{font-size:11.5px;color:var(--ink-soft)}
  .rp-bubble-del{margin-left:auto;border:none;background:none;color:var(--line-2);cursor:pointer;font-size:11px;padding:0 4px;border-radius:5px}
  .rp-bubble-del:hover{background:#FDECEC;color:#D4503E}
  .rp-bubble-b{font-size:13px;color:var(--ink);white-space:pre-wrap;word-break:break-word}
  .rp-chat-input{display:flex;gap:8px}
  .rp-chat-input input{flex:1;font-family:inherit;font-size:13px;border:1px solid var(--line-2);border-radius:9px;padding:8px 11px;outline:none}
  .rp-chat-input input:focus{border-color:var(--accent)}

  /* ── обсуждение: сворачиваемый блок внизу панели (вместо вкладки) ── */
  .rp-discuss{flex:0 0 auto;border-top:1px solid var(--line);background:#fff;border-radius:0 0 14px 14px}
  .rp-discuss-h{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;cursor:pointer;
    font-family:inherit;font-size:12.5px;font-weight:700;color:var(--ink-soft);padding:12px 18px;text-align:left}
  .rp-discuss-h:hover{color:var(--ink)}
  .rp-discuss-h svg{flex:0 0 auto;color:var(--ink-faint);transition:transform .18s ease}
  .rp-discuss.open .rp-discuss-h svg{transform:rotate(90deg)}
  .rp-discuss-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;
    padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;line-height:1}
  .rp-discuss-body{padding:0 18px 16px}
  .rp-discuss-body[hidden]{display:none}
  .rp-discuss-body .rp-bubbles{max-height:34vh}
