:root {
  --bg: #f4f6f9;
  --panel: #ffffff;
  --line: #dfe3e8;
  --text: #1f2937;
  --muted: #6b7280;
  --accent: #635bff;
  --accent-soft: #eeedff;
  --danger: #b42318;
  --danger-soft: #fff0ee;
  --new: #067647;
  --new-soft: #ecfdf3;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, Pretendard, "Noto Sans KR", system-ui, sans-serif; color: var(--text); background: var(--bg); }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
code { font-family: "Cascadia Code", Consolas, monospace; word-break: break-all; }
.muted { color: var(--muted); }
.app-shell { display: grid; grid-template-columns: 280px minmax(0, 1fr); min-height: 100vh; }
.sidebar { background: #171923; color: white; padding: 22px 16px; overflow-y: auto; height: 100vh; position: sticky; top: 0; }
.brand h1 { font-size: 20px; margin: 0 0 6px; }.brand p { margin: 0; color: #9ca3af; font-size: 13px; }
.sidebar-actions { margin: 18px 0; }.admin-link { color: #c7d2fe; text-decoration: none; font-size: 13px; }
.cpk-list { display: flex; flex-direction: column; gap: 6px; }
.cpk-item { width: 100%; border: 0; background: transparent; color: #d1d5db; text-align: left; border-radius: 8px; padding: 10px 9px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; align-items: center; }
.cpk-item:hover, .cpk-item.active { background: #2a2d3a; color: white; }.cpk-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.cpk-count { color: #9ca3af; font-size: 12px; }
.content { min-width: 0; padding: 24px; }.content-header { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 18px; }.content-header h2 { margin: 0 0 4px; font-size: 23px; }.content-header p { margin: 0; }
.save-state { background: white; border: 1px solid var(--line); border-radius: 999px; padding: 7px 12px; font-size: 13px; white-space: nowrap; }
.table-wrap { overflow: auto; background: white; border: 1px solid var(--line); border-radius: 12px; }.translation-table { border-collapse: collapse; width: 100%; min-width: 1100px; }.translation-table th, .translation-table td { border-bottom: 1px solid var(--line); padding: 12px; vertical-align: middle; }.translation-table th { text-align: left; background: #f8fafc; position: sticky; top: 0; z-index: 1; font-size: 13px; }.translation-table tr:last-child td { border-bottom: 0; }.col-file { width: 320px; }.col-image { width: 340px; }.filename-cell code { display: block; font-size: 12px; margin-bottom: 8px; }
.image-box { display: flex; align-items: center; justify-content: center; background: #f0f2f5; border: 1px solid #d8dde5; overflow: hidden; max-width: 100%; }.image-box img { width: 100%; height: 100%; object-fit: contain; image-rendering: auto; }.image-missing { color: var(--danger); font-size: 13px; }.source-size { margin-top: 4px; color: var(--muted); font-size: 11px; }
textarea { width: 100%; min-width: 250px; min-height: 88px; resize: vertical; border: 1px solid #cfd5dd; border-radius: 8px; padding: 9px; line-height: 1.45; background: white; }.row-missing { background: #fffbfa; }
.badge { display: inline-block; border-radius: 999px; font-size: 11px; padding: 2px 7px; margin-right: 4px; }.badge.new { color: var(--new); background: var(--new-soft); }.badge.missing { color: var(--danger); background: var(--danger-soft); }
.empty { text-align: center; color: var(--muted); padding: 36px !important; }.primary, .secondary-button { border-radius: 8px; padding: 9px 14px; border: 1px solid transparent; }.primary { background: var(--accent); color: white; }.primary:disabled { opacity: .55; cursor: wait; }.secondary-button { background: white; color: var(--text); border-color: var(--line); text-decoration: none; }.error-box { color: var(--danger); background: var(--danger-soft); border: 1px solid #f6c7c2; padding: 10px; border-radius: 8px; }
.centered-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; }.login-card { width: min(420px, 100%); background: white; border: 1px solid var(--line); border-radius: 14px; padding: 26px; display: grid; gap: 12px; }.login-card h1 { margin: 0; }.login-card input { border: 1px solid #cfd5dd; border-radius: 8px; padding: 10px; }.text-link { text-align: center; color: var(--accent); text-decoration: none; font-size: 13px; }
.admin-page { max-width: 1400px; margin: 0 auto; padding: 28px; }.admin-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 20px; }.admin-header h1 { margin: 0 0 6px; }.admin-header p { margin: 0; }.admin-header-actions { display: flex; gap: 8px; }.admin-header-actions form { margin: 0; }.admin-card { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 20px; margin-bottom: 18px; }.admin-card h2 { margin-top: 0; }.card-head { display: flex; justify-content: space-between; gap: 20px; align-items: center; }.sync-result { margin-top: 14px; line-height: 1.6; }.sync-result details { margin-top: 8px; }.sync-result pre { max-height: 240px; overflow: auto; background: #f6f8fa; padding: 10px; border-radius: 8px; white-space: pre-wrap; word-break: break-all; }.admin-table-wrap { overflow: auto; }.admin-table { border-collapse: collapse; width: 100%; min-width: 800px; }.admin-table th, .admin-table td { padding: 10px; border-bottom: 1px solid var(--line); text-align: left; }.admin-table th { background: #f8fafc; }.admin-table input { width: 100px; border: 1px solid #cfd5dd; border-radius: 7px; padding: 7px; }
@media (max-width: 900px) { .app-shell { grid-template-columns: 1fr; }.sidebar { position: static; height: auto; }.content { padding: 14px; }.admin-header, .card-head { flex-direction: column; align-items: stretch; } }


.brand-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.brand-title h1 { margin: 0; }
.version-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 7px; border-radius: 999px; background: #2a2d3a; color: #c7d2fe; font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.zoomable-image { cursor: zoom-in; transition: opacity .15s ease, transform .15s ease; }
.zoomable-image:hover { opacity: .88; transform: scale(1.01); }
body.modal-open { overflow: hidden; }
.image-modal[hidden] { display: none !important; }
.image-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.image-modal-backdrop { position: absolute; inset: 0; background: rgba(10, 15, 25, .86); }
.image-modal-panel { position: relative; z-index: 1; width: min(94vw, 1500px); height: min(92vh, 1000px); background: #111827; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; box-shadow: 0 24px 70px rgba(0,0,0,.45); display: grid; grid-template-rows: auto minmax(0,1fr) auto; overflow: hidden; }
.image-modal-header { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 14px; background: #0b1020; color: white; }
.image-modal-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: "Cascadia Code", Consolas, monospace; font-size: 12px; }
.image-modal-close { flex: 0 0 auto; width: 38px; height: 38px; border: 0; border-radius: 8px; background: transparent; color: white; font-size: 30px; line-height: 1; }
.image-modal-close:hover { background: rgba(255,255,255,.12); }
.image-modal-content { min-height: 0; display: flex; align-items: center; justify-content: center; overflow: auto; padding: 18px; background-image: linear-gradient(45deg,#222936 25%,transparent 25%),linear-gradient(-45deg,#222936 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#222936 75%),linear-gradient(-45deg,transparent 75%,#222936 75%); background-size: 20px 20px; background-position: 0 0,0 10px,10px -10px,-10px 0; background-color: #181f2b; }
.image-modal-content img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; image-rendering: auto; }
.image-modal-help { padding: 8px 14px; background: #0b1020; color: #9ca3af; font-size: 12px; text-align: center; }
@media (max-width: 700px) { .image-modal { padding: 8px; }.image-modal-panel { width: 100%; height: 94vh; }.image-modal-content { padding: 8px; } }

/* v0.4.0 - collapsible CPK navigation + mobile layout */
.sidebar-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.sidebar-close { display: none; flex: 0 0 auto; width: 36px; height: 36px; border: 0; border-radius: 8px; background: #2a2d3a; color: #fff; font-size: 26px; line-height: 1; }
.sidebar-backdrop { display: none; }
.topbar { position: sticky; top: 0; z-index: 20; min-height: 64px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; margin: -24px -24px 0; background: rgba(244,246,249,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(8px); }
.menu-button { width: 42px; height: 42px; flex: 0 0 42px; border: 1px solid var(--line); border-radius: 10px; background: #fff; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 0; }
.menu-button span { width: 19px; height: 2px; border-radius: 999px; background: #374151; display: block; }
.menu-button:hover { background: #f8fafc; }
.topbar-current { min-width: 0; display: flex; align-items: baseline; gap: 9px; }
.topbar-label { flex: 0 0 auto; color: var(--muted); font-size: 12px; }
.topbar-current strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 17px; }
.content-meta-row { min-height: 50px; display: flex; align-items: center; padding: 10px 0 12px; }
.content-meta-row p { margin: 0; }
body.sidebar-collapsed .app-shell { grid-template-columns: 1fr; }
body.sidebar-collapsed .sidebar { display: none; }

@media (max-width: 900px) {
  body { overflow-x: hidden; }
  .app-shell { display: block; min-height: 100vh; }
  .content { padding: 0 10px 14px; }
  .topbar { margin: 0 -10px; padding: max(8px, env(safe-area-inset-top)) 10px 8px; min-height: 58px; }
  .topbar-current { display: block; }
  .topbar-label { display: block; margin-bottom: 1px; font-size: 10px; }
  .topbar-current strong { display: block; font-size: 15px; }
  .save-state { padding: 5px 8px; font-size: 11px; max-width: 86px; overflow: hidden; text-overflow: ellipsis; }
  .content-meta-row { min-height: 42px; padding: 8px 2px; font-size: 12px; }

  .sidebar { display: block !important; position: fixed; z-index: 1001; top: 0; left: 0; bottom: 0; width: min(86vw, 330px); height: 100dvh; padding: max(18px, env(safe-area-inset-top)) 14px 18px; transform: translateX(-105%); transition: transform .2s ease; box-shadow: 12px 0 40px rgba(0,0,0,.28); }
  body.sidebar-open .sidebar { transform: translateX(0); }
  .sidebar-close { display: inline-flex; align-items: center; justify-content: center; }
  .sidebar-backdrop { position: fixed; z-index: 1000; inset: 0; background: rgba(15,23,42,.52); }
  body.sidebar-open .sidebar-backdrop { display: block; }

  .table-wrap { overflow: visible; border: 0; background: transparent; border-radius: 0; }
  .translation-table { display: block; min-width: 0; width: 100%; }
  .translation-table thead { display: none; }
  .translation-table tbody { display: grid; gap: 12px; }
  .translation-table tr { display: block; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
  .translation-table td { display: block; width: 100%; border-bottom: 1px solid var(--line); padding: 10px; }
  .translation-table td:last-child { border-bottom: 0; }
  .translation-table td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; font-weight: 700; }
  .translation-table tr:last-child td { border-bottom: 0; }
  .filename-cell code { font-size: 11px; white-space: normal; overflow-wrap: anywhere; }
  .image-box { max-width: 100%; }
  textarea { min-width: 0; min-height: 96px; font-size: 16px; }
  .empty { display: block !important; border: 1px solid var(--line) !important; border-radius: 12px; background: #fff; }

  .image-modal { padding: 0; }
  .image-modal-panel { width: 100%; height: 100dvh; border: 0; border-radius: 0; }
  .image-modal-help { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
}


/* v0.5.0 - translation history */
.col-history { width: 82px; }
.history-button { white-space: nowrap; padding: 7px 12px; }
.history-modal[hidden] { display: none !important; }
.history-modal { position: fixed; inset: 0; z-index: 10020; display: flex; align-items: center; justify-content: center; padding: 20px; }
.history-modal-backdrop { position: absolute; inset: 0; background: rgba(10,15,25,.72); }
.history-modal-panel { position: relative; z-index: 1; width: min(92vw, 720px); max-height: min(86vh, 900px); display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border-radius: 14px; background: #fff; box-shadow: 0 24px 70px rgba(0,0,0,.35); }
.history-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 11px 14px; background: #111827; color: #fff; font-weight: 700; }
.history-modal-body { overflow: auto; padding: 12px; }
.history-entry { padding: 12px 4px; border-bottom: 1px solid var(--line); }
.history-entry:last-child { border-bottom: 0; }
.history-entry time { display: block; margin-bottom: 6px; color: var(--muted); font-size: 12px; }
.history-text { white-space: normal; overflow-wrap: anywhere; line-height: 1.55; }
.history-empty, .history-loading { padding: 28px 10px; text-align: center; color: var(--muted); }
.history-limit-note { font-size: 12px; font-weight: 400; }
.history-admin-table { min-width: 1000px; }
.history-time { white-space: nowrap; }
.history-admin-text { white-space: pre-wrap; overflow-wrap: anywhere; min-width: 320px; }
@media (max-width: 900px) {
  .history-button { width: 100%; }
  .history-modal { padding: 8px; }
  .history-modal-panel { width: 100%; max-height: 92dvh; }
}


/* v0.6.0 - translation status filter + admin button */
.sidebar-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}
.translation-filter-wrap { min-width: 0; }
.translation-filter {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 1px solid #3b4050;
  border-radius: 8px;
  padding: 0 30px 0 10px;
  background: #222633;
  color: #f3f4f6;
  font-size: 12px;
  outline: none;
}
.translation-filter:focus { border-color: #818cf8; box-shadow: 0 0 0 2px rgba(129,140,248,.18); }
.admin-link.admin-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid #4f46e5;
  border-radius: 8px;
  background: #4f46e5;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.admin-link.admin-button:hover { background: #4338ca; border-color: #4338ca; }
.translation-table tr[hidden] { display: none !important; }
@media (max-width: 900px) {
  .sidebar-actions { grid-template-columns: minmax(0, 1fr) auto; }
  .translation-filter { font-size: 13px; }
}


/* v0.7.0 - per-CPK translation counts and progress */
.cpk-item {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 8px;
  padding: 11px 10px;
}
.cpk-name { font-size: 14px; font-weight: 650; }
.cpk-total { color: #9ca3af; font-size: 11px; white-space: nowrap; }
.cpk-stats {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  color: #aeb5c2;
  font-size: 11px;
}
.cpk-stats strong { color: #f3f4f6; font-weight: 700; }
.cpk-progress-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}
.cpk-progress-track {
  display: block;
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #343947;
}
.cpk-progress-fill {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #66d6a3;
  transition: width .2s ease;
}
.cpk-progress-text {
  color: #cbd5e1;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.cpk-badges { grid-column: 1 / -1; min-height: 0; }
.cpk-badges:empty { display: none; }
.cpk-item.active .cpk-progress-track { background: #444a5b; }
@media (max-width: 900px) {
  .cpk-name { font-size: 15px; }
  .cpk-stats { font-size: 12px; }
  .cpk-progress-track { height: 10px; }
  .cpk-progress-text { font-size: 11px; }
}

/* v0.8.0 - image/text mode tabs + text translation workspace */
.mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin: 18px 0 10px;
}
.mode-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid #3b4050;
  border-radius: 9px;
  background: #222633;
  color: #d5d9e2;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}
.mode-tab:hover { background: #2a2f3d; color: #fff; }
.mode-tab.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.sidebar-actions.single { grid-template-columns: minmax(0, 1fr); margin-top: 10px; }

.text-file-item .text-file-name {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.text-file-cpk, .text-file-base { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.text-file-cpk { color: #fff; font-size: 13px; font-weight: 700; }
.text-file-base { color: #d8dee9; font-size: 15px; font-weight: 700; }

.text-entry-list { display: grid; gap: 14px; padding-bottom: 24px; }
.text-entry-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16,24,40,.03);
}
.text-entry-card[hidden] { display: none !important; }
.text-entry-index {
  position: absolute;
  top: 9px;
  right: 11px;
  min-width: 25px;
  height: 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border-radius: 999px;
  background: #f0f2f5;
  color: var(--muted);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.text-compare-row {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  min-height: 54px;
  border-bottom: 1px solid var(--line);
}
.text-compare-row:last-child { border-bottom: 0; }
.text-row-label {
  display: flex;
  align-items: flex-start;
  padding: 15px 12px;
  background: #f8fafc;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
}
.text-value {
  padding: 14px 44px 14px 14px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  font-family: "Cascadia Code", Consolas, "Noto Sans KR", monospace;
  font-size: 13px;
  line-height: 1.55;
}
.text-value-empty { color: #98a2b3; font-style: italic; font-family: inherit; }
.text-user-input {
  width: 100%;
  min-width: 0;
  min-height: 90px;
  margin: 9px 10px;
  width: calc(100% - 20px);
  border-radius: 8px;
  font-family: "Cascadia Code", Consolas, "Noto Sans KR", monospace;
  font-size: 13px;
  line-height: 1.55;
}
.text-empty { background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.sync-divider { height: 1px; background: var(--line); margin: 12px 0; }

@media (max-width: 900px) {
  .mode-tabs { margin-top: 16px; }
  .mode-tab { min-height: 42px; font-size: 13px; }
  .text-entry-list { gap: 10px; }
  .text-entry-card { border-radius: 10px; }
  .text-compare-row { display: block; }
  .text-row-label { display: block; padding: 8px 10px; border-bottom: 1px solid #eef0f3; }
  .text-value { padding: 11px 10px; font-size: 13px; line-height: 1.6; }
  .text-user-input { margin: 9px; width: calc(100% - 18px); min-height: 108px; font-size: 16px; }
  .text-entry-index { top: 6px; right: 8px; }
}

/* v0.9.0 - text category / priority controls */
.text-category-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin: 10px 0 5px;
}
.text-category-tab {
  min-height: 36px;
  border: 1px solid #3b4050;
  border-radius: 8px;
  background: #222633;
  color: #cfd4df;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.text-category-tab:hover { background: #2a2f3d; color: #fff; }
.text-category-tab.active {
  border-color: #7c6cff;
  background: #5b4ff4;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(91,79,244,.16);
}
.text-file-item.important-file {
  border-color: rgba(245, 158, 11, .68);
  box-shadow: inset 3px 0 0 #f59e0b;
}
.badge.important {
  border: 1px solid rgba(245,158,11,.5);
  background: #fff3cf;
  color: #92400e;
}
.text-admin-settings {
  min-width: 245px;
  white-space: nowrap;
}
.text-category-select {
  min-height: 34px;
  padding: 0 30px 0 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: #1f2937;
}
.important-toggle {
  min-height: 34px;
  margin-left: 6px;
  padding: 0 12px;
  border: 1px solid #cfd5df;
  border-radius: 7px;
  background: #fff;
  color: #667085;
  font-weight: 800;
  cursor: pointer;
}
.important-toggle.active {
  border-color: #f59e0b;
  background: #f59e0b;
  color: #fff;
}
.text-setting-state {
  display: inline-block;
  min-width: 44px;
  margin-left: 6px;
  color: var(--muted);
  font-size: 11px;
}
@media (max-width: 900px) {
  .text-category-tab { min-height: 40px; font-size: 13px; }
  .text-admin-settings { min-width: 220px; }
}

/* v1.0.0 - game/language scoped translation UI */
.brand-subrow { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:6px; }
.brand-subrow p { margin:0; }
.language-select { min-width:72px; padding:6px 8px; border-radius:8px; border:1px solid #3a4050; background:#252936; color:#fff; font-weight:800; }
.game-picker { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:8px; margin-top:12px; font-size:12px; color:#9aa4b5; }
.game-picker select { width:100%; min-width:0; padding:8px; border-radius:8px; border:1px solid #3a4050; background:#252936; color:#fff; }
.current-game-name { margin-top:8px; padding:9px 10px; border-radius:9px; background:#0f1219; border:1px solid #303645; font-weight:800; color:#fff; overflow-wrap:anywhere; }
.topbar-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-width:0; }
.download-button { border:1px solid #cfd5dd; border-radius:9px; background:#fff; padding:9px 12px; font-weight:800; cursor:pointer; white-space:nowrap; }
.download-button:hover:not(:disabled) { background:#f2f5f9; }
.download-button:disabled { opacity:.45; cursor:not-allowed; }
.text-marker { margin-top:7px; color:#7c3aed; font-size:12px; font-weight:800; letter-spacing:.02em; }
.game-name-table { min-width:1100px; }
.game-name-table input { width:180px; max-width:none; }
@media (max-width:900px) {
  .text-topbar { grid-template-columns:auto minmax(0,1fr); }
  .text-topbar .topbar-actions { grid-column:1 / -1; width:100%; justify-content:space-between; }
  .download-button { flex:1; }
  .current-game-name { font-size:14px; }
}

/* v1.1.0 - paged text editor, story speakers, history/comments */
.text-pager {
  position: sticky;
  top: 8px;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #d7dce4;
  border-radius: 12px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 5px 18px rgba(15,23,42,.08);
  backdrop-filter: blur(8px);
}
.text-pager[hidden] { display:none !important; }
.pager-buttons { display:flex; align-items:center; gap:12px; }
.pager-button { min-width:110px; min-height:42px; border:1px solid #5b4ff4; border-radius:9px; background:#5b4ff4; color:#fff; font-weight:850; cursor:pointer; }
.pager-button:hover:not(:disabled) { filter:brightness(.96); }
.pager-button:disabled { opacity:.35; cursor:not-allowed; }
.page-size-control select { min-height:40px; padding:0 34px 0 11px; border:1px solid #cfd5df; border-radius:9px; background:#fff; font-weight:750; }
.story-aware.has-speaker { grid-template-columns:74px 150px minmax(0,1fr); }
.speaker-cell { display:flex; flex-direction:column; justify-content:center; gap:2px; padding:10px 12px; border-right:1px solid var(--line); background:#f5f3ff; color:#5b21b6; overflow-wrap:anywhere; }
.speaker-cell strong { font-size:13px; }
.speaker-cell small { color:#8b5cf6; font-family:Consolas,monospace; font-size:10px; }
.speaker-cell.empty-speaker { background:#fafafa; }
.text-user-editor-wrap { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:stretch; padding-right:10px; }
.text-user-editor-wrap .text-user-input { width:100%; margin-right:0; }
.text-entry-actions { display:flex; flex-direction:column; gap:7px; justify-content:center; min-width:92px; }
.text-entry-actions button { min-height:36px; border:1px solid #cfd5df; border-radius:8px; background:#fff; color:#344054; font-weight:800; cursor:pointer; }
.text-entry-actions button:hover { background:#f5f7fa; }
.text-entry-actions .entry-comment-button.issue-active { border-color:#2563eb; background:#2563eb; color:#fff; box-shadow:0 0 0 2px rgba(37,99,235,.14); }
.text-modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.58); }
.text-modal[hidden] { display:none !important; }
.text-modal-card { width:min(780px,100%); max-height:min(82vh,850px); display:flex; flex-direction:column; overflow:hidden; border-radius:14px; background:#fff; box-shadow:0 25px 70px rgba(0,0,0,.28); }
.text-modal-head { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line); }
.text-modal-head h2 { margin:0; font-size:18px; }
.text-modal-head button { width:36px; height:36px; border:0; border-radius:8px; background:#f2f4f7; font-size:22px; cursor:pointer; }
.text-modal-body { overflow:auto; padding:16px; }
.text-history-list,.comment-list { display:grid; gap:9px; }
.text-history-item,.comment-item { padding:10px 12px; border:1px solid #e4e7ec; border-radius:9px; background:#fafbfc; }
.text-history-item time,.comment-item time { color:#667085; font-size:11px; font-variant-numeric:tabular-nums; }
.text-history-item pre { margin:7px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; font-family:Consolas,"Noto Sans KR",monospace; }
.comment-compose { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; margin-top:14px; }
.comment-compose textarea { min-height:88px; padding:10px; border:1px solid #cfd5df; border-radius:9px; resize:vertical; }
.comment-compose button { min-width:80px; }
.issue-actions { display:flex; justify-content:flex-end; align-items:center; min-height:40px; margin-top:10px; }
.danger-outline { border-color:#ef4444 !important; color:#b42318 !important; }
.speaker-name-table { min-width:1180px; }
.speaker-name-table input { width:170px; }
@media (max-width:900px) {
  .text-pager { position:relative; top:auto; display:grid; grid-template-columns:1fr; gap:9px; padding:10px; }
  .pager-buttons { display:grid; grid-template-columns:1fr auto 1fr; gap:7px; }
  .pager-button { min-width:0; min-height:44px; }
  .page-size-control select { width:100%; min-height:44px; }
  .story-aware.has-speaker { display:grid; grid-template-columns:82px minmax(0,1fr); }
  .story-aware.has-speaker .text-row-label { grid-column:1 / -1; }
  .speaker-cell { border-right:1px solid var(--line); border-bottom:0; }
  .text-user-editor-wrap { padding:0 9px 9px 0; grid-template-columns:minmax(0,1fr); }
  .text-entry-actions { flex-direction:row; min-width:0; padding-left:9px; }
  .text-entry-actions button { flex:1; min-height:42px; }
  .comment-compose { grid-template-columns:1fr; }
}
.text-row-label .text-marker{margin-top:5px;color:#7c3aed;font-size:11px;line-height:1.25;font-weight:800;white-space:nowrap}

/* v1.1.2 - text row layout hotfix */
.text-row-label {
  flex-direction: column;
  gap: 4px;
}
.text-row-label .text-marker {
  margin-top: 0;
  display: block;
  max-width: 100%;
  white-space: nowrap;
}
@media (max-width: 900px) {
  .text-row-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }
}

/* v1.1.3 - maintenance controls */
.maintenance-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.maintenance-state { font-weight:800; color:#166534; background:#dcfce7; border:1px solid #bbf7d0; border-radius:999px; padding:8px 12px; }
.maintenance-state.active { color:#991b1b; background:#fee2e2; border-color:#fecaca; }
.maintenance-button { min-width:100px; border:1px solid #cfd5dd; border-radius:9px; padding:10px 15px; background:#fff; color:#344054; font-weight:850; }
.maintenance-on.selected { background:#dc2626; border-color:#dc2626; color:#fff; }
.maintenance-off.selected { background:#16a34a; border-color:#16a34a; color:#fff; }
.maintenance-button:disabled { opacity:.55; cursor:wait; }

/* v1.1.5 - per-game background DB sync */
.sync-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sync-game-select{min-width:170px;padding:10px 12px;border-radius:10px;border:1px solid var(--border,#d7dce5);background:var(--surface,#fff);font:inherit}.sync-progress{margin-top:14px}.sync-status-line{font-weight:800;margin-bottom:8px}.sync-status-line.running{color:#5b4df5}.sync-status-line.completed{color:#15803d}.sync-status-line.failed{color:#b91c1c}.sync-log{max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#111827;color:#e5e7eb;padding:12px;border-radius:10px;font-size:12px;line-height:1.55}.sync-final-result{margin-top:14px}

/* v1.1.7 - admin content tabs + text file exclusion */
.admin-manage-head { margin-bottom: 14px; }
.admin-game-picker { display:flex; align-items:center; gap:9px; font-weight:800; white-space:nowrap; }
.admin-game-picker select { min-width:170px; min-height:38px; border:1px solid var(--line); border-radius:8px; background:#fff; padding:0 34px 0 10px; }
.admin-speaker-section { padding:16px 0 18px; border-top:1px solid var(--line); }
.admin-speaker-section h3 { margin:0 0 6px; }
.admin-manage-tabs { display:flex; gap:8px; margin:2px 0 14px; border-top:1px solid var(--line); padding-top:16px; }
.admin-manage-tab { border:1px solid var(--line); background:#fff; color:var(--text); border-radius:9px; padding:10px 16px; font-weight:800; cursor:pointer; }
.admin-manage-tab.active { background:var(--accent); border-color:var(--accent); color:#fff; }
.admin-manage-panel[hidden] { display:none !important; }
.exclude-toggle { min-height:34px; margin-left:6px; padding:0 12px; border:1px solid #cfd5df; border-radius:7px; background:#fff; color:#667085; font-weight:800; cursor:pointer; }
.exclude-toggle.active { border-color:#dc2626; background:#dc2626; color:#fff; }
.exclude-file-button { border:1px solid #ef4444; background:#fff; color:#b42318; border-radius:8px; padding:9px 12px; font-weight:800; cursor:pointer; }
.exclude-file-button.active { background:#b42318; color:#fff; }
.exclude-file-button:disabled { opacity:.5; cursor:not-allowed; }
.text-file-item.excluded-file { opacity:.72; border-style:dashed; }
.badge.excluded { border:1px solid rgba(220,38,38,.4); background:#fee2e2; color:#991b1b; }
@media (max-width:900px){
  .admin-manage-head { align-items:flex-start; flex-direction:column; }
  .admin-game-picker { width:100%; justify-content:space-between; }
  .admin-game-picker select { flex:1; }
  .exclude-file-button { width:100%; }
}
@media (max-width:900px){
  .text-topbar .topbar-actions { flex-wrap:wrap; }
  .text-topbar .exclude-file-button, .text-topbar .download-button { flex:1 1 240px; width:auto; }
}


/* v1.1.8 - issue filtering, URL state, dynamic speaker width */
.badge.issue-present { background:#dbeafe; color:#1d4ed8; border:1px solid #93c5fd; font-weight:800; }
.download-button { background:#2563eb !important; border-color:#2563eb !important; color:#fff !important; }
.download-button:hover:not(:disabled) { background:#1d4ed8 !important; border-color:#1d4ed8 !important; }
.download-button:disabled { background:#2563eb !important; color:#fff !important; opacity:.42; }
.pager-right-controls { display:flex; align-items:center; gap:9px; margin-left:auto; }
.issue-only-button { min-height:40px; padding:0 14px; border:1px solid #cfd5df; border-radius:9px; background:#fff; color:#344054; font-weight:800; cursor:pointer; white-space:nowrap; }
.issue-only-button:hover { background:#f5f7fa; }
.issue-only-button.active { background:#2563eb; border-color:#2563eb; color:#fff; box-shadow:0 0 0 2px rgba(37,99,235,.14); }
.story-aware.has-speaker { grid-template-columns:74px var(--speaker-column-width, 150px) minmax(0,1fr); }
.speaker-cell { min-width:0; }
.speaker-cell strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:900px) {
  .pager-right-controls { display:grid; grid-template-columns:1fr 1fr; width:100%; margin-left:0; }
  .issue-only-button, .page-size-control select { width:100%; min-height:44px; }
  .story-aware.has-speaker { grid-template-columns:minmax(82px,var(--speaker-column-width,110px)) minmax(0,1fr); }
}


/* v1.1.9 - public settings + per-language translation exclusion */
.settings-button { min-height:34px; padding:0 13px; border:1px solid #3b4050; border-radius:8px; background:#222633; color:#fff; font-weight:800; cursor:pointer; }
.settings-button:hover { background:#303645; }
.settings-modal[hidden] { display:none !important; }
.settings-modal { position:fixed; inset:0; z-index:1400; display:grid; place-items:center; padding:20px; }
.settings-modal-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.66); }
.settings-modal-panel { position:relative; z-index:1; width:min(980px,96vw); max-height:88vh; overflow:hidden; display:flex; flex-direction:column; background:#fff; border-radius:14px; box-shadow:0 24px 80px rgba(0,0,0,.26); }
.settings-modal-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 18px; border-bottom:1px solid var(--line); }
.settings-modal-header strong { font-size:17px; }
.settings-modal-header button { width:36px; height:36px; border:0; border-radius:8px; background:#f2f4f7; font-size:22px; cursor:pointer; }
.settings-modal-body { padding:18px; overflow:auto; }
.settings-menu-button { width:100%; min-height:52px; text-align:left; border:1px solid #d0d5dd; border-radius:10px; background:#fff; padding:0 16px; font-weight:850; cursor:pointer; }
.settings-menu-button:hover { background:#f8fafc; border-color:#98a2b3; }
.settings-panel-head { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.settings-speaker-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:10px; }
.settings-speaker-table { width:100%; border-collapse:collapse; min-width:760px; }
.settings-speaker-table th,.settings-speaker-table td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
.settings-speaker-table th { background:#f8fafc; font-size:12px; color:#475467; }
.settings-speaker-table tr:last-child td { border-bottom:0; }
.settings-speaker-input { width:100%; min-width:180px; min-height:36px; border:1px solid #cfd5df; border-radius:7px; padding:6px 9px; }
.text-source-wrap { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px; }
.text-source-wrap .text-value { min-width:0; }
.translation-exclude-button { align-self:center; margin:9px 10px 9px 0; min-height:34px; max-width:190px; border:1px solid #cfd5df; border-radius:8px; background:#fff; color:#475467; padding:6px 10px; font-weight:800; cursor:pointer; white-space:normal; }
.translation-exclude-button:hover { background:#f8fafc; }
.translation-exclude-button.active { background:#7c3aed; border-color:#7c3aed; color:#fff; }
.translation-excluded-entry { box-shadow:inset 4px 0 0 #7c3aed; }
@media (max-width:900px) {
  .settings-modal { padding:8px; }
  .settings-modal-panel { width:100%; max-height:94vh; }
  .text-source-wrap { display:block; }
  .translation-exclude-button { display:block; width:calc(100% - 20px); max-width:none; margin:0 10px 10px; }
  .pager-right-controls { grid-template-columns:1fr 1fr; }
  .page-size-control { grid-column:1 / -1; }
}

/* v1.1.10 */
.admin-game-group-row td { background:#eef2ff; border-top:2px solid #c7d2fe; color:#312e81; padding:10px 12px; }
.admin-game-group-row strong { font-size:15px; }

.content-meta-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.content-meta-row .pager-buttons,.content-meta-row .pager-button,.content-meta-row #pageInfo{font-size:12px}.translation-exclude-button{font-size:11px!important}.text-pager{justify-content:flex-end}

/* Account controls follow the existing dark sidebar and shared buttons. */
.sidebar-account { margin-top:18px; padding-top:16px; border-top:1px solid #353949; }
.sidebar-account-identity { display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:12px; }
.sidebar-account-label { width:100%; color:#9ca3af; }
.sidebar-account-identity strong { color:#f3f4f6; overflow-wrap:anywhere; }
.sidebar-account-role { color:#c7d2fe; background:#2a2d3a; border-radius:6px; padding:3px 6px; font-size:11px; }
.sidebar-account-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:10px; }
.sidebar-account-actions form { margin:0; }
.sidebar-account-logout { min-height:36px; padding:0 11px; border:1px solid #454b5c; border-radius:8px; background:#222633; color:#e5e7eb; font-size:12px; font-weight:700; }
.sidebar-account-logout:hover { background:#2a2d3a; border-color:#6b7280; }
.audit-card-head { margin-bottom:16px; }
.audit-card-head h2 { margin-bottom:6px; }
.audit-card-head p { margin:0; font-size:13px; }
.audit-pagination { display:flex; gap:8px; }
.audit-pagination .secondary-button { font-size:13px; white-space:nowrap; }
.audit-pagination button:disabled { opacity:.4; cursor:not-allowed; }
.audit-time { white-space:nowrap; font-size:12px; }
.audit-table { font-size:13px; }
.audit-page .admin-header-actions { flex-wrap:wrap; }
.translation-confirm-dialog { width:min(440px,calc(100% - 36px)); max-height:82vh; overflow:auto; padding:0; border:1px solid var(--line); border-radius:14px; background:var(--panel); color:var(--text); box-shadow:0 25px 70px rgba(0,0,0,.28); }
.translation-confirm-dialog::backdrop { background:rgba(15,23,42,.58); }
.translation-confirm-message { margin:0 0 18px; font-size:14px; line-height:1.6; }
.translation-confirm-option { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--muted); cursor:pointer; }
.translation-confirm-option input { width:16px; height:16px; margin:0; accent-color:var(--accent); }
.translation-confirm-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:22px; }
.translation-confirm-actions button { font-size:13px; }
.sidebar-account a:focus-visible,.sidebar-account button:focus-visible,.translation-confirm-dialog button:focus-visible { outline:2px solid #818cf8; outline-offset:3px; }
@media(max-width:700px) { .audit-page { padding:14px; }.audit-page .admin-card { padding:14px; }.audit-page .admin-header h1 { font-size:22px; }.audit-pagination { width:100%; justify-content:flex-end; } }

.text-file-item .cpk-stats { flex-wrap:wrap; column-gap:8px; row-gap:4px; }
#bulkExcludeUntranslatedButton { color:var(--accent); border-color:#c7c2ff; }
#bulkExcludeUntranslatedButton:disabled { opacity:.5; cursor:wait; }

.settings-speaker-status { display:inline-block; min-width:64px; color:var(--muted); font-size:12px; white-space:nowrap; }
.settings-speaker-status.save-error { color:var(--danger); }
.settings-speaker-input:disabled { background:#f2f4f7; color:var(--muted); cursor:not-allowed; }

.story-speaker-notice { margin:0 0 16px; padding:14px 16px; border:1px solid #d5d1ff; border-radius:12px; background:var(--accent-soft); color:var(--text); font-size:13px; line-height:1.65; }
.story-speaker-notice[hidden] { display:none!important; }
.story-speaker-notice strong { color:var(--accent); font-size:13px; }
.story-speaker-notice p { margin:6px 0 0; }

.story-speaker-notice p { white-space:pre-line; }

.force-text-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 18px; padding:14px; border:1px solid var(--line); border-radius:9px; background:#f8fafc; }
.force-text-controls .primary { font-size:13px; font-weight:700; }
.force-text-controls [role="status"] { font-size:12px; }
.audit-value-cell { vertical-align:top; width:28%; min-width:260px; }
.audit-value-scroll { line-height:1.5; max-height:4.5em; overflow-y:auto; white-space:pre-wrap; overflow-wrap:anywhere; padding-right:8px; }
.audit-table td { vertical-align:top; }

.audit-table td:nth-child(4) code { display:block; max-height:4.5em; line-height:1.5; overflow-y:auto; }

.sidebar { display:flex; flex-direction:column; overflow:hidden; }
.sidebar > .cpk-list { flex:1; min-height:0; overflow-y:auto; }
.sidebar > :not(.cpk-list) { flex-shrink:0; }
.sidebar .cpk-item { flex-shrink:0; }
.sidebar-account { margin-top:14px; }
.sidebar-superadmin { width:100%; margin-top:10px; }

.db-backup-card .muted { font-size:13px; line-height:1.6; }
.db-backup-actions { display:flex; gap:7px; flex-wrap:wrap; }
.db-backup-actions .secondary-button { font-size:12px; white-space:nowrap; }
.db-backup-table { font-size:13px; }
.login-password-help { font-size:12px; line-height:1.6; margin:0; }

.speaker-game-buttons{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.upload-file-options{display:grid;gap:16px}.upload-file-options input[type=file]{max-width:100%}.live-notice{font-size:12px;color:#b45309;margin:6px 0}

/* Keep the account footer fixed, with a subtle scrollbar matching the sidebar. */
.sidebar > .cpk-list { scrollbar-width:thin; scrollbar-color:#50576c transparent; padding-right:4px; }
.sidebar > .cpk-list::-webkit-scrollbar { width:6px; }
.sidebar > .cpk-list::-webkit-scrollbar-track { background:transparent; }
.sidebar > .cpk-list::-webkit-scrollbar-thumb { background:#50576c; border-radius:6px; }
.sidebar > .cpk-list::-webkit-scrollbar-thumb:hover { background:#707891; }
#bulkExcludeUntranslatedButton { font-size:calc(1rem - 2pt); }
@media(max-width:900px) { .sidebar { display:flex !important; } }

#uploadTextFileButton { background:var(--new); border-color:var(--new); color:#fff; }
#uploadTextFileButton:hover:not(:disabled) { background:#085d3a; border-color:#085d3a; }
#uploadTextFileButton:focus-visible { outline:2px solid #47cd89; outline-offset:3px; }

.admin-history-pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.admin-history-pager .secondary-button{min-width:36px;text-align:center}.admin-history-pager button:disabled{opacity:.4;cursor:not-allowed}

/* Theme controls replace the visible saving status in the translation topbar. */
.theme-toggle { display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text);font-size:13px;font-weight:700;white-space:nowrap; }
.theme-toggle svg { width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.theme-toggle:hover { background:var(--accent-soft); }
.theme-toggle:focus-visible { outline:2px solid var(--accent);outline-offset:3px; }
#saveState[hidden],.save-error-toast[hidden] { display:none !important; }
.save-error-toast { position:fixed;right:20px;bottom:20px;z-index:2000;max-width:min(420px,calc(100vw - 40px));padding:12px 16px;border:1px solid var(--danger);border-radius:10px;background:var(--danger-soft);color:var(--danger);box-shadow:0 8px 28px rgba(0,0,0,.2);font-size:13px; }
html[data-theme="dark"] { --bg:#10141d;--panel:#1b2230;--line:#364154;--text:#e6eaf1;--muted:#a7b0c0;--accent-soft:#2c254a;--danger:#fda29b;--danger-soft:#3b2028;--new-soft:#153c2d;--surface:#1b2230;--border:#364154; }
html[data-theme="dark"] body { background:var(--bg);color:var(--text); }
html[data-theme="dark"] .topbar { background:rgba(16,20,29,.96); }
html[data-theme="dark"] :is(.table-wrap,.text-entry-card,.text-empty,.empty,.admin-card,.login-card,.text-modal-card,.history-modal-panel,.settings-modal-panel,.translation-confirm-dialog) { background:var(--panel);color:var(--text);border-color:var(--line); }
html[data-theme="dark"] :is(input,textarea,select) { background:#141b27;color:var(--text);border-color:var(--line); }
html[data-theme="dark"] :is(input,textarea)::placeholder { color:#8894a7; }
html[data-theme="dark"] :is(.translation-table th,.admin-table th,.text-row-label,.text-entry-index,.force-text-controls,.text-history-item,.comment-item,.sync-result pre,.translation-table tr) { background:var(--panel);color:var(--text);border-color:var(--line); }
html[data-theme="dark"] :is(.text-modal-head,.settings-modal-header,.history-modal-header) { background:#151c28;color:var(--text);border-color:var(--line); }
html[data-theme="dark"] :is(.secondary-button,.menu-button,.settings-menu-button,.maintenance-button:not(.selected),.admin-manage-tab:not(.active),.issue-only-button:not(.active),.text-entry-actions button:not(.issue-active),.text-modal-head button,.settings-modal-header button,.translation-exclude-button:not(.active),.exclude-file-button:not(.active)) { background:#242e3e;color:var(--text);border-color:var(--line); }
html[data-theme="dark"] .menu-button span { background:var(--text); }
html[data-theme="dark"] :is(.secondary-button,.menu-button,.settings-menu-button,.issue-only-button:not(.active),.text-entry-actions button:not(.issue-active)):hover { background:#303c50; }
html[data-theme="dark"] .speaker-cell { background:#28223e;color:#d4c5ff; }
html[data-theme="dark"] .speaker-cell small { color:#b9a3ff; }
html[data-theme="dark"] .speaker-cell.empty-speaker { background:#202838; }
html[data-theme="dark"] :is(.text-marker,.text-row-label .text-marker,.story-speaker-notice strong,#bulkExcludeUntranslatedButton) { color:#b9b0ff; }
html[data-theme="dark"] .story-speaker-notice { border-color:#514375; }
html[data-theme="dark"] .image-box { background:#141b27;border-color:var(--line); }
html[data-theme="dark"] :is(.text-history-item time,.comment-item time,.text-value-empty) { color:var(--muted); }
html[data-theme="dark"] .row-missing { background:var(--danger-soft); }
html[data-theme="dark"] .settings-speaker-input:disabled { background:#242e3e;color:var(--muted); }
html[data-theme="dark"] .exclude-file-button { color:var(--danger); }
html[data-theme="dark"] .exclude-file-button.active { color:#fff; }
html[data-theme="dark"] #uploadTextFileButton { background:#067647;border-color:#067647;color:#fff; }
html[data-theme="dark"] #uploadTextFileButton:hover:not(:disabled) { background:#085d3a;border-color:#085d3a; }
@media(max-width:600px) { .theme-toggle span { display:none; }.theme-toggle { padding:8px;min-width:38px; } }
html[data-theme="dark"] .settings-speaker-table th { background:#242e3e;color:var(--text); }
html[data-theme="dark"] .admin-game-group-row td { background:#28223e;color:#d4c5ff;border-color:#514375; }
html[data-theme="dark"] .danger-outline { color:var(--danger) !important; }
html[data-theme="dark"] .badge.new { color:#75e0a7; }
html[data-theme="dark"] .badge.important { background:#443019;color:#fec84b; }

html[data-theme="dark"] .text-pager { background:rgba(27,34,48,.96);border-color:var(--line);box-shadow:0 5px 18px rgba(0,0,0,.24);color:var(--text); }

/* Image translation assets use the same controls as text translation. */
.image-filter-bar { justify-content:flex-start; }
.image-filter-bar #imageZipDownload { margin-left:auto;font-size:12px; }
.image-filter-bar>span { color:var(--muted);font-size:12px; }
.image-asset-actions { display:flex;align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap; }
.image-asset-actions .source-size { margin-top:0; }
.image-small-button { font-size:11px;padding:3px 7px;line-height:1.35;min-height:0; }
.translation-table .col-file { width:220px; }
.translation-table .col-image { width:250px; }
.translation-table .filename-cell code { overflow-wrap:anywhere; }
.translation-table .text-user-editor-wrap { min-width:220px; }
.translation-table .translation-input { min-height:100px; }
.comment-item span { white-space:pre-wrap;overflow-wrap:anywhere; }

/* Compact viewer and shared discussion events. */
.image-modal .image-modal-panel { width:min(400px,calc(100vw - 16px));height:min(400px,calc(100dvh - 16px));border-radius:14px;border:1px solid rgba(255,255,255,.16);grid-template-rows:auto minmax(0,1fr) auto auto; }
.image-modal-header { flex-wrap:wrap;gap:5px;padding:7px 10px; }
.image-modal-name { flex-basis:100%; }
.image-viewer-controls { display:flex;align-items:center;justify-content:flex-end;gap:5px;width:100%; }
.image-viewer-scales { display:flex;gap:4px; }
.image-viewer-scales button { padding:5px 7px;font-size:11px;border:1px solid #46536a;border-radius:5px;background:#202c40;color:#e6eaf1; }
.image-viewer-scales button.active { background:#475b7c;border-color:#a4b9dc;color:#fff; }
.image-modal-content { display:block;padding:0;overflow:auto; }
.image-modal-content img { max-width:none;max-height:none;margin:auto;object-fit:initial; }
.translation-table td { vertical-align:top; }
.issue-closed-event { background:#e0e7ef;border-color:#a7b7ca;color:#24466b; }
.issue-closed-event time { color:#315679; }
.issue-closed-event span { display:block;font-weight:600;margin-top:4px; }
html[data-theme="dark"] .comment-item.issue-closed-event { background:#2d3b50;border-color:#506781;color:#a9d2ff; }
html[data-theme="dark"] .issue-closed-event time { color:#b1c8e4; }
.mobile-modal-close { display:none; }
@media(max-width:700px) {
 .mobile-modal-close { display:block;flex-shrink:0;width:calc(100% - 20px);margin:8px 10px;padding:12px;font-size:16px;min-height:48px; }
 .history-modal-panel { grid-template-rows:auto minmax(0,1fr) auto; }
 .image-modal-help { display:none; }
 .image-modal .mobile-modal-close { background:#28364b;border-color:#4c607b;color:#fff; }
}

/* Center small images while keeping enlarged images fully reachable. */
.image-modal-content { display:flex; }
.image-modal-content img { flex:none;margin:auto; }
.image-modal-content[data-scale="fit"] { overflow:hidden; }
@media(max-width:900px) {
 .text-topbar { position:static; }
}

@media(max-width:900px) {
 #textPager .pager-right-controls { min-width:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 #textPager #bulkExcludeUntranslatedButton { grid-column:1 / -1;min-width:0;width:100%;white-space:normal;overflow-wrap:anywhere; }
 #textPager .pager-right-controls>* { min-width:0; }
}

.admin-section-summary { display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;color:var(--text); }
.admin-section-summary::-webkit-details-marker { display:none; }
.admin-section-summary::before { content:'▶';flex:none;font-size:14px;color:var(--muted); }
.admin-section-collapse[open]>.admin-section-summary::before { content:'▼'; }
.admin-section-summary h2 { margin:0;font-size:20px; }
.admin-section-summary:focus-visible { outline:2px solid var(--accent);outline-offset:6px;border-radius:4px; }
.admin-section-body { padding-top:16px; }
.admin-section-collapse:not([open])>.admin-section-body { display:none; }

.image-modal .image-modal-panel { grid-template-rows:auto minmax(0,1fr) auto auto auto; }
.image-version-tools { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;padding:7px 10px;background:#0b1020; }
.image-version-tools[hidden],#imageBackupRestore[hidden] { display:none!important; }
.image-version-tools .secondary-button { background:#26354b;color:#e6eaf1;border-color:#4d6280; }
.image-version-navigation { display:flex;gap:5px;margin-left:auto; }
.image-filter-bar #imageZipUpload { font-size:12px; }
@media(max-width:900px) {
 .image-filter-bar { flex-wrap:wrap; }
 .image-filter-bar #imageZipUpload,.image-filter-bar #imageZipDownload { margin-left:0;max-width:100%;white-space:normal; }
}

#textPager>#bulkExcludeUntranslatedButton { margin-right:auto;flex:none; }
@media(max-width:900px) {
 #textPager { flex-wrap:wrap; }
 #textPager>#bulkExcludeUntranslatedButton { grid-column:1 / -1;flex-basis:100%;text-align:left; }
}

.image-zip-actions { display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto; }
.image-filter-bar .image-zip-actions #imageZipUpload { font-size:inherit; }
.image-filter-bar .image-zip-actions #imageZipDownload { margin-left:0; }
.zip-upload-overlay { position:fixed;inset:0;z-index:11000;background:rgba(10,15,25,.72);display:flex;align-items:center;justify-content:center;padding:16px; }
.zip-upload-overlay[hidden] { display:none!important; }
.zip-upload-panel { width:min(520px,100%);max-height:85dvh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 20px 65px rgba(0,0,0,.35); }
.zip-upload-panel h2 { margin:0 0 10px;font-size:20px; }
#zipUploadFilename { overflow-wrap:anywhere; }
#zipUploadProgress { width:100%;height:20px;accent-color:var(--accent); }
.zip-upload-metrics { display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-variant-numeric:tabular-nums;font-size:13px; }
.zip-upload-buttons { display:flex;justify-content:flex-end;gap:10px;margin-top:20px; }
#zipUploadResult { white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font-size:12px; }
@media(max-width:900px) { .image-zip-actions { width:100%;flex-wrap:wrap;margin-left:0; } }
.image-recover-button,.image-restore-label{background:var(--surface-secondary,#e5e7eb);color:var(--muted,#64748b);border:1px solid var(--border,#cbd5e1)}
.image-restore-label{padding:4px 8px;border-radius:5px;font-size:12px}
.image-version-navigation[hidden]{display:none}
html[data-theme="dark"] :is(.image-recover-button,.image-restore-label){background:#303b4c;color:var(--muted);border-color:var(--line)}

.login-autofill-username{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);border:0!important;pointer-events:none}

@media(min-width:901px){
 .translation-table .col-file,.translation-table .filename-cell{width:74px;max-width:74px;padding-left:8px;padding-right:8px}
 .translation-table .filename-cell code{width:58px;max-width:58px;white-space:normal;overflow-wrap:anywhere;word-break:normal}
}
.board-page{background:var(--bg);color:var(--text)}
.board-shell{max-width:1200px;margin:24px auto;padding:0 20px 40px}
.board-header{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:20px}.board-header>div{display:flex;align-items:center;gap:8px}.board-header h1{font-size:24px;margin:0}.board-header .theme-toggle{margin-left:auto}
.board-language-tabs,.board-list-actions,.board-pager,.board-item-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}.board-language-tabs .active{background:#2563eb;color:white}.board-list-actions{justify-content:space-between}.board-pager{justify-content:center}
.board-table{border-collapse:collapse;width:100%}.board-table th,.board-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.board-table th{font-size:13px;background:var(--panel,#f8fafc)}.board-table td:nth-child(2){width:55%;overflow-wrap:anywhere}.board-table a{color:#2563eb;text-decoration:none}.board-table td:last-child{white-space:nowrap;font-size:12px}
.board-article,.board-comments{margin:20px 0;padding:24px;background:var(--panel,#fff);border:1px solid var(--line);border-radius:12px}.board-article h2{overflow-wrap:anywhere}
.board-reading-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:20px}.board-reading-columns:has(.board-ai:not([hidden])){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.board-body,.board-ai-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.board-ai{padding:16px;background:#dedfe3;color:#30343c;border-radius:8px;border:1px solid #b9bec7}.board-ai h3{font-size:13px;margin:0 0 12px}.board-comment{padding:18px 0;border-bottom:1px solid var(--line)}.board-admin-badge{white-space:nowrap}
.board-form{display:flex;flex-direction:column;gap:16px;margin-top:20px}.board-form label{display:flex;flex-direction:column;gap:6px;font-size:13px}.board-form input,.board-form textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel,#fff);color:var(--text);font:inherit}.board-form textarea{resize:vertical}.board-form .board-item-actions{margin:0}.board-comment-editor{background:var(--bg);padding:16px;border-radius:8px}
html[data-theme="dark"] .board-ai{background:#343841;color:#dce0e7;border-color:#4d5461}html[data-theme="dark"] .board-table a{color:#93c5fd}
@media(max-width:700px){.board-shell{padding:0 12px 30px;margin:16px auto}.board-header{gap:12px}.board-header h1{font-size:20px}.board-table th,.board-table td{padding:8px;font-size:12px}.board-table td:last-child{white-space:normal;min-width:76px}.board-article,.board-comments{padding:16px}.board-reading-columns:has(.board-ai:not([hidden])){grid-template-columns:minmax(0,1fr)}}

.settings-language-lock{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.settings-language-lock label{display:flex;flex-direction:column;gap:10px}.settings-language-lock select{padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text)}.settings-language-lock p{font-size:12px;margin-bottom:0}

.text-topbar :is(#clearUserTranslationsButton,#excludeTextFileButton,#uploadTextFileButton,#downloadUserTranslation){font-size:13px}

.user-row>label.text-row-label{white-space:pre-line}

.text-row-label.ai-translation-label{color:#2563eb!important;font-weight:800}html[data-theme="dark"] .text-row-label.ai-translation-label{color:#93c5fd!important}

#textAiProgress{width:100%;margin:10px 0}.text-ai-log{max-height:420px;overflow:auto;border:1px solid var(--border,#777);padding:10px}.text-ai-event{padding:8px 0;border-bottom:1px solid var(--border,#777)}.text-ai-event pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:100px;overflow:auto;margin:4px 0;font:inherit}.text-ai-event[data-phase="error"]{color:#d45b58}

.zip-download-heading{padding:16px;font-weight:700;border-bottom:1px solid var(--line)}.zip-download-choices{display:flex;flex-direction:column;gap:10px;padding:16px}.zip-download-choices button{white-space:normal;overflow-wrap:anywhere;min-height:40px}.image-zip-download-dialog::backdrop{background:rgba(10,15,25,.65)}

.text-value.ai-translation-value{color:#2563eb}html[data-theme="dark"] .text-value.ai-translation-value{color:#93c5fd}.ai-translation-prefix{color:#c62828;font-weight:700}html[data-theme="dark"] .ai-translation-prefix{color:#ff8585}

.ai-control-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}

.ai-language-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.ai-language-controls button.active{background:#2563eb;color:#fff;border-color:#2563eb}

.image-ai-recommendation{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0;font-size:inherit}.image-ai-recommendation:empty{display:none}.image-ai-value{color:#176bc5}[data-theme="dark"] .image-ai-value{color:#75baff}.image-ai-recommendation .ai-translation-prefix{color:#d73535}

html[data-theme="dark"] .image-ai-recommendation .ai-translation-prefix{color:#ff7575}

/* Keep image recommendations under the textarea; actions occupy their own table cell. */
.translation-table .text-user-editor-wrap{display:block;padding:0;min-width:220px}
.translation-table .text-user-editor-wrap .translation-input{display:block;width:100%;box-sizing:border-box}
.translation-table .image-ai-recommendation{font-size:11px;line-height:1.5;margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.translation-table .col-image-actions{width:112px}
.translation-table .image-entry-actions-cell{border-left:1px solid var(--line);width:112px}
.translation-table .image-entry-actions-cell .text-entry-actions{padding:0}
@media(max-width:760px){.translation-table .image-entry-actions-cell{width:100%;border-left:0}.translation-table .image-entry-actions-cell .text-entry-actions{flex-direction:row}.translation-table .text-user-editor-wrap{min-width:0}}

.ai-kana-option{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:13px}.ai-kana-option input{width:16px;height:16px;margin:0}

.ai-options-box{border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0;background:var(--panel);display:flex;flex-direction:column;gap:10px}.ai-options-box .ai-kana-option{margin:0}.ai-concurrency-option{display:flex;align-items:center;gap:12px;font-size:13px}.ai-concurrency-option select{width:80px}.ai-options-box .ai-control-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-log-table{width:100%;border-collapse:collapse;min-width:1000px;font-size:12px}.ai-log-table th,.ai-log-table td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}.ai-log-table th{position:sticky;top:-10px;background:var(--panel);z-index:1;white-space:nowrap}.ai-log-table pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;min-width:150px;max-width:380px;max-height:160px;overflow:auto}.ai-log-table td:first-child,.ai-log-table td:nth-child(2){white-space:nowrap}.text-ai-log{padding:0;max-height:520px}.ai-log-table th{top:0}.admin-file-name,.admin-file-present{background:none;border:0;cursor:pointer;text-decoration:underline;font:inherit;padding:2px}.admin-file-present{font-weight:800}.file-language-jp{color:#d56d00}.file-language-ko{color:#176bc5}.file-language-en{color:#198443}.file-language-cn{color:#d62c2c}.admin-file-delete{border:1px solid #df3030;border-radius:6px;background:#fff;color:#111;padding:6px 9px;cursor:pointer;white-space:nowrap}.admin-file-delete:disabled{opacity:.55;cursor:default}.admin-file-preview{width:min(1200px,95vw);max-height:90vh;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:16px}.admin-file-preview::backdrop{background:rgba(0,0,0,.6)}.admin-file-preview-head,.admin-file-preview-controls{display:flex;align-items:center;gap:12px;margin-bottom:12px}.admin-file-preview-head{justify-content:space-between}#adminFilePreviewBody{overflow:auto;max-height:70vh}.admin-compare-table{width:100%;border-collapse:collapse;table-layout:fixed}.admin-compare-table th,.admin-compare-table td{border:1px solid var(--line);padding:8px;vertical-align:top}.admin-compare-table th:first-child,.admin-compare-table td:first-child{width:85px}.admin-compare-table th{position:sticky;top:0;background:var(--panel);z-index:1}.admin-compare-table pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.compare-changed{background:#fff1c8}.compare-missing{background:#f2d9d9}html[data-theme="dark"] .compare-changed{background:#42371d}html[data-theme="dark"] .compare-missing{background:#44272d}html[data-theme="dark"] .file-language-jp{color:#ffb05e}html[data-theme="dark"] .file-language-ko{color:#77b5ff}html[data-theme="dark"] .file-language-en{color:#69d58f}html[data-theme="dark"] .file-language-cn{color:#ff8585}

/* Enforce the filename width: auto table layout previously stretched this column. */
@media(min-width:901px){.translation-table{table-layout:fixed}.translation-table .image-filename-column{width:74px}.translation-table .image-original-column,.translation-table .image-replacement-column{width:250px}.translation-table .image-actions-column{width:112px}.translation-table .filename-cell{overflow-wrap:anywhere}.translation-table .filename-cell code{max-width:100%;white-space:normal;overflow-wrap:anywhere}}

/* Fix column tracks explicitly so table width distribution cannot enlarge filenames. */
@media(min-width:901px){
 .translation-table{display:block;width:100%;min-width:1100px;table-layout:auto}
 .translation-table colgroup{display:none}
 .translation-table thead,.translation-table tbody{display:block;width:100%}
 .translation-table thead{position:sticky;top:0;z-index:2}
 .translation-table tr{display:grid;grid-template-columns:74px 250px 250px minmax(220px,1fr) 112px;width:100%}
 .translation-table th,.translation-table td{display:block;box-sizing:border-box;min-width:0;width:auto;max-width:none}
 .translation-table .col-file,.translation-table .filename-cell{width:74px;min-width:74px;max-width:74px;padding:12px 8px;overflow:hidden}
 .translation-table .filename-cell code{display:block;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-all}
 .translation-table td[colspan]{grid-column:1/-1}
 .translation-table .image-entry-actions-cell{width:auto}
}

/* Keep text-file availability labels stable after row updates/deletion. */
#adminTextFilesPanel .admin-table{min-width:1100px}
#adminTextFilesPanel .admin-table th:nth-child(3),#adminTextFilesPanel .admin-table td:nth-child(3){min-width:58px;white-space:nowrap}
#adminTextFilesPanel .admin-table th:nth-child(n+4):nth-child(-n+7),#adminTextFilesPanel .admin-table td[data-file-language]{box-sizing:border-box;width:64px;min-width:64px;padding-left:8px;padding-right:8px;white-space:nowrap;word-break:normal;overflow-wrap:normal}
#adminTextFilesPanel .admin-file-present{display:inline-block;min-width:2em;white-space:nowrap;word-break:normal;overflow-wrap:normal}
#adminTextFilesPanel .admin-file-name{max-width:280px;white-space:normal;overflow-wrap:anywhere;text-align:left}

/* Image AI log filenames must wrap inside a bounded column. */
#imageAiLog .ai-log-table{table-layout:fixed;min-width:1080px}
#imageAiLog .ai-log-table th:nth-child(5),#imageAiLog .ai-log-table td:nth-child(5){box-sizing:border-box;width:180px;max-width:180px;white-space:normal;overflow-wrap:anywhere;word-break:break-all}
#imageAiLog .ai-log-table td:nth-child(5)>span{display:block;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-all}
#imageAiLog .ai-log-table pre{min-width:0;width:100%;max-width:100%;box-sizing:border-box}

.ai-log-table td:first-child{width:105px;min-width:105px;white-space:normal}.ai-status-badge{display:inline-block;font-weight:700;white-space:nowrap;color:#176bc5}.ai-log-table tr[data-status="complete"] .ai-status-badge{color:#198443}.ai-log-table tr[data-status="error"] .ai-status-badge,.ai-log-table .ai-status-error{color:#b42318}.ai-log-table tr[data-status="error"] td:first-child{background:#fff0ee}.ai-log-table tr[data-status="skipped"] .ai-status-badge,.ai-log-table tr[data-status="discarded"] .ai-status-badge{color:#666}.ai-log-table .ai-status-error{margin-top:6px;min-width:0;max-width:200px;max-height:90px;white-space:pre-wrap;overflow-wrap:anywhere}html[data-theme="dark"] .ai-status-badge{color:#77b5ff}html[data-theme="dark"] .ai-log-table tr[data-status="complete"] .ai-status-badge{color:#69d58f}html[data-theme="dark"] .ai-log-table tr[data-status="error"] .ai-status-badge,html[data-theme="dark"] .ai-log-table .ai-status-error{color:#ff9991}html[data-theme="dark"] .ai-log-table tr[data-status="error"] td:first-child{background:#422725}html[data-theme="dark"] .ai-log-table tr[data-status="skipped"] .ai-status-badge,html[data-theme="dark"] .ai-log-table tr[data-status="discarded"] .ai-status-badge{color:#aaa}

.ai-log-table td:first-child,.ai-log-table th:first-child{box-sizing:border-box;width:52px;min-width:52px;max-width:52px;padding-left:4px;padding-right:4px;white-space:normal;overflow-wrap:anywhere}.ai-status-badge{white-space:normal;overflow-wrap:anywhere}.ai-log-table .ai-status-error{max-width:100%}#textAiLog .ai-log-table{table-layout:fixed;min-width:1200px}#textAiLog .ai-log-table th:nth-child(6),#textAiLog .ai-log-table td:nth-child(6){box-sizing:border-box;width:40px;max-width:40px;padding-left:4px;padding-right:4px;white-space:normal;overflow-wrap:anywhere}#textAiLog .ai-log-table td:nth-child(6)>pre{min-width:0;max-width:100%}

.image-asset-actions .image-ai-ocr{flex:1 1 70px;min-width:0;max-width:100%;margin:0;align-self:center}.translation-table .image-asset-actions .image-ai-ocr{margin:0;font-size:11px;line-height:1.5}

.image-filename-size{margin-top:4px;font-size:11px;white-space:normal;overflow-wrap:anywhere}

/* Both AI logs use column five for filenames, including OCR translation jobs. */
.ai-log-table .ai-log-filename-cell{box-sizing:border-box;width:180px;max-width:180px;white-space:normal;overflow-wrap:anywhere;word-break:break-all}.ai-log-table .ai-log-filename-cell>span{display:block;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-all}

.image-inline-comments{display:none}
@media(min-width:1600px){.image-editor-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}.image-editor-columns>.text-user-editor-wrap{min-width:0}.image-inline-comments{display:block;min-width:0;overflow-wrap:anywhere}.image-inline-comments .comment-list{max-height:240px;overflow:auto}.image-inline-comments .comment-compose{display:flex;flex-direction:column;gap:6px}.image-inline-comments textarea{width:100%;min-height:72px;box-sizing:border-box}.image-inline-comments .comment-item{white-space:pre-wrap;overflow-wrap:anywhere}}

@media(min-width:1600px){.image-inline-comments .image-comment-send{align-self:flex-end;flex:0 0 auto;width:auto;min-height:0;padding:4px 10px;font-size:12px;line-height:1.4}.image-inline-comments .comment-list:empty,.image-inline-comments .issue-actions:empty{display:none}}

.psd-button{background:#f3e8ff!important;border-color:#c084fc!important;color:#7e22ce!important}.dark-mode .psd-button,[data-theme="dark"] .psd-button{background:#3b2452!important;color:#e9d5ff!important;border-color:#8056a7!important}

.psd-preview{width:300px;height:300px;max-width:100%;object-fit:contain;background:white}

.audit-table td:nth-child(4){overflow-wrap:anywhere}.audit-image-dialog{max-width:90vw;max-height:90vh;background:var(--panel-bg,#fff);color:inherit;border-radius:10px}.audit-image-dialog button{display:block;margin-bottom:10px}.audit-image-dialog img{display:block;max-width:80vw;max-height:75vh;object-fit:contain}.audit-image-dialog::backdrop{background:#0009}

.audit-image-dialog img[hidden]{display:none!important}
