:root {
  color-scheme: light;
  --bg: #f6f7f9;
  --panel: #ffffff;
  --text: #18202a;
  --muted: #667085;
  --line: #d9dee7;
  --accent: #2563eb;
  --ok: #0f766e;
  --watch: #b45309;
  --warning: #b91c1c;
  --review: #7c3aed;
  --blocked: #991b1b;
  --unknown: #64748b;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
  color: var(--accent);
  text-decoration: none;
}

button,
a {
  font: inherit;
}

.admin2-shell {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 28px 0 48px;
}

.admin2-auth-gate {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 24px;
}

.admin2-auth-gate > div {
  width: min(520px, 100%);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 24px;
  box-shadow: 0 10px 24px rgb(24 32 42 / 10%);
}

.admin2-auth-gate h1 {
  margin-bottom: 10px;
  font-size: 24px;
}

.admin2-auth-gate p:last-of-type {
  margin-bottom: 18px;
  color: var(--muted);
}

.admin2-auth-form {
  display: grid;
  gap: 14px;
  margin-top: 20px;
}

.admin2-auth-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.9rem;
}

.admin2-auth-form input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  font: inherit;
  color: var(--text);
  background: #fff;
}

.admin2-auth-error {
  margin: 0;
  color: #b42318;
  font-size: 0.9rem;
}

.admin2-boundary-banner {
  display: grid;
  gap: 6px;
  margin-bottom: 24px;
  border: 1px solid #111827;
  border-left-width: 8px;
  border-radius: 8px;
  background: #ffffff;
  color: #111827;
  padding: 16px 18px;
  box-shadow: 0 8px 20px rgb(17 24 39 / 8%);
}

.admin2-boundary-banner strong {
  font-size: 28px;
  line-height: 1.05;
}

.admin2-boundary-banner span {
  font-size: 16px;
  font-weight: 800;
}

.admin2-boundary-banner em {
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  color: var(--muted);
}

.admin2-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.eyebrow {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 0;
  font-size: 30px;
  line-height: 1.15;
}

h2 {
  margin-bottom: 4px;
  font-size: 18px;
}

h3 {
  margin-bottom: 10px;
  font-size: 16px;
}

.admin2-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.admin2-actions button,
.admin2-actions a {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  color: var(--text);
  padding: 8px 12px;
  cursor: pointer;
}

.range-control {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  padding: 6px 8px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.range-control select {
  border: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-weight: 800;
}

.locale-links {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  padding: 6px 8px;
  color: var(--muted);
  font-size: 13px;
}

.locale-links a {
  min-height: auto;
  border: 0;
  background: transparent;
  padding: 2px 4px;
  font-weight: 700;
}

.locale-links a.is-active {
  color: var(--text);
  text-decoration: underline;
}

.admin2-actions button.is-active {
  border-color: var(--accent);
  color: var(--accent);
  font-weight: 700;
}

.admin2-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 8px 10px;
}

.admin2-nav a,
.admin2-nav span {
  min-height: 32px;
  border-radius: 6px;
  padding: 7px 10px;
  font-size: 14px;
  font-weight: 700;
}

.admin2-nav span {
  color: var(--muted);
}

.admin2-nav a.is-active {
  background: #eff6ff;
  color: var(--accent);
}

.project-management-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 14px;
}

.project-management-grid .panel-wide {
  grid-column: 1 / -1;
}

.project-summary-panel,
.roadmap-reference-panel,
.task-list-panel,
.task-editor-panel,
.day-end-panel {
  min-width: 0;
}

.project-count-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.project-count-grid article {
  min-height: 82px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 12px;
}

.project-count-grid span,
.reference-list dt,
.task-meta-list dt {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.project-count-grid strong {
  display: block;
  margin-top: 8px;
  font-size: 28px;
  line-height: 1;
}

.reference-list,
.task-meta-list {
  display: grid;
  gap: 8px;
  margin: 0;
}

.reference-list div,
.task-meta-list div {
  min-width: 0;
}

.reference-list dd,
.task-meta-list dd {
  margin: 3px 0 0;
  color: var(--text);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.status-filter,
.task-actions,
.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.status-filter button,
.task-actions button,
.form-actions button,
.secondary-button {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 7px 10px;
  cursor: pointer;
  font-weight: 700;
}

.status-filter button.is-active {
  border-color: var(--accent);
  background: #eff6ff;
  color: var(--accent);
}

.project-task-list,
.daily-log-list {
  display: grid;
  gap: 10px;
}

.project-task-card,
.daily-log-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.project-task-card.status-current {
  border-left: 5px solid #0f766e;
}

.project-task-card.status-planned {
  border-left: 5px solid #2563eb;
}

.project-task-card.status-paused {
  border-left: 5px solid #b45309;
}

.project-task-card.status-completed {
  border-left: 5px solid #64748b;
}

.task-card-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.task-card-main h3 {
  margin-bottom: 6px;
}

.task-card-main p {
  margin-bottom: 0;
  color: var(--muted);
}

.status-pill {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.status-pill.status-current {
  background: #ccfbf1;
  color: #115e59;
}

.status-pill.status-planned {
  background: #dbeafe;
  color: #1d4ed8;
}

.status-pill.status-paused {
  background: #fef3c7;
  color: #92400e;
}

.status-pill.status-completed {
  background: #e2e8f0;
  color: #334155;
}

.task-meta-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.task-note {
  margin: 10px 0 0;
  color: var(--muted);
}

.task-actions {
  margin-top: 12px;
}

.project-form {
  display: grid;
  gap: 12px;
}

.project-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.project-form input,
.project-form select,
.project-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 9px 10px;
  font: inherit;
  font-weight: 600;
}

.project-form textarea {
  min-height: 76px;
  resize: vertical;
}

.form-grid-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.project-status-strip.is-error {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.daily-log-item p {
  margin: 6px 0;
}

.daily-log-item small {
  color: var(--muted);
  font-weight: 700;
}

.ai-lab-grid {
  display: grid;
  grid-template-columns: minmax(300px, 0.8fr) minmax(340px, 1.2fr);
  gap: 14px;
}

.ai-lab-grid .panel-wide {
  grid-column: 1 / -1;
}

.ai-lab-mode-row,
.ai-lab-rating-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ai-lab-mode-row button {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 8px 12px;
  cursor: pointer;
  font-weight: 800;
}

.lab-results-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.lab-result-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.lab-result-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.lab-result-card pre {
  max-height: 260px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafc;
  padding: 10px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.lab-output-warning {
  display: grid;
  gap: 4px;
  margin: 12px 0 0;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff7ed;
  color: #9a3412;
  padding: 10px 12px;
  font-size: 0.88rem;
}

.lab-output-warning strong {
  color: #7c2d12;
}

.lab-result-card details {
  margin-top: 10px;
}

.lab-result-card summary {
  cursor: pointer;
  color: var(--muted);
  font-weight: 800;
}

.lab-prompt-list,
.lab-run-history {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.lab-prompt-item,
.lab-run-item {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.lab-run-item button {
  width: fit-content;
  border: 0;
  background: transparent;
  color: var(--accent);
  padding: 0;
  cursor: pointer;
  font-weight: 800;
}

.lab-prompt-item span,
.lab-prompt-item small,
.lab-run-item span,
.lab-run-item small {
  color: var(--muted);
  font-weight: 700;
}

.ai-lab-tag-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}

.ai-lab-tag-grid legend {
  padding: 0 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.ai-quality-shell {
  width: min(1440px, calc(100% - 32px));
}

.ai-quality-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  align-items: stretch;
  gap: 14px;
}

.ai-quality-grid .panel-wide {
  grid-column: 1 / -1;
}

.ai-quality-grid > .panel {
  min-width: 0;
}

.ai-quality-progress-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.quality-fieldset,
.quality-score-row,
.quality-tag-grid {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}

.quality-fieldset {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quality-category-grid,
.quality-tag-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.quality-tag-grid {
  grid-template-columns: repeat(2, minmax(180px, 1fr));
}

.quality-fieldset legend,
.quality-score-row legend,
.quality-tag-grid legend {
  padding: 0 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.quality-fieldset label,
.quality-tag-grid label,
.quality-score-row label {
  display: grid;
  gap: 6px;
}

.quality-option-label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 8px 10px;
  color: var(--text);
  font-weight: 800;
}

.quality-option-label input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 0;
}

.quality-tag-grid .quality-check-label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 180px;
  padding: 6px 8px;
  border-radius: 6px;
  line-height: 1.35;
  cursor: pointer;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
}

.quality-tag-grid .quality-check-label:hover {
  background: rgba(15, 23, 42, 0.04);
}

.quality-tag-grid .quality-check-label:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.quality-tag-grid .quality-check-label input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 0;
}

.quality-tag-grid .quality-check-label span {
  min-width: 0;
  overflow-wrap: normal;
  word-break: keep-all;
  white-space: normal;
}

.quality-prompt-editor {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 12px;
}

.quality-prompt-editor h3 {
  margin: 0;
}

.quality-prompt-editor textarea,
.quality-tone-grid textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  resize: vertical;
  font: inherit;
}

.quality-tone-editor summary {
  cursor: pointer;
  font-weight: 800;
}

.quality-tone-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.quality-tone-item {
  display: grid;
  gap: 6px;
}

.quality-tone-item span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.quality-prompt-warning {
  min-height: 18px;
  margin: 0;
  color: var(--muted);
  font-weight: 800;
}

.quality-prompt-warning.is-error {
  color: var(--danger);
}

.quality-prompt-preview {
  display: grid;
  gap: 10px;
}

.quality-load-note {
  margin: 0;
  color: var(--watch);
  font-weight: 700;
}

.quality-batch-list,
.quality-case-list,
.quality-result-list,
.quality-analysis-list {
  display: grid;
  gap: 8px;
}

.quality-pattern-statistics,
.quality-pattern-library-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.quality-pattern-statistics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.quality-pattern-overview {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px 12px;
}

.quality-pattern-overview > summary {
  cursor: pointer;
  font-weight: 900;
}

.quality-pattern-overview .quality-pattern-library-grid {
  margin-top: 10px;
}

.quality-pattern-stat-card,
.quality-pattern-library-section {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.quality-pattern-stat-card header,
.quality-pattern-library-section summary,
.quality-pattern-subsection summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.quality-pattern-stat-card header {
  margin-bottom: 8px;
}

.quality-pattern-stat-card span,
.quality-pattern-library-section summary span,
.quality-pattern-subsection summary span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.quality-pattern-library-section summary,
.quality-pattern-subsection summary {
  cursor: pointer;
  font-weight: 800;
}

.quality-pattern-subsection {
  margin-top: 8px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.quality-pattern-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.quality-pattern-table th,
.quality-pattern-table td {
  min-width: 0;
  border-top: 1px solid var(--line);
  padding: 6px 8px;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.quality-pattern-table th {
  color: var(--muted);
  font-weight: 800;
}

.quality-pattern-table code {
  font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.quality-pattern-expression-list {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 8px;
  margin: 10px 0 0;
}

.quality-pattern-expression-list dt {
  color: var(--muted);
  font-weight: 800;
}

.quality-pattern-expression-list dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.quality-pattern-diagnostics {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.quality-pattern-diagnostics > summary,
.quality-pattern-prompt-section > summary {
  cursor: pointer;
  font-weight: 800;
}

.quality-pattern-diagnostic-grid {
  margin-top: 10px;
}

.quality-pattern-prompt-section {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.quality-pattern-prompt-section p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.quality-operation-status {
  min-height: 0;
}

.ai-quality-progress-panel .quality-progress-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 12px;
}

.quality-batch-list {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
}

.quality-current-batch,
.quality-batch-history {
  display: grid;
  gap: 8px;
}

.quality-current-batch h3,
.quality-batch-history h3 {
  margin: 0;
  font-size: 14px;
}

.quality-current-batch p {
  margin: 0;
  border: 1px dashed rgba(148, 163, 184, 0.42);
  border-radius: 8px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  padding: 10px 12px;
}

.quality-current-batch-card {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(37, 99, 235, 0.28);
  border-radius: 8px;
  background: #eff6ff;
  padding: 10px 12px;
}

.quality-current-batch-card strong {
  font-size: 14px;
}

.quality-current-batch-card small {
  color: var(--muted);
  font-weight: 800;
}

.quality-batch-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.quality-batch-chip-row span {
  border: 1px solid rgba(148, 163, 184, 0.32);
  border-radius: 6px;
  background: #ffffff;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  padding: 4px 6px;
}

.quality-batch-history {
  flex: 1;
  min-height: 0;
}

.quality-batch-history-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.quality-batch-history-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-align: right;
}

.quality-batch-history-list {
  display: grid;
  gap: 8px;
}

.quality-batch-history-item {
  display: grid;
  gap: 6px;
}

.quality-batch-history-item.is-active .quality-batch-history-detail {
  border-color: rgba(37, 99, 235, 0.2);
}

.quality-batch-history-detail {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 8px 10px;
}

.quality-batch-history-detail summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.quality-batch-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
}

.quality-batch-pagination span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}

.quality-operation-card {
  display: grid;
  gap: 4px;
  margin: 0 0 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  color: var(--text);
}

.quality-operation-card strong {
  font-size: 15px;
}

.quality-operation-card span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.quality-operation-status.is-error .quality-operation-card {
  border-color: rgba(185, 28, 28, 0.28);
  background: #fff5f5;
}

.quality-batch-button,
.quality-result-button {
  display: grid;
  gap: 4px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  color: var(--text);
  padding: 10px 12px;
  text-align: left;
  cursor: pointer;
}

.quality-batch-button.is-active,
.quality-result-button.is-active {
  border-color: var(--accent);
  background: #eff6ff;
}

.quality-primary-actions {
  align-items: center;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
  padding-top: 14px;
}

.quality-session-actions {
  align-items: center;
  margin-top: -4px;
}

.quality-selected-session {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.quality-auto-start-button {
  min-width: 220px;
  font-weight: 800;
}

.quality-manual-mode {
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 8px;
  padding: 10px 12px;
}

.quality-manual-mode summary {
  cursor: pointer;
  font-weight: 700;
}

.quality-manual-mode .form-actions {
  margin-top: 10px;
}

.quality-operation-card-auto {
  gap: 6px;
}

.quality-batch-button span,
.quality-batch-button small,
.quality-result-button span,
.quality-result-button small {
  color: var(--muted);
  font-weight: 700;
}

.quality-progress-grid,
.quality-aggregate-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.quality-metric-card {
  min-height: 86px;
}

.quality-case-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quality-case-card {
  display: grid;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

.quality-case-card.is-excluded {
  opacity: 0.62;
  background: #f8fafc;
}

.quality-case-card header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.quality-pattern-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.quality-case-card header strong,
.quality-case-card label,
.quality-case-card select,
.quality-case-card textarea,
.quality-case-card details,
.quality-case-card pre {
  min-width: 0;
  max-width: 100%;
}

.quality-pattern-summary span {
  border: 1px solid rgba(148, 163, 184, 0.3);
  border-radius: 6px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  padding: 4px 6px;
}

.quality-pattern-summary b {
  color: var(--text);
}

.quality-case-card textarea {
  min-height: 86px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  resize: vertical;
}

.classifier-result-card {
  cursor: default;
}

.classifier-result-card p {
  margin: 4px 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
}

.classifier-result-card select,
.quality-case-card select {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 6px 8px;
  font: inherit;
}

.quality-filter-bar {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.quality-filter-bar select {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 7px 8px;
  font: inherit;
  font-weight: 700;
}

.quality-review-layout {
  display: block;
}

.quality-result-list {
  max-height: none;
  overflow: visible;
}

.quality-review-form {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.quality-review-detail {
  display: grid;
  gap: 12px;
}

.quality-score-row {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.quality-review-progress {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}

.quality-review-progress span,
.quality-evaluation-badges span,
.quality-card-save-state {
  border: 1px solid rgba(148, 163, 184, 0.32);
  border-radius: 6px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  padding: 5px 7px;
}

.quality-card-save-state.is-error {
  border-color: rgba(185, 28, 28, 0.28);
  background: #fff5f5;
  color: var(--danger);
}

.quality-evaluation-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
  scroll-margin-top: 16px;
}

.quality-evaluation-card.is-active {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.08);
}

.quality-evaluation-card.is-error {
  border-left: 5px solid var(--danger);
}

.quality-evaluation-card:focus {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.quality-evaluation-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.quality-evaluation-card-head > div:first-child {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.quality-evaluation-card-head strong {
  font-size: 16px;
}

.quality-evaluation-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.quality-evaluation-block {
  display: grid;
  gap: 6px;
}

.quality-evaluation-block h4,
.quality-card-score legend,
.quality-card-issues legend {
  margin: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 900;
}

.quality-evaluation-block pre {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 12px;
  color: var(--text);
  font: inherit;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.quality-evaluation-block.is-error pre {
  border-color: rgba(185, 28, 28, 0.24);
  background: #fff5f5;
}

.quality-card-review {
  display: grid;
  gap: 12px;
  border-top: 1px solid rgba(148, 163, 184, 0.26);
  padding-top: 12px;
}

.quality-card-score,
.quality-card-issues {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 0;
  padding: 0;
}

.quality-card-score p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.quality-score-buttons,
.quality-issue-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.quality-score-buttons label,
.quality-issue-buttons label {
  cursor: pointer;
}

.quality-score-buttons input,
.quality-issue-buttons input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}

.quality-score-buttons span,
.quality-issue-buttons span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  font-weight: 800;
  line-height: 1.3;
  padding: 7px 11px;
}

.quality-score-buttons span {
  min-width: 42px;
}

.quality-score-buttons input:checked + span,
.quality-issue-buttons input:checked + span {
  border-color: var(--accent);
  background: #eff6ff;
  color: var(--accent);
}

.quality-score-buttons label:focus-within span,
.quality-issue-buttons label:focus-within span {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.quality-card-note {
  display: grid;
  gap: 6px;
}

.quality-card-note span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.quality-card-note textarea {
  width: 100%;
  min-height: 78px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  resize: vertical;
  font: inherit;
}

.quality-card-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.quality-card-details {
  display: grid;
  gap: 8px;
}

.quality-card-detail-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px 12px;
}

.quality-card-detail-section > summary {
  cursor: pointer;
  font-weight: 900;
}

.quality-card-detail-section .prompt-result-metadata {
  margin-top: 10px;
}

.quality-breakdown {
  grid-column: 1 / -1;
}

.quality-breakdown pre {
  max-height: 360px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafc;
  padding: 10px;
  white-space: pre-wrap;
}

.quality-analysis-item {
  display: flex;
  gap: 10px;
  border: 1px solid var(--line);
  border-left-width: 6px;
  border-radius: 8px;
  background: #ffffff;
  padding: 10px 12px;
}

.quality-analysis-item.review {
  border-left-color: var(--watch);
}

.quality-analysis-item.info {
  border-left-color: var(--accent);
}

.status-strip,
.panel,
.dashboard-card,
.overview-panel,
.health-item,
.error-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
}

.overview-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 20px;
  margin-bottom: 14px;
  padding: 18px;
}

.overview-panel h2 {
  margin-bottom: 8px;
  font-size: 22px;
}

.overview-panel p {
  margin-bottom: 0;
  color: var(--muted);
}

.overview-status {
  display: grid;
  gap: 6px;
  border-left: 1px solid var(--line);
  padding-left: 18px;
}

.overview-status span,
.overview-status small {
  color: var(--muted);
}

.overview-status strong {
  font-size: 26px;
  line-height: 1.1;
}

.status-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
  padding: 12px 14px;
  color: var(--muted);
  font-size: 14px;
}

.status-strip strong {
  color: var(--text);
}

.health-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.health-section {
  margin-bottom: 16px;
}

.section-head {
  margin-bottom: 10px;
}

.section-head p {
  margin-bottom: 0;
  color: var(--muted);
}

.health-item {
  min-height: 72px;
  padding: 12px;
}

.health-item span,
.metric-label,
.card-summary,
.card-focus,
.card-evidence,
.panel p,
.queue-reason,
.action-reason {
  color: var(--muted);
}

.health-item strong {
  display: block;
  margin-top: 4px;
}

.layout-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

.daily-start-grid {
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.55fr);
  align-items: start;
}

.panel {
  padding: 16px;
}

.today-action-panel {
  border-left: 6px solid var(--accent);
}

.action-rail {
  background: #f8fafc;
}

.panel-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.attention-list,
.action-list {
  display: grid;
  gap: 10px;
}

.queue-item,
.action-item {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 12px;
}

.queue-title,
.action-title {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  font-weight: 700;
}

.badge {
  align-self: flex-start;
  border-radius: 999px;
  padding: 3px 8px;
  background: #eef2ff;
  color: #3730a3;
  font-size: 12px;
  font-weight: 700;
}

.status-ok {
  color: var(--ok);
}

.status-watch,
.status-info {
  color: var(--watch);
}

.status-review {
  color: var(--review);
}

.status-warning,
.status-blocked,
.status-critical {
  color: var(--warning);
}

.status-unknown {
  color: var(--unknown);
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.journey-dashboard-shell {
  width: min(1440px, calc(100% - 32px));
}

.journey-overview {
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, 420px);
}

.journey-section {
  margin-bottom: 16px;
}

.summary-card-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.usage-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.usage-summary-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 13px;
}

.usage-summary-card header {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
}

.usage-summary-card header span,
.usage-summary-card dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.usage-summary-card header strong {
  font-size: 30px;
  line-height: 1.05;
}

.usage-summary-card header small,
.usage-summary-card em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.usage-summary-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 10px;
}

.usage-summary-card dl div {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px;
}

.usage-summary-card dd {
  margin: 2px 0 0;
  font-size: 20px;
  font-weight: 800;
}

.summary-card,
.state-card,
.journey-step,
.distribution-card,
.platform-card,
.ai-runtime-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
}

.summary-card {
  display: grid;
  gap: 5px;
  min-height: 142px;
  padding: 13px;
}

.summary-card[data-card-key="operationalWarnings"] {
  border-left-width: 6px;
}

.summary-card[data-card-key="firstRecordUsers"],
.summary-card[data-card-key="aiRequestUsers"] {
  box-shadow: 0 8px 18px rgb(15 23 42 / 6%);
}

.summary-card span,
.state-card span,
.journey-step dt,
.platform-card dt,
.ai-runtime-card dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.summary-card strong {
  font-size: 26px;
  line-height: 1.05;
}

.summary-card small,
.summary-card em,
.state-card small,
.state-card em,
.journey-step p {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.journey-funnel {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.journey-assessment {
  grid-column: 1 / -1;
}

.journey-step {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.journey-step.is-highlighted {
  border-color: #f59e0b;
  border-left-width: 6px;
  background: #fffbeb;
}

.journey-step.is-unavailable,
.state-card.is-unavailable {
  background: #f8fafc;
}

.journey-step header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.journey-step header span {
  font-weight: 900;
}

.journey-step header strong {
  font-size: 24px;
}

.journey-step dl,
.compact-dl,
.platform-card dl,
.ai-runtime-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.journey-step dd,
.compact-dl dd,
.platform-card dd,
.ai-runtime-card dd {
  margin: 3px 0 0;
  overflow-wrap: anywhere;
  font-weight: 800;
}

.state-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.state-card {
  display: grid;
  gap: 7px;
  min-height: 120px;
  padding: 13px;
}

.state-card strong {
  font-size: 23px;
}

.ai-health-panel,
.event-summary-panel {
  display: grid;
  gap: 14px;
}

.ai-ops-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.ai-status-card {
  display: grid;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-top: 4px solid var(--unknown);
  border-radius: 8px;
  background: var(--panel);
  padding: 14px;
  color: var(--text);
}

.ai-status-card.status-ok,
.ai-status-card.status-active,
.ai-status-card.status-configured,
.ai-status-card.status-observed {
  border-top-color: var(--ok);
}

.ai-status-card.status-watch,
.ai-status-card.status-fallback,
.ai-status-card.status-unavailable {
  border-top-color: var(--watch);
}

.ai-status-card.status-review,
.ai-status-card.status-not_checked,
.ai-status-card.status-not_configured,
.ai-status-card.status-not_observed_in_range,
.ai-status-card.status-unverified {
  border-top-color: var(--review);
}

.ai-status-card.status-warning,
.ai-status-card.status-blocked,
.ai-status-card.status-critical,
.ai-status-card.status-invalid {
  border-top-color: var(--warning);
}

.ai-status-card header {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.ai-status-card header span,
.ai-status-card dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.ai-status-card header strong {
  max-width: 58%;
  overflow-wrap: anywhere;
  font-size: 18px;
  line-height: 1.15;
  text-align: right;
}

.ai-status-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.ai-status-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.ai-status-card dd {
  margin: 3px 0 0;
  overflow-wrap: anywhere;
  font-weight: 800;
}

.ai-runtime-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.8fr);
  gap: 16px;
  padding: 16px;
}

.ai-runtime-card strong {
  display: block;
  margin-top: 4px;
  font-size: 22px;
}

.ai-runtime-card p {
  margin: 6px 0 0;
}

.ai-metric-grid {
  margin: 0;
}

.distribution-grid,
.platform-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.distribution-card,
.platform-card {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.distribution-card h3 {
  margin-bottom: 2px;
}

.distribution-card div,
.top-event-list div,
.platform-metrics span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.top-event-list {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 14px;
}

.platform-card header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.platform-card header strong {
  color: var(--watch);
}

.platform-metrics {
  display: grid;
  gap: 8px;
}

.dashboard-card {
  padding: 16px;
}

.card-title-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.card-summary {
  margin-bottom: 8px;
}

.card-focus {
  margin-bottom: 6px;
  font-weight: 700;
}

.card-evidence {
  margin-bottom: 0;
  font-size: 13px;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.metric {
  min-height: 74px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px;
}

.metric.status-ok {
  border-color: rgb(15 118 110 / 35%);
  color: var(--text);
}

.metric.status-watch {
  border-color: rgb(180 83 9 / 35%);
  color: var(--text);
}

.metric.status-review {
  border-color: rgb(124 58 237 / 35%);
  color: var(--text);
}

.metric.status-blocked,
.metric.status-critical,
.metric.status-warning {
  border-color: rgb(185 28 28 / 35%);
  color: var(--text);
}

.metric-value {
  display: block;
  margin-top: 6px;
  font-size: 20px;
  font-weight: 800;
}

.metric-state,
.metric-helper {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.metric.status-ok .metric-state {
  color: var(--ok);
}

.metric.status-watch .metric-state {
  color: var(--watch);
}

.metric.status-review .metric-state {
  color: var(--review);
}

.metric.status-blocked .metric-state,
.metric.status-critical .metric-state,
.metric.status-warning .metric-state {
  color: var(--warning);
}

.primary-action {
  display: grid;
  gap: 3px;
  margin-bottom: 12px;
  border: 1px solid var(--accent);
  border-radius: 6px;
  padding: 10px 12px;
  background: #eff6ff;
}

.primary-action span {
  color: var(--muted);
  font-size: 13px;
}

.link-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.link-row a {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 6px 9px;
  background: #f8fafc;
  font-size: 13px;
}

.empty-state {
  margin: 0;
  color: var(--muted);
}

.error-panel {
  margin-top: 16px;
  padding: 14px;
  color: var(--warning);
}

.app-version-panel {
  max-width: 860px;
}

.app-version-form {
  display: grid;
  gap: 18px;
}

.form-section {
  display: grid;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 18px;
}

.form-section:last-of-type {
  border-bottom: 0;
}

.form-section label {
  font-weight: 800;
}

.toggle-row {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

.toggle-row input {
  width: 20px;
  height: 20px;
  accent-color: var(--accent);
}

.form-section input:not([type="checkbox"]),
.form-section select,
.form-section textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 10px 12px;
  font: inherit;
}

.form-section input:not([type="checkbox"]) {
  max-width: 240px;
}

.form-section select {
  max-width: 240px;
}

.form-section textarea {
  min-height: 110px;
  resize: vertical;
}

.form-section p,
.form-status {
  margin: 0;
  color: var(--muted);
}

.form-section-inline {
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
}

.primary-button,
.secondary-button {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 9px 14px;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.primary-button {
  border-color: var(--accent);
  background: var(--accent);
  color: #ffffff;
}

.secondary-button {
  background: #f8fafc;
  color: var(--text);
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.form-status.is-error {
  color: var(--warning);
  font-weight: 700;
}

.prompt-manager-shell {
  width: min(1440px, calc(100% - 32px));
}

.prompt-warning {
  display: grid;
  gap: 4px;
  margin-bottom: 14px;
  border: 1px solid #f59e0b;
  border-left-width: 8px;
  border-radius: 8px;
  background: #fffbeb;
  color: #7c2d12;
  padding: 14px 16px;
}

.prompt-warning strong {
  color: #7c2d12;
}

.prompt-workspace-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.prompt-workspace-tabs button {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  padding: 8px 12px;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.prompt-workspace-tabs button.is-active {
  border-color: var(--accent);
  background: #eff6ff;
  color: var(--accent);
}

.prompt-workspace-section {
  display: grid;
  gap: 16px;
}

.prompt-management-panel {
  padding: 18px;
}

.prompt-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.65fr);
  gap: 16px;
  align-items: start;
}

.prompt-editor-panel,
.prompt-test-panel {
  padding: 18px;
}

.prompt-editor-panel {
  min-width: 0;
}

.prompt-form {
  display: grid;
  gap: 16px;
}

.prompt-form-grid,
.prompt-locale-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.prompt-locale-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.prompt-form .form-section {
  border-bottom: 0;
  padding-bottom: 0;
}

.prompt-form textarea {
  min-height: 132px;
  line-height: 1.45;
}

.prompt-question-toggle {
  margin-top: 2px;
}

.prompt-actions {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.danger-button {
  border-color: rgb(185 28 28 / 40%);
  color: var(--warning);
}

.prompt-lab-panel {
  padding: 18px;
}

.prompt-lab-controls {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.prompt-lab-controls .prompt-entry-section {
  grid-column: 1 / -1;
}

.prompt-lab-controls .prompt-actions {
  grid-column: 1 / -1;
}

.prompt-test-result {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.prompt-list-section {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.prompt-list {
  display: grid;
  gap: 8px;
  max-height: 280px;
  overflow: auto;
}

.prompt-list-wide {
  max-height: 420px;
}

.prompt-list-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafc;
  padding: 12px;
}

.prompt-list-item.is-active {
  border-color: #14b8a6;
  background: #f0fdfa;
}

.prompt-list-main div {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}

.prompt-list-item strong,
.prompt-list-item p,
.prompt-list-item small {
  overflow-wrap: anywhere;
}

.prompt-list-item p {
  margin-bottom: 0;
  color: var(--muted);
}

.prompt-list-item small {
  color: var(--muted);
}

.prompt-list-actions {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  justify-content: flex-end;
  gap: 8px;
}

.prompt-list-item button {
  width: fit-content;
  min-height: 34px;
  padding: 7px 10px;
}

.prompt-history-details {
  grid-column: 1 / -1;
}

.prompt-history-details summary,
.prompt-result-details summary {
  cursor: pointer;
  color: var(--accent);
  font-weight: 800;
}

.prompt-result-box {
  display: grid;
  gap: 12px;
}

.prompt-compare-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.prompt-result-card {
  display: grid;
  gap: 14px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 16px;
}

.prompt-result-card.is-success {
  border-top: 4px solid var(--ok);
}

.prompt-result-card.is-blocked {
  border-top: 4px solid var(--warning);
}

.prompt-result-card header {
  display: grid;
  gap: 10px;
}

.prompt-result-card header h3 {
  margin: 8px 0 0;
  font-size: 18px;
}

.prompt-result-card header dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.prompt-result-metadata {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.prompt-result-metadata div {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafc;
  padding: 8px 10px;
}

.prompt-result-metadata dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.prompt-result-metadata dd {
  margin: 3px 0 0;
  overflow-wrap: anywhere;
  font-weight: 700;
}

.prompt-response-body {
  display: grid;
  gap: 8px;
}

.prompt-output {
  display: grid;
  gap: 8px;
}

.prompt-output h4 {
  margin: 0;
  font-size: 14px;
}

.prompt-response-body pre,
.prompt-output pre {
  min-height: 148px;
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #111827;
  color: #f8fafc;
  padding: 12px;
  font: 13px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.prompt-output-secondary pre {
  min-height: 88px;
  background: #f8fafc;
  color: var(--text);
}

.prompt-output-input pre {
  min-height: 72px;
  background: #f8fafc;
  color: var(--text);
}

.prompt-layer-help,
.prompt-lab-note {
  max-width: 760px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.prompt-manual-review {
  display: grid;
  gap: 10px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.prompt-manual-review h4 {
  margin: 0;
  font-size: 14px;
}

.prompt-review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.prompt-review-grid label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.prompt-review-grid select {
  width: 100%;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 7px 8px;
  font: inherit;
}

.prompt-history-list {
  display: grid;
  gap: 8px;
}

.prompt-history-item {
  display: grid;
  gap: 4px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafc;
  color: var(--text);
  padding: 10px 12px;
  text-align: left;
  cursor: pointer;
}

.prompt-history-item span,
.prompt-history-item small {
  color: var(--muted);
}

.ai-ops-shell {
  width: min(1540px, calc(100% - 24px));
  padding-top: 18px;
}

.ai-ops-header {
  margin-bottom: 12px;
}

.ai-test-workbench {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(520px, 1.25fr) minmax(340px, 0.86fr);
  gap: 12px;
  align-items: start;
  min-height: calc(100vh - 250px);
}

.simple-ai-test {
  min-height: calc(100vh - 230px);
}

.ai-test-column,
.ai-ops-list-panel,
.ai-ops-detail-panel,
.ai-ops-active-panel,
.ai-ops-history-panel {
  padding: 14px;
}

.panel-head.compact {
  margin-bottom: 10px;
}

.ai-test-column {
  position: sticky;
  top: 10px;
  max-height: calc(100vh - 132px);
  overflow: auto;
}

.ai-test-center {
  position: static;
}

.ops-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.ops-version-input {
  width: 110px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  font: inherit;
  font-weight: 800;
}

.prompt-part-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.prompt-part-grid textarea,
.ai-test-left textarea,
.ai-test-right textarea {
  min-height: 96px;
  resize: vertical;
}

.template-load-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-bottom: 10px;
}

.template-load-row select,
.ops-quality-box input {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  padding: 8px 10px;
  font: inherit;
}

.prompt-draft-toolbar {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.prompt-draft-toolbar strong,
.prompt-draft-toolbar small {
  display: block;
}

.prompt-draft-toolbar strong {
  color: var(--text);
  font-size: 14px;
}

.prompt-draft-toolbar small {
  color: var(--muted);
}

.prompt-draft-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.category-prompt-editor {
  display: grid;
  min-height: 0;
  margin-top: 10px;
}

.category-prompt-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-height: calc(100vh - 520px);
  min-height: 260px;
  overflow: auto;
  padding-right: 2px;
}

.category-prompt-row {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 8px;
}

.category-prompt-row.is-selected {
  border-color: var(--accent);
  background: #eff6ff;
}

.category-prompt-row span,
.selected-category-box strong {
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
}

.category-prompt-row textarea {
  min-height: 74px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px;
  resize: vertical;
  font: inherit;
  font-size: 12px;
}

.selected-category-box pre {
  max-height: 140px;
}

.ops-preview,
.ops-result-box,
.ops-quality-box {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.ops-preview pre,
.ops-result-box pre,
.ops-diff-grid pre {
  max-height: 220px;
  overflow: auto;
  margin: 8px 0 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 12px;
  line-height: 1.45;
}

.ai-pinned-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  border-top: 1px solid var(--line);
  background: linear-gradient(to bottom, rgb(255 255 255 / 78%), #ffffff 30%);
  padding-top: 10px;
}

.ai-pinned-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.ai-test-mode-box {
  display: grid;
  gap: 12px;
}

.response-provider-box {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.response-provider-box small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}

.ai-test-mode-surface {
  display: block;
  margin-bottom: 14px;
  padding: 14px;
}

.ai-test-mode-surface:empty {
  display: none;
}

.ai-test-mode-surface .ai-test-mode-box {
  border: 0;
  background: transparent;
  padding: 0;
}

.ai-operation-summary {
  position: sticky;
  top: 10px;
  z-index: 3;
  display: grid;
  gap: 12px;
  margin-bottom: 14px;
  border: 1px solid rgba(37, 99, 235, 0.18);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
  box-shadow: 0 10px 28px rgb(15 23 42 / 8%);
}

.ai-operation-summary > details {
  display: grid;
  gap: 10px;
}

.summary-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}

.summary-head::-webkit-details-marker {
  display: none;
}

.summary-head::before {
  content: "펼치기";
  flex: 0 0 auto;
  align-self: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--accent);
  font-size: 12px;
  font-weight: 900;
  padding: 5px 8px;
}

.ai-operation-summary details[open] .summary-head::before {
  content: "접기";
}

.summary-side {
  display: grid;
  justify-items: end;
  gap: 8px;
  min-width: min(520px, 55%);
}

.summary-head h2 {
  margin: 2px 0 0;
  font-size: 18px;
}

.ops-summary-compact {
  grid-template-columns: repeat(3, minmax(0, auto));
  width: auto;
  margin: 0;
}

.ops-status-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.ops-badge {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.3;
  padding: 5px 8px;
}

.ops-badge.is-ok {
  border-color: rgba(22, 163, 74, 0.24);
  background: #f0fdf4;
  color: #15803d;
}

.ops-badge.is-warn {
  border-color: rgba(217, 119, 6, 0.26);
  background: #fffbeb;
  color: #b45309;
}

.ops-badge.is-danger {
  border-color: rgba(185, 28, 28, 0.26);
  background: #fff5f5;
  color: var(--danger);
}

.ops-hash {
  cursor: copy;
  overflow-wrap: anywhere;
}

.ops-next-action,
.ops-warning {
  margin: 0;
  border: 1px solid rgba(217, 119, 6, 0.22);
  border-radius: 8px;
  background: #fffbeb;
  color: #92400e;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
  padding: 9px 10px;
}

.execution-record-panel {
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
}

.execution-record-panel > summary,
.execution-record-panel summary {
  cursor: pointer;
  font-weight: 900;
}

.execution-record-body {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.execution-record-body .ops-preview {
  margin-top: 0;
}

.execution-text textarea {
  min-height: 92px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.5;
}

.classifier-category-display {
  display: flex;
  min-height: 38px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafc;
  color: var(--text);
  padding: 8px 10px;
  font-size: 16px;
}

.category-override-box {
  margin: 10px 0;
}

.category-override-box summary {
  cursor: pointer;
  font-weight: 800;
}

.category-override-box small {
  color: var(--muted);
  font-weight: 700;
}

.segmented-control,
.auto-test-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.segmented-control label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafc;
  padding: 7px 10px;
  font-weight: 800;
  cursor: pointer;
}

.segmented-control input {
  accent-color: var(--accent);
}

.auto-test-controls {
  display: grid;
  gap: 12px;
}

.auto-test-controls .form-section,
.auto-result-card .form-section,
.auto-record-card .form-section {
  border-bottom: 0;
  padding-bottom: 0;
}

.ai-auto-test-panel {
  display: grid;
  gap: 14px;
  margin-top: 14px;
  padding: 14px;
}

.auto-test-layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.8fr) minmax(520px, 1.2fr);
  gap: 14px;
  align-items: start;
}

.auto-job-status {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 12px;
}

.auto-job-status-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.auto-job-status-head div {
  display: grid;
  gap: 3px;
}

.auto-job-status-head strong {
  font-size: 14px;
}

.auto-job-status-head span,
.auto-job-meta dd,
.auto-progress-row div {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.auto-progress-row {
  display: grid;
  gap: 5px;
}

.auto-progress-row div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.auto-progress-row progress {
  width: 100%;
  height: 10px;
  accent-color: var(--accent);
}

.inline-spinner {
  width: 18px;
  height: 18px;
  border: 2px solid rgb(148 163 184 / 45%);
  border-top-color: var(--accent);
  border-radius: 999px;
  animation: admin2-spin 0.8s linear infinite;
}

@keyframes admin2-spin {
  to {
    transform: rotate(360deg);
  }
}

.auto-record-list,
.auto-result-list {
  display: grid;
  gap: 10px;
  max-height: 680px;
  overflow: auto;
}

.auto-record-card,
.auto-result-card {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

.auto-record-card.is-excluded {
  opacity: 0.62;
  background: #f8fafc;
}

.auto-record-card header,
.auto-result-card summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.auto-record-card textarea,
.auto-result-detail textarea,
.auto-result-card textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  padding: 8px 10px;
  font: inherit;
  resize: vertical;
}

.auto-record-card small,
.auto-result-card summary span,
.auto-record-response {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.auto-record-response {
  margin: 0;
  line-height: 1.45;
}

.auto-result-card summary {
  cursor: pointer;
}

.auto-result-detail {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.auto-review-grid {
  margin-top: 10px;
}

.auto-exclude-row {
  align-self: end;
  min-height: 38px;
}

.status-strip.is-error {
  border-color: rgb(185 28 28 / 35%);
  background: #fef2f2;
  color: var(--warning);
}

.ai-ops-management-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(520px, 1.3fr) minmax(280px, 0.7fr);
  gap: 12px;
  align-items: start;
}

.ai-ops-management-grid .panel-wide {
  grid-column: 1 / -1;
}

.ops-list {
  display: grid;
  gap: 8px;
  max-height: calc(100vh - 330px);
  overflow: auto;
}

.ops-list-item {
  display: grid;
  gap: 4px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
  text-align: left;
  cursor: pointer;
}

.ops-list-item.is-active {
  border-color: var(--accent);
  background: #eff6ff;
}

.ops-list-item span,
.ops-list-item small {
  color: var(--muted);
}

.ops-list-item .ops-list-time {
  color: var(--accent-dark);
  font-weight: 700;
}

.ops-detail-empty {
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: 16px;
  color: var(--muted);
}

.ops-diff-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.ops-diff-grid section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.ops-deploy-actions input,
.ops-deploy-actions textarea {
  flex: 1 1 240px;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  font: inherit;
}

.ops-deploy-actions textarea {
  flex-basis: 100%;
  min-height: 64px;
  resize: vertical;
}

.ops-deploy-reason {
  flex: 1 1 100%;
  margin: 0;
  border: 1px solid rgba(217, 119, 6, 0.22);
  border-radius: 8px;
  background: #fffbeb;
  color: #92400e;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
  padding: 8px 10px;
}

.ops-deploy-reason.is-ready {
  border-color: rgba(22, 163, 74, 0.24);
  background: #f0fdf4;
  color: #15803d;
}

.ops-runtime-card {
  display: block;
  min-height: 132px;
}

.ops-runtime-panel-accordion {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.ops-runtime-panel-accordion > summary {
  cursor: pointer;
  color: var(--text);
  font-size: 18px;
  font-weight: 900;
}

.ops-runtime-panel-accordion[open] > summary {
  margin-bottom: 10px;
}

.ops-runtime-summary-card {
  display: grid;
  gap: 6px;
}

.ops-runtime-summary-card h3 {
  margin: 0;
  color: var(--text);
  font-size: 26px;
  line-height: 1.15;
}

.ops-runtime-summary-card p {
  margin: 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 800;
}

.ops-runtime-summary-card small {
  color: var(--muted);
}

.ops-prompt-composition {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
}

.ops-prompt-composition > summary {
  cursor: pointer;
  list-style: none;
}

.ops-prompt-composition > summary::-webkit-details-marker {
  display: none;
}

.ops-prompt-composition:not([open]) {
  gap: 0;
}

.ops-composition-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
}

.ops-composition-head h4 {
  margin: 0;
  color: var(--text);
  font-size: 15px;
}

.ops-composition-note {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.ops-composition-table-wrap {
  max-height: 360px;
}

.ops-composition-table {
  min-width: 1680px;
}

.ops-composition-table th,
.ops-composition-table td {
  font-size: 12px;
  line-height: 1.35;
}

.ops-composition-table .is-feature-row {
  background: #fff7ed;
}

.ops-composition-table .is-safety-row {
  background: #f8fafc;
}

.ops-composition-notes {
  margin: 6px 0 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.advanced-runtime-details {
  margin-top: 8px;
}

.advanced-runtime-details summary {
  cursor: pointer;
  color: var(--accent);
  font-weight: 800;
}

.advanced-runtime-details[open] summary {
  margin-bottom: 8px;
}

.prompt-accordion .ops-result-box {
  margin-top: 8px;
}

.runtime-metadata-details > summary,
.category-prompt-accordion > summary {
  font-size: 0;
}

.runtime-metadata-details > summary::after {
  content: "Runtime Metadata";
  font-size: 13px;
}

.category-prompt-accordion > summary::after {
  content: "Category Prompt 12";
  font-size: 13px;
}

.history-row-details {
  margin-top: 4px;
}

.ops-table-wrap {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.ops-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
  font-size: 13px;
}

.ops-table th,
.ops-table td {
  border-bottom: 1px solid var(--line);
  padding: 8px 10px;
  text-align: left;
  vertical-align: top;
}

.ops-table th {
  position: sticky;
  top: 0;
  background: #f8fafc;
  color: var(--muted);
  font-weight: 800;
}

.ops-table code {
  font-size: 12px;
}

.hidden {
  display: none;
}

@media (max-width: 1180px) {
  .usage-summary-grid,
  .summary-card-grid,
  .journey-funnel,
  .state-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .distribution-grid,
  .platform-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ai-ops-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .prompt-compare-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .prompt-lab-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ai-test-workbench,
  .ai-ops-management-grid,
  .ai-quality-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ai-quality-grid .panel-wide {
    grid-column: auto;
  }

  .ai-test-column {
    position: static;
    max-height: none;
  }
}

@media (max-width: 900px) {
  .admin2-header,
  .overview-panel,
  .prompt-layout,
  .layout-grid {
    grid-template-columns: 1fr;
    display: grid;
  }

  .overview-status {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding: 14px 0 0;
  }

  .form-section-inline,
  .form-actions {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .admin2-actions {
    justify-content: flex-start;
  }

  .health-grid,
  .usage-summary-grid,
  .summary-card-grid,
  .ai-ops-grid,
  .journey-funnel,
  .state-grid,
  .distribution-grid,
  .platform-grid,
  .card-grid,
  .prompt-form-grid,
  .prompt-locale-grid,
  .prompt-lab-controls,
  .prompt-compare-results,
  .prompt-result-metadata,
  .prompt-review-grid,
  .metric-grid {
    grid-template-columns: 1fr;
  }

  .prompt-list-item {
    grid-template-columns: 1fr;
  }

  .prompt-list-actions {
    justify-content: flex-start;
  }

  .prompt-result-card header dl {
    grid-template-columns: 1fr;
  }

  .ai-runtime-card,
  .ai-status-card dl,
  .journey-step dl,
  .compact-dl,
  .platform-card dl,
  .ai-runtime-card dl {
    grid-template-columns: 1fr;
  }

  .project-management-grid,
  .ai-lab-grid,
  .ai-test-workbench,
  .ai-ops-management-grid,
  .prompt-part-grid,
  .ops-form-grid,
  .ops-diff-grid,
  .ai-quality-grid,
  .quality-review-layout,
  .lab-results-grid,
  .quality-case-list,
  .quality-progress-grid,
  .quality-aggregate-grid,
  .quality-pattern-statistics-grid,
  .quality-pattern-library-grid,
  .project-count-grid,
  .task-meta-list,
  .form-grid-two,
  .ai-lab-tag-grid,
  .quality-fieldset,
  .quality-category-grid,
  .quality-filter-bar,
  .quality-tag-grid,
  .quality-tone-grid,
  .quality-score-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .ai-quality-progress-panel .quality-progress-grid {
    grid-template-columns: 1fr;
  }

  .quality-batch-history-head,
  .quality-batch-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .quality-batch-history-head span,
  .quality-batch-pagination span {
    text-align: left;
  }

  .project-management-grid .panel-wide,
  .ai-lab-grid .panel-wide,
  .ai-ops-management-grid .panel-wide,
  .ai-quality-grid .panel-wide {
    grid-column: auto;
  }

  .quality-evaluation-card-head,
  .quality-card-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .quality-evaluation-badges {
    justify-content: flex-start;
  }

  .quality-score-buttons span,
  .quality-issue-buttons span {
    min-height: 34px;
  }

  .task-card-main {
    display: grid;
  }
}

.platform-selector { position:sticky; top:0; z-index:20; display:grid; grid-template-columns:minmax(190px,.55fr) minmax(420px,1.45fr); gap:18px; align-items:center; margin:0 0 18px; border:2px solid var(--accent); border-radius:14px; background:rgba(255,255,255,.97); padding:16px 18px; box-shadow:0 12px 30px rgb(15 23 42 / 14%); backdrop-filter:blur(10px); }
.platform-selector-copy { display:grid; gap:3px; }.platform-selector-copy h2 { margin:0; font-size:18px; }.platform-selector-copy strong { color:var(--accent); font-size:14px; }
.platform-tabs { display:grid; grid-template-columns:repeat(4,minmax(88px,1fr)); gap:8px; margin:0; }
.platform-tabs button { min-height:46px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--muted); padding:10px 16px; font:inherit; font-weight:900; cursor:pointer; transition:background .15s,border-color .15s,box-shadow .15s; }
.platform-tabs button.is-active { border-color:var(--accent); background:var(--accent); color:#fff; box-shadow:0 6px 16px rgb(37 99 235 / 28%); }.platform-tabs[aria-busy="true"] button { cursor:wait; }.platform-tabs button:focus-visible { outline:3px solid rgb(37 99 235 / 30%); outline-offset:2px; }
.observe-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.observe-kpi { border:1px solid var(--line); border-radius:10px; background:#fff; padding:12px; }
.observe-kpi header,.observe-chart header { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.observe-kpi header span { font-weight:900; }
.observe-kpi dl { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:12px 0 0; }
.observe-kpi dl div { background:#f8fafc; border-radius:6px; padding:8px; }
.observe-kpi dt { color:var(--muted); font-size:11px; }.observe-kpi dd { margin:3px 0 0; font-size:18px; font-weight:900; }
.collection-state { border-radius:999px; background:#f1f5f9; padding:3px 7px; color:var(--muted); font-size:10px; font-style:normal; }
.collection-state.available { background:#ecfdf5; color:#047857; }.collection-state.instrumentation_required { background:#fff7ed; color:#c2410c; }.collection-state.error { background:#fef2f2; color:#b91c1c; }
.observe-chart-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.observe-chart { min-width:0; border:1px solid var(--line); border-radius:10px; background:#fff; padding:12px; }
.observe-chart h3 { margin:0 0 10px; font-size:15px; }.observe-chart header em { color:var(--muted); font-size:11px; }
.observe-bar-row { display:grid; grid-template-columns:minmax(90px,1fr) minmax(100px,3fr) 52px; gap:8px; align-items:center; margin:7px 0; font-size:12px; }
.observe-bar-row i { display:block; height:9px; overflow:hidden; border-radius:999px; background:#e2e8f0; }.observe-bar-row b { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.observe-bar-row strong { text-align:right; }
@media (max-width:1180px) { .observe-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .observe-kpi-grid,.observe-chart-grid { grid-template-columns:1fr; }.observe-kpi dl { grid-template-columns:1fr; } }
@media (max-width:760px) { .platform-selector { position:static; grid-template-columns:1fr; gap:10px; padding:14px; }.platform-tabs { grid-template-columns:repeat(4,minmax(68px,1fr)); }.platform-tabs button { min-width:0; padding:9px 5px; } }
@media (max-width:420px) { .platform-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); } }
