/* Публичные стили / каркас */
#uso-calc-app {
  border: 1px solid #e5e5e5;
  padding: 16px;
  border-radius: 8px;
  background: #fff;
  color: #1f2328;
}
#uso-calc-app h3 { margin-top: 0; }

/* Варианты (вкладки) */
.variants { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.variants .variants-bar { display:flex; gap:6px; flex-wrap:wrap; }
.variants .tab {
  padding:4px 8px; border:1px solid #ccc; border-radius:6px; cursor:pointer; background:#f8f8f8;
}
.variants .tab.active { background:#2271b1; color:#fff; border-color:#1b5f99; }

/* Шаг ввода */
.uso-step { display:grid; gap:8px; grid-template-columns:1fr 1fr 1fr; }
@media (max-width:720px){ .uso-step { grid-template-columns: 1fr; } }

/* Холст и контейнер */
.uso-canvas-wrap { margin: 12px 0; position: relative; }
#uso-canvas {
  width: 100%;
  border: 1px dashed #ccc;
  background: #fdfdfd;
  touch-action: none;
}
.hint { font-size: 12px; color: #666; margin-top: 6px; }

/* Кнопки и инструменты */
.img-tools { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:8px; background:transparent !important; }
.img-tools .spacer { flex:1 1 auto; min-width:8px; }
.primary { background:#2271b1; color:#fff; border:1px solid #1b5f99; }
.danger-btn { border:1px solid #ccc; padding:6px 10px; background:#fff; border-radius:4px; cursor:pointer; }
.danger-btn.active, .danger-btn:focus { background:#c0392b; color:#fff; border-color:#962d22; }

/* Панели опций */
.uso-opts { display:grid; gap:12px; }
.uso-section { border:1px solid #e5e5e5; border-radius:8px; padding:10px; }
.uso-section h4 { margin:0 0 6px; }
.preinfo { font-size:13px; color:#444; margin-bottom:6px; }

/* Палитра */
.uso-export { margin: 8px 0; background: transparent !important; }
.palette.unified {
  display:flex; gap:6px; align-items:center; flex-wrap:wrap;
  background: rgba(13,71,161,0.08); border-radius: 8px; padding: 6px 8px;
}

/* Кнопки управления */
#mark-toggle, #uso-undo, #uso-exit-fs, #uso-del {
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border:1px solid #ccc; background:#fff !important;
  border-radius:8px; cursor:pointer; font-size:0; line-height:0; color:#1f2328 !important;
}
#mark-toggle:hover, #uso-undo:hover, #uso-exit-fs:hover, #uso-del:hover { background:#f7f7f7 !important; }
#mark-toggle:active, #uso-undo:active, #uso-exit-fs:active, #uso-del:active { background:#efefef !important; }
#mark-toggle::before { content:'✎'; font-size:16px; line-height:1; font-weight:700; }
#uso-undo::before { content:'↶'; font-size:18px; line-height:1; }
#uso-exit-fs::before { content:'⤢'; font-size:16px; line-height:1; }
#uso-del::before { content:'⌦'; font-size:16px; line-height:1; }
#uso-undo[disabled], #uso-del[disabled] { opacity:.4; cursor:not-allowed; }

/* Формы */
.shape-btn { border:1px solid #ccc; padding:6px 10px; background:#fff; cursor:pointer; border-radius:4px;
  font-size:16px; min-width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; }

/* Текст на кнопках фигур — всегда тёмный (в т.ч. активная) */
.palette .shape-btn { color:#1f2328 !important; }
.shape-btn.active { background:#2271b1; color:#1f2328 !important; border-color:#1b5f99; }
.shape-btn:disabled { opacity:.5; cursor:not-allowed; }

/* Цвета */
.palette .row.colors { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.colors .color-btn { width:24px; height:24px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px #aaa; outline:none; cursor:pointer; }
.colors .color-btn[data-color="blue"]{background:#0d47a1 !important;}
.colors .color-btn[data-color="ltblue"]{background:#8fd6ff !important;}
.colors .color-btn[data-color="white"]{background:#fff !important;}
.colors .color-btn[data-color="violet"]{background:#8d59b6 !important;}
.colors .color-btn[data-color="black"]{background:#000 !important;}
.colors .color-btn[data-color="yellow"]{background:#f1c40f !important;}
.colors .color-btn[data-color="green"]{background:#27ae60 !important;}
.colors .color-btn[data-color="red"]{background:#e74c3c !important;}
.colors .color-btn.active { box-shadow:0 0 0 2px #2271b1; }

/* Слайдеры панели */
.panel-controls { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-left:auto; }
.mini-label { font-size:12px; color:#555; margin-right:4px; }
.size-controls { display:flex; gap:10px; align-items:center; }
.size-controls input[type="range"] { width:110px; height:4px; accent-color:#2271b1; }

/* Экспорт/отправка */
.uso-grid4 { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:8px; }
.uso-grid4 .card { border:1px solid #ddd; padding:8px; border-radius:6px; background:#fff; color:#1f2328; }

/* Сворачиваемые блоки — прозрачный фиолетовый */
#uso-calc-app details, #uso-calc-app summary { background:transparent !important; color:#1f2328; }
details.uso-actions-collapsed {
  border:1px solid rgba(141,89,182,0.35);
  border-radius:6px;
  padding:6px 8px;
  background: rgba(141,89,182,0.08) !important;
}
details.uso-actions-collapsed summary {
  color:#8d59b6;
  font-weight:600;
}

/* Ссылки и кнопки */
#uso-calc-app a { color:#2271b1; text-decoration:none; } #uso-calc-app a:hover { text-decoration:underline; }
#uso-calc-app button, #uso-calc-app .button, #uso-calc-app .import-label { color:#1f2328; text-shadow:none; opacity:1; }
#uso-calc-app .primary, #uso-calc-app .shape-btn.active { background:#2271b1 !important; border-color:#1b5f99 !important; }

/* Рабочее пространство: палитра всегда под контейнером (и на десктопе тоже) */
.uso-workspace { display:block; }
@media (min-width:1024px){
  .uso-workspace { display:block; }
  .uso-export { position:static; margin:12px 0 0; }
  .palette.unified { width:100%; justify-content:flex-start; }
}

/* Мобильная (<1024px): палитра снизу блоком */
@media (max-width:1023.98px){
  #uso-palette-panel { position:static !important; transform:none !important; width:100% !important; border-left:0 !important; z-index:auto !important; padding:0; }
}

/* === Полноэкранный режим === */
#uso-canvas-container:fullscreen,
#uso-canvas-container:-webkit-full-screen {
  width: 100vw !important;
  height: 100vh !important;
  max-width: 100vw !important;
  max-height: 100vh !important;
  overflow: auto !important;
}
/* Псевдо-ФС iOS */
body.uso-fs-active { overflow:hidden; }
body.uso-fs-active #uso-canvas-container{
  position:fixed !important; inset:0 !important; width:100vw !important; height:100dvh !important;
  margin:0 !important; background:#fff; z-index:9999; border-radius:0;
  overflow:auto !important;
}

/* Палитра поверх в FS (сиблинговый вариант) */
#uso-canvas-container:fullscreen ~ .uso-export,
#uso-canvas-container:-webkit-full-screen ~ .uso-export {
  position: fixed; top: 8px; left: 8px; background: transparent !important;
  border: 1px solid rgba(0,0,0,0.1); border-radius: 8px; padding: 6px 8px; z-index: 2147483647 !important;
}
#uso-canvas-container:fullscreen ~ .uso-export #uso-exit-fs,
#uso-canvas-container:-webkit-full-screen ~ .uso-export #uso-exit-fs { display:inline-flex !important; }

/* Палитра как потомок контейнера в FS */
#uso-canvas-container:fullscreen #uso-palette-panel,
#uso-canvas-container:-webkit-full-screen #uso-palette-panel {
  position: fixed !important; top: 8px; left: 8px; transform:none !important;
  background: transparent !important; border:1px solid rgba(0,0,0,0.1); border-radius:8px; padding:6px 8px;
  z-index: 2147483647 !important;
}
#uso-canvas-container:fullscreen #uso-palette-panel #uso-exit-fs,
#uso-canvas-container:-webkit-full-screen #uso-palette-panel #uso-exit-fs { display:inline-flex !important; }

/* Моб. портрет: палитра снизу при FS */
@media (orientation: portrait) {
  #uso-canvas-container:fullscreen ~ .uso-export,
  #uso-canvas-container:-webkit-full-screen ~ .uso-export,
  #uso-canvas-container:fullscreen #uso-palette-panel,
  #uso-canvas-container:-webkit-full-screen #uso-palette-panel {
    left: calc(8px + env(safe-area-inset-left));
    right: calc(8px + env(safe-area-inset-right));
    bottom: calc(8px + env(safe-area-inset-bottom));
    top: auto;
  }
}
/* Моб. ландшафт: палитра снизу по центру при FS */
@media (orientation: landscape) {
  #uso-canvas-container:fullscreen ~ .uso-export,
  #uso-canvas-container:-webkit-full-screen ~ .uso-export,
  #uso-canvas-container:fullscreen #uso-palette-panel,
  #uso-canvas-container:-webkit-full-screen #uso-palette-panel {
    left:50%; transform:translateX(-50%) !important; right:auto; bottom:calc(8px + env(safe-area-inset-bottom)); top:auto;
    width:min(100vw - 24px, 980px); border-radius:10px; padding:6px 8px;
  }
  .colors .color-btn { width:18px; height:18px; }
  .shape-btn { min-width:30px; height:30px; font-size:14px; }
  #mark-toggle, #uso-undo, #uso-exit-fs, #uso-del { width:30px; height:30px; }
  .size-controls input[type="range"] { width:90px; }
}

/* Моб. портрет (не FS): палитра под контейнером */
@media (max-width:720px) and (orientation:portrait){
  .uso-export { position:static !important; background:transparent !important; margin-top:8px; z-index:auto; }
  .colors .color-btn { width:22px; height:22px; }
  .shape-btn { min-width:34px; height:34px; }
  #mark-toggle, #uso-undo, #uso-exit-fs, #uso-del { width:34px; height:34px; }
  .size-controls input[type="range"] { width:100px; }
}
/* Узкие горизонтальные */
@media (max-width:920px) and (orientation:landscape){
  .colors .color-btn { width:20px; height:20px; }
  .shape-btn { min-width:32px; height:32px; }
  #uso-undo, #uso-exit-fs, #uso-del { width:32px; height:32px; }
  .size-controls input[type="range"] { width:95px; }
}

/* Скрыть «Съёмные» (если есть) */
#uso-remov-ui { display:none !important; }

/* Матрица протезов — компактнее */
#uso-prost-matrix.compact table { font-size:11px; }
#uso-prost-matrix.compact th, #uso-prost-matrix.compact td { padding:3px 5px; }
#uso-prost-matrix.compact .hint { font-size:10.5px; }

/* Ресайз контейнера (не FS) */
#uso-canvas-container { resize:both; overflow:auto; min-width:320px; min-height:240px; }

/* Кадрирование */
.crop-controls { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.crop-controls select, .crop-controls button { padding:6px 8px; }

/* Стили для галереи снимков */
#uso-image-manager {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.thumbnails-container {
    display: flex;
    gap: 8px;
    padding: 4px;
    overflow-x: auto;
    background: #f0f0f0;
    border-radius: 6px;
    min-height: 80px;
    /* ИСПРАВЛЕНИЕ: Добавлен отступ снизу и position: relative */
    margin-bottom: 70px;
    position: relative;
}
.thumbnail {
    flex-shrink: 0;
    width: 100px;
    height: 75px;
    border: 2px solid transparent;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: border-color 0.2s;
}
.thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.thumbnail.active {
    border-color: #2271b1; /* Синяя рамка для активного */
}
.thumbnail.is-main {
    box-shadow: 0 0 0 2px gold; /* Золотая рамка для главного */
}
.thumbnail .thumb-overlay {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 4px;
    background: rgba(0,0,0,0.5);
    opacity: 0;
    transition: opacity 0.2s;
}
.thumbnail:hover .thumb-overlay {
    opacity: 1;
}
.thumb-btn {
    background: #fff;
    border: none;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    cursor: pointer;
    padding: 0;
    line-height: 24px;
}

.thumbnail.placeholder {
    background: #e9ecef;
    border-style: dashed;
    display: flex;
    align-items: center;
    justify-content: center;
}
.placeholder-content {
    text-align: center;
    color: #6c757d;
    font-size: 12px;
}
.placeholder-content span {
    font-size: 24px;
    font-weight: 300;
    line-height: 1;
    display: block;
}

/* Улучшения для вкладок вариантов */
.variants .tab {
    position: relative;
    padding-right: 32px; /* Место для кнопок */
}

.variant-actions {
    position: absolute;
    top: 50%;
    right: 4px;
    transform: translateY(-50%);
    display: none; /* Скрыты по умолчанию */
    gap: 2px;
}

.variants .tab:hover .variant-actions,
.variants .tab.active .variant-actions {
    display: inline-flex; /* Показываем при наведении или если активна */
}

.variant-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 2px;
    line-height: 1;
    font-size: 14px;
    color: inherit;
    border-radius: 3px;
}
.variant-btn:hover {
    background: rgba(0,0,0,0.1);
}
.variants .tab.active .variant-btn {
    color: #fff;
}
.variants .tab.active .variant-btn:hover {
    background: rgba(255,255,255,0.2);
}

/* Ярлыки для снимков в режиме "Простые фото" */
.thumbnail .thumb-jaw-label {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0,0,0,0.6);
    color: white;
    font-size: 10px;
    text-align: center;
    padding: 2px 0;
    pointer-events: none;
}

/* Стили для комментариев к миниатюрам */
.thumbnail .thumb-note {
    display: none; /* Скрываем по умолчанию */
    position: absolute;
    bottom: -65px; /* Позиционируем под миниатюрой */
    left: 0;
    width: 100%;
    z-index: 10;
}

.thumbnail.active .thumb-note {
    display: block; /* Показываем только для активной миниатюры */
}

.thumbnail .thumb-note textarea {
    width: 100%;
    height: 60px;
    font-size: 11px;
    padding: 4px;
    border: 1px solid #2271b1;
    border-radius: 4px;
    box-sizing: border-box;
    resize: vertical;
}
/* Примечания: счётчик символов */
.uso-note-meta{
  display:flex;
  gap:10px;
  align-items:center;
  margin-top:4px;
  font-size:12px;
}
.uso-note-counter{ color:#666; }
.uso-note-counter.is-over{ color:#b32d2e; font-weight:600; }
.uso-note-warning{ color:#b32d2e; }

/* === FIX: Примечание к главному снимку не должно "плыть" и пересекаться с контентом === */
#uso-calc-app #uso-image-comment-area{
  clear: both;
  width: 100%;
  margin: 12px 0 12px;
  position: relative;
}
#uso-calc-app #uso-image-comment-area label{
  float: none !important;
  display: block !important;
  width: 100% !important;
  margin: 0 0 4px !important;
}
#uso-calc-app #uso-image-comment-textarea{
  float: none !important;
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  max-width: 100% !important;
}

/* === Preview editor toolbar (Предварительный отчёт) === */
#uso-calc-app .uso-preview-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin: 6px 0 8px;
}
#uso-calc-app .uso-preview-toolbar .uso-preview-cmd{
  border: 1px solid #dcdcde;
  background: #f6f7f7;
  padding: 4px 8px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  line-height: 1.2;
}
#uso-calc-app .uso-preview-toolbar .uso-preview-cmd:hover{
  background: #fff;
}
#uso-calc-app .uso-preview-toolbar .uso-preview-cmd:active{
  transform: translateY(1px);
}
#uso-calc-app .uso-preview-toolbar .uso-preview-sep{
  width:1px;
  height:18px;
  background:#dcdcde;
  margin: 0 2px;
}

.uso-case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.uso-case-field{border:1px solid #e5e7eb;border-radius:8px;padding:10px;background:#fff}
.uso-case-label{font-size:12px;color:#6b7280;margin-bottom:4px}
.uso-case-value{font-size:14px;font-weight:600;word-break:break-word}
.uso-case-notes{margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}
.uso-case-note-item{padding:8px 0;border-bottom:1px dashed #e5e7eb}
.uso-case-note-date{font-size:12px;color:#6b7280;margin-bottom:4px}
.uso-case-warning{background:#fff3cd;color:#7a5d00;padding:8px 10px;border-radius:8px;border:1px solid #ffe69c}
.uso-case-file-item{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.uso-case-context .button{white-space:nowrap}
.uso-error{color:#b91c1c !important}


/* === Case Workspace Redesign === */
#uso-case-workspace,
#uso-case-workspace * {
  color: #1f2328;
}
#uso-case-workspace {
  background: #ffffff;
  border: 1px solid #d8dee4;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}
#uso-case-workspace h3,
#uso-case-workspace h4,
#uso-case-workspace strong {
  color: #111827;
}
#uso-case-workspace .hint {
  color: #5b6472;
}
.uso-case-workspace-toolbar {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 16px;
  padding: 14px 16px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
}
.uso-case-workspace-toolbar input {
  min-width: 180px;
  max-width: 220px;
}
.uso-case-workspace-layout {
  display:grid;
  grid-template-columns:320px minmax(0, 1fr);
  gap:16px;
  align-items:start;
}
.uso-case-workspace-sidebar {
  position:sticky;
  top:16px;
  align-self:start;
}
.uso-case-workspace-detail {
  min-width:0;
}
.uso-case-empty-state {
  padding:28px 20px;
  border:1px dashed #cbd5e1;
  border-radius:16px;
  background:#f8fafc;
  color:#64748b;
}
.uso-case-queue {
  margin-bottom: 0;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  background: #f8fafc;
}
#uso-case-queue-list {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: calc(100vh - 220px);
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
}
.uso-case-queue-item {
  display: flex !important;
  width: 100%;
  flex-direction: column;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 6px;
  min-height: 76px;
  text-align: left !important;
  white-space: normal !important;
  padding: 12px 14px !important;
  border-radius: 16px !important;
  border: 1px solid #d9e1ea !important;
  background: #ffffff !important;
  color: #111827 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.uso-case-queue-item:hover {
  border-color: #cbd5e1 !important;
  background: #ffffff !important;
}
.uso-case-queue-item.is-active {
  border-color:#2563eb !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
  background:#ffffff !important;
}
.uso-case-queue-title {
  display:-webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.3;
  font-size:15px;
  font-weight:700;
  color:#0f172a;
  word-break:break-word;
  margin:0;
}
.uso-case-queue-time {
  display:block;
  color:#64748b;
  font-size:12px;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin:0;
}
.uso-case-queue-topline,
.uso-case-queue-meta-row,
.uso-case-queue-status,
.uso-case-queue-version,
.uso-case-queue-actor { display:none !important; }
#uso-case-workspace-status {
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
}
#uso-case-workspace-status.uso-error {
  background: #fff1f2;
  border-color: #fecdd3;
  color: #b42318;
}
.uso-case-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.95fr);
  gap: 16px;
  align-items: start;
}
.uso-case-column {
  display: grid;
  gap: 16px;
}
.uso-case-panel {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #ffffff;
  padding: 16px;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.05);
}
.uso-case-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.uso-case-hero-title {
  font-size: 20px;
  font-weight: 700;
  color: #111827;
  margin: 0;
}
.uso-case-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.uso-case-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  color: #374151;
  font-size: 12px;
  font-weight: 600;
}
.uso-case-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
}
.uso-case-field {
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f8fafc;
}
.uso-case-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #6b7280;
  margin-bottom: 6px;
}
.uso-case-value {
  color: #111827;
  font-weight: 600;
  line-height: 1.45;
}
.uso-case-notes {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #e5e7eb;
}
.uso-case-note-item {
  padding: 10px 12px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  margin-top: 8px;
}
.uso-case-note-date {
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 4px;
}
.uso-case-mode-switch {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.uso-case-mode-switch label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  color: #374151;
  font-weight: 600;
}
.uso-case-alert {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #374151;
}
.uso-case-alert.uso-case-alert-error {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #b42318;
}
.uso-case-file-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.uso-case-file-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #ffffff;
  color: #111827;
}
.uso-case-file-item input {
  margin-top: 2px;
}
.uso-case-file-meta {
  display: block;
  margin-top: 4px;
  color: #6b7280;
  font-size: 12px;
}
.uso-case-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
@media (max-width: 960px) {
  .uso-case-workspace-layout {
    grid-template-columns: 1fr;
  }
  .uso-case-workspace-sidebar {
    position: static;
  }
  #uso-case-queue-list {
    max-height: none;
  }
  .uso-case-shell {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  #uso-case-workspace {
    padding: 14px;
  }
  .uso-case-workspace-toolbar {
    padding: 12px;
  }
  #uso-case-queue-list,
  .uso-case-file-list,
  .uso-case-grid {
    grid-template-columns: 1fr;
  }
}


.uso-case-file-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
}
.uso-case-file-card {
  position:relative;
  display:grid !important;
  grid-template-columns:1fr;
  gap:10px;
  padding:12px !important;
  align-items:start !important;
  min-height:220px;
  cursor:pointer;
  overflow:hidden;
}
.uso-case-file-card input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.uso-case-file-check {
  position:absolute;
  top:10px;
  right:10px;
  width:24px;
  height:24px;
  border-radius:999px;
  background:#ffffff;
  border:1px solid #d1d5db;
  color:#ffffff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:700;
  z-index:2;
}
.uso-case-file-card input:checked ~ .uso-case-file-check {
  background:#2563eb;
  border-color:#2563eb;
  color:#fff;
}
.uso-case-file-card input:checked ~ .uso-case-file-preview,
.uso-case-file-card input:checked ~ .uso-case-file-body {
  outline:none;
}
.uso-case-file-card.is-selected {
  border-color:#93c5fd !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
  background:#f8fbff !important;
}
.uso-case-file-preview {
  display:flex;
  align-items:center;
  justify-content:center;
  height:140px;
  border-radius:12px;
  background:#f3f4f6;
  border:1px solid #e5e7eb;
  overflow:hidden;
}
.uso-case-file-thumb {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.uso-case-file-preview-loading {
  color:#6b7280;
  font-size:13px;
}
.uso-case-file-fallback {
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  color:#6b7280;
  background:linear-gradient(180deg,#f9fafb 0%,#eef2f7 100%);
}
.uso-case-file-body {
  display:grid;
  gap:4px;
}
.uso-case-file-name {
  line-height:1.3;
  word-break:break-word;
}
@media (max-width: 700px) {
  .uso-case-file-grid { grid-template-columns:1fr; }
  .uso-case-file-card { min-height:unset; }
}


.uso-case-file-preview,
.uso-case-file-thumb {
  cursor: zoom-in;
}

.uso-case-preview-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 99999;
}
.uso-case-preview-modal.is-open {
  display: block;
}
.uso-case-preview-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.72);
  backdrop-filter: blur(2px);
}
.uso-case-preview-dialog {
  position: relative;
  max-width: min(96vw, 1200px);
  max-height: 92vh;
  margin: 2.5vh auto;
  background: #0f172a;
  color: #fff;
  border-radius: 16px;
  box-shadow: 0 30px 60px rgba(0,0,0,0.35);
  padding: 18px 18px 14px;
}
.uso-case-preview-title {
  font-size: 16px;
  font-weight: 700;
  padding-right: 48px;
  margin-bottom: 10px;
}
.uso-case-preview-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  max-height: calc(92vh - 60px);
  overflow: auto;
  background: rgba(255,255,255,0.04);
  border-radius: 12px;
}
.uso-case-preview-image {
  max-width: 100%;
  max-height: calc(92vh - 90px);
  object-fit: contain;
  display: block;
}
.uso-case-preview-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
body.uso-case-preview-open {
  overflow: hidden;
}


.uso-case-jaw-assignments {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid #dbe4f0;
  border-radius: 14px;
  background: #f8fbff;
}
.uso-case-jaw-title {
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 8px;
}
.uso-case-jaw-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.uso-case-jaw-field {
  display: grid;
  gap: 6px;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
}
.uso-case-jaw-field select {
  width: 100%;
  min-height: 40px;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #0f172a;
  padding: 8px 10px;
}
.uso-case-jaw-hint {
  margin-top: 8px;
  color: #64748b;
  font-size: 12px;
}
.uso-case-file-grid.is-simple-mode .uso-case-file-check {
  display: none;
}
.uso-case-file-role-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  box-shadow: 0 4px 10px rgba(15,23,42,.18);
}
.uso-case-file-role-badge.is-upper { background: #2563eb; }
.uso-case-file-role-badge.is-lower { background: #059669; }
.uso-case-file-card.is-role-upper { border-color: rgba(37,99,235,.35) !important; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.uso-case-file-card.is-role-lower { border-color: rgba(5,150,105,.35) !important; box-shadow: 0 0 0 3px rgba(5,150,105,.12); }
@media (max-width: 760px) {
  .uso-case-jaw-grid { grid-template-columns: 1fr; }
}


.uso-case-file-role-wrap {
  display:grid;
  gap:6px;
  margin-top:6px;
}
.uso-case-file-role-label {
  font-size:12px;
  font-weight:600;
  color:#475569;
}
.uso-case-file-role-select {
  width:100%;
  min-height:38px;
  border-radius:10px;
  border:1px solid #cbd5e1;
  background:#fff;
  color:#0f172a;
  padding:8px 10px;
}
.uso-case-file-role-badge.is-panorama { background:#7c3aed; }
.uso-case-file-role-badge.is-additional { background:#475569; }
.uso-case-file-card.is-role-panorama { border-color: rgba(124,58,237,.35) !important; box-shadow: 0 0 0 3px rgba(124,58,237,.12); }
.uso-case-file-card.is-role-additional { border-color: rgba(71,85,105,.28) !important; box-shadow: 0 0 0 3px rgba(71,85,105,.10); }


.thumb-role-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 3;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  box-shadow: 0 3px 8px rgba(15,23,42,.18);
  pointer-events: none;
}
.thumb-role-badge.is-panorama { background:#7c3aed; }
.thumb-role-badge.is-upper { background:#2563eb; }
.thumb-role-badge.is-lower { background:#059669; }
.thumb-role-badge.is-additional { background:#475569; }
.thumbnail.is-panorama { border-color: rgba(124,58,237,.45); }
.thumbnail.is-upper { border-color: rgba(37,99,235,.45); }
.thumbnail.is-lower { border-color: rgba(5,150,105,.45); }
.thumbnail.is-additional { border-color: rgba(71,85,105,.35); }
.thumb-file-name {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 3px 6px;
  font-size: 10px;
  line-height: 1.2;
  color: #fff;
  background: linear-gradient(180deg, rgba(15,23,42,0) 0%, rgba(15,23,42,.82) 100%);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
  pointer-events: none;
}

.uso-role-summary-block{margin:12px 0 16px;padding:12px 14px;border:1px solid #d7deea;border-radius:12px;background:#f8fbff;color:#1f2937;}
.uso-role-summary-block h3{margin:0 0 8px;font-size:16px;color:#111827;}
.uso-role-summary-block ul{margin:0;padding-left:18px;}
.uso-role-summary-block li{margin:4px 0;color:#334155;}

.uso-case-queue-item { position: relative; overflow: hidden; }
.uso-case-queue-thumb { display:block; width:100%; height:84px; border-radius:12px; overflow:hidden; margin-bottom:8px; background:#f3f4f6; }
.uso-case-queue-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.uso-case-versions-panel { margin-top: 16px; }
.uso-case-versions-list { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.uso-case-version-card { border:1px solid rgba(0,0,0,.08); border-radius:16px; padding:10px; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.04); }
.uso-case-version-thumb { width:100%; height:96px; object-fit:cover; border-radius:12px; display:block; margin-bottom:8px; background:#f3f4f6; }
.uso-case-version-meta { display:grid; gap:4px; color:#111827; font-size:12px; }


.uso-case-archive-list { margin-top: 12px; border-top: 1px solid #e5e7eb; padding-top: 12px; }
.uso-case-archive-list summary { cursor: pointer; color: #475569; font-weight: 600; margin-bottom: 10px; }
.uso-case-queue-archive-items { display: grid; gap: 10px; margin-top: 10px; }
.uso-case-queue-item.is-archived { opacity: .92; }
.uso-case-version-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.uso-case-version-delete { color:#991b1b; border-color:#fecaca; background:#fff5f5; }
.uso-case-version-delete:hover { background:#fee2e2; }
.uso-case-panel-subtitle { font-size: 12px; color: #6b7280; }
.uso-case-version-card.is-latest { border-color: rgba(37,99,235,.25); box-shadow: 0 2px 10px rgba(37,99,235,.08); }
.uso-case-version-thumb-btn { display:block; width:100%; padding:0; border:0; background:transparent; cursor:pointer; }
.uso-case-version-actions { margin-top: 10px; display:flex; gap:8px; }
.uso-case-version-actions .button { width:100%; justify-content:center; }

.uso-case-versions-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; }
.uso-case-versions-tip { color:#4b5563; font-size:12px; }
.uso-case-version-compare-pick { display:flex; align-items:center; gap:6px; font-size:12px; color:#374151; margin-bottom:8px; }
.uso-case-version-actions .button { width:auto; flex:1 1 0; }
.uso-case-compare-modal { position:fixed; inset:0; display:none; z-index:100000; }
.uso-case-compare-modal.is-open { display:block; }
.uso-case-compare-backdrop { position:absolute; inset:0; background:rgba(17,24,39,.62); }
.uso-case-compare-dialog { position:relative; max-width:1120px; margin:32px auto; background:#fff; border-radius:20px; padding:18px; box-shadow:0 20px 50px rgba(0,0,0,.25); max-height:calc(100vh - 64px); overflow:auto; }
.uso-case-compare-close { position:absolute; top:10px; right:12px; border:0; background:transparent; font-size:28px; cursor:pointer; color:#111827; }
.uso-case-compare-header { display:flex; flex-direction:column; gap:4px; margin-bottom:16px; color:#111827; }
.uso-case-compare-subtitle { color:#6b7280; font-size:13px; }
.uso-case-compare-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
.uso-case-compare-card { border:1px solid rgba(0,0,0,.08); border-radius:16px; padding:14px; background:#f9fafb; display:grid; gap:12px; }
.uso-case-compare-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#111827; }
.uso-case-compare-thumb { width:100%; height:220px; object-fit:cover; border-radius:14px; background:#e5e7eb; display:block; }
.uso-case-compare-thumb-empty { display:flex; align-items:center; justify-content:center; color:#6b7280; }
.uso-case-compare-facts { display:grid; gap:8px; }
.uso-case-compare-fact { display:grid; grid-template-columns:110px 1fr; gap:10px; align-items:start; padding:8px 10px; border-radius:12px; background:#fff; color:#111827; }
.uso-case-compare-fact span { color:#6b7280; font-size:12px; }
.uso-case-compare-fact strong { font-size:13px; font-weight:600; word-break:break-word; }
.uso-case-compare-fact.is-changed { background:#eff6ff; border:1px solid rgba(37,99,235,.18); }
body.uso-case-compare-open { overflow:hidden; }
@media (max-width: 820px) { .uso-case-compare-grid { grid-template-columns:1fr; } .uso-case-compare-card-head { flex-direction:column; align-items:flex-start; } .uso-case-versions-toolbar { flex-direction:column; align-items:flex-start; } }


.uso-case-context-extras,
.uso-case-context-inline {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.uso-case-context-accordion {
  border: 1px solid rgba(141,89,182,0.35);
  border-radius: 10px;
  padding: 8px 10px;
  background: rgba(141,89,182,0.08);
}
.uso-case-context-accordion summary {
  cursor: pointer;
  color: #8d59b6;
  font-weight: 700;
}
.uso-case-context-accordion-body {
  margin-top: 10px;
}
.uso-case-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.uso-case-inline-chip {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #d8dee8;
  color: #374151;
  font-size: 12px;
  font-weight: 600;
}
.uso-case-inline-block {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f8fafc;
  padding: 12px;
}
.uso-case-inline-block .uso-case-label {
  margin-bottom: 8px;
}

.uso-case-archive-list summary { cursor:pointer; font-weight:600; color:#334155; margin-top:10px; }
.uso-case-queue-archive-items { display:grid; gap:8px; margin-top:10px; }


/* v21 queue compact redesign: only lead title + queued date */
#uso-case-queue-list,
.uso-case-queue-archive-items {
  gap: 10px;
}

.uso-case-queue-item {
  min-height: 0 !important;
  gap: 4px !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

.uso-case-queue-item > :not(.uso-case-queue-title):not(.uso-case-queue-time):not(.uso-case-queue-status) {
  display: none !important;
}

.uso-case-queue-title {
  -webkit-line-clamp: 3;
  font-size: 15px;
  line-height: 1.25;
  margin: 0 !important;
}

.uso-case-queue-time {
  display: block !important;
  font-size: 12px;
  line-height: 1.2;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0 !important;
}

.uso-case-queue-item.is-active {
  box-shadow: 0 0 0 2px rgba(37,99,235,.14);
}


.uso-case-queue-status {
  display: block !important;
  font-size: 11px;
  line-height: 1.25;
  margin: 2px 0 0 !important;
  color: #b91c1c;
}

.uso-case-queue-status.is-empty {
  display: none !important;
}

.uso-case-queue-item.is-waiting-photos .uso-case-queue-title {
  color: #d93025;
}

.uso-case-queue-item.is-ready-photos .uso-case-queue-title {
  color: #111111;
}


/* Queue/workspace layout hotfix v7 */
.uso-case-workspace-layout {
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 20px;
}

.uso-case-workspace-sidebar {
  top: 12px;
}

#uso-case-queue-list {
  max-height: calc(100vh - 180px);
  padding-right: 6px;
}

.uso-case-queue-item {
  display: grid !important;
  grid-template-rows: auto auto auto;
  align-content: start !important;
  gap: 4px;
  min-height: 92px;
  padding: 12px 14px !important;
}

.uso-case-queue-title {
  -webkit-line-clamp: 2;
  font-size: 16px;
  line-height: 1.25;
}

.uso-case-queue-time {
  font-size: 12px;
  line-height: 1.2;
}

.uso-case-queue-status {
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  white-space: normal;
  text-overflow: ellipsis;
  min-height: 28px;
  line-height: 1.25;
}

.uso-case-shell {
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
  gap: 20px;
}

.uso-case-panel {
  padding: 18px;
}

.uso-case-file-grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.uso-case-file-card {
  min-height: 360px;
}

.uso-case-file-preview {
  height: 168px;
}

.uso-case-file-preview-loading {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #6b7280;
  font-size: 13px;
  background: linear-gradient(180deg,#f9fafb 0%,#eef2f7 100%);
}

@media (max-width: 1280px) {
  .uso-case-workspace-layout {
    grid-template-columns: 320px minmax(0, 1fr);
  }
  .uso-case-shell {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .uso-case-workspace-layout {
    grid-template-columns: 1fr;
  }
  .uso-case-workspace-sidebar {
    position: static;
  }
  #uso-case-queue-list {
    max-height: none;
  }
}



/* v8 layout + queue stability fix */
.uso-case-workspace-layout{
  grid-template-columns:minmax(360px,400px) minmax(0,1fr) !important;
  gap:24px !important;
  align-items:start !important;
}
.uso-case-workspace-sidebar{
  position:sticky;
  top:16px;
  align-self:start !important;
}
#uso-case-queue-list{
  max-height:calc(100vh - 220px) !important;
  overflow:auto !important;
  padding-right:8px !important;
}
.uso-case-queue-item{
  display:grid !important;
  grid-template-rows:auto auto auto !important;
  align-content:start !important;
  gap:6px !important;
  min-height:108px !important;
  padding:12px 14px !important;
}
.uso-case-queue-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  line-height:1.28 !important;
  font-size:15px !important;
  min-height:38px;
  margin:0 !important;
}
.uso-case-queue-time{
  display:block !important;
  font-size:12px !important;
  line-height:1.2 !important;
  margin:0 !important;
}
.uso-case-queue-status{
  display:-webkit-box !important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden !important;
  white-space:normal !important;
  text-overflow:ellipsis !important;
  min-height:28px;
  line-height:1.25 !important;
  margin:0 !important;
}
.uso-case-shell{
  grid-template-columns:minmax(0,1.08fr) minmax(360px,0.92fr) !important;
  gap:20px !important;
  align-items:start !important;
}
.uso-case-panel{
  padding:18px !important;
}
.uso-case-file-preview{
  min-height:160px;
  background:#f8fafc;
  display:flex;
  align-items:center;
  justify-content:center;
}
.uso-case-file-fallback{
  font-size:22px;
  font-weight:700;
  color:#64748b;
}
@media (max-width: 1280px){
  .uso-case-workspace-layout{
    grid-template-columns:minmax(320px,360px) minmax(0,1fr) !important;
    gap:18px !important;
  }
  .uso-case-shell{
    grid-template-columns:minmax(0,1fr) minmax(320px,0.88fr) !important;
  }
}
@media (max-width: 1024px){
  .uso-case-workspace-layout,
  .uso-case-shell{
    grid-template-columns:1fr !important;
  }
  .uso-case-workspace-sidebar{
    position:static !important;
  }
  #uso-case-queue-list{
    max-height:none !important;
    overflow:visible !important;
  }
}


/* v9 queue refresh + softer layout */
.uso-case-workspace-layout{
  grid-template-columns:minmax(300px,360px) minmax(0,1fr) !important;
  gap:16px !important;
  align-items:start !important;
}
.uso-case-workspace-sidebar{
  position:sticky !important;
  top:12px !important;
  align-self:start !important;
}
#uso-case-queue-list,
.uso-case-queue-archive-items{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
}
#uso-case-queue-list{
  max-height:calc(100vh - 210px) !important;
  overflow:auto !important;
  padding-right:4px !important;
}
.uso-case-queue-item{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  min-height:84px !important;
  padding:10px 12px !important;
  border:1px solid #e5e7eb !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:none !important;
  gap:4px !important;
  text-align:left !important;
}
.uso-case-queue-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  margin:0 !important;
  min-height:auto !important;
  font-size:14px !important;
  line-height:1.3 !important;
}
.uso-case-queue-time{
  display:block !important;
  margin:0 !important;
  color:#64748b !important;
  font-size:12px !important;
  line-height:1.2 !important;
}
.uso-case-queue-status{
  display:block !important;
  margin:0 !important;
  min-height:0 !important;
  font-size:11px !important;
  line-height:1.25 !important;
  white-space:normal !important;
}
.uso-case-queue-status.is-empty{display:none !important;}
.uso-case-queue-item.is-active{
  border-color:#2563eb !important;
  box-shadow:0 0 0 1px rgba(37,99,235,.15) !important;
}
.uso-case-shell{
  grid-template-columns:minmax(0,1fr) minmax(340px,0.9fr) !important;
  gap:16px !important;
  align-items:start !important;
}
.uso-case-file-card{
  min-height:320px !important;
}
.uso-case-file-preview{
  min-height:148px !important;
  height:148px !important;
}
.uso-case-file-preview-loading{
  font-size:12px !important;
}
@media (max-width: 1180px){
  .uso-case-workspace-layout,
  .uso-case-shell{
    grid-template-columns:1fr !important;
  }
  .uso-case-workspace-sidebar{
    position:static !important;
  }
  #uso-case-queue-list{
    max-height:none !important;
    overflow:visible !important;
  }
}


/* === Workspace overview v10 local runtime === */
.uso-case-overview-shell {
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 18px;
}
.uso-case-overview-main {
  min-width: 0;
}
.uso-case-overview-hero {
  display: grid;
  gap: 14px;
}
.uso-case-overview-hero-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.uso-case-actions-top {
  justify-content: flex-end;
  margin-top: 0;
}
.uso-case-summary-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  gap: 12px;
}
.uso-case-summary-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #f8fafc;
}
.uso-case-summary-row:last-child {
  padding-bottom: 14px;
}
.uso-case-summary-key {
  font-size: 11px;
  font-weight: 700;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.uso-case-summary-value {
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  color: #111827;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.uso-case-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr);
  gap: 16px;
  align-items: start;
}
.uso-case-overview-info,
.uso-case-overview-versions,
.uso-case-overview-cloud {
  min-width: 0;
}
.uso-case-banner {
  margin-bottom: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
}
.uso-case-banner-title {
  font-weight: 700;
  margin-bottom: 4px;
}
.uso-case-banner-text {
  font-size: 13px;
  line-height: 1.45;
}
.uso-case-banner-danger {
  background: #fff1f2;
  border-color: #fecdd3;
  color: #b42318;
}
.uso-case-banner-warn {
  background: #fffbeb;
  border-color: #fcd34d;
  color: #92400e;
}
.uso-case-banner-info {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
}
.uso-case-info-block {
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #ffffff;
}
.uso-case-info-block-comment {
  background: #f8fafc;
}
.uso-case-info-text {
  color: #111827;
  line-height: 1.5;
}
.uso-case-info-text-comment {
  max-height: 110px;
  overflow: auto;
}
.uso-case-fact-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.uso-case-fact-chip,
.uso-case-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}
.uso-case-fact-chip {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  color: #475569;
}
.uso-case-badge-ok {
  background: #ecfdf3;
  color: #166534;
}
.uso-case-badge-warn {
  background: #fffbeb;
  color: #92400e;
}
.uso-case-badge-danger {
  background: #fff1f2;
  color: #b42318;
}
.uso-case-scroll-box {
  max-height: 120px;
  overflow: auto;
  padding-right: 4px;
}
.uso-case-versions-scroll {
  display: grid;
  gap: 10px;
  max-height: 680px;
  overflow: auto;
  padding-right: 4px;
}
.uso-case-version-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #ffffff;
}
.uso-case-version-card.is-latest {
  border-color: #bfdbfe;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
}
.uso-case-version-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.uso-case-version-thumb,
.uso-case-version-thumb-empty {
  width: 92px;
  height: 68px;
  border-radius: 10px;
  object-fit: cover;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
}
.uso-case-version-thumb-empty {
  display: grid;
  place-items: center;
  color: #94a3b8;
  font-size: 12px;
}
.uso-case-file-grid-overview {
  grid-template-columns: 1fr;
}
.uso-case-overview-cloud .uso-case-file-item {
  position: relative;
}
.uso-case-actions-side {
  margin-top: 14px;
}
@media (max-width: 1260px) {
  .uso-case-overview-grid {
    grid-template-columns: 1fr;
  }
  .uso-case-summary-panel {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 1100px) {
  .uso-case-overview-shell {
    grid-template-columns: 1fr;
  }
  .uso-case-overview-hero-head {
    flex-direction: column;
  }
  .uso-case-actions-top {
    justify-content: flex-start;
  }
}
@media (max-width: 760px) {
  .uso-case-summary-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .uso-case-version-card {
    grid-template-columns: 1fr;
  }
}


/* === Workspace overview v11 hard layout fix === */
.uso-case-workspace-layout{
  grid-template-columns:minmax(280px,320px) minmax(0,1fr) !important;
  gap:16px !important;
  align-items:start !important;
}
.uso-case-workspace-main,
.uso-case-overview-main,
.uso-case-overview-grid,
.uso-case-overview-info,
.uso-case-overview-versions,
.uso-case-overview-cloud,
.uso-case-summary-panel,
.uso-case-version-card{
  min-width:0 !important;
}
.uso-case-overview-shell{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px !important;
}
.uso-case-overview-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,0.85fr) !important;
  gap:16px !important;
  align-items:start !important;
}
.uso-case-overview-cloud{
  width:100% !important;
  max-width:420px !important;
  justify-self:end !important;
}
.uso-case-overview-hero-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
  flex-wrap:wrap !important;
}
.uso-case-actions-top{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
  gap:10px !important;
}
.uso-case-actions-top .button,
.uso-case-actions-side .button,
.uso-case-version-actions .button{
  width:auto !important;
  min-width:180px !important;
}
.uso-case-summary-panel{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(220px,1fr)) !important;
  gap:12px !important;
}
.uso-case-summary-row{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  min-width:0 !important;
  min-height:108px !important;
  padding:14px 16px !important;
}
.uso-case-summary-value{
  min-width:0 !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}
.uso-case-versions-scroll{
  max-height:none !important;
  overflow:visible !important;
}
.uso-case-version-card{
  grid-template-columns:92px minmax(0,1fr) auto !important;
}
@media (min-width: 1680px){
  .uso-case-overview-shell{
    grid-template-columns:minmax(0,1fr) 380px !important;
  }
  .uso-case-overview-cloud{
    max-width:none !important;
    width:100% !important;
    justify-self:stretch !important;
  }
}
@media (max-width: 1420px){
  .uso-case-overview-grid{
    grid-template-columns:1fr !important;
  }
  .uso-case-overview-cloud{
    max-width:none !important;
    width:100% !important;
    justify-self:stretch !important;
  }
}
@media (max-width: 1100px){
  .uso-case-workspace-layout,
  .uso-case-overview-shell,
  .uso-case-overview-grid,
  .uso-case-summary-panel{
    grid-template-columns:1fr !important;
  }
  .uso-case-workspace-sidebar{
    position:static !important;
  }
  .uso-case-actions-top{
    justify-content:flex-start !important;
  }
}
@media (max-width: 760px){
  .uso-case-version-card{
    grid-template-columns:1fr !important;
  }
  .uso-case-actions-top .button,
  .uso-case-actions-side .button,
  .uso-case-version-actions .button{
    width:100% !important;
    min-width:0 !important;
  }
}


/* === Workspace overview v12 single-column stabilization === */
.uso-case-overview-shell,
.uso-case-overview-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px !important;
}
.uso-case-overview-side,
.uso-case-overview-cloud,
.uso-case-overview-info,
.uso-case-overview-versions{
  width:100% !important;
  max-width:none !important;
  justify-self:stretch !important;
}
.uso-case-overview-info{
  order:1 !important;
}
.uso-case-overview-versions{
  order:2 !important;
}
.uso-case-overview-side{
  order:3 !important;
}
.uso-case-overview-hero-head{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:12px !important;
}
.uso-case-actions-top,
.uso-case-actions-side,
.uso-case-version-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  justify-content:flex-start !important;
}
.uso-case-actions-top .button,
.uso-case-actions-side .button,
.uso-case-version-actions .button,
.uso-case-compare-btn{
  width:auto !important;
  min-width:180px !important;
}
.uso-case-info-block,
.uso-case-panel,
.uso-case-version-card,
.uso-case-file-card{
  min-width:0 !important;
}
.uso-case-scroll-box,
.uso-case-info-text-comment{
  max-height:none !important;
}
.uso-case-versions-scroll{
  display:grid !important;
  gap:12px !important;
  max-height:none !important;
  overflow:visible !important;
}
.uso-case-version-card{
  grid-template-columns:110px minmax(0,1fr) auto !important;
  align-items:center !important;
}
.uso-case-version-meta{
  min-width:0 !important;
}
.uso-case-version-head{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
}
.uso-case-file-grid-overview{
  grid-template-columns:1fr !important;
}
@media (max-width: 760px){
  .uso-case-summary-panel,
  .uso-case-version-card{
    grid-template-columns:1fr !important;
  }
  .uso-case-actions-top .button,
  .uso-case-actions-side .button,
  .uso-case-version-actions .button,
  .uso-case-compare-btn{
    width:100% !important;
    min-width:0 !important;
  }
}


/* === Workspace overview v13 images-first + viewer roles === */
.uso-hidden{display:none !important;}
.uso-case-overview-cloud-inline{order:0 !important;}
.uso-case-file-grid-overview{
  display:grid !important;
  grid-auto-flow:column !important;
  grid-auto-columns:calc(50% - 8px) !important;
  grid-template-columns:none !important;
  gap:16px !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  padding:4px 2px 10px !important;
  scroll-snap-type:x proximity;
}
.uso-case-file-grid-overview .uso-case-file-card{
  scroll-snap-align:start;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
}
.uso-case-file-preview-btn,
.uso-case-file-preview{
  width:100% !important;
  min-height:280px !important;
  height:280px !important;
  border:1px solid #e5e7eb !important;
  border-radius:14px !important;
  background:#f8fafc !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}
.uso-case-file-preview-btn{padding:0 !important; cursor:pointer;}
.uso-case-file-preview-btn .uso-case-file-thumb,
.uso-case-file-preview .uso-case-file-thumb{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  background:#0f172a;
}
.uso-case-file-body{display:flex !important; flex-direction:column !important; gap:6px !important;}
.uso-case-file-role-hint{font-size:12px !important; color:#64748b !important;}
.uso-case-file-role-select-hidden{display:none !important;}
.uso-case-preview-dialog{
  width:min(1280px,92vw) !important;
  max-width:min(1280px,92vw) !important;
  padding:20px !important;
}
.uso-case-preview-toolbar{
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  gap:12px !important;
  align-items:center !important;
  margin-bottom:12px !important;
}
.uso-case-preview-toolbar-left,
.uso-case-preview-toolbar-right{display:flex !important; gap:8px !important; align-items:center !important;}
.uso-case-preview-toolbar-main{min-width:0 !important;}
.uso-case-preview-title{font-size:22px !important; font-weight:700 !important; color:#fff !important; margin-bottom:4px !important;}
.uso-case-preview-counter{color:#cbd5e1 !important;}
.uso-case-preview-strip{
  display:flex !important;
  gap:8px !important;
  overflow-x:auto !important;
  padding-bottom:10px !important;
  margin-bottom:14px !important;
}
.uso-case-preview-strip-item{
  width:76px !important;
  min-width:76px !important;
  height:76px !important;
  border-radius:10px !important;
  border:1px solid rgba(255,255,255,.15) !important;
  background:#0f172a !important;
  overflow:hidden !important;
  padding:0 !important;
  color:#fff !important;
}
.uso-case-preview-strip-item.is-active{border-color:#60a5fa !important; box-shadow:0 0 0 2px rgba(96,165,250,.25) !important;}
.uso-case-preview-strip-item img{width:100% !important; height:100% !important; object-fit:cover !important;}
.uso-case-preview-content{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 260px !important;
  gap:18px !important;
  align-items:start !important;
}
.uso-case-preview-stage{
  min-height:560px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#172554 !important;
  border-radius:14px !important;
  overflow:hidden !important;
}
.uso-case-preview-image{
  max-width:100% !important;
  max-height:72vh !important;
  object-fit:contain !important;
  transition:transform .2s ease;
}
.uso-case-preview-sidepanel{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  padding:14px !important;
  border-radius:14px !important;
  background:rgba(15,23,42,.78) !important;
}
.uso-case-preview-sidepanel-title{font-size:13px !important; font-weight:700 !important; text-transform:uppercase !important; color:#cbd5e1 !important;}
.uso-case-preview-role-select{width:100% !important;}
.uso-case-preview-role-help{font-size:12px !important; line-height:1.45 !important; color:#cbd5e1 !important;}
@media (max-width: 980px){
  .uso-case-file-grid-overview{grid-auto-columns:85% !important;}
  .uso-case-preview-content{grid-template-columns:1fr !important;}
}
@media (max-width: 760px){
  .uso-case-file-grid-overview{grid-auto-columns:100% !important;}
  .uso-case-file-preview-btn,
  .uso-case-file-preview{min-height:220px !important; height:220px !important;}
  .uso-case-preview-dialog{width:96vw !important; max-width:96vw !important; padding:14px !important;}
  .uso-case-preview-stage{min-height:360px !important;}
}


/* === Workspace overview v14 amo button + visible roles + calls scroll + preview polish === */
.uso-case-open-amo{white-space:nowrap !important;}
.uso-case-file-role-wrap{display:flex !important; flex-direction:column !important; gap:6px !important; margin-top:2px !important;}
.uso-case-file-role-label{font-size:12px !important; color:#64748b !important; font-weight:600 !important;}
.uso-case-file-role-select{display:block !important; width:100% !important;}
.uso-case-inline-block-calls .uso-case-calls-scroll{max-height:220px !important; overflow:auto !important; padding-right:4px !important;}
.uso-case-preview-dialog{position:relative !important;}
.uso-case-preview-close{z-index:5 !important; top:14px !important; right:14px !important; width:44px !important; height:44px !important; border-radius:12px !important;}
.uso-case-preview-toolbar{padding-right:72px !important; grid-template-columns:auto minmax(0,1fr) auto !important;}
.uso-case-preview-toolbar-right{justify-content:flex-end !important;}
.uso-case-preview-nav,.uso-case-preview-rotate{min-width:56px !important; height:44px !important; border-radius:10px !important;}
.uso-case-preview-strip-item{transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;}
.uso-case-preview-strip-item:hover{transform:translateY(-1px) !important;}
.uso-case-preview-strip-item.is-active{transform:scale(1.08) !important; border-color:#60a5fa !important; box-shadow:0 0 0 2px rgba(96,165,250,.28) !important;}
.uso-case-preview-image{transform-origin:center center !important;}
@media (max-width: 980px){
  .uso-case-preview-toolbar{padding-right:58px !important;}
}
@media (max-width: 760px){
  .uso-case-preview-toolbar{grid-template-columns:1fr !important; padding-right:58px !important;}
  .uso-case-preview-toolbar-left,.uso-case-preview-toolbar-right{justify-content:flex-start !important;}
}


/* === Workspace overview v15 rotate + queue polling + holder bridge === */
.uso-case-preview-rotate:active,
.uso-case-preview-nav:active{
  transform: translateY(1px);
}


/* === Workspace overview v16 preview editor CTA + save re-claim === */
.uso-case-preview-open-editor{
  width:100% !important;
  margin-top:6px !important;
}

/* === USO preview modal responsive hardening — 2026-04-30 === */
.uso-case-preview-dialog{
  display:flex !important;
  flex-direction:column !important;
  max-height:96vh !important;
  overflow:hidden !important;
}
.uso-case-preview-toolbar,
.uso-case-preview-strip{
  flex:0 0 auto !important;
}
.uso-case-preview-content{
  flex:1 1 auto !important;
  min-height:0 !important;
}
.uso-case-preview-stage{
  min-height:0 !important;
  height:100% !important;
  max-height:calc(96vh - 190px) !important;
  overflow:hidden !important;
}
.uso-case-preview-image{
  max-width:100% !important;
  max-height:100% !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
}

@media (max-width: 1440px), (max-height: 850px){
  .uso-case-preview-dialog{
    width:94vw !important;
    max-width:94vw !important;
    max-height:96vh !important;
    margin:1vh auto !important;
    padding:14px !important;
  }
  .uso-case-preview-title{
    font-size:18px !important;
    line-height:1.2 !important;
    word-break:break-word !important;
  }
  .uso-case-preview-nav,
  .uso-case-preview-rotate{
    min-width:48px !important;
    height:40px !important;
  }
  .uso-case-preview-strip{
    gap:6px !important;
    margin-bottom:10px !important;
    padding-bottom:8px !important;
  }
  .uso-case-preview-strip-item{
    width:64px !important;
    min-width:64px !important;
    height:64px !important;
  }
  .uso-case-preview-content{
    grid-template-columns:minmax(0,1fr) 230px !important;
    gap:12px !important;
  }
  .uso-case-preview-stage{
    max-height:calc(96vh - 170px) !important;
  }
  .uso-case-preview-sidepanel{
    padding:10px !important;
    gap:8px !important;
  }
}

@media (max-width: 1100px), (max-height: 720px){
  .uso-case-preview-content{
    grid-template-columns:1fr !important;
  }
  .uso-case-preview-sidepanel{
    order:-1 !important;
  }
  .uso-case-preview-stage{
    height:58vh !important;
    max-height:58vh !important;
  }
}

@media (max-width: 760px){
  .uso-case-preview-dialog{
    width:98vw !important;
    max-width:98vw !important;
    padding:10px !important;
  }
  .uso-case-preview-stage{
    height:52vh !important;
    max-height:52vh !important;
  }
}


/* Структурированная вводная часть отчёта */
#uso-calc-app .intro-text { font-size: 14px; line-height: 1.58; color: #333; }
#uso-calc-app .intro-text p { text-align: justify; text-align-last: left; hyphens: auto; text-indent: 0 !important; margin: 0 0 10px; }
#uso-calc-app .intro-greeting { font-size: 15px; margin: 0 0 9px; text-indent: 0 !important; }
#uso-calc-app .intro-lead { font-size: 14px; line-height: 1.58; margin: 0 0 11px; }
#uso-calc-app .intro-info-block { margin: 12px 0 18px; padding: 0 0 14px; border-bottom: 1px solid #dfe3e8; }
#uso-calc-app .intro-info-row { margin: 0 0 8px !important; line-height: 1.58; }
#uso-calc-app .intro-info-block strong { font-weight: 700; color: #333; }
#uso-calc-app .intro-legal-note { margin: 12px 0 0 16px; padding: 8px 0 8px 14px; border-left: 4px solid #dfe3e8; color: #444; line-height: 1.58; text-align: justify; text-align-last: left; hyphens: auto; }
