:root {
  --mobile-safe-top: env(safe-area-inset-top, 0px);
  --mobile-safe-right: env(safe-area-inset-right, 0px);
  --mobile-safe-bottom: env(safe-area-inset-bottom, 0px);
  --mobile-safe-left: env(safe-area-inset-left, 0px);
}

.mobile-only { display: none !important; }
.mobile-connectivity {
  position: fixed; z-index: 1000; left: 50%; bottom: calc(12px + var(--mobile-safe-bottom));
  transform: translateX(-50%); max-width: calc(100vw - 28px); border-radius: 999px;
  padding: 9px 14px; color: #fff; background: #9b2c2c; box-shadow: 0 8px 28px rgba(0,0,0,.22);
  font-size: .82rem; font-weight: 750; text-align: center;
}
.mobile-connectivity[hidden] { display: none !important; }
.mobile-install-button, .mobile-menu-toggle {
  border: 1px solid rgba(255,255,255,.22); border-radius: 10px; min-height: 40px;
  padding: 8px 11px; color: #fff; background: rgba(255,255,255,.08); font-weight: 750;
}
.mobile-menu-toggle { width: 42px; font-size: 1.2rem; line-height: 1; }

@media (max-width: 900px) {
  html { -webkit-text-size-adjust: 100%; }
  body { overscroll-behavior-y: contain; }
  .mobile-only { display: inline-flex !important; }
  .app-shell { min-height: 100dvh; }
  .topbar {
    min-height: 64px; padding: calc(8px + var(--mobile-safe-top)) calc(10px + var(--mobile-safe-right)) 8px calc(10px + var(--mobile-safe-left));
    gap: 9px; flex-wrap: nowrap;
  }
  .brand-button { min-width: 0; flex: 1 1 auto; }
  .brand-copy { min-width: 0; }
  .brand-copy strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 42vw; }
  .brand-copy small { display: none; }
  .brand-mark { width: 38px; height: 38px; border-radius: 12px; flex: 0 0 auto; }
  .topbar-actions { gap: 7px; flex: 0 0 auto; }
  .institution-badge { display: none !important; }
  .global-language-select { min-width: 58px; height: 40px; }

  .nav {
    position: fixed; z-index: 950; top: calc(64px + var(--mobile-safe-top)); right: 8px; left: 8px;
    max-height: calc(100dvh - 82px - var(--mobile-safe-top) - var(--mobile-safe-bottom)); overflow: auto;
    display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 12px;
    border: 1px solid rgba(255,255,255,.08); border-radius: 16px; background: #172033;
    box-shadow: 0 20px 55px rgba(0,0,0,.32);
  }
  .nav.is-mobile-open { display: grid; }
  .nav button { min-height: 44px; padding: 10px; text-align: left; }

  .section-nav {
    overflow-x: auto; flex-wrap: nowrap !important; -webkit-overflow-scrolling: touch;
    padding-left: calc(10px + var(--mobile-safe-left)); padding-right: calc(10px + var(--mobile-safe-right));
  }
  .section-nav button { flex: 0 0 auto; min-height: 42px; }
  .main {
    width: 100%; padding: 14px calc(12px + var(--mobile-safe-right)) calc(24px + var(--mobile-safe-bottom)) calc(12px + var(--mobile-safe-left));
  }

  button, select, input, textarea { font-size: max(16px, 1em); }
  button, [role="button"], select { touch-action: manipulation; }
  table { font-size: .88rem; }
  .table-wrap, .data-table-wrap, .records-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .modal, .dialog, [role="dialog"] { max-width: calc(100vw - 18px) !important; max-height: calc(100dvh - 18px) !important; }
  .drawer, [data-drawer] { width: min(100vw, 720px) !important; }
}

@media (max-width: 520px) {
  .nav { grid-template-columns: 1fr; }
  .mobile-install-button { display: none !important; }
  .main { padding-top: 11px; }
  .card-grid, .grid, .stats-grid, .dashboard-grid { grid-template-columns: 1fr !important; }
}

/* Hybrid corpus selector — shared across desktop and mobile */
.corpus-switcher{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.4rem .65rem;border:1px solid var(--color-border,#cbd5e1);border-radius:999px;background:var(--color-surface,#fff);font:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap}
.corpus-switcher__dot{width:.55rem;height:.55rem;border-radius:50%;background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.corpus-switcher--remote .corpus-switcher__dot{background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.corpus-switcher__label{max-width:18rem;overflow:hidden;text-overflow:ellipsis}
.corpus-dialog{width:min(760px,calc(100vw - 24px));max-height:min(820px,calc(100vh - 24px));border:0;border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(15,23,42,.28);background:var(--color-surface,#fff);color:var(--color-text,#172033)}
.corpus-dialog::backdrop{background:rgba(15,23,42,.52);backdrop-filter:blur(3px)}
.corpus-dialog__panel{padding:0;margin:0}
.corpus-dialog__header,.corpus-dialog__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid var(--color-border,#e2e8f0)}
.corpus-dialog__footer{border-top:1px solid var(--color-border,#e2e8f0);border-bottom:0;justify-content:flex-end}
.corpus-dialog__header h2{margin:0}.corpus-dialog__header p{margin:.2rem 0 0}
.corpus-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:1.1rem 1.2rem 0}
.corpus-mode-card{display:grid;grid-template-columns:auto 1fr;column-gap:.65rem;row-gap:.2rem;padding:.85rem;border:1px solid var(--color-border,#cbd5e1);border-radius:14px;cursor:pointer}
.corpus-mode-card input{grid-row:1 / span 2;margin-top:.2rem}.corpus-mode-card span{font-size:.82rem;color:var(--color-muted,#64748b)}
.corpus-dialog__section{display:grid;gap:.75rem;padding:1rem 1.2rem;border-top:1px solid var(--color-border,#e2e8f0)}
.corpus-dialog__section .field{display:grid;gap:.35rem}.corpus-dialog__section input,.corpus-dialog__section select{width:100%;box-sizing:border-box}
.corpus-dialog .status{margin:0 1.2rem 1rem}
html[data-corpus-mode="local"] [data-requires-remote="1"]{opacity:.55}
@media(max-width:760px){.corpus-switcher__label{max-width:9rem}.corpus-mode-grid{grid-template-columns:1fr}.corpus-dialog{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.corpus-dialog__header,.corpus-dialog__footer,.corpus-dialog__section,.corpus-mode-grid{padding-left:.85rem;padding-right:.85rem}}
@media(max-width:520px){.corpus-switcher{max-width:10rem}.corpus-switcher__label{max-width:7.2rem}.topbar-actions{gap:.35rem}}

/* __STUDIO_MOBILE_RESPONSIVE_GLOBAL_V1_1_0__
   Global small-screen ergonomics for Studio V3.
   UI-only: no business logic, API, parser or storage changes.
*/
@media (max-width: 900px) {
  html, body { max-width: 100%; overflow-x: clip; }
  .route-page,
  .main,
  .card,
  .card-body,
  .analysis-panel,
  .imports-panel,
  .settings-panel,
  .dossier-workspace,
  .memorandum-detail,
  .status-cockpit-section,
  .workspace-filter-card { min-width: 0; }

  img, svg, canvas, video, iframe { max-width: 100%; }
  pre, code, .diagnostics-output, .technical-details { overflow-wrap: anywhere; }

  .topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
  }
  .brand-button { min-width: 0; }
  .brand-copy { min-width: 0; }
  .topbar-actions { min-width: 0; }

  .page-header,
  .records-view-bar,
  .records-active-scope,
  .publication-row,
  .runtime-card__header,
  .settings-panel__header,
  .status-document-quality-summary,
  .status-document-quality-dialog__head,
  .memo-flagship-measures__header,
  .memo-measure-card__header { min-width: 0; }

  .table-wrap,
  .table-scroll,
  .data-table-wrap,
  .records-table-wrap,
  .analysis-table-wrap,
  .ds-table-wrap,
  .status-document-quality-wrap {
    max-width: 100%;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
  }
}

@media (max-width: 700px) {
  :root { --mobile-page-gap: 10px; }

  .main {
    width: 100%;
    padding: 10px calc(var(--mobile-page-gap) + var(--mobile-safe-right)) calc(20px + var(--mobile-safe-bottom)) calc(var(--mobile-page-gap) + var(--mobile-safe-left));
  }
  .route-page { width: 100%; }

  .topbar {
    min-height: 58px;
    padding: calc(7px + var(--mobile-safe-top)) calc(8px + var(--mobile-safe-right)) 7px calc(8px + var(--mobile-safe-left));
    gap: 6px;
  }
  .brand-mark { width: 36px; height: 36px; border-radius: 11px; }
  .brand-copy strong { max-width: 34vw; font-size: .9rem; }
  .global-language-select { min-width: 54px; width: 54px; padding-inline: 6px; }
  .mobile-menu-toggle { width: 40px; min-height: 40px; padding: 7px; }
  .corpus-switcher { max-width: min(9rem, 34vw); min-height: 38px; padding: .35rem .5rem; }
  .corpus-switcher__label { max-width: 6.4rem; }

  .nav {
    top: calc(58px + var(--mobile-safe-top));
    right: 6px;
    left: 6px;
    max-height: calc(100dvh - 72px - var(--mobile-safe-top) - var(--mobile-safe-bottom));
    padding: 9px;
    border-radius: 14px;
  }
  .section-nav {
    margin-inline: calc(-1 * var(--mobile-page-gap));
    padding-inline: calc(var(--mobile-page-gap) + var(--mobile-safe-left));
    scroll-padding-inline: var(--mobile-page-gap);
    scrollbar-width: none;
  }
  .section-nav::-webkit-scrollbar,
  .workspace-hero__stats::-webkit-scrollbar { display: none; }

  .page-header { flex-direction: column; align-items: stretch; gap: 7px; margin-bottom: 12px; }
  h1 { font-size: clamp(1.55rem, 7.3vw, 2rem); line-height: 1.08; }
  h2 { font-size: clamp(1.15rem, 5.4vw, 1.45rem); line-height: 1.16; }
  h3 { line-height: 1.2; }
  p { line-height: 1.45; }

  .workspace-hero,
  .backend-hero {
    gap: 12px;
    margin-bottom: 12px;
    padding: 17px 15px;
    border-radius: 16px;
    box-shadow: 0 10px 26px rgba(31, 52, 91, .13);
  }
  .workspace-hero::after { width: 210px; height: 210px; right: -94px; top: -124px; border-width: 28px; }
  .workspace-title { font-size: clamp(1.55rem, 7vw, 2rem); }
  .workspace-lead { font-size: .94rem; line-height: 1.45; }
  .workspace-hero__stats {
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-inline: -2px;
    padding: 2px;
    scrollbar-width: none;
  }
  .hero-stat { flex: 0 0 auto; padding: 6px 9px; font-size: .73rem; }

  .card { border-radius: 12px; }
  .card-body { padding: 13px; }
  .notice { margin-bottom: 12px; padding: 11px 12px; }
  .empty, .empty-state, .attractive-empty { padding: 24px 12px; }

  .field { width: 100%; min-width: 0; }
  .analysis-form-grid,
  .form-grid,
  .records-filter-grid,
  .records-sort-row,
  .imports-options__grid,
  .imports-year-range__grid,
  .theme-registry-columns,
  .theme-registry-editor-columns,
  .diagnostics-grid,
  .runtime-grid,
  .settings-grid,
  .analysis-results-grid,
  .analysis-breakdowns-grid,
  .analysis-samples-grid,
  .records-facet-grid,
  .record-grid,
  .search-results-grid,
  .jobs-grid,
  .agenda-grid,
  .dossier-confirmed-grid,
  .dossier-suggestions-grid,
  .memo-chapter-reader-grid,
  .memo-toc-viewer-grid,
  .status-document-quality-dialog__details,
  .status-document-quality-checks {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .toolbar,
  .actions,
  .analysis-actions,
  .runtime-actions,
  .status-cockpit-button-row,
  .status-document-quality-selection__actions,
  .status-document-quality-dialog__actions { gap: 8px; }
  .toolbar > .field { flex: 1 1 100%; }
  .analysis-actions > .btn,
  .actions > .btn,
  .status-cockpit-button-row > .btn,
  .status-document-quality-selection__actions > .btn { flex: 1 1 132px; }

  .btn { min-height: 42px; padding: 9px 11px; }
  .btn-small { min-height: 38px; padding: 7px 9px; }
  input, select, textarea { min-height: 44px; }
  textarea { min-height: 110px; }

  .parliament-selector,
  .parliament-selector--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
  .parliament-card { min-width: 0; }

  .analysis-table-wrap,
  .table-scroll,
  .ds-table-wrap {
    margin-inline: -3px;
    border-radius: 10px;
    -webkit-overflow-scrolling: touch;
  }
  .analysis-table { min-width: 640px; font-size: .82rem; }
  .analysis-table th,
  .analysis-table td { padding: 8px; }
  .analysis-table th:first-child,
  .analysis-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 150px;
    max-width: 210px;
    background: var(--surface);
    box-shadow: 1px 0 0 var(--border);
  }
  .analysis-table th:first-child { z-index: 3; }
  .data-table, .completion-table, .ds-table { min-width: 680px; }

  .pagination { flex-wrap: wrap; justify-content: center; gap: 8px; }
  .pagination > strong { order: -1; flex: 1 0 100%; text-align: center; }
  .pagination > .btn { flex: 1 1 120px; }

  .records-view-bar,
  .records-active-scope,
  .publication-row,
  .runtime-card__header,
  .search-result-card__header,
  .job-card__header,
  .settings-panel__header,
  .status-document-quality-summary,
  .status-document-quality-dialog__head,
  .memo-flagship-measures__header,
  .memo-measure-card__header {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }
  .records-view-switcher { width: 100%; overflow-x: auto; }
  .records-view-switcher > .records-view-button { flex: 1 0 auto; min-height: 40px; }

  .settings-nav { grid-template-columns: 1fr 1fr; gap: 7px; }
  .settings-nav__item { min-width: 0; }
  .settings-savebar {
    left: calc(8px + var(--mobile-safe-left));
    right: calc(8px + var(--mobile-safe-right));
    bottom: calc(8px + var(--mobile-safe-bottom));
    margin: 0;
  }

  .search-result-card__body,
  .job-card__body { padding: 13px; }
  .search-result-card__footer,
  .job-card__footer { padding: 10px 13px; }
  .search-result-card__meta { flex-wrap: wrap; }
  .search-result-card__occurrence { align-items: flex-start; flex-direction: column; }

  .imports-local-file-row { flex-direction: column; align-items: stretch; }
  .imports-local-file-row > .btn { width: 100%; }
  .imports-toggle { grid-template-columns: 22px minmax(0, 1fr); }

  .status-document-quality-wrap { max-height: min(64dvh, 600px); }
  .status-document-quality-type-cell,
  .status-document-quality-table thead th:first-child { min-width: 170px; max-width: 190px; }
  .status-document-quality-cell { width: 120px; }

  .dialog,
  .dialog-wide,
  .analysis-drilldown-dialog,
  .theme-editor-dialog,
  .theme-registry-dialog,
  .status-document-quality-dialog,
  .memo-chapter-reader-dialog,
  .memo-toc-dialog,
  .memo-measure-dialog,
  .memo-translation-dialog,
  .corpus-dialog {
    width: calc(100vw - 10px) !important;
    max-width: calc(100vw - 10px) !important;
    max-height: calc(100dvh - 10px) !important;
    border-radius: 14px;
  }
  .analysis-drilldown-header,
  .analysis-drilldown-body,
  .analysis-drilldown-pagination,
  .drawer-header,
  .drawer-body { padding-inline: 12px; }
  .analysis-drilldown-body { max-height: calc(100dvh - 154px); }
  .drawer { width: 100vw !important; max-width: 100vw !important; }

  a, .muted, .meta, .status { overflow-wrap: anywhere; }
}

@media (max-width: 430px) {
  .brand-copy strong { max-width: 29vw; font-size: .86rem; }
  .corpus-switcher { max-width: 7.9rem; }
  .corpus-switcher__label { max-width: 5.4rem; }
  .workspace-hero, .backend-hero { padding: 15px 13px; }
  .card-body { padding: 12px; }
  .parliament-selector,
  .parliament-selector--compact { gap: 7px; }
  .parliament-card { padding-inline: 9px; }
  .settings-nav { grid-template-columns: 1fr; }
}

@media (max-width: 360px) {
  .brand-copy strong { display: none; }
  .corpus-switcher { max-width: 7.2rem; }
  .global-language-select { width: 50px; min-width: 50px; }
}
/* __END_STUDIO_MOBILE_RESPONSIVE_GLOBAL_V1_1_0__ */
