/* Night Laboratory — shared application shell and controls. */
:root {
  color-scheme: dark;
  --malcat-blue: var(--theme-accent);
  --malcat-blue-2: var(--theme-accent-hover);
  --malcat-red: var(--theme-danger);
  --paper: var(--theme-panel);
  --page-bg: var(--theme-bg);
  --ink: var(--theme-ink);
  --muted: var(--theme-muted);
  --soft: var(--theme-soft);
  --line: var(--theme-line);
  --line-strong: var(--theme-line-strong);
  --code-bg: var(--theme-code);
  --success: var(--theme-success);
  --warning: var(--theme-warning);
  --serif: Georgia, "Palatino Linotype", "Book Antiqua", serif;
  --sans: "Segoe UI", system-ui, -apple-system, sans-serif;
  --bs-body-bg: var(--page-bg);
  --bs-body-color: var(--ink);
  --bs-secondary-color: var(--muted);
  --bs-secondary-bg: var(--soft);
  --bs-tertiary-bg: var(--paper);
  --bs-border-color: var(--line);
  --bs-primary: var(--malcat-blue);
  --bs-primary-rgb: 200, 174, 116;
  --bs-link-color: var(--malcat-blue);
  --bs-link-hover-color: var(--malcat-blue-2);
  --bs-emphasis-color: var(--ink);
  --bs-focus-ring-color: rgb(200 174 116 / 30%);
  --tblr-body-bg: var(--page-bg);
  --tblr-body-color: var(--ink);
  --tblr-bg-surface: var(--paper);
  --tblr-bg-surface-secondary: var(--soft);
  --tblr-border-color: var(--line);
  --tblr-muted: var(--muted);
  --tblr-primary: var(--malcat-blue);
  --tblr-primary-rgb: 200, 174, 116;
  --tblr-link-color: var(--malcat-blue);
  --tblr-card-bg: var(--paper);
}

body { background: var(--page-bg); color: var(--ink); font-family: var(--sans); }
.app-shell { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
.app-shell > .app-navbar { flex-shrink: 0; }
.app-shell > main { flex: 1 0 auto; }
.information-page { max-width: 800px; }
.information-content { padding: 1.5rem; line-height: 1.8; }
.information-content p { max-width: 65ch; }
.information-content > :last-child { margin-bottom: 0; }
main { width: min(1600px, calc(100% - 5rem)); padding: 2rem 0 3rem; }
h1, h2, h3 { color: var(--ink); }
h1 { font: 400 clamp(2rem, 3.4vw, 3rem)/1.15 var(--serif); margin-bottom: .65rem; }
h2 { font-weight: 500; }
a, .text-primary { color: var(--malcat-blue); }
a:hover { color: var(--malcat-blue-2); }
::selection { background: var(--theme-selection); color: #fff; }
:focus-visible { outline: 2px solid var(--malcat-blue); outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 2000; padding: .75rem 1rem; background: var(--paper); }
.skip-link:focus { top: 1rem; }
.text-muted, .text-secondary, .form-hint { color: var(--muted) !important; }
.text-danger { color: var(--malcat-red) !important; }
.text-success { color: var(--success) !important; }
.shadow-sm { box-shadow: none !important; }

.app-navbar { background: var(--page-bg); border-bottom: 1px solid var(--line-strong) !important; }
.app-navbar .container-fluid { min-height: 5rem; padding-inline: 2.5rem; gap: 1.5rem; }
.app-navbar .brand { display: flex; align-items: center; gap: .75rem; color: var(--ink); font-weight: 400; }
.app-navbar .brand-mark { display: block; flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; background: currentColor; -webkit-mask: url("ico/cat-mark.svg") center / contain no-repeat; mask: url("ico/cat-mark.svg") center / contain no-repeat; }
.app-navbar .brand-copy { display: flex; align-items: center; gap: 1.4rem; }
.app-navbar .brand-title { font: 400 2rem/1 var(--serif); white-space: nowrap; }
.app-navbar .brand-subtitle { border-left: 1px solid var(--line-strong); padding-left: 1.4rem; color: var(--muted); font: 400 .85rem/1.4 var(--sans); }
.app-navbar .navbar-collapse { flex-grow: 1; }
.app-navbar .navbar-nav.me-auto { margin-left: auto; margin-right: 0 !important; }
.app-navbar .navbar-nav.ms-md-auto { margin-left: 0 !important; }
.app-navbar .nav-link { color: var(--ink); font-weight: 400; font-size: .95rem; min-height: 5rem; border-bottom: 3px solid transparent; padding-inline: .9rem; }
.app-navbar .nav-link:hover, .app-navbar .nav-link:focus { background: var(--paper); color: var(--malcat-blue); }
.app-navbar .nav-link.active { color: var(--malcat-blue); border-bottom-color: var(--malcat-blue); }
.account-trigger { max-width: 15rem; overflow: hidden; text-overflow: ellipsis; }
.dropdown-menu { --bs-dropdown-bg: var(--paper); --bs-dropdown-color: var(--ink); --bs-dropdown-link-color: var(--ink); --bs-dropdown-link-hover-bg: var(--soft); --bs-dropdown-link-hover-color: var(--ink); background: var(--paper); border-color: var(--line-strong); }
.dropdown-item { color: var(--ink); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--soft); color: var(--ink); }

.page-heading { margin-bottom: 1.5rem; }
.page-heading p { margin: 0; color: var(--muted); font-size: 1rem; }
.dashboard-heading { display: flex; align-items: center; gap: 2rem; min-height: 125px; margin-bottom: 1.5rem; }
.dashboard-heading > div:first-child { flex: 1; }
.dashboard-heading .btn { white-space: nowrap; }
.dashboard-beta-notice { max-width: 82ch; margin: -.35rem 0 1.25rem; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.dashboard-beta-notice a { color: var(--malcat-blue); font-weight: 500; text-underline-offset: 3px; }
.panel { background: var(--paper); border: 1px solid var(--line); border-radius: 4px; box-shadow: none; }
.section-heading h2, .account-panel h2 { font: 400 1.6rem/1.25 var(--serif); }

.btn { border-radius: 3px; font-weight: 500; }
.btn.btn-primary { background: var(--malcat-blue); border-color: var(--malcat-blue); color: var(--page-bg); }
.btn.btn-primary:hover, .btn.btn-primary:focus { background: var(--malcat-blue-2); border-color: var(--malcat-blue-2); color: var(--page-bg); }
.btn-outline-primary:hover, .btn-outline-primary:focus { background: var(--malcat-blue); color: var(--page-bg); }
.btn-primary { --bs-btn-bg: var(--theme-accent); --bs-btn-border-color: var(--theme-accent); --bs-btn-color: var(--theme-bg); --bs-btn-hover-bg: var(--theme-accent-hover); --bs-btn-hover-border-color: var(--theme-accent-hover); --bs-btn-hover-color: var(--theme-bg); --bs-btn-active-bg: var(--theme-accent-hover); --bs-btn-active-color: var(--theme-bg); --bs-btn-disabled-bg: #7e755d; --bs-btn-disabled-color: var(--theme-bg); }
.btn-outline-primary { --bs-btn-color: var(--theme-accent-hover); --bs-btn-border-color: var(--theme-accent); --bs-btn-hover-bg: var(--theme-accent); --bs-btn-hover-border-color: var(--theme-accent); --bs-btn-hover-color: var(--theme-bg); --bs-btn-active-bg: var(--theme-accent); --bs-btn-active-color: var(--theme-bg); --bs-btn-disabled-color: var(--theme-muted); }
.btn-outline-secondary { --bs-btn-color: var(--theme-muted); --bs-btn-border-color: var(--theme-line-strong); --bs-btn-hover-bg: var(--theme-soft); --bs-btn-hover-color: var(--theme-ink); }
.btn.btn-outline-secondary { color: var(--muted); background: transparent; border-color: var(--line-strong); }
.btn.btn-outline-secondary:hover, .btn.btn-outline-secondary:focus-visible, .btn.btn-outline-secondary:active { color: var(--ink); background: var(--soft); border-color: var(--line-strong); }
.btn.btn-danger { color: var(--page-bg); background: var(--malcat-red); border-color: var(--malcat-red); }
.btn.btn-danger:hover, .btn.btn-danger:focus-visible { filter: brightness(.92); }
.form-control, .form-select, .input-group-text { background-color: var(--paper); border-color: var(--theme-control-border); color: var(--ink); border-radius: 3px; font-family: var(--sans); }
.form-control:focus, .form-select:focus { background-color: var(--paper); border-color: var(--malcat-blue); color: var(--ink); box-shadow: 0 0 0 3px rgba(var(--theme-accent-rgb), .15); }
.form-control::placeholder { color: var(--muted); opacity: .85; }
.form-control:disabled, .form-select:disabled { background: var(--soft); color: var(--muted); }
.form-label, .analysis-form .form-label { color: var(--ink); font-weight: 400; }
.analysis-form .btn-check:checked + .btn { background: var(--theme-selected); border-color: var(--malcat-blue); color: var(--ink); box-shadow: inset 0 0 0 1px var(--malcat-blue); }
.profile-field .btn-outline-primary { background: var(--paper); border-color: var(--theme-control-border); color: var(--ink); }
.profile-field .btn-outline-primary:hover, .profile-field .btn-outline-primary:focus { background: var(--soft); border-color: var(--malcat-blue); color: var(--ink); }
.analysis-form .form-range::-webkit-slider-thumb { background: var(--malcat-blue); }
.analysis-form .form-range::-moz-range-thumb { background: var(--malcat-blue); }
.analysis-form .form-range::-webkit-slider-runnable-track { background: var(--theme-control-border); }
.analysis-form .form-range::-moz-range-track { background: var(--theme-control-border); }

.auth-form ~ p a { text-decoration: underline; text-underline-offset: 3px; }

@media (pointer: coarse) {
  .app-navbar .navbar-toggler { min-width: 44px; min-height: 44px; }
  .btn, .form-control, .form-select { min-height: 44px; }
  .form-control, .form-select { font-size: 16px; }
  .analysis-form .form-range { height: 44px; }
  .analysis-form .analysis-hint-help { min-width: 44px; min-height: 44px; }
}

.submission-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 29%); gap: 2.5rem; align-items: start; }
.submission-workspace { min-width: 0; }
.analysis-submit-panel { background: transparent; border: 0; overflow: visible; }
.analysis-step { padding: 1rem 0 1.25rem; }
.analysis-step + .analysis-step { border-top: 0; }
.analysis-step-heading { margin-bottom: 1rem; }
.analysis-step-heading h2 { color: var(--ink); font: 400 1.45rem/1.3 var(--sans); }
.analysis-step-heading p { font-size: .85rem; }
.analysis-form .analysis-quick-setup { padding: 0; }
.analysis-setup-step { padding-bottom: .25rem; }
.analysis-customize > summary { padding: .7rem 0 .95rem; color: var(--ink); }
.analysis-customize > summary:hover .analysis-customize-trigger,
.analysis-customize > summary:focus-visible .analysis-customize-trigger { background: var(--theme-hover); border-color: var(--malcat-blue); color: var(--malcat-blue); }
.analysis-customize-body { padding: 0 0 1rem; }
.analysis-submit-actions { padding: 1.25rem 0 1.5rem; }
.analysis-options-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; align-items: start; }
.analysis-options-grid .form-select { font-family: var(--mono); font-size: .85rem; }
.file-drop { min-height: 8rem; background: var(--paper); border: 1px dashed var(--line-strong); border-radius: 4px; color: var(--ink); box-shadow: none; font-weight: 400; }
.file-drop.is-selected { background: var(--theme-hover); color: var(--ink); }
.file-drop.is-invalid { background: var(--theme-danger-bg); color: var(--malcat-red); }
.file-drop:hover, .file-drop:focus-visible, .file-drop.is-dragover { background: var(--theme-hover); border-color: var(--malcat-blue); }
.file-drop-icon { color: var(--malcat-blue); }
.analysis-task-triage { --task-accent: var(--theme-danger); --task-tint: var(--theme-danger-bg); }
.analysis-task-behavior { --task-accent: var(--theme-info); --task-tint: var(--theme-info-bg); }
.analysis-task-unpack { --task-accent: var(--theme-warning); --task-tint: var(--theme-warning-bg); }
.analysis-task-config { --task-accent: var(--theme-success); --task-tint: var(--theme-success-bg); }
.analysis-task-button { min-height: 6rem; padding: .8rem 1rem; gap: 1rem; background: var(--paper); border: 1px solid var(--line-strong); border-radius: 4px; }
.analysis-task-button:hover, .analysis-task-button:focus-visible { box-shadow: none; }
.analysis-task-button[data-selected] { border-color: var(--task-accent); background: var(--task-tint); box-shadow: inset 0 0 0 1px var(--task-accent); }
.analysis-task-icon-frame { width: 3.25rem; height: 3.25rem; border-radius: 9px; border-color: var(--task-accent); }
.analysis-task-copy strong { color: var(--ink); font-weight: 500; font-size: 1.2rem; }
.analysis-task-copy small { font-size: .8rem; }

.specimen-plate { border-left: 1px solid var(--line-strong); padding: .5rem 0 0 2rem; text-align: center; }
.plate-number { display: block; text-align: right; color: var(--malcat-blue); font: .8rem/1.5 var(--serif); letter-spacing: .2em; text-transform: uppercase; }
.specimen-plate figure { margin: 0; }
.specimen-plate img, .specimen-header img { filter: var(--specimen-filter, none); }
.malware-drawing { position: relative; }
.plate-label { position: absolute; right: 8%; color: var(--malcat-blue); font: italic .9rem var(--serif); }
.plate-label-a { top: 35%; }
.plate-label-b { top: 47%; }
.plate-label-c { top: 57%; }
.specimen-plate img { display: block; width: 100%; height: 300px; object-fit: cover; }
.specimen-plate figcaption, .specimen-header figcaption { color: var(--malcat-blue); font: italic .95rem/1.5 var(--serif); }
.malware-plate { margin-top: 1.5rem !important; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.plate-legend { width: fit-content; margin: 1rem auto 0; padding-left: 1.5rem; text-align: left; color: var(--muted); font-size: .85rem; line-height: 1.9; }
.plate-legend li::marker { color: var(--malcat-blue); font-family: var(--serif); font-style: italic; }
.specimen-header { flex: 0 0 150px; margin: 0; text-align: center; }
.specimen-header img { width: 130px; height: 100px; object-fit: contain; }
.specimen-header figcaption { font-size: .8rem; }

.analysis-history { border: 0; padding: 0; background: transparent; }
.history-filters { display: flex; flex-wrap: wrap; gap: .85rem; align-items: end; margin: 1.25rem 0; }
.history-filters label { display: block; margin-bottom: .35rem; color: var(--muted); font-size: .8rem; }
.history-search { flex: 1 1 260px; max-width: 420px; }
.history-filters .filter-select { flex: 0 1 175px; }
.history-filters .btn { min-height: 38px; }
.table-wrap { border-radius: 4px; background: transparent; }
th { background: var(--paper); color: var(--muted); font-weight: 400; }
th, td { border-color: var(--line); padding: .9rem .8rem; vertical-align: middle; }
tbody tr:nth-child(even) td { background: var(--theme-stripe); }
tbody tr:hover td { background: var(--theme-hover); }
.dashboard-task-header, .dashboard-task-cell { width: auto; max-width: none; min-width: 9.5rem; text-align: left; white-space: normal; }
.dashboard-task-icon { background: transparent; border: 0; width: 1.7rem; height: 1.7rem; margin-right: .35rem; vertical-align: middle; }
.dashboard-task-copy { display: inline-flex; flex-direction: column; max-width: calc(100% - 2.4rem); vertical-align: middle; }
.dashboard-task-label { color: var(--ink); font-size: .85rem; line-height: 1.2; }
.dashboard-task-prompt { margin-top: .15rem; color: var(--muted); font-size: .7rem; line-height: 1.25; overflow-wrap: anywhere; }
.dashboard-sample-header, .dashboard-sample-cell { width: auto; min-width: 10rem; max-width: 20rem; }
.dashboard-sample-cell { font-family: var(--mono); font-size: .85rem; }
.dashboard-model-header, .dashboard-model-cell { width: auto; min-width: 10rem; max-width: 14rem; }
.dashboard-model { max-width: 13rem; font-family: var(--mono); font-size: .75rem; }
.status { font-size: .8rem; font-weight: 500; text-transform: capitalize; }
.status::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-right: .45rem; border: 1px solid currentColor; border-radius: 50%; }
.status-complete { color: var(--muted); }
.status-running, .status-analyzed, .status-rendering, .status-rescan_queued, .status-rescanning { color: var(--theme-info); }
.status-cell { min-width: 7rem; }
.dashboard-detection { min-width: 7rem; }
.dashboard-detection-head { font-size: .8rem; font-weight: 500; text-transform: capitalize; }
.dashboard-detection-progress { height: 2px; }
.dashboard-config-result { display: inline-flex; border: 0; padding-left: 0; gap: .45rem; }
.dashboard-task-result, .dashboard-config-result span { font-size: .8rem; font-weight: 400; text-transform: none; }
.dashboard-config-result strong { font-weight: 500; }
.pagination { justify-content: flex-end; gap: .5rem; margin-top: 1.25rem; }
.pagination-link { color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 3px; }
.pagination-link:hover, .pagination-link.is-current { background: var(--paper); border-color: var(--malcat-blue); color: var(--malcat-blue); }
.pagination-link:not(.is-disabled):hover { background: var(--soft); }
.pagination-link.is-disabled { background: transparent; color: var(--muted); opacity: .5; }
.empty-history { padding: 3rem 1rem; text-align: center; border: 1px dashed var(--line-strong); border-radius: 4px; }
.empty-history h3 { font: 400 1.6rem var(--serif); }
.history-table th a { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem 0; color: var(--muted); white-space: nowrap; }
.history-table th[aria-sort="ascending"] a, .history-table th[aria-sort="descending"] a, .history-table th a:hover { color: var(--malcat-blue); }
.history-table .dashboard-sample-cell { min-width: 15rem; max-width: 28rem; width: 34%; white-space: normal; }
.dashboard-sample-link { display: block; color: var(--ink); font-size: .9rem; font-weight: 600; overflow-wrap: anywhere; }
.dashboard-sample-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem; margin-top: .4rem; color: var(--muted); font: .72rem var(--mono); }
.dashboard-copy-hash { min-height: 1.4rem; border: 0; padding: .15rem 0; background: transparent; color: var(--muted); cursor: pointer; font: inherit; }
.history-table td { padding-block: .75rem; }
.dashboard-copy-hash [data-copy-label] { margin-left: .4rem; text-decoration: underline; text-underline-offset: 3px; }
.dashboard-copy-hash:hover { color: var(--malcat-blue); }
.history-table td[data-field="created_at"], .history-table td[data-field="elapsed_seconds"], .history-table td[data-field="cost_credits"] { color: var(--muted); font-size: .8rem; white-space: nowrap; }
.history-table .status-cell { min-width: 9rem; }
.status-hint { display: block; font-size: .7rem; color: var(--muted); margin-top: .35rem; }
.dashboard-result-pending { font-size: .8rem; color: var(--muted); }
.dashboard-kesakode-cell { min-width: 12rem; max-width: 22rem; white-space: normal; }
.dashboard-kesakode { font-size: .8rem; }
.dashboard-kesakode summary { cursor: pointer; overflow-wrap: anywhere; }
.dashboard-kesakode-best { font-weight: 500; }
.dashboard-kesakode-score, .dashboard-kesakode-more { color: var(--muted); white-space: nowrap; font-size: .75rem; }
.dashboard-kesakode ul { list-style: none; margin: .6rem 0 0; padding: .6rem 0 0; border-top: 1px solid var(--line); }
.dashboard-kesakode li { display: flex; justify-content: space-between; gap: .75rem; padding: .15rem 0; overflow-wrap: anywhere; }
.dashboard-detection-head .dashboard-score { color: var(--muted); font-size: .7rem; font-weight: 400; text-transform: none; white-space: nowrap; }
.dashboard-detection { min-width: 9rem; }
.history-column-picker { position: relative; }
.history-column-picker summary { padding: .5rem .8rem; border: 1px solid var(--line-strong); border-radius: 3px; color: var(--ink); cursor: pointer; font-size: .85rem; }
.history-column-picker fieldset { position: absolute; z-index: 5; top: calc(100% + .5rem); right: 0; width: 14rem; padding: 1rem; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--paper); box-shadow: 0 8px 24px rgb(0 0 0 / 20%); }
.history-column-picker legend { float: none; width: auto; padding: 0; margin: 0 0 .5rem; color: var(--ink); font-size: .9rem; }
.history-filters .history-column-picker label { display: flex; align-items: center; gap: .6rem; padding: .3rem 0; color: var(--ink); cursor: pointer; }
.history-column-picker input[type="checkbox"] { width: 1rem; height: 1rem; accent-color: var(--malcat-blue); }
.history-column-picker .btn { margin-top: .5rem; width: 100%; }
.history-scroll-hint { display: none; }
@media (max-width: 760px) { .history-scroll-hint { display: block; color: var(--muted); font-size: .75rem; margin: 0 0 .6rem; } }
@media (max-width: 575px) { .history-column-picker fieldset { left: 0; right: auto; } }

.report-page-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.report-toolbar-context { display: flex; align-items: baseline; gap: .7rem; min-width: 0; }
.report-toolbar-summary { min-width: 0; overflow: hidden; color: var(--muted); font: 400 .75rem/1.4 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.report-back-link { font-size: .85rem; }
.report-back-link span { color: var(--muted); margin: 0 .75rem; }
.report-action-list { display: flex; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.report-action-list > li { position: relative; }
.report-action-list .nav-link { border: 1px solid var(--line-strong); border-radius: 3px; padding: .5rem 1rem; color: var(--ink); }
.report-action-list button.dropdown-item { justify-content: flex-start; text-align: left; }
.embedded-report { margin-top: 0; }
.analysis-report-frame { width: 100%; border: 0; background: var(--page-bg); color-scheme: dark; }
.modal-content { background: var(--paper); border-color: var(--line-strong); }
.report-action-modal .modal-header { background: var(--page-bg); color: var(--ink); border-color: var(--line); }
.report-action-modal .modal-title { color: var(--ink); }
.modal-footer { background: var(--page-bg); color: var(--ink); border-color: var(--line); }
.report-action-modal .btn-close { filter: invert(1); }
.report-action-modal .modal-header, .report-action-modal .modal-body, .report-action-modal .modal-footer { padding: 1.25rem 1.5rem; }
.report-action-modal .modal-header > div { min-width: 0; }
.report-action-modal .modal-title { overflow-wrap: anywhere; font: 400 1.4rem/1.4 var(--serif); }
.report-action-modal .btn-close { flex-shrink: 0; opacity: .9; }
.modal-footer-note { flex: 1 1 15rem; margin: 0; color: var(--muted); font-size: .8rem; }
.resubmit-analysis-filename { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; margin: .5rem 0 0; color: var(--muted); font: .82rem/1.5 var(--mono); }
.resubmit-analysis-form .analysis-step { padding: 0; }
.resubmit-analysis-form .analysis-step + .analysis-step { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.resubmit-analysis-form .analysis-step-heading { display: block; }
.resubmit-analysis-form .analysis-step-heading h2 { font-size: 1.15rem; }
.resubmit-analysis-form .analysis-quick-setup { padding: 0; }
.resubmit-analysis-form .analysis-customize-body { padding: 0; }
.resubmit-analysis-form .analysis-options-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; }
.resubmit-analysis-form .field-block { min-width: 0; }
.resubmit-analysis-form .range-label { flex-wrap: wrap; }
@media (max-width: 575px) {
  .report-action-modal .modal-header, .report-action-modal .modal-body, .report-action-modal .modal-footer { padding: 1rem; }
  .resubmit-analysis-form .analysis-options-grid { grid-template-columns: minmax(0, 1fr); }
}
.flash-message, .analysis-failure-details, .account-panel, .account-statistics thead th, .model-health-warning { background: var(--paper); color: var(--ink); }
.flash-message.error { background: var(--theme-danger-bg); color: var(--malcat-red); }
.model-health-warning.is-unavailable { background: var(--theme-danger-bg); color: var(--malcat-red); }
.remove-key-button:hover, .remove-key-button:focus-visible { background: var(--theme-danger-bg); }
.flash-message.success { background: var(--theme-success-bg); color: var(--success); }
.analysis-failure-panel, .account-warning { background: var(--theme-danger-bg); border-color: var(--theme-danger-border); }
.account-card, .account-detail-card, .api-key-panel, .account-summary-card { background: var(--paper); border-color: var(--line); }
code, pre { color: var(--ink); background: var(--code-bg); }

.settings-page { max-width: 1100px; }
.settings-nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding-bottom: 1rem; margin-bottom: 2rem; border-bottom: 1px solid var(--line-strong); }
.settings-nav a { padding: .35rem 0; color: var(--malcat-blue); text-underline-offset: .3rem; }
.settings-section { margin-bottom: 2.5rem; scroll-margin-top: 6.5rem; }
.settings-page > .flash-message, .settings-section > .flash-message { margin-bottom: 1rem; }
.settings-section > h2 { margin-bottom: 1rem; font: 400 1.65rem var(--serif); }
.settings-section h3 { font: 400 1.25rem var(--serif); }
.settings-page .account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; }
.settings-page .panel { min-width: 0; }
.settings-page .details-list dd { min-width: 0; overflow-wrap: anywhere; text-align: right; }
.settings-page .section-heading { flex-wrap: wrap; }
.settings-form { padding: 1.5rem; }
.settings-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.settings-form legend { font: 400 1.65rem var(--serif); margin-bottom: .75rem; }
.theme-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.theme-choice { position: relative; display: flex; flex-direction: column; gap: .7rem; padding: 1rem; border: 1px solid var(--line-strong); border-radius: 4px; cursor: pointer; }
.theme-choice:has(input:checked) { outline: 2px solid var(--malcat-blue); outline-offset: 1px; background: var(--soft); }
.theme-choice:has(input:focus-visible) { outline: 3px solid var(--malcat-blue); outline-offset: 4px; }
.theme-radio { position: absolute; top: 1rem; right: 1rem; width: 1.15rem; height: 1.15rem; accent-color: var(--malcat-blue); }
.theme-choice-title { font-weight: 600; padding-right: 1.5rem; }
.theme-choice-description { color: var(--muted); font-size: .85rem; line-height: 1.6; }
.theme-preview { position: relative; display: block; height: 140px; overflow: hidden; margin-top: 1.5rem; padding: 1rem; background: #12211e; color: #f2eddc; border: 1px solid #53665a; border-radius: 2px; }
.theme-preview[data-preview-theme="paper-white"] { background: #faf9f6; color: #292824; border-color: #aaa59a; }
.theme-preview-title { display: block; font: 1.25rem var(--serif); border-bottom: 1px solid currentColor; padding-bottom: .5rem; }
.theme-preview img { position: absolute; right: 8px; bottom: 0; width: 100px; height: 100px; object-fit: contain; }
.theme-preview[data-preview-theme="paper-white"] img { filter: grayscale(1) brightness(.32); }
.theme-preview-lines { display: block; margin-top: 1.5rem; width: 45%; }
.theme-preview-lines i { display: block; height: 2px; background: currentColor; margin-top: 9px; opacity: .55; }
.theme-preview-lines i:last-child { width: 65%; }
.settings-actions { margin-top: 1.5rem; }
@media (max-width: 800px) { .theme-choices { grid-template-columns: 1fr; } .theme-preview { height: 120px; } }
@media (max-width: 767px) { .settings-page .account-grid, .settings-page .account-api-grid { grid-template-columns: 1fr; } }

@media (min-width: 1600px) { .specimen-plate img { max-height: 315px; } }
@media (max-width: 1250px) {
  .app-navbar .brand-subtitle { display: none; }
  .submission-layout { grid-template-columns: minmax(0, 1fr) 240px; gap: 1.5rem; }
  .analysis-task-button { gap: .65rem; padding: .75rem; }
  .specimen-plate { padding-left: 1.25rem; }
}
@media (max-width: 1000px) {
  .submission-layout { display: block; max-width: 800px; margin-inline: auto; }
  .specimen-plate { display: none; }
  main { width: calc(100% - 2.5rem); }
  .app-navbar .container-fluid { padding-inline: 1.25rem; gap: .5rem; }
  .app-navbar .brand-title { font-size: 1.7rem; }
  .app-navbar .nav-link { padding-inline: .65rem; font-size: .85rem; }
  .account-trigger { max-width: 11rem; }
}
@media (max-width: 767px) {
  main { width: calc(100% - 2rem); padding-top: 1.5rem; }
  .app-navbar .container-fluid { min-height: 4.5rem; align-items: center; }
  .app-navbar .brand { gap: .5rem; margin-right: 0; }
  .app-navbar .brand-mark { flex-basis: 2rem; width: 2rem; height: 2rem; }
  .app-navbar .nav-link { min-height: 3rem; }
  .app-navbar .navbar-collapse { flex-basis: 100%; }
  .dashboard-heading { min-height: 0; gap: 1rem; align-items: flex-start; }
  .dashboard-heading h1 { font-size: 2rem; }
  .specimen-header { display: none; }
  .dashboard-heading p { font-size: .9rem; }
  .history-search { max-width: none; flex-basis: 100%; }
  .history-filters .filter-select { flex: 1 1 120px; }
  .analysis-options-grid { gap: 1.25rem; }
  .report-page-toolbar { flex-wrap: wrap; }
  .report-toolbar-context { flex: 1 1 100%; }
  .report-action-list .nav-link { padding: .4rem .7rem; }
}
@media (max-width: 540px) {
  .analysis-task-grid, .analysis-options-grid { grid-template-columns: 1fr; }
  .analysis-step-heading h2 { font-size: 1.25rem; }
  .analysis-task-button { min-height: 5.5rem; }
  .dashboard-heading { flex-wrap: wrap; }
  .dashboard-heading > div:first-child { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
