/* ============================================================================
   MCRUSH PE — Premium enhancement layer (additive, token-aware)
   Loaded after the app's own styles. Uses existing CSS variables so it stays
   correct across every theme (light / dark / accent). Safe to remove: delete
   the two include lines in index.html.
   ============================================================================ */

/* ---- 1. Global rendering refinements -------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1, "cv01" 1, "ss01" 1;
  letter-spacing: -0.011em;            /* subtle optical tightening */
}
* { -webkit-tap-highlight-color: transparent; }
::selection { background: color-mix(in srgb, var(--wf-engineering, #8a5cff) 26%, transparent); }

/* refined, unobtrusive scrollbars (desktop) */
@media (hover:hover) and (pointer:fine) {
  * { scrollbar-width: thin; scrollbar-color: var(--line, #c9c9c9) transparent; }
  *::-webkit-scrollbar { width: 10px; height: 10px; }
  *::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--ink, #000) 18%, transparent);
    border: 3px solid transparent; border-radius: 999px; background-clip: content-box;
  }
  *::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--ink,#000) 30%, transparent); background-clip: content-box; }
  *::-webkit-scrollbar-track { background: transparent; }
}

/* ---- 2. Headings: quiet Apple-like hierarchy ------------------------------ */
h1, .psel-title, .insight-title { letter-spacing: -0.022em; }
h2, h3 { letter-spacing: -0.017em; }

/* ---- 3. Elevated, layered depth on card surfaces -------------------------- */
.card, .psel-card, .insight-card, .viz-card, .access-card, .login-card {
  transition: transform var(--mc-dur,.2s) var(--mc-ease, cubic-bezier(.22,.68,.36,.98)),
              box-shadow var(--mc-dur,.2s) var(--mc-ease, cubic-bezier(.22,.68,.36,.98)),
              border-color var(--mc-dur,.2s) ease;
  will-change: transform;
}
/* soft, layered elevation — reads as physical depth, not a hard drop shadow */
.card, .insight-card, .viz-card {
  box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 6px 16px -6px rgba(0,0,0,.10);
}
@media (hover:hover) and (pointer:fine) {
  .psel-card:hover, .insight-card:hover, .viz-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 2px 6px rgba(0,0,0,.06), 0 22px 40px -18px rgba(0,0,0,.28);
    border-color: color-mix(in srgb, var(--wf-engineering,#8a5cff) 30%, var(--panel-line, rgba(0,0,0,.12)));
  }
}

/* ---- 4. Buttons: tactile, precise, delightful ----------------------------- */
button, .btn, .ac-btn, .tc-next, .tc-back {
  transition: transform .14s var(--mc-ease, cubic-bezier(.22,.68,.36,.98)),
              box-shadow .18s ease, filter .18s ease, background-color .18s ease;
}
button:active, .btn:active, .ac-btn:active, .psel-card:active { transform: scale(.972); }
@media (hover:hover) and (pointer:fine) {
  .btn:hover, .ac-btn:hover { filter: brightness(1.04) saturate(1.02); }
  .btn.primary:hover, .login-cta:hover { box-shadow: 0 10px 24px -8px color-mix(in srgb, var(--ink,#000) 55%, transparent); }
}
/* primary buttons get a whisper of top-light sheen for material feel */
.btn.primary, .login-cta {
  background-image: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0) 42%);
}

/* ---- 5. Accessible, on-brand focus rings (keyboard only) ------------------ */
:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--wf-engineering,#8a5cff) 70%, transparent);
  outline-offset: 2px; border-radius: 6px;
}
button:focus:not(:focus-visible), a:focus:not(:focus-visible) { outline: none; }

/* ---- 6. Inputs & selects: calm, modern focus ------------------------------ */
input, select, textarea {
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
input:focus, select:focus, textarea:focus {
  border-color: color-mix(in srgb, var(--wf-engineering,#8a5cff) 55%, var(--line,#c9c9c9)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--wf-engineering,#8a5cff) 16%, transparent);
  outline: none;
}

/* ---- 7. "Magic": entrance reveal for cards (JS adds .mc-reveal) ------------ */
@media (prefers-reduced-motion: no-preference) {
  .mc-reveal { opacity: 0; transform: translateY(10px) scale(.995); }
  .mc-reveal.mc-in {
    opacity: 1; transform: none;
    transition: opacity .5s var(--mc-ease, cubic-bezier(.22,.68,.36,.98)),
                transform .5s var(--mc-ease, cubic-bezier(.22,.68,.36,.98));
  }
}

/* ---- 8. Mobile: touch ergonomics + native-app finish ---------------------- */
@media (max-width: 720px) {
  /* generous, thumb-friendly hit targets */
  .btn, .ac-btn, button { min-height: 44px; }
  /* momentum + no rubber-band flash */
  body, .scroll, [class*=scroll] { -webkit-overflow-scrolling: touch; }
  /* bottom tab bar: frosted glass + safe-area, floats above content */
  .tnav {
    backdrop-filter: saturate(1.4) blur(18px); -webkit-backdrop-filter: saturate(1.4) blur(18px);
    background: color-mix(in srgb, var(--card,#fff) 82%, transparent) !important;
    border-top: 1px solid var(--panel-line, rgba(0,0,0,.10));
    padding-bottom: max(6px, var(--safe-bottom, 0px));
    box-shadow: 0 -8px 24px -16px rgba(0,0,0,.4);
  }
  .tnav [class*=active], .tnav .active { transition: color var(--mc-dur,.2s) var(--mc-ease); }
  /* headline sizing feels intentional, not shrunk */
  h1, .psel-title { line-height: 1.08; }
}

/* ---- 10. EOWR GENERATE FLOW — make the build feel alive ------------------- */
/* Step rail: momentum scroll with soft fade edges so it reads as a premium,
   swipeable strip instead of a plain overflow row. */
.eow-rail {
  scroll-behavior: smooth; -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%);
}
.eow-rail::-webkit-scrollbar { height: 0; }
.eow-chip {
  scroll-snap-align: center;
  transition: transform var(--mc-dur,.2s) var(--mc-ease, cubic-bezier(.22,.68,.36,.98)),
              box-shadow var(--mc-dur,.2s) var(--mc-ease), background-color var(--mc-dur,.2s) ease,
              border-color var(--mc-dur,.2s) ease, color var(--mc-dur,.2s) ease;
}
@media (hover:hover) and (pointer:fine) { .eow-chip:hover { transform: translateY(-1px); } }
.eow-chip:active { transform: scale(.96); }
/* the CURRENT step pops: accent ring + gentle glow + lift */
.eow-chip.active {
  transform: translateY(-1px);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--wf-engineering,#8a5cff) 62%, transparent),
              0 10px 22px -10px color-mix(in srgb, var(--wf-engineering,#8a5cff) 60%, transparent);
}
/* completed steps carry a quiet green confidence tint */
.eow-chip.done {
  border-color: color-mix(in srgb, var(--wf-libraries,#1f9d57) 40%, var(--line,#c9c9c9)) !important;
}

/* Progress bar: animated gradient fill with a soft accent glow. */
.eow-prog {
  overflow: hidden; border-radius: 999px;
  background: color-mix(in srgb, var(--ink,#000) 8%, transparent);
}
.eow-prog > * , .eow-prog::-webkit-progress-value, .eow-prog::before {
  transition: width .5s var(--mc-ease, cubic-bezier(.22,.68,.36,.98));
}
.eow-prog [style*="width"], .eow-prog > div {
  background-image: linear-gradient(90deg,
     color-mix(in srgb, var(--wf-engineering,#8a5cff) 92%, #000),
     var(--wf-engineering,#8a5cff));
  box-shadow: 0 0 12px -2px color-mix(in srgb, var(--wf-engineering,#8a5cff) 70%, transparent);
}

/* Section toggles: calm rows that respond to touch/hover, brand-tinted checks. */
.rep-sec {
  border-radius: 10px; padding: 4px 8px; margin: -2px -8px;
  transition: background-color .16s ease;
}
@media (hover:hover) and (pointer:fine) {
  .rep-sec:hover { background: color-mix(in srgb, var(--wf-engineering,#8a5cff) 8%, transparent); }
}
.rep-sec input[type=checkbox], .card input[type=checkbox] {
  accent-color: var(--wf-engineering,#8a5cff);
  width: 17px; height: 17px; cursor: pointer;
}
@media (max-width: 720px) { .rep-sec { padding: 9px 8px; } }  /* bigger tap rows on phone */

/* The generated-report result gets a satisfying entrance (JS adds .mc-pop). */
@media (prefers-reduced-motion: no-preference) {
  .mc-pop { animation: mcPop .55s var(--mc-ease, cubic-bezier(.22,.68,.36,.98)) both; }
  @keyframes mcPop { from { opacity:0; transform: translateY(14px) scale(.985); } to { opacity:1; transform:none; } }
}

/* ---- 11. TOUCH & TABLET ERGONOMICS — comfortable targets everywhere ------ */
/* Applies to narrow screens AND any touch device (phones + tablets, portrait
   or landscape). Forces the Apple/Material 44px minimum so nothing feels tiny.
   Uses !important deliberately: this is ergonomics, identical across themes. */
@media (max-width: 1024px), (pointer: coarse) {

  /* Text fields & dropdowns: real height + 16px text (stops iOS zoom-on-focus) */
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
  select, textarea, .select {
    font-size: 16px !important;
    min-height: 44px !important;
    padding-top: 10px !important; padding-bottom: 10px !important;
    border-radius: 12px !important;
  }
  select, select.select { height: 44px !important; line-height: 1.25 !important; padding-right: 38px !important; }

  /* Genuine action / nav buttons get the 44px minimum. Decorative pills, color
     swatches and toggles are intentionally left at their designed size so they
     never stretch into ovals. */
  .btn.primary, .login-cta, .tc-next, .tc-back, .ac-btn, .mm-item, summary, button.primary {
    min-height: 44px !important;
  }
  .menu-btn, .ih-x, .ih-btn, .pw-eye, [aria-label*="close" i], [aria-label*="menu" i] {
    min-width: 44px !important; min-height: 44px !important;
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
  }
  /* keep small round controls exactly as designed (theme swatches etc.) */
  .psel-sw, [class*=swatch], [class*=-dot], [class*=dot-] { min-height: 0 !important; }

  /* Checkboxes & radios: hittable, brand-agnostic (keeps theme's accent) */
  input[type=checkbox], input[type=radio] {
    width: 22px !important; height: 22px !important; min-height: 0 !important; flex: 0 0 auto;
  }

  /* Section toggle rows: whole row is a tall, easy target */
  .rep-sec {
    min-height: 44px !important; display: flex !important; align-items: center !important;
    gap: 12px !important; padding: 8px 10px !important; margin: 0 -10px !important;
  }

  /* Step chips: taller, roomier, easy to swipe/tap */
  .eow-chip { min-height: 42px !important; padding-top: 9px !important; padding-bottom: 9px !important; }

  /* Menu / dropdown list items: generous rows */
  .mm-item, [role=menuitem], [class*=menu] li, [class*=dropdown] li {
    min-height: 46px !important; display: flex !important; align-items: center !important;
  }

  /* Icons read a touch larger so controls don't feel lost */
  .btn svg, button svg, .mm-item svg, [class*=ico] svg { width: 19px; height: 19px; }
  summary { display: flex !important; align-items: center !important; gap: 8px; }

  /* Comfortable rhythm: a little more air between stacked controls */
  .rep-sec + .rep-sec { margin-top: 2px !important; }
}

/* ---- 12. Tablet: use the extra width as a real 2-up layout ---------------- */
@media (min-width: 700px) and (max-width: 1024px) {
  /* keep generous type; avoid desktop-dense cramming on iPad */
  body { font-size: 16px; }
  .card { border-radius: 18px; }
}

/* ---- 9. Honor reduced motion globally ------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ---- 13. ENGINEERING ATELIER — one product language, three environments --- */
:root {
  --mc-serif: "Iowan Old Style", "Palatino Linotype", Baskerville, Georgia, serif;
  --mc-sans: "Geist Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mc-mono: "Geist Mono", "SFMono-Regular", Consolas, monospace;
  --mc-bronze: var(--accent2, #a77a34);
}
body {
  font-family:var(--mc-sans); font-size:15px; font-weight:400; line-height:1.5;
  background:var(--bg); color:var(--ink); font-variant-numeric:proportional-nums;
}
button,input,select,textarea { font-family:var(--mc-sans); }
body::before {
  background:
    radial-gradient(900px 560px at 92% -8%, color-mix(in srgb, var(--blue) 8%, transparent), transparent 62%),
    linear-gradient(180deg, var(--bg2), var(--bg) 48%);
}
body::after { opacity:.52; background-size:72px 72px; }

/* Masthead: the emblem stands alone; the company name remains in the footer. */
#appNav .inner { width:100%; max-width:1440px; }
#appNav .brand-text { display:none !important; }
#appNav .brand-link { min-width:42px; padding:0; }
#appNav .app-founder-mark { border:1px solid color-mix(in srgb,var(--ink) 28%,transparent); box-shadow:none; }
#appNav::after {
  content:"01001101 01010000 01000100  /  SOURCE → MODEL → DECISION";
  position:absolute; left:max(72px,calc((100vw - 1440px)/2 + 72px)); bottom:3px;
  color:color-mix(in srgb,var(--ink) 24%,transparent); font:8px var(--mc-mono);
  letter-spacing:.18em; pointer-events:none; white-space:nowrap;
}
.nav { background:var(--panel); border-bottom:1px solid var(--panel-line); box-shadow:none; }

/* Editorial hierarchy: serif decisions, mono evidence labels, sans controls. */
h1,h2,.psel-h1,.ws-hero h1,.summary h1,.insight-title {
  font-family:var(--mc-serif); font-weight:400 !important; letter-spacing:-.045em;
  color:var(--ink); background:none; -webkit-background-clip:initial; background-clip:initial;
}
.section-label,.eyebrow,.psel-brand,.hw-section-kicker,.card-kicker,.cmd .k,.stat .k,
.landing-kicker,.rep-sec-title,.hw-step-l,.eow-chip small {
  font-family:var(--mc-mono); text-transform:uppercase; letter-spacing:.12em;
}

/* Surfaces use fine rules and material contrast instead of glass or glow. */
.card,.mod,.prod-card,.psel-card-in,.insight-card,.viz-card,.access-card,
.hw-panel,.hw-card,.hw-group,.fnd-card,.vdp-card,.cp-table,.modal,.mc-modal {
  border-radius:3px !important; border-color:var(--line) !important;
  background:var(--card); box-shadow:var(--shadow-sm);
}
.card::before { box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 6%,transparent); }
.card:hover,.mod:hover,.prod-card:hover,.psel-card:hover,.insight-card:hover,.viz-card:hover {
  border-color:color-mix(in srgb,var(--blue) 62%,var(--line)) !important;
  box-shadow:0 12px 28px -20px color-mix(in srgb,var(--ink) 45%,transparent);
}
.psel-card,.psel-card-in { transform:none; }
.psel-card:hover { transform:translateY(-3px); }
.psel-card-in::before,.psel-glow { opacity:.14; }
.psel-bg span { opacity:.13; filter:blur(110px); }
.psel-bg span:nth-child(1) { background:var(--blue); }
.psel-bg span:nth-child(2) { background:var(--mc-bronze); }
.psel-bg span:nth-child(3) { background:color-mix(in srgb,var(--blue) 45%,var(--bg)); }
.psel-h1 { font-size:clamp(40px,5vw,68px); line-height:.98; text-wrap:balance; }
.psel-brand { color:var(--blue); }
.psel-pills span,.chip,.pill,.pc-status,.pc-sec { border-radius:999px; }
.psel-sw {
  width:30px; height:30px; min-width:30px; min-height:30px; border-radius:50%;
  background:var(--sw); border:2px solid var(--card);
  box-shadow:0 2px 9px color-mix(in srgb,var(--ink) 20%,transparent),0 0 0 1px color-mix(in srgb,var(--ink) 24%,transparent);
}
.psel-sw:hover { transform:translateY(-1px) scale(1.08); }
.psel-sw.on { box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--blue),0 5px 14px color-mix(in srgb,var(--blue) 24%,transparent); }

/* Module banners become editorial title plates; illustrations remain a trace. */
.scene-banner { min-height:118px; border-radius:3px; background:var(--card); border-color:var(--line); box-shadow:var(--shadow-sm); }
.scene-banner svg { opacity:.08; filter:grayscale(1) contrast(1.15); }
.scene-banner::after { background:linear-gradient(90deg,var(--card) 0 48%,color-mix(in srgb,var(--card) 82%,transparent) 72%,transparent); }
.scene-banner .cap { color:var(--ink); text-shadow:none; }
.scene-banner .cap .eyebrow { color:var(--blue); }
.scene-banner .cap h2 { font-family:var(--mc-serif); font-weight:400; letter-spacing:-.035em; }
.scene-banner .cap p { color:var(--muted); }

/* Controls: precise, quiet and consistent across every module. */
.btn,.back,.theme-btn,.guide-btn,.ac-btn,.tc-next,.tc-back,.ht-exit,.ht-pill,
.hw-action,.eow-action,.menu-btn,.mm-item {
  border-radius:2px !important; box-shadow:none !important;
}
.btn,.back,.theme-btn,.guide-btn,.ac-btn,.tc-next,.tc-back,.ht-exit,.ht-pill,
.hw-action,.eow-action,.menu-btn,.mm-item { font-weight:600; letter-spacing:-.005em; }
.btn.primary,.login-cta {
  background:var(--ink) !important; color:var(--bg) !important; border:1px solid var(--ink) !important;
  background-image:none !important;
}
.btn.primary:hover,.login-cta:hover { background:var(--blue) !important; color:#fff !important; border-color:var(--blue) !important; }
.btn.secondary,.back,.theme-btn,.guide-btn { background:transparent; border-color:var(--line); }
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
select,textarea,.select,.emailbox {
  border-radius:2px !important; background:var(--soft) !important; border-color:var(--line) !important;
}
input:focus,select:focus,textarea:focus { border-color:var(--blue) !important; box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 16%,transparent) !important; }

/* Data presentation: strong headers, fine row rules, stable numeric rhythm. */
table,table.dt,.cp-table { border-color:var(--line); }
table th,table.dt th,.cp-table th {
  font-family:var(--mc-mono); text-transform:uppercase; letter-spacing:.06em;
  font-weight:600; background:var(--soft); color:var(--muted); border-color:var(--line);
}
table td,table.dt td,.cp-table td { border-color:color-mix(in srgb,var(--line) 72%,transparent); font-variant-numeric:tabular-nums; }
.stat,.cmd,.trow { border-radius:2px; background:var(--card); border-color:var(--line); box-shadow:none; }
.cmd .v,.stat .v,.hw-num,.mono,.num,input[type="number"] { font-family:var(--mc-mono); font-variant-numeric:tabular-nums slashed-zero; }

/* Hydraulics and report workspaces inherit the same architecture. */
.hydro-moderail,.hydro-tree,.hydro-topbar,.hw-wsbar,.hw-sheet-handle {
  background:var(--card); border-color:var(--line); box-shadow:none;
}
.mr-item,.hs-nav,.hw-workspace-tabs button,.eow-chip,.hw-tab { border-radius:2px !important; }
.mr-item.active,.hs-nav.active,.hw-workspace-tabs button.active,.hw-tab.active {
  color:var(--blue); background:color-mix(in srgb,var(--blue) 10%,transparent);
  box-shadow:inset 2px 0 0 var(--blue);
}
.hydro-topbar { border-bottom-width:1px; }
.preview { border-radius:2px; box-shadow:0 18px 50px rgba(0,0,0,.18); }
.eow-prog { border-radius:0; height:2px; }
.eow-chip.active { box-shadow:inset 0 -2px 0 var(--blue); }

/* Theme selector returns to the original circular atelier swatches. */
.theme-menu { min-width:278px; padding:9px; border-radius:12px; background:var(--card); }
.theme-menu-title { padding:7px 10px 9px; color:var(--muted); font:10px var(--mc-mono); letter-spacing:.14em; text-transform:uppercase; }
.theme-opt { align-items:center; min-height:52px; border-radius:9px; border:1px solid transparent; }
.theme-opt.sel { outline:0; border-color:var(--blue); background:color-mix(in srgb,var(--blue) 7%,transparent); }
.theme-opt .sw { width:18px; height:18px; flex:none; border-radius:50%; border:2px solid var(--card); box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 28%,transparent); }
.theme-opt>span:last-child { display:grid; gap:3px; }
.theme-opt b { font-size:13px; font-weight:600; letter-spacing:-.01em; }
.theme-opt small { color:var(--muted); font-size:10.5px; }
.mm-themes { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.mm-theme { border-radius:9px; min-width:0; padding-inline:8px; }
.mm-theme .sw,.theme-swatch {
  width:18px; height:18px; min-width:18px; border-radius:50%;
  border:2px solid var(--card); box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 28%,transparent);
}
.mm-theme.sel .sw { box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--blue); }

/* Build 1015 — app-wide Theme Studio with a viewport-safe compact home strip. */
.theme-menu {
  width:min(620px,calc(100vw - 28px)); min-width:0; padding:0; overflow:hidden;
  border-radius:16px; background:color-mix(in srgb,var(--card) 94%,transparent);
  backdrop-filter:blur(24px) saturate(135%); -webkit-backdrop-filter:blur(24px) saturate(135%);
  box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 1px 0 color-mix(in srgb,var(--ink) 8%,transparent);
}
.theme-studio{width:100%;padding:14px;color:var(--ink)}
.mm-themes{display:block!important}
.ts-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 1px 12px}
.ts-head>span{display:grid;gap:1px}.ts-head small{color:var(--muted);font:700 8px var(--mc-mono);letter-spacing:.16em;text-transform:uppercase}
.ts-head b{font-size:17px;font-weight:720;letter-spacing:-.025em}.ts-head>em{padding:5px 9px;border:1px solid color-mix(in srgb,var(--blue) 38%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--blue) 9%,transparent);color:var(--blue);font:700 9px var(--mc-mono);font-style:normal;text-transform:uppercase;letter-spacing:.08em}
.ts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ts-choice{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr) 18px;align-items:center;gap:10px;min-width:0;padding:9px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:12px;background:color-mix(in srgb,var(--card) 78%,transparent);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s}
.ts-choice:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--ts-ac) 58%,var(--line));box-shadow:0 10px 24px -18px var(--ts-ac)}
.ts-choice.on{border-color:var(--ts-ac);background:color-mix(in srgb,var(--ts-ac) 8%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ts-ac) 22%,transparent),0 8px 22px -18px var(--ts-ac)}
.ts-choice:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ts-preview{position:relative;display:block;width:104px;height:60px;overflow:hidden;border:1px solid color-mix(in srgb,var(--ts-ac) 28%,#777);border-radius:8px;background:var(--ts-bg);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.ts-preview i{position:absolute;display:block}.ts-bar{left:0;right:0;top:0;height:8px;background:color-mix(in srgb,var(--ts-card) 82%,var(--ts-ac))}.ts-rail{left:0;top:8px;bottom:0;width:12px;background:color-mix(in srgb,var(--ts-bg) 82%,var(--ts-ac))}.ts-panel{left:17px;right:5px;top:13px;bottom:5px;border:1px solid color-mix(in srgb,var(--ts-ac) 28%,transparent);border-radius:4px;background:var(--ts-card)}
.ts-gridline{left:23px;right:10px;height:1px;background:color-mix(in srgb,var(--ts-ac) 16%,transparent)}.ts-gridline.a{top:27px}.ts-gridline.b{top:43px}.ts-curve{height:2px;transform-origin:left;border-radius:4px}.ts-curve.a{left:27px;top:43px;width:55px;background:var(--ts-ac);transform:rotate(-18deg)}.ts-curve.b{left:34px;top:24px;width:48px;background:var(--ts-sig);transform:rotate(13deg)}
.ts-copy{display:grid;gap:3px;min-width:0}.ts-copy>span:first-child{display:flex;align-items:center;gap:7px;min-width:0}.ts-copy b{font-size:13px;font-weight:760;letter-spacing:-.015em}.ts-copy em{font:700 7.5px var(--mc-mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.ts-copy small{overflow:hidden;color:var(--muted);font-size:9.5px;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}
.ts-palette{display:flex!important;gap:3px!important;margin-top:2px}.ts-palette i{display:block;width:11px;height:3px;border-radius:99px;box-shadow:0 0 0 1px rgba(128,128,128,.16)}
.ts-check{display:grid;width:17px;height:17px;place-items:center;border-radius:50%;background:var(--ts-ac);color:#fff;font-size:10px;font-style:normal;opacity:0;transform:scale(.72);transition:.18s}.ts-choice.on .ts-check{opacity:1;transform:scale(1)}
.theme-studio footer{display:flex;justify-content:center;gap:16px;margin-top:10px;color:var(--muted);font:600 8px var(--mc-mono);letter-spacing:.035em}.theme-studio footer span{display:flex;align-items:center;gap:5px}.theme-studio footer span::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--green)}
.ts-home{width:min(960px,100%);margin:14px auto 0;padding:9px 10px;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:14px;background:color-mix(in srgb,var(--card) 67%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.ts-home .ts-head{align-items:center;margin:0 2px 7px}.ts-home .ts-head b{font-size:14px}.ts-home .ts-head small{font-size:7px}.ts-home .ts-head>em{padding:3px 7px;font-size:7.5px}
.ts-home .ts-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.ts-home .ts-choice{grid-template-columns:58px minmax(0,1fr) 14px;align-items:center;gap:7px;padding:6px;border-radius:10px}.ts-home .ts-preview{grid-column:1;width:58px;height:42px}.ts-home .ts-copy{grid-column:2;gap:1px}.ts-home .ts-copy b{font-size:11px}.ts-home .ts-copy em{font-size:6.5px}.ts-home .ts-copy small{font-size:8px}.ts-home .ts-palette{margin-top:1px}.ts-home .ts-palette i{width:8px;height:2px}.ts-home .ts-check{grid-column:3;grid-row:1;width:14px;height:14px;font-size:8px}.ts-home footer{display:none}
.ts-mobile{padding:0}.ts-mobile .ts-head{margin-top:2px}.ts-mobile .ts-grid{grid-template-columns:1fr}.ts-mobile .ts-choice{grid-template-columns:76px minmax(0,1fr) 18px}.ts-mobile .ts-preview{width:76px;height:48px}.ts-mobile .ts-copy small{white-space:normal}.ts-mobile footer{display:none}
.acc-theme-panel{padding:0!important;overflow:hidden}.ts-account{padding:14px}.ts-account .ts-grid{grid-template-columns:1fr}.ts-account footer{flex-wrap:wrap;gap:7px 12px}
@media (min-width:601px) and (max-width:900px){.ts-home .ts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-home .ts-choice:last-child{grid-column:1/-1}}
@media(max-width:600px){.theme-menu{right:7px!important;width:calc(100vw - 14px)}.theme-studio{padding:10px}.ts-grid,.ts-home .ts-grid{grid-template-columns:1fr}.ts-choice,.ts-home .ts-choice{grid-template-columns:72px minmax(0,1fr) 16px;align-items:center;padding:6px}.ts-preview,.ts-home .ts-preview{grid-column:1;width:72px;height:44px}.ts-home .ts-copy{grid-column:2}.ts-home .ts-copy b{font-size:12px}.ts-home .ts-copy small{font-size:8.5px}.ts-home .ts-check{grid-column:3;grid-row:1}.theme-studio footer{display:none}.ts-home{margin-top:12px}.ts-head b{font-size:15px}}

/* Short desktop/tablet viewports keep the complete decision page and Sign out in view. */
@media (min-width:861px) and (max-height:900px){
  #productSelect{padding-block:18px}
  .psel-head{margin-bottom:18px}
  .psel-card-in{min-height:248px;padding:20px 22px}
  .psel-ic,.picon{width:48px;height:48px}
  .psel-tag{margin-top:12px}.psel-desc{margin-top:7px;line-height:1.45}
  .psel-pills{margin-top:10px}.psel-foot{margin-top:10px;padding-top:10px}
  .ts-home{margin-top:10px}
  .psel-signwrap{margin-top:10px;padding-top:9px}
}

/* Login carries the active environment without changing authentication. */
.login-screen { background:var(--bg); color:var(--ink); align-items:flex-start; }
.login-screen::before { opacity:.55; background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px); background-size:72px 72px; }
.login-card { margin:auto; padding:24px 28px; border-radius:3px; background:color-mix(in srgb,var(--card) 94%,transparent); border-color:var(--line); box-shadow:0 24px 70px rgba(0,0,0,.2); }
.login-title { color:var(--ink) !important; background:none !important; -webkit-text-fill-color:currentColor; font-family:var(--mc-serif); font-weight:400; letter-spacing:-.05em; }
.login-title span { color:var(--blue); }
.login-theme-picker { display:flex; align-items:center; justify-content:center; gap:18px; margin:10px 0 18px; border:0; background:transparent; }
.login-theme-picker button {
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:7px;
  min-height:32px; padding:4px 2px; border:0; border-radius:0 !important;
  background:transparent; color:var(--muted); font:500 9px var(--mc-mono);
  text-transform:uppercase; letter-spacing:.08em; cursor:pointer;
}
.login-theme-picker button::before {
  content:""; width:17px; height:17px; border-radius:50%; flex:none; border:2px solid var(--card);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 28%,transparent);
}
.login-theme-picker [data-app-theme="atelier"]::before { background:linear-gradient(135deg,#f2eee6 52%,#1735c9 52%); }
.login-theme-picker [data-app-theme="light"]::before { background:linear-gradient(135deg,#fff 52%,#000 52%); }
.login-theme-picker [data-app-theme="obsidian"]::before { background:linear-gradient(135deg,#09090b 52%,#5574ff 52%); }
.login-theme-picker [data-app-theme="deepwater"]::before { background:linear-gradient(135deg,#061017 52%,#5da9ff 52%); }
.login-theme-picker [data-app-theme="lucid"]::before { background:linear-gradient(135deg,#eef8fc 42%,#bfe4f3 42% 58%,#1269e8 58%); }
.login-theme-picker button:hover { color:var(--ink); }
:root[data-theme="atelier"] .login-theme-picker [data-app-theme="atelier"],
:root[data-theme="light"] .login-theme-picker [data-app-theme="light"],
:root[data-theme="obsidian"] .login-theme-picker [data-app-theme="obsidian"],
:root[data-theme="deepwater"] .login-theme-picker [data-app-theme="deepwater"] { color:var(--ink); background:transparent; }
:root[data-theme="lucid"] .login-theme-picker [data-app-theme="lucid"] { color:var(--ink); background:transparent; }
:root[data-theme="atelier"] .login-theme-picker [data-app-theme="atelier"]::before,
:root[data-theme="light"] .login-theme-picker [data-app-theme="light"]::before,
:root[data-theme="obsidian"] .login-theme-picker [data-app-theme="obsidian"]::before,
:root[data-theme="deepwater"] .login-theme-picker [data-app-theme="deepwater"]::before { box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--blue); }
:root[data-theme="lucid"] .login-theme-picker [data-app-theme="lucid"]::before { box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--blue); }

/* Lucid: depth belongs to navigation and framing; engineering evidence stays solid. */
:root[data-theme="lucid"] body{
  background-color:#dcebf4;
  background-image:
    radial-gradient(circle at 8% 4%,rgba(255,255,255,.96) 0,rgba(255,255,255,0) 29%),
    radial-gradient(circle at 88% 12%,rgba(107,202,238,.23) 0,rgba(107,202,238,0) 33%),
    radial-gradient(circle at 64% 100%,rgba(126,102,235,.12) 0,rgba(126,102,235,0) 36%),
    linear-gradient(145deg,#eaf5fa 0%,#dcebf4 48%,#e8f1f8 100%);
  background-attachment:fixed;
}
:root[data-theme="lucid"] #appNav,
:root[data-theme="lucid"] .hydro-topbar,
:root[data-theme="lucid"] .hydro-moderail,
:root[data-theme="lucid"] .hw-wsbar,
:root[data-theme="lucid"] .theme-menu,
:root[data-theme="lucid"] #mobileMenu,
:root[data-theme="lucid"] .mc-modal,
:root[data-theme="lucid"] .login-card,
:root[data-theme="lucid"] .ts-home{
  background:rgba(249,253,255,.67)!important;
  border-color:rgba(255,255,255,.88)!important;
  -webkit-backdrop-filter:blur(24px) saturate(150%);
  backdrop-filter:blur(24px) saturate(150%);
  box-shadow:0 18px 48px rgba(32,79,110,.14),inset 0 1px 0 rgba(255,255,255,.92),inset 0 -1px 0 rgba(90,128,154,.12);
}
:root[data-theme="lucid"] .ts-choice{
  background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(236,247,252,.62));
  border-color:rgba(255,255,255,.9);
  box-shadow:inset 0 1px 0 #fff,0 7px 18px rgba(47,91,120,.08);
}
:root[data-theme="lucid"] .ts-choice.on{
  border-color:color-mix(in srgb,var(--ts-ac) 62%,#fff);
  background:linear-gradient(145deg,rgba(255,255,255,.9),color-mix(in srgb,var(--ts-ac) 10%,rgba(237,248,253,.84)));
  box-shadow:inset 0 1px 0 #fff,0 12px 26px rgba(18,105,232,.15);
}
:root[data-theme="lucid"] .card,
:root[data-theme="lucid"] .hw-panel,
:root[data-theme="lucid"] .hw-card,
:root[data-theme="lucid"] .hw-group,
:root[data-theme="lucid"] .fnd-card,
:root[data-theme="lucid"] .vdp-card{
  border-color:rgba(255,255,255,.78);
  box-shadow:0 12px 30px rgba(35,78,106,.1),inset 0 1px 0 rgba(255,255,255,.86);
}
/* Inputs, alarms, plot canvases and tabular evidence never depend on transparency. */
:root[data-theme="lucid"] .hw-slot,
:root[data-theme="lucid"] .hw-kpirib,
:root[data-theme="lucid"] .hw-statusband,
:root[data-theme="lucid"] .table-scroll,
:root[data-theme="lucid"] .cp-table,
:root[data-theme="lucid"] .hw-engpanel,
:root[data-theme="lucid"] .hw-float{
  background:#f8fcfe!important;
  border-color:#b8cbd8!important;
  box-shadow:0 6px 20px rgba(35,78,106,.09);
}
:root[data-theme="lucid"] input,
:root[data-theme="lucid"] select,
:root[data-theme="lucid"] textarea,
:root[data-theme="lucid"] .hw-slot-sel{
  background:rgba(255,255,255,.94)!important;
  border-color:#b8cbd8!important;
  color:#10243a!important;
}
:root[data-theme="lucid"] .modal-overlay,
:root[data-theme="lucid"] .mc-modal-bg{background:rgba(39,67,86,.24)}

@supports not ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){
  :root[data-theme="lucid"] #appNav,
  :root[data-theme="lucid"] .hydro-topbar,
  :root[data-theme="lucid"] .hydro-moderail,
  :root[data-theme="lucid"] .hw-wsbar,
  :root[data-theme="lucid"] .theme-menu,
  :root[data-theme="lucid"] #mobileMenu,
  :root[data-theme="lucid"] .mc-modal,
  :root[data-theme="lucid"] .login-card,
  :root[data-theme="lucid"] .ts-home{background:#f5fbfe!important}
}
@media (prefers-reduced-transparency:reduce){
  :root[data-theme="lucid"] #appNav,
  :root[data-theme="lucid"] .hydro-topbar,
  :root[data-theme="lucid"] .hydro-moderail,
  :root[data-theme="lucid"] .hw-wsbar,
  :root[data-theme="lucid"] .theme-menu,
  :root[data-theme="lucid"] #mobileMenu,
  :root[data-theme="lucid"] .mc-modal,
  :root[data-theme="lucid"] .login-card,
  :root[data-theme="lucid"] .ts-home{background:#f5fbfe!important;-webkit-backdrop-filter:none;backdrop-filter:none}
}
.landing-login-back { border-radius:2px; background:var(--ink); border:1px solid var(--ink); color:var(--bg); }
.landing-login-back:hover { background:var(--blue); border-color:var(--blue); color:#fff; }
.login-badges { opacity:1; }
.login-badges .lb-badge { border-radius:2px; background:var(--card); border-color:var(--line); color:var(--ink); box-shadow:none; }
.login-status span,.login-status-m,.login-sub,.login-help,.login-help a,.login-foot { color:var(--muted); }
.login-secure { color:var(--muted); }
.access-card { background:var(--card); border-color:var(--line); box-shadow:none; }
.ac-title,.lh-title { color:var(--ink); }
.ac-sub { color:var(--muted); }
.ac-btn { background:transparent; color:var(--ink); border-color:var(--line); }
#loginScene { opacity:.08 !important; filter:grayscale(1) contrast(1.2); }
.login-wave { opacity:.12; filter:grayscale(1); }

@media(max-width:760px){
  #appNav::after { display:none; }
  #appNav .brand-link { min-width:34px; }
  .psel-h1 { font-size:36px; }
  .psel-card-in { border-radius:3px !important; }
  .psel-sw { width:28px; height:28px; min-width:28px; min-height:28px; }
  .psel-themes { width:100%; justify-content:center; padding-inline:2px; }
  .login-theme-picker { gap:12px; }
  .login-theme-picker button { font-size:8px; gap:5px; }
  .mm-themes { grid-template-columns:1fr !important; }
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea,.select { border-radius:2px !important; }
}

/* Responsive alignment contract: one optical grid across phones, tablets and laptops. */
@media (min-width:761px) and (max-width:1100px) {
  #appNav .inner { padding-inline:clamp(18px,3vw,30px); }
  .wrap { padding-inline:clamp(20px,3.5vw,34px); }
  .psel-main { width:min(100%,920px); margin-inline:auto; }
  .psel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
  .psel-card,.psel-card-in { height:100%; }
}
@media (max-width:760px) {
  #appNav .inner { padding-inline:max(12px,var(--safe-left)); gap:8px; }
  #appNav .brand-link { margin-right:auto; }
  .wrap { width:100%; padding-inline:16px; }
  .psel-main { width:100%; }
  .psel-grid { grid-template-columns:1fr; }
  .psel-card,.psel-card-in { width:100%; }
  .scene-banner .cap { width:min(100%,620px); }
  .actions,.xfer-bar { align-items:stretch; }
  .hh-filter {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end;
    gap:10px 12px; width:100%;
  }
  .hh-filter #projSearch { grid-column:1 / -1; width:100%; min-width:0; }
  .hh-filter .hh-fl { display:grid; grid-template-columns:1fr; align-items:start; gap:5px; min-width:0; }
  .hh-filter .hh-fl select { width:100%; min-width:0; }
  .hh-filter .proj-count { grid-column:1; align-self:center; }
  .hh-filter .hh-views { grid-column:2; justify-self:end; margin-left:0; }
}

/* The well-library bulk actions are toolbar chrome, never a card-grid item. */
.proj-list > .hh-bulkbar { grid-column:1 / -1; width:100%; }

/* Build 835 — transitional stability and deliberate progress feedback.
   Geometry never animates: charts, wells and engineering cells stay locked while
   data changes. Only color, borders and explicit overlays are allowed to move. */
.screen { animation:none !important; }
html.mc-motion-ready .mc-reveal,
html.mc-motion-ready .mc-pop { opacity:1 !important; transform:none !important; animation:none !important; }
body.mc-layout-lock *,
body.mc-layout-lock *::before,
body.mc-layout-lock *::after { transition:none !important; animation:none !important; }
.hydro-app,
.hw-cockpit,
.hw-anrow,
.hw-graphmain,
.hw-graphboard,
.hw-board,
.hw-slot,
.hw-wellcol,
.hw-fpdock,
.hw-station { transition:none !important; }
.hydro-app.charts-mode .hw-board .hw-slot.gtab-on,
.hw-station,
.hw-cpk .cpk-solve.pulse,
.hw-recalc-banner { animation:none !important; }
.hw-prof-svg,
.hw-slot-svg,
.hw-schem-svg,
.hw-sim-readouts,
.hw-sim-inspect,
.hw-sim-spark { contain:layout paint; }
.hw-sim-readouts { grid-auto-rows:minmax(58px,auto); align-content:start; }
.hw-sim-ro,
.hw-sim-ipc { min-width:0; font-variant-numeric:tabular-nums; }
.hw-sim-ro b,
.hw-sim-ipc b,
.num,
.hw-kr input,
.hw-kr b { font-variant-numeric:tabular-nums; }
.hd-grow,
.hd-grow > *,
.hw-kpirib,
.hw-kpirib > * { min-height:0; transition:background-color .16s var(--mc-ease),border-color .16s var(--mc-ease),color .16s var(--mc-ease) !important; }
input,
select,
textarea { transition:border-color .16s var(--mc-ease),background-color .16s var(--mc-ease),box-shadow .16s var(--mc-ease) !important; }
button,
.btn,
summary { transition:background-color .16s var(--mc-ease),border-color .16s var(--mc-ease),color .16s var(--mc-ease),box-shadow .16s var(--mc-ease) !important; }

/* One loader language for real asynchronous work. A delay prevents fast actions
   from flashing an overlay; once shown it remains long enough to be readable. */
.mc-stage-loader { position:fixed; inset:0; z-index:9000; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; pointer-events:none; background:color-mix(in srgb,var(--bg) 97%,transparent); -webkit-backdrop-filter:blur(20px) saturate(.78); backdrop-filter:blur(20px) saturate(.78); transition:opacity .24s ease,visibility 0s linear .24s !important; }
.mc-stage-loader.visible { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .24s ease !important; }
.mc-session-pending .mc-stage-loader.mc-early-stage { opacity:1; visibility:visible; pointer-events:auto; transition:none !important; }
.mc-stage-card { position:relative; width:min(430px,calc(100vw - 32px)); overflow:hidden; padding:28px 28px 24px; border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line)); border-radius:18px; background:color-mix(in srgb,var(--card) 94%,transparent); box-shadow:0 34px 90px rgba(0,0,0,.42),inset 0 1px 0 color-mix(in srgb,#fff 7%,transparent); }
.mc-stage-card::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(105deg,transparent 20%,color-mix(in srgb,var(--blue) 12%,transparent) 50%,transparent 80%); transform:translateX(-110%); animation:mcStageSweep 1.8s cubic-bezier(.4,0,.2,1) infinite; }
.mc-stage-mark { position:relative; width:54px; height:54px; display:grid; place-items:center; margin-bottom:22px; border:1px solid color-mix(in srgb,var(--blue) 50%,var(--line)); border-radius:50%; background:color-mix(in srgb,var(--blue) 10%,var(--soft)); }
.mc-stage-mark::before,.mc-stage-mark::after { content:""; position:absolute; border-radius:50%; border:1px solid color-mix(in srgb,var(--blue) 55%,transparent); }
.mc-stage-mark::before { inset:-7px; border-left-color:transparent; animation:mcStageOrbit 1.4s linear infinite; }
.mc-stage-mark::after { inset:11px; border-right-color:transparent; animation:mcStageOrbit .85s linear infinite reverse; }
.mc-stage-mark img { width:38px; height:38px; object-fit:cover; border-radius:50%; filter:saturate(.9) contrast(1.08); }
.mc-stage-kicker { position:relative; display:block; color:var(--blue); font:700 9px/1.2 'Geist Mono',monospace; letter-spacing:.16em; text-transform:uppercase; }
.mc-stage-title { position:relative; display:block; margin:7px 0 5px; color:var(--ink); font:650 22px/1.15 'Geist Sans',sans-serif; letter-spacing:-.025em; }
.mc-stage-note { position:relative; display:block; min-height:18px; color:var(--muted); font:450 12px/1.5 'Geist Sans',sans-serif; }
.mc-stage-track { position:relative; height:2px; margin-top:22px; overflow:hidden; background:color-mix(in srgb,var(--line) 76%,transparent); }
.mc-stage-track i { position:absolute; inset:0 auto 0 0; width:42%; background:linear-gradient(90deg,transparent,var(--blue),var(--accent2),transparent); animation:mcStageTrack 1.15s ease-in-out infinite; }
.mc-stage-phases { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-top:10px; }
.mc-stage-phases span { overflow:hidden; color:color-mix(in srgb,var(--muted) 62%,transparent); font:650 7px/1.2 'Geist Mono',monospace; letter-spacing:.08em; text-align:center; text-overflow:ellipsis; white-space:nowrap; transition:color .22s ease,transform .22s ease; }
.mc-stage-phases span::before { content:""; display:inline-block; width:4px; height:4px; margin:0 5px 1px 0; border-radius:50%; background:currentColor; }
.mc-stage-phases span.active { color:var(--blue); transform:translateY(-1px); }
.mc-stage-binary { position:relative; display:block; margin-top:10px; overflow:hidden; color:color-mix(in srgb,var(--muted) 55%,transparent); font:500 8px/1 'Geist Mono',monospace; letter-spacing:.12em; white-space:nowrap; }
.mc-inline-load { width:100%; min-height:188px; display:grid; align-content:start; gap:11px; padding:14px 0; contain:layout paint; }
.mc-inline-load.compact { min-height:126px; padding-block:10px; }
.mc-inline-load.compact.one { min-height:52px; }
.mc-il-kicker { display:flex; align-items:center; gap:8px; color:var(--muted); font:650 9px/1.2 'Geist Mono',monospace; letter-spacing:.13em; text-transform:uppercase; }
.mc-il-kicker>i { width:7px; height:7px; flex:none; border-radius:50%; background:var(--blue); box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 10%,transparent); animation:mcInlinePulse 1.4s ease-in-out infinite; }
.mc-il-stack { display:grid; gap:8px; }
.mc-il-row { position:relative; height:48px; display:grid; grid-template-columns:38px minmax(110px,1fr) minmax(70px,.28fr); align-items:center; gap:12px; overflow:hidden; padding:9px 12px; border:1px solid color-mix(in srgb,var(--line) 82%,transparent); border-radius:10px; background:color-mix(in srgb,var(--card) 72%,transparent); }
.mc-inline-load.compact .mc-il-row { height:34px; padding-block:6px; }
.mc-il-row::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(100deg,transparent 24%,color-mix(in srgb,var(--blue) 7%,transparent) 48%,transparent 72%); transform:translateX(-110%); animation:mcInlineSweep 1.65s ease-in-out infinite; }
.mc-il-row>i,.mc-il-row>b,.mc-il-row>em { display:block; height:7px; border-radius:999px; background:color-mix(in srgb,var(--muted) 16%,transparent); }
.mc-il-row>i { width:28px; height:28px; border-radius:8px; }
.mc-il-row>b { width:min(72%,360px); }
.mc-il-row>em { width:72%; justify-self:end; }
@keyframes mcStageOrbit { to { transform:rotate(360deg); } }
@keyframes mcStageSweep { to { transform:translateX(110%); } }
@keyframes mcStageTrack { 0% { transform:translateX(-115%); } 100% { transform:translateX(345%); } }
@keyframes mcInlineSweep { to { transform:translateX(110%); } }
@keyframes mcInlinePulse { 50% { opacity:.42; } }

/* A calculation never blanks, shifts or dims the engineering evidence. A thin
   pressure trace moves across the existing board until the exact solve lands. */
.hydro-app.charts-mode .hw-board { position:relative; }
.hydro-app.charts-mode .hw-board::after { content:""; position:absolute; z-index:9; left:0; right:0; top:0; height:2px; pointer-events:none; opacity:0; background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--blue) 18%,transparent) 28%,var(--blue) 50%,color-mix(in srgb,var(--rok,#37d399) 45%,transparent) 62%,transparent 100%); transform:scaleX(.18) translateX(-220%); transform-origin:left center; }
.hydro-app.charts-mode.solve-active .hw-board::after { opacity:.74; animation:mcSolveTrace 1.15s cubic-bezier(.45,0,.2,1) infinite; }
.hydro-app.charts-mode.solve-active .hd-grow.is-updating { box-shadow:inset 0 1px 0 color-mix(in srgb,var(--blue) 18%,transparent),0 14px 30px -28px rgba(0,0,0,.9)!important; }
@keyframes mcSolveTrace { 0% { transform:scaleX(.18) translateX(-220%); } 100% { transform:scaleX(.28) translateX(370%); } }
body.screen-report .edge-rail { display:none !important; }

/* ---- 14. Global engineering-workspace remediation -------------------------
   This layer is deliberately semantic and route-scoped. It establishes one
   readable hierarchy without changing the public landing page. */
.hydro-app .hw-global-verdict {
  display:flex; flex:0 0 auto; min-width:210px; align-self:stretch;
  flex-direction:column; justify-content:center; gap:2px; padding:7px 12px;
  border-right:1px solid var(--line); border-left:4px solid currentColor;
  background:color-mix(in srgb,currentColor 8%,transparent);
}
.hydro-app .hw-global-verdict b { font-size:13px; line-height:1.1; letter-spacing:.025em; }
.hydro-app .hw-global-verdict em { max-width:285px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:12px; font-style:normal; }
.hydro-app .hw-global-verdict.ok { color:var(--green,#1f9d62); }
.hydro-app .hw-global-verdict.warn { color:var(--amber,#c2870f); }
.hydro-app .hw-global-verdict.bad { color:var(--red,#d1484f); }
.hydro-app .hw-global-verdict.unknown { color:var(--muted); }
.hydro-app .hw-apbtn { position:relative; min-height:34px; font-size:12px; }
.hydro-app .hw-apbtn::after { content:""; position:absolute; right:5px; top:5px; width:5px; height:5px; border-radius:50%; background:var(--muted); opacity:.55; }
.hydro-app .hw-apbtn.ok::after { background:var(--green,#1f9d62); opacity:1; }
.hydro-app .hw-apbtn.warn::after { background:var(--amber,#c2870f); opacity:1; }
.hydro-app .hw-apbtn.bad::after { background:var(--red,#d1484f); opacity:1; }

/* Sandbox must read as engineering what-if analysis, never equipment control. */
.hydro-app .hw-ops-sandbox { letter-spacing:.08em; }
.hydro-app .hw-ops-tstatus small { font:inherit; opacity:.72; }
.hydro-app .hw-ops-tstatus.unknown { color:var(--muted); background:color-mix(in srgb,var(--muted) 10%,transparent); }
.hydro-app .hw-ops-cp.unknown { border-style:dashed; }
.hydro-app .hw-ops-cp.unknown .hw-ops-cp-dot { background:var(--muted); }
.hydro-app .hw-opsx button,
.hydro-app .hw-opsx select,
.hydro-app .hw-opsx input,
.hydro-app .hw-opsx .hw-ops-bl,
.hydro-app .hw-opsx .hw-ops-cp-g,
.hydro-app .hw-opsx .hw-ops-conn-note { font-size:max(12px, .75rem); }
.hydro-app .hw-ops-ttl,.hydro-app .hw-ops-tmode,.hydro-app .hw-ops-tstatus { font-size:13px; }
.hydro-app .hw-ops-gcard h5 { display:flex; align-items:center; gap:6px; }
.hydro-app .hw-ops-gcard h5>.ico { width:16px; height:16px; color:var(--blue); flex:none; }

/* Simulator preflight is an actionable, stable row; it never shifts the stage. */
.hydro-app .hw-sim-preflight { flex:0 0 auto; min-height:0; margin:0; }
.hydro-app .hw-sim-preflight .hw-sim-readychip { margin:0 0 7px; padding:7px 11px; min-height:34px; box-sizing:border-box; font-size:12px; }
.hydro-app .hw-sim-preflight .hw-sim-issues { margin:0 0 8px; max-height:154px; overflow:auto; }
.hydro-app .hw-sim-stale { min-height:40px; font-size:12px; }
.hydro-app .hw-sim-stale>span:not(.hw-stat-ic) { flex:1; }
.hydro-app .hw-sim-tab,.hydro-app .hw-simmode-b,.hydro-app .hw-sim-ds,.hydro-app .hw-sim-run,
.hydro-app .hw-sim-frame,.hydro-app .hw-sim-readouts { font-size:max(12px,.75rem); }
.hydro-app .hw-sim-tabi .ico,.hydro-app .hw-sc-h .ico { width:1.25em; height:1.25em; vertical-align:-.22em; }
.hydro-app .hw-sim-tbtn .ico { width:18px; height:18px; }
.hydro-app .hw-sim-tbtn { min-width:44px; min-height:44px; }
.hydro-app .hw-sim-run:disabled { cursor:not-allowed; opacity:.48; filter:saturate(.25); box-shadow:none; }

/* The comparison matrix is engineering content, not metadata. */
.hydro-app .hcmp-panehead,.hydro-app .hcmp-panehead span,
.hydro-app .hcmp-card-h b,.hydro-app .hcmp-card-h small,
.hydro-app .hcmp-table,.hydro-app .hcmp-table th,.hydro-app .hcmp-table td,
.hydro-app .hcmp-state { font-size:max(12px,.75rem); }
.hydro-app .hcmp-table td { height:48px; }

/* Deliberate PWA update handoff: quiet, persistent, and never a surprise reload. */
.mc-update-prompt { position:fixed; right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); z-index:9990; width:min(430px,calc(100vw - 32px)); display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:13px; box-sizing:border-box; border:1px solid color-mix(in srgb,var(--blue) 45%,var(--line)); border-radius:14px; background:color-mix(in srgb,var(--card) 96%,transparent); color:var(--ink); box-shadow:0 22px 60px rgba(0,0,0,.28); backdrop-filter:blur(18px); }
.mc-update-prompt div { min-width:0; }
.mc-update-prompt b,.mc-update-prompt span { display:block; }
.mc-update-prompt b { font-size:14px; }
.mc-update-prompt span { margin-top:2px; color:var(--muted); font-size:12px; line-height:1.35; }
.mc-update-prompt button { min-height:38px; padding:0 12px; border:1px solid var(--blue); border-radius:9px; background:var(--blue); color:#fff; font-weight:750; }
.mc-update-prompt button.quiet { border-color:var(--line); background:transparent; color:var(--muted); }
.mc-update-prompt.installing { grid-template-columns:minmax(0,1fr) auto; }
.mc-update-prompt.installing button.install { min-width:112px; opacity:.82; cursor:wait; }
.mc-update-prompt.installing button.install::before { content:""; display:inline-block; width:10px; height:10px; margin-right:8px; border:2px solid rgba(255,255,255,.38); border-top-color:#fff; border-radius:50%; vertical-align:-1px; animation:mcUpdateSpin .7s linear infinite; }
.mc-update-complete { position:fixed; right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); z-index:9991; width:min(360px,calc(100vw - 32px)); display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:10px; padding:13px 15px; box-sizing:border-box; border:1px solid color-mix(in srgb,var(--rok,#37d399) 55%,var(--line)); border-radius:14px; background:color-mix(in srgb,var(--card) 97%,transparent); color:var(--ink); box-shadow:0 22px 60px rgba(0,0,0,.28); backdrop-filter:blur(18px); transition:opacity .24s ease,transform .24s ease; }
.mc-update-complete>i { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--rok,#37d399) 16%,transparent); color:var(--rok,#37d399); font-style:normal; font-weight:850; }
.mc-update-complete b,.mc-update-complete span { display:block; }
.mc-update-complete b { font-size:13px; }
.mc-update-complete span { margin-top:2px; color:var(--muted); font-size:11px; line-height:1.4; }
.mc-update-complete.leaving { opacity:0; transform:translateY(8px); }
@keyframes mcUpdateSpin { to { transform:rotate(360deg); } }

@media (max-width:1180px) {
  .hydro-app .hw-ops-body { grid-template-columns:minmax(260px,34%) minmax(0,1fr); }
  .hydro-app .hw-ops-right { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hydro-app .hw-statusband { overflow-x:auto; }
  .hydro-app .hw-global-verdict { position:sticky; left:0; z-index:2; background:var(--card); }
  .hydro-app .hcmp-body { grid-template-columns:minmax(230px,30%) minmax(0,1fr); }
}
@media (max-width:820px) {
  .hydro-app .hw-ops-body { display:flex; flex-direction:column; overflow:visible; }
  .hydro-app .hw-ops-left,.hydro-app .hw-ops-center,.hydro-app .hw-ops-right { overflow:visible; }
  .hydro-app .hw-ops-right { display:grid; grid-template-columns:1fr; }
  .hydro-app .hw-ops-actions { position:sticky; bottom:calc(var(--safe-bottom,0px) + 4px); z-index:8; padding:8px; border:1px solid var(--line); border-radius:12px; background:color-mix(in srgb,var(--card) 94%,transparent); backdrop-filter:blur(14px); }
  .hydro-app .hcmp-body { display:flex; flex-direction:column; overflow:auto; }
  .hydro-app .hcmp-cases { flex:0 0 auto; max-height:250px; }
  .hydro-app .hcmp-matrix { flex:1 0 min(520px,70vh); }
  .hydro-app .hw-statusband { align-items:stretch; }
  .hydro-app .hw-global-verdict { min-width:min(78vw,310px); }
}
@media (max-width:600px) {
  .mc-update-prompt { grid-template-columns:1fr 1fr; }
  .mc-update-prompt div { grid-column:1/-1; }
  .mc-update-prompt button { width:100%; }
  .hydro-app .hw-ops-actions .hw-ops-act { flex:1 1 100%; min-height:44px; }
  .hydro-app .hw-sim-preflight .hw-sim-issues { max-height:none; }
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { scroll-behavior:auto !important; }
  .mc-stage-loader,.mc-stage-loader.visible { transition:none !important; }
  .mc-stage-card::before,.mc-stage-mark::before,.mc-stage-mark::after,.mc-stage-track i,.mc-il-row::after,.mc-il-kicker>i,.hydro-app.charts-mode.solve-active .hw-board::after,.mc-update-prompt.installing button.install::before { animation:none !important; }
  .mc-stage-phases span { transition:none !important; }
}

/* ---- Build 978: responsive engineering workspace release gate -----------
   Every dense control surface owns its overflow. Nothing is allowed to widen
   the page, overlap a neighbour, or disappear beyond a clipped viewport. */
@media (max-width:1000px) {
  .hydro-app .hw-simcx-top {
    display:grid !important; grid-template-columns:minmax(0,1fr);
    align-items:start !important; overflow:visible !important;
  }
  .hydro-app .hw-simcx-types {
    grid-row:2; width:100%; min-width:0; padding-right:0;
    display:flex !important; flex-wrap:nowrap !important; overflow-x:auto !important;
    scroll-snap-type:x proximity; scrollbar-width:thin;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent);
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent);
  }
  .hydro-app .hw-simcx-types .hw-sim-tab { scroll-snap-align:start; }
  .hydro-app .hw-simcx-top .hw-sim-hbtns {
    grid-row:1; display:flex !important; flex-wrap:wrap !important; justify-content:flex-end;
    width:100% !important; min-width:0; overflow:visible !important;
  }
  .hydro-app .hw-simmode { max-width:100%; flex-wrap:wrap !important; overflow:visible !important; }
  .hydro-app .hw-sim-transport { max-width:100%; min-width:0; box-sizing:border-box; }
  .hydro-app .hr-toolbar { max-width:100%; min-width:0; flex-wrap:wrap; }
  .hydro-app .hr-tb-l { min-width:0; flex:1 1 250px; }
  .hydro-app .hr-tb-l span { display:inline-block; max-width:56vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:middle; }
  .hydro-app .hr-tb-a { min-width:0; flex:1 1 auto; flex-wrap:wrap; justify-content:flex-end; }
  .hydro-app .hcmp-tablewrap,.hydro-app .hr-tbl-wrap { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
  .hydro-app .hcmp-tablewrap { scrollbar-width:auto; padding-bottom:3px; }
  .hydro-app .hcmp-tablewrap::after { content:"Swipe for more columns →"; position:sticky; left:8px; display:inline-block; margin:5px 8px 0; color:var(--muted); font-size:11px; }
  .hydro-app .hw-ops-actions { position:static !important; inset:auto !important; flex:0 0 auto; margin-top:4px; }
}

@media (min-width:900px) and (max-width:1100px) and (orientation:landscape) {
  .hydro-app .hw-opsx { min-height:0; overflow:hidden; }
  .hydro-app .hw-ops-body { flex:1 1 auto; min-height:0; overflow-y:auto !important; overflow-x:hidden !important; }
}

@media (min-width:700px) and (max-width:1000px) {
  .hydro-app .hw-ops-body {
    display:grid !important; grid-template-columns:minmax(225px,31%) minmax(0,1fr) !important;
    align-items:start; gap:9px; overflow:visible !important;
  }
  .hydro-app .hw-ops-right {
    grid-column:1/-1 !important; display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .hydro-app .hw-opsx { overflow:hidden !important; }
  .hydro-app .hw-ops-body {
    flex:1 1 auto !important; min-height:0 !important;
    overflow-y:auto !important; overflow-x:hidden !important;
    overscroll-behavior-block:contain;
  }
}

@media (max-width:699px) {
  .hydro-app .hw-simcx-top { grid-template-columns:minmax(0,1fr) !important; }
  .hydro-app .hw-simcx-top .hw-sim-hbtns { justify-content:flex-start; }
  .hydro-app .hw-simcx-types { flex-wrap:nowrap !important; overflow-x:auto !important; scroll-snap-type:x proximity; }
  .hydro-app .hw-simcx-types .hw-sim-tab { scroll-snap-align:start; }
  .hydro-app .hw-simmode { flex-wrap:nowrap !important; overflow-x:auto !important; }
  .hydro-app .hw-sim-transport {
    display:grid !important; grid-template-columns:repeat(4,44px) minmax(52px,1fr) 58px !important;
    gap:4px !important; width:100%; max-width:100%;
    overflow:hidden !important; padding:7px 8px 9px;
    scroll-margin-bottom:calc(68px + env(safe-area-inset-bottom));
  }
  .hydro-app .hw-ops-top { flex-wrap:wrap !important; align-items:stretch !important; }
  .hydro-app .hw-ops-top>* { min-width:0; max-width:100%; }
  .hydro-app .hw-ops-body { display:flex !important; flex-direction:column !important; }
  .hydro-app .hw-ops-cards,.hydro-app .hw-ops-grid,.hydro-app .hw-ops-grid.wide { grid-template-columns:minmax(0,1fr) !important; }
  .hydro-app .hw-ops-cp-g { grid-template-columns:minmax(0,1fr) auto !important; }
  .hydro-app .hw-ops-cp-g b { overflow-wrap:anywhere; }
  .hydro-app .hcmp-hero-r { width:100%; flex-wrap:wrap; }
  .hydro-app .hcmp-refbar { max-width:100%; overflow-x:auto; }
  .hydro-app .hr-tb-l,.hydro-app .hr-tb-a { flex:1 1 100%; width:100%; }
  .hydro-app .hr-tb-l span { max-width:72vw; }
  .hydro-app .hr-tb-a { justify-content:stretch; }
  .hydro-app .hr-tb-a .btn { flex:1 1 132px; min-height:44px; }
  .hydro-app #hwBody:has(.hw-sim) { padding-bottom:calc(74px + env(safe-area-inset-bottom)) !important; scroll-padding-bottom:calc(70px + env(safe-area-inset-bottom)); }
  .hydro-app .hw-simcx-body,.hydro-app .hw-simcx-rail { padding-bottom:calc(68px + env(safe-area-inset-bottom)) !important; }
  .hydro-app .hw-sim-transport {
    position:fixed !important; left:12px; right:12px;
    bottom:calc(154px + env(safe-area-inset-bottom)) !important; z-index:55;
    width:auto !important; max-width:none;
    border-color:color-mix(in srgb,var(--blue) 28%,var(--line));
    background:color-mix(in srgb,var(--card) 97%,transparent);
    box-shadow:0 16px 38px rgba(0,0,0,.28);
    -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  }
  .hydro-app .hw-sim-transport .hw-sim-frame {
    grid-column:5; grid-row:1; min-width:0; overflow:hidden;
    text-overflow:ellipsis; white-space:nowrap; text-align:left;
  }
  .hydro-app .hw-sim-transport .hw-sim-spd { grid-column:6; grid-row:1; width:58px; min-width:0; }
  .hydro-app .hw-sim-transport .hw-scrub { grid-column:1/-1; grid-row:2; width:100%; min-width:0; }
  .hydro-app.charts-mode .hw-gtabs {
    scroll-snap-type:x proximity;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent);
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent);
  }
  .hydro-app.charts-mode .hw-gtabs .hw-gtab { scroll-snap-align:start; }
  .hydro-app.charts-mode .hw-cursor-insp .hw-ds-nav {
    flex-wrap:wrap !important; overflow-x:hidden !important; overflow-y:visible !important;
  }
  .hydro-app .hw-ds-track { flex:1 0 100% !important; min-width:0 !important; width:100% !important; max-width:100% !important; }
  .hydro-app #hwDepthSlider { position:static !important; flex:1 0 100% !important; min-width:0 !important; width:100% !important; max-width:100% !important; }
}

/* Build 1022 — simulator viewport contract.
   Keep navigation and playback in document flow on phones, prevent the generic
   schematic width cap from letterboxing the live well, and resolve iPad's
   coarse-pointer toolbar/header cascade without shrinking text into icons. */
.hydro-app .hw-simmode{flex:0 0 auto;min-height:44px;max-width:100%}
.hydro-app .hw-simcx-diagram .hw-schem-svg{max-width:none}
@media (max-width:699px){
  .hydro-app .hw-sim-transport{position:sticky!important;left:auto!important;right:auto!important;bottom:calc(68px + env(safe-area-inset-bottom))!important;z-index:40;width:100%!important;box-sizing:border-box}
  .hydro-app .hw-simcx-diagram{padding-bottom:0!important}
}
@media (min-width:768px) and (max-width:959px){
  .hydro-app #hwSimProcRail{display:flex!important;flex-direction:column!important;grid-template-columns:none!important;grid-template-areas:none!important}
  .hydro-app #hwSimProcRail>.hw-sim-preflight{width:100%;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
}
@media (min-width:768px) and (max-width:1279px) and (pointer:coarse){
  .hydro-app .hw-simcx-top .hw-sim-hbtns .hw-sim-ds,
  .hydro-app .hw-simcx-top .hw-sim-hbtns .hw-sim-run{width:auto!important;min-width:44px!important;padding:8px 12px!important;font-size:13px!important}
  .hydro-app .hw-simcx-top #hwSimRun:before,.hydro-app .hw-simcx-top #hwSimDs:before{content:none!important}
}
@media (min-width:1200px) and (max-width:1800px) and (pointer:coarse){
  body.is-touch .hydro-topbar{gap:4px 8px!important;padding:4px 10px!important;min-height:100px!important}
  body.is-touch .hydro-topbar .ht-ready{display:none!important}
  body.is-touch .hydro-topbar .ht-proj-wrap{
    display:flex!important;align-items:center!important;flex-wrap:nowrap!important;
    gap:8px!important;height:44px!important;min-height:44px!important;max-height:44px!important;
    overflow:hidden!important
  }
  body.is-touch .hydro-topbar .ht-proj{flex:1 1 auto!important;min-width:0!important}
  body.is-touch .hydro-topbar .ht-status,
  body.is-touch .hydro-topbar .ht-cloud{flex:0 0 auto!important}
}

/* Build 1030 responsive release corrections. The touch header is two rows:
   its context row must not become another two-row grid. Tablet graph stations
   use the same modal contract as phone stations because hydroPhoneDeck()
   exposes Digital Well and Inputs on every touch workstation. */
@media (min-width:768px) and (max-width:1800px){
  body.is-touch .hydro-topbar .ht-ctx{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  html body.is-touch.screen-hydro .hw-station{
    position:fixed!important;z-index:990!important;inset:0!important;
    width:100%!important;height:100dvh!important;max-width:none!important;
    padding:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;overflow:hidden!important;
    align-items:flex-end!important;justify-content:flex-end!important;
  }
  html body.is-touch.screen-hydro .hw-sheet-backdrop{
    display:block!important;position:absolute;inset:0;width:100%;height:100%;
    border:0;background:rgba(3,10,17,.32);backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
  }
  html body.is-touch.screen-hydro .hw-station-sheet{
    position:relative;z-index:1;display:flex;flex-direction:column;
    width:min(620px,82vw);max-height:92svh;padding:5px 12px calc(16px + env(safe-area-inset-bottom));
    border:1px solid color-mix(in srgb,var(--ink) 12%,var(--line));
    border-radius:24px 0 0 24px;background:color-mix(in srgb,var(--card) 95%,transparent);
    box-shadow:0 -20px 70px rgba(0,0,0,.35);overflow:hidden;
  }
  html body.is-touch.screen-hydro .hw-sheet-handle{display:block;width:38px;height:5px;margin:2px auto 4px;border-radius:99px;background:color-mix(in srgb,var(--ink) 22%,transparent)}
  html body.is-touch.screen-hydro .hw-sheet-head{display:grid;grid-template-columns:1fr auto;align-items:center;min-height:42px;padding:0 2px 5px;border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,var(--line))}
  html body.is-touch.screen-hydro .hw-sheet-head strong{font:750 16px/1.1 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui;color:var(--ink)}
  html body.is-touch.screen-hydro .hw-sheet-head button{min-height:38px;border:0;background:transparent;color:var(--blue);font:750 14px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui;padding:0 8px}
  html body.is-touch.screen-hydro .hw-station-inner{display:flex!important;flex-direction:column!important;gap:9px!important;padding:10px 0 4px!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch}
}

@media (max-width:699px) {
  .hydro-app .hw-opsx,.hydro-app .hw-ops-body {
    height:auto !important; max-height:none !important; min-height:min-content !important;
    flex:none !important; overflow:visible !important;
  }
  .hydro-app .hw-ops-actions { position:relative !important; clear:both; }
}

/* Build 999 — Fluid Studio: a selection-first, engineering-grade fluid workspace. */
.hydro-app #hwcard-fluids {
  overflow:visible;
  border-color:color-mix(in srgb,var(--blue) 16%,var(--line));
}
.hydro-app #hwcard-fluids>.hw-card-b { padding:0; }
.fluid-studio {
  --fluid-accent:#8b5cf6;
  display:grid;
  grid-template-columns:minmax(210px,244px) minmax(0,1fr);
  min-width:0;
  background:var(--bg);
}
.fluid-studio-library {
  min-width:0;
  padding:14px 11px;
  border-right:1px solid var(--line);
  background:color-mix(in srgb,var(--card) 82%,var(--soft));
}
.fluid-studio-libhead,.fluid-studio-title,.fluid-studio-health,
.fluid-studio-sectionhead,.fluid-studio-manager>summary {
  display:flex;
  align-items:center;
}
.fluid-studio-libhead { justify-content:space-between; gap:8px; padding:0 3px 11px; }
.fluid-studio-libhead>div,.fluid-studio-title>div,.fluid-studio-health>div,
.fluid-studio-facts>div,.fluid-studio-chart-note {
  display:flex;
  flex-direction:column;
  min-width:0;
}
.fluid-studio-libhead span,.fluid-studio-title>div>span,.fluid-studio-sectionhead span {
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
}
.fluid-studio-libhead b { color:var(--ink); font-size:13px; }
.fluid-studio-add {
  width:34px;
  height:34px;
  border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));
  border-radius:10px;
  background:color-mix(in srgb,var(--blue) 8%,var(--card));
  color:var(--blue);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.fluid-studio-item {
  position:relative;
  width:100%;
  display:grid;
  grid-template-columns:12px minmax(0,1fr);
  gap:3px 9px;
  padding:10px 9px;
  margin:0 0 6px;
  border:1px solid transparent;
  border-radius:12px;
  background:transparent;
  color:var(--ink);
  text-align:left;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.fluid-studio-item:hover { background:var(--card); transform:translateX(2px); }
.fluid-studio-item.on {
  border-color:color-mix(in srgb,var(--fluid-accent) 48%,var(--line));
  background:color-mix(in srgb,var(--fluid-accent) 10%,var(--card));
  box-shadow:inset 3px 0 0 var(--fluid-accent);
}
.fluid-studio-dot {
  width:10px;
  height:30px;
  border-radius:999px;
  grid-row:1/3;
  box-shadow:0 0 0 3px color-mix(in srgb,currentColor 7%,transparent);
}
.fluid-studio-item-copy b {
  display:block;
  overflow:hidden;
  color:var(--ink);
  font-size:13px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.fluid-studio-item-copy small {
  display:block;
  overflow:hidden;
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.fluid-studio-item-state {
  grid-column:2;
  justify-self:start;
  margin-top:3px;
  padding:2px 6px;
  border-radius:999px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.02em;
}
.fluid-studio-item-state.ready {
  color:var(--green,#16805a);
  background:color-mix(in srgb,var(--green,#16805a) 10%,transparent);
}
.fluid-studio-item-state.needs {
  color:var(--amber,#a66b00);
  background:color-mix(in srgb,var(--amber,#a66b00) 12%,transparent);
}
.fluid-studio-import {
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin-top:9px;
  border:1px dashed color-mix(in srgb,var(--blue) 35%,var(--line));
  border-radius:11px;
  background:transparent;
  color:var(--blue);
  font-size:12px;
  font-weight:750;
  cursor:pointer;
}
.fluid-studio-import .ico { width:15px; height:15px; }
.fluid-studio-work {
  min-width:0;
  padding:14px;
}
.fluid-studio-hero {
  position:relative;
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto auto;
  gap:12px 18px;
  padding:16px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--fluid-accent) 30%,var(--line));
  border-radius:16px;
  background:
    radial-gradient(circle at 0 0,color-mix(in srgb,var(--fluid-accent) 14%,transparent),transparent 35%),
    var(--card);
}
.fluid-studio-hero::before {
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:var(--fluid-accent);
  content:"";
}
.fluid-studio-title { gap:11px; min-width:0; }
.fluid-studio-swatch {
  flex:0 0 auto;
  width:42px;
  height:42px;
  border:5px solid color-mix(in srgb,var(--fluid-accent) 17%,var(--card));
  border-radius:14px;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--fluid-accent) 42%,var(--line));
}
.fluid-studio-name {
  width:100%;
  min-width:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--ink);
  font:800 clamp(18px,2vw,25px)/1.15 inherit;
  letter-spacing:-.025em;
}
.fluid-studio-health {
  align-self:center;
  gap:8px;
  min-width:160px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:color-mix(in srgb,var(--soft) 82%,transparent);
}
.fluid-studio-health .hw-stat-ic { flex:none; }
.fluid-studio-health b { font-size:12px; }
.fluid-studio-health span { margin-top:1px; color:var(--muted); font-size:10px; }
.fluid-studio-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.fluid-studio-actions .btn { min-height:40px; white-space:nowrap; }
.fluid-studio-actions .ico { width:14px; height:14px; }
.fluid-studio-core {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:9px;
}
.fluid-studio-core>label {
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.fluid-studio-core>label>span:first-child {
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}
.fluid-studio-core em { opacity:.7; font-style:normal; }
.fluid-studio-core input:not([type="color"]),.fluid-studio-core select {
  width:100%;
  min-width:0;
  min-height:42px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  outline:none;
  background:var(--bg);
  color:var(--ink);
  font-size:15px;
  font-weight:700;
}
.fluid-studio-core input:focus,.fluid-studio-core select:focus {
  border-color:var(--fluid-accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--fluid-accent) 15%,transparent);
}
.fluid-studio-color>span:last-child {
  min-height:42px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg);
}
.fluid-studio-color input { width:36px; height:28px; padding:0; border:0; background:transparent; }
.fluid-studio-color b { color:var(--muted); font:700 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.fluid-studio-facts {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  padding-top:3px;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}
.fluid-studio-facts>div { padding:8px 12px 0; border-left:1px solid var(--line); }
.fluid-studio-facts>div:first-child { padding-left:0; border-left:0; }
.fluid-studio-facts>div>span:first-child { color:var(--muted); font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.fluid-studio-facts b { margin-top:2px; overflow:hidden; color:var(--ink); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.fluid-studio-facts>div>span:last-child:not(:first-child) { margin-top:1px; color:var(--muted); font-size:10px; }
.fluid-studio-rheo {
  margin-top:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
}
.fluid-studio-sectionhead { justify-content:space-between; gap:12px; margin-bottom:12px; }
.fluid-studio-sectionhead h4 { margin:2px 0 0; color:var(--ink); font-size:16px; }
.fluid-studio-sectionhead .hw-mini { min-height:36px; }
.fluid-studio-rheo-grid {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(250px,.65fr);
  gap:14px;
  align-items:start;
}
.fluid-studio-rheo-form { min-width:0; }
.fluid-studio-rheo .hw-fann { margin-top:10px; }
.fluid-studio-rheo-chart {
  position:sticky;
  top:10px;
  min-width:0;
  padding:12px;
  border:1px solid color-mix(in srgb,var(--fluid-accent) 24%,var(--line));
  border-radius:13px;
  background:color-mix(in srgb,var(--fluid-accent) 4%,var(--soft));
}
.fluid-studio-rheo-chart>div:first-child>div:first-child { margin-top:0 !important; }
.fluid-studio-rheo-chart svg { width:100% !important; max-width:none !important; background:var(--card); }
.fluid-studio-chart-note { margin-top:8px; }
.fluid-studio-chart-note b { font-size:12px; }
.fluid-studio-chart-note span { margin-top:2px; color:var(--muted); font-size:10px; line-height:1.35; }
.fluid-studio-manager {
  margin-top:12px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--card);
}
.fluid-studio-manager>summary {
  min-height:46px;
  gap:8px;
  padding:0 13px;
  cursor:pointer;
  list-style:none;
}
.fluid-studio-manager>summary::-webkit-details-marker { display:none; }
.fluid-studio-manager>summary::before { color:var(--blue); content:"›"; font-size:22px; transition:transform .15s ease; }
.fluid-studio-manager[open]>summary::before { transform:rotate(90deg); }
.fluid-studio-manager>summary span { color:var(--ink); font-size:12px; font-weight:800; }
.fluid-studio-manager>summary small { margin-left:auto; color:var(--muted); font-size:10px; }
.fluid-studio-manager>div { padding:0 12px 12px; border-top:1px solid var(--line); }
.fluid-studio-empty {
  display:flex;
  min-height:360px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:32px;
  text-align:center;
}
.fluid-studio-empty>.ico { width:44px; height:44px; color:var(--blue); }
.fluid-studio-empty h3 { margin:13px 0 5px; font-size:22px; }
.fluid-studio-empty p { max-width:480px; margin:0 0 16px; color:var(--muted); line-height:1.55; }
.fluid-studio-empty>div { display:flex; gap:8px; }

@media (min-width:700px) and (max-width:1100px) {
  .fluid-studio { grid-template-columns:190px minmax(0,1fr); }
  .fluid-studio-work { padding:10px; }
  .fluid-studio-hero { grid-template-columns:minmax(180px,1fr) auto; padding:13px; }
  .fluid-studio-health { min-width:145px; }
  .fluid-studio-actions { grid-column:1/-1; justify-content:flex-start; }
  .fluid-studio-core { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fluid-studio-rheo-grid { grid-template-columns:minmax(0,1fr) minmax(220px,.7fr); gap:10px; }
  .fluid-studio-rheo .hw-fann-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:699px) {
  .fluid-studio { grid-template-columns:minmax(0,1fr); }
  .fluid-studio-library {
    display:flex;
    gap:7px;
    overflow-x:auto;
    padding:10px;
    border-right:0;
    border-bottom:1px solid var(--line);
    scroll-snap-type:x proximity;
  }
  .fluid-studio-libhead { flex:0 0 auto; min-width:112px; margin:0; padding:0 4px; }
  .fluid-studio-libhead>div { align-self:center; }
  .fluid-studio-item { flex:0 0 180px; margin:0; scroll-snap-align:start; }
  .fluid-studio-import { flex:0 0 88px; margin:0; }
  .fluid-studio-work { padding:8px; }
  .fluid-studio-hero { grid-template-columns:minmax(0,1fr); padding:13px; }
  .fluid-studio-health { width:auto; }
  .fluid-studio-actions { justify-content:stretch; }
  .fluid-studio-actions .btn { flex:1; }
  .fluid-studio-core,.fluid-studio-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fluid-studio-facts>div:nth-child(3) { grid-column:1/-1; padding-left:0; border-left:0; }
  .fluid-studio-rheo { padding:11px; }
  .fluid-studio-rheo-grid { grid-template-columns:minmax(0,1fr); }
  .fluid-studio-rheo-chart { position:static; }
  .fluid-studio-manager>summary small { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .fluid-studio-item,.fluid-studio-manager>summary::before { transition:none; }
}

/* Build 1000 — Conditions + Scenario Studio. */
.conditions-studio,.scenario-studio{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:start;min-width:0}
.condition-rail,.scenario-rail{position:sticky;top:8px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--card) 94%,var(--blue) 1%)}
.condition-rail-head,.scenario-rail-head{display:flex;align-items:center;justify-content:space-between;padding:3px 4px 8px;border-bottom:1px solid var(--line)}
.condition-rail-head>div,.scenario-rail-head>div{display:flex;flex-direction:column;gap:2px}
.condition-rail-head span,.scenario-rail-head span{font-size:10px;font-weight:850;letter-spacing:.11em;color:var(--muted)}
.condition-rail-head b,.scenario-rail-head b{font-size:15px;color:var(--ink)}
.condition-rail-head>button,.scenario-rail-head>button{width:34px;height:34px;border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--blue) 8%,var(--card));color:var(--blue);font:700 22px/1 inherit;cursor:pointer}
.condition-rail-item,.scenario-rail-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"mark title status" "meta meta meta";gap:4px 8px;width:100%;padding:10px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.scenario-rail-item{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title status" "meta meta"}
.condition-rail-item:hover,.scenario-rail-item:hover{background:color-mix(in srgb,var(--blue) 5%,var(--card));transform:translateY(-1px)}
.condition-rail-item.on,.scenario-rail-item.on{border-color:color-mix(in srgb,var(--blue) 42%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 10%,var(--card)),var(--card));box-shadow:0 10px 24px -21px var(--blue)}
.condition-rail-item>i{grid-area:mark;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:color-mix(in srgb,var(--blue) 9%,var(--card));color:var(--blue);font:800 11px/1 inherit;font-style:normal}
.condition-rail-item>span,.scenario-rail-item>span{grid-area:title;display:flex;flex-direction:column;min-width:0;gap:2px}
.condition-rail-item b,.scenario-rail-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.condition-rail-item em,.scenario-rail-item em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font:600 10.5px/1.25 inherit;font-style:normal}
.condition-rail-item strong,.scenario-rail-item strong{grid-area:status;align-self:start;padding:3px 6px;border-radius:7px;font-size:10px}
.condition-rail-item strong.ready,.scenario-rail-item strong.ready{color:#168351;background:color-mix(in srgb,#2bbd76 13%,transparent)}
.condition-rail-item strong.needs,.scenario-rail-item strong.needs{color:#a86809;background:color-mix(in srgb,#f0b429 15%,transparent)}
.condition-rail-item small,.scenario-rail-item small{grid-area:meta;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.scenario-duplicate{min-height:36px;border:1px dashed var(--line);border-radius:10px;background:transparent;color:var(--muted);font:700 11px/1 inherit;cursor:pointer}
.condition-work,.scenario-work{display:flex;flex-direction:column;gap:12px;min-width:0}
.condition-hero,.scenario-hero{display:flex;align-items:center;gap:18px;min-height:82px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(125deg,color-mix(in srgb,var(--blue) 7%,var(--card)),var(--card) 48%);overflow:hidden}
.condition-hero>div:first-child,.scenario-title{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.condition-hero span,.scenario-title>span,.scenario-hero label>span{font-size:10px;font-weight:850;letter-spacing:.1em;color:var(--muted)}
.condition-hero input,.scenario-title input{min-width:0;width:100%;padding:0;border:0;background:transparent;color:var(--ink);font:800 clamp(20px,2vw,29px)/1.12 var(--ui,inherit);outline:0;text-overflow:ellipsis}
.condition-hero p{margin:0;color:var(--muted);font-size:12px}
.condition-score,.scenario-status{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:94px}
.condition-score b,.scenario-status b{font:850 22px/1 var(--mono,monospace)}
.condition-score span,.scenario-status span{font-size:10px;color:var(--muted);text-align:right}
.condition-score.ready b,.scenario-status.ready b{color:#1b9a61}.condition-score.needs b,.scenario-status.needs b{color:#cf8b17}
.scenario-hero>label{display:flex;flex-direction:column;gap:5px;min-width:170px}
.scenario-hero select{height:38px;padding:0 32px 0 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:700 12px/1 inherit}
.condition-context,.scenario-inherits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.condition-context>div{display:flex;flex-direction:column;gap:3px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.condition-context span,.scenario-inherits>span{font-size:9px;font-weight:850;letter-spacing:.08em;color:var(--muted)}
.condition-context b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.condition-context em{font-size:10px;color:var(--muted);font-style:normal}
.scenario-inherits{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow-x:auto}
.scenario-inherits>b{flex:0 0 auto;padding:5px 8px;border-radius:8px;background:color-mix(in srgb,var(--blue) 6%,var(--bg));font-size:11px}
.engineering-guard{border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}
.engineering-guard>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,#f0b429 7%,var(--card))}
.engineering-guard.clear>header{background:color-mix(in srgb,#2bbd76 7%,var(--card))}
.engineering-guard>header>div{display:flex;flex-direction:column;gap:2px}.engineering-guard>header span{font-size:9px;font-weight:850;letter-spacing:.1em;color:var(--muted)}
.engineering-guard>header b{font-size:14px}.engineering-guard>header strong{padding:5px 8px;border-radius:8px;background:color-mix(in srgb,#f0b429 14%,transparent);color:#a86809;font-size:10px}
.engineering-guard.clear>header strong{background:color-mix(in srgb,#2bbd76 14%,transparent);color:#168351}
.eg-list{display:flex;flex-direction:column}.eg-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 14px;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.eg-row:first-child{border-top:0}.eg-ico{width:27px;height:27px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:color-mix(in srgb,#f0b429 15%,transparent);color:#a86809;font:850 13px/1 inherit}
.eg-row.block .eg-ico{background:color-mix(in srgb,#e5484d 14%,transparent);color:#c3343a}.eg-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.eg-copy b{font-size:13px}.eg-copy span{font-size:11px;color:var(--muted)}.eg-copy em{font:650 11px/1.35 inherit;color:var(--ink);font-style:normal}
.eg-actions{display:flex;align-items:center;gap:6px}.eg-actions .btn{white-space:nowrap;min-height:34px}
.eg-clear{padding:15px;color:#168351;font-weight:700;font-size:12px}.eg-kept-row{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid var(--line)}
.eg-kept{display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid color-mix(in srgb,#2bbd76 28%,var(--line));border-radius:8px;background:transparent;color:var(--ink);font:700 10px/1 inherit;cursor:pointer}.eg-kept i{color:#1b9a61}.eg-kept span{color:var(--muted);font-weight:600}
.condition-assets{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.condition-assets>header{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:10px}.condition-assets>header>div{display:flex;flex-direction:column;gap:3px}.condition-assets>header span{font-size:9px;font-weight:850;letter-spacing:.1em;color:var(--muted)}.condition-assets>header b{font-size:15px}.condition-assets>header small{color:var(--muted);font-size:10px;text-align:right}
.scenario-work>.sop-3col{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.scenario-work>.sop-3col>.sop-col:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.scenario-work .sop-card{border-radius:14px}.scenario-work .sop-cases{margin-top:0}
@media(min-width:1500px){.conditions-studio,.scenario-studio{grid-template-columns:250px minmax(0,1fr)}.scenario-work>.sop-3col{grid-template-columns:repeat(3,minmax(0,1fr))}.scenario-work>.sop-3col>.sop-col:nth-child(3){grid-column:auto;display:flex}}
@media(max-width:1100px){.conditions-studio,.scenario-studio{grid-template-columns:1fr}.condition-rail,.scenario-rail{position:static;display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));overflow-x:auto}.condition-rail-head,.scenario-rail-head{grid-column:1/-1}.scenario-duplicate{min-width:150px}.condition-context{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.condition-rail,.scenario-rail{grid-template-columns:repeat(3,minmax(210px,78vw));padding:8px}.condition-hero,.scenario-hero{align-items:flex-start;flex-wrap:wrap;padding:14px}.condition-hero>div:first-child,.scenario-title{flex:1 1 calc(100% - 100px)}.condition-hero>.btn{width:100%}.scenario-hero>label{order:3;width:100%}.condition-context{display:flex;overflow-x:auto}.condition-context>div{flex:0 0 170px}.eg-row{grid-template-columns:28px minmax(0,1fr)}.eg-actions{grid-column:2;flex-wrap:wrap}.eg-actions .btn{flex:1}.condition-assets>header{align-items:flex-start;flex-direction:column}.condition-assets>header small{text-align:left}.scenario-work>.sop-3col{grid-template-columns:1fr}.scenario-work>.sop-3col>.sop-col:nth-child(3){grid-column:auto;display:flex}.scenario-inherits{padding:8px}.engineering-guard>header{align-items:flex-start}.engineering-guard>header strong{flex:none}}
@media(prefers-reduced-motion:reduce){.condition-rail-item,.scenario-rail-item{transition:none}}
/* Build 1001 — persistent well categories + review-first whole-well import */
.np-help{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.35}
.hh-category-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 12px;scrollbar-width:none}
.hh-category-tabs::-webkit-scrollbar{display:none}
.hh-category-tabs button{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);padding:8px 12px;font-weight:750;cursor:pointer}
.hh-category-tabs button b{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;border-radius:999px;background:color-mix(in srgb,var(--muted) 12%,transparent);font-size:11px}
.hh-category-tabs button.on{border-color:var(--blue,#2f7bff);background:color-mix(in srgb,var(--blue,#2f7bff) 11%,var(--panel));color:var(--blue,#2f7bff)}
.hh-category-section{grid-column:1/-1;display:block;margin:2px 0 14px}
.hh-category-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 2px 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.hh-category-section>header>div{display:flex;align-items:center;gap:8px;min-width:0}.hh-category-section h3{margin:0;font-size:15px;color:var(--ink)}
.hh-category-section header em{font-style:normal;font-size:12px;color:var(--muted)}
.hh-category-section header button,.hh-cat-move{border:0;background:transparent;color:var(--blue,#2f7bff);font-size:12px;font-weight:750;cursor:pointer}
.hh-category-mark{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:color-mix(in srgb,var(--blue,#2f7bff) 12%,transparent);color:var(--blue,#2f7bff)}
.hh-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.hh-category-grid .proj-card{min-width:0}.hh-cat-move{padding:5px 2px;margin-right:8px}
.hh-cat-modal p{color:var(--muted);line-height:1.5}.hh-cat-modal>label{display:block;margin:18px 0 7px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.hh-cat-modal>input{width:100%;box-sizing:border-box}.hh-cat-modal .mc-acts{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.hwi{min-width:0}.hwi-head{padding-right:42px}.hwi-head h3{margin:5px 0 4px;font-size:24px}.hwi-head p{margin:0;color:var(--muted)}
.hwi-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:18px;margin-top:20px}.hwi-grid>section{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--panel)}
.hwi-grid h4{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.hwi-checks{display:grid;grid-template-columns:1fr 1fr;gap:7px;list-style:none;padding:0;margin:0}.hwi-checks li{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:9px;min-width:0}.hwi-checks i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-style:normal;font-weight:900;flex:0 0 auto}.hwi-checks .ok i{background:color-mix(in srgb,#22b573 15%,transparent);color:#15945c}.hwi-checks .review i{background:color-mix(in srgb,#e29a18 16%,transparent);color:#b4770a}.hwi-checks span{min-width:0}.hwi-checks b,.hwi-checks small{display:block}.hwi-checks b{font-size:12px}.hwi-checks small{color:var(--muted);font-size:11px;margin-top:2px}
.hwi-warning,.hwi-good{display:flex;flex-direction:column;gap:3px;margin-top:12px;border-radius:12px;padding:11px 12px;font-size:12px}.hwi-warning{background:color-mix(in srgb,#e29a18 12%,transparent);border:1px solid color-mix(in srgb,#e29a18 40%,var(--line))}.hwi-good{background:color-mix(in srgb,#22b573 10%,transparent);border:1px solid color-mix(in srgb,#22b573 35%,var(--line))}.hwi-warning span,.hwi-good span{color:var(--muted);line-height:1.4}
.hwi-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hwi-choice{display:flex;gap:9px;border:1px solid var(--line);border-radius:12px;padding:11px;cursor:pointer}.hwi-choice.on{border-color:var(--blue,#2f7bff);background:color-mix(in srgb,var(--blue,#2f7bff) 9%,transparent)}.hwi-choice input{margin-top:2px}.hwi-choice b,.hwi-choice small{display:block}.hwi-choice b{font-size:12px}.hwi-choice small{margin-top:3px;color:var(--muted);line-height:1.3}
.hwi-form{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}.hwi-form label{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.hwi-form input{display:block;width:100%;box-sizing:border-box;margin-top:6px;text-transform:none;letter-spacing:normal}.hwi-form.disabled{opacity:.42;pointer-events:none}.hwi-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px}.hwi-foot p{margin:0;color:var(--muted);font-size:12px}.hwi-foot>div{display:flex;gap:8px;flex:0 0 auto}
.hw-design-guard{margin:10px 0 14px;padding:11px 13px;border-radius:12px;line-height:1.35}.hw-design-guard>b{display:block;margin-bottom:5px;font-size:12px}.hw-design-guard p{margin:4px 0;font-size:11.5px}.hw-design-guard p em{display:block;margin-top:1px;color:var(--muted);font-style:normal}
@media(max-width:900px){.hwi-grid{grid-template-columns:1fr}.hwi-checks{grid-template-columns:1fr 1fr}.hh-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.hh-category-grid,.hwi-checks,.hwi-form,.hwi-choices{grid-template-columns:1fr}.hwi-foot{align-items:stretch;flex-direction:column}.hwi-foot>div{display:grid;grid-template-columns:1fr 1fr}.hh-category-section>header button{display:none}}

/* Build 1003 — explicit Analyze panel controls and a usable MPD overlay. */
.hw-well-toggle-clear,.hw-well-dismiss{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:29px;padding:5px 9px;
  border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);
  font:700 10px/1 var(--mc-ui,inherit);white-space:nowrap;cursor:pointer
}
.hw-well-toggle-clear:hover,.hw-well-dismiss:hover{color:var(--blue);border-color:var(--blue)}
.hw-well-toggle-clear.on{color:var(--blue);background:color-mix(in srgb,var(--blue) 8%,var(--card))}
.hw-well-toggle-clear svg,.hw-well-dismiss svg,.hw-wellshow svg{width:13px;height:13px;flex:none}
.hw-well-dismiss{margin-left:auto;min-height:25px;padding:4px 7px;font-size:9px}
.hw-wellshow{writing-mode:horizontal-tb!important;top:8px!important;left:8px!important;transform:none!important;padding:7px 9px!important}
.hw-wellshow>span{writing-mode:horizontal-tb!important}
body.hydro-focus .hydro-app.charts-mode .hw-engdock.floating{display:flex!important}
@media(max-width:1000px){
  .hydro-app.charts-mode .hw-anrow.wellhid .hw-wellshow{display:inline-flex!important}
}

/* Build 1004 — unmistakable well visibility + confirm-before-solve numeric editing. */
.mr-item.mr-special-well{
  --special:#42a5ff;border-color:color-mix(in srgb,var(--special) 42%,var(--line));
  background:color-mix(in srgb,var(--special) 11%,transparent)
}
.mr-item.mr-special-well .mr-ic{width:30px;height:27px;border-radius:9px;background:color-mix(in srgb,var(--special) 16%,transparent)}
.mr-item.mr-special-well .mr-ic svg{width:21px!important;height:21px!important;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--special) 58%,transparent))}
.mr-item.mr-special-well .mr-l{font-size:8px!important;color:var(--ink);letter-spacing:.025em!important}
.hw-well-toggle-clear,.hw-well-dismiss,.hw-wellshow{
  border-color:color-mix(in srgb,var(--blue) 62%,var(--line))!important;
  color:var(--blue)!important;background:color-mix(in srgb,var(--blue) 11%,var(--card))!important;
  box-shadow:0 7px 18px -13px color-mix(in srgb,var(--blue) 90%,transparent)
}
.hw-well-toggle-clear svg,.hw-well-dismiss svg,.hw-wellshow svg{width:17px!important;height:17px!important;stroke-width:2!important}
.hw-well-dismiss{min-height:31px;padding:6px 10px;font-size:10px}
.hw-wellshow{min-height:38px;padding:9px 13px!important;font-size:11px!important;font-weight:850!important;letter-spacing:.02em}

.hw-input-draft{
  outline:2px solid color-mix(in srgb,#f2b534 76%,transparent)!important;
  outline-offset:1px;background:color-mix(in srgb,#f2b534 10%,var(--card))!important
}
.hw-input-invalid{outline-color:var(--rbad,#ef6060)!important;background:color-mix(in srgb,var(--rbad,#ef6060) 9%,var(--card))!important}
.has-draft{position:relative}
.has-draft::after{
  content:"ENTER TO APPLY";position:absolute;right:7px;bottom:3px;z-index:4;pointer-events:none;
  border-radius:999px;padding:2px 5px;background:#f2b534;color:#251b00;
  font:850 7px/1 var(--mc-ui,inherit);letter-spacing:.055em;white-space:nowrap
}
.cpk-zh-tag.is-draft{color:#f2b534!important;border-color:color-mix(in srgb,#f2b534 48%,var(--line))!important;background:color-mix(in srgb,#f2b534 9%,transparent)!important}
@media(max-width:700px){
  .has-draft::after{right:4px;bottom:2px;font-size:6px}
  .hw-wellshow{min-height:42px;padding:10px 14px!important}
}
