/* =================================================================
   OMDA Shell — shared.css  v2.3 CLEAN REBUILD
   ─────────────────────────────────────────────────────────────────
   ARCHITECTURE — 3 layers:
     shared.css   = structure, components, depth (this file)
     app-theme.css = --product-* tokens  (per product, loaded after)
     app-config.js = strings, nav, permissions (per product)

   TOKEN CONTRACT:
     This file uses ONLY --omda-* and --product-* tokens.
     No hardcoded product hex colors inside this file.
     Products define --product-* in app-theme.css.

   UPGRADE from v1.x:
     --accent      → var(--product-accent)
     --accent2     → var(--product-accent-2)
     --accent3     → var(--product-accent-3)
     --accent-rgb  → var(--product-rgb)
     --bg          → var(--omda-bg)
     --surface*    → var(--omda-surface*)
     --border*     → var(--omda-border*)
     --text        → var(--omda-text)
     --muted       → var(--omda-muted)
     --subtle      → var(--omda-muted-2)
     --green       → var(--omda-success)
     --red         → var(--omda-danger)
     --blue        → var(--omda-info)
     --shadow      → var(--omda-shadow)
================================================================= */

@import url("https://fonts.googleapis.com/css2?family=Heebo:wght@300;400;500;600;700;800;900&family=Frank+Ruhl+Libre:wght@400;500;700;900&family=Rubik:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@500;700&display=swap");

/* =================================================================
   OMDA Shell Contract Lock Registry — retrospective lock manifest

   PURPOSE:
   This registry records Shell families that have been audited, cleaned
   and locked during the current OMDA Shell cleanup cycle. It is a
   documentation guard only; it must not change visual behavior.

   LOCKED FAMILIES IN THIS PATCH SET:
   1. Empty / No Access / State Screens
   2. Helper Text / Muted Text
   3. Statistics Distribution Bars
   4. Retired legacy Progress / Completion bar path
   5. Form / Field / Input basic App contract
   6. StandardPageShell Content Blocks
   7. Card / Panel / Section
   8. Inspection Findings Summary
   9. Workspace Live Summary Findings
   10. Table / List / Row Actions
   11. Filter Controls / Choice Chips
   12. New Case Modal / Wizard
   13. OMDA Auto Purchase/Sale Vehicle Inspection Variant
   14. Report Action Flow Shell
   15. Report Actions Shell
   16. Photo Viewer Shell
   17. Media / Photos / Upload Surface Shell

   EXISTING CROSS-PRODUCT CAPABILITIES / NOT YET LOCKED:
   These entries are global OMDA capabilities or global extraction targets.
   They may currently exist only as product-local implementations in early
   products such as Detection or Property, but they are not owned by those
   products. Product-local code is only the first implementation source.

   STATUS LEGEND:
   - GLOBAL CAPABILITY — belongs to Shell/Core architecture.
   - EXISTS LOCALLY — implemented inside one product today.
   - PLANNED EXTRACTION — should become a Shell/Core contract later.
   - PRODUCT CONTENT — domain fields/text/report semantics stay product-owned.

   GLOBAL CAPABILITIES TO MAP / EXTRACT LATER:
   18. Report HTML Preview / Print Shell
       GLOBAL CAPABILITY — HTML report preview, print-safe page/container,
       report toolbar, print mode, page-break primitives and Puppeteer-safe
       rendering hooks. Product owns report content and professional sections.

   19. Image Annotation / Markup Shell
       GLOBAL CAPABILITY — image/canvas editor frame, tools such as arrow,
       text, draw, rotate, undo/clear/save and export of annotated image.
       Current first implementation exists locally in Detection; ownership is
       global, not Detection-specific.

   20. Speech-to-Text / Dictation Shell
       GLOBAL CAPABILITY — microphone permission state, listening/processing
       UI, live timer/stopwatch, waveform/pulse visual feedback, interim/final
       transcript handling, target-field insertion, pause/stop/cancel lifecycle
       and fallback/error states. Current first implementation exists locally in
       Detection; ownership is global, not Detection-specific.

   21. Puppeteer HTML-to-PDF Functions Shell
       GLOBAL FUNCTIONS CAPABILITY — URL/HTML capture, render-stable wait,
       PDF generation, Storage save, signed URL and report metadata handoff.
       Product owns template data and report semantics.

   22. Product Report Template Contract
       PRODUCT FAMILY CONTRACT — report content, sections, calculations,
       professional wording and data mapping remain product-owned even when
       the preview/print/PDF infrastructure is global.

   CAPABILITY OWNERSHIP RULE:
   A technical feature is not product-owned just because it was built first
   in one product. The first product is an implementation precedent only.
   Ownership is determined by cross-product reuse potential across OMDA.

   OPERATING RULE:
   Future cleanup work must include both structural contract alignment
   and physical cleanup: remove dead selectors, retire unsupported aliases,
   audit important overrides and verify App usage against Shell contracts.
================================================================= */


/* =================================================================
   OMDA Shell v5.3 — Image Annotation / Markup Shell Mapping Contract

   STATUS:
   MAPPED / GLOBAL CAPABILITY / NOT YET EXTRACTED.

   OWNERSHIP:
   Image Annotation / Markup is a global OMDA feature capability. It is
   not Detection-owned, even though Detection is the first known product
   implementation source.

   SOURCE IMPLEMENTATION PRECEDENT:
   Detection currently contains a product-local image editor inside
   case.html, including local CSS/HTML/canvas runtime and product-specific
   Storage/Firestore persistence.

   GLOBAL SHELL TARGET OWNS:
   - Editor modal/frame and responsive canvas workspace
   - Image loading into canvas and fit-to-screen behavior
   - Pan / zoom / pinch / reset viewport controls
   - Tool model: pan, arrow, circle, future free-draw/text tools
   - Color and line-width controls
   - Selection, move, delete, clear, undo and redo
   - Arrow rotation and selected-object controls
   - Label/text editing through OMDA modal/dialog, not browser prompt
   - Read-only/locked mode
   - Loading, empty, unsupported and error states
   - Export of annotated image as Blob/DataURL
   - Product adapter callbacks for load/save/export lifecycle

   PRODUCT OWNS:
   - Source photo/case/finding mapping
   - Professional metadata and labels
   - Edit permissions by actor/status/workflow
   - Storage path and upload implementation
   - Firestore persistence and dirty/save status
   - Product-specific wording/toasts, categories and business semantics

   FORBIDDEN:
   - Do not copy Detection implementation into Shell 1:1.
   - Do not place product Storage/Firestore paths inside Shell.
   - Do not use browser prompt/alert/confirm in the Shell annotation flow.
   - Do not merge this contract with Photo Viewer or Media Upload Surface.
================================================================= */

/* =================================================================
   OMDA Shell v5.3 — Speech-to-Text / Dictation Shell Mapping Contract

   STATUS:
   MAPPED / GLOBAL CAPABILITY / NOT YET EXTRACTED.

   OWNERSHIP:
   Speech-to-Text / Dictation is a global OMDA feature capability. It is
   not Detection-owned, even though Detection is the first known product
   implementation source.

   SOURCE IMPLEMENTATION PRECEDENT:
   Detection currently contains product-local voice input in case.html
   using SpeechRecognition / webkitSpeechRecognition, he-IL, continuous
   recognition, interim results and direct target textarea insertion.

   GLOBAL SHELL TARGET OWNS:
   - Feature detection for SpeechRecognition / webkitSpeechRecognition
   - Microphone permission / unsupported-browser states
   - Start / stop / cancel / target-switch lifecycle
   - Optional pause/resume lifecycle if the platform supports it or via stop/restart
   - Active target tracking and active button state
   - Listening, processing, paused, stopped, unsupported and error states
   - Live recording timer / stopwatch
   - Waveform / pulse / voice activity visual feedback
   - Interim transcript preview separate from committed text
   - Final transcript commit lifecycle
   - Insert strategy hooks: append, replace, insert-at-cursor, review-before-commit
   - Language config with he-IL default and product override
   - Cleanup on stop/end/error/navigation/target switch
   - Accessibility labels and mobile-safe controls
   - Product adapter callbacks: onStart, onInterim, onFinal, onError, onStop

   PRODUCT OWNS:
   - Which field receives the text
   - Whether text is appended, replaced, inserted or reviewed before commit
   - Actor/status/workflow permissions and visibility
   - Firestore persistence, dirty state and autosave behavior
   - Product-specific wording/toasts where needed
   - Domain-specific post-processing or AI summarization

   FEATURE SEPARATION:
   Speech-to-Text / Dictation is not Audio Evidence Attachment, not a
   recorded audio file archive, not AI professional summarization and not
   generic textarea styling. Those require separate contracts if needed.

   FORBIDDEN:
   - Do not hardcode Detection field ids or case.html selectors in Shell.
   - Do not place product save/Firestore logic inside Shell.
   - Do not rely on product-local showToast as the Shell error surface.
   - Do not silently overwrite existing field content without product strategy.
================================================================= */


/* ═══════════════════════════════════════════════════════════════
   LAYER 0 — BASE TOKENS (never product-specific)
═══════════════════════════════════════════════════════════════ */
:root {
  /* Surfaces */
  --omda-bg:        #050b14;
  --omda-surface:   #0c1522;
  --omda-surface-2: #111d2c;
  --omda-surface-3: #172437;
  --omda-surface-4: #1d2f45;

  /* Text */
  --omda-text:    #f8fafc;
  --omda-muted:   #94a3b8;
  --omda-muted-2: #64748b;

  /* Borders */
  --omda-border:        rgba(148, 163, 184, .15);
  --omda-border-2:      rgba(148, 163, 184, .24);
  --omda-border-accent: rgba(var(--product-rgb), .32);

  /* Semantic — fixed, never product-specific */
  --omda-success: #10b981;
  --omda-danger:  #ef4444;
  --omda-warning: #f97316;
  --omda-info:    #3b82f6;
  --omda-purple:  #8b5cf6;

  /* Shadows */
  --omda-shadow:      0 20px 60px rgba(0, 0, 0, .42);
  --omda-shadow-soft: 0 12px 36px rgba(2, 8, 23, .28);
  --omda-shadow-card: 0 12px 40px rgba(0, 0, 0, .35),
                      inset 0 1px 0 rgba(255, 255, 255, .03);

  /* Shape */
  --omda-r-nav:   14px;
  --omda-r-btn:   13px;
  --omda-r-card:  18px;
  --omda-r-badge: 999px;
  --omda-r-input: 12px;
  --omda-r-field: 13px;
  --omda-r-modal: 20px;
  --omda-select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa8c0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");

  /* Product-neutral defaults — overridden at runtime by OMDA_PRODUCT_CONFIG */
  --product-accent:   #64748b;
  --product-accent-2: #94a3b8;
  --product-accent-3: #475569;
  --product-rgb:      100, 116, 139;
}

/* ═══════════════════════════════════════════════════════════════
   LAYER 1 — RESET & BASE
═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--omda-bg); }
body {
  margin: 0;
  font-family: "Heebo", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--omda-text);
  background:
    radial-gradient(circle at 85%  8%,  rgba(var(--product-rgb), .10), transparent 28%),
    radial-gradient(circle at 12% 18%,  rgba(37, 99, 235, .09),        transparent 34%),
    linear-gradient(135deg, #020916 0%, #071526 52%, #03101e 100%);
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px),
    radial-gradient(ellipse 75% 48% at 70% 0%,
      rgba(var(--product-rgb), .055), transparent 62%);
  background-size: 48px 48px, 48px 48px, auto;
}
a                           { text-decoration: none; color: inherit; }
button, input, select,
textarea                    { font: inherit; }
.hidden                     { display: none !important; }

/* ═══════════════════════════════════════════════════════════════
   LAYER 2 — APP SHELL LAYOUT
═══════════════════════════════════════════════════════════════ */
.app {
  display: flex;
  min-height: 100vh;
  background: transparent;
  position: relative;
  z-index: 1;
}

/* Sidebar base/nav contract is defined once in the AppShell contract section. */

/* Main wrap */
.main-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* ── Topbar ────────────────────────────────────────────────── */


/* ═══════════════════════════════════════════════════════════════
   LAYER 3 — COMPONENTS
═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   OMDA Shell v5.3 — Button / Action Controls Contract
   Base button owns generic action DNA. Context contracts may adjust
   placement/width only; they must not redefine a parallel button system.

   Canonical: .btn + variant/size modifiers.
   Supported aliases: .btn-light/.btn-soft/.btn-ico/.fbtn/.sev.
   Context-owned: .tb-ico/.tb-icon-btn, .omda-row-actions-btn,
   .field-btn/.fbtn, .sev-btn/.sev.
════════════════════════════════════════════════════════════════ */
.btn,
.chip-btn{
  --omda-button-height:44px;
  --omda-button-padding-inline:20px;
  --omda-button-radius:var(--omda-r-btn,13px);
  min-height:var(--omda-button-height);
  height:var(--omda-button-height);
  padding:0 var(--omda-button-padding-inline);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:0;
  border:1px solid transparent;
  border-radius:var(--omda-button-radius);
  box-sizing:border-box;
  cursor:pointer;
  font-family:var(--omda-font-ui);
  font-size:13px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  text-decoration:none;
  user-select:none;
  appearance:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s,opacity .15s;
}
.btn:active,.chip-btn:active{transform:scale(.96);}
.btn:disabled,.btn[disabled],.btn[aria-disabled="true"],
.chip-btn:disabled,.chip-btn[disabled],.chip-btn[aria-disabled="true"]{
  cursor:not-allowed;
  opacity:.55;
  transform:none;
  box-shadow:none;
}
.btn svg,.chip-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0;}
.btn:focus-visible,.chip-btn:focus-visible{outline:0;box-shadow:0 0 0 3px var(--a-bg,rgba(var(--product-rgb),.18));}

.btn-primary{
  background:linear-gradient(135deg,var(--product-accent-2,var(--product-accent)),var(--product-accent));
  color:var(--a-ink,#07111d);
  border-color:rgba(var(--product-rgb),.50);
  box-shadow:0 4px 18px rgba(var(--product-rgb),.30);
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 28px rgba(var(--product-rgb),.45);}

.btn-secondary,.btn-light{
  background:rgba(255,255,255,.045);
  border-color:var(--line-2,var(--omda-border-2));
  color:var(--text,var(--omda-text));
}
.btn-secondary:hover,.btn-light:hover{background:rgba(255,255,255,.07);border-color:rgba(var(--product-rgb),.32);}

.btn-ghost{
  background:transparent;
  border-color:var(--line-2,var(--omda-border-2));
  color:var(--text-2,var(--omda-muted));
}
.btn-ghost:hover{background:rgba(255,255,255,.045);border-color:rgba(var(--product-rgb),.30);color:var(--text,var(--omda-text));}

.btn-soft{
  background:rgba(var(--product-rgb),.10);
  border-color:rgba(var(--product-rgb),.24);
  color:var(--a,var(--product-accent));
}
.btn-soft:hover{background:rgba(var(--product-rgb),.16);border-color:rgba(var(--product-rgb),.38);}

.btn-danger{
  background:rgba(239,68,68,.08);
  border-color:rgba(239,68,68,.28);
  color:#fca5a5;
}
.btn-danger:hover{background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.42);}

.btn-sm{--omda-button-height:34px;--omda-button-padding-inline:14px;--omda-button-radius:10px;font-size:12px;}
.btn-lg{--omda-button-height:50px;--omda-button-padding-inline:28px;font-size:15px;}
.btn-block{width:100%;}


/* ============================================================
   OMDA Shell — Info Popover Contract v1
   Additive global primitive.
   Existing Shell primitives are not modified.
   ============================================================ */

.omda-info-trigger{
  width:24px;
  height:24px;
  min-width:24px;
  min-height:24px;
  padding:0;
  display:inline-grid;
  place-items:center;
  flex:0 0 24px;
  border:1px solid var(--line-2,var(--omda-border-2));
  border-radius:999px;
  background:var(--surface,var(--omda-surface));
  color:var(--text-2,var(--omda-muted));
  font-family:var(--omda-font-mono,ui-monospace,monospace);
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  vertical-align:middle;
  transition:
    color .14s,
    border-color .14s,
    background .14s,
    box-shadow .14s,
    transform .12s;
}

.omda-info-trigger:hover,
.omda-info-trigger[aria-expanded="true"]{
  color:var(--a,var(--product-accent));
  border-color:var(--ring,rgba(var(--product-rgb),.28));
  background:var(--a-bg,rgba(var(--product-rgb),.12));
}

.omda-info-trigger:active{
  transform:scale(.94);
}

.omda-info-trigger:focus-visible{
  outline:0;
  color:var(--a,var(--product-accent));
  border-color:var(--a,var(--product-accent));
  box-shadow:0 0 0 3px var(--a-bg,rgba(var(--product-rgb),.18));
}

.omda-info-popover{
  position:fixed;
  z-index:92000;
  width:min(330px,calc(100vw - 24px));
  max-width:calc(100vw - 24px);
  border:1px solid var(--line-2,var(--omda-border-2));
  border-radius:14px;
  background:var(--card-solid,var(--omda-card));
  color:var(--text,var(--omda-text));
  box-shadow:var(--shadow-lg,var(--omda-shadow-lg));
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-3px);
  transition:
    opacity .12s ease,
    transform .12s ease,
    visibility .12s;
}

.omda-info-popover.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}

.omda-info-popover-body{
  padding:12px 14px;
  color:var(--text-2,var(--omda-muted));
  font-family:var(--omda-font-ui,inherit);
  font-size:12.5px;
  font-weight:500;
  line-height:1.65;
  direction:rtl;
  text-align:right;
  overflow-wrap:anywhere;
}

@media(max-width:799.98px){
  .omda-info-trigger{
    width:30px;
    height:30px;
    min-width:30px;
    min-height:30px;
    flex-basis:30px;
  }
}

@media(hover:none),(pointer:coarse){
  .omda-info-trigger:hover:not([aria-expanded="true"]){
    color:var(--text-2,var(--omda-muted));
    border-color:var(--line-2,var(--omda-border-2));
    background:var(--surface,var(--omda-surface));
  }
}

@media(prefers-reduced-motion:reduce){
  .omda-info-trigger,
  .omda-info-popover{
    transition:none;
  }
}

/* OMDA Shell — Binary Choice Control v1 */
.omda-binary-choice{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.omda-binary-choice-btn{
  min-width:42px;
  min-height:36px;
  padding:0 12px;
  border:1px solid var(--line-2,var(--omda-border-2));
  border-radius:11px;
  background:var(--surface,var(--omda-surface));
  color:var(--text-2,var(--omda-muted));
  font-family:var(--omda-font-ui);
  font-size:15px;
  font-weight:900;
  cursor:pointer;
  transition:
    background .15s,
    border-color .15s,
    color .15s,
    box-shadow .15s,
    transform .15s;
}

.omda-binary-choice-btn:hover{
  background:var(--card-hi,var(--omda-surface-2));
}

.omda-binary-choice-btn:active{
  transform:scale(.96);
}

.omda-binary-choice-btn:focus-visible{
  outline:0;
  box-shadow:0 0 0 3px var(--a-bg,rgba(var(--product-rgb),.18));
}

.omda-binary-choice-btn[data-omda-binary-value="match"].is-selected,
.omda-binary-choice-btn[data-omda-binary-value="match"][aria-pressed="true"]{
  color:#86efac;
  border-color:rgba(34,197,94,.42);
  background:rgba(34,197,94,.10);
}

.omda-binary-choice-btn[data-omda-binary-value="mismatch"].is-selected,
.omda-binary-choice-btn[data-omda-binary-value="mismatch"][aria-pressed="true"]{
  color:#fca5a5;
  border-color:rgba(239,68,68,.42);
  background:rgba(239,68,68,.10);
}

html[data-mode="light"] .omda-binary-choice-btn{
  background:var(--card-solid,#fff);
  color:var(--text-2,#475569);
}

html[data-mode="light"] .omda-binary-choice-btn[data-omda-binary-value="match"].is-selected,
html[data-mode="light"] .omda-binary-choice-btn[data-omda-binary-value="match"][aria-pressed="true"]{
  color:#15803d;
  background:rgba(34,197,94,.09);
}

html[data-mode="light"] .omda-binary-choice-btn[data-omda-binary-value="mismatch"].is-selected,
html[data-mode="light"] .omda-binary-choice-btn[data-omda-binary-value="mismatch"][aria-pressed="true"]{
  color:#b91c1c;
  background:rgba(239,68,68,.08);
}

.btn-icon,.btn-ico{
  width:40px;
  min-width:40px;
  height:40px;
  min-height:40px;
  padding:0;
  border-radius:var(--omda-r-btn,13px);
  background:rgba(255,255,255,.035);
  border:1px solid var(--line,var(--omda-border));
  color:var(--text-2,var(--omda-muted));
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  transition:background .18s,color .18s,border-color .18s,transform .18s;
  -webkit-tap-highlight-color:transparent;
}
.btn-icon:hover,.btn-ico:hover{background:rgba(255,255,255,.07);color:var(--text,var(--omda-text));border-color:rgba(var(--product-rgb),.28);}
.btn-icon.danger:hover,.btn-ico.danger:hover{background:rgba(239,68,68,.10);color:#fca5a5;border-color:rgba(239,68,68,.30);}
.btn-icon:active,.btn-ico:active{transform:scale(.96);}
.btn-icon svg,.btn-ico svg{width:17px;height:17px;stroke:currentColor;fill:none;}

.btn:empty,button:empty{display:none!important;}

html[data-mode="light"] .btn-secondary,
html[data-mode="light"] .btn-light{
  background:rgba(255,255,255,.88);
  border-color:rgba(111,129,154,.24);
  color:var(--text,#0f1b2d);
}
html[data-mode="light"] .btn-secondary:hover,
html[data-mode="light"] .btn-light:hover{background:var(--card-hi,#f8fafc);border-color:rgba(var(--product-rgb),.28);}
html[data-mode="light"] .btn-ghost{color:var(--text-2,#475569);border-color:rgba(111,129,154,.22);}
html[data-mode="light"] .btn-ghost:hover{background:rgba(15,27,45,.045);color:var(--text,#0f1b2d);}
/* Status Text Canon v1: danger text on light surfaces uses the canonical dark value (was #fca5a5, ~1.9:1 on white). */
html[data-mode="light"] .btn-danger{color:var(--bad-text,#991b1b);border-color:rgba(225,29,72,.32);background:rgba(225,29,72,.06);}
html[data-mode="light"] .btn-danger:hover{background:rgba(225,29,72,.12);border-color:rgba(225,29,72,.46);}
html[data-mode="light"] .btn-icon,
html[data-mode="light"] .btn-ico{background:rgba(255,255,255,.82);border-color:rgba(111,129,154,.24);color:var(--text-2,#475569);}
html[data-mode="light"] .btn-icon:hover,
html[data-mode="light"] .btn-ico:hover{background:var(--card-hi,#f8fafc);color:var(--text,#0f1b2d);}


/* ================================================================
   OMDA Neutral Utility Controls — Light Mode v1
   Neutral actions must never inherit product/warning fill colors.
================================================================ */
html[data-mode="light"] :is(
  .omda-modal-close,
  .btn-icon,
  .btn-ico,
  .omda-menu-btn,
  .omda-entity-preview-close
){
  background:#eef2f7;
  border-color:#cbd5e1;
  color:#475569;
  box-shadow:none;
}

html[data-mode="light"] :is(
  .omda-modal-close,
  .btn-icon,
  .btn-ico,
  .omda-menu-btn,
  .omda-entity-preview-close
):hover{
  background:#e2e8f0;
  border-color:#94a3b8;
  color:#0f172a;
  box-shadow:none;
}

html[data-mode="light"] :is(
  .omda-modal-close,
  .btn-icon,
  .btn-ico,
  .omda-menu-btn,
  .omda-entity-preview-close
):focus-visible{
  outline:0;
  background:#e2e8f0;
  border-color:#94a3b8;
  color:#0f172a;
  box-shadow:0 0 0 3px rgba(71,85,105,.16);
}

html[data-mode="light"] :is(
  .omda-modal-close,
  .btn-icon,
  .btn-ico,
  .omda-menu-btn,
  .omda-entity-preview-close
):active{
  background:#d8e0ea;
  border-color:#8492a6;
  color:#0f172a;
}

/* Severity controls — inspection severity selection, not generic danger buttons. */
.sev-btn,.sev{
  min-height:40px;
  padding:0 18px;
  border-radius:10px;
  font-size:12px;
  font-weight:800;
  border:2px solid var(--line-2,var(--omda-border-2));
  cursor:pointer;
  background:transparent;
  color:var(--text-2,var(--omda-muted));
  font-family:var(--omda-font-ui);
  transition:background .12s,border-color .12s,color .12s,transform .12s;
  -webkit-tap-highlight-color:transparent;
}
.sev-btn:active,.sev:active{transform:scale(.94);}
.sev-btn.low,.sev.low{color:var(--product-accent);border-color:rgba(var(--product-rgb),.50);background:rgba(var(--product-rgb),.10);}
.sev-btn.medium,.sev.medium{color:#fff;background:var(--omda-warning);border-color:var(--omda-warning);}
.sev-btn.high,.sev.high{color:#fff;background:var(--omda-danger);border-color:var(--omda-danger);}

/* =================================================================
   OMDA Shell v5.3 — Badge / Chip / Status Pill Contract

   FAMILY:
   Badges, chips and compact read-only status pills.

   OWNS:
   - Generic inline badges and chips
   - Status/payment/count pills used by operational tables
   - Case source badges
   - Entity preview badges
   - Semantic visual states: neutral, warn/open/module, green/ok/done,
     blue/work, red/fail, purple, filled-ok, filled-fail
   - Light/dark mode rendering for badge states

   CANONICAL:
   .badge
   .chip

   SUPPORTED ALIASES / CONTEXT CLASSES:
   .otp-pill
   .otp-status-pill
   .otp-payment-pill
   .otp-count-pill
   .case-source-badge
   .omda-entity-preview-badge
   .badge.module

   DOES NOT OWN:
   - Button-like chips (.chip-btn) — Button / Action Controls Contract
   - Tab counters (.tab-badge) — navigation/page tabs context
   - Filter controls / choice controls — OperationalToolbarFilters Contract
   - Inspection slash choices (.slash-choice-chip)
   - Mobile nav badges / topbar notification badges

   FORBIDDEN / RETIRED:
   - .module-badge
   - .status-badge / .status-chip / .status-tag
   - .payment-badge / .pay-badge
   - .role-badge / .type-badge / .source-chip
   - .badge.bad — use .badge.fail

   STATUS:
   LOCKED — badge.bad migrated to badge.fail; module-badge retired.
================================================================= */
.badge,
.chip,
.otp-pill,
.otp-status-pill,
.otp-payment-pill,
.otp-count-pill,
.case-source-badge,
.omda-entity-preview-badge{
  padding:5px 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border-radius:var(--omda-r-badge,999px);
  border:0;
  background:rgba(148,163,184,.10);
  color:var(--omda-muted);
  font-family:var(--omda-font-ui);
  font-size:12px;
  font-weight:700;
  line-height:1.55;
  white-space:nowrap;
  box-sizing:border-box;
}

.case-source-badge,
.omda-entity-preview-badge{
  width:max-content;
}

/* Status marker — count pills remain numeric and do not receive a dot. */
.badge::before,
.otp-pill::before,
.otp-status-pill::before,
.otp-payment-pill::before,
.case-source-badge::before,
.omda-entity-preview-badge::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:999px;
  background:currentColor;
  opacity:1;
}

:is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
).neutral{
  color:var(--omda-muted);
  background:rgba(148,163,184,.10);
}

:is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.warn,.open,.module),
.case-source-badge.private{
  color:var(--product-accent);
  background:rgba(var(--product-rgb),.12);
}

:is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.green,.ok,.done,.paid){
  color:var(--ok-text,var(--ok,#34d399));
  background:var(--ok-bg,rgba(52,211,153,.12));
}

:is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.blue,.work,.partial){
  color:var(--info-text,var(--info,#60a5fa));
  background:var(--info-bg,rgba(96,165,250,.12));
}

:is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.red,.fail){
  color:var(--bad-text,var(--bad,#f87171));
  background:var(--bad-bg,rgba(248,113,113,.12));
}

:is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
).purple{
  color:#a78bfa;
  background:rgba(167,139,250,.12);
}

.otp-count-pill.zero{
  opacity:.62;
}

html[data-mode="light"] :is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .otp-count-pill,
  .case-source-badge,
  .omda-entity-preview-badge
){
  background:rgba(255,255,255,.78);
  color:var(--text-2,#475569);
}

html[data-mode="light"] :is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.green,.ok,.done,.paid){
  color:var(--ok-text,#047857);
  background:rgba(16,185,129,.13);
}

html[data-mode="light"] :is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.blue,.work,.partial){
  color:var(--info-text,#1e40af);
  background:rgba(59,130,246,.13);
}

html[data-mode="light"] :is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.warn,.open,.module),
html[data-mode="light"] .case-source-badge.private{
  color:var(--omda-accent-text,color-mix(in srgb,var(--product-accent,#64748b) 58%,#111827));
  background:rgba(var(--product-rgb),.14);
}

html[data-mode="light"] :is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
):is(.red,.fail){
  color:var(--bad-text,#991b1b);
  background:rgba(239,68,68,.12);
}

html[data-mode="light"] :is(
  .badge,
  .chip,
  .otp-pill,
  .otp-status-pill,
  .otp-payment-pill,
  .omda-entity-preview-badge
).purple{
  color:#6d28d9;
  background:rgba(139,92,246,.12);
}


/* Progress chip */
.prog-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  border: 1px solid var(--omda-border-2);
  color: var(--omda-muted);
  background: none;
  cursor: pointer;
  transition: all .13s;
}
.prog-chip .chip-dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.prog-chip.c-done    { color: #6ee7b7; border-color: rgba(16,185,129,.35); background: rgba(16,185,129,.06); }
.prog-chip.c-partial { color: var(--product-accent); border-color: rgba(var(--product-rgb),.35); background: rgba(var(--product-rgb),.06); }
.prog-chip.c-error   { color: #fca5a5; border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.06); }

/* =================================================================
   OMDA Shell v2.1 — Statistics Distribution Bar Contract v1

   FAMILY:
   Metrics / Distribution / Read-only visual bars

   OWNS:
   - Distribution rows inside statistics/content blocks
   - Label / track / fill / value rhythm
   - Responsive collapse for mobile
   - Visual fill controlled by Shell CSS variable hydration

   CANONICAL DOM:
   .simple-bars
     .simple-bar-row
       .simple-bar-label
       .simple-bar-track
         .simple-bar-fill[data-omda-simple-bar-value]
       .simple-bar-value

   RUNTIME CONTRACT:
   - Product/renderer may provide data-omda-simple-bar-value only.
   - Shell JS hydrateSimpleBars() clamps 0–100 and writes
     --omda-simple-bar-value.
   - App must not write inline width or calculate visual CSS directly.

   DOES NOT OWN:
   - Task completion progress
   - Inspection findings summary
   - Save/loading indicators
   - KPI cards themselves

   FORBIDDEN / RETIRED:
   - Legacy generic progress track/fill selectors
   - Legacy Shell progress setter helper
   - Product-side style="width:..." for bars

   STATUS:
   LOCKED — Statistics Distribution Bar Contract.
================================================================= */
.simple-bars{display:grid;gap:10px;}
.simple-bar-row{display:grid;grid-template-columns:minmax(92px,1fr) minmax(120px,2fr) minmax(36px,auto);align-items:center;gap:10px;}
.simple-bar-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2,var(--omda-muted));font-size:13px;font-weight:700;}
.simple-bar-track{min-width:0;height:8px;overflow:hidden;border-radius:999px;background:rgba(148,163,184,.14);}
.simple-bar-fill{display:block;width:var(--omda-simple-bar-value,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--a,var(--product-accent)),var(--a-2,var(--product-accent-2)));}
.simple-bar-value{color:var(--text,var(--omda-text));font-size:13px;font-weight:800;text-align:left;white-space:nowrap;}
@media (max-width:799.98px){
  .simple-bar-row{grid-template-columns:1fr auto;gap:6px 10px;}
  .simple-bar-track{grid-column:1/-1;}
}

/* =================================================================
   OMDA Shell v2.1 — Progress / Completion Contract Retirement Lock

   STATUS:
   RETIRED / PHYSICALLY CLEANED.

   REMOVED:
   - Legacy generic progress track/fill selectors
   - Legacy progress span hydration bridge
   - Legacy Shell progress setter helper

   REASON:
   Inspection and workspace summaries are findings summaries, not
   completion percentages. Statistics distribution bars are covered by
   the separate Statistics Distribution Bar Contract.

   RULE:
   Do not reintroduce generic progress bars without a new explicit
   Shell-level Progress/Completion contract and product-agnostic use case.
================================================================= */

/* Save indicator */
.save-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--omda-muted-2);
  display: inline-block;
  transition: background .3s;
}
.save-dot.saving { background: var(--product-accent); animation: omda-blink 1s infinite; }
.save-dot.saved  { background: var(--omda-success); }
.save-dot.error  { background: var(--omda-danger); }
@keyframes omda-blink { 0%,100%{opacity:1}50%{opacity:.25} }



/* ============================================================
   OMDA Shell v5.3 — Form / Field / Input Contract

   FAMILY:
   Generic form layout and data-entry controls.

   OWNS:
   - Form grid layout
   - Field wrappers and span/full-width behavior
   - Labels and required mark
   - Text inputs, selects and textareas
   - Focus / disabled / error states
   - Light/dark mode field rendering
   - Mobile one-column collapse

   CANONICAL:
   .omda-form-grid
   .omda-field
   .omda-input
   .omda-select
   .omda-textarea

   SUPPORTED ALIASES:
   .form-grid, .fgrid
   .field, .fld, .f
   .input, .inp
   .select
   .note-ta
   .fg-full, .fg-2, .span-2, .full

   DOES NOT OWN:
   - Toolbar search/filter controls
   - Mobile filter sheet controls
   - New Case Modal choice cards
   - Inspection severity/slash-choice controls
   - Upload/signature placeholders
   - Business validation logic

   RELATED CONTRACTS:
   Helper Text -> .omda-helper-text
   Button / Action Controls -> .field-btn / .fbtn
   New Case Modal -> .ncm-fld / choice/email consent controls
   Inspection Operational Controls -> .severity-select / .slash-choice-*

   FORBIDDEN / RETIRED:
   - .field.wide
   - .form-help / .field-help
   - .form-error / .field-error
   - Product-local form card/layout CSS

   STATUS:
   LOCKED at App basic-form level after .field.wide physical cleanup.
   ============================================================ */
.omda-form-grid,
.form-grid,
.fgrid {
  --omda-form-input-radius: 13px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.omda-field.full,
.field.full,
.fld.full,
.f.full,
.fg-full { grid-column: 1 / -1; }
.omda-field.span-2,
.field.span-2,
.fld.span-2,
.fg-2 { grid-column: span 2; }
.omda-field label,
.field label,
.fld label,
.f label,
.field-block label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-2, var(--omda-muted));
  margin-bottom: 7px;
}
.omda-field label .req,
.field label .req,
.fld label .req,
.f label .req { color: var(--a, var(--product-accent)); margin-right: 3px; }
.omda-input,
.omda-select,
.omda-textarea,
.input,
.inp,
.select,
select.select,
select.input,
select.inp,
textarea,
.note-ta,
.severity-select,
.omda-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.fld input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.f input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.omda-field select,
.field select,
.fld select,
.f select,
.omda-field textarea,
.field textarea,
.fld textarea,
.f textarea {
  width: 100%;
  min-height: 46px;
  border: 1.5px solid var(--line-2, var(--omda-border-2));
  background: var(--surface, rgba(7,14,24,.8));
  color: var(--text, var(--omda-text));
  border-radius: var(--omda-form-input-radius, 13px);
  padding: 10px 14px;
  font-family: var(--omda-font-ui);
  font-size: 14px;
  line-height: 1.35;
  outline: none;
  display: block;
  color-scheme: dark;
  transition: border-color .14s, box-shadow .14s, background .14s;
}
.omda-select,
.select,
select.select,
select.input,
select.inp,
.omda-field select,
.field select,
.fld select,
.f select { cursor: pointer; }
.omda-textarea,
textarea,
.note-ta,
.omda-field textarea,
.field textarea,
.fld textarea,
.f textarea {
  min-height: 88px;
  height: auto;
  padding: 12px 14px;
  resize: vertical;
  line-height: 1.6;
}
.omda-input:focus,
.omda-select:focus,
.omda-textarea:focus,
.input:focus,
.inp:focus,
.select:focus,
select.select:focus,
select.input:focus,
select.inp:focus,
textarea:focus,
.note-ta:focus,
.severity-select:focus,
.omda-field input:focus,
.field input:focus,
.fld input:focus,
.f input:focus,
.omda-field select:focus,
.field select:focus,
.fld select:focus,
.f select:focus,
.omda-field textarea:focus,
.field textarea:focus,
.fld textarea:focus,
.f textarea:focus {
  border-color: var(--a, var(--product-accent));
  box-shadow: 0 0 0 4px var(--a-bg, rgba(var(--product-rgb), .12));
  background: var(--card-solid, var(--omda-surface-2));
}
.omda-input::placeholder,
.omda-textarea::placeholder,
.input::placeholder,
.inp::placeholder,
textarea::placeholder,
.omda-field input::placeholder,
.field input::placeholder,
.fld input::placeholder,
.f input::placeholder,
.omda-field textarea::placeholder,
.field textarea::placeholder,
.fld textarea::placeholder,
.f textarea::placeholder { color: var(--text-3, var(--omda-muted-2)); }
.omda-input:disabled,
.omda-select:disabled,
.omda-textarea:disabled,
.input:disabled,
.inp:disabled,
.select:disabled,
select.select:disabled,
select.input:disabled,
select.inp:disabled,
textarea:disabled { opacity: .55; cursor: not-allowed; }
.omda-input.error,
.omda-input.bad,
.omda-select.error,
.omda-textarea.error,
.input.error,
.input.bad,
.inp.error,
.inp.bad { border-color: var(--bad, var(--omda-danger)); }
html[data-mode="light"] .omda-input,
html[data-mode="light"] .omda-select,
html[data-mode="light"] .omda-textarea,
html[data-mode="light"] .input,
html[data-mode="light"] .inp,
html[data-mode="light"] .select,
html[data-mode="light"] select.select,
html[data-mode="light"] select.input,
html[data-mode="light"] select.inp,
html[data-mode="light"] textarea,
html[data-mode="light"] .omda-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-mode="light"] .field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-mode="light"] .fld input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-mode="light"] .f input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-mode="light"] .omda-field select,
html[data-mode="light"] .field select,
html[data-mode="light"] .fld select,
html[data-mode="light"] .f select,
html[data-mode="light"] .omda-field textarea,
html[data-mode="light"] .field textarea,
html[data-mode="light"] .fld textarea,
html[data-mode="light"] .f textarea {
  background: var(--card-solid, #fff);
  color: var(--text, #0f1b2d);
  border-color: var(--line-2, #d4dbe6);
  color-scheme: light;
}
@media (max-width:799.98px) {
  .omda-form-grid,
  .form-grid,
  .fgrid { grid-template-columns: 1fr; }
  .omda-field.span-2,
  .field.span-2,
  .fld.span-2,
  .fg-2 { grid-column: 1 / -1; }
}

/* =================================================================
   OMDA Shell v5.3 — Empty / No Access / State Screens Contract

   FAMILY:
   Empty, denied and unavailable state screens.

   OWNS:
   - Empty content areas
   - Table/list empty rows
   - No-access cards
   - Empty-state icon/title/subtitle composition
   - Light/dark empty-state rendering

   CANONICAL DOM:
   .omda-empty-state
     .omda-empty-icon
     .omda-empty-title
     .omda-empty-sub

   RELATED DOM:
   .no-access
   .no-access-icon
   .no-access-title
   .no-access-sub
   .no-access-meta

   DOES NOT OWN:
   - Helper/explanatory text outside an empty state
   - Field validation errors
   - Toasts/banners/notifications
   - Upload/signature placeholders unless they are true empty states

   FORBIDDEN / RETIRED:
   - .empty-state
   - .empty-icon
   - .empty-title
   - .empty-sub

   USAGE RULE:
   .omda-empty-sub is valid only as part of the Empty State contract.
   Standalone explanation text must use .omda-helper-text.

   STATUS:
   LOCKED — Empty State legacy classes removed from App.
================================================================= */
.omda-empty-state{
  min-height:220px;
  font-family:var(--omda-font-ui);
  display:grid;
  align-content:center;
  justify-items:center;
  text-align:center;
  padding:36px 18px;
  border:1px dashed var(--omda-border-2);
  border-radius:var(--omda-r-card);
  background:rgba(17,24,39,.55);
  color:var(--omda-muted);
}
table .omda-empty-state{
  min-height:0;
  border:0;
  background:transparent;
  padding:80px 20px;
}
.omda-empty-icon{
  width:46px;
  height:46px;
  margin:0 auto 12px;
  border-radius:16px;
  background:rgba(var(--product-rgb),.08);
  border:1px solid rgba(var(--product-rgb),.18);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--product-accent);
  opacity:.88;
}
.omda-empty-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;}
.omda-empty-title{font-size:17px;font-weight:900;color:var(--omda-text);margin:0 0 6px;}
.omda-empty-sub{font-size:13px;line-height:1.6;color:var(--omda-muted);}

.no-access{
  max-width:520px;
  font-family:var(--omda-font-ui);
  margin:80px auto;
  padding:40px 32px;
  text-align:center;
  background:var(--card-solid,rgba(8,22,38,.92));
  background-image:var(--card-grad,linear-gradient(180deg,rgba(17,29,44,.94),rgba(8,18,32,.91)));
  border:1px solid var(--omda-border,var(--line));
  border-radius:var(--omda-r-modal);
  box-shadow:var(--omda-shadow,var(--shadow));
  color:var(--omda-text,var(--text));
}
.no-access-icon{
  width:72px;
  height:72px;
  margin:0 auto 16px;
  border-radius:18px;
  background:rgba(239,68,68,.10);
  border:1px solid rgba(239,68,68,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#f87171;
}
.no-access-icon svg{width:32px;height:32px;stroke:currentColor;fill:none;}
.no-access-title{
  font-family:var(--omda-brand-font-display,"Frank Ruhl Libre",serif);
  font-size:22px;
  font-weight:700;
  margin:0 0 8px;
  color:var(--omda-text,var(--text));
}
.no-access-sub{font-size:13px;color:var(--omda-muted,var(--text-2));margin-bottom:20px;line-height:1.6;}
.no-access-meta{
  display:inline-block;
  margin-bottom:20px;
  padding:6px 12px;
  border-radius:8px;
  background:var(--omda-surface-3,var(--card-hi));
  font-size:11px;
  color:var(--omda-muted-2,var(--text-3));
}
.no-access-meta code{color:var(--product-accent,var(--a));font-family:var(--omda-font-mono);font-size:12px;}
html[data-mode="light"] .omda-empty-state{
  background:rgba(255,255,255,.70);
  border-color:var(--line-2,rgba(15,23,42,.17));
  color:var(--text-2,#475569);
}
html[data-mode="light"] .no-access{
  background:var(--card-solid,#fff);
  background-image:none;
  border-color:var(--line-2,rgba(15,23,42,.17));
  box-shadow:var(--shadow,0 18px 50px rgba(15,23,42,.14));
  color:var(--text,#0f172a);
}


/* =================================================================
   OMDA Shell v5.3 — Helper Text / Muted Text Contract

   FAMILY:
   Standalone helper, muted and local validation copy.

   OWNS:
   - Helper/explanatory text under controls or inside modals
   - Local validation messages
   - Low-emphasis operational notes
   - warn/error/success semantic helper variants

   CANONICAL:
   .omda-helper-text
   .omda-helper-text.warn
   .omda-helper-text.error
   .omda-helper-text.success

   DOES NOT OWN:
   - Empty-state subtitles (.omda-empty-sub)
   - Badge/status pills
   - Toast/banner messages
   - Business validation logic

   FORBIDDEN / RETIRED:
   - Standalone .empty-sub
   - .form-help / .field-help
   - .form-error / .field-error

   STATUS:
   LOCKED — standalone empty-sub migrated to helper text.
================================================================= */
.omda-helper-text{
  color:var(--text-2,var(--omda-muted));
  font-family:var(--omda-font-ui);
  font-size:12.5px;
  font-weight:650;
  line-height:1.65;
}
.omda-helper-text.warn{color:var(--a,var(--product-accent));}
.omda-helper-text.error{color:#fca5a5;}
.omda-helper-text.success{color:#6ee7b7;}

html[data-mode="light"] .omda-helper-text{
  color:var(--text-2,#475569);
}
html[data-mode="light"] .omda-helper-text.error{
  color:#991b1b;
}
html[data-mode="light"] .omda-helper-text.success{
  color:#047857;
}

/* Auth Shell is defined once in the dedicated Auth Shell Contract below. */

/* ═══════════════════════════════════════════════════════════════
   APPSHELL — MOBILE NAV CONTRACT
   Source of truth for bottom navigation.
   Layout: 2 items + centered primary action + 2 items.
═══════════════════════════════════════════════════════════════ */

/* Mobile Viewport Contract
   Shared usable mobile viewport reserve for fixed bottom navigation.
   Shell components such as modals, floating panels and scroll surfaces should
   consume this variable instead of hard-coding their own bottom gap.
*/
:root{
  --omda-mobile-bottom-nav-height:0px;
  --omda-mobile-bottom-nav-visible-reserve:0px;
  --omda-mobile-bottom-nav-hidden-reserve:0px;
  --omda-mobile-viewport-bottom-reserve:0px;
}

.mob-nav,
.mobile-nav,
.bottom-nav {
  display: none;
}

@media (max-width:799.98px) {
  :root{
    --omda-mobile-bottom-nav-height:calc(74px + env(safe-area-inset-bottom,0px));
    --omda-mobile-bottom-nav-visible-reserve:calc(110px + env(safe-area-inset-bottom,0px));
    --omda-mobile-bottom-nav-hidden-reserve:calc(16px + env(safe-area-inset-bottom,0px));
    --omda-mobile-viewport-bottom-reserve:var(--omda-mobile-bottom-nav-visible-reserve);
  }

  body[data-omda-mobile-nav-state="hidden"]{
    --omda-mobile-viewport-bottom-reserve:var(--omda-mobile-bottom-nav-hidden-reserve);
  }

  body[data-omda-mobile-nav-state="visible"],
  body[data-omda-mobile-nav-state="locked"]{
    --omda-mobile-viewport-bottom-reserve:var(--omda-mobile-bottom-nav-visible-reserve);
  }

  .mob-nav,
  .mobile-nav,
  .bottom-nav {
    transition:transform .22s ease,opacity .18s ease;
    will-change:transform;
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 8200;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: end;
    min-height: calc(74px + env(safe-area-inset-bottom));
    padding: 7px 8px calc(8px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(10, 18, 30, .88), rgba(5, 11, 20, .98));
    border-top: 1px solid var(--line, var(--omda-border));
    box-shadow: 0 -18px 44px rgba(2, 8, 23, .34);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  body[data-omda-mobile-nav-state="hidden"] .mob-nav,
  body[data-omda-mobile-nav-state="hidden"] .mobile-nav,
  body[data-omda-mobile-nav-state="hidden"] .bottom-nav{
    transform:translateY(calc(100% + env(safe-area-inset-bottom,0px)));
    opacity:0;
    pointer-events:none;
  }

  body[data-omda-mobile-nav-state="visible"] .mob-nav,
  body[data-omda-mobile-nav-state="visible"] .mobile-nav,
  body[data-omda-mobile-nav-state="locked"] .mob-nav,
  body[data-omda-mobile-nav-state="locked"] .mobile-nav,
  body[data-omda-mobile-nav-state="visible"] .bottom-nav,
  body[data-omda-mobile-nav-state="locked"] .bottom-nav{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

html[data-mode="light"] .mob-nav,
html[data-mode="light"] .mobile-nav,
  html[data-mode="light"] .bottom-nav {
    background: linear-gradient(180deg, rgba(255,255,255,.90), rgba(247,249,252,.98));
    border-top-color: var(--line, rgba(148,163,184,.22));
    box-shadow: 0 -16px 34px rgba(15, 27, 45, .10);
  }

  .mob-nav a,
  .mob-nav button,
  .mobile-nav a,
  .mobile-nav button,
  .bottom-nav a,
  .bottom-nav button {
    min-width: 0;
    min-height: 56px;
    display: grid;
    grid-template-rows: 26px auto;
    place-items: center;
    gap: 3px;
    padding: 6px 4px 2px;
    border: 0;
    border-radius: 16px;
    background: transparent;
    color: var(--text-2, var(--omda-muted));
    font-family:var(--omda-font-ui,"Rubik",system-ui,sans-serif);
    font-size:10px;
    font-weight:700;
    line-height:1.2;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .mob-nav a.active,
  .mob-nav button.active,
  .mob-nav a[aria-current="page"],
  .mobile-nav a.active,
  .mobile-nav button.active,
  .mobile-nav a[aria-current="page"],
  .bottom-nav a.active,
  .bottom-nav button.active,
  .bottom-nav a[aria-current="page"] {
    color:var(--product-accent,var(--a));
  }

  .mob-nav a.active .mn-label,
  .mob-nav a[aria-current="page"] .mn-label,
  .mobile-nav a.active .mn-label,
  .mobile-nav a[aria-current="page"] .mn-label,
  .bottom-nav a.active .mn-label,
  .bottom-nav a[aria-current="page"] .mn-label{
    font-weight:800;
  }

  .mob-nav a:focus-visible,
  .mob-nav button:focus-visible,
  .mobile-nav a:focus-visible,
  .mobile-nav button:focus-visible,
  .bottom-nav a:focus-visible,
  .bottom-nav button:focus-visible{
    outline:0;
    color:var(--product-accent,var(--a));
    background:rgba(var(--product-rgb),.10);
    box-shadow:inset 0 0 0 2px rgba(var(--product-rgb),.34);
  }

  .mob-nav .mn-label,
  .mobile-nav .mn-label,
  .bottom-nav .mn-label{
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .mob-nav .mn-icon,
  .mobile-nav .mn-icon,
  .bottom-nav .mn-icon {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    color: currentColor;
  }

  .mob-nav .mn-icon svg,
  .mobile-nav .mn-icon svg,
  .bottom-nav .mn-icon svg {
    width: 22px;
    height: 22px;
    display: block;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.85;
  }

  .mob-nav a:nth-child(3),
  .mob-nav button:nth-child(3),
  .mob-nav .is-primary,
  .mob-nav .mn-primary,
  .mob-nav .mn-main,
  .mob-nav .nav-plus,
  .mob-nav .quick-add,
  .mobile-nav a:nth-child(3),
  .mobile-nav button:nth-child(3),
  .mobile-nav .is-primary,
  .mobile-nav .mn-primary,
  .mobile-nav .mn-main,
  .mobile-nav .nav-plus,
  .mobile-nav .quick-add,
  .bottom-nav a:nth-child(3),
  .bottom-nav button:nth-child(3),
  .bottom-nav .is-primary,
  .bottom-nav .mn-primary,
  .bottom-nav .mn-main,
  .bottom-nav .nav-plus,
  .bottom-nav .quick-add {
    width: 68px;
    min-height: 74px;
    justify-self: center;
    align-self: start;
    transform: translateY(-20px);
    grid-template-rows: 58px auto;
    gap: 4px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--product-accent, var(--a));
    border: 0;
    box-shadow: none;
    font-size: 10px;
    font-weight: 900;
  }

  .mob-nav a:nth-child(3) .mn-icon,
  .mob-nav button:nth-child(3) .mn-icon,
  .mob-nav .is-primary .mn-icon,
  .mob-nav .mn-primary .mn-icon,
  .mob-nav .mn-main .mn-icon,
  .mob-nav .nav-plus .mn-icon,
  .mob-nav .quick-add .mn-icon,
  .mobile-nav a:nth-child(3) .mn-icon,
  .mobile-nav button:nth-child(3) .mn-icon,
  .mobile-nav .is-primary .mn-icon,
  .mobile-nav .mn-primary .mn-icon,
  .mobile-nav .mn-main .mn-icon,
  .mobile-nav .nav-plus .mn-icon,
  .mobile-nav .quick-add .mn-icon,
  .bottom-nav a:nth-child(3) .mn-icon,
  .bottom-nav button:nth-child(3) .mn-icon,
  .bottom-nav .is-primary .mn-icon,
  .bottom-nav .mn-primary .mn-icon,
  .bottom-nav .mn-main .mn-icon,
  .bottom-nav .nav-plus .mn-icon,
  .bottom-nav .quick-add .mn-icon {
    width: 58px;
    height: 58px;
    border-radius: 19px;
    background: linear-gradient(135deg, var(--product-accent-2, var(--a-2)), var(--product-accent, var(--a)));
    color: var(--a-ink, #2a1d00);
    border: 1px solid rgba(var(--product-rgb), .54);
    box-shadow: 0 13px 30px rgba(var(--product-rgb), .34), 0 0 0 7px rgba(var(--product-rgb), .09);
  }

  .mob-nav a:nth-child(3) .mn-icon svg,
  .mob-nav button:nth-child(3) .mn-icon svg,
  .mob-nav .is-primary .mn-icon svg,
  .mob-nav .mn-primary .mn-icon svg,
  .mob-nav .mn-main .mn-icon svg,
  .mob-nav .nav-plus .mn-icon svg,
  .mob-nav .quick-add .mn-icon svg,
  .mobile-nav a:nth-child(3) .mn-icon svg,
  .mobile-nav button:nth-child(3) .mn-icon svg,
  .mobile-nav .is-primary .mn-icon svg,
  .mobile-nav .mn-primary .mn-icon svg,
  .mobile-nav .mn-main .mn-icon svg,
  .mobile-nav .nav-plus .mn-icon svg,
  .mobile-nav .quick-add .mn-icon svg,
  .bottom-nav a:nth-child(3) .mn-icon svg,
  .bottom-nav button:nth-child(3) .mn-icon svg,
  .bottom-nav .is-primary .mn-icon svg,
  .bottom-nav .mn-primary .mn-icon svg,
  .bottom-nav .mn-main .mn-icon svg,
  .bottom-nav .nav-plus .mn-icon svg,
  .bottom-nav .quick-add .mn-icon svg {
    width: 30px;
    height: 30px;
    stroke-width: 2.35;
  }

  main,
  #pageMain,
  .main-content,
  .omda-page,
  .case-workspace-wrap {
    scroll-padding-bottom: var(--omda-mobile-viewport-bottom-reserve);
  }
}

/* ── Utilities ─────────────────────────────────────────────── */
.flex  { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.field.full, .fg-full { grid-column: 1 / -1; }
.fg-2 { grid-column: span 2; }
.text-muted { color: var(--omda-muted); }

/* ── Icon helpers ──────────────────────────────────────────── */
.icon-lg svg { width: 28px; height: 28px; }


/* =================================================================
   OMDA Shell v2.1 — Brand / Loader / Layout / Product Config / Components
   Central shell systems. Product pages should not implement local versions.
================================================================= */

:root {
  --omda-brand-font: "Heebo", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --omda-brand-font-display: "Heebo", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --omda-loader-logo-size: 118px;
  --omda-loader-compact-logo-size: 56px;
  --omda-dashboard-loader-logo-size: 138px;
  --omda-dashboard-loader-width: 420px;
  --omda-progress-width: 58px;
  --omda-progress-height: 5px;
}

/* ── Brand System ───────────────────────────────────────────── */
.omda-brand,
.omda-brand-lockup,
.omda-loader-brand {
  font-family: var(--omda-brand-font);
}
.omda-brand-lockup {
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.omda-brand-logo {
  width:44px;
  height:44px;
  border-radius:14px;
  object-fit:contain;
  filter: drop-shadow(0 10px 24px rgba(var(--product-rgb), .22));
}
.omda-brand-text {
  display:flex;
  align-items:baseline;
  gap:7px;
  font-family:var(--omda-brand-font-display);
  font-weight:900;
  letter-spacing:-.035em;
  color:var(--omda-text);
  white-space:nowrap;
}
.omda-brand-name { color:var(--product-accent); }
.omda-brand-product { color:var(--omda-text); }


/* =================================================================
   OMDA Shell v5.3 — Global Page / Dashboard Loader Contract
   Two physical loader families only:
   1) .omda-dashboard-loader — premium dashboard/auth splash with title/sub/status.
   2) .omda-page-loader      — compact page loader: rotating logo + dots, no text.
   Runtime IDs (#authLoading/#pageLoader) are behavioral anchors only.
================================================================= */
:root{
  --omda-loader-page-mark-size:96px;
  --omda-loader-page-logo-size:62px;
  --omda-loader-dashboard-mark-size:138px;
  --omda-loader-dashboard-logo-size:96px;
  --omda-loader-dot-size:8px;
}

.omda-page-loader,
.omda-dashboard-loader,
#authLoading.omda-page-loader,
#authLoading.omda-dashboard-loader,
#pageLoader.omda-page-loader{
  position:fixed;
  inset:0;
  z-index:2147483000;
  width:100vw;
  height:100dvh;
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  overflow:hidden;
  pointer-events:auto;
  color:var(--text,var(--omda-text));
  background:var(--bg,var(--omda-bg));
  transition:opacity .34s ease, visibility .34s ease;
}
.omda-page-loader:not(.is-hiding):not(.is-hidden)~#appRoot,
.omda-dashboard-loader:not(.is-hiding):not(.is-hidden)~#appRoot{visibility:hidden;}
.omda-page-loader.is-hiding,
.omda-dashboard-loader.is-hiding,
#authLoading.is-hiding,
#pageLoader.is-hiding{opacity:0;visibility:hidden;pointer-events:none;}
.omda-page-loader.is-hidden,
.omda-dashboard-loader.is-hidden,
#authLoading.is-hidden,
#pageLoader.is-hidden{display:none;}

.omda-loader-brand,
.omda-loader-in{
  position:relative;
  z-index:2;
  display:grid;
  justify-items:center;
  align-items:center;
  text-align:center;
}
.omda-loader-mark{
  position:relative;
  display:grid;
  place-items:center;
  margin:0 auto;
  overflow:visible;
}
.omda-loader-mark::before{
  content:"";
  position:absolute;
  border:2px solid transparent;
  border-top-color:var(--a,var(--product-accent));
  border-inline-end-color:rgba(var(--a-rgb,var(--product-rgb)),.48);
  animation:omdaLoaderSpin 1.05s linear infinite;
  pointer-events:none;
}
.omda-loader-mark::after{
  content:"";
  position:absolute;
  z-index:-1;
  border-radius:999px;
  background:radial-gradient(circle,rgba(var(--a-rgb,var(--product-rgb)),.24),transparent 64%);
  filter:blur(18px);
  pointer-events:none;
}
.omda-loader-logo{
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 12px 26px rgba(0,0,0,.28));
}

/* Regular page loader: logo ring + dots only. No title, subtitle, status, or progress. */
.omda-page-loader{
  gap:16px;
  padding:28px;
  background-image:
    radial-gradient(660px 380px at 50% 38%,rgba(var(--a-rgb,var(--product-rgb)),.12),transparent 62%),
    linear-gradient(180deg,var(--bg,var(--omda-bg)),var(--bg-2,var(--omda-bg)));
}
html[data-mode="light"] .omda-page-loader{
  background-image:
    radial-gradient(660px 380px at 50% 38%,rgba(var(--a-rgb,var(--product-rgb)),.10),transparent 62%),
    linear-gradient(180deg,#f7f9fc,var(--bg,var(--omda-bg)));
}
.omda-page-loader .omda-loader-brand{gap:0;}
.omda-page-loader .omda-loader-mark,
.omda-loader-mark.omda-loader-mark--page{
  width:var(--omda-loader-page-mark-size);
  height:var(--omda-loader-page-mark-size);
  border-radius:26px;
  background:linear-gradient(
    140deg,
    var(--a-2,var(--product-accent-2)),
    var(--a,var(--product-accent))
  );
  box-shadow:
    var(
      --shadow-accent,
      0 8px 28px rgba(var(--product-rgb),.36)
    ),
    0 24px 70px rgba(0,0,0,.34);
}

.omda-page-loader .omda-loader-mark::before,
.omda-loader-mark--page::before{
  inset:-9px;
  border-radius:32px;
}

.omda-page-loader .omda-loader-mark::after,
.omda-loader-mark--page::after{
  inset:-40px;
}

.omda-page-loader .omda-loader-logo,
.omda-loader-mark--page .omda-loader-logo{
  width:var(--omda-loader-page-logo-size);
  height:var(--omda-loader-page-logo-size);
  max-width:var(--omda-loader-page-logo-size);
  max-height:var(--omda-loader-page-logo-size);
  border-radius:18px;
}

.omda-page-loader .omda-loader-title,
.omda-page-loader .omda-loader-sub,
.omda-page-loader .omda-loader-status,
.omda-page-loader .omda-loader-text,
.omda-page-loader .omda-loader-progress{display:none;}

/* Dashboard loader: premium branded splash. Follows theme: dark in dark mode, light in light mode. */
.omda-dashboard-loader{
  gap:16px;
  font-family:var(--omda-font-ui);
  padding:32px 20px;
  color:#f8fafc;
  background:#050b14;
  background-image:
    radial-gradient(circle at 50% 42%,rgba(var(--a-rgb,var(--product-rgb)),.18),transparent 0 220px,transparent 360px),
    radial-gradient(circle at 50% 46%,rgba(0,0,0,.40),transparent 0 260px,transparent 440px),
    linear-gradient(180deg,#07101d,#030812);
}
.omda-dashboard-loader::before{
  content:"";
  position:absolute;
  width:390px;
  height:390px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(var(--a-rgb,var(--product-rgb)),.20),rgba(var(--a-rgb,var(--product-rgb)),.08) 35%,transparent 68%);
  filter:blur(20px);
  opacity:.72;
  transform:translateY(-42px);
  pointer-events:none;
}

html[data-mode="light"] .omda-dashboard-loader{
  color:#0f1b2d;
  background:#f7f9fc;
  background-image:
    radial-gradient(circle at 50% 42%,rgba(var(--a-rgb,var(--product-rgb)),.16),transparent 0 210px,transparent 350px),
    radial-gradient(circle at 50% 46%,rgba(15,27,45,.08),transparent 0 260px,transparent 440px),
    linear-gradient(180deg,#ffffff,#eef1f6);
}
html[data-mode="light"] .omda-dashboard-loader::before{
  background:radial-gradient(circle,rgba(var(--a-rgb,var(--product-rgb)),.18),rgba(var(--a-rgb,var(--product-rgb)),.08) 35%,transparent 68%);
  opacity:.62;
}
html[data-mode="light"] .omda-dashboard-loader .omda-loader-title{
  color:#0f1b2d;
  text-shadow:none;
}
html[data-mode="light"] .omda-dashboard-loader .omda-loader-title .brand,
html[data-mode="light"] .omda-dashboard-loader .omda-loader-sub .accent{
  color:var(--a,var(--product-accent));
  text-shadow:none;
}
html[data-mode="light"] .omda-dashboard-loader .omda-loader-title .product{
  color:#0f1b2d;
  text-shadow:none;
}
html[data-mode="light"] .omda-dashboard-loader .omda-loader-sub{
  color:#37465f;
  text-shadow:none;
}
html[data-mode="light"] .omda-dashboard-loader .omda-loader-status{
  color:#5b6b83;
  text-shadow:none;
}

.omda-dashboard-loader>*{position:relative;z-index:1;}
.omda-dashboard-loader .omda-loader-brand{gap:10px;}
.omda-dashboard-loader .omda-loader-mark{
  width:var(--omda-loader-dashboard-mark-size);
  height:var(--omda-loader-dashboard-mark-size);
  border-radius:34px;
  margin-bottom:10px;
  background:linear-gradient(140deg,var(--a-2,var(--product-accent-2)),var(--a,var(--product-accent)));
  box-shadow:var(--shadow-accent,0 8px 28px rgba(var(--product-rgb),.36)),0 28px 80px rgba(0,0,0,.42);
  animation:omdaLoaderFloat 2.2s ease-in-out infinite;
}
.omda-dashboard-loader .omda-loader-mark::before{inset:-10px;border-radius:40px;}
.omda-dashboard-loader .omda-loader-mark::after{inset:-54px;}
.omda-dashboard-loader .omda-loader-logo{
  width:var(--omda-loader-dashboard-logo-size);
  height:var(--omda-loader-dashboard-logo-size);
  max-width:var(--omda-loader-dashboard-logo-size);
  max-height:var(--omda-loader-dashboard-logo-size);
  border-radius:24px;
}
.omda-dashboard-loader .omda-loader-title{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:9px;
  margin:4px 0 0;
  color:#ffffff;
  text-shadow:0 2px 18px rgba(0,0,0,.42);
  font-family:inherit;
  font-size:clamp(30px,3vw,38px);
  line-height:1;
  font-weight:900;
  letter-spacing:-.05em;
  direction:ltr;
}
.omda-dashboard-loader .omda-loader-title .brand,
.omda-dashboard-loader .omda-loader-sub .accent{color:var(--a,var(--product-accent));text-shadow:0 1px 12px rgba(var(--a-rgb,var(--product-rgb)),.28);}
.omda-dashboard-loader .omda-loader-title .product{color:#ffffff;direction:rtl;text-shadow:0 2px 18px rgba(0,0,0,.46);}
.omda-dashboard-loader .omda-loader-sub{
  max-width:min(460px,calc(100vw - 44px));
  color:#dbe7f6;
  text-shadow:0 1px 12px rgba(0,0,0,.38);
  font-size:15px;
  font-weight:900;
  line-height:1.45;
  text-align:center;
}
.omda-dashboard-loader .omda-loader-status{
  min-height:20px;
  margin-top:2px;
  color:#c7d8ec;
  text-shadow:0 1px 10px rgba(0,0,0,.32);
  font-size:14px;
  font-weight:800;
  text-align:center;
}
.omda-dashboard-loader .omda-loader-progress{display:none;}

.omda-loader-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:12px;
  margin-top:4px;
  direction:ltr;
}
.omda-loader-dots i,
.omda-loader-dots span{
  width:var(--omda-loader-dot-size);
  height:var(--omda-loader-dot-size);
  border-radius:999px;
  background:var(--a,var(--product-accent));
  box-shadow:0 0 14px rgba(var(--a-rgb,var(--product-rgb)),.42);
  animation:omdaLoaderDot 1.16s ease-in-out infinite;
}
.omda-loader-dots i:nth-child(2),
.omda-loader-dots span:nth-child(2){animation-delay:.16s;}
.omda-loader-dots i:nth-child(3),
.omda-loader-dots span:nth-child(3){animation-delay:.32s;}

@keyframes omdaLoaderFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
@keyframes omdaLoaderSpin{to{transform:rotate(360deg);}}
@keyframes omdaLoaderDot{0%,100%{opacity:.34;transform:scale(.72) translateY(0);}42%{opacity:1;transform:scale(1) translateY(-2px);}}

@media(max-width:640px){
  :root{--omda-loader-page-mark-size:86px;--omda-loader-page-logo-size:56px;--omda-loader-dashboard-mark-size:116px;--omda-loader-dashboard-logo-size:80px;}
  .omda-dashboard-loader .omda-loader-title{font-size:30px;}
  .omda-dashboard-loader .omda-loader-sub{font-size:14px;}
}

/* =================================================================
   OMDA Shell v5.3 — Core Modal / Confirm Contract
   Canonical reusable overlay primitives for all OMDA systems.
   Scope: OMDA.modal / OMDA.modal.confirm and .omda-modal-* DOM only.
   Specialized workflow overlays are owned by their dedicated contracts
   and may reuse these primitives without redefining visual shell rules.
================================================================= */
.omda-modal-backdrop{
  position:fixed;
  inset:0;
  display:none;
  place-items:center;
  padding:20px;
  background:rgba(2,8,23,.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  overflow:auto;
  overscroll-behavior:contain;
}
.omda-modal-backdrop{z-index:90000;}
.omda-modal-backdrop.show{display:grid;}
.omda-modal{
  width:min(680px,100%);
  font-family:var(--omda-font-ui);
  max-height:min(760px,92dvh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(17,29,44,.98),rgba(8,18,32,.98));
  border:1px solid var(--omda-border-2,var(--line-2));
  border-radius:var(--omda-r-modal,var(--radius-lg,24px));
  box-shadow:0 30px 90px rgba(0,0,0,.52);
  color:var(--omda-text,var(--text));
}
.omda-modal-head,
.omda-modal-foot{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 20px;
}
.omda-modal-head{justify-content:space-between;border-bottom:1px solid var(--omda-border,var(--line));}
.omda-modal-foot{justify-content:flex-end;border-top:1px solid var(--omda-border,var(--line));}
.omda-modal-title{
  color:var(--omda-text,var(--text));
  font-size:18px;
  font-weight:900;
  line-height:1.25;
}
.omda-modal-subtitle{
  margin-top:3px;
  color:var(--omda-muted,var(--text-2));
  font-family:inherit;
  font-size:12px;
  font-weight:700;
  line-height:1.45;
}
.omda-modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:20px;
  scrollbar-width:thin;
  scrollbar-color:rgba(var(--product-rgb),.42) rgba(8,22,38,.34);
}
.omda-modal-body::-webkit-scrollbar{
  width:8px;
  height:8px;
}
.omda-modal-body::-webkit-scrollbar-track{
  background:rgba(8,22,38,.34);
  border-radius:999px;
}
.omda-modal-body::-webkit-scrollbar-thumb{
  background:linear-gradient(
    180deg,
    rgba(var(--product-rgb),.52),
    rgba(var(--product-rgb),.24)
  );
  border:2px solid transparent;
  border-radius:999px;
  background-clip:padding-box;
}
.omda-modal-body::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(
    180deg,
    rgba(var(--product-rgb),.68),
    rgba(var(--product-rgb),.34)
  );
  border:2px solid transparent;
  background-clip:padding-box;
}
.omda-modal-body::-webkit-scrollbar-button{
  display:none;
  width:0;
  height:0;
}

/* ================================================================
   OMDA SHARED OPERATIONAL FORM CANON v1

   Generic compact operational form composition.
   Shell owns visual structure only; products own labels, values,
   validation, workflow and business semantics.

   Canonical DOM:
   .omda-operational-form
     .omda-operational-intro
     .omda-operational-summary
       .omda-operational-summary-item
     .omda-operational-fields
     .omda-operational-actions
================================================================ */

.omda-operational-form{
  display:grid;
  gap:20px;
  min-width:0;
}

.omda-operational-intro{
  display:grid;
  gap:8px;
}


.omda-operational-title{
  margin:0;
  color:var(--omda-text,var(--text));
  font-size:clamp(20px,2vw,24px);
  font-weight:900;
  line-height:1.25;
}

.omda-operational-copy{
  margin:0;
  color:var(--omda-muted,var(--text-2));
  font-size:14px;
  font-weight:700;
  line-height:1.65;
}

.omda-operational-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 24px;
  padding-block:4px 18px;
  border-bottom:1px solid var(--line,var(--omda-border));
}

.omda-operational-summary-item{
  display:grid;
  grid-template-columns:minmax(96px,auto) minmax(0,1fr);
  align-items:baseline;
  gap:12px;
  min-width:0;
}

.omda-operational-summary-label{
  color:var(--omda-muted-2,var(--text-3));
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}

.omda-operational-summary-value{
  min-width:0;
  color:var(--omda-text,var(--text));
  font-size:17px;
  font-weight:900;
  line-height:1.4;
  overflow-wrap:anywhere;
}

.omda-operational-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 24px;
  min-width:0;
}

.omda-operational-field{
  display:grid;
  gap:7px;
  min-width:0;
}

.omda-operational-field > label,
.omda-operational-field > .omda-operational-label{
  color:var(--omda-text,var(--text));
  font-size:15px;
  font-weight:800;
  line-height:1.4;
}

.omda-operational-field--full{
  grid-column:1 / -1;
}

.omda-operational-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 24px;
  align-items:end;
}

.omda-operational-actions .btn{
  width:100%;
  min-height:54px;
  font-size:16px;
}

@media(max-width:700px){
  .omda-operational-form{
    gap:16px;
  }

  .omda-operational-summary,
  .omda-operational-fields,
  .omda-operational-actions{
    grid-template-columns:1fr;
    gap:13px;
  }

  .omda-operational-summary{
    padding-block-end:15px;
  }

  .omda-operational-summary-item{
    grid-template-columns:1fr;
    gap:4px;
  }

  .omda-operational-summary-value{
    font-size:16px;
  }

  .omda-operational-field--full{
    grid-column:auto;
  }

  .omda-operational-actions .btn{
    min-height:50px;
    font-size:16px;
  }
}


/* ================================================================
   OMDA INLINE STATUS VALUE CANON v1
   Inline value + semantic status mark.
================================================================ */
.omda-inline-status-value{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.omda-inline-status-mark{
  flex:0 0 auto;
  font-weight:900;
  line-height:1;
}

.omda-inline-status-mark.success{
  color:var(--omda-success);
}

.omda-inline-status-mark.danger{
  color:var(--omda-danger);
}


/* ================================================================
   OMDA DETAIL GRID CANON v1

   Ownership: Global Shell.
   Purpose: compact read-only label/value information shared across
   products and consumers.

   Canonical DOM:
   .omda-detail-grid
     .omda-detail-item
       .omda-detail-label
       .omda-detail-value
================================================================ */

.omda-detail-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}

.omda-detail-item {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 14px 15px;
  border: 1px solid
    var(--line, var(--omda-border));
  border-radius: 14px;
  background:
    var(--surface-2, var(--omda-surface-soft));
}

.omda-detail-label {
  color:
    var(--text-3, var(--omda-text-muted));
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
}

.omda-detail-value {
  min-width: 0;
  color:
    var(--text, var(--omda-text));
  font-size: 16px;
  font-weight: 850;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

@media (max-width: 1000px) {
  .omda-detail-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .omda-detail-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .omda-detail-item {
    padding: 13px 14px;
  }

  .omda-detail-value {
    font-size: 15px;
  }
}


/* ================================================================
   OMDA WORK CONTEXT COMPOUND CANON v1

   Ownership: Global Shell.
   Purpose: visually compose an existing leading context surface
   and an existing structured summary as one operational unit.

   Consumers provide semantic parts only.
   Shell owns composition, theme and responsive presentation.
================================================================ */

[data-omda-work-context-part] {
  box-sizing:border-box;
}
/* ================================================================
   OMDA WORK CONTEXT SUMMARY RHYTHM CANON v1

   Ownership: Global Shell.
   Purpose: vertical separation between leading contextual
   read-only information and the professional work surface.
================================================================ */

.omda-work-context-summary {
  width: min(100%, 1040px);
  max-width: 1040px;
  margin-inline: auto;
  margin-block-end: 18px;
  box-sizing: border-box;
}

/* ================================================================
   OMDA Money Tracking Components v1 — 26.10.2026
   Canonical presentation for recording and tracking payments
   (record-keeping only: no charging, refunds or receipts).

   OWNS:
   .omda-money-summary / .omda-money-cell        charge · paid · balance strip
   .omda-segmented                               tabs inside a modal or card
   .omda-amount-field                            large currency amount input
   .omda-choice-chips                            single-choice chip-btn group
   .omda-outcome                                 live "after this action" callout
   .omda-ledger / .omda-ledger-row               history list with row action

   USES: canonical status text tokens (--ok-text, --warn-text,
   --bad-text, --info-text, --omda-accent-text), --omda-font-mono
   for every amount, chip-btn and btn variants for controls.

   DOES NOT OWN: payment semantics, permissions, persistence.
   STATUS: ADDITIVE — no existing primitive is modified.
================================================================ */
/* R4-B4: payment presentation; products provide content and state only. */
.omda-payment-stack{display:grid;gap:16px;}
/* R4-B5: history, pending operations and payment modal frame. */
.omda-payment-history{display:grid;gap:8px;}
.omda-payment-history > .omda-ledger-title{font-size:14px;font-weight:800;}
.omda-payment-pending{display:grid;gap:10px;}
.omda-ledger-row.is-pending{display:grid;gap:7px;}
.omda-payment-actions{display:flex;gap:8px;flex-wrap:wrap;}
.omda-payment-body{display:grid;gap:18px;}
.omda-modal-foot.omda-payment-foot{justify-content:space-between;flex-wrap:wrap;}
.omda-payment-foot-actions{display:flex;gap:10px;flex-wrap:wrap;}
.omda-payment-identity{min-width:0;}
.omda-payment-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.omda-payment-void-actions{display:flex;gap:6px;flex-wrap:wrap;}
.omda-payment-plate{font-family:var(--omda-font-mono);color:var(--omda-text,var(--text));}
.omda-payment-amount{font-family:var(--omda-font-mono);}
.omda-case-payment-stack{display:grid;gap:12px;}
/* R4-B8: composed ledgers span the preview section's item grid. */
.omda-table-detail-ledger{grid-column:1/-1;min-width:0;}
.omda-table-detail-ledger.is-summary-stack{display:grid;gap:10px;}
.omda-field.is-flush{margin:0;}
.omda-money-summary.is-single{grid-template-columns:1fr;}
.omda-outcome-sub.is-emphasis{color:var(--omda-text,var(--text));}
.omda-amount-input.is-compact{min-height:46px;}
.omda-amount-input.is-compact input:not([type="checkbox"]):not([type="radio"]):not([type="file"]){
  min-height:42px;
  font-size:18px;
}

/* R4-B6: price-list editor reuses compact amount and flush field primitives. */
.omda-ledger-row.omda-price-list-row{grid-template-columns:minmax(0,1fr) 140px auto;}
.omda-price-list-body{display:grid;gap:14px;}
.omda-price-list-row .omda-amount-currency{font-size:16px;}
.omda-price-list-row .omda-amount-input.is-compact input:not([type="checkbox"]):not([type="radio"]):not([type="file"]){
  font-size:16px;
}

.omda-money-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  min-width:0;
}
.omda-money-cell{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px 12px;
  border:1px solid var(--omda-border,var(--line));
  border-radius:12px;
  background:rgba(255,255,255,.025);
}
.omda-money-cell > span{
  color:var(--omda-muted,var(--text-2));
  font-size:11px;
  font-weight:800;
  line-height:1.2;
}
.omda-money-cell > strong{
  direction:ltr;
  text-align:right;
  color:var(--omda-text,var(--text));
  font-family:var(--omda-font-mono);
  font-size:17px;
  font-weight:800;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.omda-money-cell.is-ok > strong{color:var(--ok-text,var(--ok));}
.omda-money-cell.is-emphasis{
  border-color:var(--ring);
  background:var(--a-bg,rgba(var(--product-rgb),.12));
}
.omda-money-cell.is-emphasis > span{color:var(--omda-accent-text,var(--a));}
.omda-money-cell.is-emphasis > strong{font-size:24px;}
.omda-money-summary.is-compact{gap:6px;}
.omda-money-summary.is-compact .omda-money-cell{padding:8px 10px;}
.omda-money-summary.is-compact .omda-money-cell > strong,
.omda-money-summary.is-compact .omda-money-cell.is-emphasis > strong{font-size:14px;}
html[data-mode="light"] .omda-money-cell{background:rgba(15,27,45,.025);}
html[data-mode="light"] .omda-money-cell.is-emphasis{background:var(--a-bg,rgba(var(--product-rgb),.14));}

.omda-segmented{
  display:grid;
  grid-auto-columns:minmax(0,1fr);
  grid-auto-flow:column;
  gap:4px;
  padding:4px;
  border:1px solid var(--omda-border,var(--line));
  border-radius:var(--omda-r-btn,13px);
  background:var(--surface,var(--omda-surface));
}
.omda-segmented > button{
  min-height:38px;
  padding:0 12px;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:var(--omda-muted,var(--text-2));
  font-family:var(--omda-font-ui);
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.omda-segmented > button:hover{color:var(--omda-text,var(--text));}
.omda-segmented > button[aria-selected="true"]{
  border-color:var(--ring);
  background:var(--a-bg,rgba(var(--product-rgb),.12));
  color:var(--omda-accent-text,var(--a));
  font-weight:800;
}
.omda-segmented > button:focus-visible{outline:0;box-shadow:var(--omda-emphasis-focus-ring);}

.omda-amount-field{display:flex;gap:8px;min-width:0;}
.omda-amount-input{
  flex:1 1 auto;
  min-width:0;
  min-height:56px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 14px;
  border:1.5px solid var(--line-2,var(--omda-border-2));
  border-radius:var(--omda-form-input-radius,13px);
  background:var(--surface,var(--omda-surface));
  transition:border-color .14s,box-shadow .14s;
}
.omda-amount-input:focus-within{border-color:rgba(var(--product-rgb),.6);box-shadow:var(--omda-emphasis-focus-ring);}
.omda-amount-currency{color:var(--omda-muted,var(--text-2));font-size:20px;font-weight:700;flex:0 0 auto;}
/* :not() chain matches the Form / Input Contract selector weight so the
   bare amount input wins over the generic field input chrome. */
.omda-amount-input input:not([type="checkbox"]):not([type="radio"]):not([type="file"]){
  flex:1 1 auto;
  min-width:0;
  width:100%;
  min-height:52px;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:none;
  direction:ltr;
  text-align:right;
  color:var(--omda-text,var(--text));
  font-family:var(--omda-font-mono);
  font-size:24px;
  font-weight:800;
  color-scheme:dark;
}
.omda-amount-input input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus{border:0;box-shadow:none;outline:0;}
html[data-mode="light"] .omda-amount-input input:not([type="checkbox"]):not([type="radio"]):not([type="file"]){color-scheme:light;background:transparent;border:0;box-shadow:none;}
.omda-amount-field > .btn{min-height:56px;height:56px;flex:0 0 auto;}
.omda-amount-field.is-invalid .omda-amount-input{border-color:var(--bad);}
.omda-amount-hint{margin-top:6px;color:var(--omda-muted,var(--text-2));font-size:12px;font-weight:700;line-height:1.45;}
.omda-amount-hint.is-warn{color:var(--warn-text,var(--warn));}
.omda-amount-hint.is-bad{color:var(--bad-text,var(--bad));}

.omda-choice-chips{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.omda-choice-chips .chip-btn{
  width:100%;
  min-width:0;
  padding:0 10px;
  border-color:var(--line-2,var(--omda-border-2));
  background:rgba(255,255,255,.045);
  color:var(--omda-text,var(--text));
  font-weight:700;
}
.omda-choice-chips .chip-btn:hover{border-color:rgba(var(--product-rgb),.32);}
.omda-choice-chips .chip-btn[aria-checked="true"]{
  border-color:var(--ring);
  background:var(--a-bg,rgba(var(--product-rgb),.12));
  box-shadow:0 0 0 1px var(--ring);
  color:var(--omda-accent-text,var(--a));
  font-weight:800;
}
html[data-mode="light"] .omda-choice-chips .chip-btn{background:var(--card-solid,#fff);}
html[data-mode="light"] .omda-choice-chips .chip-btn[aria-checked="true"]{background:var(--a-bg,rgba(var(--product-rgb),.14));}
/* v1.1 two-line chips: a long label over a short value (price-list items: name / price). */
.omda-choice-chips.is-two-line{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}
.omda-choice-chips.is-two-line .chip-btn{height:auto;min-height:56px;padding:8px 12px;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;white-space:normal;text-align:right;line-height:1.3;}
.omda-choice-chips.is-two-line .omda-choice-chip-label{font-size:13px;overflow-wrap:anywhere;}
.omda-choice-chips.is-two-line .omda-choice-chip-value{direction:ltr;font-family:var(--omda-font-mono);font-size:12px;font-weight:800;color:var(--omda-muted,var(--text-2));}
.omda-choice-chips.is-two-line .chip-btn[aria-checked="true"] .omda-choice-chip-value{color:inherit;}

.omda-outcome{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid var(--omda-border,var(--line));
  border-radius:14px;
  background:rgba(255,255,255,.025);
}
.omda-outcome-main{display:flex;align-items:center;gap:10px;min-width:0;}
.omda-outcome-icon{
  width:32px;
  height:32px;
  flex:0 0 32px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(148,163,184,.10);
  color:var(--omda-muted,var(--text-2));
}
.omda-outcome-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;}
.omda-outcome-title{color:var(--omda-text,var(--text));font-size:13px;font-weight:800;line-height:1.35;}
.omda-outcome-sub{color:var(--omda-muted,var(--text-2));font-size:12px;font-weight:600;line-height:1.45;}
.omda-outcome-figure{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;}
.omda-outcome-figure > span{color:var(--omda-muted,var(--text-2));font-size:11px;font-weight:800;}
.omda-outcome-figure > strong{direction:ltr;font-family:var(--omda-font-mono);font-size:18px;font-weight:800;color:var(--omda-text,var(--text));}
.omda-outcome.is-ok{border-color:var(--ok-bg);background:var(--ok-bg);}
.omda-outcome.is-ok :is(.omda-outcome-icon,.omda-outcome-title,.omda-outcome-figure > strong){color:var(--ok-text,var(--ok));}
.omda-outcome.is-ok .omda-outcome-icon{background:var(--ok-bg);}
.omda-outcome.is-accent{border-color:rgba(var(--product-rgb),.24);background:var(--a-bg,rgba(var(--product-rgb),.12));}
.omda-outcome.is-accent :is(.omda-outcome-icon,.omda-outcome-title,.omda-outcome-figure > strong){color:var(--omda-accent-text,var(--a));}
.omda-outcome.is-accent .omda-outcome-icon{background:var(--a-bg,rgba(var(--product-rgb),.12));}
.omda-outcome.is-warn{border-color:var(--warn-bg);background:var(--warn-bg);}
.omda-outcome.is-warn :is(.omda-outcome-icon,.omda-outcome-title){color:var(--warn-text,var(--warn));}

.omda-ledger{
  display:flex;
  flex-direction:column;
  min-width:0;
  border:1px solid var(--omda-border,var(--line));
  border-radius:14px;
  overflow:hidden;
}
.omda-ledger-row{
  display:grid;
  grid-template-columns:96px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  border-bottom:1px solid var(--omda-border,var(--line));
  background:rgba(255,255,255,.025);
}
.omda-ledger-row:last-child{border-bottom:0;}
.omda-ledger-amount{
  direction:ltr;
  text-align:right;
  color:var(--omda-text,var(--text));
  font-family:var(--omda-font-mono);
  font-size:14px;
  font-weight:800;
}
.omda-ledger-body{display:flex;flex-direction:column;gap:2px;min-width:0;}
.omda-ledger-title{color:var(--omda-text,var(--text));font-size:13px;font-weight:700;line-height:1.35;overflow-wrap:anywhere;}
.omda-ledger-meta{color:var(--omda-muted,var(--text-2));font-size:12px;font-weight:600;line-height:1.4;overflow-wrap:anywhere;}
.omda-ledger-tag{
  display:inline-flex;
  align-items:center;
  margin-inline-start:6px;
  padding:1px 8px;
  border-radius:999px;
  background:rgba(148,163,184,.10);
  color:var(--omda-muted,var(--text-2));
  font-size:11px;
  font-weight:700;
  vertical-align:1px;
}
.omda-ledger-row.is-voided .omda-ledger-amount{text-decoration:line-through;color:var(--omda-muted,var(--text-2));}
.omda-ledger-row.is-voided .omda-ledger-tag{background:var(--bad-bg);color:var(--bad-text,var(--bad));}
.omda-ledger-row .btn-sm{--omda-button-height:34px;}
.omda-ledger .btn.omda-ledger-void{color:var(--bad-text,var(--bad));}
.omda-ledger-empty{padding:14px;color:var(--omda-muted,var(--text-2));font-size:13px;font-weight:600;text-align:center;}
.omda-ledger.is-compact .omda-ledger-row{grid-template-columns:76px minmax(0,1fr);padding:9px 12px;}
html[data-mode="light"] .omda-ledger-row{background:rgba(15,27,45,.025);}

@media(max-width:560px){
  .omda-money-cell.is-emphasis > strong{font-size:20px;}
  .omda-choice-chips{grid-template-columns:repeat(2,minmax(0,1fr));}
  .omda-amount-field{flex-wrap:wrap;}
  .omda-amount-field > .btn{width:100%;height:46px;min-height:46px;}
  .omda-ledger-row{grid-template-columns:minmax(0,1fr) auto;}
  .omda-ledger-row .omda-ledger-amount{grid-column:1 / -1;text-align:right;}
  .omda-ledger.is-compact .omda-ledger-row{grid-template-columns:minmax(0,1fr);}
  .omda-outcome{flex-wrap:wrap;}
}
@media(max-width:380px){
  .omda-money-summary{grid-template-columns:1fr;}
}

.omda-modal-close{
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid var(--omda-border,var(--line));
  background:rgba(255,255,255,.04);
  color:var(--omda-muted,var(--text-2));
  cursor:pointer;
  display:grid;
  place-items:center;
}
.omda-modal-close:hover{color:var(--omda-text,var(--text));border-color:var(--omda-border-2,var(--line-2));}
.omda-confirm-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
@media(max-width:640px){
  .omda-modal-backdrop{padding:14px;}
  .omda-modal{width:100%;max-height:calc(100dvh - 28px);}
  .omda-modal-head,
  .omda-modal-body,
  .omda-modal-foot{padding-inline:16px;}
  .omda-modal-foot,
  .omda-confirm-btns{flex-direction:column-reverse;align-items:stretch;}
  .omda-modal-foot .btn,
  .omda-confirm-btns .btn{width:100%;}
}
html[data-mode="light"] .omda-modal-backdrop{background:rgba(15,27,45,.32);}
html[data-mode="light"] .omda-modal{
  background:var(--card-solid,#fff);
  color:var(--text,#0f1b2d);
  box-shadow:0 24px 70px rgba(15,27,45,.18);
}

html[data-mode="light"] .omda-modal-body{
  scrollbar-color:rgba(var(--product-rgb),.38) rgba(226,232,240,.88);
}
html[data-mode="light"] .omda-modal-body::-webkit-scrollbar-track{
  background:rgba(226,232,240,.88);
}



/* =================================================================
   OMDA Shell v5.3 — AppFooter + WhatsApp Contract
   Single source of truth for the legal page footer and floating WA action.
   Desktop/tablet: footer is rendered in #pageMain.
   Mobile: footer is hidden; bottom mobile nav is the operational footer.
================================================================= */
.omda-footer{
  --omda-footer-bg:linear-gradient(180deg,rgba(13,17,23,.98),rgba(8,13,22,.96));
  --omda-footer-border:rgba(255,255,255,.07);
  --omda-footer-text:var(--text-3,var(--omda-muted-2));
  --omda-footer-link:var(--text-2,var(--omda-muted));
  --omda-footer-sep:rgba(148,163,184,.55);
  --omda-footer-shadow:none;
  flex:0 0 auto;width:auto;padding:20px 32px;text-align:center;font-size:12px;font-weight:700;color:var(--omda-footer-text);background:var(--omda-footer-bg);border-top:1px solid var(--omda-footer-border);box-shadow:var(--omda-footer-shadow);
}
#pageMain > .omda-footer{margin:44px -32px -96px;}
.omda-footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 8px;margin-bottom:10px;}
.omda-footer a{color:var(--omda-footer-link);text-decoration:none;transition:color .18s ease;}
.omda-footer a:hover{color:var(--product-accent,var(--a));}
.omda-footer-sep{color:var(--omda-footer-sep);}
.omda-footer-brand{display:inline-flex;align-items:center;justify-content:center;gap:8px;direction:ltr;color:var(--omda-footer-link);}
.omda-footer-brand img{width:52px;height:52px;object-fit:contain;vertical-align:middle;}
html[data-mode="light"] .omda-footer{
  --omda-footer-bg:linear-gradient(180deg,rgba(255,255,255,.88),rgba(247,249,252,.94));
  --omda-footer-border:var(--line,var(--omda-border));
  --omda-footer-text:var(--text-3,var(--omda-muted-2));
  --omda-footer-link:var(--text-2,var(--omda-muted));
  --omda-footer-sep:rgba(71,85,105,.48);
  --omda-footer-shadow:0 -10px 28px rgba(15,27,45,.055);
}
body.omda-global-floats-suppressed [data-omda-global-float]{
  display:none;
}
.omda-wa-float{position:fixed;bottom:24px;left:24px;z-index:8000;display:flex;flex-direction:column;align-items:flex-start;gap:8px;direction:rtl;}
.omda-wa-tooltip{display:none;white-space:nowrap;padding:8px 12px;border-radius:12px;font-size:12px;font-weight:700;font-family:inherit;color:#f9fafb;background:#1f2937;border:1px solid rgba(37,211,102,.30);box-shadow:0 4px 16px rgba(0,0,0,.40);animation:omda-wa-tooltip-in .3s ease;}
.omda-wa-tooltip.show{display:block;}
@keyframes omda-wa-tooltip-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.omda-wa-btn{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;border:0;cursor:pointer;text-decoration:none;background:#25d366;box-shadow:0 4px 18px rgba(37,211,102,.45);transition:transform .18s ease,box-shadow .18s ease;}
.omda-wa-btn:hover{transform:scale(1.08);box-shadow:0 6px 24px rgba(37,211,102,.55);}
.omda-wa-btn svg{display:block;width:28px;height:28px;min-width:28px;min-height:28px;max-width:28px;max-height:28px;flex:0 0 28px;fill:#fff;}
@media(max-width:1199.98px){#pageMain > .omda-footer{margin:36px -20px -92px;padding-inline:20px;}}
@media (max-width:799.98px){.omda-footer{display:none;}.omda-wa-float{left:16px;bottom:calc(90px + env(safe-area-inset-bottom));align-items:flex-start;}}


/* =================================================================
   OMDA Shell v2.1 — Global Support Page
   Product-specific content is supplied via OMDA_AUTO.SUPPORT / PRODUCT_CONFIG.
================================================================= */
.omda-support-page {
  width: min(680px, 100%);
  margin: 0 auto;
  padding: 8px 0 24px;
  font-family: var(--omda-font-ui);
}
.omda-support-hero {
  text-align: center;
  margin-bottom: 30px;
}
.omda-support-hero-icon {
  width: 72px;
  height: 72px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(var(--product-rgb), .18), rgba(var(--product-rgb), .055));
  border: 1px solid rgba(var(--product-rgb), .25);
  color: var(--product-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  box-shadow: 0 14px 36px rgba(var(--product-rgb), .10), inset 0 1px 0 rgba(255,255,255,.06);
}
.omda-support-hero-icon svg {
  width: 34px;
  height: 34px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
}
.omda-support-title {
  font-family: var(--omda-font-ui);
  font-size: clamp(25px, 3.4vw, 34px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.02em;
  margin: 0 0 8px;
  color: var(--omda-text);
}
.omda-support-subtitle {
  max-width: 430px;
  margin: 0 auto;
  color: var(--omda-muted);
  font-size: 14px;
  line-height: 1.7;
  font-weight: 400;
}
.omda-support-card {
  background: linear-gradient(180deg, rgba(17,29,44,.96), rgba(8,18,32,.96));
  border: 1px solid var(--omda-border);
  border-radius: var(--omda-r-card);
  box-shadow: var(--omda-shadow-card);
  padding: 24px;
  margin-bottom: 16px;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.omda-support-card:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--product-rgb), .28);
  box-shadow: 0 16px 48px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.04);
}
.omda-support-card.is-wa {
  border-top: 3px solid #25d366;
}

html[data-mode="light"] .omda-support-card,
body[data-mode="light"] .omda-support-card {
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,253,.96));
  box-shadow: 0 12px 34px rgba(15,27,45,.08), inset 0 1px 0 rgba(255,255,255,.72);
}

html[data-mode="light"] .omda-support-card:hover,
body[data-mode="light"] .omda-support-card:hover {
  box-shadow: 0 16px 42px rgba(15,27,45,.12), inset 0 1px 0 rgba(255,255,255,.82);
}
.omda-support-hours {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(16,185,129,.10);
  border: 1px solid rgba(16,185,129,.26);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 800;
  color: #34d399;
  margin-bottom: 16px;
}
.omda-support-hours-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10b981;
  animation: omdaSupportPulse 2s infinite;
}
@keyframes omdaSupportPulse { 0%,100%{opacity:1} 50%{opacity:.4} }
.omda-support-card-title {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 7px;
  color: var(--omda-text);
}
.omda-support-card-title svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  fill: none;
}
.omda-support-card-sub {
  color: var(--omda-muted);
  font-size: 13px;
  line-height: 1.65;
  margin-bottom: 18px;
  font-weight: 400;
}
.omda-support-wa-btn,
.omda-support-wa-custom {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  border: 0;
  border-radius: 14px;
  background: #25d366;
  color: #fff;
  font-family: var(--omda-font-ui);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  padding: 14px 20px;
  box-shadow: 0 4px 18px rgba(37,211,102,.33);
  transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease;
}
.omda-support-wa-btn:hover,
.omda-support-wa-custom:hover {
  opacity: .92;
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(37,211,102,.42);
}
.omda-support-wa-btn svg,
.omda-support-wa-custom svg {
  width: 22px;
  height: 22px;
  fill: #fff;
  flex-shrink: 0;
}
.omda-support-msg-builder { margin-top: 16px; }
.omda-support-label {
  font-size: 11px;
  font-weight: 800;
  color: var(--omda-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 8px;
}
.omda-support-textarea {
  width: 100%;
  min-height: 92px;
  resize: vertical;
  direction: rtl;
  background: rgba(7,14,24,.82);
  border: 1.5px solid var(--omda-border-2);
  border-radius: var(--omda-r-input);
  color: var(--omda-text);
  outline: 0;
  padding: 12px 14px;
  font-size: 14px;
  font-family: var(--omda-font-ui);
  line-height: 1.55;
  margin-bottom: 12px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.omda-support-textarea:focus {
  border-color: rgba(var(--product-rgb), .58);
  box-shadow: 0 0 0 3px rgba(var(--product-rgb), .12);
}
.omda-support-section-title {
  font-size: 11px;
  font-weight: 900;
  color: var(--omda-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 28px 0 12px;
}
.omda-support-faq-item {
  border-bottom: 1px solid var(--omda-border);
  padding: 16px 0;
}
.omda-support-faq-item:last-child { border-bottom: 0; padding-bottom: 0; }
.omda-support-faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  user-select: none;
  font-size: 14px;
  font-weight: 800;
  color: var(--omda-text);
  transition: color .16s ease;
}
.omda-support-faq-q:hover { color: var(--product-accent); }
.omda-support-faq-chevron {
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  color:var(--omda-muted);
  transition:transform .2s ease;
  flex:0 0 18px;
}
.omda-support-faq-chevron svg{
  display:block;
  width:18px;
  height:18px;
  stroke:currentColor;
  fill:none;
}
.omda-support-faq-item.open .omda-support-faq-chevron { transform: rotate(180deg); }
.omda-support-faq-a {
  max-height: 0;
  overflow: hidden;
  color: var(--omda-muted);
  font-size: 13px;
  line-height: 1.7;
  transition: max-height .28s ease, padding-top .18s ease;
}
.omda-support-faq-item.open .omda-support-faq-a {
  max-height: 320px;
  padding-top: 10px;
}
@media (max-width:799.98px) {
  .omda-support-page { padding-top: 4px; }
  .omda-support-card { padding: 20px; }
}


.omda-chart-wrap {
  padding: 18px 20px 14px;
}

.omda-chart-hint,
.omda-chart-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border-radius: 10px;
  border: 1px solid var(--omda-border);
  background: rgba(255,255,255,.035);
}

/* R4-B7: overview loading placeholders; fixed presentation lives in Shell. */
.omda-overview-skeleton__block{
  display:block;border-radius:6px;background:currentColor;opacity:.08;
  animation:omda-blink 1.6s ease-in-out infinite;
}
.omda-overview-skeleton__chart{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;height:180px;padding:8px 4px 0;}
.omda-overview-skeleton__bar{flex:1;}
.omda-overview-skeleton__bar.is-height-46{height:46%;}
.omda-overview-skeleton__bar.is-height-72{height:72%;}
.omda-overview-skeleton__bar.is-height-58{height:58%;}
.omda-overview-skeleton__bar.is-height-88{height:88%;}
.omda-overview-skeleton__bar.is-height-64{height:64%;}
.omda-overview-skeleton__bar.is-height-80{height:80%;}
.omda-overview-skeleton__stats{display:flex;gap:12px;margin-top:16px;}
.omda-overview-skeleton__stat{flex:1;height:44px;}
.omda-overview-skeleton__row{display:flex;align-items:center;gap:12px;padding:10px 0;}
.omda-overview-skeleton__avatar{width:36px;height:36px;border-radius:10px;flex:none;}
.omda-overview-skeleton__copy{flex:1;display:flex;flex-direction:column;gap:6px;}
.omda-overview-skeleton__title{width:55%;height:12px;}
.omda-overview-skeleton__line{width:80%;height:10px;}
.omda-overview-skeleton__badge{width:64px;height:22px;border-radius:11px;flex:none;}
.omda-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

.omda-chart-toggle {
  flex:0 0 auto;
}

.omda-chart-toggle-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--omda-muted);
  font-family: "Heebo", sans-serif;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
  transition:
    background .18s ease,
    color .18s ease,
    box-shadow .18s ease;
}

.omda-chart-toggle-btn:hover {
  color: var(--omda-text);
  background: rgba(255,255,255,.05);
}

.omda-chart-toggle-btn.is-active,
.omda-chart-toggle-btn[aria-pressed="true"] {
  color: var(--omda-text);
  background: rgba(var(--product-rgb),.13);
  box-shadow:
    inset 0 0 0 1px
    rgba(var(--product-rgb),.18);
}

.omda-chart-toggle-btn:focus-visible {
  outline: 2px solid var(--product-accent);
  outline-offset: 2px;
}

.omda-chart-dot {
  width: 8px;
  height: 8px;
  border-radius: 3px;
  display: inline-block;
  flex: 0 0 auto;
}

.omda-chart-dot.cases {
  background: rgba(var(--product-rgb),.92);
}

.omda-chart-dot.money {
  background: rgba(16,185,129,.86);
}

.omda-chart-bars {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 140px;
  border-bottom: 1px solid var(--omda-border);
}

.omda-chart-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.omda-chart-group {
  width: 100%;
  height: 130px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.omda-chart-bar {
  width: min(42px, 72%);
  height: var(--omda-chart-height, 0%);
  min-height: 4px;
  flex: 0 0 auto;
  border-radius: 6px 6px 0 0;
  cursor: pointer;
  transition:
    opacity .18s ease,
    transform .18s ease,
    height .24s ease;
}

.omda-chart-bar:hover {
  opacity: .86;
  transform: translateY(-1px);
}

.omda-chart-bar.cases {
  background:
    linear-gradient(
      180deg,
      rgba(var(--product-rgb),.92),
      rgba(var(--product-rgb),.48)
    );
}

.omda-chart-bar.money {
  background:
    linear-gradient(
      180deg,
      rgba(16,185,129,.86),
      rgba(16,185,129,.40)
    );
}

.omda-chart-wrap[data-chart-mode="cases"]
.omda-chart-bar.money {
  display: none;
}

.omda-chart-wrap[data-chart-mode="money"]
.omda-chart-bar.cases {
  display: none;
}

.omda-chart-label {
  font-size: 10px;
  color: var(--omda-muted-2);
  font-weight: 800;
  white-space: nowrap;
}

.omda-chart-totals {
  display: flex;
  gap: 18px;
  padding-top: 14px;
  flex-wrap: wrap;
}
.omda-chart-total { display:flex; flex-direction:column; gap:2px; }
.omda-chart-total-label { font-size:10px; font-weight:800; color:var(--omda-muted); text-transform:uppercase; letter-spacing:.04em; }
.omda-chart-total-value { font-family:"Frank Ruhl Libre",serif; font-size:22px; font-weight:900; color:var(--omda-text); }
.omda-chart-total-value.accent { color: var(--product-accent); }
.omda-chart-total-value.success { color: #34d399; }





/* ═══════════════════════════════════════════════════════════════
   SHELL ACTION WAIT LOADER — delayed busy overlay
   Shows only for actions that take longer than 500ms.
═══════════════════════════════════════════════════════════════ */
.omda-wait-overlay {
  position: fixed;
  inset: 0;
  z-index: 94000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(2, 8, 23, .42);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  pointer-events: auto;
}
.omda-wait-overlay.show { display: flex; }
.omda-wait-card {
  min-width: min(280px, calc(100vw - 44px));
  max-width: 420px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(var(--product-rgb), .28);
  background: linear-gradient(180deg, rgba(17, 29, 44, .98), rgba(8, 18, 32, .98));
  box-shadow: 0 24px 70px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.05);
}
.omda-wait-spinner {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 3px solid rgba(148,163,184,.18);
  border-top-color: var(--product-accent);
  animation: omdaWaitSpin .82s linear infinite;
  flex: 0 0 auto;
}
.omda-wait-text {
  min-width: 0;
  color: var(--omda-text);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.35;
}
.omda-wait-sub {
  margin-top: 2px;
  color: var(--omda-muted);
  font-size: 11px;
  font-weight: 700;
}
@keyframes omdaWaitSpin { to { transform: rotate(360deg); } }
@media (max-width: 640px) {
  .omda-wait-card {
    width: 100%;
    justify-content: flex-start;
  }
}


/* ═══════════════════════════════════════════════════════════════
   SHELL INLINE WAIT LOADER — scoped loader inside a component
   Used for image/upload boxes, table regions, cards and small panels.
═══════════════════════════════════════════════════════════════ */
.omda-inline-wait-target {
  position: relative;
  overflow: hidden;
}
.omda-inline-wait {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  text-align: center;
  color: var(--omda-text);
  background: linear-gradient(180deg, rgba(8,18,32,.86), rgba(3,11,22,.92));
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border-radius: inherit;
}
.omda-inline-wait-spinner {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 3px solid rgba(148,163,184,.20);
  border-top-color: var(--product-accent);
  animation: omdaWaitSpin .82s linear infinite;
}
.omda-inline-spinner {
  width: 14px;
  height: 14px;
  display: inline-block;
  flex: 0 0 auto;
  border-radius: 999px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  animation: omdaWaitSpin .82s linear infinite;
}
.omda-inline-wait-text {
  font-size: 12px;
  font-weight: 900;
  color: var(--omda-text);
}


/* ═══════════════════════════════════════════════════════════════
   SHELL SAVE TOAST — global auto-save status
   Bottom-centered, semi-transparent, non-blocking.
═══════════════════════════════════════════════════════════════ */
.omda-save-toast {
  position: fixed;
  font-family:var(--omda-font-ui);
  left: 50%;
  bottom: 28px;
  transform: translate(-50%, 12px);
  z-index: 1200;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 38px;
  padding: 9px 16px;
  border-radius: 999px;
  color: var(--omda-text);
  background: rgba(5, 11, 20, .58);
  border: 1px solid rgba(148, 163, 184, .18);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .05);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
/*
 * Save Toast light presentation 09D.
 * Same canonical autosave component; Light mode receives
 * a light tonal surface instead of the Dark fixed surface.
 */
html[data-mode="light"] .omda-save-toast,
body[data-mode="light"] .omda-save-toast {
  color:var(--text, #162033);
  background:
    color-mix(
      in srgb,
      var(--card-solid, #fff) 90%,
      transparent
    );
  border-color:
    var(--line-2, rgba(22,32,51,.14));
  box-shadow:
    0 12px 34px rgba(15,27,45,.14),
    inset 0 1px 0 rgba(255,255,255,.72);
}
.omda-save-toast.show {
  opacity: .92;
  transform: translate(-50%, 0);
}
.omda-save-toast-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--omda-muted-2);
  flex-shrink: 0;
}
.omda-save-toast-text {
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.omda-save-toast.saving .omda-save-toast-dot {
  background: var(--product-accent);
  animation: omda-blink 1s infinite;
}
.omda-save-toast.saved .omda-save-toast-dot {
  background: var(--omda-success);
}
.omda-save-toast.error .omda-save-toast-dot {
  background: var(--omda-danger);
}
.omda-save-toast.error {
  border-color: rgba(239, 68, 68, .34);
}
@media (max-width: 700px) {
  .omda-save-toast {
    bottom: 84px;
    max-width: calc(100vw - 32px);
  }
}

/* ═══════════════════════════════════════════════════════════════
   OMDA Shell v5.3 — Toast / Notices Contract
   Canonical notice surfaces only. Functional owners remain separate:
   Validation Shell = validation/offline transport, Behavior Layer = save status,
   PageShells = lightweight page notices.
═══════════════════════════════════════════════════════════════ */
.omda-ps-toast-host{
  position:fixed;
  top:86px;
  left:24px;
  z-index:125000;
  display:grid;
  gap:10px;
  width:min(360px,calc(100vw - 32px));
  pointer-events:none;
  direction:rtl;
}
.omda-ps-toast{
  display:grid;
  gap:3px;
  min-height:42px;
  padding:11px 13px;
  border-radius:14px;

  color:var(
    --text,
    var(--omda-text)
  );

  background:var(
    --card-solid,
    var(--omda-surface)
  );

  border:1px solid var(
    --line-2,
    var(--omda-border-2)
  );

  box-shadow:var(
    --omda-shadow-soft,
    var(--omda-shadow)
  );

  font-family:var(--omda-font-ui);

  font-size:var(
    --omda-type-role-body-size
  );

  font-weight:var(
    --omda-type-role-body-weight
  );

  line-height:var(
    --omda-type-role-body-leading
  );

  pointer-events:auto;
}

.omda-ps-toast .sub{
  display:block;

  color:var(
    --text-2,
    var(--omda-muted)
  );

  font-family:var(--omda-font-ui);

  font-size:var(
    --omda-type-role-secondary-size
  );

  font-weight:var(
    --omda-type-role-secondary-weight
  );

  line-height:var(
    --omda-type-role-secondary-leading
  );
}

.omda-ps-toast.neutral{
  background:var(
    --card-solid,
    var(--omda-surface)
  );

  border-color:var(
    --line-2,
    var(--omda-border-2)
  );
}

.omda-ps-toast.success,
.omda-ps-toast.saved{
  background:
    color-mix(
      in srgb,
      var(--omda-success) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-success) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

.omda-ps-toast.error,
.omda-ps-toast.danger{
  background:
    color-mix(
      in srgb,
      var(--omda-danger) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-danger) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

.omda-ps-toast.warning,
.omda-ps-toast.warn{
  background:
    color-mix(
      in srgb,
      var(--omda-warning) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-warning) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

.omda-ps-toast.info{
  background:
    color-mix(
      in srgb,
      var(--omda-info) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-info) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

@media(max-width:700px){.omda-ps-toast-host{top:auto;left:16px;right:16px;bottom:88px;width:auto;}}

/* ═══════════════════════════════════════════════════════════════
   GLOBAL ROW ACTIONS — v2.2
   Product-agnostic 3-dot menus for operational tables.
   Desktop: visible on row hover/focus. Mobile: always visible.
═══════════════════════════════════════════════════════════════ */
.omda-row-actions-cell,
.omda-mob-menu {
  position: relative;
  width: 44px;
  text-align: center;
  white-space: nowrap;
}
.omda-row-actions-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.omda-row-actions-btn {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: var(--omda-surface, var(--surface));
  color: var(--omda-muted-2, var(--text-3));
  cursor: pointer;
  font-size: 19px;
  font-weight: 900;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  transition:
    opacity .15s,
    transform .15s,
    color .15s,
    border-color .15s,
    background .15s;
  -webkit-tap-highlight-color: transparent;
}

.omda-row-actions-btn:hover,
.omda-row-actions-btn:focus-visible,
.omda-row-actions-btn.is-open {
  color: var(--omda-text);
  border-color: var(--omda-border-2, var(--line-2));
  background: var(--omda-surface-2, var(--card-hi));
  outline: 0;
}
.omda-row-actions-wrap--always-visible .omda-row-actions-btn {
  opacity: 1;
  transform: none;
}
@media (min-width:1200.01px) {
  .omda-row-actions-btn {
    opacity: 0;
    transform: translateX(-4px);
  }

  tr:hover .omda-row-actions-btn,
  .omda-row-actions-cell:focus-within .omda-row-actions-btn,
  .omda-row-actions-btn.is-open {
    opacity: 1;
    transform: none;
  }
}

@media (max-width:1200px) {
  .omda-row-actions-btn {
    opacity: 1;
    transform: none;
  }
}
/* ═══════════════════════════════════════════════════════════════
   OMDA Shell v5.3 — Dropdown / Menu Contract
   Canonical: .omda-dropdown-*.
   Supported alias: .omda-row-actions-menu used by row-action renderers.
   CaseHero portal menu is owned by CaseHero and remains mapped separately.
   (.omda-menu-wrap / .omda-menu-btn retired 04.11.2026: no consumer.)
═══════════════════════════════════════════════════════════════ */
.omda-dropdown,.omda-row-actions-menu{position:fixed;z-index:120000;display:none;min-width:190px;max-width:min(280px,calc(100vw - 24px));padding:7px;direction:rtl;font-family:var(--omda-font-ui);background:linear-gradient(180deg,rgba(17,27,42,.99),rgba(8,15,28,.99));border:1px solid var(--omda-border-2,var(--line-2));border-radius:14px;box-shadow:0 18px 46px rgba(0,0,0,.46);color:var(--omda-text,var(--text));overflow:hidden;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
.omda-dropdown{left:var(--omda-dropdown-left,auto);top:var(--omda-dropdown-top,auto);}
.omda-dropdown.open,.omda-row-actions-menu.open{display:block;}
.omda-dropdown-item,.omda-row-actions-item{width:100%;border:0;border-radius:10px;display:flex;align-items:center;background:transparent;color:var(--omda-text,var(--text));cursor:pointer;font-family:inherit;line-height:1.2;text-align:right;text-decoration:none;white-space:nowrap;}
.omda-dropdown-item{min-height:36px;padding:9px 10px;gap:9px;font-size:12px;font-weight:800;}
.omda-row-actions-item{min-height:34px;padding:8px 10px;gap:8px;font-size:12.5px;font-weight:850;}
.omda-dropdown-item svg,.omda-row-actions-icon svg{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;fill:none;stroke-width:1.8;}
.omda-dropdown-item:hover,.omda-row-actions-item:hover{background:rgba(var(--product-rgb,var(--a-rgb)),.08);color:var(--product-accent,var(--a));}
.omda-dropdown-item.danger,.omda-row-actions-item.danger{color:#fca5a5;}
.omda-dropdown-item.danger:hover,.omda-row-actions-item.danger:hover{background:rgba(239,68,68,.10);color:#fecaca;}
.omda-dropdown-item:disabled,.omda-dropdown-item.disabled,.omda-row-actions-item:disabled,.omda-row-actions-item.disabled{opacity:.45;cursor:not-allowed;color:var(--omda-muted,var(--text-2));}
.omda-dropdown-item:disabled:hover,.omda-dropdown-item.disabled:hover,.omda-row-actions-item:disabled:hover,.omda-row-actions-item.disabled:hover{background:transparent;color:var(--omda-muted,var(--text-2));}
.omda-dropdown-sep,.omda-row-actions-sep{height:1px;margin:6px 4px;background:var(--omda-border,var(--line));}
.omda-row-actions-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.omda-row-actions-label{flex:1;min-width:0;}
html[data-mode="light"] .omda-dropdown,html[data-mode="light"] .omda-row-actions-menu{background:#fff;border-color:var(--line-2,#d4dbe6);box-shadow:0 16px 42px rgba(15,27,45,.16);color:var(--text,#0f1b2d);}
html[data-mode="light"] .omda-dropdown-item.danger,html[data-mode="light"] .omda-row-actions-item.danger{color:var(--bad,#e11d48);}
@media(max-width:640px){.omda-dropdown,.omda-row-actions-menu{min-width:180px;max-width:calc(100vw - 20px);}}


/* ═══════════════════════════════════════════════════════════════
   OMDA Shell v2.1 — Notifications
════════════════════════════════════════════════════════════════ */
.omda-notifications-list {
  display: grid;
  gap: 10px;
}
.omda-notification-item {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 14px;
  border: 1px solid var(--omda-border);
  border-radius: 14px;
  background: rgba(3, 11, 22, .32);
}
.omda-notification-item.unread {
  border-color: rgba(var(--product-rgb), .42);
  background: rgba(var(--product-rgb), .07);
}
.omda-notification-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--omda-border-2);
}
.omda-notification-item.unread .omda-notification-dot {
  background: var(--product-accent);
  box-shadow: 0 0 0 4px rgba(var(--product-rgb), .10);
}
.omda-notification-main {
  min-width: 0;
}
.omda-notification-title {
  color: var(--omda-text);
  font-size: 13px;
  font-weight: 900;
  margin-bottom: 3px;
}
.omda-notification-body {
  color: var(--omda-muted);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.omda-notification-meta {
  color: var(--omda-muted-2);
  font-size: 10px;
  font-weight: 800;
  margin-top: 5px;
}
.omda-notification-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.omda-notifications-empty {
  padding: 22px;
  border: 1px dashed var(--omda-border-2);
  border-radius: var(--omda-r-card);
  color: var(--omda-muted);
  background: rgba(3, 11, 22, .26);
  text-align: center;
  font-weight: 800;
}
@media (max-width: 620px) {
  .omda-notification-item {
    grid-template-columns: 10px minmax(0, 1fr);
  }
  .omda-notification-actions {
    grid-column: 2;
    justify-content: flex-start;
  }
  .omda-notification-body {
    white-space: normal;
  }
}



/* =================================================================
   OMDA SHELL v2.1 — MODE FOUNDATION + AUTH/LOADER CONTRACT v1
   Global-only. Product pages may provide content/data only.
================================================================= */
:root,
html[data-mode="dark"]{
  /* ── OMDA Typography Canon v1 ───────────────────────────────
     Source of truth: omda-system-responsive.html / Typography 02
     UI: Rubik
     Technical and numeric values: JetBrains Mono
  ─────────────────────────────────────────────────────────── */
  --omda-font-ui:"Rubik",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --omda-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;

  --omda-type-page-title-size:42px;
  --omda-type-page-title-weight:900;
  --omda-type-page-title-leading:1.04;
  --omda-type-page-title-tracking:-.03em;

  --omda-type-section-title-size:24px;
  --omda-type-section-title-weight:800;
  --omda-type-section-title-leading:1.2;

  --omda-type-card-title-size:15px;
  --omda-type-card-title-weight:700;
  --omda-type-card-title-leading:1.35;

  --omda-type-body-size:14px;
  --omda-type-body-weight:400;
  --omda-type-body-leading:1.55;

  --omda-type-secondary-size:13px;
  --omda-type-secondary-weight:400;
  --omda-type-secondary-leading:1.55;

  --omda-type-technical-size:15px;
  --omda-type-technical-weight:700;
  --omda-type-technical-leading:1.35;

  /* Semantic role aliases — canonical catalog typography. */
  --omda-type-role-page-title-size:var(--omda-type-page-title-size);
  --omda-type-role-page-title-weight:var(--omda-type-page-title-weight);
  --omda-type-role-page-title-leading:var(--omda-type-page-title-leading);
  --omda-type-role-page-title-tracking:var(--omda-type-page-title-tracking);

  --omda-type-role-section-title-size:var(--omda-type-section-title-size);
  --omda-type-role-section-title-weight:var(--omda-type-section-title-weight);
  --omda-type-role-section-title-leading:var(--omda-type-section-title-leading);

  --omda-type-role-card-title-size:var(--omda-type-card-title-size);
  --omda-type-role-card-title-weight:var(--omda-type-card-title-weight);
  --omda-type-role-card-title-leading:var(--omda-type-card-title-leading);

  --omda-type-role-body-size:var(--omda-type-body-size);
  --omda-type-role-body-weight:var(--omda-type-body-weight);
  --omda-type-role-body-leading:var(--omda-type-body-leading);

  --omda-type-role-secondary-size:var(--omda-type-secondary-size);
  --omda-type-role-secondary-weight:var(--omda-type-secondary-weight);
  --omda-type-role-secondary-leading:var(--omda-type-secondary-leading);

  --omda-type-role-technical-size:var(--omda-type-technical-size);
  --omda-type-role-technical-weight:var(--omda-type-technical-weight);
  --omda-type-role-technical-leading:var(--omda-type-technical-leading);

  /* Compatibility aliases consumed by existing Shell components. */
  --omda-font:var(--omda-font-ui);
  --omda-brand-font:var(--omda-font-ui);
  --mono:var(--omda-font-mono);

  --bg:#0a0f1a;
  --bg-2:#0e1422;
  --surface:#121a2b;
  --card:#162033;
  --card-solid:#172033;
  --card-hi:#1c2740;
  --text:#f3f6fb;
  --text-2:#9aa8c0;
  --text-3:#5d6b85;
  --line:rgba(148,168,200,.12);
  --line-2:rgba(148,168,200,.20);
  --ok:#34d399;--ok-bg:rgba(52,211,153,.12);
  --bad:#fb7185;--bad-bg:rgba(251,113,133,.12);
  --warn:#fbbf24;--warn-bg:rgba(251,191,36,.12);
  --info:#60a5fa;--info-bg:rgba(96,165,250,.12);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow:0 2px 8px rgba(0,0,0,.28),0 16px 40px rgba(0,0,0,.36);
  --shadow-lg:0 8px 24px rgba(0,0,0,.4),0 40px 90px rgba(0,0,0,.55);

  /* ── OMDA Visual Emphasis Canon v1 ─────────────────────────
     Surface elevation, accent glow, status glow and focus ring.
     Glow is semantic and must not be authored locally.
  ─────────────────────────────────────────────────────────── */
  --omda-emphasis-surface-sm:var(--shadow-sm);
  --omda-emphasis-surface:var(--shadow);
  --omda-emphasis-surface-raised:var(--shadow-lg);

  --omda-emphasis-accent:0 8px 28px rgba(var(--product-rgb),.36);
  --omda-emphasis-accent-strong:0 12px 32px rgba(var(--product-rgb),.50);
  --omda-emphasis-accent-progress:0 0 16px rgba(var(--product-rgb),.50);

  --omda-emphasis-success:0 6px 20px rgba(52,211,153,.34);
  --omda-emphasis-danger:0 6px 20px rgba(251,113,133,.34);

  --omda-emphasis-ring-color:var(--ring);
  --omda-emphasis-focus-ring:0 0 0 4px var(--a-bg);
  --omda-emphasis-danger-focus-ring:0 0 0 4px var(--bad-bg);

  /* Compatibility alias consumed by existing Shell components. */
  --shadow-accent:var(--omda-emphasis-accent);
  --card-grad:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
  --ring:rgba(var(--product-rgb),.28);

  --omda-bg:var(--bg);
  --omda-surface:var(--surface);
  --omda-surface-2:var(--card-solid);
  --omda-surface-3:var(--card-hi);
  --omda-surface-4:#22304a;
  --omda-text:var(--text);
  --omda-muted:var(--text-2);
  --omda-muted-2:var(--text-3);
  --omda-border:var(--line);
  --omda-border-2:var(--line-2);
  --omda-success:var(--ok);
  --omda-danger:var(--bad);
  --omda-warning:var(--warn);
  --omda-info:var(--info);

  /* ── OMDA Status Text Canon v1 (26.10.2026) ────────────────
     Status hues used as TEXT on surfaces or on their own *-bg
     tint. Dark surfaces carry the base hues at 4.5:1+; light
     mode supplies darker canonical values (see light block).
     Products consume these; they never author local shades.
  ─────────────────────────────────────────────────────────── */
  --ok-text:var(--ok);
  --bad-text:var(--bad);
  --warn-text:var(--warn);
  --info-text:var(--info);
  --omda-accent-text:var(--product-accent);
  --omda-success-text:var(--ok-text);
  --omda-danger-text:var(--bad-text);
  --omda-warning-text:var(--warn-text);
  --omda-info-text:var(--info-text);
}
html[data-mode="light"]{
  --bg:#eef1f6;
  --bg-2:#e7ebf2;
  --surface:#e9edf3;
  --card:#ffffff;
  --card-solid:#ffffff;
  --card-hi:#f7f9fc;
  --text:#0f1b2d;
  --text-2:#51617a;
  --text-3:#95a2b8;
  --line:#e4e9f1;
  --line-2:#d4dbe6;
  --ok:#16a34a;--ok-bg:#e7f6ed;
  --bad:#e11d48;--bad-bg:#fde7ec;
  --warn:#ea8a0c;--warn-bg:#fdf0dc;
  --info:#2563eb;--info-bg:#e6efff;
  --shadow-sm:0 1px 2px rgba(15,27,45,.05);
  --shadow:0 2px 4px rgba(15,27,45,.04),0 8px 24px rgba(15,27,45,.08);
  --shadow-lg:0 12px 28px rgba(15,27,45,.10),0 40px 80px rgba(15,27,45,.12);

  --omda-emphasis-surface-sm:var(--shadow-sm);
  --omda-emphasis-surface:var(--shadow);
  --omda-emphasis-surface-raised:var(--shadow-lg);

  --omda-emphasis-accent:0 8px 22px rgba(var(--product-rgb),.26);
  --omda-emphasis-accent-strong:0 10px 28px rgba(var(--product-rgb),.34);
  --omda-emphasis-accent-progress:0 0 14px rgba(var(--product-rgb),.34);

  --omda-emphasis-success:0 6px 18px rgba(22,163,74,.22);
  --omda-emphasis-danger:0 6px 18px rgba(225,29,72,.22);

  --omda-emphasis-ring-color:var(--ring);
  --omda-emphasis-focus-ring:0 0 0 4px var(--a-bg);
  --omda-emphasis-danger-focus-ring:0 0 0 4px var(--bad-bg);

  --shadow-accent:var(--omda-emphasis-accent);
  --card-grad:none;
  --ring:rgba(var(--product-rgb),.30);

  --omda-bg:var(--bg);
  --omda-surface:var(--surface);
  --omda-surface-2:var(--card-solid);
  --omda-surface-3:var(--card-hi);
  --omda-surface-4:#d4dbe6;
  --omda-text:var(--text);
  --omda-muted:var(--text-2);
  --omda-muted-2:var(--text-3);
  --omda-border:var(--line);
  --omda-border-2:var(--line-2);
  --omda-success:var(--ok);
  --omda-danger:var(--bad);
  --omda-warning:var(--warn);
  --omda-info:var(--info);

  /* Status Text Canon v1 — light values (4.5:1+ on white and on the matching *-bg). */
  --ok-text:#047857;
  --bad-text:#991b1b;
  --warn-text:#b45309;
  --info-text:#1e40af;
  --omda-accent-text:color-mix(in srgb,var(--product-accent,#64748b) 58%,#111827);
}
html,body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--omda-font-ui);
  font-size:var(--omda-type-body-size);
  font-weight:var(--omda-type-body-weight);
  line-height:var(--omda-type-body-leading);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body{background-image:radial-gradient(900px 500px at 88% -8%,rgba(var(--product-rgb),.08),transparent 60%),radial-gradient(700px 500px at 5% 110%,rgba(96,165,250,.05),transparent 55%);}
html[data-mode="light"] body{background-image:radial-gradient(900px 500px at 88% -8%,rgba(var(--product-rgb),.10),transparent 60%);}
.app,#appRoot{color:var(--text);}

/* =================================================================
   OMDA Shell v5.3 — Auth Shell Contract

   FAMILY:
   Login/authentication surfaces before the main AppShell is mounted.

   OWNS:
   - Centered auth page wrapper
   - Auth shell card width/rhythm
   - Login hero/logo/title/subtitle layout
   - Auth card surface
   - Field-block label rhythm inside auth forms
   - Auth actions stack
   - Structured Auth identity / confirmation summary
   - Divider / legal foot / error box
   - Auth-local semantic feedback surface
   - Theme toggle placement on auth screens

   CANONICAL:
   .auth-wrap
   .auth-shell-card
   .login-hero
   .auth-card
   .auth-actions
   .auth-summary
   .auth-summary-row
   .auth-summary-label
   .auth-summary-value
   .auth-feedback
   .err-box

   DOES NOT OWN:
   - Firebase/Auth provider logic
   - Access Engine routing after login
   - Product-specific auth copy beyond strings/config
   - Generic Form/Input controls
   - Global hidden utilities

   RULES:
   - Auth styles must not rely on broad visual !important overrides.
   - Empty/hidden error boxes remain state safety and may keep display:none!important.
   - The old early .auth-wrap/.auth-card base block is retired; this is the
     single visual source of truth for Auth Shell surfaces.

   STATUS:
   CLEAN / LOCKED — Auth/Login visual hardening consolidated.
================================================================= */
.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:32px 18px;background:transparent;color:var(--text);font-family:var(--omda-font-ui);}
.auth-shell-card{width:min(520px,calc(100vw - 32px));display:grid;gap:18px;justify-items:stretch;}
.login-hero{text-align:center;display:grid;justify-items:center;gap:10px;color:var(--text);}
.login-hero img{width:96px;height:96px;max-width:96px;max-height:96px;object-fit:contain;border-radius:26px;filter:drop-shadow(0 18px 38px rgba(0,0,0,.26));}
.login-hero h1{margin:0;font-size:30px;line-height:1.1;font-weight:800;letter-spacing:-.035em;color:var(--text);}
.login-hero h1 span,.login-hero .accent{color:var(--a,var(--product-accent));}
.login-hero p{margin:0;color:var(--text-2);font-weight:400;font-size:14px;line-height:1.7;}
.auth-card{width:100%;background:var(--card-solid);background-image:var(--card-grad);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-lg);padding:24px;color:var(--text);display:grid;gap:14px;}
.auth-card h2{margin:0 0 2px;font-size:22px;font-weight:700;line-height:1.3;color:var(--text);text-align:right;}
.auth-form{display:grid;gap:14px;}
.field-block{display:grid;gap:0;}
.auth-actions{display:grid;gap:10px;margin-top:2px;}
.divider{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:12px;font-weight:700;justify-content:center;margin:2px 0;}
.divider::before,.divider::after{content:"";height:1px;background:var(--line);flex:1;}
.legal-foot{text-align:center;color:var(--text-3);font-size:12px;font-weight:400;}
.auth-feedback{
  display:block;
  border-radius:14px;
  padding:10px 12px;

  color:var(
    --text,
    var(--omda-text)
  );

  background:var(
    --card-solid,
    var(--omda-surface)
  );

  border:1px solid var(
    --line-2,
    var(--omda-border-2)
  );

  font-family:var(--omda-font-ui);

  font-size:var(
    --omda-type-role-body-size
  );

  font-weight:var(
    --omda-type-role-body-weight
  );

  line-height:var(
    --omda-type-role-body-leading
  );
}

.auth-feedback:empty,
.auth-feedback[hidden]{
  display:none;
}

.auth-feedback.success{
  background:
    color-mix(
      in srgb,
      var(--omda-success) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-success) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

.auth-feedback.error{
  background:
    color-mix(
      in srgb,
      var(--omda-danger) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-danger) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

.auth-feedback.warning{
  background:
    color-mix(
      in srgb,
      var(--omda-warning) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-warning) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

.auth-feedback.info{
  background:
    color-mix(
      in srgb,
      var(--omda-info) 10%,
      var(
        --card-solid,
        var(--omda-surface)
      )
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-info) 24%,
      var(
        --line-2,
        var(--omda-border-2)
      )
    );
}

.err-box{display:block;border-radius:14px;background:var(--bad-bg);color:var(--bad);border:1px solid rgba(251,113,133,.28);padding:10px 12px;font-size:13px;font-weight:700;}
.err-box:empty,.err-box[hidden]{display:none!important;}
.auth-theme-toggle{position:fixed;left:18px;top:18px;z-index:30;}

/* =================================================================
   OMDA Shell v5.3 — Auth Invitation Extension Contract v1

   FAMILY:
   Invitation acceptance surfaces rendered inside Auth Shell.

   OWNS:
   - Existing/new-user mode selector
   - Auth invitation flow spacing
   - Responsive mobile presentation
   - Mixed RTL/LTR value alignment

   CANONICAL:
   .auth-flow-stack
   .auth-mode-switch
   .auth-mode-option

   LEGACY SUMMARY ALIASES:
   .auth-invite-summary -> .auth-summary
   .auth-invite-row -> .auth-summary-row
   .auth-invite-label -> .auth-summary-label
   .auth-invite-value -> .auth-summary-value

   DOES NOT OWN:
   - Invitation token validation
   - Firebase authentication
   - Organization membership acceptance
   - Product-specific role labels or copy

   RULES:
   - Product pages provide semantics and state only.
   - Product pages must not locally style these primitives.
   - Technical values may explicitly use dir="ltr".
   - Selected state is represented by .is-selected and aria-pressed.

   STATUS:
   LOCKED — canonical Auth invitation extension.
================================================================= */
.auth-flow-stack{
  display:grid;
  gap:16px;
  min-width:0;
}

.auth-summary,
.auth-invite-summary{
  display:grid;
  gap:0;
  padding:4px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  color:var(--text);
  min-width:0;
}

.auth-summary-row,

.auth-invite-row{
  display:grid;
  grid-template-columns:minmax(92px,.7fr) minmax(0,1.3fr);
  align-items:center;
  gap:12px;
  min-height:46px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}

.auth-summary-row:last-child,
.auth-invite-row:last-child{
  border-bottom:0;
}

.auth-summary-label,
.auth-invite-label{
  color:var(--text-2);
  font-size:12.5px;
  font-weight:600;
}

.auth-summary-value,
.auth-invite-value{
  min-width:0;
  color:var(--text);
  font-size:13.5px;
  font-weight:700;
  overflow-wrap:anywhere;
}

.auth-summary-value[dir="ltr"],
.auth-invite-value[dir="ltr"]{
  text-align:left;
}

/* Invitation metadata readability modifier.
   Applies only to the organization/email/role/branch details block. */
.auth-invite-summary--details .auth-invite-label{
  font-size:14.5px;
}

.auth-invite-summary--details .auth-invite-value{
  font-size:15.5px;
}

.auth-mode-switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:5px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
}

.auth-mode-option{
  appearance:none;
  width:100%;
  min-width:0;
  min-height:58px;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:3px;
  padding:10px 12px;
  border:1px solid transparent;
  border-radius:12px;
  background:transparent;
  color:var(--text-2);
  font:inherit;
  text-align:center;
  cursor:pointer;
  transition:
    background .16s ease,
    border-color .16s ease,
    color .16s ease,
    box-shadow .16s ease;
}

.auth-mode-option:hover{
  color:var(--text);
  background:var(--card-hi);
}

.auth-mode-option.is-selected,
.auth-mode-option[aria-pressed="true"]{
  color:var(--text);
  border-color:var(--ring);
  background:var(--card-solid);
  box-shadow:var(--shadow-sm);
}

.auth-mode-title{
  color:inherit;
  font-size:13.5px;
  font-weight:900;
  line-height:1.35;
}

.auth-mode-subtitle{
  color:var(--text-3);
  font-size:11.5px;
  font-weight:600;
  line-height:1.4;
}

.auth-mode-option.is-selected .auth-mode-subtitle,
.auth-mode-option[aria-pressed="true"] .auth-mode-subtitle{
  color:var(--text-2);
}

@media(max-width:799.98px){
  .auth-wrap{
    align-items:start;
    padding:20px 14px 36px;
  }

  .auth-shell-card{
    width:min(100%,520px);
    gap:14px;
  }

  .login-hero{
    gap:8px;
  }

  .login-hero img{
    width:78px;
    height:78px;
    max-width:78px;
    max-height:78px;
    border-radius:22px;
  }

  .login-hero h1{
    font-size:26px;
  }

  .auth-card{
    padding:20px;
    border-radius:22px;
    gap:13px;
  }

  .auth-summary-row,

  .auth-invite-row{
    grid-template-columns:1fr;
    gap:4px;
    align-items:start;
  }

  .auth-mode-switch{
    gap:6px;
  }

  .auth-mode-option{
    min-height:64px;
    padding:9px 8px;
  }
}

@media(max-width:390px){
  .auth-card{
    padding:18px 16px;
  }

  .auth-mode-switch{
    grid-template-columns:1fr;
  }

  .auth-mode-option{
    min-height:52px;
  }
}


/* ============================================================
/* ─────────────────────────────────────────────────────────────
   OMDA Shell global component contract hardening
   Source-of-truth visual layer: rounded cards, tables, rows, loaders,
   and mobile sidebar drawer. Product pages must not restyle these.
───────────────────────────────────────────────────────────── */
:root{
  --omda-soft-radius: var(--radius, 20px);
  --omda-soft-radius-sm: var(--radius-sm, 14px);
  --omda-soft-radius-lg: var(--radius-lg, 26px);
}
.spanel,
.pv,
.dswitch,
.modal,
.omda-modal,
.sheet,

.srow .av,
.nav-btn,
.nav-btn .ic,
.tb-search{
  border-radius: var(--omda-soft-radius-sm);
}

/* OMDA Shell — global behavior/state contracts */
body.omda-modal-open{overflow:hidden;}
.is-clickable{cursor:pointer;}
[hidden]{display:none!important;}
.field-option.is-selected{border-color:rgba(var(--a-rgb,212,184,122),.5);background:var(--a-bg);}

/* ============================================================
   OMDA Shell v2.1 — Case Workspace Structural Contract v1
   Global master-detail/detail-page components for all OMDA apps.
   Products inject content + workflow only; no product-local CSS.
   ============================================================ */
.case-workspace-wrap{max-width:1180px;margin:0 auto;padding:24px 32px 96px;}
@media (max-width:799.98px){.case-workspace-wrap{padding:18px 14px 96px;}}
.inspection-mode-banner{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:12px 16px;border-radius:var(--radius-sm);background:var(--a-bg);border:1px solid var(--ring);color:var(--a-text);font-weight:700;}

/* =================================================================
   OMDA Shell v2.1 — Workspace Live Summary Findings Contract v1

   FAMILY:
   CaseWorkspace live findings summary header.

   OWNS:
   - Spacing between live summary title and findings badge
   - Badge alignment/wrapping in desktop and mobile

   CANONICAL DOM:
   .ws-live-prog-top
     .badge.warn / Badge Contract status pill

   DOES NOT OWN:
   - Progress/completion bars
   - Findings calculation text
   - Case access rules

   RULE:
   This contract presents findings count, not task completion percentage.

   STATUS:
   LOCKED — workspace progress semantics replaced with findings summary.
================================================================= */
.ws-live-prog-top{display:flex;align-items:center;justify-content:flex-start;gap:8px 12px;flex-wrap:wrap;}
.ws-live-prog-top .badge{flex:0 0 auto;}
@media (max-width:799.98px){.ws-live-prog-top{align-items:flex-start;gap:8px 10px;}}
.case-tabs{display:flex;gap:4px;margin:18px 0;background:var(--surface);padding:5px;border-radius:15px;border:1px solid var(--line);overflow-x:auto;}
.case-tabs .case-tab,.case-tabs .tab{display:flex;align-items:center;gap:8px;flex:1 0 auto;justify-content:center;min-width:max-content;border:0;background:none;cursor:pointer;padding:11px 16px;border-radius:11px;font-family:inherit;font-weight:800;font-size:13.5px;color:var(--text-2);transition:.14s;white-space:nowrap;}
.case-tabs .case-tab:hover,.case-tabs .tab:hover{color:var(--text);background:transparent;}
.case-tabs .case-tab.active,.case-tabs .tab.active{background:var(--card-solid);color:var(--text);box-shadow:var(--shadow-sm);}
.tab-pane,.pane{display:none;}
.tab-pane.active,.pane.active{display:block;animation:omdaCaseFade .22s ease;}
@keyframes omdaCaseFade{from{opacity:0;transform:translateY(6px)}}
/* Case workspace layout contract v1 — scoped to case workspace only. */
.case-workspace-wrap .overview-grid,
.case-workspace-wrap .grid-2{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);
  gap:18px;
  align-items:start;
}
@media(max-width:980px){
  .case-workspace-wrap .overview-grid,
  .case-workspace-wrap .grid-2{grid-template-columns:1fr;}
}
/* Case sections layout contract — scoped to case workspace only.
   Visual DNA is inherited from the global Card / Panel / Section Contract. */
.case-workspace-wrap .section,
.case-workspace-wrap .panel,
.case-workspace-wrap .side-card,
.case-workspace-wrap .completed-inspection-summary{margin-bottom:18px;}
.case-workspace-wrap .completed-inspection-summary{
  background:var(--card-solid);
  background-image:var(--card-grad);
  border:1px solid var(--line);
  border-radius:var(--omda-r-card,var(--radius,20px));
  box-shadow:var(--shadow);
  overflow:hidden;
  color:var(--text);
}
.case-workspace-wrap .section-card-header,
.case-workspace-wrap .side-card-hd,
.case-workspace-wrap .sec-h{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:16px 20px;
  border-bottom:1px solid var(--line);
  background:transparent;
}
.case-workspace-wrap .section-card-title,
.case-workspace-wrap .side-card-title,
.case-workspace-wrap .sec-t{
  font-size:15px;
  font-weight:900;
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--text);
}
.case-workspace-wrap .section-card-title::before,
.case-workspace-wrap .side-card-title::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--a);
  display:inline-block;
}

.case-workspace-wrap .section-card-body,
.case-workspace-wrap .side-card-body,
.case-workspace-wrap .sec-b{
  padding:20px;
  color:var(--text);
}
.case-workspace-wrap .ov-veh-grid,
.case-workspace-wrap .info-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
@media (max-width:799.98px){
  .case-workspace-wrap .ov-veh-grid,
  .case-workspace-wrap .info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:440px){
  .case-workspace-wrap .ov-veh-grid,
  .case-workspace-wrap .info-grid{grid-template-columns:1fr;}
}
.case-workspace-wrap .info-lbl,
.case-workspace-wrap .info .lbl{
  font-size:11px;
  font-weight:800;
  color:var(--text-3);
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:5px;
}
.case-workspace-wrap .info-val,
.case-workspace-wrap .info .val{
  font-weight:800;
  font-size:15px;
  color:var(--text);
}
.case-workspace-wrap .irow{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:11px 0;
  border-bottom:1px solid var(--line);
  font-size:13.5px;
}
.case-workspace-wrap .irow:last-child{border-bottom:0;}
.case-workspace-wrap .irow-lbl,
.case-workspace-wrap .irow .l{color:var(--text-2);font-weight:600;}
.case-workspace-wrap .irow-val,
.case-workspace-wrap .irow .v{font-weight:800;color:var(--text);text-align:left;}
/* CaseWorkspace forms inherit the global Form/Input Contract.
   Local selectors remain supported through aliases: .form-grid/.fgrid/.fld/.input/.select/.note-ta/.severity-select. */
.case-workspace-wrap .fg-full,
.case-workspace-wrap .fg-2{grid-column:1/-1;}
.case-workspace-wrap .case-audit-list,
.case-workspace-wrap .tl{position:relative;padding-right:22px;}
.case-workspace-wrap .case-audit-list::before,
.case-workspace-wrap .tl::before{content:"";position:absolute;right:5px;top:6px;bottom:6px;width:2px;background:var(--line);}
.case-workspace-wrap .case-audit-item,
.case-workspace-wrap .tl-item{position:relative;padding:0 0 18px;display:block;}
.case-workspace-wrap .case-audit-item::before,
.case-workspace-wrap .tl-item::before{content:"";position:absolute;right:-21px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--a);border:2px solid var(--bg-2);}
.case-workspace-wrap .case-audit-title,
.case-workspace-wrap .tl-t{font-weight:800;font-size:13.5px;color:var(--text);}
.case-workspace-wrap .case-audit-time,
.case-workspace-wrap .case-audit-sub,
.case-workspace-wrap .tl-m{font-size:14px;color:var(--text-2);font-family:var(--mono,ui-monospace,monospace);margin-top:4px;line-height:1.55;}
/* =================================================================
   OMDA Shell v5.3 — Media / Photos / Upload Surface Shell Contract

   FAMILY:
   Product-agnostic media surfaces: upload/photo grids, image cards,
   thumbnail frames and attachment/media card shells.

   OWNS:
   - Responsive media/photo grid layout
   - Media/photo card surface
   - Thumbnail frame surface
   - Basic main-photo marker surface
   - Dark/light card rendering

   CANONICAL:
   .omda-media-grid
   .omda-media-card
   .omda-media-thumb

   SUPPORTED ALIASES:
   .mgrid
   .photos-grid
   .mcard
   .photo-card
   .mthumb

   DOES NOT OWN:
   - Image annotation / markup editor
   - Canvas tools: arrows, text, draw, rotate, undo, clear, export
   - Storage upload implementation
   - Firestore save/delete logic
   - Product-specific media categories and professional meaning
   - Photo Viewer single-image route/runtime

   RELATED CONTRACTS:
   Photo Viewer Shell -> single-image viewing route/runtime.
   Image Annotation / Markup Shell -> future canvas editor extraction.

   STATUS:
   LOCKED — media grid !important overrides removed.
================================================================= */
.omda-media-grid,.mgrid,.photos-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));
  grid-auto-rows:1fr;
  align-items:stretch;
  gap:14px;
}
@media(max-width:520px){.omda-media-grid,.mgrid,.photos-grid{grid-template-columns:1fr;}}
.mcard,.photo-card,.omda-media-card{border:1px solid var(--line);border-radius:var(--omda-r-card,var(--radius,20px));overflow:hidden;background:var(--card-solid);background-image:var(--card-grad);color:var(--text);box-shadow:var(--shadow-sm);}
html[data-mode="light"] .mcard,
html[data-mode="light"] .photo-card,
html[data-mode="light"] .omda-media-card{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,249,252,.94));border-color:var(--line-2,rgba(111,129,154,.22));color:var(--text,#0f1b2d);box-shadow:0 10px 24px rgba(15,27,45,.06);}
.omda-media-thumb,.mthumb{aspect-ratio:4/3;background:var(--surface);display:grid;place-items:center;color:var(--text-3);position:relative;}
.omda-media-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden;clip-path:inset(50%);}

.omda-media-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,260px);
  align-items:end;
  gap:14px;
  margin-bottom:12px;
  direction:rtl;
}

.omda-media-head-text{
  min-width:0;
  display:grid;
  gap:4px;
}

.omda-media-title{
  font-size:14px;
  font-weight:700;
  color:var(--text);
  line-height:1.35;
}

.omda-media-hint{
  max-width:520px;
  font-size:12px;
  font-weight:500;
  line-height:1.55;
  color:var(--text-2);
}

.omda-media-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}

.omda-media-actions .select,
.omda-media-actions select{
  width:100%;
  min-height:42px;
  border-radius:14px;
}

.omda-media-status{
  display:none;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  margin:0 0 12px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:var(--text-2);
  font-size:12px;
  font-weight:700;
}

.omda-media-status.vis,
.omda-media-status:not(.hidden)[aria-hidden="false"]{
  display:inline-flex;
}

.omda-media-spin{
  width:10px;
  height:10px;
  border-radius:999px;
  border:2px solid rgba(148,168,200,.28);
  border-top-color:var(--a);
  animation:omdaSpin .85s linear infinite;
}

@keyframes omdaSpin{to{transform:rotate(360deg);}}

@media (max-width:799.98px){
  .omda-media-toolbar{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .omda-media-actions{
    justify-content:stretch;
  }
  .omda-media-hint{
    max-width:none;
  }
}
.omda-media-card{display:flex;flex-direction:column;min-width:0;min-height:0;height:auto;}
.omda-media-thumb{width:100%;min-height:0;max-height:none;overflow:hidden;border:0;padding:0;cursor:pointer;}
.omda-media-thumb img,.mthumb img,.photo-card img,.omda-media-card img{width:100%;height:100%;max-width:100%;max-height:100%;display:block;object-fit:contain;background:var(--surface);}
.omda-media-add{
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:158px;
  height:100%;
  align-self:stretch;
  padding:16px;
  text-align:center;
  border-style:dashed;
  border-color:var(--line-2);
  cursor:pointer;
  background:
    radial-gradient(circle at 50% 0%,rgba(125,179,255,.13),transparent 45%),
    linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018));
}

.omda-media-add:hover{
  transform:translateY(-1px);
  border-color:var(--a);
  box-shadow:0 14px 32px rgba(0,0,0,.18);
}

.omda-media-add:focus-within{
  outline:2px solid var(--a);
  outline-offset:-2px;
}

.omda-media-add-plus{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:linear-gradient(140deg,var(--a-2),var(--a));
  color:var(--a-ink);
  font-size:24px;
  font-weight:900;
  box-shadow:0 10px 22px rgba(0,0,0,.22);
}

.omda-media-add-title{
  font-size:14px;
  font-weight:700;
  color:var(--text);
}

.omda-media-add-sub{
  max-width:170px;
  font-size:12px;
  line-height:1.45;
  color:var(--text-2);
}

html[data-mode="light"] .omda-media-add{
  background:
    radial-gradient(circle at 50% 0%,rgba(59,110,165,.13),transparent 45%),
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(245,247,251,.92));
}

.omda-media-readonly .omda-media-add{display:none;}

.omda-media-meta{
  display:grid;
  gap:6px;
  padding:10px 12px 12px;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,rgba(15,23,42,.46),rgba(15,23,42,.72));
  min-width:0;
}

.omda-media-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
  font-weight:500;
  color:var(--text);
  line-height:1.35;
}

.omda-media-sub{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  font-weight:700;
  color:var(--text-2);
  line-height:1.35;
}

.omda-media-card-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  padding-top:6px;
}

.omda-media-card-actions .btn{
  min-height:30px;
  height:30px;
  padding:0 10px;
  border-radius:10px;
  font-size:12px;
  font-weight:900;
}

.omda-media-main{
  position:absolute;
  top:8px;
  right:8px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 10px;
  border-radius:999px;
  background:linear-gradient(140deg,var(--a-2),var(--a));
  color:var(--a-ink);
  font-size:11px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}

html[data-mode="light"] .omda-media-meta{
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(245,247,251,.96));
  border-top-color:var(--line-2,rgba(111,129,154,.22));
}

.omda-media-card{
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}

.omda-media-card:not(.omda-media-add):hover{
  transform:translateY(-1px);
  border-color:var(--line-2);
  box-shadow:0 14px 32px rgba(0,0,0,.18);
}

.omda-media-thumb:focus-visible{
  outline:2px solid var(--a);
  outline-offset:-2px;
}

.omda-media-card-actions .btn[disabled],
.omda-media-card-actions .btn[aria-disabled="true"]{
  opacity:.55;
  cursor:default;
  pointer-events:none;
}

.omda-media-readonly .omda-media-card-actions{
  display:none;
}

.omda-media-main{
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(8px);
  letter-spacing:.01em;
}

html[data-mode="light"] .omda-media-main{
  border-color:rgba(15,27,45,.12);
  box-shadow:0 8px 18px rgba(15,27,45,.14);
}

/* Media Shell — viewer overlay contract */
.omda-media-viewer{
  position:fixed;
  inset:0;
  z-index:9990;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(2,9,18,.72);
  backdrop-filter:blur(10px);
}

.omda-media-viewer.vis{
  display:flex;
}

.omda-media-viewer-panel{
  width:min(1120px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid var(--line-2);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(23,32,51,.98),rgba(12,18,30,.98));
  color:var(--text);
  box-shadow:0 28px 80px rgba(0,0,0,.42);
}

.omda-media-viewer-hd{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
}

.omda-media-viewer-title{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:15px;
  font-weight:700;
  color:var(--text);
}

.omda-media-viewer-sub{
  margin-top:3px;
  font-size:12px;
  font-weight:500;
  color:var(--text-2);
}

.omda-media-viewer-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

.omda-media-viewer-body{
  position:relative;
  min-height:320px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 0%,rgba(125,179,255,.08),transparent 42%),
    rgba(2,9,18,.34);
}

.omda-media-viewer-img{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:calc(100vh - 190px);
  display:block;
  object-fit:contain;
}

.omda-media-viewer-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid var(--line-2);
  border-radius:999px;
  background:rgba(15,23,42,.72);
  color:var(--text);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(8px);
  box-shadow:0 10px 26px rgba(0,0,0,.24);
}

.omda-media-viewer-nav:hover{
  border-color:var(--a);
  background:rgba(15,23,42,.88);
}

.omda-media-viewer-prev{right:14px;}
.omda-media-viewer-next{left:14px;}

.omda-media-viewer-ft{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 16px;
  border-top:1px solid var(--line);
  color:var(--text-2);
  font-size:12px;
  font-weight:600;
}

.omda-media-viewer-count{
  color:var(--text);
  font-weight:800;
}

html[data-mode="light"] .omda-media-viewer{
  background:rgba(15,27,45,.42);
}

html[data-mode="light"] .omda-media-viewer-panel{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(245,247,251,.98));
  border-color:var(--line-2,rgba(111,129,154,.22));
  color:var(--text,#0f1b2d);
  box-shadow:0 28px 80px rgba(15,27,45,.22);
}

html[data-mode="light"] .omda-media-viewer-body{
  background:
    radial-gradient(circle at 50% 0%,rgba(59,110,165,.08),transparent 42%),
    rgba(226,232,240,.42);
}

html[data-mode="light"] .omda-media-viewer-nav{
  background:rgba(255,255,255,.82);
  color:var(--text,#0f1b2d);
}

@media (max-width:799.98px){
  .omda-media-viewer{
    padding:0;
    align-items:stretch;
  }

  .omda-media-viewer-panel{
    width:100vw;
    max-width:100vw;
    height:100vh;
    height:100dvh;
    max-height:100vh;
    max-height:100dvh;
    border-radius:0;
  }

  .omda-media-viewer-hd{
    padding:10px 12px;
    gap:8px;
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .omda-media-viewer-hd > .omda-min-0{
    width:100%;
    flex:1 1 100%;
    min-width:0;
  }

  .omda-media-viewer-actions{
    width:100%;
    justify-content:flex-end;
    flex-wrap:wrap;
  }

  .omda-media-viewer-body{
    min-height:0;
  }

  .omda-media-viewer-img{
    width:100%;
    height:100%;
    max-height:100%;
    object-fit:contain;
  }

  .omda-media-viewer-ft{
    padding:8px 12px;
  }

  .omda-media-viewer-nav{
    width:38px;
    height:38px;
    font-size:26px;
  }

  .omda-media-viewer-prev{right:10px;}
  .omda-media-viewer-next{left:10px;}
}
/* Case Dialog Compatibility Contract (#16) retired 04.11.2026: case.html no longer renders #uncheckDialog / #deleteCaseDialog; those flows use the Global Modal. */

/* =================================================================
   OMDA Shell v5.3 — New Case Modal / Wizard Contract

   FAMILY:
   New case creation modal frame. Its content is the Intake Flow family
   (.omda-intake-*, "OMDA INTAKE FLOW v1" below) — Contract Book #17/#34.

   OWNS:
   - New Case modal backdrop and panel shell
   - Header, footer and responsive frame for desktop/tablet/mobile
   - Generic choice-card alias (also used by other Shell modals)

   CANONICAL DOM:
   #newCaseModal.ncm-backdrop
     .ncm.is-flow
       .ncm-hd > .ncm-hd-row (.ncm-title, .ncm-sub, .ncm-close) + nav.omda-stepper
       .ncm-flow
       .ncm-ft

   SUPPORTED INTERNAL ALIASES:
   .omda-choice-grid / .omda-choice-card
   .confirm-row
   .state-hidden

   RETIRED 04.11.2026 (R1, map css-audit): .ncm-stepbar/.ncm-step-*, .ncm-body,
   .svc-*, .ncm-grid/.ncm-fld, .veh-fetch-*, .veh-data-table/.vdt-*,
   .plate-input-big, .confirm-box, .omda-choice-icon/-title/-sub.

   DOES NOT OWN:
   - Core reusable modal API (.omda-modal-*)
   - Inspection accordion modal (.acc-*)
   - Report Action Flow modal (.arf-*)
   - Generic Form Contract outside the wizard
   - Browser alert/confirm/prompt replacement

   VISIBILITY CONTRACT:
   JS may toggle .state-hidden, [hidden], aria-hidden="false" or .vis.
   CSS resolves these states here without product-local display rules.

   STATUS:
   CLEAN / LOCKED — NCM remains a dedicated workflow contract.
================================================================= */
.ncm-backdrop{position:fixed;inset:0;z-index:9400;display:none;place-items:start center;padding:88px 22px 22px;background:rgba(4,7,14,.58);backdrop-filter:none;-webkit-backdrop-filter:none;overflow:auto;}
.ncm-backdrop.state-hidden,
.ncm-backdrop[hidden]{display:none;}
.ncm-backdrop.vis,
.ncm-backdrop:not(.state-hidden):not([hidden])[aria-hidden="false"]{display:grid;}
.ncm{font-family:var(--omda-font-ui);width:min(820px,calc(100vw - 32px));max-height:min(calc(100dvh - 110px),860px);display:flex;flex-direction:column;overflow:hidden;background:var(--card-solid);background-image:var(--card-grad);border:1px solid var(--line-2);border-radius:22px;box-shadow:var(--shadow-lg);color:var(--text);}
.ncm-hd{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);}
.ncm-title{font-size:19px;font-weight:900;letter-spacing:-.02em;color:var(--text);}
.ncm-sub{font-size:12px;font-weight:700;color:var(--text-3);margin-top:2px;}
.ncm-close{width:36px;height:36px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text-2);display:grid;place-items:center;cursor:pointer;font-weight:900;line-height:1;}
.ncm-close:hover{background:var(--card-hi);color:var(--text);}
.omda-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch;}
.omda-choice-card{min-height:128px;width:100%;display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:16px;text-align:right;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card-solid);background-image:var(--card-grad);color:var(--text);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .14s,background .14s,border-color .14s,box-shadow .14s;}
.omda-choice-card:hover{transform:translateY(-2px);background:var(--card-hi);border-color:var(--line-2);box-shadow:var(--shadow);}
.omda-choice-card.sel,.omda-choice-card.is-selected{border-color:var(--ring);background:var(--a-bg);box-shadow:0 0 0 1px var(--ring),var(--shadow);}
.confirm-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);}.confirm-row:last-child{border-bottom:0}.confirm-row .l{color:var(--text-2);font-weight:700}.confirm-row .v{font-weight:900;color:var(--text);}
.ncm-ft{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid var(--line);background:var(--card-solid);}

/* NCM compact choice cards */
.ncm .omda-choice-grid{gap:12px;}
.ncm .omda-choice-card{min-height:82px;padding:14px 16px;grid-template-columns:46px minmax(0,1fr);align-items:center;border-radius:16px;}

.ncm-ft .left,.ncm-ft .right{display:flex;gap:10px;align-items:center;}
@media (max-width:799.98px){.ncm-backdrop{--ncm-mobile-top-gap:76px;place-items:start center;padding:var(--ncm-mobile-top-gap) 10px var(--omda-mobile-viewport-bottom-reserve);overflow:auto}.ncm{width:calc(100vw - 20px);max-height:calc(100dvh - var(--ncm-mobile-top-gap) - var(--omda-mobile-viewport-bottom-reserve));border-radius:18px}.ncm-hd{order:0;padding:13px 16px}.ncm-title{font-size:18px}.ncm-ft{order:1;padding:8px 14px;flex-wrap:nowrap;border-top:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface),transparent 28%);position:sticky;top:0;z-index:2}.ncm-ft .right,.ncm-ft .left{width:auto;justify-content:space-between}.omda-choice-grid{grid-template-columns:1fr}.ncm .omda-choice-grid{gap:10px}.ncm .omda-choice-card{grid-template-columns:44px minmax(0,1fr);min-height:76px;padding:12px 13px}}@media(max-width:520px){.ncm-ft .right,.ncm-ft .left{width:100%;justify-content:space-between}}@media(max-width:520px){.ncm-hd{padding:12px 14px}.ncm-title{font-size:17px}}


/* ========================================================================
   OMDA Shell v2.1 — CLEAN CONTRACT PASS v5.0
   Single source contracts for: AppShell, PageShell, KPI, StandardTablePanel,
   EntityPreviewCard. Product pages inject data only.
   ======================================================================== */

/* ─────────────────────────────────────────────────────────────
   1) APPSHELL TOPBAR CONTRACT v6.0 — APPROVED RESPONSIVE CANON
   Visual language follows the OMDA Shell catalog.
   Production structure and breakpoints follow the approved Shell contract.
───────────────────────────────────────────────────────────── */
#topbar{
  --tb-bg:var(--bg-2,var(--omda-bg-2));
  --tb-border:var(--line,var(--omda-border));
  --tb-text:var(--text,var(--omda-text));
  --tb-muted:var(--text-2,var(--omda-muted));
  --tb-subtle:var(--text-3,var(--omda-muted-2));
  --tb-control-bg:var(--surface,var(--omda-surface));
  --tb-control-hover-bg:var(--card-hi,var(--omda-surface-2));
  --tb-badge-bg:var(--bad,#fb7185);
  --tb-badge-border:var(--bg-2,var(--omda-bg-2));

  flex:0 0 auto;
  height:72px;
  min-height:72px;
  display:grid;
  grid-template-columns:max-content minmax(220px,420px) max-content;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:0 26px;
  position:sticky;
  top:0;
  z-index:240;
  background:var(--tb-bg);
  border-bottom:1px solid var(--tb-border);
  color:var(--tb-text);
  direction:rtl;
}

html[data-mode="light"] #topbar{
  --tb-bg:var(--bg-2,#f7f9fc);
  --tb-border:var(--line,#dfe5ee);
  --tb-text:var(--text,#0f1b2d);
  --tb-muted:var(--text-2,#536174);
  --tb-subtle:var(--text-3,#8290a3);
  --tb-control-bg:var(--surface,#edf1f6);
  --tb-control-hover-bg:var(--card-hi,#fff);
  --tb-badge-border:var(--bg-2,#f7f9fc);
}

#topbar .tb-mob{
  display:none;
  width:44px;
  height:44px;
  flex:0 0 44px;
  padding:0;
  border:0;
  border-radius:13px;
  background:var(--tb-control-bg);
  color:var(--tb-muted);
  cursor:pointer;
  place-items:center;
  position:relative;
  transition:background .14s,color .14s,transform .12s;
}

#topbar .tb-mob svg{
  display:block;
  width:21px;
  height:21px;
  min-width:21px;
  min-height:21px;
  max-width:21px;
  max-height:21px;
  stroke:currentColor;
  fill:none;
  stroke-width:2;
}

#topbar .tb-brand-wrap{
  grid-column:1;
  justify-self:start;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  direction:rtl;
}

#topbar .tb-logo-only{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:13px;
  text-decoration:none;
  overflow:hidden;
}

#topbar .tb-logo-only img{
  display:block;
  width:42px;
  height:42px;
  object-fit:contain;
  filter:drop-shadow(0 6px 14px rgba(var(--product-rgb),.22));
}

#topbar .tb-search{
  display:flex;
  align-items:center;
  gap:10px;
  grid-column:2;
  justify-self:center;
  width:100%;
  max-width:420px;
  min-width:0;
  height:46px;
  padding:0 16px;
  border:1.5px solid transparent;
  border-radius:999px;
  background:var(--tb-control-bg);
  box-shadow:none;
  direction:rtl;
  transition:border-color .15s,background .15s;
}

#topbar .tb-search:focus-within{
  border-color:var(--product-accent,var(--a));
  background:var(--tb-control-hover-bg);
}

#topbar .tb-search svg{
  display:block;
  width:18px;
  height:18px;
  min-width:18px;
  min-height:18px;
  max-width:18px;
  max-height:18px;
  flex:0 0 18px;
  stroke:var(--tb-subtle);
  fill:none;
}

#topbar .tb-search input{
  width:100%;
  min-width:0;
  border:0;
  background:none;
  outline:0;
  color:var(--tb-text);
  font-family:var(--omda-font-ui);
  font-size:14px;
}

#topbar .tb-search input::placeholder{
  color:var(--tb-subtle);
}

#topbar .tb-r,
#topbar .tb-right{
  grid-column:3;
  justify-self:end;
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  margin:0;
  direction:rtl;
}

#topbar .tb-ico,
#topbar .tb-icon-btn,
#topbar .tb-action,
#topbar .tb-mobile-search{
  position:relative;
  width:46px;
  height:46px;
  min-width:46px;
  min-height:46px;
  max-width:46px;
  max-height:46px;
  flex:0 0 46px;
  padding:0;
  border:0;
  border-radius:14px;
  background:var(--tb-control-bg);
  color:var(--tb-muted);
  cursor:pointer;
  display:grid;
  place-items:center;
  text-decoration:none;
  transition:background .14s,color .14s,transform .12s;
}

#topbar .tb-ico:hover,
#topbar .tb-icon-btn:hover,
#topbar .tb-action:hover,
#topbar .tb-mobile-search:hover,
#topbar .tb-user-pill:hover,
#topbar .tb-mob:hover{
  background:var(--tb-control-hover-bg);
  color:var(--tb-text);
}

#topbar .tb-ico:active,
#topbar .tb-icon-btn:active,
#topbar .tb-action:active,
#topbar .tb-mobile-search:active,
#topbar .tb-mob:active{
  transform:scale(.96);
}

#topbar .tb-ico svg,
#topbar .tb-icon-btn svg,
#topbar .tb-action svg,
#topbar .tb-mobile-search svg{
  display:block;
  width:20px;
  height:20px;
  min-width:20px;
  min-height:20px;
  max-width:20px;
  max-height:20px;
  flex:0 0 20px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.9;
}

#topbar .tb-badge,
#topbar .tb-ico .n{
  position:absolute;
  top:-2px;
  left:-2px;
  min-width:18px;
  height:18px;
  padding:0 4px;
  border:2px solid var(--tb-badge-border);
  border-radius:999px;
  background:var(--tb-badge-bg);
  color:#fff;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  font-size:10px;
  font-weight:800;
  line-height:1;
  text-align:center;
  font-variant-numeric:tabular-nums;
}

#topbar .tb-user-pill,
#topbar .tb-pill{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:5px 14px 5px 6px;
  border:0;
  border-radius:999px;
  background:var(--tb-control-bg);
  color:var(--tb-text);
  text-decoration:none;
  direction:ltr;
  transition:background .14s,color .14s;
}

#topbar .tb-user-stack,
#topbar .meta-txt{
  min-width:0;
  line-height:1.2;
  direction:rtl;
  text-align:right;
}

#topbar .tb-user,
#topbar .tb-pill .nm{
  display:block;
  max-width:140px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--tb-text);
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}

#topbar .tb-user-role,
#topbar .tb-pill .rl{
  color:var(--tb-subtle);
  font-size:11px;
  font-weight:400;
  white-space:nowrap;
}

#topbar .tb-avatar,
#topbar .tb-pill .av{
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(
    140deg,
    var(--product-accent-2,var(--a-2)),
    var(--product-accent,var(--a))
  );
  color:var(--product-accent-ink,var(--a-ink,#07111d));
  font-size:13px;
  font-weight:800;
}

#topbar .tb-mob-dot{
  display:none;
  position:absolute;
  top:7px;
  left:7px;
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--tb-badge-bg);
  box-shadow:0 0 0 2px var(--tb-badge-border);
}

#topbar .tb-mob.has-alert .tb-mob-dot{
  display:block;
}

#topbar .tb-mobile-search{
  display:none;
}

@media (max-width:1199.98px){
  #topbar{
    grid-template-columns:max-content minmax(180px,1fr) max-content;
    gap:14px;
    padding:0 20px;
  }

  #topbar .tb-mob{
    display:grid;
  }

  #topbar .tb-search{
    max-width:420px;
  }

  #topbar .tb-ico:hover,
  #topbar .tb-icon-btn:hover,
  #topbar .tb-action:hover,
  #topbar .tb-user-pill:hover,
  #topbar .tb-mob:hover{
    background:var(--tb-control-bg);
    color:var(--tb-muted);
  }

  #topbar .tb-ico:active,
  #topbar .tb-icon-btn:active,
  #topbar .tb-action:active,
  #topbar .tb-user-pill:active,
  #topbar .tb-mob:active{
    background:var(--tb-control-hover-bg);
    color:var(--tb-text);
  }
}

@media (max-width:799.98px){
  #topbar{
    height:62px;
    min-height:62px;
    grid-template-columns:max-content minmax(150px,1fr) max-content;
    gap:8px;
    padding:0 12px;
  }

  #topbar .tb-brand-wrap{
    grid-column:1;
    gap:6px;
  }

  #topbar .tb-logo-only{
    width:40px;
    height:40px;
    flex-basis:40px;
    border-radius:12px;
  }

  #topbar .tb-logo-only img{
    width:38px;
    height:38px;
  }

  #topbar .tb-search{
    grid-column:2;
    display:flex;
    width:100%;
    max-width:none;
    height:42px;
    padding:0 13px;
  }

  #topbar .tb-r,
  #topbar .tb-right{
    grid-column:3;
    justify-self:end;
    gap:7px;
  }

  #topbar .tb-action-theme{
    display:none;
  }

  #topbar .tb-user-pill,
  #topbar .tb-pill{
    width:42px;
    height:42px;
    min-width:42px;
    flex:0 0 42px;
    padding:3px;
    justify-content:center;
  }

  #topbar .tb-user-stack,
  #topbar .tb-pill .meta-txt{
    display:none;
  }

  #topbar .tb-avatar,
  #topbar .tb-pill .av{
    width:36px;
    height:36px;
    flex-basis:36px;
  }

  #topbar .tb-ico,
  #topbar .tb-icon-btn,
  #topbar .tb-action,
  #topbar .tb-mobile-search{
    width:42px;
    height:42px;
    min-width:42px;
    min-height:42px;
    max-width:42px;
    max-height:42px;
    flex-basis:42px;
    border-radius:13px;
  }

  #topbar .tb-mob{
    width:42px;
    height:42px;
    flex-basis:42px;
  }
}

@media (max-width:499.98px){
  #topbar{
    grid-template-columns:max-content minmax(0,1fr);
  }

  #topbar .tb-search{
    display:none;
  }

  #topbar .tb-r,
  #topbar .tb-right{
    grid-column:2;
  }

  #topbar .tb-mobile-search{
    display:grid;
  }
}

@media (max-width:430px){
  #topbar{
    gap:6px;
    padding-inline:8px;
  }

  #topbar .tb-brand-wrap{
    gap:4px;
  }

  #topbar .tb-logo-only{
    width:36px;
    height:36px;
    flex-basis:36px;
  }

  #topbar .tb-logo-only img{
    width:34px;
    height:34px;
  }

  #topbar .tb-r,
  #topbar .tb-right{
    gap:5px;
  }
}

/* ─────────────────────────────────────────────────────────────
   APPSHELL TOPBAR CONTEXT ACTION CONTRACT v1

   Shell owns geometry and interaction presentation.
   Consumers own visibility semantics and navigation destination.
───────────────────────────────────────────────────────────── */

#topbar .tb-context-slot{
  min-width:0;
  display:flex;
  align-items:center;
}

#topbar .tb-context-action{
  min-width:0;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 4px;
  border:0;
  border-radius:8px;
  background:transparent;
  box-shadow:none;
  color:var(--tb-muted);
  font-family:var(--omda-font-ui);
  font-size:13px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
  transition:color .14s,background .14s;
}

#topbar .tb-context-action:hover{
  color:var(--tb-text);
  background:color-mix(
    in srgb,
    var(--tb-control-hover-bg) 58%,
    transparent
  );
}

#topbar .tb-context-action:focus-visible{
  outline:2px solid var(--product-accent,var(--a));
  outline-offset:3px;
}

#topbar .tb-context-action-icon{
  flex:0 0 auto;
  font-size:19px;
  font-weight:500;
  line-height:1;
}

#topbar .tb-context-action[data-omda-work-session-only="1"]{
  display:none;
}

body.omda-work-session-active
#topbar .tb-context-action[data-omda-work-session-only="1"]{
  display:inline-flex;
}

@media (max-width:599.98px){
  #topbar .tb-context-action{
    width:34px;
    min-width:34px;
    height:36px;
    min-height:36px;
    padding:0;
  }

  #topbar .tb-context-action-label{
    display:none;
  }

  #topbar .tb-context-action-icon{
    font-size:20px;
  }
}

/* ─────────────────────────────────────────────────────────────
   2) SIDEBAR BASE/NAV CONTRACT v5.3 — ABSOLUTE COMPACT SOURCE
   Owns sidebar shell, drawer/scrim, nav, org switcher and mobile system actions.
   Brand and footer user are owned by their dedicated contracts below.
───────────────────────────────────────────────────────────── */
.sidebar{
  --sb-bg:linear-gradient(180deg,rgba(3,14,28,.96),rgba(5,17,31,.93));
  --sb-border:var(--omda-border);
  --sb-shadow:-18px 0 48px rgba(0,0,0,.28);
  --sb-text:var(--omda-text);
  --sb-muted:#c8d3e2;
  --sb-subtle:var(--omda-muted-2);
  --sb-item-bg:transparent;
  --sb-item-hover-bg:rgba(255,255,255,.055);
  --sb-item-active-bg:linear-gradient(135deg,rgba(var(--product-rgb),.26),rgba(255,255,255,.04));
  --sb-item-active-border:rgba(var(--product-rgb),.34);
  --sb-icon-bg:rgba(255,255,255,.045);
  --sb-icon-active-bg:rgba(var(--product-rgb),.16);
  --sb-system-bg:rgba(255,255,255,.035);
  --sb-system-border:var(--omda-border);
  --sb-scroll-thumb:rgba(148,163,184,.42);

  width:248px;flex-shrink:0;height:100vh;padding:22px 0 18px;display:flex;flex-direction:column;
  position:sticky;top:0;z-index:150;overflow-y:auto;background:var(--sb-bg);border-left:1px solid var(--sb-border);
  box-shadow:var(--sb-shadow);color:var(--sb-text);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
html[data-mode="light"] .sidebar{
  --sb-bg:linear-gradient(180deg,rgba(255,255,255,.94),rgba(247,249,252,.92));
  --sb-border:var(--line,var(--omda-border));
  --sb-shadow:-16px 0 42px rgba(15,27,45,.08);
  --sb-text:var(--text,var(--omda-text));
  --sb-muted:var(--text-2,var(--omda-muted));
  --sb-subtle:var(--text-3,var(--omda-muted-2));
  --sb-item-hover-bg:var(--surface,var(--omda-surface));
  --sb-item-active-bg:rgba(var(--product-rgb,var(--a-rgb)),.12);
  --sb-item-active-border:rgba(var(--product-rgb,var(--a-rgb)),.20);
  --sb-icon-bg:var(--surface,var(--omda-surface));
  --sb-icon-active-bg:linear-gradient(135deg,var(--product-accent-2,var(--a-2)),var(--product-accent,var(--a)));
  --sb-system-bg:var(--surface,var(--omda-surface));
  --sb-system-border:var(--line,var(--omda-border));
  --sb-scroll-thumb:rgba(100,116,139,.38);
}

.sidebar,.sb-nav{scrollbar-width:thin;scrollbar-color:var(--sb-scroll-thumb) transparent;}
.sidebar::-webkit-scrollbar,.sb-nav::-webkit-scrollbar{width:8px;height:8px;}
.sidebar::-webkit-scrollbar-track,.sb-nav::-webkit-scrollbar-track{background:transparent;}
.sidebar::-webkit-scrollbar-thumb,.sb-nav::-webkit-scrollbar-thumb{background:var(--sb-scroll-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box;}
.sidebar::-webkit-scrollbar-button,.sb-nav::-webkit-scrollbar-button{display:none;width:0;height:0;background:transparent;}

.sb-org-switcher{margin:0 14px 14px;padding:14px;border-radius:16px;background:rgba(var(--product-rgb),.10);border:1px solid rgba(var(--product-rgb),.22);cursor:pointer;transition:background .16s;}
.sb-org-switcher:hover{background:rgba(var(--product-rgb),.15);}
.sb-org-switcher .org-label,.sb-nav .nav-section-label{display:block;color:var(--sb-subtle);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.sb-org-switcher .org-label{margin-bottom:4px;}
.sb-org-switcher .org-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.sb-org-switcher .org-name{color:var(--sb-text);font-size:14px;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sb-org-switcher .org-branch{color:var(--sb-muted);font-size:11px;}
.sb-org-switcher .org-arrow{
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  color:var(--sb-muted);
  flex:0 0 16px;
}
.sb-org-switcher .org-arrow svg{
  display:block;
  width:16px;
  height:16px;
  stroke:currentColor;
  fill:none;
}

.sb-nav{flex:1 1 auto;min-height:0;padding:4px 12px;overflow:auto;}
.sidebar .sb-nav a,.sidebar .sb-nav button.nav-btn,.sidebar .nav-btn{
  width:100%;min-height:48px;margin:3px 0;padding:12px 14px;display:flex;align-items:center;gap:12px;
  border:1px solid transparent;border-radius:var(--omda-r-nav);background:var(--sb-item-bg);color:var(--sb-muted);
  font-family:var(--omda-font-ui,"Rubik",system-ui,sans-serif);font-size:14px;font-weight:700;line-height:1.35;text-align:right;text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s;
}
.sidebar .sb-nav a:hover,.sidebar .sb-nav button.nav-btn:hover,.sidebar .nav-btn:hover{background:var(--sb-item-hover-bg);color:var(--sb-text);}
.sidebar .sb-nav a:focus-visible,
.sidebar .sb-nav button.nav-btn:focus-visible,
.sidebar .nav-btn:focus-visible{
  outline:0;
  background:var(--sb-item-hover-bg);
  color:var(--sb-text);
  border-color:rgba(var(--product-rgb),.42);
  box-shadow:0 0 0 3px rgba(var(--product-rgb),.18);
}
.sidebar .sb-nav a.active,.sidebar .sb-nav button.nav-btn.active,.sidebar .nav-btn.active{background:var(--sb-item-active-bg);color:var(--sb-text);border-color:var(--sb-item-active-border);box-shadow:0 8px 24px rgba(var(--product-rgb),.08);}
.sidebar .nav-btn.active .nav-label{font-weight:800;}
.sidebar .nav-icon,.sidebar .nav-btn .ic{
  width:28px;height:28px;flex:0 0 28px;border-radius:9px;display:grid;place-items:center;background:var(--sb-icon-bg);color:var(--sb-muted);
  transition:background .15s,color .15s,box-shadow .15s;
}
.sidebar .nav-icon svg,.sidebar .nav-btn .ic svg{display:block;width:18px;height:18px;min-width:18px;min-height:18px;max-width:18px;max-height:18px;flex:0 0 18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.sidebar .sb-nav a.active .nav-icon,.sidebar .sb-nav button.nav-btn.active .nav-icon,.sidebar .nav-btn.active .ic{background:var(--sb-icon-active-bg);color:var(--product-accent,var(--a));}
html[data-mode="light"] .sidebar .sb-nav a.active .nav-icon,
html[data-mode="light"] .sidebar .sb-nav button.nav-btn.active .nav-icon,
html[data-mode="light"] .sidebar .nav-btn.active .ic{color:var(--a-ink,#07111d);box-shadow:0 8px 22px rgba(var(--product-rgb,var(--a-rgb)),.24);}
.sb-sep{height:1px;margin:8px 12px;background:var(--sb-border);}

.sb-system-actions{display:none;flex:0 0 auto;margin:8px 12px 0;padding:10px;border-top:1px solid var(--sb-border);gap:8px;}
.sb-system-action{
  min-height:44px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;
  border:1px solid var(--sb-system-border);border-radius:14px;background:var(--sb-system-bg);color:var(--sb-muted);
  font-family:var(--omda-font-ui,"Rubik",system-ui,sans-serif);font-size:13px;font-weight:700;line-height:1.35;text-decoration:none;cursor:pointer;
}
.sb-system-action:hover{background:var(--sb-item-hover-bg);color:var(--sb-text);}
.sb-system-action:focus-visible{
  outline:0;
  background:var(--sb-item-hover-bg);
  color:var(--sb-text);
  border-color:rgba(var(--product-rgb),.42);
  box-shadow:0 0 0 3px rgba(var(--product-rgb),.18);
}
.sb-system-action svg{display:block;width:20px;height:20px;min-width:20px;min-height:20px;max-width:20px;max-height:20px;flex:0 0 20px;stroke:currentColor;fill:none;stroke-width:1.9;}
.sb-system-action .n,.sb-system-action .sb-action-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#fb7185;color:#fff;font-size:10px;font-weight:900;line-height:18px;text-align:center;}
.sb-system-action-theme{grid-template-columns:auto minmax(0,1fr) auto;}
.sb-theme-switch{width:38px;height:24px;flex:0 0 38px;border-radius:999px;display:inline-flex;align-items:center;padding:3px;background:rgba(var(--product-rgb),.42);border:1px solid rgba(var(--product-rgb),.26);overflow:hidden;}
.sb-theme-switch span{width:16px;height:16px;border-radius:50%;display:block;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.25);transition:transform .16s ease;}
html[data-mode="light"] .sb-theme-switch span{transform:translateX(-14px);}


.scrim[data-omda-sidebar-scrim="1"]{position:fixed;inset:0;z-index:8950;display:block;background:rgba(2,8,23,.58);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease;}
.scrim[data-omda-sidebar-scrim="1"].show{opacity:1;visibility:visible;pointer-events:auto;}
html.omda-sidebar-open,body.omda-sidebar-open{overflow:hidden;}
body.omda-sidebar-open .app,html.omda-sidebar-open body .app{z-index:auto;}

@media (min-width:1200px){
  .app > .sidebar,.sidebar{display:flex;visibility:visible;position:sticky;transform:none;}
  .scrim[data-omda-sidebar-scrim="1"]{display:none;}
}
@media (max-width:1199.98px){
  .app{display:flex;min-height:100vh;}
  .app > .sidebar,.sidebar{display:flex;visibility:visible;position:fixed;top:0;right:0;bottom:0;width:min(288px,84vw);max-width:320px;height:100vh;z-index:9000;transform:translateX(110%);transition:transform .22s cubic-bezier(.2,.8,.2,1);}
  .app > .sidebar.open,.sidebar.open{display:flex;visibility:visible;transform:translateX(0);}
}
@media (max-width:799.98px){
  .app > .sidebar,.sidebar{overflow-y:auto;overflow-x:hidden;}
  .sidebar .sb-nav,.sb-nav{flex:0 0 auto;min-height:auto;overflow:visible;}
  .sb-system-actions{display:grid;position:static;inset:auto;transform:none;margin:8px 12px 0;}
}

/* ─────────────────────────────────────────────────────────────
   2) PAGESHELL CONTRACT — ABSOLUTE SOURCE
   Owns page layout, page headers, dashboard grid, generic cards/panels,
   dashboard cards, catalog rows and KPI card visuals.
───────────────────────────────────────────────────────────── */
@supports selector(body:has(.app)) {
  html:has(.app),
  body:has(.app){height:100%;overflow:hidden;}
  body:has(.app){overscroll-behavior:none;}
}
.app{min-height:100dvh;height:100dvh;overflow:hidden;}
.main-wrap{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  height:100dvh;
  overflow:hidden;
  background:transparent;
}
main,
#pageMain{
  position:relative;
  z-index:1;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  min-height:0;
  max-width:1180px;
  margin:0 auto;
  padding:26px 32px 96px;
  overflow-y:auto;
  overflow-x:hidden;
  scroll-behavior:smooth;
  background:transparent;
  color:var(--omda-text);
}
#pageMain::-webkit-scrollbar{width:8px;height:8px;}
#pageMain::-webkit-scrollbar-track{background:rgba(8,22,38,.18);}
#pageMain::-webkit-scrollbar-thumb{background:rgba(var(--product-rgb),.30);border-radius:999px;}

.page-header,
.hero.osp-header,
.omda-page-shell .hero{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  margin:0 0 22px;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
.page-title span,
.hero h1 .hl,
.omda-ps-title .hl{
  background:linear-gradient(120deg,var(--product-accent-2),var(--product-accent));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero .greet,
.omda-ps-greet{font-size:14px;color:var(--omda-muted);font-weight:800;}
.omda-page-shell,
.omda-standard-page-shell{width:100%;min-height:100%;position:relative;color:var(--omda-text);}
.omda-page-shell .omda-ps-scroll,
.omda-standard-page-shell .omda-standard-scroll{width:100%;min-width:0;overflow:visible;}

.omda-standard-page-profile{display:block;}
.omda-standard-mobile-head-wrap,
.omda-ps-mobile-topbar{display:none;}
.omda-ps-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;}
.omda-ps-status-layer{display:grid;gap:10px;margin-bottom:18px;}
.omda-standard-content-host{width:100%;min-width:0;}

.omda-standard-context-controls{
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  min-width:0;
  margin:0 0 16px;
}

.omda-standard-context-control{
  display:grid;
  gap:6px;
  min-width:190px;
}

.omda-standard-context-control-label{
  font-size:11px;
  font-weight:800;
  color:var(--omda-muted-2);
}

.omda-standard-context-select-wrap{
  position:relative;
  display:block;
  width:100%;
  min-width:0;
}

.omda-standard-context-control .filter-select{
  width:100%;
  min-width:0;
  padding-inline-start:36px;
  padding-inline-end:14px;
  background-image:none;
}

.omda-standard-context-select-chevron{
  position:absolute;
  inset-inline-start:13px;
  top:50%;
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  color:var(--omda-muted);
  transform:translateY(-50%);
  transform-origin:center;
  pointer-events:none;
}

.omda-standard-context-select-chevron svg{
  display:block;
  width:16px;
  height:16px;
  stroke:currentColor;
  fill:none;
}

@media (max-width:799.98px){
  .omda-standard-context-controls{
    display:grid;
    grid-template-columns:1fr;
  }

  .omda-standard-context-control{
    width:100%;
    min-width:0;
  }
}


/* =================================================================
   OMDA Shell v2.1 — StandardPageShell Content Blocks Contract v1

   FAMILY:
   StandardPageShell composition blocks for non-dashboard pages.

   OWNS:
   - Content block container rhythm
   - Section grids
   - Standard content cards
   - Metric-list rows inside content blocks
   - Insight blocks inside content blocks
   - Distribution block visual composition
   - Empty block spacing
   - Responsive content block collapse

   CANONICAL DOM:
   .omda-standard-page-shell .omda-content-blocks
   .omda-section-grid / .omda-content-section-grid
   .omda-content-card
   .omda-section-card-header
   .omda-section-card-title
   .omda-section-card-body
   .omda-metric-list / .omda-metric-row
   .omda-insight-block
   .omda-block-empty

   RUNTIME CONTRACT:
   Products pass contentBlocks descriptors into OMDA.PageShells.standard.
   Shell renders structure; products inject text/data only.

   DOES NOT OWN:
   - Dashboard-only layout
   - TablePanel row rendering
   - Business/domain calculations
   - Product-local card CSS

   STATUS:
   LOCKED — StandardPageShell contentBlocks enabled and Statistics migrated.
================================================================= */
.omda-standard-page-shell .omda-content-blocks{display:grid;gap:18px;width:100%;min-width:0;}
.omda-standard-page-shell .omda-section-grid,
.omda-standard-page-shell .omda-content-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch;width:100%;min-width:0;}
.omda-standard-page-shell .omda-content-card{min-width:0;display:flex;flex-direction:column;min-height:214px;}
.omda-standard-page-shell .omda-content-card-full{grid-column:1/-1;}
.omda-standard-page-shell .omda-section-card-header{min-height:56px;}
.omda-standard-page-shell .omda-section-card-title{display:flex;align-items:center;gap:8px;min-width:0;}
.omda-standard-page-shell .omda-section-card-title span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.omda-standard-page-shell .omda-section-card-icon{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:rgba(var(--product-rgb),.10);color:var(--product-accent);flex:0 0 auto;}
.omda-standard-page-shell .omda-section-card-icon svg{width:15px;height:15px;stroke:currentColor;fill:none;}
.omda-standard-page-shell .omda-section-card-body{flex:1;display:grid;align-content:start;gap:12px;}
.omda-standard-page-shell .omda-metric-list{display:grid;gap:10px;}
.omda-standard-page-shell .omda-metric-row{display:flex;align-items:center;gap:12px;min-height:54px;padding:10px 11px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(148,163,184,.12);}
.omda-standard-page-shell .omda-metric-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:rgba(var(--product-rgb),.10);color:var(--product-accent);flex:0 0 auto;}
.omda-standard-page-shell .omda-metric-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;}
.omda-standard-page-shell .omda-metric-main{min-width:0;flex:1;display:grid;gap:2px;}
.omda-standard-page-shell .omda-metric-name{font-size:13px;font-weight:900;color:var(--text,var(--omda-text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.omda-standard-page-shell .omda-metric-sub{font-size:12px;font-weight:650;color:var(--text-2,var(--omda-muted));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.omda-standard-page-shell .omda-metric-val{font-family:var(--mono,"JetBrains Mono",monospace);font-size:15px;font-weight:900;color:var(--a,var(--product-accent));white-space:nowrap;}
.omda-standard-page-shell .omda-metric-tail{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex:0 0 auto;
}
.omda-standard-page-shell .omda-metric-tail .btn{
  min-height:34px;
}
.omda-standard-page-shell .omda-content-card-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  flex-wrap:wrap;
  margin-top:auto;
  padding-top:4px;
}

.omda-standard-page-shell .omda-insight-block{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,rgba(var(--product-rgb),.12),rgba(var(--product-rgb),.04));border:1px solid rgba(var(--product-rgb),.22);border-radius:var(--omda-r-card);padding:14px 18px;box-shadow:var(--omda-shadow-card);backdrop-filter:blur(14px);}
.omda-standard-page-shell .omda-insight-main{display:flex;align-items:center;gap:12px;min-width:0;}
.omda-standard-page-shell .omda-insight-icon{width:40px;height:40px;border-radius:13px;background:rgba(var(--product-rgb),.12);border:1px solid rgba(var(--product-rgb),.22);display:grid;place-items:center;color:var(--product-accent);flex:0 0 auto;}
.omda-standard-page-shell .omda-insight-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;}
.omda-standard-page-shell .omda-insight-copy{min-width:0;display:grid;gap:2px;}
.omda-standard-page-shell .omda-insight-title{font-size:13px;font-weight:900;color:var(--text,var(--omda-text));}
.omda-standard-page-shell .omda-insight-sub{font-size:12px;font-weight:650;color:var(--text-2,var(--omda-muted));line-height:1.55;}
.omda-standard-page-shell .omda-block-empty{padding:28px 12px;}
html[data-mode="light"] .omda-standard-page-shell .omda-metric-row{background:rgba(15,27,45,.035);border-color:rgba(111,129,154,.16);}
html[data-mode="light"] .omda-standard-page-shell .omda-insight-block{background:linear-gradient(135deg,rgba(var(--product-rgb),.12),rgba(255,255,255,.72));border-color:rgba(var(--product-rgb),.24);}
@media(max-width:1199.98px){
  .omda-standard-page-shell .omda-section-grid,
  .omda-standard-page-shell .omda-content-section-grid{gap:16px;}
}
@media(max-width:900px){
  .omda-standard-page-shell .omda-section-grid,
  .omda-standard-page-shell .omda-content-section-grid{grid-template-columns:1fr;}
  .omda-standard-page-shell .omda-content-card{min-height:0;}
}


/* =================================================================
   OMDA Settings Shell Contract v0.1
   FAMILY:
   Global settings content renderer mounted inside StandardPageShell.

   OWNS:
   - Settings page content layout
   - Compact two-column settings sections
   - Optional accordion sections
   - Bottom row for asset/action cards
   - Settings field grid
   - Settings asset preview slots
   - Settings actions footer

   DOES NOT OWN:
   - AppShell / Topbar / Sidebar / mobile nav
   - Product-specific settings schema
   - Firestore / Storage adapters
   - Report business semantics

   STATUS:
   CANDIDATE.
================================================================= */
.omda-standard-page-shell .omda-settings-shell{display:grid;gap:16px;width:100%;min-width:0;font-family:var(--omda-font-ui);}
.omda-standard-page-shell .omda-settings-layout{display:block;min-width:0;}
.omda-standard-page-shell .omda-settings-main{display:grid;grid-template-columns:1fr;gap:26px;align-items:start;min-width:0;}
.omda-standard-page-shell .omda-settings-group{display:grid;gap:16px;min-width:0;}
.omda-standard-page-shell .omda-settings-group-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;min-width:0;}

.omda-standard-page-shell .omda-settings-launch-card{
  width:100%;
  min-width:0;
  min-height:112px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:18px;
  border-radius:var(--omda-r-card);
  border:1px solid var(--line,var(--omda-border));
  background:var(--card,var(--omda-surface));
  box-shadow:var(--omda-shadow-card);
  color:inherit;
  text-align:inherit;
  font:inherit;
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.omda-standard-page-shell .omda-settings-launch-card:hover{
  border-color:rgba(var(--product-rgb),.34);
  box-shadow:var(--omda-shadow);
  transform:translateY(-1px);
}

.omda-standard-page-shell .omda-settings-launch-card:focus-visible{
  outline:2px solid var(--product-accent);
  outline-offset:2px;
}

.omda-standard-page-shell .omda-settings-launch-card-main{
  display:flex;
  align-items:flex-start;
  gap:11px;
  min-width:0;
}

.omda-standard-page-shell .omda-settings-launch-card-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:rgba(var(--product-rgb),.10);
  border:1px solid rgba(var(--product-rgb),.18);
  color:var(--product-accent);
}

.omda-standard-page-shell .omda-settings-launch-card-icon svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  fill:none;
}

.omda-standard-page-shell .omda-settings-launch-card-copy{
  display:grid;
  gap:4px;
  min-width:0;
}

.omda-standard-page-shell .omda-settings-launch-card-title{
  font-size:15px;
  font-weight:800;
  line-height:1.35;
  color:var(--text,var(--omda-text));
}

.omda-standard-page-shell .omda-settings-launch-card-subtitle{
  font-size:12px;
  font-weight:500;
  line-height:1.5;
  color:var(--text-2,var(--omda-muted));
}

.omda-standard-page-shell .omda-settings-launch-card-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

.omda-standard-page-shell .omda-settings-launch-card-open{
  font-size:12px;
  font-weight:800;
  color:var(--product-accent);
}

.omda-settings-section-modal{
  width:min(920px,calc(100vw - 32px));
  max-width:920px;
}

.omda-settings-section-modal .omda-modal-body{
  padding:0;
}

.omda-settings-section-modal .omda-settings-modal-scope{
  width:100%;
  min-width:0;
  padding:18px;
}

.omda-standard-page-shell .omda-settings-modal-content{
  display:grid;
  gap:14px;
  min-width:0;
}

.omda-settings-modal-footer{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.omda-settings-modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.omda-settings-modal-status{
  min-width:0;
  font-size:12px;
  font-weight:800;
  color:var(--text-2,var(--omda-muted));
}

.omda-settings-modal-status[data-tone="ok"]{
  color:var(--ok,#22c55e);
}

.omda-settings-modal-status[data-tone="err"],
.omda-settings-modal-status[data-tone="error"]{
  color:var(--bad,#ef4444);
}

@media(max-width:799.98px){
  .omda-standard-page-shell .omda-settings-launch-card{
    min-height:96px;
    padding:15px;
  }

  .omda-standard-page-shell .omda-settings-launch-card-meta{
    align-self:center;
  }

  .omda-settings-section-modal{
    width:calc(100vw - 16px);
    max-width:calc(100vw - 16px);
  }

  .omda-settings-section-modal .omda-settings-modal-scope{
    padding:14px;
  }

  .omda-settings-modal-footer{
    align-items:stretch;
    flex-direction:column;
  }

  .omda-settings-modal-actions{
    width:100%;
  }

  .omda-settings-modal-actions .btn{
    flex:1;
    justify-content:center;
  }
}
.omda-standard-page-shell .omda-settings-group-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;min-width:0;padding:8px 2px 8px;border-bottom:1px solid var(--line,var(--omda-border));}
.omda-standard-page-shell .omda-settings-group-heading-copy{min-width:0;}
.omda-standard-page-shell .omda-settings-group-heading-title{margin:0;font-size:17px;font-weight:800;line-height:1.25;color:var(--text,var(--omda-text));}
.omda-standard-page-shell .omda-settings-group-heading-subtitle{margin:4px 0 0;font-size:12px;font-weight:400;line-height:1.45;color:var(--text-2,var(--omda-muted));}



.omda-standard-page-shell .omda-settings-section{min-width:0;display:grid;gap:12px;padding:16px;border-radius:var(--omda-r-card);background:var(--card,var(--omda-surface));border:1px solid var(--line,var(--omda-border));box-shadow:var(--omda-shadow-card);}
.omda-standard-page-shell .omda-settings-section-full{grid-column:1/-1;}
.omda-standard-page-shell .omda-settings-section-head{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;padding:0;margin:0;border:0;background:transparent;color:inherit;text-align:inherit;font:inherit;}
.omda-standard-page-shell button.omda-settings-section-head{cursor:pointer;}
.omda-standard-page-shell .omda-settings-section-title-wrap{display:flex;align-items:flex-start;gap:10px;min-width:0;}
.omda-standard-page-shell .omda-settings-section-copy{min-width:0;}
.omda-standard-page-shell .omda-settings-section-icon{width:34px;height:34px;border-radius:13px;display:grid;place-items:center;background:rgba(var(--product-rgb),.10);border:1px solid rgba(var(--product-rgb),.18);color:var(--product-accent);flex:0 0 auto;}
.omda-standard-page-shell .omda-settings-section-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;}
.omda-standard-page-shell .omda-settings-section-title{margin:0;font-size:15px;font-weight:700;color:var(--text,var(--omda-text));line-height:1.35;}
.omda-standard-page-shell .omda-settings-section-subtitle{margin:3px 0 0;font-size:12px;font-weight:400;line-height:1.45;color:var(--text-2,var(--omda-muted));}
.omda-standard-page-shell .omda-settings-section-head-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.omda-standard-page-shell .omda-settings-section-chevron{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;color:var(--text-2,var(--omda-muted));background:rgba(148,163,184,.08);transition:transform .18s ease,background .18s ease,color .18s ease;}
.omda-standard-page-shell .omda-settings-section-chevron svg{display:block;width:17px;height:17px;stroke:currentColor;fill:none;}
.omda-standard-page-shell .omda-settings-section.is-open .omda-settings-section-chevron{transform:rotate(180deg);background:rgba(var(--product-rgb),.10);color:var(--product-accent);}
.omda-standard-page-shell .omda-settings-section.is-collapsed .omda-settings-section-chevron{transform:rotate(0deg);}
.omda-standard-page-shell .omda-settings-section-body{display:grid;gap:12px;min-width:0;}
.omda-standard-page-shell .omda-settings-section.is-collapsed{min-height:94px;}
.omda-standard-page-shell .omda-settings-section.is-collapsed .omda-settings-section-head{min-height:60px;align-items:center;}
.omda-standard-page-shell .omda-settings-section.is-collapsed .omda-settings-section-body{display:none;}
.omda-standard-page-shell .omda-settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px;min-width:0;}
.omda-standard-page-shell .omda-settings-field{display:grid;gap:6px;min-width:0;}
.omda-standard-page-shell .omda-settings-field-full{grid-column:1/-1;}
.omda-standard-page-shell .omda-settings-label{font-size:12px;font-weight:700;color:var(--text,var(--omda-text));}
.omda-standard-page-shell .omda-settings-control{width:100%;min-width:0;font-weight:600;}
.omda-standard-page-shell .omda-settings-help{font-size:11px;font-weight:550;color:var(--text-3,var(--omda-muted-2));line-height:1.45;}
.omda-standard-page-shell .omda-settings-toggle{display:flex;align-items:center;gap:9px;min-height:34px;font-size:13px;font-weight:650;color:var(--text,var(--omda-text));}
.omda-standard-page-shell .omda-settings-toggle input{width:17px;height:17px;accent-color:var(--product-accent);}
.omda-standard-page-shell .omda-settings-assets{display:grid;gap:10px;}
.omda-standard-page-shell .omda-settings-asset{display:grid;gap:9px;min-width:0;}
.omda-standard-page-shell .omda-settings-asset.is-conditionally-hidden{display:none;}
.omda-standard-page-shell .omda-settings-asset-preview{min-height:104px;border-radius:15px;border:1px dashed rgba(148,163,184,.30);background:rgba(255,255,255,.035);display:grid;place-items:center;overflow:hidden;min-width:0;}
.omda-standard-page-shell .omda-settings-asset-preview.has-media{background:rgba(255,255,255,.025);border-style:solid;}
.omda-standard-page-shell .omda-settings-asset-preview img{max-width:100%;max-height:138px;object-fit:contain;display:block;}
.omda-standard-page-shell .omda-settings-asset-empty{display:grid;justify-items:center;gap:7px;padding:14px;text-align:center;color:var(--text-2,var(--omda-muted));font-size:12px;font-weight:800;}
.omda-standard-page-shell .omda-settings-asset-icon{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:rgba(var(--product-rgb),.10);color:var(--product-accent);}
.omda-standard-page-shell .omda-settings-asset-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;}
.omda-standard-page-shell .omda-settings-asset-actions,
.omda-standard-page-shell .omda-settings-section-actions,
.omda-standard-page-shell .omda-settings-save-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.omda-standard-page-shell .omda-settings-savebar{justify-self:end;width:max-content;max-width:100%;display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:0;padding:8px 9px 8px 12px;border-radius:16px;background:var(--card,var(--omda-surface));border:1px solid var(--line,var(--omda-border));box-shadow:var(--omda-shadow);}
.omda-standard-page-shell .omda-settings-savebar .btn{min-height:36px;padding:7px 12px;border-radius:12px;}
.omda-standard-page-shell .omda-settings-savebar .btn svg{width:16px;height:16px;}
.omda-standard-page-shell .omda-settings-save-status{font-size:12px;font-weight:850;color:var(--text-2,var(--omda-muted));min-width:0;}
.omda-standard-page-shell .omda-settings-save-status[data-tone="ok"]{color:var(--ok,#22c55e);}
.omda-standard-page-shell .omda-settings-save-status[data-tone="err"],
.omda-standard-page-shell .omda-settings-save-status[data-tone="error"]{color:var(--bad,#ef4444);}
.omda-standard-page-shell .omda-settings-save-status[data-tone="warn"]{color:var(--warn,#f59e0b);}
html[data-mode="light"] .omda-standard-page-shell .omda-settings-asset-preview{background:rgba(15,27,45,.025);border-color:rgba(111,129,154,.24);}
@media(max-width:1199.98px){
  .omda-standard-page-shell .omda-settings-main{gap:22px;}
  .omda-standard-page-shell .omda-settings-group-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
}
@media(max-width:799.98px){
  .omda-standard-page-shell .omda-settings-group-main,
  .omda-standard-page-shell .omda-settings-fields{grid-template-columns:1fr;}
  .omda-standard-page-shell .omda-settings-section{padding:15px;border-radius:18px;}
  .omda-standard-page-shell .omda-settings-savebar{
    width:100%;
    align-items:center;
    flex-direction:row;
    justify-content:flex-start;
    gap:8px;
    margin:0 0 4px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .omda-standard-page-shell .omda-settings-save-status:empty{display:none;}
  .omda-standard-page-shell .omda-settings-save-actions{justify-content:flex-start;flex-wrap:nowrap;}
  .omda-standard-page-shell .omda-settings-save-actions .btn{flex:0 0 auto;justify-content:center;}
}
@media(max-width:620px){
  .omda-standard-page-shell .omda-settings-section-head{align-items:flex-start;}
  .omda-standard-page-shell .omda-settings-asset-actions .btn{flex:1;justify-content:center;}
}



[data-omda-settings-asset-presentation="signature"] .omda-settings-asset-preview{background:#fff;border-color:rgba(111,129,154,.28);}
[data-omda-settings-asset-presentation="signature"] .omda-settings-asset-preview.has-media{background:#fff;}
[data-omda-settings-asset-presentation="signature"] .omda-settings-asset-preview img{background:#fff;border-radius:10px;padding:8px;}


/* =================================================================
   OMDA Settings Modal Cards Mockup Alignment v1

   Visual owner:
   .omda-settings-shell.is-modal-cards

   Desktop:
   identity   → 2 columns
   report     → 3 columns
   operations → 1 card on the start/right third

   Tablet:
   identity   → 2 columns
   report     → 2 columns + logo full width
   operations → full width

   Mobile:
   grouped list surfaces
   ================================================================= */

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-main{
  gap:30px;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-group{
  gap:10px;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-group-heading{
  align-items:flex-start;
  padding:0 2px 10px;
  border-bottom:0;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-group-heading-title{
  font-size:18px;
  font-weight:800;
  line-height:1.25;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-group-heading-subtitle{
  margin-top:4px;
  font-size:12px;
  line-height:1.45;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-group-main{
  gap:14px;
  align-items:stretch;
}

/* Desktop identity:
   business on the visual right,
   personal identity on the visual left. */

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
[data-omda-settings-group-wrap="identity-group"]
.omda-settings-group-main{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
[data-omda-settings-group-wrap="identity-group"]
.omda-settings-launch-card:nth-child(1){
  grid-column:2;
  grid-row:1;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
[data-omda-settings-group-wrap="identity-group"]
.omda-settings-launch-card:nth-child(2){
  grid-column:1;
  grid-row:1;
}

/* Desktop report:
   signature right,
   report preferences center,
   logo left. */

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
[data-omda-settings-group-wrap="report-group"]
.omda-settings-group-main{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
[data-omda-settings-group-wrap="report-group"]
.omda-settings-launch-card:nth-child(1){
  grid-column:1;
  grid-row:1;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
[data-omda-settings-group-wrap="report-group"]
.omda-settings-launch-card:nth-child(2){
  grid-column:2;
  grid-row:1;
}

/* Mockup card geometry. */

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card{
  min-height:122px;
  align-items:center;
  gap:16px;
  padding:19px 20px;
  border-radius:17px;
  border:1px solid var(--line,var(--omda-border));
  background:var(--card,var(--omda-surface));
  box-shadow:none;
  transform:none;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card:hover{
  border-color:rgba(var(--product-rgb),.34);
  box-shadow:none;
  transform:none;
  background:
    linear-gradient(
      rgba(var(--product-rgb),.025),
      rgba(var(--product-rgb),.025)
    ),
    var(--card,var(--omda-surface));
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-main{
  align-items:center;
  gap:12px;
  flex:1 1 auto;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:13px;
  background:rgba(var(--product-rgb),.10);
  border:1px solid rgba(var(--product-rgb),.16);
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-icon svg{
  width:19px;
  height:19px;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-copy{
  gap:5px;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-title{
  font-size:16px;
  font-weight:800;
  line-height:1.35;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-subtitle{
  font-size:12px;
  font-weight:500;
  line-height:1.5;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-meta{
  align-self:center;
  margin-inline-start:8px;
}

.omda-standard-page-shell
.omda-settings-shell.is-modal-cards
.omda-settings-launch-card-open{
  font-size:11px;
  font-weight:750;
  color:var(--text-3,var(--omda-muted-2));
}

/* ================================================================
   TABLET — canonical 800–1199.98
   ================================================================ */

@media(min-width:800px) and (max-width:1199.98px){

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-main{
    gap:28px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-group-main{
    gap:14px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="identity-group"]
  .omda-settings-group-main{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="identity-group"]
  .omda-settings-launch-card:nth-child(1){
    grid-column:2;
    grid-row:1;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="identity-group"]
  .omda-settings-launch-card:nth-child(2){
    grid-column:1;
    grid-row:1;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="report-group"]
  .omda-settings-group-main{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

    .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="report-group"]
  .omda-settings-launch-card:nth-child(1){
    grid-column:1;
    grid-row:1;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="report-group"]
  .omda-settings-launch-card:nth-child(2){
    grid-column:2;
    grid-row:1;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card{
    min-height:118px;
  }
}

/* ================================================================
   MOBILE — canonical <800
   grouped list cards matching the approved reference
   ================================================================ */

@media(max-width:799.98px){

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-main{
    gap:27px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-group{
    gap:9px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-group-heading{
    padding:0 4px 9px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-group-heading-title{
    font-size:17px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-group-heading-subtitle{
    display:none;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-group-main{
    display:flex;
    flex-direction:column;
    gap:0;
    overflow:hidden;
    border:1px solid var(--line,var(--omda-border));
    border-radius:18px;
    background:var(--card,var(--omda-surface));
    box-shadow:none;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card{
    min-height:80px;
    padding:14px 16px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card:hover{
    border:0;
    background:rgba(var(--product-rgb),.035);
    box-shadow:none;
    transform:none;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card +
  .omda-settings-launch-card{
    border-top:
      1px solid
      var(--line,var(--omda-border));
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card-main{
    align-items:center;
    gap:12px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card-icon{
    width:40px;
    height:40px;
    flex:0 0 40px;
    border-radius:13px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card-title{
    font-size:16px;
    line-height:1.3;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card-subtitle{
    font-size:12px;
    line-height:1.4;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card-meta{
    margin-inline-start:10px;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  .omda-settings-launch-card-open{
    font-size:10px;
    font-weight:700;
  }

  /* Mobile order:
     business → personal */

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="identity-group"]
  .omda-settings-launch-card:nth-child(2){
    order:1;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="identity-group"]
  .omda-settings-launch-card:nth-child(1){
    order:2;
  }

  /* Mobile order:
     signature → logo */

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="report-group"]
  .omda-settings-launch-card:nth-child(1){
    order:1;
  }

  .omda-standard-page-shell
  .omda-settings-shell.is-modal-cards
  [data-omda-settings-group-wrap="report-group"]
  .omda-settings-launch-card:nth-child(2){
    order:2;
  }
}

/* =================================================================
   OMDA Settings Report Logo Contract v0.1
================================================================= */


/* Component */
.omda-standard-page-shell .omda-report-logo{
  display:grid;
  gap:16px;
  min-width:0;
}
.omda-standard-page-shell .omda-report-logo-top{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:14px;
  align-items:center;
}
.omda-standard-page-shell .omda-report-logo-preview-box{
  min-height:118px;
  border-radius:18px;
  border:1px dashed rgba(148,163,184,.32);
  background:rgba(255,255,255,.04);
  display:grid;
  place-items:center;
  overflow:hidden;
  min-width:0;
}
.omda-standard-page-shell .omda-report-logo-preview-box.has-media{
  background:#fff;
  border-style:solid;
}
.omda-standard-page-shell .omda-report-logo-preview-box img{
  max-width:124px;
  max-height:98px;
  object-fit:contain;
  display:block;
}
.omda-standard-page-shell .omda-report-logo-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-width:0;
}
.omda-standard-page-shell .omda-report-logo-meta{
  width:100%;
  font-size:11px;
  font-weight:700;
  color:var(--text-3,var(--omda-muted-2));
  line-height:1.45;
}

/* Size */
.omda-standard-page-shell .omda-report-logo-size{
  display:grid;
  gap:8px;
  padding-top:4px;
  border-top:1px solid var(--line,var(--omda-border));
}
.omda-standard-page-shell .omda-report-logo-control-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.omda-standard-page-shell .omda-report-logo-control-head strong{
  font-size:14px;
  font-weight:950;
  color:var(--product-accent);
}
.omda-standard-page-shell .omda-report-logo-control-head span{
  font-size:12px;
  font-weight:900;
  color:var(--text-2,var(--omda-muted));
}
.omda-standard-page-shell .omda-report-logo-range{
  width:100%;
  accent-color:var(--product-accent);
}
.omda-standard-page-shell .omda-report-logo-range-labels{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  font-weight:700;
  color:var(--text-3,var(--omda-muted-2));
}

/* Live report-header preview */
.omda-standard-page-shell .omda-report-logo-live{
  position:relative;
  display:grid;
  gap:12px;
  min-height:180px;
  padding:18px 20px 32px;
  border-radius:16px;
  background:#fff;
  color:#172033;
  border:1px solid rgba(111,129,154,.24);
  overflow:hidden;
  direction:rtl;
}
.omda-standard-page-shell .omda-report-logo-live-copy{
  display:grid;
  gap:3px;
  min-width:0;
  text-align:right;
}
.omda-standard-page-shell .omda-report-logo-live-copy strong{
  font-size:22px;
  font-weight:950;
  line-height:1.15;
  color:#172033;
}
.omda-standard-page-shell .omda-report-logo-live-copy span{
  font-size:13px;
  font-weight:750;
  line-height:1.35;
  color:#667085;
}
.omda-standard-page-shell .omda-report-logo-live-mark{
  width:var(--omda-report-logo-size,160px);
  display:grid;
  place-items:center;
  align-self:center;
  justify-self:center;
  min-width:80px;
  min-height:70px;
  border-radius:10px;
  background:rgba(15,27,45,.035);
  overflow:hidden;
}
.omda-standard-page-shell .omda-report-logo-live-mark img{
  max-width:100%;
  max-height:140px;
  object-fit:contain;
  display:block;
}
.omda-standard-page-shell .omda-report-logo-live-mark span{
  font-size:13px;
  font-weight:900;
  color:#667085;
}
.omda-standard-page-shell .omda-report-logo-live-caption{
  position:absolute;
  inset-inline:0;
  bottom:0;
  min-height:28px;
  display:grid;
  place-items:center;
  background:#111827;
  color:#9ca3af;
  font-size:11px;
  font-weight:850;
}

html[data-mode="light"] .omda-standard-page-shell .omda-report-logo-live-caption{
  background:#f1f5f9;
  color:#64748b;
  border-top:1px solid rgba(111,129,154,.20);
}


/* Preview layouts */
.omda-standard-page-shell .omda-report-logo-live--split-right{
  grid-template-columns:minmax(112px,auto) minmax(0,1fr);
  align-items:center;
}
.omda-standard-page-shell .omda-report-logo-live--split-right .omda-report-logo-live-copy{
  grid-column:2;
  grid-row:1;
  align-self:center;
  justify-self:start;
  text-align:right;
}
.omda-standard-page-shell .omda-report-logo-live--split-right .omda-report-logo-live-mark{
  grid-column:1;
  grid-row:1;
  align-self:center;
  justify-self:center;
  width:min(var(--omda-report-logo-size,160px),190px);
  max-width:100%;
}

.omda-standard-page-shell .omda-report-logo-live--center-stack{
  grid-template-columns:1fr;
  justify-items:center;
  text-align:center;
  align-content:center;
}
.omda-standard-page-shell .omda-report-logo-live--center-stack .omda-report-logo-live-mark{
  order:-1;
  width:min(var(--omda-report-logo-size,160px),210px);
  max-width:70%;
  min-height:82px;
}
.omda-standard-page-shell .omda-report-logo-live--center-stack .omda-report-logo-live-copy{
  text-align:center;
}

.omda-standard-page-shell .omda-report-logo-live--large-side{
  grid-template-columns:minmax(0,0.85fr) minmax(180px,1.15fr);
  align-items:center;
}
.omda-standard-page-shell .omda-report-logo-live--large-side .omda-report-logo-live-mark{
  width:min(calc(var(--omda-report-logo-size,160px) + 44px),260px);
  max-width:78%;
  min-height:118px;
}
.omda-standard-page-shell .omda-report-logo-live--large-side .omda-report-logo-live-mark img{
  max-height:150px;
}

/* Layout choices */
.omda-standard-page-shell .omda-report-logo-layouts{
  display:grid;
  gap:9px;
}
.omda-standard-page-shell .omda-report-logo-option{
  position:relative;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:10px;
  align-items:center;
  min-height:62px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line,var(--omda-border));
  background:rgba(255,255,255,.035);
  cursor:pointer;
}
.omda-standard-page-shell .omda-report-logo-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.omda-standard-page-shell .omda-report-logo-option-mark{
  width:32px;
  height:32px;
  border-radius:10px;
  background:rgba(148,163,184,.20);
  border:1px solid rgba(148,163,184,.22);
}
.omda-standard-page-shell .omda-report-logo-option--split-right .omda-report-logo-option-mark{
  background:linear-gradient(90deg,rgba(148,163,184,.24) 0 34%,rgba(var(--product-rgb),.42) 34% 100%);
}
.omda-standard-page-shell .omda-report-logo-option--center-stack .omda-report-logo-option-mark{
  background:linear-gradient(180deg,rgba(var(--product-rgb),.46) 0 42%,rgba(148,163,184,.24) 42% 100%);
}
.omda-standard-page-shell .omda-report-logo-option--large-side .omda-report-logo-option-mark{
  background:linear-gradient(90deg,rgba(148,163,184,.24) 0 58%,rgba(var(--product-rgb),.48) 58% 100%);
}
.omda-standard-page-shell .omda-report-logo-option-copy{
  display:grid;
  gap:2px;
  min-width:0;
}
.omda-standard-page-shell .omda-report-logo-option-copy strong{
  font-size:13px;
  font-weight:950;
  color:var(--text,var(--omda-text));
}
.omda-standard-page-shell .omda-report-logo-option-copy em{
  font-style:normal;
  font-size:11px;
  font-weight:700;
  color:var(--text-2,var(--omda-muted));
}
.omda-standard-page-shell .omda-report-logo-option:has(input:checked){
  border-color:var(--product-accent);
  background:rgba(var(--product-rgb),.10);
}
.omda-standard-page-shell .omda-report-logo-option:has(input:checked) .omda-report-logo-option-mark{
  outline:2px solid rgba(var(--product-rgb),.22);
}

/* PDF repeat */
.omda-standard-page-shell .omda-report-logo-repeat{
  display:grid;
  gap:8px;
}
.omda-standard-page-shell .omda-report-logo-repeat-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.omda-standard-page-shell .omda-report-logo-repeat-option{
  position:relative;
  display:grid;
  place-items:center;
  min-height:44px;
  padding:8px 10px;
  border-radius:13px;
  border:1px solid var(--line,var(--omda-border));
  background:rgba(255,255,255,.035);
  font-size:12px;
  font-weight:900;
  color:var(--text,var(--omda-text));
  cursor:pointer;
  text-align:center;
}
.omda-standard-page-shell .omda-report-logo-repeat-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.omda-standard-page-shell .omda-report-logo-repeat-option:has(input:checked){
  border-color:var(--product-accent);
  background:rgba(var(--product-rgb),.10);
  color:var(--product-accent);
}

/* Light */
html[data-mode="light"] .omda-standard-page-shell .omda-report-logo-preview-box{
  background:rgba(15,27,45,.025);
  border-color:rgba(111,129,154,.24);
}
html[data-mode="light"] .omda-standard-page-shell .omda-report-logo-option,
html[data-mode="light"] .omda-standard-page-shell .omda-report-logo-repeat-option{
  background:#fff;
}

/* Responsive */
@media(max-width:799.98px){
  .omda-standard-page-shell .omda-report-logo-repeat-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .omda-standard-page-shell .omda-report-logo{
    gap:13px;
  }
  .omda-standard-page-shell .omda-report-logo-preview-box{
    min-height:112px;
  }
  .omda-standard-page-shell .omda-report-logo-live{
    min-height:168px;
    padding:14px 14px 30px;
  }
  .omda-standard-page-shell .omda-report-logo-live-copy strong{
    font-size:18px;
  }
  .omda-standard-page-shell .omda-report-logo-option{
    grid-template-columns:36px minmax(0,1fr);
    min-height:58px;
  }
}


/* =================================================================
   OMDA Settings Signature Contract v0.1
================================================================= */
.omda-modal.omda-signature-modal{max-width:760px;}
.omda-signature-pad{display:grid;gap:12px;min-width:0;}
.omda-signature-pad-note{font-size:13px;font-weight:750;line-height:1.45;color:var(--text-2,var(--omda-muted));}
.omda-signature-pad-canvas-wrap{height:240px;border-radius:18px;border:1px dashed rgba(148,163,184,.34);background:rgba(255,255,255,.045);display:grid;place-items:center;overflow:hidden;touch-action:none;min-width:0;}
.omda-signature-pad-canvas{display:block;width:100%;height:100%;background:rgba(255,255,255,.96);cursor:crosshair;touch-action:none;}
[data-omda-settings-asset-presentation="signature"] .omda-signature-preview{
  height:240px;
  min-height:0;
  padding:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:18px;
  box-sizing:border-box;
}
[data-omda-settings-asset-presentation="signature"] .omda-signature-preview img{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
  box-sizing:border-box;
}
html[data-mode="light"] .omda-signature-pad-canvas-wrap{background:rgba(15,27,45,.025);border-color:rgba(111,129,154,.28);}
html[data-mode="light"] .omda-signature-pad-canvas{background:#fff;}
@media(max-width:799.98px){
  .omda-modal.omda-signature-modal{width:min(100%,calc(100vw - 20px));}
  .omda-signature-pad-canvas-wrap,
  [data-omda-settings-asset-presentation="signature"] .omda-signature-preview{height:220px;}
}
@media(max-width:520px){
  .omda-signature-pad-canvas-wrap,
  [data-omda-settings-asset-presentation="signature"] .omda-signature-preview{
    height:190px;
    border-radius:16px;
  }
}


@media(max-width:620px){
  .omda-standard-page-shell .omda-content-blocks{gap:14px;}
  .omda-standard-page-shell .omda-section-grid,
  .omda-standard-page-shell .omda-content-section-grid{gap:14px;}
  .omda-standard-page-shell .omda-section-card-header{min-height:0;padding:14px 15px;}
  .omda-standard-page-shell .omda-section-card-body{padding:14px;}
  .omda-standard-page-shell .omda-metric-row{min-height:50px;padding:10px;}
  .omda-standard-page-shell .omda-metric-tail{
    align-items:flex-end;
    flex-direction:column;
  }
  .omda-standard-page-shell .omda-content-card-actions{
    width:100%;
  }
  .omda-standard-page-shell .omda-content-card-actions .btn{
    flex:1 1 auto;
  }

  .omda-standard-page-shell .omda-insight-block{padding:13px 14px;align-items:flex-start;}
  .omda-standard-page-shell .omda-insight-main{align-items:flex-start;}
}

/* =================================================================
   OMDA Shell v5.3 — Card / Panel / Section Contract

   FAMILY:
   Base containers, panels and section cards.

   OWNS:
   - Generic card/panel/section surface DNA
   - Header/title/subtitle/body structure
   - Side-card and dashboard-card shared visual DNA
   - Light/dark card rendering
   - Section title/header rhythm

   CANONICAL:
   .omda-card
   .section
   .panel
   .section-card-header
   .section-card-title
   .section-card-sub
   .section-card-body
   .section-body

   SUPPORTED CONTEXT ALIASES:
   .case-card
   .table-card
   .side-card / .side-card-hd / .side-card-title / .side-card-body

   DOES NOT OWN:
   - Page-level grids
   - Form field layout
   - Empty-state body copy
   - Product-specific business card content

   RULE:
   Context contracts may adjust placement/spacing only. They must not
   redefine a parallel card surface system.

   STATUS:
   LOCKED — section-card-sub added to global contract.
================================================================= */
.section,
.panel,
.case-card,
.table-card,
.omda-card,
.side-card{
  background:linear-gradient(180deg,rgba(17,29,44,.94),rgba(8,18,32,.91));
  border:1px solid var(--omda-border,var(--line));
  border-radius:var(--omda-r-card,var(--radius,20px));
  box-shadow:var(--omda-shadow-card,var(--shadow));
  color:var(--omda-text,var(--text));
  overflow:hidden;
}
html[data-mode="light"] .section,
html[data-mode="light"] .panel,
html[data-mode="light"] .case-card,
html[data-mode="light"] .table-card,
html[data-mode="light"] .omda-card,
html[data-mode="light"] .side-card{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,249,252,.94));
  border-color:var(--line-2,rgba(111,129,154,.22));
  box-shadow:0 14px 34px rgba(15,27,45,.075);
  color:var(--text,#0f1b2d);
}
.omda-card{padding:20px;}
.omda-card-sub{color:var(--omda-muted);font-size:13px;font-weight:700;}
.section-card-header,
.side-card-hd{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
  border-bottom:1px solid var(--omda-border,var(--line));
}
.section-card-title,
.side-card-title{font-size:14px;font-weight:900;color:var(--omda-text);}
.section-card-body,
.section-body,
.side-card-body{padding:16px;}
.section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap;}

/* ============================================================
   OMDA Shell — Terminal Pairing Narrow Actions Projection
   Flow-specific marker only.
   Existing button identity and global section-header behavior
   remain unchanged at all other viewport widths.
============================================================ */
@media (max-width:399.98px){
  .omda-terminal-pairing-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }

  .omda-terminal-pairing-actions
  [data-terminal-approve-pairing]{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
  }

  .omda-terminal-pairing-actions
  [data-terminal-reject-pairing],
  .omda-terminal-pairing-actions
  [data-terminal-open-pairing]{
    width:100%;
  }

  .omda-terminal-pairing-actions
  [data-terminal-pairing-approval-status]{
    grid-column:1 / -1;
    grid-row:3;
  }
}

/* ═══════════════════════════════════════════════════════════════
   OMDA Shell v5.3 — Global Metrics / KPI Card Contract
   Runtime canonical DOM:
     .stats       = metrics grid
     .sc          = metric/KPI card
     .sc-icon/.ic = metric icon
     .label/.k    = metric label
     .value/.v    = metric value
     .sub         = metric subtext
     .sc-continue = continue/action metric card
   Products inject values/content only.
═══════════════════════════════════════════════════════════════ */
.stats{
  display:grid;
  gap:14px;
  margin:0 0 20px;
  align-items:stretch;
  grid-template-columns:repeat(auto-fit,minmax(0,1fr));
}
.stats > .sc{min-width:0;}
.stats[data-count="1"]{grid-template-columns:1fr;}
.stats[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr));}
.stats[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr));}
.stats[data-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr));}
.stats[data-count="5"]{grid-template-columns:repeat(5,minmax(0,1fr));}
.stats[data-count="6"]{grid-template-columns:repeat(5,minmax(0,1fr));}
.sc{
  min-width:0;
  min-height:132px;
  position:relative;
  overflow:hidden;
  padding:18px;
  background:linear-gradient(180deg,rgba(17,29,44,.94),rgba(8,18,32,.91));
  border:1px solid var(--omda-border);
  border-radius:var(--omda-r-card);
  box-shadow:var(--omda-shadow-card);
  transition:transform .15s,box-shadow .15s,border-color .15s,background .15s;
}
.sc::before{display:none;}
.sc:hover{transform:translateY(-3px);box-shadow:var(--omda-shadow);border-color:var(--omda-border-2);}
.sc-icon,
.sc .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:14px;background:rgba(var(--product-rgb),.12);color:var(--product-accent);}
.sc-icon svg,
.sc .ic svg{display:block;width:22px;height:22px;min-width:22px;min-height:22px;max-width:22px;max-height:22px;flex:0 0 22px;stroke:currentColor;fill:none;stroke-width:2;}
.sc .label,
.sc .k{font-size:12px;font-weight:700;color:var(--omda-muted);text-transform:none;letter-spacing:0;margin:0;}
.sc .value,
.sc .v{
  font-family:var(--mono,"JetBrains Mono",monospace);
  font-size:32px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.03em;
  line-height:1;
  color:var(--omda-text);
  margin:4px 0 6px;
}
.sc .sub{font-size:12px;color:var(--omda-muted);font-weight:600;}

.sc-trend{
  min-height:18px;
  display:flex;
  align-items:center;
  gap:4px;
  margin-top:4px;
  font-family:var(--mono);
  font-size:12px;
  font-weight:700;
  line-height:1;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.sc-trend.tone-success{
  color:var(--ok,#22c55e);
}

.sc-trend.tone-danger{
  color:var(--bad,#ef4444);
}

.sc-trend.tone-warn{
  color:var(--warn,var(--product-accent));
}

.sc-trend.tone-neutral{
  color:var(--text-3,var(--omda-muted-2));
}

.sc-trend-label{
  margin-inline-start:2px;
  font-family:var(--omda-font-ui);
  font-weight:700;
}

.sc.lead,
.sc.sc-accent,
.stats > .sc-continue{border-color:rgba(var(--product-rgb),.30);}
.sc.lead::after,
.sc.sc-accent::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--product-accent),transparent);}
.sc.lead .sc-icon,
.sc.sc-accent .sc-icon,
.sc.lead .ic,
.sc.sc-accent .ic{background:linear-gradient(135deg,var(--product-accent-2),var(--product-accent));color:var(--a-ink,#3a2a00);box-shadow:0 8px 22px rgba(var(--product-rgb),.32);}
.sc.lead .value,
.sc.sc-accent .value,
.sc.lead .v,
.sc.sc-accent .v{color:var(--product-accent);}
.sc.c-blue .sc-icon,.sc-blue .sc-icon,.sc.c-blue .ic,.sc-blue .ic{background:var(--info-bg,rgba(59,130,246,.12));color:var(--info,#60a5fa);}
.sc.c-green .sc-icon,.sc-green .sc-icon,.sc.c-green .ic,.sc-green .ic{background:var(--ok-bg,rgba(52,211,153,.12));color:var(--ok,#34d399);}
.sc.c-orange .sc-icon,.sc-orange .sc-icon,.sc.c-orange .ic,.sc-orange .ic{background:var(--warn-bg,rgba(251,191,36,.12));color:var(--warn,#fbbf24);}
.sc.c-red .sc-icon,.sc-red .sc-icon,.sc.c-red .ic,.sc-red .ic{background:rgba(239,68,68,.12);color:#f87171;}
.sc.c-purple .sc-icon,.sc-purple .sc-icon,.sc.c-purple .ic,.sc-purple .ic{background:rgba(139,92,246,.14);color:#8b5cf6;}
html[data-mode="dark"] .sc.c-purple .sc-icon,
html[data-mode="dark"] .sc-purple .sc-icon{color:#a78bfa;}

html[data-mode="light"] .sc{
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(242,246,251,.92));
  border-color:rgba(111,129,154,.22);
  box-shadow:0 12px 32px rgba(15,23,42,.08),inset 0 1px 0 rgba(255,255,255,.78);
}
html[data-mode="light"] .sc:hover{box-shadow:0 16px 42px rgba(15,23,42,.12);border-color:rgba(var(--product-rgb),.28);}
html[data-mode="light"] .sc .label,
html[data-mode="light"] .sc .k,
html[data-mode="light"] .sc .sub{color:var(--text-2,#475569);}
html[data-mode="light"] .sc .value,
html[data-mode="light"] .sc .v{color:var(--text,#0f1b2d);}
html[data-mode="light"] .sc.lead .value,
html[data-mode="light"] .sc.sc-accent .value,
html[data-mode="light"] .sc.lead .v,
html[data-mode="light"] .sc.sc-accent .v{color:color-mix(in srgb,var(--product-accent,#64748b) 72%,#111827);}

@media (min-width:1200px){
  .stats[data-count="6"] > .sc-continue{
    grid-column:1 / -1;
    min-height:76px;
    height:76px;
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:16px;
    padding:0 22px;
    border-right:4px solid var(--product-accent);
    background:linear-gradient(90deg,rgba(var(--product-rgb),.13),rgba(255,255,255,.035));
  }
  .stats[data-count="6"] > .sc-continue .sc-icon,
  .stats[data-count="6"] > .sc-continue .ic{margin-bottom:0;flex:0 0 44px;}
  .stats[data-count="6"] > .sc-continue .lc-info{flex:1 1 auto;min-width:0;}
  .stats[data-count="6"] > .sc-continue .lc-title{font-size:14px;font-weight:900;}
  .stats[data-count="6"] > .sc-continue .lc-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;}
  .stats[data-count="6"] > .sc-continue .lc-arrow{display:block;margin-right:auto;color:var(--product-accent);font-size:20px;font-weight:900;}
}
@media (min-width:800px) and (max-width:1199.98px){
  .stats,
  .stats[data-count]{grid-template-columns:repeat(3,minmax(0,1fr));}

  /* Four metrics preserve a balanced 2x2 tablet composition. */
  .stats[data-count="4"]{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .stats[data-count="5"]{grid-template-columns:repeat(6,minmax(0,1fr));}
  .stats[data-count="5"] > .sc{grid-column:span 2;}
  .stats[data-count="5"] > .sc:nth-child(1),
  .stats[data-count="5"] > .sc:nth-child(2){grid-column:span 3;}
  .stats > .sc-continue{
    grid-column:auto;
    min-height:128px;
    height:auto;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:18px;
    border-right:1px solid var(--line,var(--omda-border));
  }
  .stats > .sc-continue .lc-arrow{display:none;}
}
@media (max-width:799.98px){
  .stats,
  .stats[data-count]{grid-template-columns:repeat(2,minmax(0,1fr));}
  .stats > .sc{min-height:112px;}

  /* Mobile KPI count-aware layout: 5 cards = 1 + 2 + 2, no dead slot */
  .stats[data-count="5"]{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .stats[data-count="5"] > .sc{
    grid-column:span 1;
  }
  .stats[data-count="5"] > .sc:first-child{
    grid-column:1 / -1;
  }
  .stats > .sc-continue{
    grid-column:auto;
    min-height:112px;
    height:auto;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:14px;
    border-right:1px solid var(--line,var(--omda-border));
  }
  .stats > .sc-continue .lc-arrow{display:none;}
}

@media (max-width:1199.98px){
  main,
  #pageMain{padding:22px 20px 92px;}
}
@media (max-width:799.98px){
  main,
  #pageMain{padding:18px 14px 92px;}
}

/* ============================================================
   OMDA Shell v5.3 — CaseHero Access-State Visual Contract
   Visual-only contract for the access-driven case header.
   Access Engine owns actions/visibility; this contract preserves all
   known surface aliases and only owns layout, spacing, theme and states.
   ============================================================ */
.case-workspace-wrap{
  max-width:min(1180px, calc(100vw - 48px));
}
.case-hero.omda-case-hero,
.case-hero.hero.omda-case-hero{
  --ch-bg:var(--card-solid);
  --ch-bg-image:var(--card-grad);
  --ch-border:var(--line);
  --ch-text:var(--text);
  --ch-text-2:var(--text-2);
  --ch-text-3:var(--text-3);
  --ch-accent:var(--a,var(--product-accent));
  --ch-accent-2:var(--a-2,var(--product-accent-2));
  --ch-accent-rgb:var(--a-rgb,var(--product-rgb));
  --ch-accent-bg:var(--a-bg,rgba(var(--product-rgb),.10));
  --ch-accent-text:var(--a-text,var(--product-accent));
  --ch-radius:var(--radius-lg,22px);
  --ch-radius-sm:var(--radius-sm,14px);
  --ch-shadow:var(--shadow);
  display:block;
  width:100%;
  padding:0;
  margin:0 0 18px;
  position:relative;
  overflow:hidden;
  color:var(--ch-text);
  background:var(--ch-bg);
  background-image:var(--ch-bg-image);
  border:1px solid var(--ch-border);
  border-radius:var(--ch-radius);
  box-shadow:var(--ch-shadow);
}
.case-hero.omda-case-hero::before,
.case-hero.hero.omda-case-hero::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,var(--ch-accent),transparent 70%);
  pointer-events:none;
}
.case-hero .ch-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  width:100%;
  min-width:0;
  padding:20px 22px;
}
.case-hero .ch-id{
  display:flex;
  align-items:flex-start;
  gap:15px;
  min-width:0;
  flex:1 1 auto;
}
.case-hero .ch-ic,
.case-hero .case-icon,
.case-hero .hero-ic{
  width:52px;
  height:52px;
  flex:0 0 52px;
  border-radius:15px;
  display:grid;
  place-items:center;
  color:var(--ch-accent-text);
  background:var(--ch-accent-bg);
  border:1px solid var(--ring,rgba(var(--ch-accent-rgb),.30));
}
.case-hero .ch-ic svg,
.case-hero .case-icon svg,
.case-hero .hero-ic svg{
  width:26px;
  height:26px;
  display:block;
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
}
.case-hero .ch-text{
  min-width:0;
  flex:1 1 auto;
}
.case-hero .ch-num,
.case-hero .case-num,
.case-hero .hero-num{
  max-width:100%;
  min-width:0;
  font-family:var(--mono,"JetBrains Mono",monospace);
  font-size:24px;
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.1;
  color:var(--ch-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.case-hero .ch-badges{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:9px;
}
.case-hero .ch-badges .badge{
  margin:0;
}
.case-hero .ch-meta,
.case-hero .case-sub,
.case-hero .hero-sub{
  display:flex;
  align-items:center;
  gap:0;
  flex-wrap:wrap;
  margin-top:11px;
  color:var(--ch-text-2);
  font-size:14px;
  line-height:1.5;
}
.case-hero .ch-meta b{
  color:var(--ch-text);
  font-weight:700;
}
.case-hero .ch-meta .sep,
.case-hero .case-sub-sep{
  margin:0 7px;
  color:var(--ch-text-3);
}
.case-hero .ch-actions,
.case-hero .case-hero-actions,
.case-hero .hero-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex:0 0 auto;
  flex-wrap:wrap;
  min-width:0;
}
.case-hero .ch-state-actions,
.case-hero .case-state-actions{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
.case-hero .btn{
  height:42px;
  padding:0 18px;
  border-radius:13px;
  font-size:13px;
  font-weight:700;
  box-shadow:none;
}
.case-hero .btn-primary{
  color:var(--a-ink);
  background:linear-gradient(140deg,var(--ch-accent-2),var(--ch-accent));
  border-color:rgba(var(--ch-accent-rgb),.45);
  box-shadow:var(--shadow-accent);
}
.case-hero .btn-light,
.case-hero .btn-secondary{
  color:var(--ch-text);
  background:var(--surface);
  border:1px solid var(--line);
}
.case-hero .btn-light:hover,
.case-hero .btn-secondary:hover{
  background:var(--card-hi);
  border-color:var(--line-2);
}
.case-hero .btn-icon{
  width:42px;
  height:42px;
  padding:0;
  border-radius:13px;
  color:var(--ch-text-2);
  background:var(--surface);
  border:1px solid var(--line);
}
.case-hero .ch-more{
  position:relative;
  display:inline-flex;
}
.case-hero .menu-btn{
  width:42px;
  height:42px;
  border-radius:13px;
  border:1px solid var(--line);
  color:var(--ch-text-2);
  background:var(--surface);
  cursor:pointer;
  font-size:18px;
  font-weight:900;
}
.case-hero .menu-btn:hover{
  color:var(--ch-text);
  background:var(--card-hi);
}
.case-hero .menu{
  position:absolute;
  left:0;
  top:48px;
  z-index:80;
  display:none;
  min-width:190px;
  padding:6px;
  color:var(--ch-text);
  background:var(--card-solid);
  border:1px solid var(--line-2);
  border-radius:14px;
  box-shadow:var(--shadow-lg);
}
.case-hero .menu.open{
  display:block;
}
.case-hero .menu button{
  width:100%;
  min-height:38px;
  padding:8px 10px;
  border:0;
  border-radius:10px;
  color:var(--ch-text);
  background:transparent;
  cursor:pointer;
  font-weight:700;
  text-align:right;
}
.case-hero .menu button:hover{
  color:var(--ch-accent-text);
  background:var(--surface);
}
/* CaseHero menu portal: toggleCaseHeroMenu moves .menu to <body>, so it must keep its visual contract outside .case-hero. */
.menu[data-omda-hero-menu="1"]{
  direction:rtl;
  padding:6px;
  color:var(--text,var(--omda-text));
  background:var(--card-solid,var(--omda-surface));
  border:1px solid var(--line-2,var(--omda-border-2));
  border-radius:14px;
  box-shadow:var(--shadow-lg,var(--omda-shadow));
  font-family:"Heebo",system-ui,sans-serif;
}
.menu[data-omda-hero-menu="1"].open{
  display:block;
}
.menu[data-omda-hero-menu="1"] button,
.menu[data-omda-hero-menu="1"] a{
  display:block;
  width:100%;
  min-height:38px;
  padding:8px 10px;
  border:0;
  border-radius:10px;
  color:var(--text,var(--omda-text));
  background:transparent;
  cursor:pointer;
  font-weight:700;
  text-align:right;
  text-decoration:none;
}
.menu[data-omda-hero-menu="1"] button:hover,
.menu[data-omda-hero-menu="1"] a:hover{
  color:var(--a-text,var(--product-accent));
  background:var(--surface,var(--omda-surface-2));
}
@media(max-width:1240px){
  .case-hero .ch-main{
    flex-wrap:wrap;
  }
  .case-hero .ch-actions{
    width:100%;
    justify-content:flex-start;
    padding-top:14px;
    border-top:1px solid var(--line);
  }
}
@media (max-width:799.98px){
  .case-workspace-wrap{
    max-width:100%;
    padding-inline:14px;
  }
  .case-hero .ch-main{
    flex-direction:column;
    gap:0;
    padding:16px;
  }
  .case-hero .ch-id{
    width:100%;
  }
  .case-hero .ch-num{
    font-size:21px;
  }
  .case-hero .ch-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding-top:14px;
    margin-top:14px;
    border-top:1px solid var(--line);
  }
  .case-hero .ch-state-actions{
    display:contents;
  }
  body[data-case-view-mode="summary_review"] .case-hero .ch-actions{
    grid-template-columns:44px minmax(0,1fr);
    align-items:stretch;
  }
  body[data-case-view-mode="summary_review"] .case-hero .case-actions-more{
    grid-column:1;
    grid-row:1;
    width:auto;
  }
  body[data-case-view-mode="summary_review"] .case-hero .case-actions-more .omda-row-actions-wrap,
  body[data-case-view-mode="summary_review"] .case-hero .case-actions-more .omda-row-actions-btn{
    width:100%;
    height:100%;
    min-height:42px;
  }
  body[data-case-view-mode="summary_review"] .case-hero [data-action="case.close"]{
    grid-column:2;
    grid-row:1;
  }
  body[data-case-view-mode="summary_review"] .case-hero #reportActionBtn{
    grid-column:1/-1;
    grid-row:2;
  }
  .case-hero .btn{
    width:100%;
  }
  .case-hero .btn-primary:first-child{
    grid-column:1/-1;
  }
  .case-hero .ch-more{
    width:100%;
  }
  .case-hero .menu-btn{
    width:100%;
  }
  .case-hero .menu{
    inset-inline:0;
    width:100%;
  }
  .case-hero .ch-meta{
    display:block;
  }
  .case-hero .ch-meta .sep{
    margin:0 5px;
  }
}


/* =================================================================
   OMDA Shell v5.3 — Table / List / Row Actions Contract

   FAMILY:
   Operational tables, responsive list feeds and row action menus.

   OWNS:
   - StandardPageShell table-panel rendering surface
   - Desktop operational table structure
   - Mobile feed/list representation for the same rows
   - Row selection/open state visuals
   - Row action cell/button/menu visual contract
   - Table/list light and dark mode hardening

   CANONICAL ENTRYPOINT:
   OMDA.pages.standard.mount({ variant: 'table-panel', ... })

   CANONICAL DOM:
   .omda-standard-table-panel-shell.otp-shell
     .otp-toolbar / .otp-filters / .otp-search
     .otp-content
       .otp-table-area
         .otp-table
           .otp-table-scroll
             .otp-native-table
               .otp-row
               .otp-main-cell
               .otp-status-pill / .otp-payment-pill / .otp-count-pill
         .otp-mobile-feed
           .otp-mobile-entry
           .otp-mobile-row
           .otp-mobile-expanded

   ROW ACTIONS:
   .omda-row-actions-cell
   .omda-row-actions-wrap
   .omda-row-actions-btn
   .omda-row-actions-menu
   .omda-row-actions-item

   MENU / DROPDOWN SUPPORT:
   .omda-menu-wrap
   .omda-menu-btn
   .omda-dropdown
   .omda-dropdown-item

   DOES NOT OWN:
   - Toolbar/search/filter behavior beyond table-panel visual placement
   - Toolbar/search/filter controls and mobile filter sheets
   - New Case Modal vehicle data table (.veh-data-table)
   - Case Hero action menu (.case-hero .menu-btn)
   - Inspection operational controls
   - Data fetching, sorting rules, access decisions or business actions

   FORBIDDEN / RETIRED:
   - .omda-table-wrap
   - .omda-table-scroll
   - .omda-table
   - .omda-table-main-row
   - .omda-table-details-row
   - .omda-table-menu-head
   - OMDA_AUTO.buildTable

   STATUS:
   LOCKED — reports/payments migrated to StandardPageShell table-panel;
   legacy buildTable renderer physically removed from shared.js.
================================================================= */

/* ─────────────────────────────────────────────────────────────
   OMDA Shell v5.3 — Filter Controls / Choice Chips Contract

   FAMILY:
   Toolbar filters, search controls, select filters, mobile filter sheets
   and button-like choice chips inside filter contexts.

   OWNS:
   - Generic toolbar/filter rows
   - Search input wrappers
   - Select filter controls
   - StandardPageShell / OTP filter descriptors
   - Mobile filter trigger and sheet layout
   - Choice chips rendered as button controls

   CANONICAL:
   .toolbar
   .filters
   .search-wrap
   .filter-select
   .omda-filter-trigger
   .omda-filter-sheet-*
   .chip-btn for button-like choice chips

   OTP / StandardPageShell:
   .otp-toolbar
   .otp-filters
   .otp-search
   [data-otp-filter]

   DOES NOT OWN:
   - Table/list row rendering
   - Row actions/dropdowns
   - Badge/status pill semantics
   - New Case Modal vehicle data table
   - Inspection slash/severity controls
   - Data filtering business rules

   FORBIDDEN / RETIRED:
   - legacy filter chip class
   - page-local filter chip systems
   - filter-specific !important hardening unless a future bug proves it is required

   STATUS:
   LOCKED — App migrated to chip-btn; legacy filter chip support retired;
   filter-specific !important overrides physically removed.
───────────────────────────────────────────────────────────── */
.toolbar,
.otp-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
  padding:14px 16px;
  border:1px solid var(--omda-border);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)),rgba(8,22,38,.82);
  box-shadow:var(--omda-shadow-soft);
  color:var(--omda-text);
  font-family:var(--omda-font-ui);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.otp-toolbar{margin-bottom:0;}
.filters,
.otp-filters{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  min-width:0;
}
.otp-toolbar .otp-filters{gap:8px;}
.search-wrap,
.otp-search{
  position:relative;
  flex:1 1 220px;
  min-width:200px;
  max-width:360px;
}
.otp-search{min-width:260px;}
.search-wrap input,
.otp-search input,
.filter-select,
.toolbar select,
.otp-toolbar select{
  height:40px;
  width:100%;
  border:1.5px solid rgba(148,163,184,.24);
  border-radius:12px;
  background:rgba(17,29,44,.94);
  color:var(--omda-text);
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
  outline:none;
  box-shadow:none;
  transition:border-color .16s ease, background .16s ease, color .16s ease;
}
.search-wrap input,
.otp-search input{padding:0 14px 0 36px;direction:rtl;}
.filter-select,
.toolbar select,
.otp-toolbar select{
  min-width:135px;
  width:auto;
  padding-inline-start:14px;
  padding-inline-end:36px;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  background-image:var(--omda-select-chevron);
  background-position:left 13px center;
  background-size:16px 16px;
  background-repeat:no-repeat;
}
.search-wrap input:focus,
.otp-search input:focus,
.filter-select:focus,
.toolbar select:focus,
.otp-toolbar select:focus{
  border-color:rgba(var(--product-rgb),.50);
  box-shadow:0 0 0 3px rgba(var(--product-rgb),.10);
}
.search-wrap input::placeholder,
.otp-search input::placeholder{color:var(--omda-muted-2);}
.search-wrap .ico,
.otp-search .ico{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  color:var(--omda-muted);
  display:flex;
  pointer-events:none;
}
.search-wrap .ico svg,
.otp-search .ico svg{width:16px;height:16px;stroke:currentColor;fill:none;}
.otp-count{font-size:12px;color:var(--omda-muted);font-weight:800;white-space:nowrap;}
.omda-mobile-filter-inline{display:none;}
.omda-filter-trigger{
  display:none;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1.5px solid rgba(148,163,184,.24);
  border-radius:12px;
  background:rgba(17,29,44,.94);
  color:var(--omda-text);
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
  box-shadow:none;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
  -webkit-tap-highlight-color:transparent;
}
.omda-filter-trigger:hover{
  border-color:rgba(var(--product-rgb),.50);
}
.omda-filter-trigger:focus-visible{
  outline:0;
  border-color:rgba(var(--product-rgb),.50);
  box-shadow:0 0 0 3px rgba(var(--product-rgb),.10);
}
.omda-filter-sheet-backdrop{
  position:fixed;
  inset:0;
  z-index:130000;
  display:none;
  align-items:flex-end;
  justify-content:center;
  padding:0;
  background:rgba(2,8,23,.64);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.omda-filter-sheet-backdrop.show{display:flex;}
.omda-filter-sheet{
  width:min(100%,560px);
  max-height:min(76vh,680px);
  display:flex;
  flex-direction:column;
  font-family:var(--omda-font-ui);
  background:linear-gradient(180deg,rgba(17,29,44,.98),rgba(7,16,29,.98));
  border:1px solid var(--omda-border-2);
  border-bottom:0;
  border-radius:22px 22px 0 0;
  box-shadow:0 -22px 72px rgba(0,0,0,.52);
  overflow:hidden;
}
.omda-filter-sheet-head,
.omda-filter-sheet-foot{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:16px 18px;
  border-bottom:1px solid var(--omda-border);
}
.omda-filter-sheet-foot{
  border-bottom:0;
  border-top:1px solid var(--omda-border);
  justify-content:flex-start;
  padding-bottom:calc(16px + env(safe-area-inset-bottom));
}
.omda-filter-sheet-title{font-size:16px;font-weight:900;color:var(--omda-text);}
.omda-filter-sheet-sub{font-size:12px;font-weight:700;color:var(--omda-muted);margin-top:2px;}
.omda-filter-sheet-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:16px 18px;
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  scrollbar-width:thin;
  scrollbar-color:rgba(var(--product-rgb),.42) rgba(8,22,38,.72);
}
.omda-filter-sheet-body::-webkit-scrollbar{width:8px;}
.omda-filter-sheet-body::-webkit-scrollbar-track{background:rgba(8,22,38,.72);}
.omda-filter-sheet-body::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(var(--product-rgb),.48),rgba(var(--product-rgb),.20));border-radius:999px;}
.omda-filter-sheet-body > *,
.omda-filter-sheet-body .filter-select,
.omda-filter-sheet-body .btn,
.omda-filter-sheet-body .chip-btn{width:100%;max-width:100%;}
.omda-filter-sheet-body .chip-btn,
.omda-filter-sheet-body .btn:not(.btn-block){justify-content:center;}
.omda-filter-sheet-body .hidden{display:none;}
html[data-mode="light"]{
  --omda-select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

html[data-mode="light"] .toolbar,
html[data-mode="light"] .otp-toolbar{
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,249,252,.92));
  border-color:rgba(111,129,154,.20);
  color:var(--text,#0f1b2d);
  box-shadow:0 14px 36px rgba(15,27,45,.075);
}
html[data-mode="light"] .search-wrap input,
html[data-mode="light"] .otp-search input,
html[data-mode="light"] .filter-select,
html[data-mode="light"] .toolbar select,
html[data-mode="light"] .otp-toolbar select{
  background-color:#fff;
  border-color:rgba(111,129,154,.30);
  color:var(--text,#0f1b2d);
}
html[data-mode="light"] .search-wrap .ico,
html[data-mode="light"] .otp-search .ico{color:var(--text-3,#64748b);}
html[data-mode="light"] .search-wrap input::placeholder,
html[data-mode="light"] .otp-search input::placeholder{color:rgba(100,116,139,.78);}
html[data-mode="light"] .otp-count{color:var(--text-2,#475569);}
html[data-mode="light"] .omda-filter-trigger{
  background:#fff;
  border-color:rgba(111,129,154,.30);
  color:var(--text,#0f1b2d);
}
html[data-mode="light"] .omda-filter-trigger:hover{
  background:#f8fafc;
  border-color:rgba(var(--product-rgb),.44);
}
html[data-mode="light"] .omda-filter-trigger:focus-visible{
  outline:0;
  background:#f8fafc;
  border-color:rgba(var(--product-rgb),.44);
  box-shadow:0 0 0 3px rgba(var(--product-rgb),.10);
}
html[data-mode="light"] .omda-filter-sheet-backdrop{background:rgba(15,27,45,.28);}
html[data-mode="light"] .omda-filter-sheet{
  background:linear-gradient(180deg,#fff,#f7f9fc);
  border-color:rgba(111,129,154,.22);
  box-shadow:0 -18px 54px rgba(15,27,45,.16);
}
html[data-mode="light"] .omda-filter-sheet-title{color:var(--text,#0f1b2d);}
html[data-mode="light"] .omda-filter-sheet-sub{color:var(--text-2,#475569);}
html[data-mode="light"] .omda-filter-sheet-head,
html[data-mode="light"] .omda-filter-sheet-foot{border-color:rgba(111,129,154,.18);}
html[data-mode="light"] .omda-filter-sheet-body{scrollbar-color:rgba(var(--product-rgb),.36) rgba(226,232,240,.9);}
/* Tablet/Mobile Filter Compression Mode
   Desktop (>1200): full filter row.
   Tablet/Mobile (<=1200): search + filter trigger; full filters move to sheet.
   This belongs to the same toolbar/filter contract, not a local page patch. */
@media (max-width:1200px){
  .toolbar,
  .otp-toolbar{padding:12px;align-items:stretch;}
  .omda-mobile-filter-host{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;}
  .omda-mobile-filter-host.omda-mobile-filter-active > .omda-mobile-filter-inline{order:-100;}
  .omda-mobile-filter-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;max-width:100%;flex:1 1 100%;}
  .omda-mobile-filter-inline .search-wrap,
  .omda-mobile-filter-inline .cases-search,
  .omda-mobile-filter-inline .otp-search{width:100%;max-width:none;min-width:0;}
  .omda-mobile-filter-inline .search-wrap input,
  .omda-mobile-filter-inline .otp-search input{min-width:0;}
  .omda-filter-trigger{display:inline-flex;height:44px;padding:0 14px;flex:0 0 auto;white-space:nowrap;}
  .omda-filter-trigger svg{width:16px;height:16px;}
  .otp-toolbar .otp-filters{
    width:100%;
    min-width:0;
    overflow:visible;
    flex-wrap:wrap;
    padding-bottom:0;
  }
  .otp-toolbar .otp-filters > .otp-search,
  .otp-toolbar .otp-filters > .search-wrap{
    flex:1 1 100%;
    width:100%;
    min-width:0;
    max-width:none;
  }
  .otp-toolbar .otp-filters > select,
  .otp-toolbar .otp-filters > .filter-select{
    display:none;
  }
  .otp-search{min-width:0;max-width:none;}
  body.omda-filter-open{overflow:hidden;}
}
@media (min-width:1201px){
  .omda-filter-sheet-backdrop,
  .omda-filter-trigger,
  .omda-mobile-filter-inline{display:none;}
}
@media (min-width:800px) and (max-width:1200px){
  .omda-mobile-filter-host{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    width:100%;
    max-width:100%;
  }
  .omda-mobile-filter-host > .search-wrap,
  .omda-mobile-filter-host > .cases-search,
  .omda-mobile-filter-host > .otp-search{
    grid-column:1;
    grid-row:1;
    width:100%;
    max-width:none;
    min-width:0;
    order:0;
  }
  .omda-mobile-filter-host > .omda-mobile-filter-inline{
    grid-column:2;
    grid-row:1;
    width:auto;
    max-width:max-content;
    min-width:0;
    flex:0 0 auto;
    order:1;
  }
  .omda-mobile-filter-host.omda-mobile-filter-active > .omda-mobile-filter-inline{
    order:1;
  }
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.search-wrap),
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.cases-search),
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.otp-search){
    grid-column:1 / -1;
    grid-row:1;
    width:100%;
    max-width:none;
    min-width:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    flex:1 1 100%;
    order:0;
  }
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.search-wrap) .search-wrap,
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.cases-search) .cases-search,
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.otp-search) .otp-search{
    grid-column:1;
    width:100%;
    max-width:none;
    min-width:0;
  }
  .omda-mobile-filter-host > .omda-mobile-filter-inline .omda-filter-trigger{
    width:auto;
    min-width:96px;
  }
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.search-wrap) .omda-filter-trigger,
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.cases-search) .omda-filter-trigger,
  .omda-mobile-filter-host > .omda-mobile-filter-inline:has(.otp-search) .omda-filter-trigger{
    grid-column:2;
    grid-row:1;
  }
  .omda-filter-sheet{
    width:min(620px,calc(100% - 48px));
    max-height:min(78vh,680px);
    border-radius:22px;
    border-bottom:1px solid var(--omda-border-2);
    box-shadow:0 22px 72px rgba(0,0,0,.42);
  }
  .omda-filter-sheet-backdrop{align-items:center;padding:24px;}
}
@media (max-width:799.98px){
  .omda-filter-sheet{
    width:min(100%,560px);
    max-height:min(76vh,680px);
    border-radius:22px 22px 0 0;
    border-bottom:0;
  }
  .omda-filter-sheet-backdrop{align-items:flex-end;padding:0;}
}

/* ─────────────────────────────────────────────────────────────
   4) STANDARD TABLE PANEL CONTRACT
───────────────────────────────────────────────────────────── */
.omda-standard-page-shell{width:100%;min-width:0;}
.omda-standard-table-panel-shell.otp-shell{--otp-line:rgba(148,163,184,.12);--otp-line-2:rgba(148,163,184,.22);--otp-bg:rgba(8,22,38,.82);--otp-card:rgba(17,29,44,.94);width:100%;min-width:0;display:grid;gap:14px;font-family:var(--omda-font-ui);}
.otp-content{position:relative;min-width:0;display:block;}
.otp-table-area{min-width:0;}
.otp-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 4px 10px;}
.otp-list-head h2{margin:0;font-size:16px;font-weight:800;line-height:1.35;}.otp-hint{font-size:12px;color:var(--omda-muted);font-weight:700;}
.otp-table{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)),var(--otp-bg);border:1px solid var(--omda-border);border-radius:18px;overflow:hidden;box-shadow:var(--omda-shadow-soft);}
.otp-table-scroll{width:100%;overflow:auto;}
.otp-native-table{width:100%;border-collapse:collapse;min-width:0;font-size:14px;font-weight:400;color:var(--omda-text);}
.otp-native-table th{padding:12px 14px;text-align:right;font-size:12px;font-weight:700;color:var(--omda-muted-2);letter-spacing:0;border-bottom:1px solid var(--otp-line);white-space:nowrap;}
.otp-native-table td{padding:14px;border-top:1px solid var(--otp-line);vertical-align:middle;font-size:14px;font-weight:400;color:#dbe5f2;background:transparent;}
.otp-native-table tbody tr{cursor:pointer;transition:background .15s,border-color .15s;}
.otp-native-table tbody tr:hover td{background:rgba(var(--product-rgb),.04);}
.otp-native-table .otp-row.is-selected td,.otp-native-table .otp-row[data-selected="true"] td{background:rgba(var(--product-rgb),.075);}
.otp-main-cell{display:flex;align-items:center;gap:11px;min-width:0;}.otp-main-cell[data-no-avatar="true"]{gap:0;}.otp-main-avatar{width:36px;height:36px;min-width:36px;border-radius:11px;display:grid;place-items:center;background:rgba(var(--product-rgb),.13);border:0;color:var(--product-accent);font-size:13px;font-weight:800;line-height:1;flex-shrink:0;box-shadow:none;}.otp-main-text{min-width:0;}.otp-main-title{font-size:15px;font-weight:700;line-height:1.45;color:var(--omda-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.otp-main-sub{font-size:13px;font-weight:400;line-height:1.55;color:var(--omda-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* OMDA StandardPageShell Table Text Stack Contract v1
   Secondary business content without a second row identity. */
.otp-text-stack {
  min-width:0;
  display:grid;
  gap:2px;
}

.otp-text-stack-title {
  min-width:0;
  color:var(--omda-text);
  font-size:14px;
  font-weight:600;
  line-height:1.45;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.otp-text-stack-sub {
  min-width:0;
  color:var(--omda-muted);
  font-size:12.5px;
  font-weight:400;
  line-height:1.45;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* OTP pills inherit Badge / Chip / Status Pill Contract. */
.otp-status-date-cell{display:grid;gap:4px;justify-items:start;}.otp-status-date-sub{font-size:12px;color:var(--omda-muted-2);}

.otp-status-stack{
  display:grid;
  justify-items:center;
  align-content:center;
  gap:6px;
  min-width:0;
}

.otp-status-stack .otp-status-pill{
  margin:0;
  max-width:100%;
  white-space:nowrap;
}

.otp-actions-head,.otp-row-actions{width:1%;white-space:nowrap;text-align:left;}
.otp-mobile-feed{display:none;}
.otp-empty-row td{padding:0;}.otp-pagination{margin-top:12px;}


/* ============================================================
   OMDA STANDARD PAGE SERVER COLLECTION CONTROLS CANON v1

   Presentation only.
   Product/backend owns query/search/pagination semantics.
   ============================================================ */

.otp-collection-footer{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  width:100%;
  padding:12px 2px 2px;
}

.otp-collection-page-size{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  color:var(--omda-muted,var(--text-2));
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}

.otp-collection-page-size label{
  color:inherit;
}

.otp-page-size-select{
  width:auto;
  min-width:72px;
  max-width:92px;
  height:40px;
}

.otp-collection-result-status{
  min-width:0;
  color:var(--omda-muted,var(--text-2));
  font-size:12px;
  font-weight:800;
  text-align:center;
}

.otp-collection-result-status.is-error{
  color:var(--omda-danger,var(--danger));
}

.otp-collection-pagination{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  min-width:0;
}

.otp-page-numbers{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
}

/* OMDA STANDARD PAGE PAGINATION THEME STATE v1 */
.otp-page-number{
  min-width:36px;
  min-height:36px;
  padding-inline:10px;
  background:var(--omda-surface-2,var(--card-hi));
  border-color:var(--omda-border-2,var(--line-2));
  color:var(--omda-text,var(--text));
}

.otp-collection-pagination .otp-page-number:hover:not(:disabled){
  background:var(--a-bg);
  border-color:var(--ring);
  color:var(--a-text,var(--omda-text,var(--text)));
}

.otp-collection-pagination .otp-page-number.is-selected,
.otp-collection-pagination .otp-page-number[aria-current="page"]{
  background:var(--a-bg);
  border-color:var(--ring);
  color:var(--a-text,var(--omda-text,var(--text)));
  box-shadow:0 0 0 1px var(--ring);
}

.otp-page-nav{
  min-width:38px;
  width:38px;
  height:38px;
  padding:0;
  font-size:20px;
  line-height:1;
}

.otp-page-ellipsis{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  color:var(--omda-muted-2,var(--text-3));
  font-weight:900;
}

.otp-current-page{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding-inline:10px;
  color:var(--omda-muted,var(--text-2));
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

@media (max-width:799.98px){
  .otp-collection-footer{
    grid-template-columns:1fr auto;
    gap:10px;
  }

  .otp-collection-result-status{
    grid-column:1 / -1;
    grid-row:1;
    text-align:start;
  }

  .otp-collection-page-size{
    grid-column:1;
    grid-row:2;
  }

  .otp-collection-pagination{
    grid-column:2;
    grid-row:2;
  }
}

@media (max-width:520px){
  .otp-collection-footer{
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }

  .otp-collection-result-status{
    order:1;
    text-align:center;
  }

  .otp-collection-pagination{
    order:2;
    justify-content:center;
    flex-wrap:wrap;
  }

  .otp-collection-page-size{
    order:3;
    justify-content:center;
  }

  .otp-page-numbers{
    flex-wrap:wrap;
    justify-content:center;
  }
}

@media (max-width:799.98px){
  .otp-list-head{display:none;}
  .otp-table{background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible;}
  .otp-native-table{display:none;}
  .otp-table{border:0;background:transparent;box-shadow:none;}.otp-table-scroll{overflow:visible;}.otp-mobile-feed{display:grid;gap:12px;}
  .otp-mobile-entry{display:grid;gap:10px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;}
  .otp-mobile-row{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:84px;padding:12px 14px 12px 12px;position:relative;}
  .otp-mobile-strip{align-self:stretch;width:4px;border-radius:999px;background:rgba(var(--product-rgb),.42);}
  .otp-mobile-tone-done .otp-mobile-strip{background:#10b981;}.otp-mobile-tone-work .otp-mobile-strip{background:#3b82f6;}.otp-mobile-tone-open .otp-mobile-strip{background:var(--product-accent);}.otp-mobile-tone-red .otp-mobile-strip{background:#ef4444;}
  .otp-mobile-main{min-width:0;display:grid;gap:4px;}.otp-mobile-title{font-size:15px;font-weight:700;line-height:1.45;color:var(--omda-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.otp-mobile-sub,.otp-mobile-client{font-size:13px;font-weight:400;line-height:1.55;color:var(--omda-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.otp-mobile-side{display:grid;justify-items:end;gap:5px;min-width:92px;}.otp-mobile-plate{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--omda-text);direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;}.otp-mobile-date{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--omda-muted-2);direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;}
  .otp-mobile-statuses{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:6px;
  }

  
  /*
   * Mobile Status Layout Contract
   * Explicit consumer opt-in: mobileSummary.statusLayout = 'stack'
   */
  .otp-mobile-side:has(.otp-mobile-statuses--stack){
    justify-items:start;
  }

  .otp-mobile-statuses.otp-mobile-statuses--stack{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    justify-items:start;
    align-items:start;
    gap:6px;
  }

  .otp-mobile-statuses.otp-mobile-statuses--stack > *{
    width:max-content;
    max-width:100%;
  }
}


/* ─────────────────────────────────────────────────────────────
   OMDA Shell v5.3 — OperationalTableCanonical Contract
   Source of truth: StandardTablePanel / .otp-* rendering.

   This block is the visual hardening layer for the canonical OTP table
   after legacy omda-table retirement. It protects table/list rendering
   through scoped Shell selectors instead of table-specific important
   overrides.

   Owns visual theme only; does not own data, row click, pagination,
   action execution or business behavior. Row action visuals are owned by
   .omda-row-actions-* and menu/dropdown by .omda-dropdown-* above.

   STATUS:
   LOCKED — canonical OTP table protected by scoped Shell selectors; no
   table-specific important overrides.
───────────────────────────────────────────────────────────── */
.omda-standard-table-panel-shell.otp-shell{
  --otp-line:rgba(148,163,184,.12);
  --otp-line-2:rgba(148,163,184,.22);
  --otp-bg:rgba(8,22,38,.82);
  --otp-card:rgba(17,29,44,.94);
}
.omda-standard-table-panel-shell.otp-shell .otp-table,
.omda-standard-table-panel-shell.otp-shell .otp-mobile-entry{border:0;background:transparent;box-shadow:none;overflow:visible;}
.omda-standard-table-panel-shell.otp-shell .otp-native-table{
  width:100%;
  min-width:0;
  border-collapse:collapse;
  color:var(--omda-text);
  background:transparent;
}
.omda-standard-table-panel-shell.otp-shell .otp-native-table th{
  background:transparent;
  color:var(--omda-muted-2);
  border-bottom:1px solid var(--otp-line);
}
.omda-standard-table-panel-shell.otp-shell .otp-native-table td{
  background:transparent;
  color:var(--omda-text);
  border-top:1px solid var(--otp-line);
}

.omda-standard-table-panel-shell.otp-shell
:is(
  .otp-type-date,
  [data-otp-col-type="date"],
  .otp-status-date-sub
){
  font-family:var(--mono);
  font-weight:700;
  font-variant-numeric:tabular-nums;
}

.omda-standard-table-panel-shell.otp-shell
:is(
  .otp-type-plate,
  [data-otp-col-type="plate"],
  .otp-plate
){
  font-family:var(--mono);
  font-weight:700;
  font-variant-numeric:tabular-nums;
  direction:ltr;
  unicode-bidi:isolate;
  white-space:nowrap;
}

/* =========================================================
   OMDA StandardPageShell Semantic Column Alignment v1

   Contract:
   - Compact semantic columns share one visual axis in th and td.
   - Numeric, plate, status, date, badge, count and payment columns
     are centered consistently.
   - Primary/text columns remain RTL-start aligned and flexible.
   - Products define column type only; they do not author local
     header/body alignment patches.
   ========================================================= */
.omda-standard-table-panel-shell.otp-shell
.otp-native-table
:is(
  th.otp-type-plate,
  td.otp-type-plate,
  td[data-otp-col-type="plate"],
  th.otp-type-count,
  td.otp-type-count,
  td[data-otp-col-type="count"],
  th.otp-type-badge,
  td.otp-type-badge,
  td[data-otp-col-type="badge"],
  th.otp-type-status,
  td.otp-type-status,
  td[data-otp-col-type="status"],
  th.otp-type-statusStack,
  td.otp-type-statusStack,
  td[data-otp-col-type="statusStack"],
  th.otp-type-statusDate,
  td.otp-type-statusDate,
  td[data-otp-col-type="statusDate"],
  th.otp-type-payment,
  td.otp-type-payment,
  td[data-otp-col-type="payment"],
  th.otp-type-date,
  td.otp-type-date,
  td[data-otp-col-type="date"]
) {
  text-align:center;
}

.omda-standard-table-panel-shell.otp-shell
.otp-native-table
:is(
  td.otp-type-plate,
  td[data-otp-col-type="plate"]
)
.otp-plate {
  display:inline-block;
  margin-inline:auto;
}

.omda-standard-table-panel-shell.otp-shell .otp-native-table tbody tr:hover td{background:rgba(var(--product-rgb),.045);}
.omda-standard-table-panel-shell.otp-shell .otp-native-table .otp-row.is-selected td,
.omda-standard-table-panel-shell.otp-shell .otp-native-table .otp-row[data-selected="true"] td{background:rgba(var(--product-rgb),.075);}
.omda-standard-table-panel-shell.otp-shell .otp-main-title,
.omda-standard-table-panel-shell.otp-shell .otp-mobile-title,
.omda-standard-table-panel-shell.otp-shell .otp-mobile-plate{color:var(--omda-text);}
.omda-standard-table-panel-shell.otp-shell .otp-main-sub,
.omda-standard-table-panel-shell.otp-shell .otp-mobile-sub,
.omda-standard-table-panel-shell.otp-shell .otp-mobile-client,
.omda-standard-table-panel-shell.otp-shell .otp-mobile-date,
.omda-standard-table-panel-shell.otp-shell .otp-status-date-sub{color:var(--omda-muted);}


/* OMDA Shell — OTP semantic column sizing
   Contract: primary entity owns flexible table space;
   count/status/badge/payment/date/action columns stay compact.
   Products provide column types only. No page-local table sizing.
*/
.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-col-primary,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-col-primary,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="primaryEntity"]{
  width:auto;
  min-width:260px;
}

.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-type-count,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-count,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="count"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-type-badge,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-badge,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="badge"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-type-status,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-status,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="status"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-type-statusStack,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-statusStack,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="statusStack"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-type-payment,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-payment,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="payment"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-type-date,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-date,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="date"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table th.otp-actions-head,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-row-actions{
  width:1%;
  min-width:74px;
  white-space:nowrap;
  text-align:center;
}

.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-count,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="count"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-badge,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="badge"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-status,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="status"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-payment,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="payment"],
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-date,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="date"]{
  vertical-align:middle;
}

.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-count > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="count"] > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-badge > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="badge"] > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-status > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="status"] > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-statusStack > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="statusStack"] > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td.otp-type-payment > *,
.omda-standard-table-panel-shell.otp-shell .otp-native-table td[data-otp-col-type="payment"] > *{
  margin-inline:auto;
}

/* =========================================================
   OMDA StandardPageShell Narrow Tablet Table Compression v1
   Scope: table-panel native tables between 800px and 860px.

   Contract:
   - Preserve the native tablet table until the 800px mobile boundary.
   - Compress semantic columns without hiding business information.
   - Preserve a complete, visible canonical row-action trigger.
   - Products must not add page-local narrow-table width overrides.
   ========================================================= */
@media (min-width:800px) and (max-width:860px) {
  .omda-standard-table-panel-shell.otp-shell .otp-native-table th,
  .omda-standard-table-panel-shell.otp-shell .otp-native-table td {
    padding-inline:10px;
  }

  .omda-standard-table-panel-shell.otp-shell
  .otp-native-table
  :is(
    th.otp-col-primary,
    td.otp-col-primary,
    td[data-otp-col-type="primaryEntity"]
  ) {
    min-width:210px;
  }

  .omda-standard-table-panel-shell.otp-shell
  .otp-native-table
  :is(
    th.otp-actions-head,
    td.otp-row-actions
  ) {
    width:52px;
    min-width:52px;
    max-width:52px;
    padding-inline:8px;
  }

  .omda-standard-table-panel-shell.otp-shell
  .otp-native-table
  td.otp-row-actions
  .omda-row-actions-cell {
    width:36px;
    min-width:36px;
    max-width:36px;
  }
}

html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell{
  --otp-line:rgba(111,129,154,.20);
  --otp-line-2:rgba(111,129,154,.30);
  --otp-bg:rgba(255,255,255,.90);
  --otp-card:rgba(247,249,252,.96);
}
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-table,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-mobile-entry{
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}

html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-native-table th{
  color:var(--text-3,var(--omda-muted-2));
  border-bottom-color:var(--otp-line);
}
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-native-table td{
  color:var(--text,var(--omda-text));
  border-top-color:var(--otp-line);
}
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-native-table tbody tr:hover td{background:rgba(var(--product-rgb),.055);}
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-native-table .otp-row.is-selected td,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-native-table .otp-row[data-selected="true"] td{background:rgba(var(--product-rgb),.085);}
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-main-title,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-mobile-title,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-mobile-plate{color:var(--text,var(--omda-text));}
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-main-sub,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-mobile-sub,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-mobile-client,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-mobile-date,
html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-status-date-sub{color:var(--text-2,var(--omda-muted));}

/* =================================================================
   SHELL-ROW-CARD-1 — Row Card Contract (canonical)
   Owner: OMDA Shell. STATUS: LOCKED (15.11.2026, owner decision).
   One implementation for every StandardPageShell table whose row opens
   into a card: desktop table (.otp-expanded-row) and mobile feed
   (.otp-mobile-expanded). Markup: inlinePreviewCardHtml in shared.js.
   Replaces: section 5 (Operational Detail Preview), Inline Preview
   Action Rail Refinement, Selected Row Action Cell Cleanup, Selected Row
   Table Geometry Fix, selected-row status deduplication and Mobile
   Connected Preview. Products add no local CSS for it. Tokens only.
================================================================= */
.otp-shell{
  --rc-line:var(--otp-line,var(--omda-border));
  --rc-accent-line:rgba(var(--product-rgb),.46);
  --rc-card:var(--otp-card,var(--omda-surface-2));
  --rc-label:var(--omda-muted);
  --rc-value:var(--omda-text);
  --rc-shadow:0 6px 18px rgba(0,0,0,.24);
}
html[data-mode="light"] .otp-shell{
  --rc-card:var(--card,#ffffff);
  --rc-label:var(--text-2,#51617a);
  --rc-value:var(--text,#0f1b2d);
  --rc-shadow:0 6px 18px rgba(15,22,34,.07);
}

/* Opened source row (desktop table): keeps its chips; frames the card. */
.otp-shell[data-otp-preview-mode="inline"] .otp-row.is-selected td{
  border-top-color:var(--rc-accent-line);
  border-bottom-color:transparent;
}
.otp-shell[data-otp-preview-mode="inline"] .otp-row.is-selected td:first-child{border-inline-start:1px solid var(--rc-accent-line);}
.otp-shell[data-otp-preview-mode="inline"] .otp-row.is-selected td:last-child{border-inline-end:1px solid var(--rc-accent-line);}
.otp-shell[data-otp-preview-mode="inline"] .otp-row.is-selected [data-otp-actions] > *{display:none;}
.otp-shell[data-otp-preview-mode="inline"] .otp-expanded-row>td,
.otp-shell[data-otp-preview-mode="inline"] .otp-native-table tbody .otp-expanded-row:hover>td{
  padding:0 0 14px;
  border-top:0;
  background:transparent;
  cursor:default;
}

/* Card */
.otp-shell .otp-inline-preview-card.omda-entity-preview-card{
  position:relative;
  display:flex;
  flex-direction:column;
  margin:0;
  padding:0;
  background:var(--rc-card);
  color:var(--rc-value);
  border:1px solid var(--rc-accent-line);
  border-top-color:var(--rc-line);
  border-radius:0 0 16px 16px;
  box-shadow:var(--rc-shadow);
  overflow:hidden;
  cursor:default;
  font-family:var(--omda-font-ui);
}
.otp-shell .omda-entity-preview-head{padding:16px 20px 0;}
.otp-shell .omda-entity-preview-title-wrap h3{margin:0;font-size:16px;font-weight:800;line-height:1.35;color:var(--rc-value);}
.otp-shell .omda-entity-preview-title-wrap p{margin:4px 0 0;font-size:13.5px;line-height:1.45;color:var(--rc-label);}

/* Summary strip (meta) */
.otp-shell .omda-entity-preview-meta{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px 28px;
  margin:0;
  padding:14px 20px;
  border-bottom:1px solid var(--rc-line);
}
.otp-shell .omda-entity-preview-meta .omda-entity-preview-item{display:flex;flex-direction:column;gap:3px;min-width:0;}
.otp-shell .omda-entity-preview-meta .omda-entity-preview-label{font-size:12.5px;font-weight:700;line-height:1.3;color:var(--rc-label);}
.otp-shell .omda-entity-preview-meta .omda-entity-preview-value{margin:0;font-size:15px;font-weight:700;line-height:1.4;color:var(--rc-value);}

/* Sections: equal columns, each a definition list */
.otp-shell .omda-entity-preview-sections{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px 28px;
  padding:16px 20px 18px;
}
.otp-shell .omda-entity-preview-sections[data-count="1"]{grid-template-columns:minmax(0,1fr);}
.otp-shell .omda-entity-preview-sections[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr));}
.otp-shell .omda-entity-preview-section{min-width:0;}
.otp-shell .omda-entity-preview-section-title{margin:0 0 6px;font-size:12.5px;font-weight:700;line-height:1.3;color:var(--rc-label);}
.otp-shell dl.omda-entity-preview-section-body{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  column-gap:20px;
  margin:0;
  font-size:14.5px;
}
.otp-shell .omda-entity-preview-section-body > .omda-entity-preview-item{display:contents;}
.otp-shell .omda-entity-preview-section-body .omda-entity-preview-label,
.otp-shell .omda-entity-preview-section-body .omda-entity-preview-value{
  padding:8px 0;
  border-bottom:1px solid var(--rc-line);
  line-height:1.4;
}
.otp-shell .omda-entity-preview-section-body .omda-entity-preview-label{font-weight:400;color:var(--rc-label);}
.otp-shell .omda-entity-preview-section-body .omda-entity-preview-value{margin:0;font-weight:700;color:var(--rc-value);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
.otp-shell .omda-entity-preview-section-body > .omda-entity-preview-item:last-child > *{border-bottom:0;}
.otp-shell .omda-entity-preview-section-body.is-html{display:block;}
.otp-shell .omda-entity-preview-item.is-emphasis .omda-entity-preview-value{font-weight:800;}
.otp-shell .omda-entity-preview-value > .otp-pill,
.otp-shell .omda-entity-preview-value > .otp-status-pill,
.otp-shell .omda-entity-preview-value > .otp-payment-pill{max-width:100%;white-space:normal;vertical-align:middle;}
.otp-shell .omda-entity-preview-item.tone-green .omda-entity-preview-value,
.otp-shell .omda-entity-preview-item.tone-done .omda-entity-preview-value{color:#6ee7b7;}
.otp-shell .omda-entity-preview-item.tone-blue .omda-entity-preview-value,
.otp-shell .omda-entity-preview-item.tone-work .omda-entity-preview-value{color:#bfdbfe;}
.otp-shell .omda-entity-preview-item.tone-warn .omda-entity-preview-value,
.otp-shell .omda-entity-preview-item.tone-money .omda-entity-preview-value{color:#fdba74;}
.otp-shell .omda-entity-preview-item.tone-red .omda-entity-preview-value{color:#fca5a5;}
html[data-mode="light"] .otp-shell .omda-entity-preview-item.tone-green .omda-entity-preview-value,
html[data-mode="light"] .otp-shell .omda-entity-preview-item.tone-done .omda-entity-preview-value{color:#1f7a4f;}
html[data-mode="light"] .otp-shell .omda-entity-preview-item.tone-blue .omda-entity-preview-value,
html[data-mode="light"] .otp-shell .omda-entity-preview-item.tone-work .omda-entity-preview-value{color:#23407a;}
html[data-mode="light"] .otp-shell .omda-entity-preview-item.tone-warn .omda-entity-preview-value,
html[data-mode="light"] .otp-shell .omda-entity-preview-item.tone-money .omda-entity-preview-value{color:#b5571c;}
html[data-mode="light"] .otp-shell .omda-entity-preview-item.tone-red .omda-entity-preview-value{color:#b42318;}

/* Timeline section (section.type 'timeline') */
.otp-shell .omda-entity-preview-timeline{list-style:none;margin:0;padding:0;}
.otp-shell .omda-entity-preview-timeline-item{
  display:grid;
  grid-template-columns:18px minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
  padding:10px 0;
  border-bottom:1px solid var(--rc-line);
}
.otp-shell .omda-entity-preview-timeline-item:last-child{border-bottom:0;}
.otp-shell .omda-entity-preview-timeline-dot{width:12px;height:12px;margin-top:4px;border-radius:50%;background:var(--rc-label);}
.otp-shell .omda-entity-preview-timeline-item.is-current .omda-entity-preview-timeline-dot{background:var(--product-accent);box-shadow:0 0 0 4px rgba(var(--product-rgb),.18);}
.otp-shell .omda-entity-preview-timeline-item.is-void .omda-entity-preview-timeline-dot{background:transparent;border:2px solid var(--rc-label);}
.otp-shell .omda-entity-preview-timeline-title{font-size:14.5px;font-weight:700;line-height:1.4;color:var(--rc-value);}
.otp-shell .omda-entity-preview-timeline-item.is-void .omda-entity-preview-timeline-title{color:var(--rc-label);}
.otp-shell .omda-entity-preview-timeline-sub{font-size:13px;line-height:1.45;color:var(--rc-label);font-variant-numeric:tabular-nums;}
.otp-shell .omda-entity-preview-timeline-link{padding:0;border:0;background:none;font:inherit;font-size:13.5px;font-weight:700;color:var(--product-accent);cursor:pointer;}
.otp-shell .omda-entity-preview-timeline-link:hover{text-decoration:underline;}

/* Footer: actions start, chips + close end */
.otp-shell .omda-entity-preview-footer{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:12px 20px;
  border-top:1px solid var(--rc-line);
}
.otp-shell .omda-entity-preview-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;}
.otp-shell .omda-entity-preview-actions .btn{height:40px;min-height:40px;min-width:0;padding-inline:14px;border-radius:12px;font-size:14px;font-weight:700;}
.otp-shell .omda-entity-preview-actions .btn.btn-primary{background:rgba(var(--product-rgb),.14);border:1px solid rgba(var(--product-rgb),.38);color:var(--product-accent);box-shadow:none;}
.otp-shell .omda-entity-preview-actions .btn.btn-primary:hover{background:rgba(var(--product-rgb),.22);}
.otp-shell .omda-entity-preview-actions .btn.is-tone-money{color:#fdba74;border-color:rgba(249,115,22,.38);}
html[data-mode="light"] .otp-shell .omda-entity-preview-actions .btn.btn-primary{background:rgba(var(--product-rgb),.12);border-color:rgba(var(--product-rgb),.42);color:var(--text,#0f1b2d);}
html[data-mode="light"] .otp-shell .omda-entity-preview-actions .btn.is-tone-money{color:#b5571c;border-color:#f0c9ad;}
.otp-shell .omda-entity-preview-badges{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-inline-start:auto;}
.otp-shell .omda-entity-preview-close{
  flex:none;
  width:40px;
  height:40px;
  display:inline-grid;
  place-items:center;
  margin-inline-start:auto;
  padding:0;
  border-radius:12px;
  border:1px solid var(--rc-line);
  background:transparent;
  color:var(--rc-label);
  cursor:pointer;
}
.otp-shell .omda-entity-preview-badges + .omda-entity-preview-close{margin-inline-start:0;}
.otp-shell .omda-entity-preview-close svg{width:18px;height:18px;}
.otp-shell .omda-entity-preview-close:hover{border-color:var(--rc-accent-line);color:var(--rc-value);}
.otp-shell .omda-entity-preview-close:focus-visible,
.otp-shell .omda-entity-preview-timeline-link:focus-visible{outline:2px solid rgba(var(--product-rgb),.6);outline-offset:2px;}

@media (max-width:1100px){
  .otp-shell .omda-entity-preview-sections:not([data-count="1"]){grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* Mobile feed: the opened row and its card are one compound card. */
@media (max-width:799.98px){
  .otp-shell .otp-mobile-entry.is-selected{gap:0;}
  .omda-standard-table-panel-shell.otp-shell .otp-mobile-entry.is-selected .otp-mobile-row{
    border-color:var(--rc-accent-line);
    border-bottom-color:var(--rc-line);
    border-bottom-left-radius:0;
    border-bottom-right-radius:0;
    box-shadow:none;
  }
  .otp-shell .otp-mobile-expanded{margin-top:-1px;padding:0;border-top:0;overflow:visible;}
  .otp-shell .otp-inline-preview-card.omda-entity-preview-card{border-top:0;border-radius:0 0 18px 18px;}
  .otp-shell .omda-entity-preview-head{padding:14px 14px 0;}
  .otp-shell .omda-entity-preview-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;padding:12px 14px;}
  .otp-shell .omda-entity-preview-sections,
  .otp-shell .omda-entity-preview-sections:not([data-count="1"]){grid-template-columns:minmax(0,1fr);gap:16px;padding:14px;}
  .otp-shell .omda-entity-preview-footer{padding:12px 14px;}
  .otp-shell .omda-entity-preview-actions{flex:1 1 100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .otp-shell .omda-entity-preview-actions .btn{width:100%;justify-content:center;}
  .otp-shell .omda-entity-preview-badges{margin-inline-start:0;}
  .otp-shell .omda-entity-preview-badges + .omda-entity-preview-close{margin-inline-start:auto;}
}

/* ── Row Card list (cards layout, mockup 1:1) ───────────────────── */
.otp-shell{
  --rc-card-bg:#141e2f;
  --rc-card-border:#1f2a3d;
  --rc-muted-bg:#101826;
  --rc-muted-border:#2a364b;
  --rc-tile-bg:#172133;
  --rc-tile-border:#2a364b;
  --rc-tile-text:#c9d1e0;
  --rc-title:#f5f7fb;
  --rc-sub:#8a96ab;
  --rc-text:#e8ecf4;
  --rc-avatar-bg:#16243f;
  --rc-avatar-text:#9cbcff;
  --rc-btn-bg:#1a2436;
  --rc-btn-border:#2a364b;
  --rc-btn-text:#c9d1e0;
  --rc-pri-bg:#221d12;
  --rc-pri-border:rgba(217,180,106,.35);
  --rc-pri-text:#e6c983;
  --rc-money-text:#ffb27a;
  --rc-money-border:rgba(255,178,122,.38);
  --rc-hover-border:rgba(var(--product-rgb),.55);
  --rc-hover-shadow:0 6px 18px rgba(0,0,0,.28);
  --rc-plate-bg:#ffd427;
  --rc-plate-text:#091020;
  --rc-plate-border:#c09419;
}
html[data-mode="light"] .otp-shell{
  --rc-card-bg:var(--card,#ffffff);
  --rc-card-border:#e3e7ee;
  --rc-muted-bg:#fafbfc;
  --rc-muted-border:#d5dbe5;
  --rc-tile-bg:#f3f5f9;
  --rc-tile-border:#e3e7ee;
  --rc-tile-text:#374255;
  --rc-title:#0f1622;
  --rc-sub:#5d6879;
  --rc-text:#1b2433;
  --rc-avatar-bg:#e7edf7;
  --rc-avatar-text:#23407a;
  --rc-btn-bg:#ffffff;
  --rc-btn-border:#e3e7ee;
  --rc-btn-text:#374255;
  --rc-pri-bg:#f7f0e1;
  --rc-pri-border:#d9c9a3;
  --rc-pri-text:#5c4c2c;
  --rc-money-text:#b5571c;
  --rc-money-border:#f0c9ad;
  --rc-hover-border:#c9b688;
  --rc-hover-shadow:0 6px 18px rgba(15,22,34,.07);
}

/* The cards replace the table and the mobile feed. */
.omda-standard-table-panel-shell.otp-shell[data-otp-row-layout="cards"] .otp-native-table,
.omda-standard-table-panel-shell.otp-shell[data-otp-row-layout="cards"] .otp-mobile-feed{display:none;}
html[data-mode] .omda-standard-table-panel-shell.otp-shell[data-otp-row-layout="cards"] .otp-table,
.omda-standard-table-panel-shell.otp-shell[data-otp-row-layout="cards"] .otp-table{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;}
html[data-mode] .omda-standard-table-panel-shell.otp-shell[data-otp-row-layout="cards"] .otp-table-scroll,
.omda-standard-table-panel-shell.otp-shell[data-otp-row-layout="cards"] .otp-table-scroll{overflow:visible;background:transparent;box-shadow:none;border-radius:0;}
.omda-row-cards-empty .otp-native-table{display:table;}

.otp-shell .omda-row-cards{container:omda-row-cards / inline-size;display:flex;flex-direction:column;gap:12px;}
.otp-shell .omda-row-cards-group{display:flex;align-items:center;gap:10px;margin:6px 4px 2px;font-size:13px;font-weight:700;color:var(--rc-sub);}
.otp-shell .omda-row-cards-group::after{content:"";flex:1;height:1px;background:var(--rc-card-border);}

.otp-shell .omda-row-card{
  background:var(--rc-card-bg);
  border:1px solid var(--rc-card-border);
  border-radius:16px;
  color:var(--rc-text);
  font-family:var(--omda-font-ui);
  transition:border-color .15s,box-shadow .15s;
}
.otp-shell .omda-row-card:hover,
.otp-shell .omda-row-card.is-open{border-color:var(--rc-hover-border);box-shadow:var(--rc-hover-shadow);}
.otp-shell .omda-row-card.is-muted{background:var(--rc-muted-bg);border-style:dashed;border-color:var(--rc-muted-border);}
.otp-shell .omda-row-card.is-muted .omda-row-card-brand,
.otp-shell .omda-row-card.is-muted .omda-plate{opacity:.75;}

/* Head: identity | person | number+date+chips | actions */
.otp-shell .omda-row-card-head{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.9fr) auto;
  grid-template-areas:"identity person ref actions" "identity person chips actions";
  align-items:center;
  column-gap:20px;
  row-gap:6px;
  padding:16px 20px;
  cursor:pointer;
}
.otp-shell .omda-row-card-head.no-ref{grid-template-areas:"identity person chips actions";}
.otp-shell .omda-row-card-who{display:contents;}
.otp-shell .omda-row-card-identity{grid-area:identity;display:flex;align-items:center;gap:14px;min-width:0;}
.otp-shell .omda-row-card-person{grid-area:person;min-width:0;}
.otp-shell .omda-row-card-ref{grid-area:ref;align-self:end;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;}
.otp-shell .omda-row-card-chips{grid-area:chips;align-self:start;display:flex;flex-wrap:wrap;gap:6px;min-width:0;}
.otp-shell .omda-row-card-head.no-ref .omda-row-card-chips{align-self:center;}
.otp-shell .omda-row-card-actions{grid-area:actions;display:flex;align-items:center;gap:8px;}

.otp-shell .omda-row-card-brand{
  flex:none;
  width:52px;height:52px;
  display:flex;align-items:center;justify-content:center;
  padding:3px;
  border-radius:12px;
  background:var(--rc-tile-bg);
  border:1px solid var(--rc-tile-border);
  color:var(--rc-tile-text);
  font-size:10.5px;font-weight:800;line-height:1.1;letter-spacing:.04em;text-align:center;
  overflow:hidden;
}
.otp-shell .omda-row-card-brand svg{width:22px;height:22px;}
.otp-shell .omda-row-card-id-text{min-width:0;}
.otp-shell .omda-plate{
  display:inline-flex;align-items:center;
  direction:ltr;unicode-bidi:isolate;white-space:nowrap;
  padding:7px 10px;
  border-radius:8px;
  border:2px solid var(--rc-plate-border);
  background:var(--rc-plate-bg);
  color:var(--rc-plate-text);
  font:800 17px/1 var(--omda-font-mono);
  letter-spacing:.02em;
}
.otp-shell .omda-row-card-title{margin-top:6px;font-size:16px;font-weight:700;line-height:1.35;color:var(--rc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.otp-shell .omda-row-card-title.is-lead{margin-top:0;}
.otp-shell .omda-row-card-sub{margin-top:4px;font-size:13.5px;line-height:1.4;color:var(--rc-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.otp-shell .omda-avatar{
  flex:none;
  width:26px;height:26px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--rc-avatar-bg);
  color:var(--rc-avatar-text);
  font-size:11px;font-weight:800;line-height:1;
}
.otp-shell .omda-avatar.is-lg{width:52px;height:52px;font-size:17px;}
.otp-shell .omda-person{display:flex;align-items:center;gap:8px;min-width:0;font-size:15px;font-weight:600;color:var(--rc-text);}
.otp-shell .omda-person-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.otp-shell .omda-row-card-meta{margin-top:6px;font-size:13.5px;line-height:1.4;color:var(--rc-sub);overflow-wrap:anywhere;}
.otp-shell .omda-row-card-ref-title{font-size:18px;font-weight:800;line-height:1;color:var(--rc-title);font-variant-numeric:tabular-nums;}
.otp-shell .omda-row-card-ref-sub{font-size:13px;color:var(--rc-sub);font-variant-numeric:tabular-nums;}

/* Semantic chip (components: omda-status) */
.otp-shell .omda-chip{
  --chip-bg:#1a2436;--chip-fg:#c9d1e0;--chip-dot:#8a96ab;
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;
  border-radius:999px;
  background:var(--chip-bg);
  color:var(--chip-fg);
  font-size:12.5px;font-weight:700;line-height:1.2;white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.otp-shell .omda-chip-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--chip-dot);}
.otp-shell .omda-chip.tone-ok{--chip-bg:#11261d;--chip-fg:#6fd6a5;--chip-dot:#6fd6a5;}
.otp-shell .omda-chip.tone-info{--chip-bg:#16243f;--chip-fg:#9cbcff;--chip-dot:#6f9bff;}
.otp-shell .omda-chip.tone-gold{--chip-bg:#221d12;--chip-fg:#e6c983;--chip-dot:#d9b46a;}
.otp-shell .omda-chip.tone-money{--chip-bg:#2a1a12;--chip-fg:#ffb27a;--chip-dot:#ffb27a;}
.otp-shell .omda-chip.tone-bad{--chip-bg:#2a1416;--chip-fg:#ff9a9a;--chip-dot:#ff7b7b;}
html[data-mode="light"] .otp-shell .omda-chip{--chip-bg:#f1f3f7;--chip-fg:#5d6879;--chip-dot:#8a94a5;}
html[data-mode="light"] .otp-shell .omda-chip.tone-ok{--chip-bg:#e6f6ee;--chip-fg:#1f7a4f;--chip-dot:#1f7a4f;}
html[data-mode="light"] .otp-shell .omda-chip.tone-info{--chip-bg:#e8eefb;--chip-fg:#23407a;--chip-dot:#3b6fd8;}
html[data-mode="light"] .otp-shell .omda-chip.tone-gold{--chip-bg:#f7f0e1;--chip-fg:#5c4c2c;--chip-dot:#a08858;}
html[data-mode="light"] .otp-shell .omda-chip.tone-money{--chip-bg:#fff1e6;--chip-fg:#b5571c;--chip-dot:#b5571c;}
html[data-mode="light"] .otp-shell .omda-chip.tone-bad{--chip-bg:#fdecec;--chip-fg:#b42318;--chip-dot:#d92d20;}

/* Head buttons */
.otp-shell .omda-row-card-actions .btn{
  height:44px;min-height:44px;min-width:0;
  padding-inline:14px;
  border-radius:12px;
  border:1px solid var(--rc-pri-border);
  background:var(--rc-pri-bg);
  color:var(--rc-pri-text);
  font-size:14px;font-weight:700;
  box-shadow:none;
}
.otp-shell .omda-row-card-actions .btn:hover{filter:brightness(1.04);}
.otp-shell .omda-row-card-actions .btn.btn-secondary{border-color:var(--rc-btn-border);background:var(--rc-btn-bg);color:var(--rc-btn-text);}
.otp-shell .omda-row-card-icon,
.otp-shell .omda-row-card-toggle,
.otp-shell .omda-row-card-menu .omda-row-actions-btn{
  flex:none;
  width:44px;height:44px;
  display:inline-flex;align-items:center;justify-content:center;
  padding:0;
  border-radius:12px;
  border:1px solid var(--rc-btn-border);
  background:var(--rc-btn-bg);
  color:var(--rc-btn-text);
  cursor:pointer;
  opacity:1;
  transform:none;
}
.otp-shell .omda-row-card-icon svg,
.otp-shell .omda-row-card-toggle svg{width:18px;height:18px;}
.otp-shell .omda-row-card-icon:hover,
.otp-shell .omda-row-card-toggle:hover{border-color:var(--rc-hover-border);color:var(--rc-pri-text);}
.otp-shell .omda-row-card-toggle svg{transition:transform .15s;}
.otp-shell .omda-row-card.is-open .omda-row-card-toggle{border-color:var(--rc-hover-border);color:var(--rc-pri-text);}
.otp-shell .omda-row-card.is-open .omda-row-card-toggle svg{transform:rotate(180deg);}
.otp-shell .omda-row-card-icon:focus-visible,
.otp-shell .omda-row-card-toggle:focus-visible,
.otp-shell .omda-row-card-actions .btn:focus-visible,
.otp-shell .omda-row-card-history-link:focus-visible{outline:2px solid var(--rc-hover-border);outline-offset:2px;}

/* History strip (row without a valid version) */
.otp-shell .omda-row-card-history{display:flex;align-items:center;gap:10px;padding:10px 20px 12px;border-top:1px dashed var(--rc-card-border);font-size:13.5px;color:var(--rc-sub);}
.otp-shell .omda-row-card-history svg{flex:none;width:16px;height:16px;}
.otp-shell .omda-row-card-history-link{margin-inline-start:auto;padding:0;border:0;background:none;font:inherit;font-weight:700;color:var(--rc-pri-text);cursor:pointer;white-space:nowrap;}

/* Opened card body inside the same article */
.otp-shell .omda-row-card-body{border-top:1px solid var(--rc-card-border);cursor:default;}
.otp-shell .omda-row-card-body .omda-entity-preview-sections{padding:16px 20px 18px;}
.otp-shell .omda-row-card-bar{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px;border-top:1px solid var(--rc-card-border);}
.otp-shell .omda-row-card-bar .btn{
  height:40px;min-height:40px;min-width:0;
  padding-inline:14px;
  border-radius:12px;
  border:1px solid var(--rc-btn-border);
  background:var(--rc-btn-bg);
  color:var(--rc-btn-text);
  font-size:14px;font-weight:700;
  box-shadow:none;
}
.otp-shell .omda-row-card-bar .btn.is-tone-money{color:var(--rc-money-text);border-color:var(--rc-money-border);}
.otp-shell .omda-row-card-bar .btn.btn-danger{color:#ff9a9a;}
html[data-mode="light"] .otp-shell .omda-row-card-bar .btn.btn-danger{color:#b42318;}

/* Tablet: identity + number on top, person + chips with actions below */
@container omda-row-cards (max-width:1040px){
  .otp-shell .omda-row-card-head,
  .otp-shell .omda-row-card-head.no-ref{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"identity ref" "who actions";
    column-gap:16px;
    row-gap:10px;
    padding:14px 16px;
  }
  .otp-shell .omda-row-card-head.no-ref{grid-template-areas:"identity identity" "who actions";}
  .otp-shell .omda-row-card-who{grid-area:who;display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;}
  .otp-shell .omda-row-card-person{display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
  .otp-shell .omda-row-card-meta{margin-top:0;font-size:13px;}
  .otp-shell .omda-row-card-person .omda-person + .omda-row-card-meta::before,
  .otp-shell .omda-row-card-meta + .omda-row-card-meta::before{content:"· ";}
  .otp-shell .omda-row-card-ref{align-self:center;align-items:flex-end;gap:5px;}
  .otp-shell .omda-row-card-ref-title{font-size:17px;}
  .otp-shell .omda-row-card-ref-sub{font-size:12.5px;}
  .otp-shell .omda-row-card-brand{width:48px;height:48px;font-size:10px;}
  .otp-shell .omda-avatar.is-lg{width:48px;height:48px;font-size:16px;}
  .otp-shell .omda-plate{font-size:16px;padding:6px 9px;}
  .otp-shell .omda-row-card-title{margin-top:5px;font-size:15.5px;}
  .otp-shell .omda-row-card-history{padding:10px 16px 12px;}
  .otp-shell .omda-row-card-body .omda-entity-preview-sections,
  .otp-shell .omda-row-card-body .omda-entity-preview-sections[data-count="3"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;padding:14px 16px;}
  .otp-shell .omda-row-card-body .omda-entity-preview-sections[data-count="1"]{grid-template-columns:minmax(0,1fr);}
  .otp-shell .omda-row-card-bar{padding:12px 16px;}
}

/* Mobile: one column; actions fill the width */
@container omda-row-cards (max-width:600px){
  .otp-shell .omda-row-card-head,
  .otp-shell .omda-row-card-head.no-ref{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"identity ref" "who who" "actions actions";
    row-gap:12px;
    padding:14px;
  }
  .otp-shell .omda-row-card-head.no-ref{grid-template-areas:"identity identity" "who who" "actions actions";}
  .otp-shell .omda-row-card-who{justify-content:space-between;}
  .otp-shell .omda-row-card-person .omda-row-card-meta{display:none;}
  .otp-shell .omda-person{font-size:13.5px;font-weight:400;}
  .otp-shell .omda-person .omda-avatar{display:none;}
  .otp-shell .omda-row-card-ref-title{font-size:15px;}
  .otp-shell .omda-row-card-ref-sub{font-size:12px;}
  .otp-shell .omda-row-card-brand{width:44px;height:44px;font-size:9.5px;border-radius:11px;}
  .otp-shell .omda-avatar.is-lg{width:44px;height:44px;font-size:15px;}
  .otp-shell .omda-plate{font-size:15px;padding:6px 8px;border-radius:7px;}
  .otp-shell .omda-row-card-title{font-size:14.5px;}
  .otp-shell .omda-row-card-actions .btn{flex:1;justify-content:center;}
  .otp-shell .omda-chip{font-size:12px;}
  .otp-shell .omda-row-card-history{padding:10px 14px 12px;font-size:12.5px;}
  .otp-shell .omda-row-card-body .omda-entity-preview-sections,
  .otp-shell .omda-row-card-body .omda-entity-preview-sections[data-count]{grid-template-columns:minmax(0,1fr);gap:16px;padding:14px;}
  .otp-shell .omda-row-card-bar{padding:12px 14px;}
  .otp-shell .omda-row-card-bar .btn{flex:1 1 calc(50% - 4px);justify-content:center;}
}

/* Dashboard / Standard KPI interaction contract */
.sc.sc-interactive{
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  transition:
    transform .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    background-color .16s ease;
}
.sc.sc-interactive:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb, currentColor 26%, transparent);
  box-shadow:0 12px 26px rgba(0,0,0,.14);
}
.sc.sc-interactive:focus-visible{
  outline:2px solid var(--product-accent,#64748b);
  outline-offset:3px;
}
.sc.sc-interactive:active{
  transform:translateY(0);
}
@media (prefers-reduced-motion:reduce){
  .sc.sc-interactive{
    transition:none;
  }
}

/* ─────────────────────────────────────────────────────────────
   6) STATE / SMALL UTILITIES CONTRACTS
───────────────────────────────────────────────────────────── */
.omda-state-disabled{opacity:.42;pointer-events:none;filter:grayscale(.15);}
[data-no-avatar="true"] .otp-main-avatar,.otp-main-cell[data-no-avatar="true"] .otp-main-avatar{display:none;}
/* .case-source-badge inherits Badge / Chip / Status Pill Contract. */


/* OMDA Shell v5.3 — Sidebar brand single contract
   One global brand/header layout for desktop sidebar and drawer states. */
.sidebar .sb-brand{
  flex:0 0 auto;
  min-height:96px;
  padding:20px 22px 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border-bottom:0;
  direction:rtl;
  overflow:hidden;
}
.sidebar .sb-logo,
.sidebar .sb-brand .lg{
  width:52px;
  height:52px;
  flex:0 0 52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  padding:0;
  margin:0;
  border:0;
  background:linear-gradient(135deg,var(--product-accent-2,var(--a-2)),var(--product-accent,var(--a)));
  box-shadow:0 10px 26px rgba(var(--product-rgb,var(--a-rgb)),.32);
  color:var(--a-ink,#2a1d00);
  overflow:hidden;
}
.sidebar .sb-logo::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
  pointer-events:none;
}
.sidebar .sb-logo img,
.sidebar .sb-logo img.icon{
  width:42px;
  height:42px;
  max-width:42px;
  max-height:42px;
  object-fit:contain;
  border-radius:10px;
  display:block;
}
.sidebar .sb-logo svg,
.sidebar .sb-brand .lg svg{
  width:28px;
  height:28px;
}
.sidebar .sb-brand .omda-brand-text{
  display:inline-flex;
  align-items:baseline;
  gap:3px;
  min-width:0;
  max-width:132px;
  overflow:hidden;
  white-space:nowrap;
  font-family:var(--omda-font-ui);
  font-size:24px;
  font-weight:800;
  line-height:1;
  letter-spacing:-.045em;
  direction:ltr;
}
.sidebar .sb-brand .omda-brand-name,
.sidebar .sb-brand .omda-brand-product{
  flex:0 0 auto;
}
.sidebar .sb-brand .brand,
.sidebar .sb-brand .nm{
  display:block;
  width:auto;
  height:auto;
  min-width:0;
  max-width:132px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:"Frank Ruhl Libre","Rubik",serif;
  font-size:30px;
  font-weight:900;
  line-height:1;
  letter-spacing:.02em;
  color:var(--text,var(--omda-text));
  direction:ltr;
}
.sidebar .sb-brand small,
.sidebar .sb-brand .sub{
  display:block;
  width:auto;
  height:auto;
  margin-top:3px;
  font-family:var(--mono,"Rubik",sans-serif);
  font-size:11px;
  font-weight:700;
  line-height:1.1;
  color:var(--text-3,var(--omda-muted));
  letter-spacing:.06em;
  direction:ltr;
}

/* OMDA Shell v5.3 — SidebarFooterUser Contract
   Single visual contract for the sidebar user footer.
   Supports current DOM aliases from shared.js:
   .sb-foot/.sb-footer, .av, .nm/.sb-user-name, .rl/.sb-user-pro, .out/.btn-logout.
   Owns footer layout, avatar initials badge, role/name text, logout button and logout SVG only.
*/
.sidebar .sb-foot,
.sidebar .sb-footer{
  flex:0 0 auto;
  margin:10px 12px 14px;
  padding:13px;
  min-height:68px;
  display:flex;
  align-items:center;
  gap:11px;
  border-radius:var(--omda-soft-radius-sm,14px);
  background:var(--surface,var(--omda-surface));
  border:1px solid transparent;
  box-shadow:none;
  overflow:hidden;
}
html[data-mode="dark"] .sidebar .sb-foot,
html[data-mode="dark"] .sidebar .sb-footer{
  background:var(--card-solid,var(--omda-surface-2));
  border-color:var(--line,var(--omda-border));
}
html[data-mode="light"] .sidebar .sb-foot,
html[data-mode="light"] .sidebar .sb-footer{
  background:var(--surface,var(--omda-surface));
  border-color:transparent;
}
.sidebar .sb-foot .av,
.sidebar .sb-footer .av{
  width:40px;
  height:40px;
  min-width:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg,var(--product-accent-2,var(--a-2)),var(--product-accent,var(--a)));
  color:var(--a-ink,#07111d);
  font-size:13px;
  font-weight:900;
  line-height:1;
  overflow:hidden;
}
.sidebar .sb-user-meta{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
}
.sidebar .sb-foot .nm,
.sidebar .sb-footer .nm,
.sidebar .sb-user-name{
  min-width:0;
  max-width:100%;
  display:block;
  margin:0;
  color:var(--text,var(--omda-text));
  font-size:13px;
  font-weight:700;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar .sb-foot .nm strong,
.sidebar .sb-footer .nm strong,
.sidebar .sb-user-name strong{font:inherit;color:inherit;}
.sidebar .sb-foot .rl,
.sidebar .sb-footer .rl,
.sidebar .sb-user-pro,
.sidebar .sb-user-role{
  min-width:0;
  max-width:100%;
  display:block;
  margin:0;
  color:var(--text-3,var(--omda-muted));
  font-size:11px;
  font-weight:700;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar .sb-role-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  padding:4px 11px;
  margin:0;
  border-radius:99px;
  background:rgba(var(--product-rgb,var(--a-rgb)),.12);
  border:1px solid rgba(var(--product-rgb,var(--a-rgb)),.22);
  color:var(--product-accent,var(--a));
  font-size:11px;
  font-weight:800;
  line-height:1.15;
  white-space:nowrap;
}
.sidebar .sb-foot .out,
.sidebar .sb-footer .out,
.sidebar .btn-logout{
  width:40px;
  height:40px;
  min-width:40px;
  flex:0 0 40px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:12px;
  background:var(--card,var(--omda-surface-2));
  color:var(--text-3,var(--omda-muted));
  cursor:pointer;
  box-shadow:none;
  transition:background .16s,color .16s,transform .12s;
}
.sidebar .sb-foot .out:hover,
.sidebar .sb-footer .out:hover,
.sidebar .btn-logout:hover{
  background:var(--bad-bg,rgba(239,68,68,.12));
  color:var(--bad,#ef4444);
}
.sidebar .sb-foot .out:focus-visible,
.sidebar .sb-footer .out:focus-visible,
.sidebar .btn-logout:focus-visible{
  outline:0;
  background:var(--bad-bg,rgba(239,68,68,.12));
  color:var(--bad,#ef4444);
  box-shadow:0 0 0 3px rgba(239,68,68,.18);
}
.sidebar .sb-foot .out:active,
.sidebar .sb-footer .out:active,
.sidebar .btn-logout:active{transform:scale(.96);}
.sidebar .sb-foot .out svg,
.sidebar .sb-footer .out svg,
.sidebar .btn-logout svg{
  width:22px;
  height:22px;
  max-width:22px;
  max-height:22px;
  display:block;
  stroke:currentColor;
  fill:none;
  stroke-width:2;
}


/* =================================================================
   OMDA Global Search Shell v1
   Global live search UI. Products provide adapters only.
================================================================= */
.omda-modal.omda-global-search-modal {
  width: min(760px, calc(100vw - 28px));
}

.omda-global-search-shell {
  display: grid;
  gap: 14px;
  min-height: 260px;
}

.omda-global-search-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.omda-global-search-input {
  width: 100%;
  padding-inline-start: 44px;
}

.omda-global-search-ico {
  position: absolute;
  inset-inline-start: 14px;
  display: inline-flex;
  width: 20px;
  height: 20px;
  color: var(--text-2);
  pointer-events: none;
}

.omda-global-search-body {
  display: grid;
  gap: 12px;
}

.omda-global-search-state,
.omda-global-search-loading {
  min-height: 168px;
  display: grid;
  place-items: center;
  text-align: center;
  gap: 8px;
  padding: 28px 16px;
  border: 1px dashed var(--line-2);
  border-radius: 18px;
  color: var(--text-2);
}

.omda-global-search-state-title {
  font-weight: 800;
  color: var(--text);
}

.omda-global-search-state-sub {
  font-size: 13px;
  color: var(--text-2);
}

.omda-global-search-group {
  display: grid;
  gap: 8px;
}

.omda-global-search-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--text-2);
  font-size: 13px;
  font-weight: 700;
}

.omda-global-search-group-head b {
  min-width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: var(--card-hi);
  color: var(--text);
  font-size: 12px;
}

.omda-global-search-results {
  display: grid;
  gap: 8px;
}

.omda-global-search-result {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-align: start;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--text);
  cursor: pointer;
}

.omda-global-search-result:hover {
  border-color: var(--line-2);
  background: var(--card-hi);
}

.omda-global-search-result-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.omda-global-search-result-main strong,
.omda-global-search-result-main small {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.omda-global-search-result-main small,
.omda-global-search-result-side small {
  color: var(--text-2);
  font-size: 12px;
}

.omda-global-search-result-side {
  display: grid;
  gap: 3px;
  justify-items: end;
  flex: 0 0 auto;
}

.omda-global-search-result-side em {
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  color: var(--text);
}

@media (max-width:799.98px) {
  .omda-modal.omda-global-search-modal {
    width: calc(100vw - 18px);
  }

  .omda-global-search-result {
    align-items: flex-start;
  }

  .omda-global-search-result-side {
    display: none;
  }
}

/* =================================================================
   OMDA Global Search Shell v1.1
   Anchored topbar search results popover.
================================================================= */
.omda-global-search-popover {
  position: fixed;
  z-index: 95000;
  direction: rtl;
  border: 1px solid var(--line-2);
  border-radius: 18px;
  background: var(--card);
  background-image: var(--card-grad);
  box-shadow: var(--shadow-lg);
  color: var(--text);
  overflow: hidden;
}

.omda-global-search-popover-body {
  display: grid;
  gap: 10px;
  max-height: min(420px, calc(100vh - 170px));
  overflow: auto;
  padding: 12px;
}

.omda-global-search-popover .omda-global-search-state,
.omda-global-search-popover .omda-global-search-loading {
  min-height: 96px;
  padding: 18px 12px;
}

/* OMDA Global Search Shell v1.1 — topbar input polish */
.tb-search input[type="search"]::-webkit-search-cancel-button,
.omda-global-search-input[type="search"]::-webkit-search-cancel-button {
  opacity: .55;
  filter: grayscale(1);
}

.tb-search input[type="search"]::-webkit-search-cancel-button:hover,
.omda-global-search-input[type="search"]::-webkit-search-cancel-button:hover {
  opacity: .85;
}

@media (max-width:799.98px) {
  .omda-global-search-popover {
    display: none;
  }
}

/* ==========================================================================
   OMDA Work Context Panel Candidate v0.1
   Candidate only — not locked.

   Purpose:
   - Active work-mode layout with live context panel.
   - Panel opens from the left side and pushes the workspace toward center/right.
   - Uses existing Shell primitives: .badge, .chip, .btn and SVG icons.
   - No product-local CSS. No !important. No override layers.
   ========================================================================== */

.omda-work-layout{
  width:100%;
  min-width:0;
  direction:ltr;
  display:grid;
  grid-template-columns:0 minmax(760px,1040px);
  grid-template-areas:"panel content";
  gap:18px;
  align-items:start;
  justify-content:center;
  transition:
    grid-template-columns 1s cubic-bezier(.16,1,.3,1),
    gap 1s cubic-bezier(.16,1,.3,1);
}

.omda-work-layout.has-panel-space{
  grid-template-columns:minmax(360px,430px) minmax(760px,1040px);
}

.omda-work-content{
  grid-area:content;
  min-width:0;
  direction:rtl;
  transform:translate3d(0,0,0);
  transition:
    transform 1s cubic-bezier(.16,1,.3,1),
    opacity .55s ease;
}

.omda-work-panel{
  grid-area:panel;
  direction:rtl;
  min-height:0;
  height:calc(100vh - 56px);
  position:sticky;
  top:28px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  font-family:var(--omda-font-ui);
  background:var(--card-solid,var(--card));
  background-image:var(--card-grad,none);
  border:1px solid var(--line);
  border-radius:var(--radius,18px);
  box-shadow:var(--shadow);
  transform:translate3d(calc(-100% - 32px),0,0) scale(.985);
  opacity:0;
  pointer-events:none;
  will-change:transform,opacity;
  transition:
    transform 1s cubic-bezier(.16,1,.3,1),
    opacity .55s ease;
}

.omda-work-layout.is-panel-open .omda-work-panel{
  transform:translate3d(0,0,0) scale(1);
  opacity:1;
  pointer-events:auto;
}

.omda-work-panel-head{
  min-height:0;
  padding:18px 20px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

/* ================================================================
   OMDA WORKSPACE HEADING CANON v1

   Ownership: Global Shell.
   Purpose: calm operational canvas heading shared by workspaces.
   Supports title, secondary copy and an optional numeric count.
================================================================ */

.omda-workspace-heading {
  width:100%;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  box-sizing:border-box;
  direction:rtl;
}

.omda-workspace-heading-copy {
  min-width:0;
  flex:1 1 auto;
}

.omda-workspace-heading-title {
  margin:0;
  color:var(--text,var(--omda-text));
  font-size:16px;
  font-weight:800;
  line-height:1.3;
}

.omda-workspace-heading-subtitle {
  margin:3px 0 0;
  color:var(--text-2,var(--omda-muted));
  font-size:11px;
  font-weight:400;
  line-height:1.4;
}

.omda-workspace-heading-count {
  min-width:28px;
  height:24px;
  padding-inline:8px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  color:var(--a,var(--product-accent));
  background:
    color-mix(
      in srgb,
      var(--a,var(--product-accent)) 12%,
      transparent
    );
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  line-height:1;
}

/* Responsive variants are opt-in; base heading remains reusable. */
.omda-workspace-heading--tablet {
  display:none;
}
/* ================================================================
   OMDA WORK NAVIGATION STATE CANON v1

   Ownership: Global Shell.
   Purpose: operational navigation row state with a calm
   status indicator and an optional trailing numeric count.
================================================================ */

.omda-work-nav-item {
  --omda-work-nav-ok:
    var(--ok,var(--success,#22c55e));
  --omda-work-nav-attention:
    var(--danger,var(--error,#ef4444));
}

.omda-work-nav-row {
  position:relative;
}

.omda-work-nav-row::before {
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--omda-work-nav-ok);
  box-shadow:
    0 0 0 3px
    color-mix(
      in srgb,
      var(--omda-work-nav-ok) 12%,
      transparent
    );
}

.omda-work-nav-item.s-warn
.omda-work-nav-row::before {
  background:
    var(--omda-work-nav-attention);
  box-shadow:
    0 0 0 3px
    color-mix(
      in srgb,
      var(--omda-work-nav-attention) 12%,
      transparent
    );
}

.omda-work-nav-count {
  font-variant-numeric:tabular-nums;
}
.omda-work-panel-title{
  font-size:17px;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.01em;
  color:var(--text);
}

.omda-work-panel-count{
  flex:0 0 auto;
  padding:6px 14px;
  font-size:13px;
}

.omda-work-panel-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding:0;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:var(--line-2) transparent;
}

.omda-work-panel-body::-webkit-scrollbar{
  width:10px;
}

.omda-work-panel-body::-webkit-scrollbar-track{
  background:transparent;
}

.omda-work-panel-body::-webkit-scrollbar-thumb{
  background:var(--line-2);
  border-radius:99px;
  border:3px solid transparent;
  background-clip:padding-box;
}

.omda-work-panel-body::-webkit-scrollbar-thumb:hover{
  background:var(--line-2);
  background-clip:padding-box;
}

.omda-work-group{
  margin:0;
  border:0;
}

.omda-work-group + .omda-work-group{
  border-top:1px solid var(--line);
}

.omda-work-group-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:16px 20px 10px;
}

.omda-work-group-name{
  min-width:0;
  font-size:16px;
  font-weight:800;
  line-height:1.35;
  color:var(--text);
}

.omda-work-group-count{
  flex:0 0 auto;
  font-family:var(--omda-font-mono);
  font-size:13px;
  font-weight:600;
  color:var(--text-3);
}

.omda-work-list{
  padding:4px 12px 14px;
}













.item-code,






.omda-work-photo-indicator{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  font-weight:800;
  color:var(--text-2);
}

.omda-work-photo-indicator svg,
.omda-work-panel-toggle svg,
.omda-work-panel-peek svg{
  width:16px;
  height:16px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.omda-work-panel-toggle,
.omda-work-panel-peek{
  width:34px;
  height:34px;
  border-radius:11px;
  border:1px solid rgba(var(--product-rgb,var(--a-rgb)),.42);
  background:var(--surface);
  color:var(--product-accent,var(--a));
  display:grid;
  place-items:center;
  cursor:pointer;
}

.omda-work-panel-peek{
  position:fixed;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  z-index:120;
  display:none;
}

.omda-work-layout.has-items:not(.is-panel-open) .omda-work-panel-peek{
  display:grid;
}

.omda-work-mobile-views{
  display:none;
}

.omda-work-mobile-view{
  min-width:0;
  height:40px;
  padding:0 14px;
  border:0;
  border-radius:11px;
  background:var(--surface);
  color:var(--text-2);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-family:var(--omda-font-ui);
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}

.omda-work-mobile-view.is-active,
.omda-work-mobile-view[aria-selected="true"]{
  background:
    color-mix(
      in srgb,
      var(--a) 13%,
      transparent
    );
  color:var(--a);
}

.omda-work-mobile-view-count{
  min-width:20px;
  height:18px;
  padding-inline:5px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  background:var(--card-hi);
  color:var(--text-3);
  font-size:10px;
  font-weight:850;
}

.omda-work-mobile-view.is-active
.omda-work-mobile-view-count,
.omda-work-mobile-view[aria-selected="true"]
.omda-work-mobile-view-count{
  background:var(--a);
  color:var(--a-ink);
}

@media(max-width:1180px){
  .omda-work-layout.has-panel-space{
    grid-template-columns:minmax(320px,380px) minmax(0,1fr);
  }
}

@media(max-width:799.98px){
  .omda-work-layout,
  .omda-work-layout.is-panel-open{
    grid-template-columns:1fr;
    grid-template-areas:"content";
  }

  .omda-work-layout.has-mobile-work-views{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr);
    grid-template-areas:
      "mobileviews"
      "content";
    gap:8px;
  }

  /*
   * Mobile navigation owns one explicit grid column.
   *
   * The Work Panel is an out-of-flow Bottom Sheet here,
   * so its desktop/tablet grid-area must not generate
   * implicit Mobile grid tracks.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ]
  .omda-work-panel{
    grid-area:auto;
  }

  /*
   * Mobile Work Views replace the legacy drawer handle.
   * Category navigation opens the focused sheet directly;
   * the Findings tab owns the full panel projection.
   */
  .omda-work-layout.has-mobile-work-views.has-items
  .omda-work-panel-peek,
  .omda-work-layout.has-mobile-work-views
  .omda-work-panel-toggle{
    display:none;
  }

  .omda-work-layout.has-mobile-work-views
  .omda-work-mobile-views{
    grid-area:mobileviews;
    position:sticky;
    top:var(
      --omda-work-mobile-views-sticky-top,
      -18px
    );
    z-index:145;
    width:100%;
    min-width:0;
    padding:8px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    direction:rtl;
    background:var(--bg-2);
    border-bottom:1px solid var(--line);
  }

  .omda-work-layout.has-mobile-work-views
  .omda-work-mobile-view:first-child{
    border-radius:0 11px 11px 0;
  }

  .omda-work-layout.has-mobile-work-views
  .omda-work-mobile-view:last-child{
    border-radius:11px 0 0 11px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]{
    grid-template-areas:
      "mobileviews"
      "panel";
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-content{
    display:none;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-panel{
    grid-area:panel;
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    max-height:none;
    min-height:0;
    border:0;
    border-radius:0;
    background:transparent;
    background-image:none;
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    z-index:auto;
    box-shadow:none;
  }

  /*
   * Full Mobile Findings projection continues directly below
   * the Findings tab. The tab already owns view identity/count,
   * so the legacy panel heading would duplicate hierarchy.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-panel > .omda-work-panel-head{
    display:none;
  }

  /*
   * Mobile Findings = compact Tablet Work Panel projection.
   * Same canonical finding rows/actions, adapted only for
   * the constrained Mobile reading surface.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-group-head{
    min-height:36px;
    padding:9px 10px 7px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-group-name{
    font-size:13px;
    font-weight:850;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-group-count{
    font-size:10px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-list{
    padding:0 8px 9px;
    display:grid;
    gap:6px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel{
    min-height:50px;
    padding:9px 9px;
    gap:8px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--surface);
    box-shadow:none;
    cursor:default;
    overflow:visible;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel:hover{
    background:var(--surface);
    border-color:var(--line);
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row-tone{
    width:3px;
    min-width:3px;
    border-radius:99px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row-body{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:8px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row-content{
    width:100%;
    flex:1 1 auto;
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel
  .omda-work-row-code{
    flex:0 0 auto;
    padding:3px 7px;
    border-radius:8px;
    font-size:10.5px;
    line-height:1.2;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel
  .omda-work-row-title{
    min-width:0;
    font-size:13px;
    font-weight:650;
    line-height:1.35;
    white-space:normal;
    overflow:visible;
    overflow-wrap:anywhere;
    text-overflow:clip;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel
  .omda-work-row-rail{
    width:100%;
    min-width:0;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:6px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel
  .omda-work-row-actions{
    display:flex;
    align-items:center;
    gap:5px;
    margin:0;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel
  .omda-work-row-actions
  .btn{
    position:relative;
    width:30px;
    min-width:30px;
    height:30px;
    min-height:30px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0;
    border-radius:9px;
    font-size:0;
    line-height:0;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel
  .omda-work-row-actions
  .btn svg{
    width:15px;
    height:15px;
    flex:0 0 15px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-media-label{
    display:none;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-row--panel
  .omda-work-media-count{
    position:absolute;
    inset-block-start:-5px;
    inset-inline-start:-5px;
    min-width:15px;
    height:15px;
    padding:0 3px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:var(
      --omda-work-gold,
      var(--product-accent)
    );
    color:var(--bg);
    font-family:var(--omda-font-mono);
    font-size:9px;
    font-weight:850;
    line-height:1;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-media-count[
    data-omda-work-media-count="0"
  ]{
    display:none;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-secondary-action{
    font-size:0;
    line-height:0;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-secondary-action svg{
    display:block;
    align-self:center;
    justify-self:center;
    margin:0;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-secondary-action:disabled,
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-secondary-action[aria-disabled="true"]{
    opacity:.34;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-panel-toggle,
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="panel"
  ]
  .omda-work-panel-peek{
    display:none;
  }

  /*
   * Mobile focused Work Sheet.
   *
   * Same Work Panel / same finding projection.
   * Only the currently focused group remains visible.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-panel{
    height:auto;
    min-height:0;
    max-height:min(
      calc(100vh - 56px),
      680px
    );
    max-height:min(
      var(
        --omda-work-mobile-sheet-max-height,
        calc(100dvh - 56px)
      ),
      680px
    );
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-panel-head{
    position:relative;
    touch-action:none;
    user-select:none;
    cursor:grab;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-panel-head::before{
    content:"";
    position:absolute;
    top:7px;
    left:50%;
    width:62%;
    height:4px;
    border-radius:999px;
    background:var(--line-2,var(--line));
    transform:translateX(-50%);
    pointer-events:none;
  }

  .omda-work-layout.has-mobile-work-views.is-mobile-sheet-dragging
  .omda-work-panel-head{
    cursor:grabbing;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-group:not(.is-work-focused){
    display:none;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-group.is-work-focused{
    display:block;
  }

  /*
   * Mobile Focused Sheet item projection.
   *
   * Mockup continuation:
   * compact cards inside the Sheet — never Desktop Work Panel rows.
   * Presentation only. Geometry remains owned separately below.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-panel-body{
    padding:8px 10px 16px;
  }

  /*
   * The Sheet head already owns category identity.
   * Do not repeat the category as a second section heading.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-group-head{
    display:none;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-list{
    padding:0;
    display:grid;
    gap:6px;
  }

  /*
   * Mockup-style compact finding card.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row--panel{
    min-height:52px;
    padding:10px 12px;
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid var(--omda-work-line);
    border-radius:13px;
    background:var(--omda-work-surface);
    box-shadow:none;
    overflow:hidden;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row--panel:hover{
    border-color:var(--omda-work-line);
    background:var(--omda-work-surface);
    box-shadow:none;
  }

  /*
   * Desktop/Tablet tone rail does not belong to
   * the compact Mobile Sheet card.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-tone{
    display:none;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-body{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:9px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-content{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    align-items:center;
    gap:9px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-code{
    flex:0 0 auto;
    padding:3px 7px;
    border-radius:8px;
    font-size:10.5px;
    line-height:1.2;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-title{
    min-width:0;
    font-size:13px;
    font-weight:650;
    line-height:1.35;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-rail{
    width:auto;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:5px;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-actions{
    display:flex;
    align-items:center;
    gap:5px;
    margin:0;
  }

  /*
   * Sheet actions are icon actions, exactly as in the
   * compact Mobile findings language.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-actions .btn{
    position:relative;
    width:30px;
    min-width:30px;
    height:30px;
    min-height:30px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0;
    border-radius:9px;
    font-size:0;
    line-height:0;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-row-actions .btn svg{
    width:15px;
    height:15px;
    flex:0 0 15px;
    margin:0;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-media-label{
    display:none;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-secondary-action{
    font-size:0;
    line-height:0;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-media-count{
    position:absolute;
    inset-block-start:-5px;
    inset-inline-start:-5px;
    min-width:15px;
    height:15px;
    padding:0 3px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:var(
      --omda-work-gold,
      var(--product-accent)
    );
    color:var(--bg);
    font-family:var(--omda-font-mono);
    font-size:9px;
    font-weight:850;
    line-height:1;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ][
    data-omda-work-mobile-sheet-mode="focused"
  ]
  .omda-work-media-count[
    data-omda-work-media-count="0"
  ]{
    display:none;
  }

  /*
   * Mobile Bottom Sheet geometry owner.
   *
   * Only the Navigation projection may turn the canonical
   * Work Panel into a viewport-fixed Bottom Sheet.
   * Findings projection owns its own in-flow panel geometry.
   */
  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ]
  .omda-work-panel{
    position:fixed;
    inset:auto 0 0 0;
    border-radius:22px 22px 0 0;
    transform:translate3d(0,110%,0) scale(.99);
    z-index:160;
  }

  .omda-work-layout.has-mobile-work-views[
    data-omda-work-mobile-view-current="navigation"
  ].is-panel-open
  .omda-work-panel{
    transform:translate3d(0,0,0) scale(1);
  }

  .omda-work-panel-peek{
    position:fixed;
    left:16px;
    right:auto;
    bottom:18px;
    top:auto;
    transform:none;
    z-index:160;
  }

  .omda-work-layout.is-panel-open .omda-work-panel-toggle{
    position:fixed;
    left:16px;
    right:auto;
    bottom:18px;
    top:auto;
    transform:none;
    z-index:161;
  }
}

html[data-mode="light"] .omda-work-panel{
  background:#fff;
  border-color:var(--line-2,#d4dbe6);
  box-shadow:0 18px 42px rgba(15,27,45,.14);
}

html[data-mode="light"] .omda-work-panel-body{
  scrollbar-color:var(--line-2) transparent;
}

html[data-mode="light"] .omda-work-panel-body::-webkit-scrollbar-track{
  background:transparent;
}

/* ==========================================================================
   OMDA Work Session Shell Candidate v0.3
   Candidate only — state/loader + original case workspace as work canvas.
   Shell owns session state, loader, sidebar/topbar/work-canvas behavior.
   Product keeps original hero, original inspection layout and workflow.
   ========================================================================== */

body.omda-work-session-active:has(
  #pageMain > .case-workspace-wrap
){
  overflow:hidden;
}

body.omda-work-session-active .sidebar{
  transform:translateX(100%);
  opacity:0;
  pointer-events:none;
  transition:
    transform 1s cubic-bezier(.16,1,.3,1),
    opacity .55s ease;
}

body.omda-work-session-active .topbar,
body.omda-work-session-active .omda-topbar{
  position:fixed;
  inset-block-start:0;
  inset-inline:0;
  width:100vw;
  max-width:none;
  z-index:860;
  transition:
    width 1s cubic-bezier(.16,1,.3,1),
    inset .8s cubic-bezier(.16,1,.3,1);
}

/* The original case workspace becomes the work canvas.
   This keeps the existing Auto hero and inspection accordion styling intact. */
body.omda-work-session-active #pageMain > .case-workspace-wrap{
  position:fixed;
  inset-block-start:76px;
  inset-inline:24px;
  inset-block-end:24px;
  z-index:820;
  width:auto;
  max-width:none;
  margin:0;
  padding:18px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(148,168,200,.34) rgba(10,15,26,.36);
  border:1px solid var(--line, rgba(148,168,200,.14));
  border-radius:28px;
  background:
    radial-gradient(circle at 12% 0%, rgba(59,110,165,.16), transparent 34%),
    linear-gradient(180deg, var(--bg, #0a0f1a), var(--bg-2, #0e1422));
  box-shadow:0 24px 80px rgba(0,0,0,.30);
}

/*
 * Mobile Work Session edge-to-edge canvas.
 *
 * Desktop / Tablet keep the framed Work Canvas.
 * Mobile viewport itself becomes the canvas.
 *
 * The topbar remains outside the workspace.
 * Existing internal component spacing remains canonical.
 */
@media(max-width:799.98px){
  body.omda-work-session-active
  #pageMain > .case-workspace-wrap{
    inset-block-start:68px;
    inset-inline:0;
    inset-block-end:0;

    width:100%;
    max-width:none;

    margin:0;
    padding:0;

    border:0;
    border-radius:0;

    background:
      linear-gradient(
        180deg,
        var(--omda-work-bg),
        var(--omda-work-bg-2)
      );

    box-shadow:none;

    /*
     * Canvas remains the scroll owner, but Mobile does not
     * reserve horizontal space for a visible scrollbar.
     */
    scrollbar-width:none;
  }

  body.omda-work-session-active
  #pageMain
  > .case-workspace-wrap::-webkit-scrollbar {
    width:0;
    height:0;
    display:none;
  }
}

body.omda-work-session-active #pageMain > .case-workspace-wrap::-webkit-scrollbar,
body.omda-work-session-active .omda-work-content::-webkit-scrollbar{
  width:10px;
  height:10px;
}

body.omda-work-session-active #pageMain > .case-workspace-wrap::-webkit-scrollbar-track,
body.omda-work-session-active .omda-work-content::-webkit-scrollbar-track{
  background:rgba(10,15,26,.36);
  border-radius:999px;
}

body.omda-work-session-active #pageMain > .case-workspace-wrap::-webkit-scrollbar-thumb,
body.omda-work-session-active .omda-work-content::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, rgba(148,168,200,.38), rgba(93,107,133,.38));
  border:2px solid rgba(10,15,26,.36);
  border-radius:999px;
}

body.omda-work-session-active #pageMain > .case-workspace-wrap::-webkit-scrollbar-thumb:hover,
body.omda-work-session-active .omda-work-content::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg, rgba(202,168,93,.58), rgba(148,168,200,.42));
}

.omda-work-panel-shell{
  display:contents;
}

@media(min-width:800px){
  body.omda-work-session-active .omda-work-layout{
    position:relative;
    width:min(100%,1040px);
    max-width:1040px;
    margin-inline:auto;
    box-sizing:border-box;
    transition:none;
  }

  /*
   * Desktop / tablet drawer unit.
   * Panel + toggle tab are one physical moving object.
   */
  body.omda-work-session-active .omda-work-panel-shell{
    display:block;
    position:absolute;
    top:0;
    left:0;
    width:calc((100% - 18px) / 2);
    height:calc(
      100dvh -
      (var(--omda-work-session-canvas-pad,18px) * 2)
    );
    min-width:0;
    overflow:visible;
    z-index:2;
    pointer-events:none;
  }

  /*
   * The panel no longer owns the slide transform.
   * Its shell owns movement so the tab can never detach from it.
   */
  body.omda-work-session-active
  .omda-work-panel-shell
  .omda-work-panel{
    grid-area:auto;
    position:relative;
    top:auto;
    width:100%;
    min-width:0;
    height:100%;
    transform:none;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
      opacity .18s ease,
      visibility 0s linear .18s;
  }

  body.omda-work-session-active
  .omda-work-layout.is-panel-open
  .omda-work-panel-shell
  .omda-work-panel{
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:
      opacity .18s ease;
  }

  /*
   * Catalog group/list primitives own all panel inner spacing.
   */

  /*
   * Unified drawer tab.
   * Same DOM, geometry, surface and Y anchor in both states.
   */
  body.omda-work-session-active
  .omda-work-panel-shell
  .omda-work-panel-peek{
    display:grid;
    position:absolute;
    top:50%;
    right:auto;
    left:-16px;
    width:32px;
    min-width:32px;
    height:60px;
    min-height:60px;
    padding:0;
    box-sizing:border-box;
    transform:translateY(-50%);
    border:1px solid var(--line-2);
    border-radius:var(--radius-sm,13px);
    background:var(--card-solid);
    background-image:var(--card-grad);
    color:var(--a);
    box-shadow:var(--shadow-lg);
    cursor:pointer;
    opacity:1;
    pointer-events:auto;
    z-index:3;
    transition:
      background .15s ease,
      border-color .15s ease,
      box-shadow .15s ease;
  }

  body.omda-work-session-active
  .omda-work-panel-shell
  .omda-work-panel-peek:hover{
    background:var(--card-solid);
    background-image:var(--card-grad);
    border-color:var(--line-2);
    box-shadow:var(--shadow-lg);
  }

  body.omda-work-session-active
  .omda-work-panel-shell
  .omda-work-panel-peek:focus-visible{
    outline:2px solid rgba(
      var(--product-rgb,var(--a-rgb)),
      .42
    );
    outline-offset:2px;
  }

  body.omda-work-session-active
  .omda-work-panel-shell
  .omda-work-panel-peek svg{
    position:relative;
    z-index:1;
    width:16px;
    height:16px;
    transition:
      transform .2s ease;
  }

  body.omda-work-session-active
  .omda-work-layout.is-panel-open
  .omda-work-panel-shell
  .omda-work-panel-peek svg{
    transform:rotate(180deg);
  }

  body.omda-work-session-active .omda-work-panel-toggle{
    display:none;
  }
}


/* Work mode hides navigation noise, not the professional content. */
body.omda-work-session-active .case-tabs,
body.omda-work-session-active .prog-chips{
  display:none;
}

/* Counters move to the work panel. Category headers stay clean. */
body.omda-work-session-active .acc-count{
  display:none;
}

body.omda-work-session-active .omda-work-content,
body.omda-work-session-active .omda-work-panel{
  min-height:0;
}

/* ==========================================================================
   OMDA Work Session Shell Candidate v0.3 — Work panel height contract
   Candidate only — panel must fit the visible work canvas, not full content.
   ========================================================================== */

body.omda-work-session-active{
  --omda-work-session-top:76px;
  --omda-work-session-bottom:24px;
  --omda-work-session-canvas-pad:18px;
  --omda-work-panel-visible-height:calc(
    100vh - var(--omda-work-session-top) - var(--omda-work-session-bottom) - (var(--omda-work-session-canvas-pad) * 2)
  );
}

@media(min-width:800px){
  body.omda-work-session-active .omda-work-panel{
    position:sticky;
    top:0;
    align-self:start;
    height:var(--omda-work-panel-visible-height);
    max-height:var(--omda-work-panel-visible-height);
    min-height:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
}

body.omda-work-session-active .omda-work-panel-head{
  flex:0 0 auto;
}

body.omda-work-session-active .omda-work-panel-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  scrollbar-width:thin;
}

body.omda-work-session-active .omda-work-content{
  min-height:0;
}

@media(max-width:799.98px){
  /*
   * Active Mobile Work Session owns the full operational viewport.
   * The global bottom navigation remains mounted but is not exposed
   * until the work session ends.
   */
  body.omda-work-session-active{
    --omda-mobile-viewport-bottom-reserve:0px;
  }

  body.omda-work-session-active .mob-nav,
  body.omda-work-session-active .mobile-nav,
  body.omda-work-session-active .bottom-nav{
    display:none;
  }

  body.omda-work-session-active{
    --omda-work-session-top:68px;
    --omda-work-session-bottom:10px;
    --omda-work-session-canvas-pad:12px;
  }

}

/* ==========================================================================
   OMDA Work Session Shell Candidate v0.3 — Inspection visual cleanup batch 1
   Candidate only — reduce work-mode noise and soften inspection surfaces.
   ========================================================================== */



/* 5. Work panel group headers should stand as section titles. */
body.omda-work-session-active .omda-work-group{
  margin-bottom:14px;
}

body.omda-work-session-active








/* 4. Keep topbar visually full-width in work session. */
body.omda-work-session-active .topbar,
body.omda-work-session-active .omda-topbar,
body.omda-work-session-active .app-topbar{
  width:100vw;
  max-width:none;
  inset-inline:0;
}

/* ==========================================================================
   OMDA Work Session Shell Candidate v0.3 — Case light/dark theme pass
   Candidate only — fixes work-mode inspection surfaces in light mode.
   ========================================================================== */

body[data-mode="light"].omda-work-session-active{
  --omda-work-bg: #eef1f6;
  --omda-work-bg-2: #e7ebf2;
  --omda-work-surface: #ffffff;
  --omda-work-surface-2: #f7f9fc;
  --omda-work-card: #f8fafd;
  --omda-work-card-hi: #ffffff;
  --omda-work-text: #162033;
  --omda-work-text-2: #526079;
  --omda-work-text-3: #7b879d;
  --omda-work-line: rgba(22,32,51,.12);
  --omda-work-line-2: rgba(22,32,51,.20);
  --omda-work-gold: #b89448;
}

body:not([data-mode="light"]).omda-work-session-active{
  --omda-work-bg: var(--bg, #0a0f1a);
  --omda-work-bg-2: var(--bg-2, #0e1422);
  --omda-work-surface: var(--surface, #121a2b);
  --omda-work-surface-2: var(--card, #172033);
  --omda-work-card: var(--card, #172033);
  --omda-work-card-hi: var(--card-hi, #1c2740);
  --omda-work-text: var(--text, #f3f6fb);
  --omda-work-text-2: var(--text-2, #9aa8c0);
  --omda-work-text-3: var(--text-3, #5d6b85);
  --omda-work-line: var(--line, rgba(148,168,200,.12));
  --omda-work-line-2: var(--line-2, rgba(148,168,200,.20));
  --omda-work-gold: var(--gold, #d5b46d);
}

/* Work canvas */
body.omda-work-session-active #pageMain > .case-workspace-wrap{
  color:var(--omda-work-text);
  border-color:var(--omda-work-line);
  background:
    radial-gradient(circle at 12% 0%, rgba(59,110,165,.13), transparent 34%),
    linear-gradient(180deg, var(--omda-work-bg), var(--omda-work-bg-2));
}

/* Hero and generic panels inside case work mode */
body.omda-work-session-active .case-hero{
  color:var(--omda-work-text);
  border-color:var(--omda-work-line);
  background:linear-gradient(180deg, var(--omda-work-card-hi), var(--omda-work-card));
}

/* Work panel */
body.omda-work-session-active .omda-work-panel{
  color:var(--omda-work-text);
  border-color:var(--omda-work-line);
  background:linear-gradient(180deg, var(--omda-work-card-hi), var(--omda-work-card));
}

body.omda-work-session-active .omda-work-panel-head{
  border-color:var(--omda-work-line);
}

body.omda-work-session-active .omda-work-panel-title,
body.omda-work-session-active .omda-work-panel-sub,
body.omda-work-session-active .omda-work-photo-indicator{
  color:var(--omda-work-text);
  border-color:var(--omda-work-line);
  background:linear-gradient(180deg, var(--omda-work-card-hi), var(--omda-work-card));
}

/* Scrollbars */
body.omda-work-session-active #pageMain > .case-workspace-wrap{
  scrollbar-color:color-mix(in srgb, var(--omda-work-text-2) 45%, transparent)
                  color-mix(in srgb, var(--omda-work-surface-2) 70%, transparent);
}

body.omda-work-session-active #pageMain > .case-workspace-wrap::-webkit-scrollbar-track{
  background:color-mix(in srgb, var(--omda-work-surface-2) 70%, transparent);
}

body.omda-work-session-active #pageMain > .case-workspace-wrap::-webkit-scrollbar-thumb{
  background:linear-gradient(
    180deg,
    color-mix(in srgb, var(--omda-work-text-2) 42%, transparent),
    color-mix(in srgb, var(--omda-work-text-3) 38%, transparent)
  );
  border-color:color-mix(in srgb, var(--omda-work-surface-2) 70%, transparent);
}

/* ==========================================================================
   OMDA Work Session Shell Candidate v0.3 — Center opened inspection category
   Candidate only — opened category modal is centered in the work canvas.
   ========================================================================== */

body.omda-work-session-active .acc-backdrop.vis{
  position:fixed;
  inset:0;
  z-index:850;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(2,8,16,.46);
  backdrop-filter:blur(8px);
}

body.omda-work-session-active .acc-modal-panel{
  --text:var(--omda-work-text);
  --text-2:var(--omda-work-text-2);
  --text-3:var(--omda-work-text-3);

  --surface:var(--omda-work-surface);
  --card-solid:var(--omda-work-card);
  --card-hi:var(--omda-work-card-hi);
  --card-grad:none;

  --line:var(--omda-work-line);
  --line-2:var(--omda-work-line-2);

  --a:var(--omda-work-gold,#d5b46d);
  --a-2:color-mix(
    in srgb,
    var(--omda-work-gold,#d5b46d) 82%,
    #fff
  );
  --a-bg:color-mix(
    in srgb,
    var(--omda-work-gold,#d5b46d) 13%,
    transparent
  );
  --a-text:var(--omda-work-gold,#d5b46d);
  --a-ink:#17130a;
  --ring:color-mix(
    in srgb,
    var(--omda-work-gold,#d5b46d) 30%,
    transparent
  );

  --product-accent:
    var(--omda-work-gold,#d5b46d);

  --product-accent-2:
    var(--a-2);

  width:min(
    960px,
    calc(100vw - 96px)
  );
  max-width:960px;
  max-height:calc(100vh - 144px);
  margin:auto;
  border-radius:26px;
  overflow:hidden;

  color:
    var(--omda-work-text);

  background:
    linear-gradient(
      180deg,
      var(--omda-work-card-hi),
      var(--omda-work-card)
    );

  border:
    1px solid
    var(
      --omda-work-line,
      rgba(148,168,200,.14)
    );

  box-shadow:
    0 28px 90px
    rgba(0,0,0,.34);
}

body.omda-work-session-active
  .acc-modal-hd,
body.omda-work-session-active
  .acc-modal-ft{
  border-color:
    var(--omda-work-line);
}

body.omda-work-session-active
  .acc-modal-ft{
  background:
    var(--omda-work-card);
}

body.omda-work-session-active
  .acc-summary-item{
  color:
    var(--omda-work-text);

  background:
    var(--omda-work-surface-2);

  border-color:
    var(--omda-work-line);
}

body.omda-work-session-active
  .acc-modal-hd-icon,
body.omda-work-session-active
  .acc-summary-code{
  color:
    var(--omda-work-gold,#d5b46d);

  background:
    color-mix(
      in srgb,
      var(--omda-work-gold,#d5b46d) 13%,
      transparent
    );

  border-color:
    color-mix(
      in srgb,
      var(--omda-work-gold,#d5b46d) 30%,
      transparent
    );
}

body.omda-work-session-active
  .acc-modal-ft
  .btn-primary{
  color:
    var(--a-ink);

  background:
    linear-gradient(
      140deg,
      var(--a-2),
      var(--a)
    );

  border-color:
    var(--ring);
}

body.omda-work-session-active .acc-modal-body{
  max-height:calc(100vh - 250px);
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:
    color-mix(in srgb, var(--omda-work-text-2, #9aa8c0) 44%, transparent)
    color-mix(in srgb, var(--omda-work-surface-2, #172033) 72%, transparent);
}

body.omda-work-session-active .acc-modal-body::-webkit-scrollbar{
  width:10px;
  height:10px;
}

body.omda-work-session-active .acc-modal-body::-webkit-scrollbar-track{
  background:color-mix(in srgb, var(--omda-work-surface-2, #172033) 76%, transparent);
  border-radius:999px;
}

body.omda-work-session-active .acc-modal-body::-webkit-scrollbar-thumb{
  background:linear-gradient(
    180deg,
    color-mix(in srgb, var(--omda-work-text-2, #9aa8c0) 42%, transparent),
    color-mix(in srgb, var(--omda-work-text-3, #5d6b85) 40%, transparent)
  );
  border:2px solid color-mix(in srgb, var(--omda-work-surface-2, #172033) 76%, transparent);
  border-radius:999px;
}

body.omda-work-session-active .acc-modal-body::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(
    180deg,
    color-mix(in srgb, var(--omda-work-gold, #d5b46d) 58%, transparent),
    color-mix(in srgb, var(--omda-work-text-2, #9aa8c0) 42%, transparent)
  );
}

@media(max-width:799.98px){
  /*
   * Mobile Category Edit continues the Tablet Work Canvas.
   * Same canonical editor, but no floating Desktop-modal framing.
   */
  body.omda-work-session-active .acc-backdrop.vis{
    inset:0;
    place-items:end stretch;
    padding:0;
    background:rgba(2,8,16,.34);
    backdrop-filter:blur(4px);
  }

  body.omda-work-session-active .acc-modal-panel{
    width:100%;
    max-width:none;
    height:calc(100dvh - 68px);
    max-height:calc(100dvh - 68px);
    margin:0;
    border-inline:0;
    border-bottom:0;
    border-radius:22px 22px 0 0;
    box-shadow:0 -16px 48px rgba(0,0,0,.28);
  }

  body.omda-work-session-active .acc-modal-hd{
    padding:14px 16px;
    background:var(--omda-work-card);
  }

  body.omda-work-session-active .acc-modal-body{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    padding:12px;
    background:var(--omda-work-surface);
  }

  body.omda-work-session-active
  .acc-modal-body > :is(.acc-body,.cat-body){
    padding:0;
  }

  body.omda-work-session-active .acc-modal-ft{
    position:relative;
    z-index:2;
    padding:10px 12px
      calc(10px + env(safe-area-inset-bottom));
    background:var(--omda-work-card);
    box-shadow:0 -10px 30px rgba(0,0,0,.16);
  }
}

/* ==========================================================================

OMDA Work Row Contract Candidate v0.1
   Candidate only — one visual language for work-panel rows and inspection rows.
   Shell owns row surface, state, badges, action layout and edit surface.
   Product owns data, text, media/save callbacks and workflow state.
   ========================================================================== */

.omda-work-row{
  --owr-radius:16px;
  --owr-pad-y:10px;
  --owr-pad-x:12px;
  --owr-bg:rgba(18,26,43,.72);
  --owr-bg-hover:rgba(28,39,64,.82);
  --owr-line:rgba(148,168,200,.13);
  --owr-line-hover:rgba(148,168,200,.22);
  --owr-text:var(--omda-work-text, var(--text, #f3f6fb));
  --owr-muted:var(--omda-work-text-2, var(--text-2, #9aa8c0));
  --owr-gold:var(--omda-work-gold, var(--gold, #d5b46d));

  position:relative;
  width:100%;
  border:1px solid var(--owr-line);
  border-radius:var(--owr-radius);
  background:linear-gradient(180deg, var(--owr-bg-hover), var(--owr-bg));
  color:var(--owr-text);
  box-shadow:
    0 8px 22px rgba(0,0,0,.12),
    inset 0 1px 0 rgba(255,255,255,.025);
  overflow:hidden;
  transition:
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.omda-work-row:hover{
  border-color:var(--owr-line-hover);
  box-shadow:
    0 12px 30px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.035);
}

.omda-work-row.is-checked,
.omda-work-row[data-state~="checked"]{
  border-color:color-mix(in srgb, var(--owr-gold) 34%, transparent);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--owr-gold) 12%, var(--owr-bg-hover)),
      var(--owr-bg)
    );
}

/*
 * Adapted state uses explicit text marker only 08D.
 *
 * Adapted state remains semantic/runtime state.
 * Visual indication is the canonical plain (מ) marker;
 * no decorative edge rail is rendered.
 */

.omda-work-row-main{
  min-height:50px;
  padding:var(--owr-pad-y) var(--owr-pad-x);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
}

.omda-work-row-code{
  font-family:var(--mono, ui-monospace, monospace);
  font-size:11px;
  font-weight:900;
  color:var(--owr-gold);
  background:color-mix(in srgb, var(--owr-gold) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--owr-gold) 28%, transparent);
  border-radius:999px;
  padding:4px 8px;
  white-space:nowrap;
}

.omda-work-row-title{
  min-width:0;
  color:var(--owr-text);
  font-size:13px;
  font-weight:500;
  line-height:1.45;
  letter-spacing:-.01em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.omda-work-row-actions,
.omda-work-row-badges{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
}

.omda-work-row-badge{
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid var(--owr-line);
  background:rgba(10,15,26,.22);
  color:var(--owr-muted);
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
}

.omda-work-row-badge.is-adapted{
  color:var(--owr-gold);
  border-color:color-mix(in srgb, var(--owr-gold) 30%, transparent);
  background:color-mix(in srgb, var(--owr-gold) 12%, transparent);
}

.omda-work-row-badge.is-photo{
  color:var(--owr-muted);
}

.omda-work-row-badge.is-photo svg{
  flex:0 0 auto;
}

.omda-work-row-badge-count{
  min-width:1ch;
  font-size:10px;
  font-weight:950;
  line-height:1;
}

.omda-work-row-edit{
  border-top:1px solid var(--owr-line);
  padding:12px;
  background:rgba(10,15,26,.22);
  display:none;
}

.omda-work-row.is-editing .omda-work-row-edit{
  display:grid;
  gap:12px;
  align-content:start;
}


.omda-work-row-edit textarea,
.omda-work-row-edit .input{
  width:100%;
  min-height:86px;
  resize:vertical;
  border-radius:14px;
}

.omda-work-row-edit > textarea,
.omda-work-row-edit > .note-ta,
.omda-work-row-edit > .final-textarea{
  order:10;
}

.omda-work-row-edit > .body-frame-tools{
  order:20;
  margin-top:0;
}

.omda-work-row-edit-actions{
  order:30;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-height:42px;
  margin:2px 0 0;
}

/*
 * OMDA Work Row Compact Media Rail v1
 * Shell owns compact finding-media presentation.
 * Product owns media data, upload and viewer callbacks.
 */
.omda-work-row-media-rail{
  order:25;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  min-height:42px;
  padding:8px 10px;
  border:1px solid var(--owr-line);
  border-radius:12px;
  background:color-mix(
    in srgb,
    var(--owr-bg-hover) 54%,
    var(--owr-bg)
  );
}

.omda-work-row-media-rail[hidden]{
  display:none;
}

.omda-work-row-media-summary{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  color:var(--owr-muted);
  font-size:12px;
  font-weight:700;
}

.omda-work-row-media-icon{
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  flex:0 0 18px;
  color:var(--owr-gold);
}

.omda-work-row-media-icon svg{
  width:16px;
  height:16px;
  display:block;
}

.omda-work-row-media-label{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.omda-work-row-media-count{
  min-width:1ch;
  color:var(--owr-text);
  font-family:var(
    --mono,
    ui-monospace,
    monospace
  );
  font-size:12px;
  font-weight:900;
}

.omda-work-row-media-view{
  flex:0 0 auto;
}

/* OMDA Work Panel Catalog v1 — workstation finding row */
.omda-work-row--panel{
  display:flex;
  align-items:stretch;
  gap:12px;
  min-height:0;
  margin:0;
  padding:14px 10px;
  border:0;
  border-radius:var(--radius-sm,13px);
  background:transparent;
  box-shadow:none;
  overflow:visible;
  cursor:pointer;
  transition:background .10s ease;
}

.omda-work-row--panel:hover{
  background:var(--surface);
  border-color:transparent;
  box-shadow:none;
  transform:none;
}

.omda-work-row-tone{
  align-self:stretch;
  width:4px;
  min-width:4px;
  border-radius:4px;
  background:var(--line-2);
}

.omda-work-row-tone--high{
  background:var(--bad);
}

.omda-work-row-tone--mid{
  background:var(--warn);
}

.omda-work-row-tone--low{
  background:var(
    --omda-work-gold,
    var(--product-accent)
  );
}

.omda-work-row-tone--accent{
  background:var(
    --omda-work-gold,
    var(--product-accent)
  );
}

.omda-work-row-body{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.omda-work-row-content{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
}

.omda-work-row--panel .omda-work-row-code{
  flex:0 0 auto;
  font-family:var(--omda-font-mono);
  font-size:12.5px;
  font-weight:700;
  line-height:1.35;
  color:var(--text-2);
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:8px;
  padding:3px 9px;
}

.omda-work-row--panel .omda-work-row-title{
  min-width:0;
  padding:0;
  font-size:15.5px;
  font-weight:600;
  line-height:1.45;
  white-space:normal;
  color:var(--text);
  text-align:start;
}

.omda-work-row--panel .omda-work-row-rail{
  width:100%;
  min-width:0;
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:12px;
}

.omda-work-row--panel .omda-work-row-rail .omda-work-row-badges{
  flex:0 1 auto;
  min-width:0;
  flex-wrap:wrap;
  justify-content:flex-start;
}

.omda-work-row--panel .omda-work-row-actions{
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  padding:0;
  margin-inline-start:auto;
}

.omda-work-row--panel .omda-work-row-actions .btn{
  height:36px;
  min-height:36px;
  padding-inline:14px;
  border-radius:11px;
  font-size:13.5px;
  font-weight:700;
}

.omda-work-row--panel .omda-work-row-actions .btn svg{
  width:16px;
  height:16px;
  flex:0 0 16px;
}

/*
 * Work Panel photo count 10D.
 * Photo quantity is part of the canonical photo action.
 * Desktop keeps its existing presentation.
 */
.omda-work-row--panel .omda-work-media-count{
  display:none;
}
.omda-work-row--panel .omda-work-secondary-action{
  min-height:0;
  height:auto;
  padding:0 6px;
  border-color:var(--line-2,var(--omda-border-2));
  border-radius:11px;
  background:transparent;
  color:var(--text-2);
}

.omda-work-row--panel
  .omda-work-secondary-action:not(:disabled):not([aria-disabled="true"]):hover{
  border-color:rgba(var(--product-rgb),.38);
  background:rgba(var(--product-rgb),.08);
  color:var(--text);
}

/* Work Panel readability refinement
   Keeps panel rows visually aligned with OMDA Work Row without nested frames. */
.omda-work-panel .omda-work-row + .omda-work-row{
  margin-block-start:0;
}

.omda-work-panel :is(
  .omda-work-group-title,
  .omda-work-panel-group-title,
  .omda-work-section-title,
  .omda-work-category-title,
  .omda-work-panel-category-title
){
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:38px;
  margin:16px 0 10px;
  padding:6px 10px;
  border-radius:14px;
  color:var(--owr-text, var(--text, #f3f6fb));
  font-size:16px;
  font-weight:950;
  line-height:1.25;
  letter-spacing:-.01em;
  background:rgba(10,15,26,.18);
  border:1px solid rgba(148,168,200,.08);
}

.omda-work-panel :is(
  .omda-work-group-title,
  .omda-work-panel-group-title,
  .omda-work-section-title,
  .omda-work-category-title,
  .omda-work-panel-category-title
):first-child{
  margin-top:0;
}

/* Light mode support */
html[data-mode="light"] .omda-work-row,
body[data-mode="light"] .omda-work-row{
  --owr-bg:#f8fafd;
  --owr-bg-hover:#ffffff;
  --owr-line:rgba(22,32,51,.12);
  --owr-line-hover:rgba(22,32,51,.20);
  --owr-text:#162033;
  --owr-muted:#526079;
  --owr-gold:#b89448;
  box-shadow:
    0 8px 22px rgba(22,32,51,.08),
    inset 0 1px 0 rgba(255,255,255,.72);
}

html[data-mode="light"] .omda-work-row-edit,
body[data-mode="light"] .omda-work-row-edit{
  background:rgba(238,241,246,.72);
}

html[data-mode="light"] .omda-work-row-badge,
body[data-mode="light"] .omda-work-row-badge{
  background:#eef1f6;
}

@media(max-width:799.98px){
  .omda-work-row-main{
    min-height:48px;
    grid-template-columns:auto minmax(0,1fr);
  }

  .omda-work-row-actions,
  .omda-work-row-badges{
    grid-column:1 / -1;
    justify-content:flex-start;
  }

  .omda-work-row-title{
    white-space:normal;
  }
}



/* =================================================================
   OMDA Row Actions Hover Visibility and Compact Menu v1
   Scope: StandardPageShell / TablePanel row actions

   Contract:
   - Closed row action trigger is quiet by default.
   - Trigger appears on row hover/focus or while menu is open.
   - Open menu is compact and action items do not look like large cards.
================================================================= */

@media (min-width:1200.01px) {
  .otp-shell .otp-row .omda-row-actions-btn {
    opacity: 0;
    transform: translateY(1px);
    transition:
      opacity .16s ease,
      transform .16s ease,
      border-color .16s ease,
      background .16s ease;
  }

  .otp-shell .otp-row:hover .omda-row-actions-btn,
  .otp-shell .otp-row:focus-within .omda-row-actions-btn,
  .otp-shell .otp-row .omda-row-actions-btn.is-open {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width:1200px) {
  .otp-shell .omda-row-actions-btn {
    opacity: 1;
    transform: none;
  }
}

.otp-shell .omda-row-actions-menu {
  min-width: 154px;
  padding: 6px;
  border-radius: 14px;
}

.otp-shell .omda-row-actions-icon {
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.otp-shell .omda-row-actions-icon svg {
  width: 15px;
  height: 15px;
}

.otp-shell .omda-row-actions-label {
  white-space: nowrap;
}


/* =========================================================
   OMDA Entity Preview Text Overflow Contract
   Scope: preview/meta/section values inside inline entity cards.
   Purpose: prevent long emails/ids/technical strings from breaking card layout.
   ========================================================= */

.omda-entity-preview-card,
.omda-entity-preview-card * {
  min-width: 0;
}

.omda-entity-preview-card .section-card-value,
.omda-entity-preview-card .omda-entity-preview-value,
.omda-entity-preview-card .omda-preview-value,
.omda-entity-preview-card [data-preview-value],
.omda-entity-preview-card [data-entity-preview-value] {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.omda-entity-preview-card .section-card-value a,
.omda-entity-preview-card .omda-entity-preview-value a,
.omda-entity-preview-card .omda-preview-value a {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}


/* =========================================================
   OMDA StandardPageShell Entity Identity Icon Contract
   Scope: primaryEntity rows and mobile cards.
   Purpose: unified SVG identity tile across desktop/tablet/mobile.
   ========================================================= */

.otp-entity-icon {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 11px;
  display: inline-grid;
  place-items: center;
  color: var(--product-accent, var(--a, #c9aa62));
  background: var(--omda-surface-2, var(--card-hi));
  border: 0;
  box-shadow: none;
  transition:
    background .14s ease,
    color .14s ease;
}

.otp-entity-icon svg,
.otp-mobile-entity-icon svg {
  width: 18px;
  height: 18px;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.otp-entity-icon svg *,
.otp-mobile-entity-icon svg * {
  fill: none;
}

/* Entity identity tiles are semantic, not status indicators.
   Row status is represented by status pills/rails only. */
.otp-entity-icon[class*="otp-tone-"] {
  color: var(--product-accent, var(--a, #c9aa62));
  background: var(--omda-surface-2, var(--card-hi));
  border-color: transparent;
}

@media (hover:hover) and (pointer:fine) {
  .otp-shell .otp-row:hover .otp-entity-icon,
  .otp-shell .otp-row:focus-within .otp-entity-icon {
    background: var(--omda-surface-3, var(--card-hi));
    color: var(--product-accent, var(--a, #c9aa62));
  }
}

@media (hover:none), (pointer:coarse) {
  .otp-mobile-row:active .otp-mobile-entity-icon {
    background: var(--omda-surface-3, var(--card-hi));
  }
}

.otp-mobile-identity {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
}

.otp-mobile-entity-icon {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 11px;
}

.otp-mobile-person-avatar {
  width:36px;
  height:36px;
  min-width:36px;
  border-radius:11px;
  font-size:13px;
  font-weight:800;
  line-height:1;
}


/* =========================================================
   OMDA StandardPageShell Mobile Entity Row Layout v4
   Scope: otp-mobile-row with entity identity icon.
   Contract:
   - RTL-first card.
   - Right: entity icon.
   - Middle: main identity text.
   - Left: secondary data/status.
   - No old vertical strip rail by default.
   ========================================================= */

.otp-mobile-row:has(.otp-mobile-identity) {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) minmax(96px, auto);
  grid-template-areas: "icon main side";
  align-items: center;
  gap: 12px;
  position: relative;
}

.otp-mobile-row .otp-mobile-identity {
  grid-area: icon;
  width: 46px;
  min-width: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.otp-mobile-row .otp-mobile-main {
  grid-area: main;
  min-width: 0;
  text-align: start;
}

.otp-mobile-row .otp-mobile-side {
  grid-area: side;
  min-width: 96px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
  justify-content: center;
  text-align: start;
}

.otp-mobile-row:has(.otp-mobile-identity):has(.otp-mobile-actions) {
  grid-template-columns:
    46px
    minmax(0, 1fr)
    minmax(96px, auto)
    40px;
  grid-template-areas:
    "icon main side actions";
}

.otp-mobile-row .otp-mobile-actions {
  grid-area: actions;
  width: 40px;
  min-width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  justify-self: end;
}

.otp-mobile-row .otp-mobile-actions .omda-row-actions-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.otp-mobile-row .otp-mobile-title,
.otp-mobile-row .otp-mobile-sub,
.otp-mobile-row .otp-mobile-client,
.otp-mobile-row .otp-mobile-plate {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.otp-mobile-row .otp-mobile-strip {
  display: none;
}

.otp-mobile-row .otp-mobile-entity-icon {
  position: static;
  transform: none;
}


@media (max-width: 430px) {
  .otp-mobile-row:has(.otp-mobile-identity) {
    grid-template-columns: 42px minmax(0, 1fr);
    grid-template-areas:
      "icon main"
      "icon side";
    gap: 8px 10px;
  }

  .otp-mobile-row:has(.otp-mobile-identity):has(.otp-mobile-actions) {
    grid-template-columns:
      42px
      minmax(0, 1fr)
      40px;
    grid-template-areas:
      "icon main actions"
      "icon side actions";
  }

  .otp-mobile-row .otp-mobile-side {
    min-width: 0;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
  }
}


/* =========================================================
   OMDA StandardPageShell TablePanel Surface Contract v1
   Scope: otp-table / otp-mobile-feed / otp-mobile-row.
   Purpose:
   - Restore legal table surface for desktop/tablet.
   - Keep mobile feed clean, without the old table clipping wrapper.
   - Give mobile rows their own card surface.
   ========================================================= */

.omda-standard-table-panel-shell.otp-shell .otp-table {
  border: 1px solid var(--omda-border);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(17,29,44,.94), rgba(8,18,32,.91));
  box-shadow: var(--omda-shadow-soft);
  overflow: hidden;
}

.omda-standard-table-panel-shell.otp-shell .otp-table-scroll {
  border-radius: inherit;
}

.omda-standard-table-panel-shell.otp-shell .otp-native-table {
  background: transparent;
}

html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-table {
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,255,.94));
  border-color: rgba(15,23,42,.10);
  box-shadow: 0 14px 34px rgba(15,23,42,.08);
}

@media (max-width:799.98px) {
  .omda-standard-table-panel-shell.otp-shell .otp-table {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
  }

  .omda-standard-table-panel-shell.otp-shell .otp-table-scroll {
    overflow: visible;
    border-radius: 0;
  }

  .omda-standard-table-panel-shell.otp-shell .otp-mobile-feed {
    display: grid;
    gap: 12px;
  }

  .omda-standard-table-panel-shell.otp-shell .otp-mobile-entry {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
  }

  .omda-standard-table-panel-shell.otp-shell .otp-mobile-row {
    border: 1px solid var(--omda-border);
    border-radius: 18px;
    background:
      linear-gradient(180deg, rgba(17,29,44,.94), rgba(8,18,32,.91));
    box-shadow: var(--omda-shadow-soft);
    overflow: visible;
  }

  html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-mobile-row {
    background:
      linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,255,.94));
    border-color: rgba(15,23,42,.10);
    box-shadow: 0 14px 34px rgba(15,23,42,.08);
  }

}


/* =========================================================
   OMDA StandardPageShell Mobile Table Wrapper Neutralization
   Scope: mobile TablePanel wrapper after Surface Contract.
   Purpose: prevent desktop/light table shadow from leaking into mobile feed.
   ========================================================= */

@media (max-width:799.98px) {
  html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-table,
  html[data-mode="dark"] .omda-standard-table-panel-shell.otp-shell .otp-table,
  .omda-standard-table-panel-shell.otp-shell .otp-table {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
  }

  html[data-mode="light"] .omda-standard-table-panel-shell.otp-shell .otp-table-scroll,
  html[data-mode="dark"] .omda-standard-table-panel-shell.otp-shell .otp-table-scroll,
  .omda-standard-table-panel-shell.otp-shell .otp-table-scroll {
    border-radius: 0;
    overflow: visible;
    box-shadow: none;
    background: transparent;
  }
}


/* ================================================================
   OMDA TERMINAL MANAGER CARD CONTRACT v0.1
   STATUS: CANDIDATE
   OWNER: OMDA Shell
================================================================ */
.omda-terminal-manager-list{
  display:grid;
  gap:12px;
  width:100%;
  min-width:0;
}

.omda-terminal-manager-card{
  display:grid;
  gap:14px;
  width:100%;
  min-width:0;
  padding:16px 18px;
  border:1px solid var(
    --border,
    rgba(148,163,184,.22)
  );
  border-radius:18px;
  background:var(
    --surface-2,
    rgba(15,23,42,.58)
  );
  box-shadow:
    0 10px 26px rgba(2,6,23,.12);
}

.omda-terminal-manager-card > .section-header{
  width:100%;
  min-width:0;
}

.omda-terminal-manager-card
.section-header:last-child{
  padding-top:12px;
  border-top:1px solid var(
    --border-soft,
    rgba(148,163,184,.12)
  );
}

.omda-terminal-manager-card--archived{
  background:var(
    --surface-muted,
    rgba(15,23,42,.34)
  );
  box-shadow:none;
  opacity:.86;
}

.omda-terminal-manager-card--archived
.section-header:last-child{
  border-top:0;
}

@media (max-width:799px){
  .omda-terminal-manager-list{
    gap:10px;
  }

  .omda-terminal-manager-card{
    gap:12px;
    padding:15px;
    border-radius:16px;
  }

  .omda-terminal-manager-card
  .section-header:last-child{
    align-items:stretch;
  }

  .omda-terminal-manager-card
  .section-header:last-child
  .btn{
    flex:1 1 auto;
  }
}


/* ================================================================
   OMDA Shell — Password Visibility Contract v1

   CONTRACT:
   OMDA_PASSWORD_VISIBILITY_CONTRACT_V1

   OWNS:
   - Password/PIN input wrapper
   - Show/hide SVG control
   - RTL/LTR positioning
   - Keyboard focus and touch target
   - Dark/light rendering

   PRODUCT OWNS:
   - Form and submit semantics
   - Labels and validation
   - Password/PIN business rules
   - name/value/autocomplete attributes

   FORBIDDEN:
   - Product-local visibility buttons
   - Product-local eye SVG markup
   - Permanent password-to-text conversion
================================================================ */
/* ================================================================
   OMDA Terminal — Segmented 6-Digit Code Entry v1

   Shared canonical geometry for terminal pairing and PIN entry.
   Product owns value, validation and authentication semantics.
================================================================ */

.omda-terminal-pairing-code-grid{
  display:grid;
  grid-template-columns:
    repeat(6,minmax(44px,64px));
  justify-content:center;
  gap:12px;
  width:100%;
}

.omda-terminal-pairing-digit{
  width:100%;
  min-height:64px;
  padding:0;
  text-align:center;
  font-size:28px;
  font-weight:850;
  line-height:1;
  font-variant-numeric:tabular-nums;
}

@media(max-width:799px){
  .omda-terminal-pairing-code-grid{
    grid-template-columns:
      repeat(6,minmax(38px,1fr));
    gap:8px;
  }

  .omda-terminal-pairing-digit{
    min-height:56px;
    font-size:24px;
  }
}


.omda-password-field{
  position:relative;
  display:block;
  width:100%;
  min-width:0;
}

.omda-password-field > :is(
  input,
  .omda-input,
  .input,
  .inp
){
  width:100%;
  padding-inline-end:52px;
}

.omda-password-toggle{
  position:absolute;
  inset-block-start:50%;
  inset-inline-end:5px;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  min-width:40px;
  min-height:40px;
  padding:0;
  border:0;
  border-radius:10px;
  display:inline-grid;
  place-items:center;
  background:transparent;
  color:var(--text-2,var(--omda-muted));
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;
  transition:
    color .16s ease,
    background .16s ease,
    box-shadow .16s ease,
    transform .16s ease;
}

.omda-password-toggle:hover{
  color:var(--text,var(--omda-text));
  background:rgba(255,255,255,.06);
}

.omda-password-toggle:active{
  transform:
    translateY(-50%)
    scale(.96);
}

.omda-password-toggle:focus-visible{
  outline:0;
  color:var(--text,var(--omda-text));
  background:rgba(255,255,255,.07);
  box-shadow:
    0 0 0 3px
    rgba(var(--product-rgb),.20);
}

.omda-password-toggle:disabled{
  opacity:.45;
  cursor:not-allowed;
  pointer-events:none;
}

.omda-password-toggle svg{
  width:19px;
  height:19px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  pointer-events:none;
}

html[data-mode="light"]
  .omda-password-toggle{
  color:var(--text-2,#475569);
}

html[data-mode="light"]
  .omda-password-toggle:hover,
html[data-mode="light"]
  .omda-password-toggle:focus-visible{
  color:var(--text,#0f172a);
  background:rgba(15,23,42,.06);
}

@media(max-width:799.98px){
  .omda-password-toggle{
    width:42px;
    height:42px;
    min-width:42px;
    min-height:42px;
  }

  .omda-password-field > :is(
    input,
    .omda-input,
    .input,
    .inp
  ){
    padding-inline-end:54px;
  }
}


/* ================================================================
   OMDA Password Visibility — Light Mode Refinement v1

   CONTRACT:
   OMDA_PASSWORD_LIGHT_MODE_REFINEMENT_V1
================================================================ */
html[data-mode="light"] .omda-password-toggle{
  border:1px solid transparent;
  background:transparent;
  color:#64748b;
  box-shadow:none;
}

html[data-mode="light"] .omda-password-toggle:hover{
  border-color:#d7dee8;
  background:#f1f5f9;
  color:#0f172a;
  box-shadow:none;
}

html[data-mode="light"] .omda-password-toggle:focus-visible{
  border-color:#94a3b8;
  background:#f1f5f9;
  color:#0f172a;
  box-shadow:
    0 0 0 3px
    rgba(71,85,105,.14);
}

html[data-mode="light"] .omda-password-toggle[aria-pressed="true"]{
  border-color:#d7dee8;
  background:#f8fafc;
  color:#334155;
  box-shadow:none;
}


/* ================================================================
   OMDA Shell — Light Overlay Surfaces Contract v1

   CONTRACT:
   OMDA_LIGHT_OVERLAY_SURFACES_CONTRACT_V1

   SCOPE:
   - Core Modal / Confirm backdrop
   - Shell content surfaces rendered inside a modal
   - Global Action Wait Loader
   - Inline Wait Loader

   RULE:
   Overlay state may soften and blur the page, but must not switch
   light-mode surfaces back to dark-mode presentation.
================================================================ */

/* Modal and confirm backdrop remain visible without turning the
   complete page into a dark-mode surface. */
html[data-mode="light"] .omda-modal-backdrop{
  background:rgba(15,23,42,.18);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* Canonical reusable content surfaces inside a light modal. */
html[data-mode="light"]
  .omda-modal
  .omda-content-card{
  background:var(--card-solid,#fff);
  color:var(--text,#0f172a);
  border-color:var(--line,#dbe2ea);
  box-shadow:
    0 10px 30px
    rgba(15,23,42,.07);
}

html[data-mode="light"]
  .omda-modal
  .omda-content-card > summary{
  color:var(--text,#0f172a);
}

html[data-mode="light"]
  .omda-modal
  .omda-empty-state{
  background:var(--surface,#f8fafc);
  color:var(--text,#0f172a);
  border-color:var(--line,#dbe2ea);
}

html[data-mode="light"]
  .omda-modal
  .section-header{
  color:var(--text,#0f172a);
}

html[data-mode="light"]
  .omda-modal
  .omda-helper-text{
  color:var(--text-2,#475569);
}

/* Global delayed action loader. */
html[data-mode="light"] .omda-wait-overlay{
  background:rgba(15,23,42,.16);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

html[data-mode="light"] .omda-wait-card{
  border-color:
    rgba(var(--product-rgb),.24);
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.99),
      rgba(248,250,252,.99)
    );
  color:var(--text,#0f172a);
  box-shadow:
    0 20px 56px
    rgba(15,23,42,.16),
    inset 0 1px 0
    rgba(255,255,255,.96);
}

html[data-mode="light"] .omda-wait-spinner{
  border-color:rgba(100,116,139,.20);
  border-top-color:var(--product-accent);
}

html[data-mode="light"] .omda-wait-text{
  color:var(--text,#0f172a);
}

html[data-mode="light"] .omda-wait-sub{
  color:var(--text-2,#475569);
}

/* Inline loaders use the same light-surface contract. */
html[data-mode="light"] .omda-inline-wait{
  color:var(--text,#0f172a);
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.92),
      rgba(248,250,252,.96)
    );
}

html[data-mode="light"] .omda-inline-wait-spinner{
  border-color:rgba(100,116,139,.20);
  border-top-color:var(--product-accent);
}

html[data-mode="light"] .omda-inline-wait-text{
  color:var(--text,#0f172a);
}

/* =================================================================
   OMDA Dashboard PageShell v2 — CANONICAL / SINGLE RENDERER
   One DOM. One CSS family. Shell-owned. No product-local CSS.
================================================================= */

.omda-dashboard-page-shell[data-omda-dashboard-renderer="single"]{
  --dashboard-gap:22px;
  --dashboard-kpi-columns:5;
  --dashboard-module-columns:2;
  --dashboard-module-height:340px;
  --dashboard-row-height:72px;
  width:100%;
  min-width:0;
}

.omda-dashboard-scroll{
  display:grid;
  gap:var(--dashboard-gap);
  width:100%;
  min-width:0;
  padding-bottom:96px;
}

.omda-dashboard-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
}

.omda-dashboard-header-copy{
  display:grid;
  gap:7px;
  min-width:0;
}

.omda-dashboard-title,
.omda-dashboard-message{
  margin:0;
}

.omda-dashboard-message,
.omda-dashboard-module-subtitle,
.omda-dashboard-row-sub{
  color:var(--text-2,var(--omda-muted));
}

.omda-dashboard-header-actions{
  flex:0 0 auto;
}

.omda-dashboard-offline-banner{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:56px;
  padding:12px 16px;
  border:1px solid var(--warn);
  border-radius:var(--radius-sm,14px);
  background:var(--warn-bg);
  color:var(--text,var(--omda-text));
}

.omda-dashboard-offline-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:11px;
  background:color-mix(in srgb,var(--warn) 14%,transparent);
  color:var(--warn);
}

.omda-dashboard-offline-icon svg,
.omda-dashboard-row-icon svg,
.omda-dashboard-row-arrow svg{
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.omda-dashboard-offline-icon svg{
  width:19px;
  height:19px;
  stroke-width:1.9;
}

.omda-dashboard-offline-copy{
  display:grid;
  gap:2px;
}

.omda-dashboard-offline-copy strong{
  font-size:13px;
  font-weight:900;
}

.omda-dashboard-offline-copy span{
  color:var(--text-2,var(--omda-muted));
  font-size:12px;
  font-weight:650;
}

.omda-dashboard-summary{
  display:grid;
  gap:14px;
  min-width:0;
}

.omda-dashboard-kpis{
  display:grid;
  grid-template-columns:
    repeat(
      var(--dashboard-kpi-columns),
      minmax(0,1fr)
    );
  gap:14px;
  min-width:0;
}

.omda-dashboard-kpi-card,
.omda-dashboard-status-card{
  min-width:0;
}

.omda-dashboard-status-card{
  grid-column:1 / -1;
}

.omda-dashboard-status-card.is-all-clear{
  cursor:default;
}

.omda-dashboard-status-card.is-all-clear:hover{
  transform:none;
}

.omda-dashboard-modules{
  display:grid;
  grid-template-columns:
    repeat(
      var(--dashboard-module-columns),
      minmax(0,1fr)
    );
  gap:18px;
  min-width:0;
  align-items:stretch;
}

.omda-dashboard-module{
  display:flex;
  flex-direction:column;
  height:var(--dashboard-module-height);
  min-width:0;
  min-height:0;
  overflow:hidden;
  padding:0;
  margin:0;
}


.omda-dashboard-module-head{
  flex:0 0 auto;
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 17px;
  border-bottom:1px solid var(--line,var(--omda-border));
}

.omda-dashboard-module-copy{
  display:grid;
  gap:3px;
  min-width:0;
}

.omda-dashboard-module-title{
  font-family:var(--omda-font-ui);
  color:var(--text,var(--omda-text));
  font-size:15px;
  font-weight:700;
}

.omda-dashboard-module-subtitle{
  font-family:var(--omda-font-ui);
  font-size:13px;
  font-weight:400;
  line-height:1.55;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.omda-dashboard-module-head-meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
}

.omda-dashboard-module-body{
  flex:1 1 auto;
  min-height:0;
  padding:6px;
}

.omda-dashboard-module-body.is-scrollable{
  overflow-y:auto;
  overscroll-behavior-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(var(--product-rgb),.36) transparent;
}

.omda-dashboard-module-body.is-scrollable::-webkit-scrollbar{
  width:7px;
}

.omda-dashboard-module-body.is-scrollable::-webkit-scrollbar-track{
  background:transparent;
}

.omda-dashboard-module-body.is-scrollable::-webkit-scrollbar-thumb{
  background:rgba(var(--product-rgb),.34);
  border:2px solid transparent;
  border-radius:999px;
  background-clip:padding-box;
}

.omda-dashboard-module-body.is-chart{
  overflow:hidden;
  padding:14px 16px;
}

.omda-dashboard-module-body.is-chart .omda-chart-wrap{
  height:100%;
}

.omda-dashboard-list{
  display:grid;
  gap:4px;
}

.omda-dashboard-row{
  min-height:var(--dashboard-row-height);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:11px 12px;
  border-radius:13px;
  color:inherit;
  text-decoration:none;
  transition:
    background-color .14s ease,
    transform .14s ease;
}

.omda-dashboard-row.is-interactive{
  cursor:pointer;
}

.omda-dashboard-row.is-interactive:hover{
  background:
    color-mix(
      in srgb,
      var(--card-hi,var(--omda-surface-3)) 72%,
      transparent
    );
}

.omda-dashboard-row.is-interactive:active{
  transform:scale(.995);
}

.omda-dashboard-row.is-interactive:focus-visible{
  outline:2px solid var(--a,var(--product-accent));
  outline-offset:-2px;
}

.omda-dashboard-row-icon{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:12px;
  background:var(--a-bg,rgba(var(--product-rgb),.12));
  color:var(--a,var(--product-accent));
  font-size:12px;
  font-weight:900;
}

.omda-dashboard-row-icon svg{
  width:20px;
  height:20px;
  stroke-width:1.8;
}

.omda-dashboard-row-main{
  display:grid;
  gap:4px;
  min-width:0;
}

.omda-dashboard-row-title,
.omda-dashboard-row-sub{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.omda-dashboard-row-title{
  font-family:"Rubik",system-ui,sans-serif;
  color:var(--text,var(--omda-text));
  font-size:15px;
  font-weight:700;
  line-height:1.45;
}

.omda-dashboard-row-sub{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  font-family:"Rubik",system-ui,sans-serif;
  font-size:13px;
  font-weight:400;
  line-height:1.55;
}

.omda-dashboard-row-sub-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.omda-dashboard-row-meta,
.omda-dashboard-row-badge{
  flex:0 0 auto;
  font-family:var(--mono,"JetBrains Mono",monospace);
  font-size:13px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  direction:ltr;
  unicode-bidi:isolate;
  white-space:nowrap;
}

.omda-dashboard-row-separator{
  flex:0 0 auto;
  color:var(--text-3,var(--omda-muted-2));
  font-family:"Rubik",system-ui,sans-serif;
  font-weight:400;
}

.omda-dashboard-row-arrow{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  color:var(--text-3,var(--omda-muted-2));
}

.omda-dashboard-row-arrow svg{
  width:17px;
  height:17px;
  stroke-width:2;
}

@media (min-width:1200px){
  .omda-dashboard-status-card{
    min-height:76px;
    height:76px;
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:16px;
    padding:0 22px;
    border-right:4px solid var(--product-accent);
    background:
      linear-gradient(
        90deg,
        rgba(var(--product-rgb),.13),
        rgba(255,255,255,.035)
      );
  }

  .omda-dashboard-status-card .sc-icon,
  .omda-dashboard-status-card .ic{
    flex:0 0 44px;
    margin-bottom:0;
  }

  .omda-dashboard-status-card .lc-info{
    flex:1 1 auto;
    min-width:0;
  }

  .omda-dashboard-status-card .lc-title{
    font-size:14px;
    font-weight:900;
  }

  .omda-dashboard-status-card .lc-sub{
    overflow:hidden;
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .omda-dashboard-status-card .lc-arrow{
    display:block;
    margin-right:auto;
    color:var(--product-accent);
    font-size:20px;
    font-weight:900;
  }
}

@media (min-width:800px) and (max-width:1199.98px){
  .omda-dashboard-page-shell[data-omda-dashboard-renderer="single"]{
    --dashboard-gap:18px;
    --dashboard-kpi-columns:3;
    --dashboard-module-height:326px;
  }

  .omda-dashboard-summary{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .omda-dashboard-kpis{
    display:contents;
  }

  .omda-dashboard-status-card{
    grid-column:auto;
    min-height:128px;
    height:auto;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:18px;
    border-right:1px solid var(--line,var(--omda-border));
  }

  .omda-dashboard-status-card .lc-arrow{
    display:none;
  }
}

@media (max-width:799.98px){
  .omda-dashboard-page-shell[data-omda-dashboard-renderer="single"]{
    --dashboard-gap:16px;
    --dashboard-kpi-columns:2;
    --dashboard-module-columns:1;
    --dashboard-module-height:318px;
  }

  .omda-dashboard-scroll{
    padding-bottom:
      var(--omda-mobile-viewport-bottom-reserve,104px);
  }

  .omda-dashboard-header{
    align-items:stretch;
    flex-direction:column;
    gap:14px;
  }

  .omda-dashboard-header-actions,
  .omda-dashboard-header-actions .btn{
    width:100%;
  }

  .omda-dashboard-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }

  .omda-dashboard-kpis{
    display:contents;
  }

  .omda-dashboard-kpi-card,
  .omda-dashboard-status-card{
    grid-column:auto;
    min-height:126px;
  }

  .omda-dashboard-status-card{
    height:auto;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:18px;
    border-right:1px solid var(--line,var(--omda-border));
  }

  .omda-dashboard-status-card .lc-arrow{
    display:none;
  }

  .omda-dashboard-module-head{
    min-height:62px;
    padding:13px 14px;
  }

  .omda-dashboard-module-head-meta .btn{
    min-height:36px;
    padding-inline:11px;
  }

  .omda-dashboard-row{
    padding:11px 10px;
  }
}

@media (prefers-reduced-motion:reduce){
  .omda-dashboard-row{
    transition:none;
  }
}

/* =================================================================
   OMDA SEMANTIC TYPOGRAPHY ROLES v1
   Source of truth: Canonical Catalog / Typography 02
   Consumers must use semantic roles rather than local font values.
================================================================= */

.omda-type-page-title,
.page-title,
.hero h1,
.omda-ps-title{
  margin:0;
  font-family:var(--omda-font-ui);
  font-size:var(--omda-type-role-page-title-size);
  font-weight:var(--omda-type-role-page-title-weight);
  line-height:var(--omda-type-role-page-title-leading);
  letter-spacing:var(--omda-type-role-page-title-tracking);
  color:var(--text,var(--omda-text));
}

.omda-type-section-title,
.section-title{
  margin:0;
  font-family:var(--omda-font-ui);
  font-size:var(--omda-type-role-section-title-size);
  font-weight:var(--omda-type-role-section-title-weight);
  line-height:var(--omda-type-role-section-title-leading);
  color:var(--text,var(--omda-text));
}

.omda-type-card-title,
.omda-card-title{
  margin:0;
  font-family:var(--omda-font-ui);
  font-size:var(--omda-type-role-card-title-size);
  font-weight:var(--omda-type-role-card-title-weight);
  line-height:var(--omda-type-role-card-title-leading);
  color:var(--text,var(--omda-text));
}

.omda-type-body{
  font-family:var(--omda-font-ui);
  font-size:var(--omda-type-role-body-size);
  font-weight:var(--omda-type-role-body-weight);
  line-height:var(--omda-type-role-body-leading);
  color:var(--text,var(--omda-text));
}

.omda-type-secondary,
.page-sub,
.page-subtitle,
.hero p,
.omda-ps-subtitle{
  font-family:var(--omda-font-ui);
  font-size:var(--omda-type-role-secondary-size);
  font-weight:var(--omda-type-role-secondary-weight);
  line-height:var(--omda-type-role-secondary-leading);
  color:var(--text-2,var(--omda-muted));
}

.omda-type-technical{
  font-family:var(--omda-font-mono);
  font-size:var(--omda-type-role-technical-size);
  font-weight:var(--omda-type-role-technical-weight);
  line-height:var(--omda-type-role-technical-leading);
  font-variant-numeric:tabular-nums;
}

@media (max-width:799.98px){
  :root{
    --omda-type-role-page-title-size:30px;
  }
}

/* =================================================================
   OMDA SEMANTIC VISUAL EMPHASIS ROLES v1
   Accent glow is reserved for primary, active, leading and branded
   components. Product pages must not author colored shadows locally.
================================================================= */

.omda-emphasis-surface{
  box-shadow:var(--omda-emphasis-surface);
}

.omda-emphasis-raised{
  box-shadow:var(--omda-emphasis-surface-raised);
}

.omda-emphasis-accent{
  box-shadow:var(--omda-emphasis-accent);
}

.omda-emphasis-accent-strong{
  box-shadow:var(--omda-emphasis-accent-strong);
}

.omda-emphasis-success{
  box-shadow:var(--omda-emphasis-success);
}

.omda-emphasis-danger{
  box-shadow:var(--omda-emphasis-danger);
}

.omda-emphasis-active{
  border-color:var(--omda-emphasis-ring-color);
}

.omda-emphasis-focus:focus,
.omda-emphasis-focus:focus-visible{
  border-color:var(--a);
  box-shadow:var(--omda-emphasis-focus-ring);
  outline:none;
}

.omda-emphasis-danger-focus:focus,
.omda-emphasis-danger-focus:focus-visible{
  border-color:var(--bad);
  box-shadow:var(--omda-emphasis-danger-focus-ring);
  outline:none;
}

@media (prefers-reduced-motion:reduce){
  .omda-emphasis-accent,
  .omda-emphasis-accent-strong,
  .omda-emphasis-success,
  .omda-emphasis-danger{
    transition:none;
  }
}

/* =================================================================
   OMDA CANONICAL EMPHASIS CONSUMERS v1
   Canonical Catalog alignment:
   primary · leading · active · focus · success · danger · progress
================================================================= */

/* Primary actions */
.btn-primary,
.omda-btn-primary,
[data-omda-emphasis="primary"]{
  box-shadow:var(--omda-emphasis-accent);
}

@media (hover:hover) and (pointer:fine){
  .btn-primary:hover,
  .omda-btn-primary:hover,
  [data-omda-emphasis="primary"]:hover{
    box-shadow:var(--omda-emphasis-accent-strong);
  }
}

/* Leading KPI / highlighted metric */
.sc.lead,
.sc.is-leading,
.omda-kpi-leading,
[data-omda-emphasis="leading"]{
  border-color:var(--omda-emphasis-ring-color);
}

.sc.lead :is(.ic,.icon),
.sc.is-leading :is(.ic,.icon),
.omda-kpi-leading :is(.ic,.icon){
  box-shadow:var(--omda-emphasis-accent);
}

/* Canonical progress glow */
.progress > span,
.omda-progress > span,
.omda-progress-bar,
[data-omda-emphasis="progress"]{
  box-shadow:var(--omda-emphasis-accent-progress);
}

/* Canonical field focus */
:is(
  .omda-input,
  .inp,
  .omda-field input,
  .omda-field select,
  .omda-field textarea,
  .field input,
  .field select,
  .field textarea,
  .fld input,
  .fld select,
  .fld textarea,
  .f input,
  .f select,
  .f textarea
):focus{
  border-color:var(--a,var(--product-accent));
  box-shadow:var(--omda-emphasis-focus-ring);
  outline:none;
}

:is(
  .omda-input,
  .inp,
  .omda-field input,
  .omda-field select,
  .omda-field textarea,
  .field input,
  .field select,
  .field textarea,
  .fld input,
  .fld select,
  .fld textarea,
  .f input,
  .f select,
  .f textarea
).bad:focus,
:is(
  .omda-input,
  .inp,
  .omda-field input,
  .omda-field select,
  .omda-field textarea,
  .field input,
  .field select,
  .field textarea,
  .fld input,
  .fld select,
  .fld textarea,
  .f input,
  .f select,
  .f textarea
)[aria-invalid="true"]:focus{
  border-color:var(--bad);
  box-shadow:var(--omda-emphasis-danger-focus-ring);
}

/* Inspection decisions */
:is(.field-btn,.fbtn).ok,
[data-omda-emphasis="success"]{
  box-shadow:var(--omda-emphasis-success);
}

:is(.field-btn,.fbtn).bad,
[data-omda-emphasis="danger"]{
  box-shadow:var(--omda-emphasis-danger);
}

/* Active navigation and branded icons */
.sidebar :is(.active,.is-active) > :is(.ic,.icon),
.sidebar :is(.active,.is-active) :is(.ic,.icon),
.omda-brand-mark,
.omda-loader-brand-mark,
[data-omda-emphasis="brand"]{
  box-shadow:var(--omda-emphasis-accent);
}

/* Touch devices retain canonical resting emphasis without hover lift. */
@media (max-width:1199.98px){
  .btn-primary:hover,
  .omda-btn-primary:hover,
  [data-omda-emphasis="primary"]:hover{
    box-shadow:var(--omda-emphasis-accent);
  }
}


/* Work context panel item */
.omda-work-row--panel {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

.omda-work-row--panel .omda-work-row-main {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

.omda-work-row--panel .omda-work-row-title {
  min-width: 0;
  width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* ================================================================
   OMDA WORK SESSION HERO WIDTH CANON v1
   Aligns the work-session hero with the canonical work-content width.
================================================================ */

body.omda-work-session-active .case-hero.hero.omda-case-hero {
  display: block;
  width: min(100%, 1040px);
  max-width: 1040px;
  margin: 0 auto 18px;
  box-sizing: border-box;
}

/* ================================================================
   OMDA EXPANDED WORK PANEL LAYOUT CANON v3
   Open work panel and professional workspace share the canvas equally.
   Categories use two columns on desktop and one column on tablet.
================================================================ */

@media (min-width: 800px) {
  .omda-work-layout.has-panel-space,
  .omda-work-layout.is-panel-open {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr);
    justify-content: stretch;
  }

  .omda-work-layout.has-panel-space .omda-work-content,
  .omda-work-layout.is-panel-open .omda-work-content {
    width: 100%;
    min-width: 0;
    transform: none;
  }

  .omda-work-layout.has-panel-space .omda-work-panel,
  .omda-work-layout.is-panel-open .omda-work-panel {
    width: 100%;
    min-width: 0;
  }
}

@media (min-width: 1201px) {
  .omda-work-layout.has-panel-space .omda-work-content,
  .omda-work-layout.is-panel-open .omda-work-content {
    height: var(--omda-work-panel-visible-height);
    max-height: var(--omda-work-panel-visible-height);
    overflow-x: hidden;
    overflow-y: auto;
    direction: ltr;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: var(--line-2) transparent;
  }

  .omda-work-layout.has-panel-space
  .omda-work-content > :is(#accGroup,.acc-group),
  .omda-work-layout.is-panel-open
  .omda-work-content > :is(#accGroup,.acc-group) {
    direction: rtl;
  }
}

OMDA WORK SESSION TYPOGRAPHY WEIGHT CANON v1
   Operational work-session headings use canonical UI emphasis.
   Heavy display weights are reserved for primary page identity only.
================================================================ */

body.omda-work-session-active
.omda-work-content
.acc-title {
  font-weight: 700;
}

body.omda-work-session-active
.omda-work-panel-title {
  font-weight: 800;
}

body.omda-work-session-active
.omda-work-panel :is(
  .omda-work-group-title,
  .omda-work-panel-group-title,
  .omda-work-section-title,
  .omda-work-category-title,
  .omda-work-panel-category-title
) {
  font-weight: 700;
}

/* ================================================================
   OMDA WORK SESSION BADGE WEIGHT CANON v1
   Work-session badges follow the canonical Badge Contract weight.
================================================================ */

body.omda-work-session-active
:is(
  .omda-work-row-badge,
  .omda-work-panel .badge,
  .omda-work-panel-count
) {
  font-weight: 700;
}

/* ================================================================
   OMDA GLOBAL DRAWER NAV CANON v1
   Work Session and product-selected drawer navigation use the same
   hamburger-driven overlay navigation at every viewport width.
================================================================ */

body.omda-work-session-active #topbar,
body[data-omda-navigation-mode="drawer"] #topbar {
  grid-template-columns:
    max-content
    minmax(180px, 1fr)
    max-content;
  width: 100vw;
  max-width: none;
  inset-inline: 0;
  padding-inline: 20px;
}

body.omda-work-session-active #topbar .tb-mob,
body[data-omda-navigation-mode="drawer"] #topbar .tb-mob {
  display: grid;
}

body.omda-work-session-active .app > .sidebar,
body.omda-work-session-active .sidebar,
body[data-omda-navigation-mode="drawer"] .app > .sidebar,
body[data-omda-navigation-mode="drawer"] .sidebar {
  display: flex;
  visibility: visible;
  position: fixed;
  inset-block: 0;
  inset-inline-start: 0;
  inset-inline-end: auto;
  width: min(288px, 84vw);
  max-width: 320px;
  height: 100vh;
  z-index: 9000;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(110%);
  transition:
    transform .22s cubic-bezier(.2, .8, .2, 1);
}

body.omda-work-session-active .app > .sidebar.open,
body.omda-work-session-active .sidebar.open,
body[data-omda-navigation-mode="drawer"] .app > .sidebar.open,
body[data-omda-navigation-mode="drawer"] .sidebar.open {
  transform: translateX(0);
}

body.omda-work-session-active
.scrim[data-omda-sidebar-scrim="1"],
body[data-omda-navigation-mode="drawer"]
.scrim[data-omda-sidebar-scrim="1"] {
  display: block;
}

/* ================================================================
   OMDA WORK CONTEXT PRIMARY ACTION + EDIT AFFORDANCE v1

   Generic work-context presentation:
   - Product marks intent only.
   - Shell owns visual hierarchy.
   - No capability / workflow / persistence ownership.
================================================================ */

body.omda-work-session-active
[data-omda-work-context-part="hero"]
.ch-actions
.btn[data-omda-work-primary-action]{
  order:-1;
  flex:1 0 100%;
  width:100%;
  max-width:none;
  height:42px;
  min-height:42px;
  justify-content:center;
  font-size:13px;
  font-weight:800;
}

body.omda-work-session-active
[data-omda-work-context-part="hero"]
:is(.ch-state-actions,.case-state-actions):has(
  > [data-omda-work-primary-action]
){
  order:-1;
  flex:1 0 100%;
  width:100%;
  max-width:none;
}

body.omda-work-session-active
[data-omda-work-context-part="hero"]
:is(.ch-state-actions,.case-state-actions)
> [data-omda-work-primary-action]{
  width:100%;
  max-width:none;
  height:42px;
  min-height:42px;
  justify-content:center;
  font-size:13px;
  font-weight:800;
}





/* ================================================================
   OMDA WORK PANEL ROW THEME CONTRACT v2
   Catalog rows consume global Shell tokens in both themes.
================================================================ */

/* =========================================================
   OMDA StandardPageShell Native Mobile Table Mode v1

   Contract:
   - Default TablePanel mobile behavior remains otp-mobile-feed.
   - Products with compact tabular data may explicitly opt into
     data-otp-mobile-mode="native-scroll".
   - Responsive presentation remains Shell-owned.
   - No product-local CSS is required.
   ========================================================= */
@media (max-width:799.98px) {
  .omda-standard-table-panel-shell.otp-shell[data-otp-mobile-mode="native-scroll"] {
    min-width: 0;
  }

  .omda-standard-table-panel-shell.otp-shell[data-otp-mobile-mode="native-scroll"] .otp-table-scroll {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  .omda-standard-table-panel-shell.otp-shell[data-otp-mobile-mode="native-scroll"] .otp-native-table {
    display: table;
    width: max-content;
    min-width: 100%;
  }

  .omda-standard-table-panel-shell.otp-shell[data-otp-mobile-mode="native-scroll"] .otp-mobile-feed {
    display: none;
  }
}

/* =========================================================
   OMDA Responsive Chart Contract v1

   Generic Shell ownership:
   - Chart canvases fit their Shell-owned chart container.
   ========================================================= */
.omda-chart-wrap {
  min-width: 0;
  max-width: 100%;
}

.omda-chart-wrap canvas {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

/* ================================================================
   OMDA Generic Action Row Contract v1

   Generic action placement for page/card/form actions.
   Shell owns spacing, wrapping and responsive button geometry.
   Products own labels, actions and business semantics.
   ================================================================ */
.omda-actions-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  flex-wrap: wrap;
  min-width: 0;
  margin-top: 16px;
}

.section-card-header > .omda-actions-row,
.omda-section-card-header > .omda-actions-row {
  margin-top: 0;
}

.omda-actions-row > .btn {
  flex: 0 0 auto;
}

@media (max-width: 799.98px) {
  .omda-actions-row {
    gap: 10px;
  }

  .omda-actions-row > .btn {
    max-width: 100%;
  }
}

/* ================================================================
   OMDA Form Action Footer Contract v1

   Optional semantic action zone for forms that end with primary actions.
   Shell owns separation from fields/content and responsive action geometry.
   Products opt in with .omda-form-actions and own action semantics.
   ================================================================ */
.omda-form-actions {
  margin-top: 20px;
  padding: 16px 18px 18px;
  border-top: 1px solid var(--omda-border, var(--line));
  background: rgba(var(--product-rgb), .035);
}

@media (max-width: 799.98px) {
  .omda-form-actions {
    padding: 14px 14px 16px;
  }

  .omda-form-actions > .btn {
    width: 100%;
  }
}

/* OMDA Global CaseHero — Shell visual canon, desktop/tablet/mobile.
   Source: OMDA UI Shell Contract Book and OMDA responsive catalog.
   Product controls remain native; no product workflow or permission styles here. */
/* R4-B2: replacement hides legacy presentation without changing native access hooks. */
.omda-hero-mount.is-work-context{width:min(100%,1180px);max-width:100%;margin-inline:auto;}
:is(#caseHero,#inspectionVehicleVerificationPanel,.case-hero,[data-inspection-work-session-hero]).is-replaced{display:none;}

.omda-global-hero{
  box-sizing:border-box;position:relative;isolation:isolate;
  display:grid;grid-template-rows:minmax(0,3fr) minmax(0,1fr);
  width:100%;max-width:100%;height:260px;max-height:260px;
  margin:0;overflow:visible;
  border:1px solid var(--line);border-radius:var(--radius-lg,24px);
  background:var(--card-solid);background-image:var(--card-grad);
  box-shadow:var(--shadow-sm);color:var(--text);
  font-family:var(--omda-font-ui,var(--omda-font,"Rubik",sans-serif));
  font-size:14px;line-height:1.4;
}
.omda-global-hero::before{
  content:"";position:absolute;inset-block-start:0;
  inset-inline:var(--radius-lg,24px);height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--a-2,var(--a)),var(--a),transparent 73%);
  pointer-events:none;
}
.omda-global-hero,.omda-global-hero *{box-sizing:border-box;min-width:0;}
.omda-gh-top{
  display:grid;grid-template-columns:minmax(230px,1fr) minmax(230px,1fr) minmax(230px,1fr);
  gap:16px;align-items:center;padding:14px 20px;min-height:0;
}
.omda-gh-identity{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-width:0;text-align:start;overflow-wrap:anywhere;}
.omda-gh-name{font-size:clamp(17px,1.5vw,22px);font-weight:900;letter-spacing:-.02em;line-height:1.25;color:var(--text);}
.omda-gh-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;font-size:12px;font-weight:600;color:var(--text-2);}
.omda-gh-note{font-size:11px;color:var(--text-3);}
.omda-gh-identity-badges,.omda-gh-center-badges{display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.omda-gh-center{display:grid;justify-items:center;align-content:center;gap:8px;min-width:0;}
.omda-gh-plate{display:grid;place-items:center;width:min(100%,320px);max-width:320px;}
.omda-gh-plate>*{max-width:100%;}
.omda-gh-plate>il-plate{display:block;width:100%;height:auto;}
/* Semantic badge/chip language follows the canonical Shell status palette. */
.omda-gh-badge{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:4px 10px;border:1px solid transparent;border-radius:99px;
  font-family:inherit;font-size:11px;font-weight:700;line-height:1.4;
  background:var(--surface);color:var(--text-2);
}
.omda-gh-badge::before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:currentColor;}
.omda-gh-badge--info,.omda-gh-badge--blue{background:var(--info-bg);color:var(--info);}
.omda-global-hero .omda-gh-identity-row--badges .omda-gh-badge--info{padding-block:3px;}
.omda-gh-badge--success,.omda-gh-badge--ok,.omda-gh-badge--green{background:var(--ok-bg);color:var(--ok);}
.omda-gh-badge--warn,.omda-gh-badge--warning,.omda-gh-badge--gold{background:var(--a-bg);color:var(--a);}
.omda-gh-badge--danger,.omda-gh-badge--red{background:var(--bad-bg);color:var(--bad);}
.omda-gh-badge--neutral{background:var(--surface);color:var(--text-2);border-color:var(--line);}

/* P118 global Hero badges. Positioned before pre-existing invalid CSS selector. */
.omda-global-hero .omda-gh-badge--ignition{background:#152238;color:#e8efff;border-color:#35465f;border-radius:8px;direction:ltr;unicode-bidi:isolate}
.omda-global-hero .omda-gh-badge--ignition::before{
  content:"";width:15px;height:15px;flex:0 0 15px;border-radius:0;background:currentColor;
  mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2216%22%20r%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2211%22%20width%3D%2218%22%20height%3D%2211%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M7%2011V7a5%205%200%200%201%2010%200v4%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
}
.omda-global-hero .omda-gh-badge--hero-note{background:#49381e;color:#f2d18b;border-color:#765729;border-radius:8px;padding-block:3px;white-space:normal;overflow-wrap:anywhere}
.omda-global-hero .omda-gh-badge--hero-note::before{content:"✎";width:auto;height:auto;flex:0 0 auto;border-radius:0;background:none;font-size:14px;line-height:1}
html[data-mode="light"] .omda-global-hero .omda-gh-badge--ignition{background:#e6efff;color:#203e69;border-color:#b5c9e8}
html[data-mode="light"] .omda-global-hero .omda-gh-badge--hero-note{background:#fff4db;color:#624717;border-color:#dec28c}

.omda-gh-actions{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:8px;max-width:290px;width:100%;min-height:0;}
/* Native actions are moved, never cloned. Preserve native visibility and state. */
.omda-gh-actions> :not(.omda-gh-secondary):not(.omda-gh-overflow){max-width:100%;width:100%;min-width:0;}
.omda-gh-secondary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:stretch;min-width:0;}
.omda-gh-secondary>*{min-width:0;max-width:100%;flex:1 1 auto;}
.omda-gh-action,.omda-gh-edit{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:36px;padding:0 13px;border-radius:var(--radius-sm,12px);
  font:700 12px var(--omda-font-ui,var(--omda-font,"Rubik",sans-serif));
  border:1px solid var(--line);background:var(--surface);color:var(--text);
  cursor:pointer;white-space:nowrap;
}
.omda-gh-action--primary{min-height:44px;background:linear-gradient(140deg,var(--a-2),var(--a));color:var(--a-ink);border-color:transparent;box-shadow:var(--shadow-accent);}
.omda-gh-action:disabled,.omda-gh-edit:disabled{opacity:.55;cursor:not-allowed;}
.omda-gh-bottom{
  min-width:0;min-height:0;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,4fr);
  border-top:1px solid var(--line);border-radius:0 0 var(--radius-lg,24px) var(--radius-lg,24px);
  background:var(--surface);
}
.omda-gh-findings{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  min-width:0;min-height:0;padding:5px 9px;border-inline-end:1px solid var(--line);
  background:var(--a-bg);color:var(--a);text-align:center;
}
.omda-gh-findings-title{font-size:10px;font-weight:700;color:inherit;}
.omda-gh-findings-value{font-size:16px;line-height:1.2;font-weight:900;color:inherit;}
.omda-gh-verification{display:flex;align-items:center;gap:10px;min-width:0;min-height:0;padding:5px 12px;}
.omda-gh-verification-title{display:none;}
.omda-gh-verification-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:10px;flex:1 1 auto;min-width:0;}
.omda-gh-field{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;}
.omda-gh-field-label{font-size:10px;font-weight:600;color:var(--text-3);}
.omda-gh-field-value{font-family:var(--omda-font-mono,var(--mono,monospace));font-size:12px;font-weight:800;color:var(--text);direction:ltr;text-align:right;overflow-wrap:anywhere;}
.omda-gh-field-status{font-size:10px;color:var(--ok);font-weight:700;}
.omda-gh-edit{flex:0 0 auto;padding:0 10px;min-height:30px;font-size:11px;}
.omda-global-hero :is(button,a):focus-visible{outline:2px solid var(--a);outline-offset:2px;}
.omda-gh-actions .omda-gh-overflow[hidden]{display:none;}
.omda-gh-overflow{position:relative;min-width:0;}
.omda-gh-overflow-toggle{display:block;cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm,12px);padding:8px 12px;list-style:none;font-size:12px;font-weight:700;}
.omda-gh-overflow-toggle::-webkit-details-marker{display:none;}
.omda-gh-overflow-items{display:grid;gap:6px;padding:8px;background:var(--card-solid);border:1px solid var(--line);border-radius:var(--radius-sm,12px);box-shadow:var(--shadow-lg);}
.omda-gh-overflow-items>.omda-gh-action{width:100%;text-align:start;}
@media (width >= 800px) and (max-width:1200px){
  .omda-gh-top{grid-template-columns:minmax(0,1fr) minmax(0,.95fr) minmax(0,1fr);padding:10px 12px;gap:9px;}
  .omda-gh-name{font-size:17px;}
  .omda-gh-meta{font-size:11px;}
  .omda-gh-plate{width:min(100%,235px);max-width:235px;}
  .omda-gh-actions{max-width:230px;gap:6px;}
  .omda-gh-verification-grid{gap:6px;}
  .omda-gh-overflow-items{position:absolute;z-index:30;inset-inline-end:0;top:100%;min-width:190px;max-width:min(360px,85vw);}
}
@media (width < 800px){
  .omda-global-hero{height:auto;max-height:none;grid-template-rows:auto auto;}
  .omda-gh-top{grid-template-columns:minmax(0,1fr);padding:15px;gap:12px;}
  .omda-gh-identity{align-items:center;text-align:center;}
  .omda-gh-center{order:-1;}
  .omda-gh-plate{width:min(100%,290px);max-width:290px;}
  .omda-gh-actions{max-width:none;}
  .omda-gh-bottom{grid-template-columns:minmax(0,1fr);}
  .omda-gh-findings{border-inline-end:0;border-bottom:1px solid var(--line);}
  .omda-gh-verification{flex-wrap:wrap;padding:12px;}
  .omda-gh-verification-grid{grid-template-columns:minmax(0,1fr);gap:8px;}
  .omda-gh-field{flex-direction:row;align-items:baseline;justify-content:space-between;gap:12px;}
  .omda-gh-field-value{text-align:left;}
  .omda-gh-edit{margin-inline-start:auto;}
}


/* OMDA CaseHero P057–P062: canonical alignment + verification compact projection */
@media (width >= 800px){
  .omda-gh-top{align-items:start;padding-block-start:20px;}
  .omda-gh-identity{justify-content:flex-start;}
  .omda-gh-center{align-content:start;}
  .omda-gh-actions{justify-content:flex-start;margin-block-start:0;margin-inline-start:6px;max-width:calc(100% - 6px);}
}
.omda-gh-naming{display:flex;flex-direction:column;gap:1px;line-height:1.18;}
.omda-gh-model{color:var(--a);font-size:15px;font-weight:800;}
.omda-gh-field{position:relative;}
.omda-gh-field:not(:first-child)::before{content:"";position:absolute;inset-inline-start:-5px;top:18%;height:64%;border-inline-start:1px solid var(--line);}
.omda-gh-field-row{display:flex;align-items:center;gap:7px;min-width:0;}
.omda-gh-field-value{font-size:clamp(12px,1.25vw,18px);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.omda-gh-field-mark{flex:0 0 auto;font-size:14px;font-weight:900;line-height:1;}
.omda-gh-field-mark--match{color:var(--ok);}
.omda-gh-field-mark--mismatch{color:var(--bad);}
.omda-gh-findings-value{font-size:clamp(16px,1.5vw,20px);white-space:nowrap;}
.omda-gh-verification .omda-gh-edit{flex:0 0 32px;width:32px;height:32px;min-height:32px;padding:0;border-radius:10px;}
@media(width < 800px){.omda-gh-field:not(:first-child)::before{display:none;}.omda-gh-field-row{justify-content:flex-end;}}

/* OMDA CaseHero P067-P073 FINAL — canonical Shell-only presentation */
.omda-global-hero{font-family:var(--omda-font-ui,"Rubik",sans-serif);box-sizing:border-box;width:100%;min-width:0}
.omda-gh-heading{display:flex;align-items:center;gap:10px;min-width:0}
.omda-gh-maker-logo{width:44px;height:44px;flex:0 0 44px;object-fit:contain;border-radius:12px;background:var(--card-solid);border:1px solid var(--line)}
.omda-gh-naming{min-width:0;text-align:start}
.omda-gh-name{font-weight:900;font-size:clamp(15px,1.35vw,21px);line-height:1.15}
.omda-gh-model{color:var(--a);font-weight:800;line-height:1.2}
.omda-gh-note{font-size:11px;color:var(--text-2);line-height:1.25;overflow-wrap:anywhere}
.omda-gh-meta{align-items:center;font-size:12px}
.omda-gh-actions{align-items:flex-start;align-content:flex-start;gap:7px;min-width:0}
.omda-gh-actions>*{max-width:100%}
.omda-gh-actions .case-state-actions{width:auto;max-width:100%;min-width:0}
.omda-gh-actions .case-state-actions button{width:auto;max-width:100%}
.omda-gh-secondary{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.omda-gh-findings{justify-content:center}
.omda-gh-verification-grid,.omda-gh-field{min-width:0}
.omda-gh-field-value{font-family:var(--omda-font-mono,"JetBrains Mono",monospace);font-variant-numeric:tabular-nums}
@media(width >= 800px){
 .omda-gh-top{align-items:start;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(0,1fr)}
 .omda-gh-identity,.omda-gh-center,.omda-gh-actions{align-self:start}
 .omda-gh-center{align-content:start}

/* P095 CANONICAL HERO TOP — Main + Terminal */
.omda-gh-center-badges {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  min-width: 0;
}

.omda-gh-center-badges > .omda-gh-badge {
  min-width: 0;
  white-space: nowrap;
  font-size: 10px;
  flex-shrink: 0;
}
/* END P095 */

 .omda-gh-actions{justify-content:flex-start;padding-inline-end:6px}
 .omda-gh-actions>.case-state-actions{max-width:270px}
 .omda-gh-bottom{grid-template-columns:minmax(0,1fr) minmax(0,4fr)}
 .omda-gh-verification{flex-wrap:nowrap;min-width:0}
 .omda-gh-verification-grid{gap:10px}
}
/* Findings badge: it fills the inline-start cell of .omda-gh-bottom, i.e. the Hero's rounded bottom corner (bottom-right
   in RTL). Its own background must follow that corner, minus the Hero's 1px border, or its square corner shows. */
@media (width >= 800px){.omda-gh-findings{border-end-start-radius:calc(var(--radius-lg,24px) - 1px)}}
@media(width >= 800px) and (max-width:1200px){
 .omda-gh-heading{gap:6px}
 .omda-gh-maker-logo{width:36px;height:36px;flex-basis:36px}
 .omda-gh-name{font-size:15px}
 .omda-gh-model{font-size:12px}
 .omda-gh-field-value{font-size:12px}
}
@media(width < 800px){.omda-gh-top{grid-template-columns:1fr}.omda-gh-actions{justify-content:stretch}}
/* END OMDA CaseHero P067-P073 FINAL */

/* OMDA CaseHero final visual convergence -- Desktop/Tablet parity */
.omda-global-hero .omda-gh-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:13px;font-weight:650;line-height:1.35}
.omda-global-hero .omda-gh-meta-sep{color:var(--text-3);font-size:14px;font-weight:700}
.omda-global-hero .omda-gh-name{font-size:clamp(17px,1.4vw,23px)}
.omda-global-hero .omda-gh-model{font-size:clamp(16px,1.2vw,18px)}
.omda-global-hero .omda-gh-actions{justify-self:end;align-items:stretch;max-width:300px;width:min(100%,300px);margin:0 6px 0 0;padding:0;gap:8px}
.omda-global-hero .omda-gh-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0;gap:8px;align-items:stretch;justify-content:stretch}
.omda-global-hero .omda-gh-secondary>button{width:100%;min-width:0;max-width:100%;}
.omda-global-hero .omda-gh-secondary>button:only-child{grid-column:1/-1;}
.omda-global-hero .omda-gh-actions button,.omda-global-hero .omda-gh-actions .btn{font-family:var(--omda-font-ui,'Rubik',sans-serif);font-weight:750;min-height:36px;border-radius:12px}
.omda-global-hero .omda-gh-actions>button,.omda-global-hero .omda-gh-actions>.case-state-actions{width:100%}
.omda-global-hero .omda-gh-actions>.case-state-actions button{width:100%;max-width:100%;min-height:42px}
.omda-global-hero .omda-gh-secondary>button{flex:1 1 auto}
.omda-global-hero .omda-gh-overflow{display:none}
.omda-global-hero .omda-gh-edit{width:40px;height:40px;min-height:40px;flex-basis:40px;border-radius:12px;font-size:17px}
.omda-global-hero{margin-block-end:16px}
@media(width >= 800px){.omda-global-hero .omda-gh-actions{align-self:start}.omda-global-hero .omda-gh-identity{align-self:start}}
@media(width >= 800px) and (max-width:1200px){.omda-global-hero .omda-gh-actions{width:min(100%,240px)}.omda-global-hero .omda-gh-actions>.case-state-actions button{min-height:36px}.omda-global-hero .omda-gh-model{font-size:16px}}
@media(width < 800px){.omda-global-hero .omda-gh-actions{max-width:none;width:100%;margin:0}.omda-global-hero .omda-gh-actions>.case-state-actions{width:100%}}
/* END OMDA CaseHero final visual convergence */

/* OMDA HERO P078 ACTION GRID */
.omda-global-hero .omda-gh-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  align-items: stretch;
  justify-items: stretch;
  gap: 8px;
}
.omda-global-hero .omda-gh-actions > :not(.omda-gh-overflow) {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.omda-global-hero .omda-gh-secondary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  gap: 8px;
}
.omda-global-hero .omda-gh-secondary > * {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.omda-global-hero .omda-gh-secondary > :only-child {
  grid-column: 1 / -1;
}
/* END OMDA HERO P078 */

/* OMDA HERO P079 FIXED TWO-ROW ACTIONS */
.omda-global-hero .omda-gh-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:8px;
}
.omda-global-hero .omda-gh-actions>.omda-gh-primary-actions{
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  flex:0 0 auto;
}
.omda-global-hero .omda-gh-primary-actions>*{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
}
.omda-global-hero .omda-gh-secondary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  min-width:0;
  gap:8px;
  flex:0 0 auto;
}
.omda-global-hero .omda-gh-secondary>*{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  margin:0;
}
.omda-global-hero .omda-gh-secondary>:only-child{grid-column:1/-1}
/* END OMDA HERO P079 */

/* B-OPS-1 — sync status and communication entries inside the existing alerts surface. */
.omda-sync-badge.badge{
  max-inline-size:100%;
  white-space:normal;
  text-align:start;
}
.omda-sync-badge.badge::before{content:none}
:is(.otp-status-pill,.otp-payment-pill,.otp-pill).omda-sync-badge::before{content:none}
.omda-sync-badge__icon{display:inline-flex;flex:none}
.omda-sync-badge__icon svg{inline-size:14px;block-size:14px}
.omda-sync-badge.is-pending .omda-sync-badge__icon{animation:omda-sync-pulse 1.8s ease-in-out infinite}
@keyframes omda-sync-pulse{50%{opacity:.6}}
@media(prefers-reduced-motion:reduce){
  .omda-sync-badge.is-pending .omda-sync-badge__icon{animation:none}
}
button.omda-sync-badge.is-failed{cursor:pointer}
button.omda-sync-badge.is-failed:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
}
.omda-communication-panel,
.omda-communication-panel__entries,
.omda-communication-panel__entry{display:grid;gap:8px;min-inline-size:0}
.omda-communication-panel__entries{margin:0;padding:0;list-style:none}
.omda-communication-panel__entry{
  padding-block:10px;
  border-block-end:1px solid var(--line);
  overflow-wrap:anywhere;
}
.omda-communication-panel__meta,
.omda-communication-panel__actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.omda-communication-panel__meta{color:var(--text-2,var(--omda-muted))}
.omda-communication-panel__state{margin:0;overflow-wrap:anywhere}
.omda-communication-panel__state.is-error{color:var(--bad-text,var(--bad))}
@media(forced-colors:active){
  .omda-communication-panel__entry{border-color:CanvasText}
}

/* =================================================================
   OMDA INTAKE WIZARD PRIMITIVES v1 — SHELL-WIZARD-001 (04.11.2026)

   One visual language for multi-step intake flows, consumed by the
   Main new-case modal and the Terminal full-page wizard alike.
   Products render the DOM below and own step logic, data and copy;
   Shell owns every visual state. Colors come from the canonical
   tokens only. No product-local CSS, no !important.

   Placed above the P080 hero block: its selector has an unbalanced
   parenthesis that makes browsers drop everything after it (see
   SHELL-WIZARD-001 findings). Keep this block above it.

   DOM:
   nav.omda-stepper
     > button.omda-stepper__step[.is-done|.is-current|.is-warn][disabled]
       > span.omda-stepper__num
       + span.omda-stepper__text
         > strong.omda-stepper__label + small.omda-stepper__sub
   div.omda-notice[.is-ok|.is-warn|.is-bad|.is-info]
     > span.omda-notice__text + div.omda-notice__actions
   small.omda-source-chip[.is-manual]
   .omda-choice-grid.is-compact > .omda-choice-card.is-compact
     > .omda-choice-title + .omda-choice-sub

   STATUS: CANDIDATE — consumer migration pending (Terminal, Main).
   ================================================================= */
.omda-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.omda-stepper__step{display:flex;align-items:center;gap:10px;min-width:0;min-height:48px;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;text-align:start;cursor:pointer;transition:background .14s,border-color .14s,box-shadow .14s;}
.omda-stepper__step:hover:not(:disabled){border-color:var(--line-2);background:var(--card-hi);}
.omda-stepper__step:focus-visible{outline:none;box-shadow:var(--omda-emphasis-focus-ring);}
.omda-stepper__step:disabled{cursor:default;color:var(--text-2);}
.omda-stepper__num{flex:0 0 28px;width:28px;height:28px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;background:var(--card-solid);color:var(--text-2);font-size:13px;font-weight:800;}
.omda-stepper__num svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:3;}
.omda-stepper__text{display:grid;min-width:0;}
.omda-stepper__label{font-size:14px;font-weight:800;color:inherit;}
.omda-stepper__sub{overflow:hidden;font-size:12px;font-weight:600;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;}
.omda-stepper__step.is-done{border-color:color-mix(in srgb,var(--ok),transparent 60%);background:var(--ok-bg);}
.omda-stepper__step.is-done .omda-stepper__num{border-color:var(--ok);background:var(--card-solid);color:var(--ok-text);}
.omda-stepper__step.is-warn{border-color:color-mix(in srgb,var(--warn),transparent 55%);background:var(--warn-bg);}
.omda-stepper__step.is-warn .omda-stepper__num{border-color:var(--warn);background:var(--card-solid);color:var(--warn-text);}
.omda-stepper__step.is-warn .omda-stepper__sub{color:var(--warn-text);}
.omda-stepper__step.is-current{border-color:var(--a);background:var(--card-solid);box-shadow:0 0 0 1px var(--a);}
.omda-stepper__step.is-current .omda-stepper__num{border-color:transparent;background:linear-gradient(140deg,var(--a-2),var(--a));color:var(--a-ink);box-shadow:var(--shadow-accent);}

.omda-notice{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--text-2);font-size:14px;font-weight:600;line-height:1.45;}
.omda-notice__text{min-width:0;}
.omda-notice__text strong{font-weight:800;}
.omda-notice__actions{display:flex;flex-wrap:wrap;gap:8px;}
.omda-notice.is-ok{border-color:color-mix(in srgb,var(--ok),transparent 60%);background:var(--ok-bg);color:var(--ok-text);}
.omda-notice.is-warn{border-color:color-mix(in srgb,var(--warn),transparent 55%);background:var(--warn-bg);color:var(--warn-text);}
.omda-notice.is-bad{border-color:color-mix(in srgb,var(--bad),transparent 55%);background:var(--bad-bg);color:var(--bad-text);}
.omda-notice.is-info{border-color:color-mix(in srgb,var(--info),transparent 55%);background:var(--info-bg);color:var(--info-text);}

.omda-source-chip{display:inline-block;margin-inline-start:6px;padding:1px 7px;border-radius:7px;background:var(--a-bg);color:var(--a-text);font-size:11px;font-weight:700;line-height:1.5;vertical-align:middle;}
.omda-source-chip.is-manual{background:var(--surface);color:var(--text-2);}

.omda-choice-grid.is-compact{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}
.omda-choice-card.is-compact{min-height:64px;grid-template-columns:minmax(0,1fr);gap:2px;padding:12px 16px;}
.omda-choice-card.is-compact:hover{transform:none;}

/* Short screens (terminals, laptops): one compact 44px row, no sub-line. */
@media (max-height:820px){
  .omda-stepper__step{min-height:44px;padding-block:6px;}
  .omda-stepper__sub{display:none;}
}
/* Phones: a single row that scrolls sideways instead of two rows. */
@media (max-width:700px){
  .omda-stepper{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(128px,1fr);overflow-x:auto;scrollbar-width:none;}
  .omda-stepper::-webkit-scrollbar{display:none;}
  .omda-stepper__step{min-height:44px;padding-block:6px;}
  .omda-stepper__sub{display:none;}
}

/* =================================================================
   OMDA INTAKE FLOW v1 (SHELL-WIZARD-002, 04.11.2026)
   All intake sections in one scroll: done sections fold into a one-line
   summary with "עריכה", the current one is open with the accent ring,
   the next one waits dimmed. Same canon as the Terminal v2 wizard
   (terminal-shell.css), which moves onto this family in the cleanup
   package.

   DOM:
   section.omda-intake-section[.is-done|.is-current|.is-next][hidden]
     > .omda-intake-section__head
         > .omda-intake-section__num + .omda-intake-section__title
         + .omda-intake-section__summary (strong + small)
         + .omda-intake-section__hint + .omda-intake-section__tools
         + .omda-intake-section__edit
     > .omda-intake-section__body
   .omda-intake-grid[.is-pending] > .omda-intake-field[.is-anchor|.is-match|.is-sourced|.is-required-missing]
     > .omda-intake-label (+ small.omda-source-chip)
     > .omda-intake-input | .omda-intake-field__control > .omda-intake-input + .omda-intake-field__chip[.is-ok|.is-info]
   .omda-intake-plate[.is-match|.is-miss] > .omda-intake-input + .btn
   .omda-intake-block > .omda-intake-block__label + .omda-intake-choices > button.omda-intake-choice[.is-selected]
   .omda-intake-tiles > .omda-intake-tile > __label + __value + __sub
   .omda-intake-remaining[.is-warn|.is-ok]
   Main frame: .ncm.is-flow > .ncm-hd(.ncm-hd-row + nav.omda-stepper) + .ncm-flow + .ncm-ft
   Hidden states use the global [hidden] rule.
   ================================================================= */

/* Main new-case modal: header card with the step bar, one scroll, footer */
/* Keeps the NCM backdrop top gap (88px): the app top bar stays clear. */
.ncm.is-flow{width:min(980px,calc(100vw - 32px));max-height:min(calc(100dvh - 110px),1000px);background:var(--bg);background-image:none;}
.ncm.is-flow .ncm-hd{display:grid;gap:12px;padding:16px 22px;background:var(--card-solid);}
.ncm.is-flow .ncm-hd-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;}
.ncm.is-flow .ncm-title{font-size:22px;}
.ncm.is-flow .ncm-close{width:44px;height:44px;}
.ncm-flow{flex:1 1 auto;min-height:0;display:grid;align-content:start;gap:14px;padding:18px 22px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:auto;background:var(--bg);}
.ncm.is-flow .ncm-ft{gap:12px;padding:14px 22px;}
.ncm.is-flow .ncm-ft .btn{min-height:48px;padding-inline:22px;border-radius:14px;}

/* Sections */
.omda-intake-section{display:grid;gap:16px;min-width:0;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--card-solid);color:var(--text);}
.omda-intake-section.is-current{border-color:var(--a);box-shadow:0 0 0 1px var(--a);}
.omda-intake-section.is-done,
.omda-intake-section.is-next{padding-block:14px;}
.omda-intake-section.is-next{opacity:.75;}
.omda-intake-section__head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;min-width:0;}
.omda-intake-section__num{flex:0 0 auto;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--a-bg);color:var(--a-text);font-size:14px;font-weight:700;}
.omda-intake-section.is-current .omda-intake-section__num{background:linear-gradient(140deg,var(--a-2),var(--a));color:var(--a-ink);}
.omda-intake-section.is-next .omda-intake-section__num{background:var(--surface);color:var(--text-2);}
.omda-intake-section__title{margin:0;color:var(--text);font-size:20px;font-weight:800;line-height:1.3;}
.omda-intake-section.is-next .omda-intake-section__title{font-size:16px;}
.omda-intake-section__hint{color:var(--text-2);font-size:13px;}
.omda-intake-section__summary{flex:1 1 220px;display:grid;gap:2px;min-width:0;}
.omda-intake-section__summary strong{color:var(--text);font-weight:800;}
.omda-intake-section__summary small{overflow:hidden;color:var(--text-2);font-size:13px;text-overflow:ellipsis;white-space:nowrap;}
.omda-intake-section__tools{display:flex;gap:8px;margin-inline-start:auto;}
.omda-intake-section__edit{margin-inline-start:auto;}
.omda-intake-section__tools .btn,
.omda-intake-section__edit{min-height:44px;padding-inline:18px;border-radius:12px;}
.omda-intake-section__tools .btn.is-active{border-color:var(--a);box-shadow:0 0 0 1px var(--a);}
.omda-intake-section__body{display:grid;gap:16px;min-width:0;}
.omda-intake-section:not(.is-done) .omda-intake-section__summary,
.omda-intake-section:not(.is-done) .omda-intake-section__edit,
.omda-intake-section:not(.is-next) .omda-intake-section__hint,
.omda-intake-section.is-done .omda-intake-section__title,
.omda-intake-section:not(.is-current) .omda-intake-section__tools,
.omda-intake-section:not(.is-current) .omda-intake-section__body{display:none;}

/* Fields */
.omda-intake-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;min-width:0;}
.omda-intake-grid.is-pending .omda-intake-field:not(.is-anchor){opacity:.5;}
.omda-intake-field{display:grid;align-content:start;gap:6px;min-width:0;}
.omda-intake-label{display:flex;align-items:center;gap:6px;color:var(--text);font-size:14px;font-weight:700;}
.omda-intake-label .omda-source-chip{margin-inline-start:0;}
.omda-intake-input{width:100%;min-height:52px;padding:0 16px;border:1px solid var(--line);border-radius:14px;outline:none;background:var(--card-solid);color:var(--text);font:inherit;font-size:17px;font-weight:600;}
.omda-intake-input.is-key{font-size:20px;}
.omda-intake-input[readonly]:not(:placeholder-shown){background:var(--surface);}
.omda-intake-input:hover{border-color:var(--line-2);}
.omda-intake-input:focus-visible{border-color:var(--a);box-shadow:var(--omda-emphasis-focus-ring);}
.omda-intake-field.is-match .omda-intake-input{border-color:var(--ok);background:color-mix(in srgb,var(--ok-bg) 45%,var(--card-solid));}
.omda-intake-field.is-required-missing .omda-intake-label{color:var(--warn-text);}
.omda-intake-field.is-required-missing .omda-intake-input{border:2px solid var(--warn);background:color-mix(in srgb,var(--warn-bg) 45%,var(--card-solid));}
.omda-intake-field__control{position:relative;display:block;}
.omda-intake-field__chip{position:absolute;inset-inline-end:10px;top:50%;transform:translateY(-50%);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap;pointer-events:none;}
.omda-intake-field__chip.is-ok{background:var(--ok-bg);color:var(--ok-text);}
.omda-intake-field__chip.is-info{background:var(--info-bg);color:var(--info-text);}
.omda-intake-field__control:has(.omda-intake-field__chip:not([hidden])) .omda-intake-input{padding-inline-end:150px;}

/* Plate */
.omda-intake-plate{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;}
.omda-intake-plate .omda-intake-input{flex:1 1 260px;min-height:64px;border-width:2px;border-radius:16px;direction:ltr;font-size:32px;font-weight:700;letter-spacing:2px;text-align:center;}
.omda-intake-plate.is-match .omda-intake-input{border-color:var(--ok);}
.omda-intake-plate.is-miss .omda-intake-input{border-color:var(--warn);}
.omda-intake-plate .btn{min-height:64px;padding-inline:18px;border-radius:14px;}

/* Choices (assignment) */
.omda-intake-block{display:grid;gap:10px;min-width:0;}
.omda-intake-block__label{color:var(--text);font-size:14px;font-weight:700;}
.omda-intake-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}
.omda-intake-choice{display:grid;align-content:center;gap:4px;min-height:84px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card-solid);color:var(--text);font:inherit;text-align:start;cursor:pointer;}
.omda-intake-choice strong{font-size:17px;font-weight:800;}
.omda-intake-choice span{color:var(--text-2);font-size:14px;}
.omda-intake-choice:hover:not(:disabled){border-color:var(--line-2);}
.omda-intake-choice:focus-visible{outline:none;box-shadow:var(--omda-emphasis-focus-ring);}
.omda-intake-choice:disabled{cursor:default;opacity:.6;}
.omda-intake-choice.is-selected{border:2px solid var(--a);background:color-mix(in srgb,var(--a-bg) 60%,var(--card-solid));}

/* Summary tiles */
.omda-intake-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}
.omda-intake-tile{display:grid;gap:4px;min-width:0;padding:14px 16px;border-radius:14px;background:var(--surface);}
.omda-intake-tile__label{color:var(--text-2);font-size:13px;}
.omda-intake-tile__value{color:var(--text);font-size:17px;font-weight:700;overflow-wrap:anywhere;}
.omda-intake-tile__sub{color:var(--text-2);font-size:14px;}

/* Footer remaining */
.omda-intake-remaining{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--text-2);font-size:14px;font-weight:700;text-align:center;text-overflow:ellipsis;white-space:nowrap;}
.omda-intake-remaining.is-warn{color:var(--warn-text);}
.omda-intake-remaining.is-ok{color:var(--ok-text);}

@media (max-width:799.98px){
  .ncm.is-flow{width:calc(100vw - 20px);}
  .ncm.is-flow .ncm-hd{padding:12px 14px;}
  .ncm.is-flow .ncm-flow{order:2;padding:12px;}
  .ncm.is-flow .ncm-ft{order:3;position:static;padding:10px 12px;border-top:1px solid var(--line);border-bottom:0;background:var(--card-solid);}
  .ncm.is-flow .ncm-ft .btn{flex:1 1 0;min-width:0;padding-inline:12px;}
  .omda-intake-section{padding:16px;border-radius:16px;}
  .omda-intake-grid{grid-template-columns:1fr;}
  .omda-intake-plate .omda-intake-input{font-size:28px;}
  .omda-intake-remaining{display:none;}
}

/* -----------------------------------------------------------------
   Page-scroll frame + touch size (R3, 05.11.2026)
   The Terminal intake: header card (title row + nav.omda-stepper)
   sticks to the top of the host scroll owner, the footer to the
   bottom, the sections flow in the page scroll (no inner scroll box).
   Main keeps the .ncm.is-flow modal frame above.
   DOM:
   .omda-intake-flow.is-page[.is-large]
     > .omda-intake-flow__head
         > .omda-intake-flow__row > (div > .omda-intake-flow__eyebrow + .omda-intake-flow__title)
             + .omda-intake-flow__status + .btn
         + nav.omda-stepper
     > .omda-intake-flow__body > section.omda-intake-section ...
     > .omda-intake-flow__foot > .btn + .omda-intake-remaining + .btn
   .is-large = Terminal touch sizes (fields 56/18, plate 72/36).
   Host locks (scroll owner, top alignment) stay with the host shell.
   ----------------------------------------------------------------- */
.omda-intake-flow{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:min(100%,1180px);min-width:0;margin-inline:auto;}
.omda-intake-flow__head,
.omda-intake-flow__foot{border:1px solid var(--line);border-radius:18px;background:var(--card-solid);box-shadow:0 16px 36px rgba(15,23,42,.06);}
.omda-intake-flow__head{display:grid;gap:12px;min-width:0;padding:14px 18px;}
.omda-intake-flow__row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;}
.omda-intake-flow__eyebrow{color:var(--text-2);font-size:13px;font-weight:700;}
.omda-intake-flow__title{margin:4px 0 0;color:var(--text);font-size:clamp(22px,2.5vw,31px);line-height:1.25;}
.omda-intake-flow__status{flex:0 1 min(52%,560px);min-width:0;}
.omda-intake-flow__status:empty{display:none;}
.omda-intake-flow__body{display:grid;align-content:start;gap:14px;min-width:0;}
.omda-intake-flow__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;}
.omda-intake-flow__foot .btn{min-height:48px;padding-inline:22px;border-radius:14px;}

.omda-intake-flow.is-page > .omda-intake-flow__head{position:sticky;top:0;z-index:4;}
.omda-intake-flow.is-page > .omda-intake-flow__foot{position:sticky;bottom:0;z-index:4;}
/* Sticky edges stop at the scroll owner's padding: a ground band seals the strip. */
.omda-intake-flow.is-page > .omda-intake-flow__head::before,
.omda-intake-flow.is-page > .omda-intake-flow__foot::after{content:"";position:absolute;inset-inline:-2px;height:26px;background:var(--bg,var(--omda-bg));pointer-events:none;}
.omda-intake-flow.is-page > .omda-intake-flow__head::before{bottom:calc(100% + 1px);}
.omda-intake-flow.is-page > .omda-intake-flow__foot::after{top:calc(100% + 1px);}
.omda-intake-flow.is-page .omda-intake-section{scroll-margin-top:180px;}

/* Touch size */
.omda-intake-flow.is-large > .omda-intake-flow__body{gap:18px;}
.omda-intake-flow.is-large .omda-intake-section{gap:18px;padding:24px;border-radius:20px;box-shadow:0 2px 10px rgba(15,23,42,.05);}
.omda-intake-flow.is-large .omda-intake-section.is-current{box-shadow:0 0 0 1px var(--a);}
.omda-intake-flow.is-large .omda-intake-section.is-done,
.omda-intake-flow.is-large .omda-intake-section.is-next{padding-block:16px;}
.omda-intake-flow.is-large .omda-intake-section__num{width:40px;height:40px;border-radius:12px;font-size:15px;}
.omda-intake-flow.is-large .omda-intake-section__title{font-size:22px;}
.omda-intake-flow.is-large .omda-intake-section.is-next .omda-intake-section__title{font-size:17px;}
.omda-intake-flow.is-large .omda-intake-grid{gap:16px;}
.omda-intake-flow.is-large .omda-intake-input{min-height:56px;font-size:18px;}
.omda-intake-flow.is-large .omda-intake-input.is-key{font-size:20px;}
.omda-intake-flow.is-large .omda-intake-plate .omda-intake-input{min-height:72px;font-size:36px;}
.omda-intake-flow.is-large .omda-intake-plate .btn{min-height:72px;padding-inline:22px;border-radius:16px;}
.omda-intake-flow.is-large .omda-intake-choice{min-height:88px;padding:16px 18px;}
.omda-intake-flow.is-large .omda-intake-tiles{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.omda-intake-flow.is-large > .omda-intake-flow__foot .btn{min-height:52px;padding-inline:24px;}

@media (max-height:820px){
  .omda-intake-flow.is-page > .omda-intake-flow__head{gap:8px;padding:10px 14px;}
  .omda-intake-flow.is-page .omda-intake-flow__eyebrow{display:none;}
  .omda-intake-flow.is-page .omda-intake-flow__title{margin:0;font-size:20px;}
  .omda-intake-flow.is-page .omda-intake-section{scroll-margin-top:120px;}
}
@media (max-width:799.98px){
  .omda-intake-flow.is-large .omda-intake-section{padding:16px;border-radius:16px;}
  .omda-intake-flow.is-large .omda-intake-plate .omda-intake-input{font-size:30px;}
  .omda-intake-flow__foot .btn{flex:1 1 0;min-width:0;padding-inline:12px;}
}
/* END OMDA INTAKE FLOW v1 */
/* END OMDA INTAKE WIZARD PRIMITIVES v1 */

/* P121 | Canonical Hero identity rows, desktop/tablet */
@media (width >= 800px) {
  .omda-global-hero .omda-gh-identity-row {
    overflow:visible;
  }

  .omda-global-hero .omda-gh-identity-row--badges > .omda-gh-identity-badges,
  .omda-global-hero .omda-gh-identity-row--note > .omda-gh-note-badges {
    display:flex;
    flex-flow:row nowrap;
    align-items:center;
    flex:0 0 auto;
    width:max-content;
    max-width:none;
    overflow:visible;
  }

  .omda-global-hero .omda-gh-identity-row--badges > .omda-gh-identity-badges > *,
  .omda-global-hero .omda-gh-identity-row--note > .omda-gh-note-badges > * {
    flex:0 0 auto;
    white-space:nowrap;
  }
}
/* END P121 */

/* OMDA HERO P080 ACTION GRID EMPTY HOST FIX */
/* Zero-action native wrappers must not occupy a secondary GRID cell. */
/* Keep wrappers with live controls untouched to preserve original behavior. */
.omda-global-hero .omda-gh-secondary > :not(button):not(a):not(:has(button:not([hidden]),a:not([hidden]),[role="button"]:not([hidden]),input:not([hidden]),select:not([hidden])) {
  display:none;
}
/* END OMDA HERO P080 */

/* OMDA HERO P085 — identity Flex 50/50, confirmed in browser */
@media(width >= 800px){
.omda-global-hero .omda-gh-top > .omda-gh-identity{
 display:flex;flex-direction:column;align-self:stretch;height:100%;min-height:0;
 justify-content:flex-start;align-items:stretch;gap:0;min-width:0;
}
.omda-global-hero .omda-gh-identity > .omda-gh-heading{
 display:flex;flex-direction:row;align-items:center;align-self:stretch;
 flex:0 0 42%;height:42%;min-height:0;gap:12px;min-width:0;
}
.omda-global-hero .omda-gh-heading > .omda-gh-maker-logo{
 width:64px;height:64px;flex:0 0 64px;object-fit:contain;
}
.omda-global-hero .omda-gh-heading .omda-gh-naming{
 display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;
}
.omda-global-hero .omda-gh-heading .omda-gh-name{font-size:28px;font-weight:900;line-height:1.08}
.omda-global-hero .omda-gh-heading .omda-gh-model{font-size:22px;font-weight:800;line-height:1.1}
.omda-global-hero .omda-gh-identity > .omda-gh-info{
 display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;
 align-self:stretch;flex:0 0 58%;height:58%;min-height:0;gap:0;min-width:0;
}
.omda-global-hero .omda-gh-info > .omda-gh-meta{font-size:16px;line-height:1.2;gap:6px;flex-wrap:wrap}
.omda-global-hero .omda-gh-info .omda-gh-badge{font-size:13px;line-height:1.15}
.omda-global-hero .omda-gh-info > .omda-gh-identity-badges,
.omda-global-hero .omda-gh-info > .omda-gh-note-badges{
 display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0;
}
.omda-global-hero .omda-gh-info > .omda-gh-note{font-size:12px;line-height:1.15}
}
@media(width >= 800px) and (max-width:1200px){
 .omda-global-hero .omda-gh-heading .omda-gh-name{font-size:clamp(20px,2.5vw,26px)}
 .omda-global-hero .omda-gh-heading .omda-gh-model{font-size:clamp(17px,2vw,21px)}
 .omda-global-hero .omda-gh-heading > .omda-gh-maker-logo{width:58px;height:58px;flex-basis:58px}
 .omda-global-hero .omda-gh-info > .omda-gh-meta{font-size:clamp(12px,1.5vw,15px)}
}
/* END OMDA HERO P085 */


/* OMDA HERO P089 — shared verification proportions (Main + Terminal) */

.omda-global-hero .omda-gh-verification {
  display: flex;
  align-items: center;
  gap: 0;
  min-width: 0;
}

.omda-global-hero .omda-gh-verification-grid {
  display: grid;
  grid-template-columns: minmax(0,45fr) minmax(0,30fr) minmax(0,25fr);
  align-items: center;
  flex: 1 1 100%;
  width: 100%;
  gap: 0;
  min-width: 0;
}

.omda-global-hero .omda-gh-verification--editable
.omda-gh-verification-grid {
  grid-template-columns: minmax(0,42fr) minmax(0,28fr) minmax(0,18fr);
  flex: 1 1 88%;
  width: 88%;
}

.omda-global-hero .omda-gh-field {
  padding-inline: 6px;
  min-width: 0;
  gap: 3px;
}

.omda-global-hero .omda-gh-field:first-child {
  padding-inline-start: 0;
}

.omda-global-hero .omda-gh-field-label {
  font-family: var(--omda-font-ui, "Rubik", sans-serif);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.15;
}

.omda-global-hero .omda-gh-field-value {
  font-family: var(--omda-font-mono, "JetBrains Mono", monospace);
  font-size: clamp(13px, 1.3vw, 18px);
  font-weight: 400;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: normal;
}

.omda-global-hero .omda-gh-field-row {
  gap: 4px;
}

.omda-global-hero .omda-gh-verification--editable .omda-gh-edit {
  flex: 0 0 12%;
  width: 12%;
  min-width: 32px;
  max-width: 54px;
  margin: 0;
  align-self: center;
}

@media (width >= 800px) and (max-width:1200px) {
  .omda-global-hero .omda-gh-field-value {
    font-size: clamp(13px, 1.55vw, 16px);
  }
}

@media (width < 800px) {
  .omda-global-hero .omda-gh-verification-grid,
  .omda-global-hero .omda-gh-verification--editable
  .omda-gh-verification-grid {
    grid-template-columns: minmax(0,1fr);
    width: 100%;
    flex: 1 1 100%;
    gap: 10px;
  }

  .omda-global-hero .omda-gh-field {
    padding-inline: 0;
  }

  .omda-global-hero .omda-gh-field-value {
    font-size: 16px;
  }

  .omda-global-hero .omda-gh-verification {
    flex-wrap: wrap;
    gap: 8px;
  }

  .omda-global-hero .omda-gh-verification--editable .omda-gh-edit {
    flex: 0 0 40px;
    width: 40px;
    min-width: 40px;
    margin-inline-start: auto;
  }
}

/* END OMDA HERO P089 */

/* OMDA HERO P098 — PRIMARY + CONTEXTUAL MORE INLINE */
/* Layout-only. Native actions, event handlers, conditions and secondary row remain unchanged. */
.omda-global-hero .omda-gh-primary-actions > .case-state-actions {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.omda-global-hero .omda-gh-primary-actions > .case-state-actions > button:not([hidden]) {
  display: inline-flex;
  flex: 1 1 0;
  width: auto;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  align-items: center;
  justify-content: center;
}
.omda-global-hero .omda-gh-primary-actions > .case-state-actions > .case-actions-more {
  display: flex;
  flex: 0 0 40px;
  width: 40px;
  max-width: 40px;
  min-width: 40px;
  align-items: stretch;
  justify-content: center;
  margin: 0;
  position: relative;
}
.omda-global-hero .omda-gh-primary-actions > .case-state-actions > .case-actions-more > :is(button, .omda-row-actions-wrap) {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.omda-global-hero .omda-gh-primary-actions > .case-state-actions > .case-actions-more[hidden] {
  display: none;
}
/* END OMDA HERO P098 */

/* OMDA HERO P099 — contextual more + lone report share the existing primary width. */
.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more {
  display:flex; flex-direction:row; align-items:stretch; gap:8px; width:100%; min-width:0;
}
.omda-global-hero .omda-gh-primary-actions--inline-more > .case-state-actions {
  display:flex; flex:0 0 40px; width:40px; max-width:40px; min-width:40px;
}
.omda-global-hero .omda-gh-primary-actions--inline-more > .case-state-actions:not(:has(.case-actions-more)) {
  display:none;
}
.omda-global-hero .omda-gh-primary-actions--inline-more > .case-state-actions > .case-actions-more {
  flex:0 0 40px; width:40px; max-width:40px; min-width:40px;
}
.omda-global-hero .omda-gh-primary-actions--inline-more > #reportActionBtn {
  display:inline-flex; flex:1 1 0; width:auto; max-width:100%; min-width:0;
  align-items:center; justify-content:center; margin:0;
}
/* END OMDA HERO P099 */



/* OMDA HERO P103 - CANONICAL INLINE ACTION ROW */
.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  min-width: 0;
}

.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more > .case-state-actions {
  display: flex;
  flex: 0 0 40px;
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  padding: 0;
  margin: 0;
}

.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more > .case-state-actions > .case-actions-more {
  display: flex;
  width: 100%;
  height: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more .case-actions-more > .omda-row-actions-wrap,
.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more .case-actions-more .omda-row-actions-btn {
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  align-items: center;
  justify-content: center;
}

.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more > button:not([hidden]) {
  display: flex;
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  align-items: center;
  justify-content: center;
}
/* END OMDA HERO P103 */



/* OMDA HERO P104 - CONSOLE VERIFIED */
.omda-global-hero .omda-gh-primary-actions.omda-gh-primary-actions--inline-more {
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:8px;
}
.omda-global-hero .omda-gh-primary-actions--inline-more > .case-state-actions {
  display:flex;
  flex:0 0 40px;
  width:40px;
  min-width:40px;
  max-width:40px;
  margin:0;
  padding:0;
}
.omda-global-hero .omda-gh-primary-actions--inline-more > .case-state-actions > .case-actions-more,
.omda-global-hero .omda-gh-primary-actions--inline-more .case-actions-more > .omda-row-actions-wrap,
.omda-global-hero .omda-gh-primary-actions--inline-more .case-actions-more .omda-row-actions-btn {
  display:flex;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  margin:0;
  align-items:center;
  justify-content:center;
}
.omda-global-hero .omda-gh-primary-actions--inline-more > button:not([hidden]):not(.state-hidden) {
  display:flex;
  flex:1 1 0;
  width:auto;
  min-width:0;
  max-width:none;
  margin:0;
  align-items:center;
  justify-content:center;
}
/* END OMDA HERO P104 */


/* OMDA HERO P105 - VERIFIED EXACT SELECTOR */
.omda-global-hero .omda-gh-actions > .omda-gh-primary-actions.omda-gh-primary-actions--inline-more {
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:stretch;
  justify-content:flex-start;
  gap:8px;
  width:100%;
  min-width:0;
}
.omda-global-hero .omda-gh-actions > .omda-gh-primary-actions--inline-more > .case-state-actions {
  display:flex;
  flex:0 0 40px;
  width:40px;
  min-width:40px;
  max-width:40px;
  margin:0;
  padding:0;
}
.omda-global-hero .omda-gh-actions > .omda-gh-primary-actions--inline-more .case-actions-more,
.omda-global-hero .omda-gh-actions > .omda-gh-primary-actions--inline-more .omda-row-actions-wrap,
.omda-global-hero .omda-gh-actions > .omda-gh-primary-actions--inline-more .omda-row-actions-btn {
  display:flex;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  max-width:none;
  margin:0;
  align-items:center;
  justify-content:center;
}
.omda-global-hero .omda-gh-actions > .omda-gh-primary-actions--inline-more > button:not([hidden]):not(.state-hidden) {
  display:flex;
  flex:1 1 0;
  width:auto;
  min-width:0;
  max-width:none;
  margin:0;
  align-items:center;
  justify-content:center;
}
/* END OMDA HERO P105 */
