/* Stage 29: shared, task-first visual language for the existing application. */
:root {
  --bg: #f3f5f7;
  --surface: #fff;
  --surface-soft: #f7f9fa;
  --surface-strong: #eaf0f4;
  --text: #182a38;
  --muted: #526577;
  --line: #d7e0e6;
  --primary: #075da8;
  --primary-hover: #064e8d;
  --success: #16744d;
  --warning: #915300;
  --danger: #ad332b;
  --control-height: 44px;
  --control-radius: 9px;
  --card-radius: 14px;
  --shadow: 0 8px 24px rgba(24, 42, 56, .08);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --motion-fast: 150ms;
  --motion-regular: 220ms;
  --motion-ease: cubic-bezier(.2, .8, .2, 1);
  --page-gutter: clamp(16px, 2vw, 40px);
  font-synthesis: none;
}

html { scrollbar-color: #aebecb transparent; }
body { background: var(--bg); color: var(--text); line-height: 1.5; }
::selection { background: #b8d8ed; color: #102635; }
*, *::before, *::after { min-width: 0; }
button, input, select, textarea { caret-color: var(--primary); }
:is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #075da8;
  outline-offset: 2px;
  box-shadow: none;
}

/* The header stays visually quiet; the current task is the focal point. */
.sidebar { background: var(--surface); color: var(--text); border-bottom: 1px solid var(--line); backdrop-filter: none; }
.brand { gap: 12px; }
.brand strong { color: var(--text); font-weight: 730; letter-spacing: -.02em; }
.brand small { color: var(--muted); }
.brand-mark { color: #145d8c; border-bottom-color: #81bb37; }
.main-nav { scrollbar-color: #b8c7d2 transparent; }
.main-nav > .nav-item, .nav-group > summary { color: var(--text); font-weight: 650; }
.main-nav > .nav-item:hover, .nav-group > summary:hover { background: #edf3f7; color: #143e5b; }
.main-nav > .nav-item.is-active, .nav-group.is-current > summary {
  background: #edf5ed; color: #146240; box-shadow: inset 0 -3px #82bd38;
}
.nav-group-items { background: var(--surface); }
.nav-group-items .nav-item { color: var(--text); font-size: .875rem; }
.nav-group-items .nav-item:hover { background: #eef3f7; }
.nav-group-items .nav-item.is-active { background: #e8f3e7; color: #115a3c; }
.topbar { width: 100%; max-width: none; margin-inline: 0; background: var(--bg); padding: 22px var(--page-gutter) 10px; min-height: 0; }
.topbar h1 { color: #102537; font-size: clamp(1.5rem, 2vw, 2rem); font-weight: 750; letter-spacing: -.025em; line-height: 1.16; }
.topbar p { color: var(--muted); font-size: .925rem; }
.page-content { width: 100%; max-width: none; margin-inline: 0; padding: 18px var(--page-gutter) 56px; }
@media (min-width: 701px) { .sidebar { padding-inline: var(--page-gutter); } }
.section-heading { align-items: end; margin-block: 28px 16px; }
.section-heading:first-child { margin-top: 0; }
.section-heading h2 { font-size: 1.125rem; font-weight: 720; letter-spacing: -.012em; }
.section-heading p { font-size: .9rem; line-height: 1.45; }

/* Shared controls: one scale across forms, dialogs and toolbars. */
.button, .mini-button, .icon-button { min-height: var(--control-height); border-radius: var(--control-radius); font-weight: 620; transition: background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease); }
.button-primary, .quick-action:first-child { background: var(--primary); color: #fff; }
.button-primary:hover:not(:disabled) { background: var(--primary-hover); }
.button-primary:disabled { border-color: var(--line); background: #e9eef2; color: #617485; box-shadow: none; opacity: 1; }
.button-secondary, .mini-button { border-color: var(--line); background: var(--surface); color: var(--text); }
.button-secondary:hover:not(:disabled), .mini-button:hover:not(:disabled) { background: #edf3f6; border-color: #abc2d0; }
.button:active:not(:disabled), .mini-button:active:not(:disabled) { transform: translateY(1px); }
input:not([type=checkbox]):not([type=radio]):not([type=file]), select, textarea, .ui-select-trigger {
  min-height: var(--control-height); border: 1px solid #afbfcc; border-radius: var(--control-radius);
  color: var(--text); background: var(--surface); font-size: .9375rem;
}
input::placeholder, textarea::placeholder { color: #5d7081; opacity: 1; }
label.field { gap: 6px; color: #2c4151; font-weight: 580; }
.field-helper, .muted-note, .cell-sub { color: var(--muted); }
.panel, .document-summary-card, .terminal-card, .review-form-panel, .quick-action,
.system-raid-card, .storage-migration-row { border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); box-shadow: none; }
.panel-header { min-height: 62px; padding: 14px 18px; }
.panel-header h2 { font-size: 1rem; font-weight: 700; }
.panel-header p { font-size: .875rem; }
.status-badge, .badge { font-weight: 630; font-variant-numeric: tabular-nums; }
.status-ready { color: #125e3f; background: #e9f6ee; border-color: #bde3ca; }
.status-review { color: #754600; background: #fff4df; border-color: #eecf90; }
.status-error { color: #9e2d27; background: #fff0ee; border-color: #ecc4c0; }

/* Data-heavy views stay readable at a glance. */
.table-wrap, .table-scroll { max-width: 100%; overflow: auto; scrollbar-color: #b5c6d1 transparent; }
table { font-variant-numeric: tabular-nums; }
th { color: #405566; font-size: .75rem; letter-spacing: .025em; font-weight: 720; }
td { color: var(--text); line-height: 1.42; }
tbody tr:hover > td { background-color: #f6fafc; }
.empty-state { color: var(--muted); }
.empty-state strong { color: var(--text); }
.auth-card { border-color: var(--line); border-radius: 18px; box-shadow: 0 20px 60px rgba(19, 43, 62, .12); }

/* Home: one clear primary action, with secondary actions as compact peers. */
.home-welcome { border: 0; border-radius: 16px; background: #193f58; color: #fff; min-height: 170px; box-shadow: none; }
.home-welcome strong { color: #fff; font-size: clamp(1.55rem, 2.2vw, 2rem); letter-spacing: -.025em; }
.home-welcome span, .home-welcome small { color: #e4eef4; }
.home-quick-actions { gap: 12px; }
.quick-action { min-height: 112px; padding: 16px; text-align: left; }
.quick-action:first-child { border-color: var(--primary); }
.quick-action:hover { border-color: #a8c0d0; transform: translateY(-2px); }

/* The final PDF and disk operation dialogs require clear, bounded focus. */
dialog { border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 22px 72px rgba(15, 34, 48, .24); }
dialog[open] { animation: dialog-enter var(--motion-regular) var(--motion-ease) both; }
@keyframes dialog-enter { from { opacity: .6; transform: translateY(7px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
dialog::backdrop { background: rgba(13, 34, 49, .56); backdrop-filter: none; }
.dialog-header, .dialog-footer { background: var(--surface-soft); }
.dialog-header h2 { font-size: 1.2rem; font-weight: 730; }
.system-raid-card { padding: 16px; gap: 8px; }
.system-raid-card strong { font-weight: 710; }
.system-raid-replace-form { background: var(--surface-soft); }
#initial-raid-form { grid-template-columns: minmax(0, 1fr); max-width: 680px; }
#initial-raid-form label:has(input[type=checkbox]) { display: flex; align-items: flex-start; gap: 10px; line-height: 1.4; }
#initial-raid-form input[type=checkbox] { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; }
#initial-raid-form .button { width: 100%; }

@media (max-width: 1100px) {
  .page-content { padding-inline: var(--page-gutter); }
  .main-nav > .nav-item, .nav-group > summary { min-width: 0; }
}
@media (max-width: 700px) {
  [data-screen="warehouse"] > .section-heading .inline-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; }
  [data-screen="warehouse"] > .section-heading .inline-actions > * { width: 100%; min-width: 0; white-space: normal; }
  .mobile-brand { background: var(--surface); border-bottom: 1px solid var(--line); min-height: 66px; }
  .topbar { padding: 18px 16px 6px; }
  .topbar h1 { font-size: 1.55rem; }
  .page-content { padding: 12px 14px calc(92px + env(safe-area-inset-bottom)); }
  .section-heading { align-items: stretch; flex-direction: column; gap: 10px; margin-block: 22px 12px; }
  .sidebar { box-shadow: 0 -6px 24px rgba(19, 44, 60, .09); }
  .main-nav > .nav-item, .nav-group > summary { min-height: 60px; }
  .home-welcome { padding: 20px; min-height: 150px; }
  .home-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-action { min-height: 112px; }
  .panel-header { align-items: flex-start; flex-wrap: wrap; }
  .panel-header > :last-child { max-width: 100%; }
  .system-raid-replace-form { grid-template-columns: minmax(0, 1fr); }
  .system-raid-replace-form .button { width: 100%; }
  .button, .mini-button, .icon-button, .nav-item, .nav-group > summary { min-height: 44px; }
  dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Task-first M-15 controls retain the existing select for draft and submit code. */
.invoice-direction-control { display: grid; gap: 8px; padding: 4px 18px 16px; border-bottom: 1px solid var(--line); }
.invoice-direction-control > span { font-weight: 650; font-size: .875rem; }
.invoice-direction-options { display: inline-flex; flex-wrap: wrap; gap: 4px; justify-self: start; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.invoice-direction-options button { min-height: 42px; padding: 8px 14px; border: 0; border-radius: 8px; background: transparent; color: var(--text); font: inherit; font-weight: 620; cursor: pointer; transition: background-color var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease); }
.invoice-direction-options button[aria-pressed="true"] { background: var(--primary); color: #fff; }
.invoice-direction-options button[aria-pressed="false"]:hover { background: #e3ecf1; }
.invoice-scan-primary { grid-column: 1 / -1; justify-self: start; }
.invoice-quick-add > div:first-of-type { display: grid; gap: 5px; min-width: 0; }
.invoice-object-info details { min-width: 0; border-top: 1px solid var(--line); padding-top: 6px; }
.invoice-object-info details summary { color: var(--primary); font-weight: 650; cursor: pointer; }
.invoice-object-info details div { display: grid; gap: 5px; padding-top: 9px; overflow-wrap: anywhere; }
.invoice-object-short-address { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.invoice-step:not([hidden]) { animation: invoice-step-in 160ms var(--motion-ease) both; }
@keyframes invoice-step-in { from { opacity: .72; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
#invoice-direction { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip-path: inset(50%); overflow: hidden; pointer-events: none; }
.invoice-extra .invoice-builder-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }

/* One compact add path for M-15 equipment on desktop and mobile. */
.invoice-step[data-invoice-step="3"] { min-width: 0; }
.invoice-quick-add { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 14px 17px; background: var(--surface); }
.invoice-scan-primary { grid-column: auto; min-height: 48px; }
.invoice-quick-add > div:first-of-type { display: block; }
.invoice-quick-add > div:first-of-type strong { font-size: .86rem; }
.invoice-code-controls { grid-template-columns: minmax(0, 1fr) auto; }
.invoice-code-controls input { min-width: 0; }
.invoice-code-controls .button { min-width: 110px; }
.invoice-selected-heading { min-height: 54px; padding-block: 10px; }
.invoice-selected-heading strong { font-size: .9rem; }
.invoice-selected-wrap { max-height: 260px; overflow-y: auto; padding: 0 17px 12px; }
.invoice-selected-wrap:not([hidden]) { animation: invoice-step-in 160ms var(--motion-ease) both; }
.invoice-selected-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.invoice-selected-item-copy { display: grid; gap: 3px; min-width: 0; overflow-wrap: anywhere; }
.invoice-selected-item-copy small { color: var(--muted); font-size: .75rem; }
.invoice-selected-item > .mini-button { width: 36px; min-height: 36px; padding: 4px; font-size: 1.15rem; }
.invoice-ready-layout { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: start; gap: 20px; width: min(100%, 980px); margin: 28px auto; padding: clamp(24px, 3vw, 40px); border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: 0 16px 44px rgba(20,40,80,.07); text-align: left; }
.invoice-ready-check { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--success-soft); color: var(--success); font-size: 2rem; }
.invoice-ready-layout h3 { margin: 0; }
#invoice-ready-actions { display: grid; gap: 16px; padding: 0; }
#invoice-ready-actions p { margin: 0; line-height: 1.6; overflow-wrap: anywhere; color: var(--muted); }
.invoice-ready-primary, .invoice-ready-secondary { display: grid; gap: 9px; }
.invoice-ready-primary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.invoice-ready-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.invoice-ready-primary .button, .invoice-ready-secondary .button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; min-width: 0; white-space: normal; }
.invoice-ready-group { display: grid; gap: 10px; padding-top: 15px; border-top: 1px solid var(--line); }
.invoice-ready-group > strong { color: var(--muted); font-size: .8125rem; }
.invoice-ready-cross { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.invoice-ready-cross .button { display: inline-flex; justify-content: center; align-items: center; min-width: 0; min-height: 44px; white-space: normal; }
.invoice-step-actions[hidden] { display: none !important; }

/* Models: active state, library, and advanced controls form one clear sequence. */
[data-screen="neural"] { max-width: none; margin-inline: 0; }
.local-model-manager { gap: 0; }
.local-model-manager > .panel-header { border-bottom: 0; padding-bottom: 5px; }
.model-active-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 8px 18px 0; padding: 15px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.model-active-summary > div { display: grid; gap: 2px; margin-right: auto; }
.model-active-summary small, .model-resource-summary small { color: var(--muted); font-size: .76rem; }
.model-active-summary strong { font-size: 1.08rem; overflow-wrap: anywhere; }
.model-active-provider { color: var(--muted); font-size: .84rem; }
.model-resource-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 12px 18px 18px; }
.model-resource-summary > span { display: grid; gap: 1px; padding: 4px 2px; }
.model-resource-summary strong { font-size: .9rem; font-weight: 650; }
.model-library-heading { padding: 17px 18px 8px; border-top: 1px solid var(--line); }
.model-library-heading h3 { margin: 0 0 3px; font-size: 1rem; }
.model-library-heading p { margin: 0; color: var(--muted); font-size: .84rem; }
.model-library-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 18px 14px; }
.model-library-tabs { display: flex; gap: 6px; }
.model-library-tabs [aria-selected="true"] { color: var(--primary); border-color: var(--primary); background: #edf5fc; }
.local-model-manager > .local-model-panel { margin-inline: 18px; margin-bottom: 16px; }
.local-model-manager > #local-model-installed { display: grid; gap: 8px; }
.local-model-manager > #local-model-installed[hidden] { display: none; }
.local-model-card { gap: 7px; padding: 14px 16px; box-shadow: none; }
.local-model-card.is-active { border-color: #a7cbbb; background: #f8fcf9; }
.local-model-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.local-model-card-heading strong { overflow-wrap: anywhere; }
.local-model-card-heading .status-badge { flex-shrink: 0; max-width: 50%; overflow-wrap: normal; word-break: normal; }
.local-model-card .inline-actions { margin-top: 5px; }
.local-model-card .inline-actions .button { min-height: 38px; }
.local-model-cards { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.catalog-model-row { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 18px; }
.catalog-model-row > div { display: grid; gap: 2px; }
.catalog-model-row > .button { flex: 0 0 auto; }
.model-empty-state { display: grid; gap: 7px; justify-items: start; padding: 18px; border: 1px dashed var(--line); border-radius: 12px; }
.model-empty-state .inline-actions { margin-top: 5px; }
.neural-columns { grid-template-columns: minmax(0, 1fr); max-width: none; }
.neural-columns .compact-form-panel { max-width: none; }
#neural-policy-form { display: grid; grid-template-columns: minmax(200px, 2fr) repeat(2, minmax(130px, 1fr)) auto; gap: 12px; align-items: end; }
#neural-policy-form .button { white-space: nowrap; }
.advanced-provider-panel:not([open]) { min-height: 0; }
.system-mobile-picker { display: none; }

/* Shared long-form surfaces and dialogs should never widen the viewport. */
.screen, .system-pane, .panel, .panel-header, .form-grid, .settings-columns { min-width: 0; }
.panel-header > div, .section-heading > div { min-width: 0; }
.panel-header h2, .section-heading h2, .panel-header p, .section-heading p { overflow-wrap: anywhere; }
dialog[open] { max-width: min(960px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; }
.dialog-body { min-width: 0; overflow-wrap: anywhere; }
.table-scroll { max-width: 100%; overscroll-behavior-inline: contain; }
@media (max-width: 700px) {
  .invoice-direction-control { padding: 4px 14px 14px; }
  .invoice-direction-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .invoice-direction-options button { padding-inline: 6px; font-size: .78rem; line-height: 1.25; }
  .invoice-extra .invoice-builder-grid { grid-template-columns: minmax(0, 1fr); }
  .model-active-summary { margin-inline: 12px; }
  .model-resource-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-inline: 12px; }
  .model-library-heading { padding-inline: 12px; }
  .model-library-toolbar { flex-wrap: wrap; padding-inline: 12px; }
  .model-library-tabs { flex: 1 1 auto; }
  .model-library-tabs .button { flex: 1; }
  .model-library-toolbar > .button { flex: 1 1 100%; }
  .local-model-manager > .local-model-panel { margin-inline: 12px; }
  .local-model-card-heading { align-items: flex-start; }
  .catalog-model-row { align-items: stretch; flex-direction: column; gap: 10px; }
  .catalog-model-row > .button { width: 100%; }
  #neural-policy-form { grid-template-columns: minmax(0, 1fr); }
  #neural-policy-form .button { width: 100%; }
  .dialog-footer { position: sticky; bottom: 0; z-index: 1; flex-wrap: wrap; }
}

/* Mobile M-15 occupies the workspace while the wizard is active. */
@media (max-width: 700px) {
  html, body, #app, .main-area, .page-content, .screen, .invoice-builder-panel,
  .invoice-builder-panel form, .invoice-step, .invoice-builder-grid,
  .invoice-object-fields, .invoice-quick-add, .invoice-code-controls,
  .invoice-selected-panel { min-width: 0; max-width: 100%; }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  body.invoice-builder-active { padding-bottom: 0; }
  body.invoice-builder-active .sidebar,
  body.invoice-scanner-open .sidebar,
  body.mobile-input-focused .sidebar { display: none; }
  body.invoice-builder-active .page-content { padding-bottom: max(16px, env(safe-area-inset-bottom)); }
  body.invoice-builder-active .invoice-builder-panel { overflow: visible; }
  .mobile-brand { min-height: 52px; padding: 8px 14px; }
  .mobile-brand .brand-mark { width: 70px !important; }
  .topbar { min-height: 0; padding: 10px 14px 4px; }
  .topbar h1 { font-size: 1.25rem; }
  .topbar p { font-size: .8rem; }
  input:not([type=checkbox]):not([type=radio]):not([type=file]), select, textarea,
  .ui-select-trigger, .invoice-code-controls input { font-size: 16px !important; }
  .ui-select-trigger { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: normal; }
  .ui-select-options { max-width: 100%; max-height: min(45dvh, 320px); }
  .ui-select-options [role=option] { font-size: 16px; line-height: 1.35; }
  .invoice-direction-options { grid-template-columns: minmax(0, 1fr); }
  .invoice-direction-options button { width: 100%; min-height: 42px; padding: 8px 10px; font-size: .875rem; text-align: left; }
  .invoice-direction-options button[aria-pressed="true"] { box-shadow: inset 3px 0 #084c9c; }
  .invoice-object-info { gap: 5px; padding: 11px 13px; }
  .invoice-object-info b, .invoice-object-info span { min-width: 0; overflow-wrap: anywhere; }
  .invoice-quick-add { gap: 8px; }
  .invoice-scan-primary { width: 100%; min-height: 48px; justify-self: stretch; white-space: normal; }
  .invoice-code-controls { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .invoice-code-controls input { grid-column: auto; }
  .invoice-code-controls .button { width: auto; min-height: 44px; }
  .invoice-selected-wrap { max-height: 45dvh; overflow-y: auto; padding: 0 12px 12px; }
  .invoice-selected-item { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .invoice-selected-item .invoice-quantity-control { grid-column: 1; }
  .invoice-selected-item > .mini-button { grid-column: 2; grid-row: 1 / 3; width: 44px; min-height: 44px; }
  .invoice-ready-layout { grid-template-columns: 1fr; justify-items: stretch; gap: 12px; margin: 8px auto; padding: 18px 14px calc(20px + env(safe-area-inset-bottom)); }
  .invoice-ready-primary, .invoice-ready-secondary, .invoice-ready-cross { grid-template-columns: minmax(0, 1fr); }
  .invoice-step-actions { position: sticky; bottom: 0; z-index: 5; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; min-height: 60px; padding: 7px 12px calc(7px + env(safe-area-inset-bottom)); background: var(--surface); box-shadow: 0 -3px 14px rgba(20,40,80,.1); }
  .invoice-step-actions .button { width: auto; min-width: 0; min-height: 44px; padding: 8px 10px; white-space: normal; line-height: 1.2; }
  .invoice-step-actions .button-primary { width: 100%; }
  .invoice-step-actions #invoice-save-draft { display: none; }
  body.mobile-input-focused .invoice-step-actions { position: static; }
  .system-tabs { display: flex; width: 100%; max-width: 100%; margin-inline: 0; padding: 2px 0 12px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: 12px; -webkit-overflow-scrolling: touch; }
  .system-tabs button { scroll-snap-align: start; white-space: nowrap; }
  .home-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-action { min-width: 0; min-height: 104px; overflow-wrap: anywhere; }
  body.invoice-scanner-open { overflow: hidden; }
  dialog[open].invoice-scanner-dialog { position: fixed; inset: 0; display: flex; flex-direction: column; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; border-radius: 0; overflow: hidden; }
  .invoice-scanner-dialog .dialog-header { flex: 0 0 auto; padding: calc(12px + env(safe-area-inset-top)) 16px 12px; }
  .invoice-scanner-dialog .dialog-header p { display: none; }
  .invoice-scanner-dialog .invoice-scanner-body { flex: 1 1 auto; min-height: 0; grid-template-rows: minmax(0, 1fr) auto auto; padding: 8px 12px; overflow: hidden; }
  .invoice-scanner-dialog .invoice-scanner-viewport { min-height: 0; }
  .invoice-scanner-dialog .invoice-scanner-body video { min-height: 0; height: 100%; max-height: none; }
  .invoice-scanner-dialog .dialog-footer { flex: 0 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); }
  .invoice-scanner-dialog .dialog-footer .button { min-width: 0; width: auto; white-space: normal; }
  #invoice-manual-dialog { max-width: calc(100vw - 12px); max-height: calc(100dvh - 12px); }
  #invoice-manual-form .inline-actions { position: sticky; bottom: 0; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 10px 0 calc(10px + env(safe-area-inset-bottom)); background: var(--surface); box-shadow: 0 -7px 12px rgba(255,255,255,.96); }
  #invoice-manual-form .inline-actions .button { min-width: 0; min-height: 44px; white-space: normal; }
}
@media (max-width: 360px) {
  .home-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .home-quick-actions .quick-action { min-height: 126px; padding: 12px; align-content: start; }
  .home-quick-actions .quick-action strong { font-size: .88rem; line-height: 1.24; }
  .home-quick-actions .quick-action small { font-size: .77rem; line-height: 1.3; }
  .invoice-code-controls { grid-template-columns: minmax(0, 1fr); }
  .invoice-step-actions { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .invoice-scanner-dialog .dialog-footer { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 430px) {
  .system-mobile-picker { display: grid; gap: 6px; margin-bottom: 12px; }
  .system-mobile-picker select { min-height: 44px; width: 100%; }
  .system-tabs { display: none; }
}

/* Working screens use the same wide page grid; individual form controls stay compact. */
[data-screen="search"] .search-form, [data-screen="search"] .filters,
[data-screen="create-documents"], [data-screen="neural"], [data-system-pane="updates"] {
  width: 100%; max-width: none; margin-inline: 0;
}
.search-form { gap: 12px; margin-block: 20px 10px; }
#search-input, .search-form > .button { min-height: 48px; }
.filters { align-items: end; gap: 10px 12px; margin-bottom: 20px; }
.filters label { flex: 0 1 230px; gap: 6px; font-size: .8rem; font-weight: 620; }
.filters select { width: 100%; min-width: 0; min-height: 44px; }
.filters .inline-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.filters .button { margin-left: 0; min-height: 44px; }

[data-system-pane="updates"] .system-update-panel { margin-top: 16px; }
[data-system-pane="updates"] .system-update-panel:first-child { margin-top: 0; }
[data-system-pane="updates"] .system-update-form { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 18px !important; }
[data-system-pane="updates"] .system-update-form > .button { min-height: 44px; }
#system-update-file-name { display: block; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .84rem; }
.system-update-plan { display: grid; gap: 14px; padding: 0 18px 18px; }
.system-update-plan[hidden] { display: none; }
.system-update-plan-heading, .system-update-history-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.system-update-plan-heading h3, .system-update-history-heading h3 { margin: 0; font-size: .95rem; }
.system-update-plan-heading span { color: var(--muted); font-size: .85rem; font-variant-numeric: tabular-nums; }
#system-update-plan-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 0; }
#system-update-plan-details .detail-value { display: grid; align-content: start; gap: 7px; min-height: 90px; padding: 14px; border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface-soft); }
#system-update-plan-details .detail-value span { color: var(--muted); font-size: .76rem; }
#system-update-plan-details .detail-value strong { font-size: .88rem; line-height: 1.35; overflow-wrap: anywhere; }
.system-update-verification { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--card-radius); font-size: .84rem; }
.system-update-verification.is-success { border-color: #bde3ca; background: #f2faf5; color: #125e3f; }
.system-update-verification.is-error { border-color: #ecc4c0; background: #fff5f3; color: #9e2d27; }
.system-update-verification span { overflow-wrap: anywhere; }
#system-update-plan-note { margin: 0; }
#system-update-install { justify-self: start; min-height: 44px; }
.system-update-footnote { margin: 0 18px 18px !important; padding-top: 14px; border-top: 1px solid var(--line); }
.system-update-history-heading { margin: 0 18px; padding: 14px 0 8px; border-top: 1px solid var(--line); }
#system-update-history { margin: 0 18px 18px; border: 1px solid var(--line); border-radius: var(--card-radius); overflow: hidden; }
.update-history-item + .update-history-item { border-top: 1px solid var(--line); }
.update-history-item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 10px 14px; cursor: pointer; list-style: none; }
.update-history-item summary::-webkit-details-marker { display: none; }
.update-history-item summary:hover { background: var(--surface-soft); }
.update-history-main { display: grid; gap: 2px; min-width: 0; }
.update-history-main strong { font-size: .86rem; }
.update-history-main small { color: var(--muted); font-size: .75rem; }
.update-history-detail { padding: 12px 14px; border-top: 1px solid var(--line); background: var(--surface-soft); overflow-wrap: anywhere; font-size: .8rem; }
.update-history-detail p { margin: 4px 0 0; }

[data-screen="create-documents"] > .section-heading { margin-bottom: 16px; }
.invoice-builder-panel { margin-top: 0; }
.invoice-stepper { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 18px; }
.invoice-stepper span { gap: 9px; }
.invoice-stepper span:not(:last-child)::after { left: calc(50% + 56px); right: calc(-50% + 56px); }
.invoice-direction-control { padding: 8px 18px 18px; }
.invoice-object-fields { max-width: none; }
.invoice-builder-grid { align-items: start; gap: 16px; }
.invoice-step-actions { display: flex; align-items: center; gap: 10px; padding: 14px 18px; }
.invoice-step-actions #invoice-step-next, .invoice-step-actions #create-generated-invoice { margin-left: auto; }

@media (max-width: 1024px) {
  #system-update-plan-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .search-form { grid-template-columns: minmax(0, 1fr); margin-block: 16px 10px; }
  .search-form > .button { width: 100%; }
  .filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
  .filters label { width: auto; }
  .filters .inline-actions { grid-column: 1 / -1; width: 100%; margin: 0; }
  .filters .inline-actions > * { flex: 1; }
  [data-system-pane="updates"] .system-update-form { grid-template-columns: minmax(0, 1fr); gap: 9px; padding: 16px !important; }
  [data-system-pane="updates"] .system-update-form > .button { width: 100%; }
  .system-update-plan { padding-inline: 16px; }
  #system-update-plan-details { grid-template-columns: minmax(0, 1fr); }
  #system-update-plan-details .detail-value { min-height: 0; }
  #system-update-install { width: 100%; }
  .system-update-plan-heading { align-items: start; flex-direction: column; gap: 3px; }
  .system-update-history-heading, #system-update-history { margin-inline: 16px; }
  .invoice-stepper { padding: 12px 8px; }
  .invoice-stepper span { display: grid; justify-items: center; gap: 3px; }
  .invoice-stepper span::after { display: none; }
  .invoice-stepper small { display: block; max-width: 100%; white-space: normal; font-size: .68rem; line-height: 1.15; }
  .invoice-direction-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .invoice-direction-options button { text-align: center; }
  .invoice-step-actions { gap: 8px; padding-inline: 12px; }
}
@media (max-width: 390px) {
  .filters { grid-template-columns: minmax(0, 1fr); }
  .invoice-stepper small { font-size: .62rem; }
  .invoice-stepper b { width: 27px; height: 27px; min-width: 27px; }
  .invoice-direction-options { grid-template-columns: minmax(0, 1fr); }
}

/* Current M-15 documents and the home search share compact, predictable controls. */
[data-screen="search"] .home-search-toolbar { width: 100%; max-width: none; margin: 16px 0 20px; padding: 14px; border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); }
[data-screen="search"] .home-search-toolbar .search-form { width: 100%; margin: 0 0 10px; gap: 10px; }
[data-screen="search"] .home-search-toolbar .filters { width: 100%; margin: 0; align-items: end; gap: 10px; }
[data-screen="search"] .home-search-toolbar .filters label { flex: 0 1 220px; }
[data-screen="search"] .home-search-toolbar .filters select,
[data-screen="search"] .home-search-toolbar .filters .button { min-height: 44px; }
[data-screen="search"] .home-export-actions { display: inline-flex; gap: 0; margin-left: auto; border: 1px solid var(--line); border-radius: var(--control-radius); overflow: hidden; }
[data-screen="search"] .home-export-actions .button { border: 0; border-radius: 0; }
[data-screen="search"] .home-export-actions .button + .button { border-left: 1px solid var(--line); }
[data-screen="search"] > .panel[data-permission="search"] { width: 100%; max-width: none; margin-inline: 0; }
[data-screen="search"] > .panel[data-permission="search"] table { table-layout: fixed; }
[data-screen="search"] > .panel[data-permission="search"] th:nth-child(1) { width: 32%; }
[data-screen="search"] > .panel[data-permission="search"] th:nth-child(2),
[data-screen="search"] > .panel[data-permission="search"] th:nth-child(3) { width: 18%; }
[data-screen="search"] > .panel[data-permission="search"] th:nth-child(4) { width: 20%; }
[data-screen="search"] > .panel[data-permission="search"] th:nth-child(5) { width: 12%; }
[data-screen="search"] > .panel[data-permission="search"] td { overflow-wrap: anywhere; }
[data-screen="search"] > .panel > .panel-header { align-items: center; }

.generated-invoices-panel .panel-header { border-bottom: 1px solid var(--line); }
.invoice-current-list { display: grid; padding: 0 16px; }
.invoice-current-list[hidden] { display: none; }
.invoice-current-item { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; }
.invoice-current-item + .invoice-current-item { border-top: 1px solid var(--line); }
.invoice-current-main { display: grid; gap: 3px; min-width: 0; }
.invoice-current-main strong { font-size: .9rem; }
.invoice-current-main span { overflow-wrap: anywhere; }
.invoice-current-main small, .invoice-current-time { color: var(--muted); font-size: .78rem; }
.invoice-current-end { display: flex; align-items: center; flex: 0 0 auto; gap: 12px; }
.invoice-current-end .button { min-height: 42px; white-space: nowrap; }
.generated-invoices-panel .empty-state .button { margin-top: 12px; }
body.invoice-builder-active .invoice-page-heading { display: none; }

[data-screen="create-documents"] .invoice-step-actions { display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 8px; }
[data-screen="create-documents"] .invoice-step-actions > .button { flex: 0 1 auto; width: auto; min-width: 0; }
[data-screen="create-documents"] .invoice-step-actions > .button-primary { margin-left: auto; }
@media (max-width: 700px) {
  .invoice-page-heading > div { display: none; }
  [data-screen="search"] .home-search-toolbar { padding: 12px; }
  [data-screen="search"] .home-search-toolbar .search-form { grid-template-columns: minmax(0, 1fr) auto; }
  [data-screen="search"] .home-search-toolbar .search-form > .button { width: auto; padding-inline: 14px; }
  [data-screen="search"] .home-search-toolbar .filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-screen="search"] .home-export-actions { grid-column: 1 / -1; width: 100%; }
  [data-screen="search"] .home-export-actions .button { flex: 1; }
  .invoice-current-item { align-items: stretch; flex-direction: column; gap: 8px; }
  .invoice-current-end { justify-content: space-between; }
  [data-screen="create-documents"] .invoice-step-actions { position: sticky; bottom: calc(72px + env(safe-area-inset-bottom)); padding: 8px 12px; }
  [data-screen="create-documents"] .invoice-step-actions > .button { min-height: 44px; }
  [data-screen="create-documents"] .invoice-step-actions > .button-primary { max-width: 62%; }
}
@media (max-width: 390px) {
  [data-screen="search"] .home-search-toolbar .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-screen="search"] .home-search-toolbar .filters select { width: 100%; }
  [data-screen="create-documents"] .invoice-step-actions > .button { padding-inline: 9px; font-size: .81rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .invoice-current-item .button, .home-search-toolbar .button { transition: background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease); }
}
.temporary-expired-dialog{width:min(420px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;overflow:auto}
.temporary-expired-dialog .dialog-body{padding-block:12px 20px}
.temporary-expired-dialog .dialog-body p{margin:0;line-height:1.5}
.temporary-expired-dialog .dialog-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}
.temporary-expired-dialog .dialog-footer .button{min-height:44px}
.organization-memberships{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:12px;border:1px solid #d6e1ee;border-radius:10px}
.organization-memberships legend{padding:0 5px;font-weight:650}
.organization-memberships label{display:inline-flex;align-items:center;gap:6px}
.organization-list{display:grid;gap:10px;margin-top:16px}
.organization-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid #d6e1ee;border-radius:10px}
.organization-create-form{max-width:650px}
@media(max-width:700px){.organization-row{grid-template-columns:1fr}.organization-row .button{min-height:44px}}
