/* ===== NeyroCog — design tokens only (Tailwind utilities own all components) =====
   This file is intentionally limited to: @font-face, design-system token vars
   (:root + [data-theme]), base document setup (global font), scrollbar, and
   @keyframes. Every UI primitive is built from Tailwind utilities in
   the JSX/HTML — there are NO component classes here. */

/* Design-system fonts (Outfit = global sans, JetBrains Mono = numeric/code accents)
   are loaded EARLY via <link> in index.html <head> for reliable, swap-free rendering.
   (Previously @import here — moved to a head <link> to avoid the FOUT/overlap bug.) */

:root {
  /* Surfaces */
  --bg:        #FFFFFF;
  --surface:   #FFFFFF;
  --surface-2: #F6F8FA;
  --surface-3: #EFF2F5;
  --page:      #F4F6F8;
  --bone:      #F5F1E8;  /* warm off-white — readable on bg-ink (dark) surfaces in light theme */

  --ink:       #1F2328;
  --ink-2:     #404954;
  --ink-3:     #59636E;
  --ink-4:     #66707E;

  --border:    #D1D9E0;
  --border-strong: #BCC4CD;
  --divider:   #E4E8EC;

  /* Primary — clinical teal */
  --primary:       #0F766E;
  --primary-hover: #0E6B63;
  --primary-press: #115E59;
  --primary-soft:  #CCFBF1;
  --primary-soft-2:#F0FDFA;
  --primary-ring:  rgba(15, 118, 110, 0.30);

  /* Accent — blue for links/info */
  --accent:        #0969DA;
  --accent-soft:   #DDF4FF;
  --link:          #0969DA;

  /* Semantic */
  --ok:        #1A7F37;  --ok-bg:   #DAFBE1;
  --warn:      #9A6700;  --warn-bg: #FFF8C5;
  --err:       #CF222E;  --err-bg:  #FFEBE9;
  --info:      #0969DA;  --info-bg: #DDF4FF;

  /* Type */
  --font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Radii */
  --r-sm: 6px;
  --r-md: 6px;
  --r-lg: 8px;
  --r-xl: 12px;
  --r-pill: 999px;

  /* Shadows */
  --shadow-xs: 0 1px 0 rgba(31, 35, 40, 0.04);
  --shadow-sm: 0 1px 2px rgba(27, 31, 36, 0.06), 0 1px 1px -1px rgba(27, 31, 36, 0.05);
  --shadow-md: 0 3px 6px rgba(140, 149, 159, 0.15), 0 0 0 1px rgba(31,35,40,0.04);
  --shadow-lg: 0 8px 24px rgba(140, 149, 159, 0.2);

  /* Motion */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur: 170ms;

  /* Layout */
  --header-h: 56px;
  --content-max: 1280px;        /* unified app width */
  --content-max-wide: 1280px;   /* unified app width */
}

/* ===== Dark theme tokens ===== */
[data-theme="dark"] {
  --bg:        #0D1117;
  --surface:   #0D1117;
  --surface-2: #161B22;
  --surface-3: #21262D;
  --page:      #010409;
  --bone:      #0D1117;  /* dark — readable on bg-ink (which is light in dark theme) */

  --ink:       #E6EDF3;
  --ink-2:     #C9D1D9;
  --ink-3:     #8B949E;
  --ink-4:     #848F9C;

  --border:    #30363D;
  --border-strong: #3D444D;
  --divider:   #21262D;

  --primary:       #2DD4BF;
  --primary-hover: #5EEAD4;
  --primary-press: #14B8A6;
  --primary-soft:  #134E4A;
  --primary-soft-2:#0F3A37;
  --primary-ring:  rgba(45, 212, 191, 0.28);

  --accent:        #2F81F7;  --accent-soft:   #121D2F;  --link: #2F81F7;

  --ok:   #3FB950;  --ok-bg:   #0F2417;
  --warn: #D29922;  --warn-bg: #272115;
  --err:  #F85149;  --err-bg:  #25171A;
  --info: #2F81F7;  --info-bg: #121D2F;

  --shadow-xs: 0 0 transparent;
  --shadow-sm: 0 0 transparent;
  --shadow-md: 0 3px 6px rgba(1, 4, 9, 0.5), 0 0 0 1px #30363D;
  --shadow-lg: 0 8px 24px rgba(1, 4, 9, 0.6);

  color-scheme: dark;
}

/* ===== Base document — global font + reset (font set once, inherited everywhere) ===== */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: hidden; }
html, body { margin: 0; padding: 0; min-height: 100%; }
body {
  font-family: var(--font-sans);
  background: var(--page);
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.5;
  letter-spacing: -0.003em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}
#root { min-height: 100vh; }

/* Touch ergonomics base */
button, [role="button"], input, select, textarea, a { touch-action: manipulation; }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: rgba(15, 23, 42, 0.14); border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: rgba(15, 23, 42, 0.26); }
::-webkit-scrollbar-track { background: transparent; }

/* ===== Keyframes (referenced by Tailwind arbitrary animate-[...] utilities) ===== */
@keyframes kttPop { 0% { transform: scale(0.2); opacity: 0; } 70% { transform: scale(1.15); } 100% { transform: scale(1); opacity: 1; } }
@keyframes kttFadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kttFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes kttScaleIn { from { opacity: 0; transform: scale(0.97); } to { opacity: 1; transform: scale(1); } }
@keyframes kttShimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }
@keyframes kttSpin { to { transform: rotate(360deg); } }
@keyframes kttBounce { 0%, 80%, 100% { transform: scale(0.5); opacity: 0.5; } 40% { transform: scale(1); opacity: 1; } }
@keyframes kttPulse { 0%, 100% { opacity: 0.5; } 50% { opacity: 0.92; } }

/* (Ant Design removed in PWA 71 — RSuite is the field kit; see ktt-rsuite.js) */

/* React DayPicker (daypicker.dev) — themed to design tokens (PWA 71). The base
   layout comes from DayPicker's own stylesheet; these rules recolor it to the
   active light/dark theme via the --* tokens. */
.ktt-daypicker .rdp-root {
  --rdp-accent-color: var(--primary);
  --rdp-accent-background-color: var(--primary-soft);
  --rdp-background-color: var(--surface);
  --rdp-today-color: var(--primary);
  font-family: var(--font-sans);
  color: var(--ink);
  margin: 0;
}
.ktt-daypicker .rdp-month_caption, .ktt-daypicker .rdp-caption_label { color: var(--ink); font-weight: 700; }
.ktt-daypicker .rdp-dropdowns { display: flex; width: 100%; align-items: center; gap: 6px; }
.ktt-daypicker .rdp-months_dropdown { margin-right: auto; }
.ktt-daypicker .rdp-years_dropdown { margin-left: auto; margin-right: auto; padding-left: 10px; }
.ktt-daypicker .rdp-weekday { color: var(--ink-3); font-weight: 600; }
.ktt-daypicker .rdp-day_button { color: var(--ink); border-radius: var(--r-md); }
.ktt-daypicker .rdp-day_button:hover { background: var(--primary-soft); color: var(--primary-press); }
.ktt-daypicker .rdp-selected .rdp-day_button { background: var(--primary-soft); color: var(--primary-press); border-color: var(--primary); font-weight: 700; }
.ktt-daypicker .rdp-today:not(.rdp-selected) .rdp-day_button { color: var(--primary); font-weight: 800; }
.ktt-daypicker .rdp-outside .rdp-day_button { color: var(--ink-4); }
.ktt-daypicker .rdp-chevron { fill: var(--ink-3); }
.ktt-daypicker .rdp-button_previous:hover .rdp-chevron,
.ktt-daypicker .rdp-button_next:hover .rdp-chevron { fill: var(--primary); }

/* ===== FilePond photo uploader (react-filepond) — themed to design tokens =====
   Base layout/behaviour comes from FilePond's own stylesheet; these rules recolor
   it to the active light/dark theme and shape it into a compact circular avatar
   picker. Scoped to .ktt-filepond so it never affects other FilePond instances. */
.ktt-filepond { width: 160px; max-width: 100%; }
.ktt-filepond .filepond--root { margin: 0; font-family: var(--font-sans); font-size: 12px; }
.ktt-filepond .filepond--panel-root { background: var(--surface-2); border: 2px dashed var(--border-strong); }
.ktt-filepond .filepond--drop-label { color: var(--ink-3); }
.ktt-filepond .filepond--drop-label label { font-size: 12px; line-height: 1.35; padding: 8px; }
.ktt-filepond .filepond--label-action { color: var(--primary); text-decoration-color: var(--primary); font-weight: 600; }
.ktt-filepond .filepond--drip-blob { background: var(--primary); }
.ktt-filepond .filepond--file-action-button { background: rgba(15, 23, 42, 0.55); color: #fff; cursor: pointer; }
.ktt-filepond .filepond--file-action-button:hover { background: var(--primary); }
.ktt-filepond .filepond--file-info { display: none; }
.ktt-filepond .filepond--credits { display: none; }
.ktt-filepond .filepond--label-action:hover { color: var(--primary-press); }

/* ===== Unified modal backdrop (matches the SweetAlert2 dialog scrim) =====
   One class for every app modal so the dimmed/blurred backdrop is identical to
   the themed SweetAlert2 dialogs. Theme-aware. Used as `ktt-modal-backdrop`
   instead of Tailwind arbitrary bg/blur (which the Play-CDN JIT was dropping
   for dynamically-mounted overlays). */
.ktt-modal-backdrop { background: rgba(6, 46, 43, 0.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
[data-theme="dark"] .ktt-modal-backdrop { background: rgba(1, 20, 18, 0.68); }

/* ===== Reduced motion — entrance animations resolve instantly to final state ===== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ===== Tweakable: bold button & link text (default ON; toggle via Tweaks panel) =====
   Driven by [data-bold-controls] on <html> and --control-weight. Uses !important so it
   wins over per-element Tailwind font-weight utilities (font-medium / font-semibold).
   Targets button/link LABELS — paragraphs (descriptions) inside card-style buttons
   are excluded so body copy stays its natural weight. */
html[data-bold-controls="on"] button,
html[data-bold-controls="on"] a,
html[data-bold-controls="on"] [role="button"],
html[data-bold-controls="on"] button *,
html[data-bold-controls="on"] a *,
html[data-bold-controls="on"] [role="button"] * {
  font-weight: var(--control-weight, 700) !important;
}
/* …but never bold descriptive paragraph text (e.g. exercise-card descriptions) */
html[data-bold-controls="on"] button p,
html[data-bold-controls="on"] a p,
html[data-bold-controls="on"] [role="button"] p,
html[data-bold-controls="on"] button p *,
html[data-bold-controls="on"] a p *,
html[data-bold-controls="on"] [role="button"] p * {
  font-weight: 400 !important;
}

/* ===== Guided tour (driver.js) — themed to the NeyroCog design system ===== */
.driver-popover.ktt-tour {
  background: var(--surface); color: var(--ink);
  border: 1px solid var(--border); border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg); font-family: var(--font-sans); max-width: 326px;
}
.driver-popover.ktt-tour .driver-popover-title { font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: -0.01em; }
.driver-popover.ktt-tour .driver-popover-description { font-size: 13px; line-height: 1.5; color: var(--ink-2); }
.driver-popover.ktt-tour .driver-popover-progress-text { font-size: 11px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.driver-popover.ktt-tour .driver-popover-footer button {
  font-family: var(--font-sans); font-weight: 600; font-size: 12.5px;
  border-radius: var(--r-md); text-shadow: none; padding: 6px 13px; transition: background var(--dur) var(--ease);
}
.driver-popover.ktt-tour .driver-popover-next-btn { background: var(--primary); color: #fff; border: 1px solid var(--primary); }
.driver-popover.ktt-tour .driver-popover-next-btn:hover { background: var(--primary-hover); color: #fff; }
.driver-popover.ktt-tour .driver-popover-prev-btn { background: var(--surface-2); color: var(--ink-2); border: 1px solid var(--border-strong); }
.driver-popover.ktt-tour .driver-popover-prev-btn:hover { background: var(--surface-3); }
.driver-popover.ktt-tour .driver-popover-close-btn { color: var(--ink-3); }
.driver-popover.ktt-tour .driver-popover-close-btn:hover { color: var(--ink); }
.driver-popover.ktt-tour .driver-popover-arrow-side-left.driver-popover-arrow { border-left-color: var(--surface); }
.driver-popover.ktt-tour .driver-popover-arrow-side-right.driver-popover-arrow { border-right-color: var(--surface); }
.driver-popover.ktt-tour .driver-popover-arrow-side-top.driver-popover-arrow { border-top-color: var(--surface); }
.driver-popover.ktt-tour .driver-popover-arrow-side-bottom.driver-popover-arrow { border-bottom-color: var(--surface); }


/* react-phone-number-input — single international input themed to design tokens */
.PhoneInput { display: flex; align-items: center; gap: 8px; height: 46px; padding: 0 12px; border: 1px solid var(--border-strong); border-radius: 10px; background: var(--surface); }
.PhoneInput:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-ring); }
.PhoneInputInput { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: 500 14px/1.2 "Outfit", system-ui, sans-serif; }
.PhoneInputCountry { gap: 4px; }
.PhoneInputCountrySelect { color: var(--ink); }
.PhoneInputCountryIcon { box-shadow: 0 0 0 1px var(--border); border-radius: 3px; }
.PhoneInputCountrySelectArrow { color: var(--ink-3); opacity: .8; }
/* ===== RSuite (rsuitejs.com) — themed to design tokens (PWA 71) ===== */
:root, .rs-theme-light, .rs-theme-dark {
  --rs-primary-50: var(--primary-soft-2);
  --rs-primary-100: var(--primary-soft);
  --rs-primary-200: var(--primary-soft);
  --rs-primary-500: var(--primary);
  --rs-primary-600: var(--primary-hover);
  --rs-primary-700: var(--primary-press);
  --rs-color-focus-ring: 0 0 0 3px var(--primary-ring);
}
.rs-input, .rs-input-number, .rs-picker-toggle, .rs-input-group, .rs-picker, .rs-checkbox-label, .rs-toggle { font-family: var(--font-sans); }
.rs-input, .rs-input-lg, .rs-input-group .rs-input { font-weight: 700; }
.rs-input, .rs-input-group, .rs-input-number, .rs-picker-select { width: 100%; }
.rs-input-lg, .rs-input-group-lg, .rs-input-group-lg .rs-input, .rs-input-number-lg, .rs-picker-toggle-lg { min-height: 46px; }
.rs-input-group-lg > .rs-input { height: 44px; }
.rs-picker-toggle-lg { display: flex; align-items: center; }
/* RSuite overlays (picker menus, popovers, tooltips) must float above modals
   (modal backdrop is z-300). Default rsuite z-index here resolves too low. */
.rs-picker-popup, .rs-picker-menu, .rs-picker-select-menu, .rs-picker-check-menu,
.rs-popover, .rs-tooltip, .rs-dropdown-menu { z-index: 2000 !important; }
.ktt-rs-err > .rs-input, .ktt-rs-err > .rs-input-group, .ktt-rs-err .rs-picker-toggle { border-color: var(--err) !important; }

/* ===== Patient (child) skin — friendlier touch targets + softer shapes =====
   Applied only when a patient account is signed in (data-account on <html>). */
html[data-account="patient"] button,
html[data-account="patient"] [role="button"] { min-height: 44px; border-radius: 12px; }
html[data-account="patient"] .card { border-radius: 18px; }
html[data-account="patient"] { font-size: 15.5px; }

/* ===== Touch devices (any account) — comfortable ≥44px tap targets =====
   Scoped to COARSE pointers (touch), so the dense fine-pointer (mouse) clinical
   desktop layout is unaffected — meets WCAG 2.5.5 / Apple HIG on phones & tablets
   without sacrificing desktop density. (Verify on a real touch device.) */
@media (pointer: coarse) {
  button:not(:disabled), [role="button"], select, summary { min-height: 44px; }
  button.w-6.h-6, button.w-7.h-7, button.w-8.h-8, button.w-9.h-9 { min-width: 44px; min-height: 44px; }
}

/* ===== Clinical readability floor — legible data, headers & status across ALL screens =====
   Medical UX / WCAG: clinicians read for long sessions and decisions are costly, so no
   content text drops below 14px. Tailwind (Play CDN) injects utilities AFTER app.css, so
   !important is required to win the cascade. Scoped to table content + status pills so
   decorative micro-text (avatar initials, count bubbles) keeps its compact size. */
table td { font-size: 15px !important; line-height: 1.45; }            /* body data cells */
table th { font-size: 14px !important; letter-spacing: 0.02em; }       /* column headers */
/* status / group / risk / rehab pills that live inside data tables */
table td [class*="rounded-full"]:not(.w-1\.5):not(.w-2) { font-size: 13.5px !important; font-weight: 500; }

/* ===== Maximum font size — HARD CAP every text element at 1.2rem (whole project) =====
   Per request: NO font anywhere may exceed 1.2rem (≈19.2px). Every Tailwind named size
   class (text-xl … text-9xl) and every arbitrary text-[Npx] from 20px upward is clamped
   to 1.2rem. Tailwind (Play CDN) injects after app.css, so !important is required.
   NOTE: this now also clamps the cognitive-test / training STIMULI glyphs (N-back,
   task-switch, reaction, digit-span) — previously exempt — because the cap is universal. */
.text-xl,
.text-2xl,
.text-3xl,
.text-4xl,
.text-5xl,
.text-6xl,
.text-7xl,
.text-8xl,
.text-9xl,
.text-\[20px\],
.text-\[21px\],
.text-\[22px\],
.text-\[23px\],
.text-\[24px\],
.text-\[25px\],
.text-\[26px\],
.text-\[27px\],
.text-\[28px\],
.text-\[29px\],
.text-\[30px\],
.text-\[31px\],
.text-\[32px\],
.text-\[33px\],
.text-\[34px\],
.text-\[35px\],
.text-\[36px\],
.text-\[37px\],
.text-\[38px\],
.text-\[39px\],
.text-\[40px\],
.text-\[41px\],
.text-\[42px\],
.text-\[43px\],
.text-\[44px\],
.text-\[45px\],
.text-\[46px\],
.text-\[47px\],
.text-\[48px\],
.text-\[49px\],
.text-\[50px\],
.text-\[51px\],
.text-\[52px\],
.text-\[53px\],
.text-\[54px\],
.text-\[55px\],
.text-\[56px\],
.text-\[57px\],
.text-\[58px\],
.text-\[59px\],
.text-\[60px\],
.text-\[61px\],
.text-\[62px\],
.text-\[63px\],
.text-\[64px\],
.text-\[65px\],
.text-\[66px\],
.text-\[67px\],
.text-\[68px\],
.text-\[69px\],
.text-\[70px\],
.text-\[71px\],
.text-\[72px\],
.text-\[73px\],
.text-\[74px\],
.text-\[75px\],
.text-\[76px\],
.text-\[77px\],
.text-\[78px\],
.text-\[79px\],
.text-\[80px\],
.text-\[81px\],
.text-\[82px\],
.text-\[83px\],
.text-\[84px\],
.text-\[85px\],
.text-\[86px\],
.text-\[87px\],
.text-\[88px\],
.text-\[89px\],
.text-\[90px\],
.text-\[91px\],
.text-\[92px\],
.text-\[93px\],
.text-\[94px\],
.text-\[95px\],
.text-\[96px\],
.text-\[97px\],
.text-\[98px\],
.text-\[99px\],
.text-\[100px\],
.text-\[101px\],
.text-\[102px\],
.text-\[103px\],
.text-\[104px\],
.text-\[105px\],
.text-\[106px\],
.text-\[107px\],
.text-\[108px\],
.text-\[109px\],
.text-\[110px\],
.text-\[111px\],
.text-\[112px\],
.text-\[113px\],
.text-\[114px\],
.text-\[115px\],
.text-\[116px\],
.text-\[117px\],
.text-\[118px\],
.text-\[119px\],
.text-\[120px\],
.text-\[121px\],
.text-\[122px\],
.text-\[123px\],
.text-\[124px\],
.text-\[125px\],
.text-\[126px\],
.text-\[127px\],
.text-\[128px\],
.text-\[129px\],
.text-\[130px\],
.text-\[131px\],
.text-\[132px\],
.text-\[133px\],
.text-\[134px\],
.text-\[135px\],
.text-\[136px\],
.text-\[137px\],
.text-\[138px\],
.text-\[139px\],
.text-\[140px\],
.text-\[141px\],
.text-\[142px\],
.text-\[143px\],
.text-\[144px\],
.text-\[145px\],
.text-\[146px\],
.text-\[147px\],
.text-\[148px\],
.text-\[149px\],
.text-\[150px\],
.text-\[151px\],
.text-\[152px\],
.text-\[153px\],
.text-\[154px\],
.text-\[155px\],
.text-\[156px\],
.text-\[157px\],
.text-\[158px\],
.text-\[159px\],
.text-\[160px\],
.text-\[161px\],
.text-\[162px\],
.text-\[163px\],
.text-\[164px\],
.text-\[165px\],
.text-\[166px\],
.text-\[167px\],
.text-\[168px\],
.text-\[169px\],
.text-\[170px\],
.text-\[171px\],
.text-\[172px\],
.text-\[173px\],
.text-\[174px\],
.text-\[175px\],
.text-\[176px\],
.text-\[177px\],
.text-\[178px\],
.text-\[179px\],
.text-\[180px\],
.text-\[181px\],
.text-\[182px\],
.text-\[183px\],
.text-\[184px\],
.text-\[185px\],
.text-\[186px\],
.text-\[187px\],
.text-\[188px\],
.text-\[189px\],
.text-\[190px\],
.text-\[191px\],
.text-\[192px\],
.text-\[193px\],
.text-\[194px\],
.text-\[195px\],
.text-\[196px\],
.text-\[197px\],
.text-\[198px\],
.text-\[199px\],
.text-\[200px\],
.text-\[201px\],
.text-\[202px\],
.text-\[203px\],
.text-\[204px\],
.text-\[205px\],
.text-\[206px\],
.text-\[207px\],
.text-\[208px\],
.text-\[209px\],
.text-\[210px\],
.text-\[211px\],
.text-\[212px\],
.text-\[213px\],
.text-\[214px\],
.text-\[215px\],
.text-\[216px\],
.text-\[217px\],
.text-\[218px\],
.text-\[219px\],
.text-\[220px\],
.text-\[221px\],
.text-\[222px\],
.text-\[223px\],
.text-\[224px\],
.text-\[225px\],
.text-\[226px\],
.text-\[227px\],
.text-\[228px\],
.text-\[229px\],
.text-\[230px\],
.text-\[231px\],
.text-\[232px\],
.text-\[233px\],
.text-\[234px\],
.text-\[235px\],
.text-\[236px\],
.text-\[237px\],
.text-\[238px\],
.text-\[239px\],
.text-\[240px\],
.text-\[241px\],
.text-\[242px\],
.text-\[243px\],
.text-\[244px\],
.text-\[245px\],
.text-\[246px\],
.text-\[247px\],
.text-\[248px\],
.text-\[249px\],
.text-\[250px\],
.text-\[251px\],
.text-\[252px\],
.text-\[253px\],
.text-\[254px\],
.text-\[255px\],
.text-\[256px\],
.text-\[257px\],
.text-\[258px\],
.text-\[259px\],
.text-\[260px\],
.text-\[261px\],
.text-\[262px\],
.text-\[263px\],
.text-\[264px\],
.text-\[265px\],
.text-\[266px\],
.text-\[267px\],
.text-\[268px\],
.text-\[269px\],
.text-\[270px\],
.text-\[271px\],
.text-\[272px\],
.text-\[273px\],
.text-\[274px\],
.text-\[275px\],
.text-\[276px\],
.text-\[277px\],
.text-\[278px\],
.text-\[279px\],
.text-\[280px\],
.text-\[281px\],
.text-\[282px\],
.text-\[283px\],
.text-\[284px\],
.text-\[285px\],
.text-\[286px\],
.text-\[287px\],
.text-\[288px\],
.text-\[289px\],
.text-\[290px\],
.text-\[291px\],
.text-\[292px\],
.text-\[293px\],
.text-\[294px\],
.text-\[295px\],
.text-\[296px\],
.text-\[297px\],
.text-\[298px\],
.text-\[299px\],
.text-\[300px\],
.text-\[301px\],
.text-\[302px\],
.text-\[303px\],
.text-\[304px\],
.text-\[305px\],
.text-\[306px\],
.text-\[307px\],
.text-\[308px\],
.text-\[309px\],
.text-\[310px\],
.text-\[311px\],
.text-\[312px\],
.text-\[313px\],
.text-\[314px\],
.text-\[315px\],
.text-\[316px\],
.text-\[317px\],
.text-\[318px\],
.text-\[319px\],
.text-\[320px\],
.text-\[321px\],
.text-\[322px\],
.text-\[323px\],
.text-\[324px\],
.text-\[325px\],
.text-\[326px\],
.text-\[327px\],
.text-\[328px\],
.text-\[329px\],
.text-\[330px\],
.text-\[331px\],
.text-\[332px\],
.text-\[333px\],
.text-\[334px\],
.text-\[335px\],
.text-\[336px\],
.text-\[337px\],
.text-\[338px\],
.text-\[339px\],
.text-\[340px\],
.text-\[341px\],
.text-\[342px\],
.text-\[343px\],
.text-\[344px\],
.text-\[345px\],
.text-\[346px\],
.text-\[347px\],
.text-\[348px\],
.text-\[349px\],
.text-\[350px\],
.text-\[351px\],
.text-\[352px\],
.text-\[353px\],
.text-\[354px\],
.text-\[355px\],
.text-\[356px\],
.text-\[357px\],
.text-\[358px\],
.text-\[359px\],
.text-\[360px\],
.text-\[361px\],
.text-\[362px\],
.text-\[363px\],
.text-\[364px\],
.text-\[365px\],
.text-\[366px\],
.text-\[367px\],
.text-\[368px\],
.text-\[369px\],
.text-\[370px\],
.text-\[371px\],
.text-\[372px\],
.text-\[373px\],
.text-\[374px\],
.text-\[375px\],
.text-\[376px\],
.text-\[377px\],
.text-\[378px\],
.text-\[379px\],
.text-\[380px\],
.text-\[381px\],
.text-\[382px\],
.text-\[383px\],
.text-\[384px\],
.text-\[385px\],
.text-\[386px\],
.text-\[387px\],
.text-\[388px\],
.text-\[389px\],
.text-\[390px\],
.text-\[391px\],
.text-\[392px\],
.text-\[393px\],
.text-\[394px\],
.text-\[395px\],
.text-\[396px\],
.text-\[397px\],
.text-\[398px\],
.text-\[399px\],
.text-\[400px\],
.t-h1, .t-h2, .t-h3, .t-h4, .t-lead {
  font-size: 1.2rem !important;
}

/* ===== Form inputs — uniform 1rem, regular weight across the WHOLE app =====
   Applies to EVERY form / input type (text, date, time, number, select,
   rsuite pickers, phone). !important wins over per-input Tailwind
   text-[Npx] / font-bold utilities and the rsuite font-weight:700 rule. */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
textarea,
select,
.rs-input, .rs-input-lg, .rs-input-group .rs-input, .rs-input-number-input,
.rs-picker-toggle, .rs-picker-toggle-textbox, .rs-picker-toggle-value, .rs-picker-toggle-placeholder,
.rs-calendar-time-dropdown-cell, .rs-checkbox-label, .rs-toggle-inner,
.ktt-daypicker input, .ktt-daypicker .rdp-dropdown,
.PhoneInputInput { font-size: 1rem !important; font-weight: 400 !important; }

/* New-patient / edit-patient modal — uniform content typography (per request):
   one font size (0.8rem) for everything in the modal, title at 0.9rem.
   The explicit input/picker selectors carry an extra class so they outrank
   the global 1rem input rule above. */
[data-npm] *,
[data-npm] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
[data-npm] textarea, [data-npm] select,
[data-npm] .rs-input, [data-npm] .rs-input-lg, [data-npm] .rs-input-group .rs-input,
[data-npm] .rs-picker-toggle, [data-npm] .rs-picker-toggle-textbox,
[data-npm] .rs-picker-toggle-value, [data-npm] .rs-picker-toggle-placeholder {
  font-size: 0.8rem !important;
}
[data-npm] h3 { font-size: 0.9rem !important; }

/* ===== Re-exempt cognitive-test / training STIMULI from the 1.2rem cap =====
   The hard cap above clamps every text-[Npx]; but the diagnostic-test and
   training stimulus glyphs (digit-span number, N-back / task-switch letters,
   reaction-time prompt, etc.) MUST stay large. Sizes >=56px are used only by
   those stimuli, so restoring them to their literal size un-caps the stimuli
   without affecting any normal UI text. */
.text-\[56px\] { font-size: 56px !important; }
.text-\[57px\] { font-size: 57px !important; }
.text-\[58px\] { font-size: 58px !important; }
.text-\[59px\] { font-size: 59px !important; }
.text-\[60px\] { font-size: 60px !important; }
.text-\[61px\] { font-size: 61px !important; }
.text-\[62px\] { font-size: 62px !important; }
.text-\[63px\] { font-size: 63px !important; }
.text-\[64px\] { font-size: 64px !important; }
.text-\[65px\] { font-size: 65px !important; }
.text-\[66px\] { font-size: 66px !important; }
.text-\[67px\] { font-size: 67px !important; }
.text-\[68px\] { font-size: 68px !important; }
.text-\[69px\] { font-size: 69px !important; }
.text-\[70px\] { font-size: 70px !important; }
.text-\[71px\] { font-size: 71px !important; }
.text-\[72px\] { font-size: 72px !important; }
.text-\[73px\] { font-size: 73px !important; }
.text-\[74px\] { font-size: 74px !important; }
.text-\[75px\] { font-size: 75px !important; }
.text-\[76px\] { font-size: 76px !important; }
.text-\[77px\] { font-size: 77px !important; }
.text-\[78px\] { font-size: 78px !important; }
.text-\[79px\] { font-size: 79px !important; }
.text-\[80px\] { font-size: 80px !important; }
.text-\[81px\] { font-size: 81px !important; }
.text-\[82px\] { font-size: 82px !important; }
.text-\[83px\] { font-size: 83px !important; }
.text-\[84px\] { font-size: 84px !important; }
.text-\[85px\] { font-size: 85px !important; }
.text-\[86px\] { font-size: 86px !important; }
.text-\[87px\] { font-size: 87px !important; }
.text-\[88px\] { font-size: 88px !important; }
.text-\[89px\] { font-size: 89px !important; }
.text-\[90px\] { font-size: 90px !important; }
.text-\[91px\] { font-size: 91px !important; }
.text-\[92px\] { font-size: 92px !important; }
.text-\[93px\] { font-size: 93px !important; }
.text-\[94px\] { font-size: 94px !important; }
.text-\[95px\] { font-size: 95px !important; }
.text-\[96px\] { font-size: 96px !important; }
.text-\[97px\] { font-size: 97px !important; }
.text-\[98px\] { font-size: 98px !important; }
.text-\[99px\] { font-size: 99px !important; }
.text-\[100px\] { font-size: 100px !important; }
.text-\[101px\] { font-size: 101px !important; }
.text-\[102px\] { font-size: 102px !important; }
.text-\[103px\] { font-size: 103px !important; }
.text-\[104px\] { font-size: 104px !important; }
.text-\[105px\] { font-size: 105px !important; }
.text-\[106px\] { font-size: 106px !important; }
.text-\[107px\] { font-size: 107px !important; }
.text-\[108px\] { font-size: 108px !important; }
.text-\[109px\] { font-size: 109px !important; }
.text-\[110px\] { font-size: 110px !important; }
.text-\[111px\] { font-size: 111px !important; }
.text-\[112px\] { font-size: 112px !important; }
.text-\[113px\] { font-size: 113px !important; }
.text-\[114px\] { font-size: 114px !important; }
.text-\[115px\] { font-size: 115px !important; }
.text-\[116px\] { font-size: 116px !important; }
.text-\[117px\] { font-size: 117px !important; }
.text-\[118px\] { font-size: 118px !important; }
.text-\[119px\] { font-size: 119px !important; }
.text-\[120px\] { font-size: 120px !important; }
.text-\[121px\] { font-size: 121px !important; }
.text-\[122px\] { font-size: 122px !important; }
.text-\[123px\] { font-size: 123px !important; }
.text-\[124px\] { font-size: 124px !important; }
.text-\[125px\] { font-size: 125px !important; }
.text-\[126px\] { font-size: 126px !important; }
.text-\[127px\] { font-size: 127px !important; }
.text-\[128px\] { font-size: 128px !important; }
.text-\[129px\] { font-size: 129px !important; }
.text-\[130px\] { font-size: 130px !important; }
.text-\[131px\] { font-size: 131px !important; }
.text-\[132px\] { font-size: 132px !important; }
.text-\[133px\] { font-size: 133px !important; }
.text-\[134px\] { font-size: 134px !important; }
.text-\[135px\] { font-size: 135px !important; }
.text-\[136px\] { font-size: 136px !important; }
.text-\[137px\] { font-size: 137px !important; }
.text-\[138px\] { font-size: 138px !important; }
.text-\[139px\] { font-size: 139px !important; }
.text-\[140px\] { font-size: 140px !important; }
.text-\[141px\] { font-size: 141px !important; }
.text-\[142px\] { font-size: 142px !important; }
.text-\[143px\] { font-size: 143px !important; }
.text-\[144px\] { font-size: 144px !important; }
.text-\[145px\] { font-size: 145px !important; }
.text-\[146px\] { font-size: 146px !important; }
.text-\[147px\] { font-size: 147px !important; }
.text-\[148px\] { font-size: 148px !important; }
.text-\[149px\] { font-size: 149px !important; }
.text-\[150px\] { font-size: 150px !important; }
.text-\[151px\] { font-size: 151px !important; }
.text-\[152px\] { font-size: 152px !important; }
.text-\[153px\] { font-size: 153px !important; }
.text-\[154px\] { font-size: 154px !important; }
.text-\[155px\] { font-size: 155px !important; }
.text-\[156px\] { font-size: 156px !important; }
.text-\[157px\] { font-size: 157px !important; }
.text-\[158px\] { font-size: 158px !important; }
.text-\[159px\] { font-size: 159px !important; }
.text-\[160px\] { font-size: 160px !important; }
.text-\[161px\] { font-size: 161px !important; }
.text-\[162px\] { font-size: 162px !important; }
.text-\[163px\] { font-size: 163px !important; }
.text-\[164px\] { font-size: 164px !important; }
.text-\[165px\] { font-size: 165px !important; }
.text-\[166px\] { font-size: 166px !important; }
.text-\[167px\] { font-size: 167px !important; }
.text-\[168px\] { font-size: 168px !important; }
.text-\[169px\] { font-size: 169px !important; }
.text-\[170px\] { font-size: 170px !important; }
.text-\[171px\] { font-size: 171px !important; }
.text-\[172px\] { font-size: 172px !important; }
.text-\[173px\] { font-size: 173px !important; }
.text-\[174px\] { font-size: 174px !important; }
.text-\[175px\] { font-size: 175px !important; }
.text-\[176px\] { font-size: 176px !important; }
.text-\[177px\] { font-size: 177px !important; }
.text-\[178px\] { font-size: 178px !important; }
.text-\[179px\] { font-size: 179px !important; }
.text-\[180px\] { font-size: 180px !important; }
.text-\[181px\] { font-size: 181px !important; }
.text-\[182px\] { font-size: 182px !important; }
.text-\[183px\] { font-size: 183px !important; }
.text-\[184px\] { font-size: 184px !important; }
.text-\[185px\] { font-size: 185px !important; }
.text-\[186px\] { font-size: 186px !important; }
.text-\[187px\] { font-size: 187px !important; }
.text-\[188px\] { font-size: 188px !important; }
.text-\[189px\] { font-size: 189px !important; }
.text-\[190px\] { font-size: 190px !important; }
.text-\[191px\] { font-size: 191px !important; }
.text-\[192px\] { font-size: 192px !important; }
.text-\[193px\] { font-size: 193px !important; }
.text-\[194px\] { font-size: 194px !important; }
.text-\[195px\] { font-size: 195px !important; }
.text-\[196px\] { font-size: 196px !important; }
.text-\[197px\] { font-size: 197px !important; }
.text-\[198px\] { font-size: 198px !important; }
.text-\[199px\] { font-size: 199px !important; }
.text-\[200px\] { font-size: 200px !important; }
.text-\[201px\] { font-size: 201px !important; }
.text-\[202px\] { font-size: 202px !important; }
.text-\[203px\] { font-size: 203px !important; }
.text-\[204px\] { font-size: 204px !important; }
.text-\[205px\] { font-size: 205px !important; }
.text-\[206px\] { font-size: 206px !important; }
.text-\[207px\] { font-size: 207px !important; }
.text-\[208px\] { font-size: 208px !important; }
.text-\[209px\] { font-size: 209px !important; }
.text-\[210px\] { font-size: 210px !important; }
.text-\[211px\] { font-size: 211px !important; }
.text-\[212px\] { font-size: 212px !important; }
.text-\[213px\] { font-size: 213px !important; }
.text-\[214px\] { font-size: 214px !important; }
.text-\[215px\] { font-size: 215px !important; }
.text-\[216px\] { font-size: 216px !important; }
.text-\[217px\] { font-size: 217px !important; }
.text-\[218px\] { font-size: 218px !important; }
.text-\[219px\] { font-size: 219px !important; }
.text-\[220px\] { font-size: 220px !important; }
.text-\[221px\] { font-size: 221px !important; }
.text-\[222px\] { font-size: 222px !important; }
.text-\[223px\] { font-size: 223px !important; }
.text-\[224px\] { font-size: 224px !important; }
.text-\[225px\] { font-size: 225px !important; }
.text-\[226px\] { font-size: 226px !important; }
.text-\[227px\] { font-size: 227px !important; }
.text-\[228px\] { font-size: 228px !important; }
.text-\[229px\] { font-size: 229px !important; }
.text-\[230px\] { font-size: 230px !important; }
.text-\[231px\] { font-size: 231px !important; }
.text-\[232px\] { font-size: 232px !important; }
.text-\[233px\] { font-size: 233px !important; }
.text-\[234px\] { font-size: 234px !important; }
.text-\[235px\] { font-size: 235px !important; }
.text-\[236px\] { font-size: 236px !important; }
.text-\[237px\] { font-size: 237px !important; }
.text-\[238px\] { font-size: 238px !important; }
.text-\[239px\] { font-size: 239px !important; }
.text-\[240px\] { font-size: 240px !important; }

/* ===== Statistika moduli (stats/, stats-full/) — scoped under .stx ===== */
.stx { --bg:#FFFFFF; --surface:#FFFFFF; --surface-2:#F6F8FA; --surface-3:#EFF2F5; --page:#F4F6F8;
  --ink:#1F2328; --ink-2:#404954; --ink-3:#59636E; --ink-4:#79828E;
  --border:#D1D9E0; --border-strong:#BCC4CD; --divider:#E4E8EC;
  --primary:#0F766E; --primary-hover:#0E6B63; --primary-press:#115E59; --primary-soft:#CCFBF1; --primary-soft-2:#F0FDFA; --primary-ring:rgba(15,118,110,0.28);
  --accent:#0969DA; --accent-soft:#DDF4FF;
  --ok:#1A7F37; --ok-bg:#DAFBE1; --warn:#9A6700; --warn-bg:#FFF8C5; --err:#CF222E; --err-bg:#FFEBE9; --info:#0969DA; --info-bg:#DDF4FF;
  --g-asosiy:#0969DA; --g-taqqoslov:#BF8700; --g-nazorat:#8250DF; --g-soglom:#1A7F37;
  --r-sm:6px; --r-md:6px; --r-lg:10px; --r-xl:14px; --r-pill:999px;
  --shadow-xs:0 1px 0 rgba(31,35,40,0.04);
  --shadow-sm:0 1px 2px rgba(27,31,36,0.06), 0 1px 1px -1px rgba(27,31,36,0.05);
  --shadow-md:0 3px 6px rgba(140,149,159,0.15), 0 0 0 1px rgba(31,35,40,0.04);
  --shadow-lg:0 12px 32px rgba(140,149,159,0.22);
  --font-sans:"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif;
  --font-mono:"JetBrains Mono","SFMono-Regular",Consolas,Menlo,monospace;
  --ease:cubic-bezier(0.22,0.61,0.36,1);
  --sidebar-w:264px; }
.stx, .stx * { box-sizing:border-box; }
.stx, .stx { margin:0; padding:0; }
.stx { font-family:var(--font-sans); background:var(--page); color:var(--ink);
  font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.stx .mono, .stx .tnum { font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-feature-settings:"tnum"; }
.stx ::selection { background:var(--primary-soft); }
.stx .app { display:grid; grid-template-columns:var(--sidebar-w) 1fr; min-height:100vh; }
.stx .sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; background:var(--surface);
  border-right:1px solid var(--border); padding:18px 14px 40px; display:flex; flex-direction:column; gap:6px; }
.stx .brand { display:flex; align-items:center; gap:11px; padding:6px 8px 16px; }
.stx .brand-logo { width:38px; height:38px; display:grid; place-items:center; flex:none; }
.stx .brand-logo svg { width:34px; height:34px; }
.stx .brand-txt b { display:block; font-size:15px; font-weight:800; letter-spacing:-0.01em; line-height:1.1; }
.stx .brand-txt span { font-size:11px; color:var(--ink-3); font-weight:500; }
.stx .nav-group-label { font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-4); padding:14px 10px 6px; }
.stx .nav-item { display:flex; align-items:center; gap:11px; width:100%; text-align:left; border:0; cursor:pointer;
  padding:9px 11px; border-radius:8px; background:transparent; color:var(--ink-2); font-family:inherit; font-size:13.5px; font-weight:500;
  transition:background var(--ease) 120ms, color var(--ease) 120ms; }
.stx .nav-item:hover { background:var(--surface-2); color:var(--ink); }
.stx .nav-item.active { background:var(--primary-soft); color:var(--primary-press); font-weight:700; }
.stx .nav-item .nav-ic { width:18px; height:18px; flex:none; opacity:0.85; }
.stx .nav-item .nav-tag { margin-left:auto; font-size:10px; font-weight:700; color:var(--ink-4); background:var(--surface-2); border:1px solid var(--border); padding:1px 6px; border-radius:var(--r-pill); }
.stx .nav-item.active .nav-tag { color:var(--primary-press); background:var(--surface); border-color:var(--primary-soft); }
.stx .main { min-width:0; padding:0 0 80px; }
.stx .topbar { position:sticky; top:0; z-index:20; backdrop-filter:saturate(1.4) blur(8px);
  background:rgba(255,255,255,0.82); border-bottom:1px solid var(--border);
  padding:14px 32px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.stx .topbar h1 { margin:0; font-size:18px; font-weight:800; letter-spacing:-0.015em; }
.stx .topbar .sub { font-size:12.5px; color:var(--ink-3); }
.stx .legend { display:flex; gap:14px; margin-left:auto; flex-wrap:wrap; }
.stx .legend .lg { display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--ink-2); font-weight:600; }
.stx .legend .dot { width:9px; height:9px; border-radius:3px; }
.stx .content { padding:26px 32px 0; max-width:1280px; margin-inline:auto; }
.stx .card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.stx .card.pad { padding:20px 22px; }
.stx .method-block { margin-bottom:30px; }
.stx .section-head { display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; }
.stx .section-head .sh-ic { width:34px; height:34px; border-radius:9px; flex:none; display:grid; place-items:center; background:var(--primary-soft); color:var(--primary-press); }
.stx .section-head h2 { margin:0; font-size:17px; font-weight:800; letter-spacing:-0.01em; }
.stx .section-head h3 { margin:0; font-size:15px; font-weight:700; }
.stx .section-head .desc { font-size:12.5px; color:var(--ink-3); margin-top:2px; max-width:760px; }
.stx .eyebrow { font-size:10.5px; font-weight:700; letter-spacing:0.07em; text-transform:uppercase; color:var(--ink-3); }
.stx .hypo { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); border-radius:var(--r-md); overflow:hidden; margin-bottom:16px; border:1px solid var(--border); }
.stx .hypo > div { background:var(--surface); padding:11px 14px; }
.stx .hypo .lab { font-size:10.5px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:3px; }
.stx .hypo .h0 .lab { color:var(--ink-3); }
.stx .hypo .h1 .lab { color:var(--primary-press); }
.stx .hypo .txt { font-size:13px; color:var(--ink-2); line-height:1.45; }
.stx .statgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:18px; }
.stx .statcard { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:13px 15px; box-shadow:var(--shadow-xs); }
.stx .statcard .v { font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:22px; font-weight:700; letter-spacing:-0.01em; line-height:1.1; }
.stx .statcard .l { font-size:11.5px; color:var(--ink-3); font-weight:500; margin-top:3px; }
.stx .statcard .s { font-size:11px; color:var(--ink-4); margin-top:1px; }
.stx .statcard.ok .v { color:var(--ok); }
.stx .statcard.warn .v { color:var(--warn); }
.stx .statcard.err .v { color:var(--err); }
.stx .statcard.info .v { color:var(--accent); }
.stx .statcard.primary .v { color:var(--primary); }
.stx .tbl-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--shadow-sm); }
.stx table.tbl th.th-sort:hover { color:var(--primary-press); background:var(--surface); }
.stx table.tbl th .sort-ind { color:var(--primary); font-size:9px; }
.stx .tbl tbody tr.row-dim { opacity:0.5; }
.stx .tbl tbody tr.row-dim:hover { opacity:0.8; }
.stx table.tbl { width:100%; border-collapse:collapse; font-size:13px; }
.stx table.tbl th { position:sticky; top:0; background:var(--surface-2); text-align:left; font-size:10.5px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-3); padding:10px 12px; border-bottom:1px solid var(--border); white-space:nowrap; }
.stx table.tbl td { padding:9px 12px; border-bottom:1px solid var(--divider); white-space:nowrap; }
.stx table.tbl tr:last-child td { border-bottom:0; }
.stx table.tbl tbody tr:hover { background:var(--surface-2); }
.stx table.tbl td.num, .stx table.tbl th.num { text-align:right; font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.stx table.tbl td.grp { font-weight:700; }
.stx .row-sig { background:rgba(26,127,55,0.045); }
.stx .cellbar { position:relative; }
.stx .pill { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; padding:2px 9px; border-radius:var(--r-pill); border:1px solid transparent; white-space:nowrap; }
.stx .pill.ok { color:var(--ok); background:var(--ok-bg); }
.stx .pill.ns { color:var(--ink-3); background:var(--surface-2); border-color:var(--border); }
.stx .pill.warn { color:var(--warn); background:var(--warn-bg); }
.stx .pill.err { color:var(--err); background:var(--err-bg); }
.stx .pill.info { color:var(--accent); background:var(--accent-soft); }
.stx .pill.star { font-family:var(--font-mono); }
.stx .gtag { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:12px; }
.stx .gtag .dot { width:9px; height:9px; border-radius:3px; }
.stx .decision { border-radius:var(--r-lg); border:1px solid var(--border); overflow:hidden; margin-top:18px; box-shadow:var(--shadow-sm); }
.stx .decision .dec-head { display:flex; align-items:center; gap:10px; padding:11px 16px; font-weight:800; font-size:13px; letter-spacing:0.02em; }
.stx .decision.ok .dec-head { background:var(--ok-bg); color:#14532D; }
.stx .decision.warn .dec-head { background:var(--warn-bg); color:#7A4F00; }
.stx .decision.info .dec-head { background:var(--accent-soft); color:#0A3069; }
.stx .decision .dec-body { background:var(--surface); padding:0; }
.stx .decision .dec-row { display:grid; grid-template-columns:120px 1fr; gap:14px; padding:11px 16px; border-top:1px solid var(--divider); font-size:13px; }
.stx .decision .dec-row:first-child { border-top:0; }
.stx .decision .dec-row .k { font-weight:700; color:var(--ink-3); font-size:11px; letter-spacing:0.04em; text-transform:uppercase; padding-top:1px; }
.stx .decision .dec-row .vtxt { color:var(--ink-2); line-height:1.5; }
.stx .chart-grid { display:grid; gap:16px; margin:6px 0 4px; }
.stx .chart-grid.two { grid-template-columns:1fr 1fr; }
.stx .chart-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); padding:14px 16px 8px; }
.stx .chart-card .cx { font-size:0.7rem; line-height:1.5; color:var(--ink-3); margin:6px 2px 2px; padding-top:6px; border-top:1px dashed var(--divider); }
.stx .chart-card .ct { font-size:12.5px; font-weight:700; color:var(--ink-2); margin-bottom:4px; }
.stx .chart-card .cs { font-size:11px; color:var(--ink-4); margin-bottom:8px; }
.stx .echart { width:100%; }
.stx .controls { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.stx .seg { display:inline-flex; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:3px; gap:2px; }
.stx .seg button { border:0; background:transparent; cursor:pointer; font-family:inherit; font-size:12.5px; font-weight:600; color:var(--ink-3); padding:5px 11px; border-radius:6px; transition:all var(--ease) 120ms; }
.stx .seg button.active { background:var(--surface); color:var(--ink); box-shadow:var(--shadow-xs); font-weight:700; }
.stx .field-lbl { font-size:11px; font-weight:700; color:var(--ink-4); text-transform:uppercase; letter-spacing:0.04em; }
.stx select.sel { font-family:inherit; font-size:13px; font-weight:600; color:var(--ink); background:var(--surface); border:1px solid var(--border-strong); border-radius:7px; padding:6px 10px; cursor:pointer; }
.stx select.sel:focus { outline:0; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-ring); }
.stx .accordion { border:1px solid var(--border); border-radius:var(--r-md); margin-top:12px; background:var(--surface); overflow:hidden; }
.stx .acc-head { display:flex; align-items:center; gap:9px; width:100%; border:0; background:var(--surface-2); cursor:pointer; padding:10px 14px; font-family:inherit; font-size:12.5px; font-weight:700; color:var(--ink-2); }
.stx .acc-head .chev { margin-left:auto; transition:transform var(--ease) 160ms; }
.stx .acc-head.open .chev { transform:rotate(90deg); }
.stx .acc-body { padding:14px 16px; }
.stx .hero { display:grid; grid-template-columns:1.3fr 1fr; gap:16px; margin-bottom:16px; align-items:start; }
.stx .hero-card { background:linear-gradient(135deg,var(--primary-soft-2),var(--surface)); border:1px solid var(--primary-soft); border-radius:var(--r-xl); padding:24px 26px; box-shadow:var(--shadow-sm); }
.stx .hero-card h2 { margin:0 0 8px; font-size:21px; font-weight:800; letter-spacing:-0.02em; }
.stx .hero-card p { margin:0; color:var(--ink-2); font-size:13.5px; max-width:560px; }
.stx .hero-stages { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.stx .hero-stage { flex:1 1 0; min-width:120px; background:var(--surface); border:1px solid var(--primary-soft); border-radius:var(--r-md); padding:8px 11px; }
.stx .hero-stage b { display:block; font-size:12px; font-weight:800; color:var(--primary-press); letter-spacing:-0.01em; }
.stx .hero-stage span { display:block; font-size:10.5px; color:var(--ink-3); margin-top:2px; line-height:1.35; }
.stx .hero-crit { display:flex; align-items:flex-start; gap:8px; margin-top:13px; padding:10px 12px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); font-size:12px; color:var(--ink-2); line-height:1.5; }
.stx .hero-crit svg { color:var(--primary); flex:none; margin-top:2px; }
.stx .hero-crit b { font-weight:700; color:var(--ink); }
.stx .cohort-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; align-content:start; }
.stx .cohort-card { border:1px solid var(--border); border-radius:var(--r-lg); padding:12px 14px; background:var(--surface); position:relative; overflow:hidden; }
.stx .cohort-card .bar { position:absolute; left:0; top:0; bottom:0; width:4px; }
.stx .cohort-card .n { font-family:var(--font-mono); font-size:26px; font-weight:700; line-height:1; }
.stx .cohort-card .nm { font-weight:700; font-size:13px; margin-top:5px; }
.stx .cohort-card .d { font-size:11px; color:var(--ink-3); margin-top:2px; }
.stx .statcard .v, .stx .hero-card h2, .stx .cohort-card .n { font-size:1.2rem !important; }
.stx .analysis-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:14px; }
.stx .an-card { text-align:left; border:1px solid var(--border); border-radius:var(--r-lg); padding:18px; background:var(--surface); cursor:pointer; box-shadow:var(--shadow-xs); transition:transform var(--ease) 140ms, box-shadow var(--ease) 140ms, border-color var(--ease) 140ms; font-family:inherit; }
.stx .an-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:var(--border-strong); }
.stx .an-card .ic { width:36px; height:36px; border-radius:9px; display:grid; place-items:center; background:var(--primary-soft); color:var(--primary-press); margin-bottom:11px; }
.stx .an-card h3 { margin:0 0 4px; font-size:14.5px; font-weight:800; }
.stx .an-card p { margin:0; font-size:12px; color:var(--ink-3); line-height:1.45; }
.stx .an-card .ms { margin-top:10px; display:flex; gap:5px; flex-wrap:wrap; }
.stx .an-card .ms span { font-size:10px; font-weight:700; color:var(--ink-3); background:var(--surface-2); border:1px solid var(--border); padding:2px 7px; border-radius:var(--r-pill); }
.stx .matrix-tbl td.cell { text-align:center; font-family:var(--font-mono); font-size:11.5px; color:#fff; font-weight:600; }
.stx .foot { margin-top:30px; padding:18px 0 0; border-top:1px solid var(--divider); color:var(--ink-4); font-size:11.5px; display:flex; gap:16px; flex-wrap:wrap; }
.stx .nav-subs { display:flex; flex-direction:column; gap:1px; margin:2px 0 4px 14px; padding-left:10px; border-left:1.5px solid var(--divider); }
.stx .nav-sub { display:flex; align-items:center; gap:8px; border:0; background:transparent; cursor:pointer; font-family:inherit; font-size:12.5px; font-weight:500; color:var(--ink-3); padding:6px 9px; border-radius:7px; text-align:left; transition:background var(--ease) 120ms,color var(--ease) 120ms; }
.stx .nav-sub:hover { background:var(--surface-2); color:var(--ink-2); }
.stx .nav-sub.active { color:var(--primary-press); font-weight:700; background:var(--primary-soft-2); }
.stx .nav-sub-dot { width:6px; height:6px; border-radius:50%; background:currentColor; opacity:0.55; flex:none; }
.stx .tb-actions { display:flex; gap:7px; align-items:center; margin-left:14px; }
.stx .tb-btn { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border); background:var(--surface); color:var(--ink-2); font-family:inherit; font-size:12px; font-weight:700; padding:6px 11px; border-radius:8px; cursor:pointer; transition:all var(--ease) 120ms; }
.stx .tb-btn:hover { background:var(--surface-2); border-color:var(--border-strong); color:var(--ink); }
.stx .tb-btn.icon { padding:6px 8px; }
.stx .tb-back { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
.stx .method-tabs { display:flex; gap:4px; flex-wrap:wrap; background:var(--surface-2); border:1px solid var(--border); border-radius:11px; padding:4px; margin-bottom:20px; position:sticky; top:62px; z-index:10; box-shadow:var(--shadow-xs); }
.stx .mtab { display:inline-flex; align-items:center; gap:8px; border:0; background:transparent; cursor:pointer; font-family:inherit; font-size:13px; font-weight:600; color:var(--ink-3); padding:8px 15px; border-radius:8px; transition:all var(--ease) 130ms; }
.stx .mtab:hover { color:var(--ink); background:var(--surface); }
.stx .mtab.active { background:var(--surface); color:var(--primary-press); font-weight:700; box-shadow:var(--shadow-sm); }
.stx .mtab-n { width:19px; height:19px; border-radius:6px; background:var(--surface-3); color:var(--ink-3); font-size:11px; font-weight:800; display:grid; place-items:center; font-family:var(--font-mono); }
.stx .mtab.active .mtab-n { background:var(--primary); color:#fff; }
.stx .steps-wrap { margin-top:26px; }
.stx .steps-head { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:800; letter-spacing:0.01em; color:var(--ink); padding:0 0 12px; }
.stx .steps-head .steps-count { margin-left:auto; font-size:11px; font-weight:700; color:var(--ink-3); background:var(--surface-2); border:1px solid var(--border); padding:2px 9px; border-radius:var(--r-pill); }
.stx .step-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); margin-bottom:14px; overflow:hidden; }
.stx .step-head { display:flex; align-items:center; gap:11px; padding:13px 18px; border-bottom:1px solid var(--divider); background:linear-gradient(180deg,var(--surface-2),var(--surface)); }
.stx .step-num { width:26px; height:26px; border-radius:8px; background:var(--primary); color:#fff; font-family:var(--font-mono); font-weight:700; font-size:13px; display:grid; place-items:center; flex:none; }
.stx .step-title { font-size:14px; font-weight:800; letter-spacing:-0.005em; }
.stx .step-grid { display:grid; grid-template-columns:1fr 380px; gap:18px; padding:16px 18px; align-items:start; }
.stx .step-txt { display:flex; flex-direction:column; gap:10px; }
.stx .stp { display:flex; flex-direction:column; gap:2px; }
.stx .stp-k { font-size:10px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-4); }
.stx .stp-v { font-size:13px; color:var(--ink-2); line-height:1.5; }
.stx .stp.stat .stp-k { color:var(--primary-press); }
.stx .stp.stat .stp-v { color:var(--ink); font-weight:500; }
.stx .stp.clin { background:var(--primary-soft-2); border:1px solid var(--primary-soft); border-radius:8px; padding:8px 11px; }
.stx .stp.clin .stp-k { color:var(--primary-press); }
.stx .step-chart { min-width:0; }
.stx .step-chart .chart-card { box-shadow:none; border-color:var(--divider); padding:10px 12px 6px; }
[data-theme="dark"] .stx { --bg:#0D1117; --surface:#161B22; --surface-2:#1C2230; --surface-3:#21262D; --page:#0B0E14;
  --ink:#E6EDF3; --ink-2:#C2CBD6; --ink-3:#8B97A6; --ink-4:#6E7A8A;
  --border:#2A313C; --border-strong:#3D444D; --divider:#222933;
  --primary:#2DD4BF; --primary-hover:#5EEAD4; --primary-press:#5EEAD4; --primary-soft:#123E3A; --primary-soft-2:#0F2A29; --primary-ring:rgba(45,212,191,0.28);
  --accent:#2F81F7; --accent-soft:#10243F;
  --ok:#3FB950; --ok-bg:#0F2417; --warn:#D29922; --warn-bg:#241D10; --err:#F85149; --err-bg:#2A1416; --info:#2F81F7; --info-bg:#10243F;
  --g-asosiy:#54AEFF; --g-taqqoslov:#E3B341; --g-nazorat:#BC8CFF; --g-soglom:#3FB950;
  --shadow-xs:0 0 transparent; --shadow-sm:0 0 0 1px rgba(255,255,255,0.02); --shadow-md:0 3px 8px rgba(0,0,0,0.5); --shadow-lg:0 12px 32px rgba(0,0,0,0.6); }
[data-theme="dark"] .stx .hero-card { background:linear-gradient(135deg,#0F2A29,var(--surface)); }
[data-theme="dark"] .stx .step-head { background:linear-gradient(180deg,var(--surface-2),var(--surface)); }
[data-theme="dark"] .stx .topbar { background:rgba(13,17,23,0.82); }
@media print {
  .stx .sidebar, .stx .topbar .legend, .stx .tb-actions, .stx .method-tabs { display:none !important; }
  .stx .app { display:block; }
  .stx .topbar { position:static; border:0; padding:0 0 12px; }
  .stx .content { max-width:none; padding:0; }
  .stx .card, .stx .step-card, .stx .tbl-wrap, .stx .chart-card, .stx .decision, .stx .statcard { box-shadow:none !important; break-inside:avoid; }
  .stx .method-block, .stx .step-card { break-inside:avoid; }
  .stx { background:#fff; }
}
@media (max-width:1080px) {
  .stx .app { grid-template-columns:1fr; }
  .stx .sidebar { position:static;height:auto;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border); }
  .stx .hero { grid-template-columns:1fr; }
  .stx .chart-grid.two { grid-template-columns:1fr; }
  .stx .hypo { grid-template-columns:1fr; }
  .stx .step-grid { grid-template-columns:1fr; }
  .stx .method-tabs { position:static; }
  .stx .nav-subs { display:none; }
}
.stx .statcard .v, .stx .hero-card h2, .stx .cohort-card .n { font-size: 1.2rem !important; }

/* ===== Foydalanuvchi qo'llanmasi (help/) — scoped under .hx ===== */
.hx { --bg:#FFFFFF; --surface:#FFFFFF; --surface-2:#F6F8FA; --surface-3:#EFF2F5;
  --page:#F4F6F8;
  --ink:#1F2328; --ink-2:#404954; --ink-3:#59636E; --ink-4:#66707E;
  --border:#D1D9E0; --border-strong:#BCC4CD; --divider:#E4E8EC;
  --primary:#0F766E; --primary-hover:#0E6B63; --primary-press:#115E59;
  --primary-soft:#CCFBF1; --primary-soft-2:#F0FDFA; --primary-ring:rgba(15,118,110,.30);
  --accent:#0969DA; --accent-soft:#DDF4FF; --link:#0969DA;
  --ok:#1A7F37; --ok-bg:#DAFBE1; --warn:#9A6700; --warn-bg:#FFF8C5;
  --err:#CF222E; --err-bg:#FFEBE9; --info:#0969DA; --info-bg:#DDF4FF;
  --font-sans:"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r-sm:6px; --r-md:8px; --r-lg:10px; --r-xl:14px; --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(27,31,36,.06),0 1px 1px -1px rgba(27,31,36,.05);
  --shadow-md:0 3px 6px rgba(140,149,159,.15),0 0 0 1px rgba(31,35,40,.04);
  --shadow-lg:0 8px 24px rgba(140,149,159,.2);
  --ease:cubic-bezier(.22,.61,.36,1);
  --nav-w:280px; --toc-w:232px; --header-h:60px;
  --maxw:1320px; }
[data-theme="dark"] .hx { --bg:#0D1117; --surface:#0D1117; --surface-2:#161B22; --surface-3:#21262D;
  --page:#010409;
  --ink:#E6EDF3; --ink-2:#C9D1D9; --ink-3:#8B949E; --ink-4:#848F9C;
  --border:#30363D; --border-strong:#3D444D; --divider:#21262D;
  --primary:#2DD4BF; --primary-hover:#5EEAD4; --primary-press:#14B8A6;
  --primary-soft:#134E4A; --primary-soft-2:#0F3A37; --primary-ring:rgba(45,212,191,.28);
  --accent:#2F81F7; --accent-soft:#121D2F; --link:#2F81F7;
  --ok:#3FB950; --ok-bg:#0F2417; --warn:#D29922; --warn-bg:#272115;
  --err:#F85149; --err-bg:#25171A; --info:#2F81F7; --info-bg:#121D2F;
  --shadow-sm:0 0 transparent; --shadow-md:0 3px 6px rgba(1,4,9,.5),0 0 0 1px #30363D;
  --shadow-lg:0 8px 24px rgba(1,4,9,.6);
  color-scheme:dark; }
.hx, .hx * { box-sizing:border-box; }
.hx { -webkit-text-size-adjust:100%;scroll-behavior:smooth; }
.hx, .hx { margin:0;padding:0; }
.hx { font-family:var(--font-sans); font-size:.9rem; line-height:1.65;
  color:var(--ink); background:var(--page);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.hx h1, .hx h2, .hx h3, .hx h4, .hx .fig-num, .hx .brand b, .hx .hero h1 { font-size:inherit; }
.hx :where(h1, .hx h2, .hx h3, .hx h4, .hx h5, .hx h6, .hx p, .hx span, .hx a, .hx li, .hx td, .hx th, .hx div, .hx button, .hx input, .hx label, .hx strong, .hx em, .hx code) { max-width:100%; }
.hx a { color:var(--link);text-decoration:none; }
.hx a:hover { text-decoration:underline; }
.hx code, .hx kbd { font-family:var(--font-mono); }
.hx .layout { display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr) var(--toc-w);
  max-width:var(--maxw);margin:0 auto;align-items:start; }
.hx .topbar { position:sticky;top:0;z-index:50;height:var(--header-h);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--border); }
.hx .topbar-in { max-width:var(--maxw);margin:0 auto;height:100%;
  display:flex;align-items:center;gap:14px;padding:0 18px; }
.hx .brand { display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:600;
  font-size:1.05rem;white-space:nowrap; }
.hx .brand .logo { width:26px;height:26px;border-radius:7px;display:grid;place-items:center;
  background:var(--primary);color:#fff;flex:none; }
.hx .brand b { color:var(--primary);font-weight:700; }
.hx .brand .sub { color:var(--ink-3);font-weight:500;font-size:.82rem;border-left:1px solid var(--border);
  padding-left:12px;margin-left:2px; }
.hx .topbar .spacer { flex:1 1 auto; }
.hx .top-search { position:relative;flex:0 1 320px;min-width:0; }
.hx .top-search input { width:100%;height:38px;border:1px solid var(--border);border-radius:var(--r-md);
  background:var(--surface-2);color:var(--ink);padding:0 12px 0 34px;font-family:inherit;font-size:.86rem; }
.hx .top-search input:focus { outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);background:var(--surface); }
.hx .top-search svg { position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-3); }
.hx .top-search kbd { position:absolute;right:8px;top:50%;transform:translateY(-50%);
  font-size:.72rem;color:var(--ink-3);border:1px solid var(--border);border-radius:5px;padding:1px 6px;background:var(--surface); }
.hx .iconbtn { height:38px;min-width:38px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-md);
  background:var(--surface);color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;
  cursor:pointer;font-family:inherit;font-size:.84rem;font-weight:500;white-space:nowrap; }
.hx .iconbtn:hover { background:var(--surface-2);border-color:var(--border-strong);color:var(--ink); }
.hx .lang-wrap { position:relative; }
.hx .lang-menu { position:absolute;right:0;top:46px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-md);box-shadow:var(--shadow-lg);min-width:140px;padding:5px;display:none;z-index:60; }
.hx .lang-menu.open { display:block; }
.hx .lang-menu button { display:flex;width:100%;align-items:center;gap:8px;background:none;border:none;
  color:var(--ink);font-family:inherit;font-size:.86rem;padding:8px 10px;border-radius:6px;cursor:pointer;text-align:left; }
.hx .lang-menu button:hover { background:var(--surface-2); }
.hx .lang-menu button.active { color:var(--primary);font-weight:600; }
.hx .menu-toggle { display:none; }
.hx .nav { position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));
  overflow-y:auto;padding:20px 12px 60px 18px;border-right:1px solid var(--border); }
.hx .nav::-webkit-scrollbar, .hx .toc::-webkit-scrollbar, .hx .content::-webkit-scrollbar { width:9px; }
.hx .nav::-webkit-scrollbar-thumb, .hx .toc::-webkit-scrollbar-thumb { background:var(--border);border-radius:9px; }
.hx .nav-group { margin-bottom:4px; }
.hx .nav-grouphead { display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;
  cursor:pointer;color:var(--ink);font-family:inherit;font-weight:600;font-size:.85rem;
  padding:8px 8px;border-radius:7px;text-align:left; }
.hx .nav-grouphead:hover { background:var(--surface-2); }
.hx .nav-grouphead .gi { width:26px;height:26px;border-radius:7px;display:grid;place-items:center;flex:none;
  background:var(--primary-soft);color:var(--primary); }
.hx .nav-grouphead .num { margin-left:auto;font-size:.72rem;color:var(--ink-4);font-weight:500; }
.hx .nav-grouphead .chev { transition:transform .2s var(--ease);color:var(--ink-3);flex:none; }
.hx .nav-group.collapsed .chev { transform:rotate(-90deg); }
.hx .nav-sections { margin:2px 0 6px 13px;padding-left:13px;border-left:1px solid var(--border);
  display:flex;flex-direction:column;gap:1px; }
.hx .nav-group.collapsed .nav-sections { display:none; }
.hx .nav-link { display:block;color:var(--ink-3);font-size:.83rem;padding:5px 9px;border-radius:6px;
  cursor:pointer;line-height:1.4; }
.hx .nav-link:hover { background:var(--surface-2);color:var(--ink);text-decoration:none; }
.hx .nav-link.active { color:var(--primary);background:var(--primary-soft-2);font-weight:600; }
[data-theme="dark"] .hx .nav-link.active { background:var(--primary-soft); }
.hx .content { min-width:0;padding:30px clamp(18px,4vw,56px) 80px; }
.hx .crumb { display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:var(--ink-3);font-size:.8rem;margin-bottom:18px; }
.hx .crumb a { color:var(--ink-3); }
.hx .crumb .sep { color:var(--ink-4); }
.hx .crumb b { color:var(--ink-2);font-weight:600; }
.hx .doc h1 { font-size:1.2rem;font-weight:700;letter-spacing:-.01em;margin:0 0 6px;color:var(--ink);line-height:1.25; }
.hx .doc .eyebrow { color:var(--primary);font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px; }
.hx .doc .chap-lead { color:var(--ink-3);font-size:1rem;margin:0 0 8px;max-width:64ch; }
.hx .doc h2 { font-size:1.12rem;font-weight:700;margin:44px 0 6px;color:var(--ink);scroll-margin-top:78px;
  padding-top:6px;line-height:1.3; }
.hx .doc h2 .anchor, .hx .doc h3 .anchor { opacity:0;color:var(--ink-4);margin-left:8px;font-weight:400; }
.hx .doc h2:hover .anchor, .hx .doc h3:hover .anchor { opacity:1; }
.hx .doc h3 { font-size:1rem;font-weight:650;margin:28px 0 4px;color:var(--ink);scroll-margin-top:78px; }
.hx .doc .lead { color:var(--ink-3);font-size:.95rem;margin:0 0 14px;max-width:66ch; }
.hx .doc p { margin:12px 0;color:var(--ink-2);max-width:70ch;text-wrap:pretty; }
.hx .doc strong { color:var(--ink);font-weight:650; }
.hx .doc .ui { font-weight:650;color:var(--ink); }
.hx .doc ul.bullets { margin:12px 0;padding-left:20px;color:var(--ink-2);max-width:70ch; }
.hx .doc ul.bullets li { margin:5px 0; }
.hx .pathline { display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0;
  font-size:.84rem;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:9px 12px; }
.hx .pathline .pk { font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--border);
  border-radius:5px;padding:2px 8px; }
.hx .pathline .arrow { color:var(--ink-4); }
.hx .pathline .lbl { color:var(--primary);font-weight:600;margin-right:2px; }
.hx ol.steps { counter-reset:s;list-style:none;margin:18px 0;padding:0; }
.hx ol.steps>li { position:relative;padding:2px 0 16px 44px;margin:0;color:var(--ink-2); }
.hx ol.steps>li::before { counter-increment:s;content:counter(s);position:absolute;left:0;top:0;
  width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:.82rem;font-variant-numeric:tabular-nums; }
.hx ol.steps>li::after { content:"";position:absolute;left:13.5px;top:30px;bottom:2px;width:1.5px;background:var(--border); }
.hx ol.steps>li:last-child::after { display:none; }
.hx ol.steps>li b { color:var(--ink); }
.hx .callout { display:flex;gap:12px;margin:16px 0;padding:13px 15px;border-radius:var(--r-md);
  border:1px solid var(--border);background:var(--surface-2);font-size:.88rem;color:var(--ink-2); }
.hx .callout .ci { flex:none;margin-top:1px; }
.hx .callout .ct { font-weight:700;display:block;margin-bottom:2px;color:var(--ink); }
.hx .callout p { margin:0;color:inherit;max-width:none; }
.hx .callout.tip { background:var(--primary-soft-2);border-color:color-mix(in srgb,var(--primary) 30%,var(--border)); }
.hx .callout.tip .ci, .hx .callout.tip .ct { color:var(--primary); }
.hx .callout.note { background:var(--info-bg);border-color:color-mix(in srgb,var(--info) 28%,var(--border)); }
.hx .callout.note .ci, .hx .callout.note .ct { color:var(--info); }
.hx .callout.warn { background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 34%,var(--border)); }
.hx .callout.warn .ci, .hx .callout.warn .ct { color:var(--warn); }
.hx .callout.result { background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 30%,var(--border)); }
.hx .callout.result .ci, .hx .callout.result .ct { color:var(--ok); }
.hx figure.fig { margin:18px 0;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;
  background:var(--surface);box-shadow:var(--shadow-sm); }
.hx figure.fig img { display:block;width:100%;height:auto;background:var(--surface-2); }
.hx figure.fig .ph { display:grid;place-items:center;min-height:170px;padding:26px;text-align:center;
  background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 11px,var(--surface-3) 11px,var(--surface-3) 22px);
  color:var(--ink-3);gap:8px; }
.hx figure.fig .ph .pi { color:var(--primary);opacity:.7; }
.hx figure.fig .ph code { font-size:.76rem;color:var(--ink-4);background:var(--surface);border:1px solid var(--border);
  padding:2px 8px;border-radius:5px; }
.hx figure.fig figcaption { padding:9px 14px;border-top:1px solid var(--divider);font-size:.8rem;color:var(--ink-3);
  background:var(--surface-2); }
.hx figure.fig figcaption b { color:var(--primary);font-weight:700;margin-right:6px; }
.hx .tbl-wrap { margin:16px 0;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden; }
.hx table.dt { width:100%;border-collapse:collapse;font-size:.84rem; }
.hx table.dt thead th { background:var(--primary-soft-2);color:var(--primary);text-align:left;font-weight:700;
  padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap; }
[data-theme="dark"] .hx table.dt thead th { background:var(--surface-2); }
.hx table.dt td { padding:8px 12px;border-bottom:1px solid var(--divider);color:var(--ink-2);vertical-align:top; }
.hx table.dt tbody tr:last-child td { border-bottom:none; }
.hx table.dt tbody tr:nth-child(even) { background:var(--surface-2); }
.hx table.dt td code { font-size:.8rem;background:var(--surface-3);padding:1px 5px;border-radius:4px;color:var(--ink); }
.hx table.dt .req { color:var(--err);font-weight:700; }
.hx table.dt .opt { color:var(--ink-4); }
.hx .code { position:relative;margin:16px 0;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-md); }
[data-theme="dark"] .hx .code { background:#0B0E14; }
.hx .code pre { margin:0;padding:14px 16px;overflow-x:auto;font-family:var(--font-mono);font-size:.82rem;
  line-height:1.6;color:var(--ink); }
.hx .code .copy { position:absolute;top:8px;right:8px; }
.hx .copybtn { display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--border);
  border-radius:6px;background:var(--surface);color:var(--ink-2);cursor:pointer;font-family:inherit;font-size:.78rem;font-weight:500; }
.hx .copybtn:hover { background:var(--surface-2);color:var(--ink); }
.hx .copybtn.done { color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border)); }
.hx .valrow { display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0; }
.hx .valrow .vlabel { font-size:.82rem;color:var(--ink-3); }
.hx .valchip { display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:5px 5px 5px 11px;font-family:var(--font-mono);font-size:.82rem;color:var(--ink); }
.hx .tabs { margin:18px 0; }
.hx .tabbar { display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border);margin-bottom:4px; }
.hx .tabbar button { background:none;border:none;border-bottom:2px solid transparent;color:var(--ink-3);
  font-family:inherit;font-size:.86rem;font-weight:600;padding:8px 13px;cursor:pointer;margin-bottom:-1px; }
.hx .tabbar button:hover { color:var(--ink); }
.hx .tabbar button.active { color:var(--primary);border-bottom-color:var(--primary); }
.hx .tabpane { display:none; }
.hx .tabpane.active { display:block; }
.hx .feedback { margin-top:40px;padding-top:22px;border-top:1px solid var(--border); }
.hx .feedback .q { font-size:.86rem;color:var(--ink-2);font-weight:600;margin-bottom:10px; }
.hx .feedback .btns { display:flex;gap:8px; }
.hx .feedback .thanks { color:var(--ok);font-size:.86rem;font-weight:600;display:none; }
.hx .pn { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px; }
.hx .pn a { display:flex;flex-direction:column;gap:3px;border:1px solid var(--border);border-radius:var(--r-lg);
  padding:14px 16px;background:var(--surface);text-decoration:none; }
.hx .pn a:hover { border-color:var(--primary);background:var(--surface-2);text-decoration:none; }
.hx .pn a.next { text-align:right;align-items:flex-end; }
.hx .pn .pndir { font-size:.74rem;color:var(--ink-4);text-transform:uppercase;letter-spacing:.06em; }
.hx .pn .pntitle { color:var(--primary);font-weight:650;font-size:.92rem; }
.hx .toc { position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto;
  padding:30px 18px 60px 4px; }
.hx .toc .tt { font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-4);margin-bottom:11px; }
.hx .toc a { display:block;color:var(--ink-3);font-size:.81rem;padding:4px 10px;border-left:2px solid var(--border);
  line-height:1.4; }
.hx .toc a:hover { color:var(--ink);text-decoration:none; }
.hx .toc a.sub { padding-left:22px;font-size:.79rem; }
.hx .toc a.active { color:var(--primary);border-left-color:var(--primary);font-weight:600; }
.hx .toc .fwidget { margin-top:22px;padding-top:16px;border-top:1px solid var(--border); }
.hx .home { padding:46px clamp(18px,5vw,64px) 80px;max-width:980px;margin:0 auto; }
.hx .hero { text-align:center;padding:30px 0 18px; }
.hx .hero .pill { display:inline-flex;align-items:center;gap:8px;background:var(--primary-soft-2);color:var(--primary);
  border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:var(--r-pill);
  padding:5px 13px;font-size:.78rem;font-weight:600;margin-bottom:18px; }
.hx .hero h1 { font-size:1.2rem;font-weight:700;margin:0 0 12px;letter-spacing:-.01em; }
.hx .hero p { color:var(--ink-3);font-size:1rem;max-width:62ch;margin:0 auto 22px; }
.hx .hero .cta { display:inline-flex;gap:10px;flex-wrap:wrap;justify-content:center; }
.hx .btn-primary { display:inline-flex;align-items:center;gap:8px;background:var(--primary);color:#fff;border:none;
  border-radius:var(--r-md);padding:10px 18px;font-family:inherit;font-weight:600;font-size:.9rem;cursor:pointer; }
.hx .btn-primary:hover { background:var(--primary-hover);text-decoration:none;color:#fff; }
.hx .home-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px;margin-top:34px; }
.hx .hcard { border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;background:var(--surface);
  cursor:pointer;transition:border-color .15s,transform .15s;text-align:left; }
.hx .hcard:hover { border-color:var(--primary);transform:translateY(-2px); }
.hx .hcard .hi { width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--primary-soft);
  color:var(--primary);margin-bottom:11px; }
.hx .hcard h3 { margin:0 0 4px;font-size:.96rem;font-weight:650;color:var(--ink); }
.hx .hcard p { margin:0;font-size:.83rem;color:var(--ink-3);line-height:1.5; }
.hx .disc { margin:36px 0 0;border:1px solid var(--border);border-left:3px solid var(--warn);
  border-radius:var(--r-md);padding:13px 16px;background:var(--warn-bg);color:var(--ink-2);font-size:.84rem; }
.hx .searchres { position:absolute;top:46px;left:0;right:0;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-md);box-shadow:var(--shadow-lg);max-height:60vh;overflow-y:auto;padding:6px;display:none;z-index:60; }
.hx .searchres.open { display:block; }
.hx .searchres .sr { display:block;padding:9px 11px;border-radius:7px;cursor:pointer; }
.hx .searchres .sr:hover, .hx .searchres .sr.hl { background:var(--surface-2);text-decoration:none; }
.hx .searchres .sr .st { color:var(--ink);font-weight:600;font-size:.86rem; }
.hx .searchres .sr .sc { color:var(--ink-4);font-size:.76rem; }
.hx .searchres .sr mark { background:var(--primary-soft);color:var(--primary);border-radius:3px;padding:0 2px; }
.hx .searchres .empty { padding:18px;text-align:center;color:var(--ink-4);font-size:.85rem; }
.hx .scrim { display:none;position:fixed;inset:var(--header-h) 0 0;background:rgba(0,0,0,.4);z-index:40; }
.hx .scrim.show { display:block; }
@media (max-width:1100px) {
  .hx .layout { grid-template-columns:var(--nav-w) minmax(0,1fr); }
  .hx .toc { display:none; }
}
@media (max-width:860px) {
  .hx { --nav-w:300px; }
  .hx .menu-toggle { display:inline-flex; }
  .hx .layout { grid-template-columns:minmax(0,1fr); }
  .hx .nav { position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--nav-w);max-width:86vw;
    background:var(--surface);z-index:45;transform:translateX(-100%);transition:transform .25s var(--ease);
    box-shadow:var(--shadow-lg); }
  .hx .nav.open { transform:translateX(0); }
  .hx .brand .sub { display:none; }
  .hx .top-search { flex:1 1 auto; }
  .hx .top-search kbd { display:none; }
}
@media (max-width:560px) {
  .hx .content { padding:24px 16px 70px; }
  .hx .pn { grid-template-columns:1fr; }
  .hx .lang-label { display:none; }
}
@media (pointer:coarse) {
  .hx .iconbtn, .hx .copybtn, .hx .nav-link, .hx .tabbar button { min-height:44px; }
  .hx .nav-link { display:flex;align-items:center; }
}
@media (prefers-reduced-motion:reduce) {
  .hx, .hx * { scroll-behavior:auto!important;transition:none!important; }
}

/* ===== Landing (index.html) — scoped under .lx ===== */
.lx { --brand:        #0F766E;
  --brand-600:    #0c5f58;
  --brand-700:    #0a4d47;
  --brand-300:    #5eb5ac;
  --brand-soft:   #d5ebe8;
  --brand-soft-2: #ecf6f4;
  --ink:          var(--fg-default);
  --ink-2:        var(--fg-muted);
  --ink-3:        var(--fg-subtle);
  --line:         var(--border-default);
  --line-soft:    var(--border-muted);
  --page:         #ffffff;
  --max:          1280px;
  --header-h:     66px; }
.lx, .lx * { box-sizing: border-box; }
.lx { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 8px); }
.lx { margin: 0; background: var(--page); color: var(--ink);
  font-family: var(--font-sans);
  font-size: var(--fs-16); line-height: var(--lh-default);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.lx a { color: inherit; text-decoration: none; }
.lx img { max-width: 100%; display: block; }
.lx section { scroll-margin-top: var(--header-h); }
.lx .wrap { max-width: var(--max); margin: 0 auto; padding: 0 12px; }
.lx .eyebrow { font-size: var(--fs-12); font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--brand); margin: 0 0 12px; }
.lx .section-head { max-width: 720px; margin: 0 auto 52px; text-align: center; }
.lx .section-head.left { margin-left: 0; text-align: left; }
.lx .section-title { font-family: var(--font-display); font-weight: 700;
  font-size: clamp(26px, 3.4vw, 40px); line-height: 1.12;
  letter-spacing: -0.025em; margin: 0 0 14px; color: var(--ink); }
.lx .section-sub { font-size: var(--fs-20); line-height: 1.6; color: var(--ink-2); margin: 0; }
@media (max-width: 640px) {
  .lx .section-sub { font-size: var(--fs-16); }
}
.lx .section { padding: 46px 0; }
.lx .section.tight { padding: 36px 0; }
.lx .section.alt { background: var(--canvas-subtle); }
.lx .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-14);
  padding: 0 9px; height: 42px; border-radius: var(--r-md);
  border: 1px solid transparent; cursor: pointer; white-space: nowrap;
  transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.lx .btn svg { width: 16px; height: 16px; }
.lx .btn-primary { background: var(--brand); color: #fff; box-shadow: var(--shadow-sm); }
.lx .btn-primary:hover { background: var(--brand-600); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.lx .btn-ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.lx .btn-ghost:hover { background: var(--canvas-subtle); border-color: var(--gray-3); }
.lx .btn-light { background: rgba(255,255,255,0.14); color: #fff; border-color: rgba(255,255,255,0.28); }
.lx .btn-light:hover { background: rgba(255,255,255,0.22); }
.lx .btn-white { background: #fff; color: var(--brand-700); }
.lx .btn-white:hover { background: var(--brand-soft-2); transform: translateY(-1px); }
.lx .btn-lg { height: 50px; padding: 0 12px; font-size: var(--fs-16); }
.lx .btn-block { width: 100%; }
.lx .hdr { position: sticky; top: 0; z-index: 50; height: var(--header-h);
  display: flex; align-items: center;
  background: rgba(255,255,255,0.82); backdrop-filter: saturate(1.5) blur(10px);
  border-bottom: 1px solid transparent; transition: border-color var(--dur-base), box-shadow var(--dur-base); }
.lx .hdr.scrolled { border-bottom-color: var(--line); box-shadow: var(--shadow-sm); }
.lx .hdr .wrap { display: flex; align-items: center; gap: 22px; width: 100%; }
.lx .brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 18px; letter-spacing: -0.01em; }
.lx .brand .mark { width: 30px; height: 30px; border-radius: 8px; flex: none;
  background: linear-gradient(135deg, var(--brand), var(--brand-600));
  display: grid; place-items: center; color: #fff; box-shadow: var(--shadow-sm); }
.lx .brand .mark svg { width: 17px; height: 17px; }
.lx .nav { display: flex; align-items: center; gap: 4px; margin-left: 8px; }
.lx .nav a { font-size: var(--fs-14); font-weight: 500; color: var(--ink-2);
  padding: 7px 11px; border-radius: var(--r-md); transition: color var(--dur-base), background var(--dur-base); }
.lx .nav a:hover { color: var(--ink); background: var(--canvas-subtle); }
.lx .hdr-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.lx .lang { display: inline-flex; background: var(--canvas-subtle); border: 1px solid var(--line); border-radius: var(--r-pill); padding: 2px; }
.lx .lang button { font-family: var(--font-sans); font-weight: 600; font-size: 12px; color: var(--ink-3);
  border: none; background: transparent; cursor: pointer; padding: 5px 10px; border-radius: var(--r-pill);
  transition: color var(--dur-base), background var(--dur-base); }
.lx .lang button.active { background: #fff; color: var(--brand); box-shadow: var(--shadow-xs); }
.lx .menu-btn { display: none; width: 40px; height: 40px; border: 1px solid var(--line); background: #fff; border-radius: var(--r-md); cursor: pointer; align-items: center; justify-content: center; }
.lx .menu-btn svg { width: 20px; height: 20px; }
.lx .mobile-menu { display: none; position: fixed; inset: var(--header-h) 0 auto 0; z-index: 49; background: #fff; border-bottom: 1px solid var(--line); box-shadow: var(--shadow-lg); padding: 14px 12px 11px; }
.lx .mobile-menu.open { display: block; }
.lx .mobile-menu a { display: block; padding: 12px 6px; font-weight: 500; color: var(--ink); border-bottom: 1px solid var(--canvas-subtle); }
.lx .mobile-menu .m-actions { display: flex; gap: 10px; margin-top: 16px; }
.lx .hero { position: relative; overflow: hidden; padding: 46px 0 40px; }
.lx .hero-bg { position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(ellipse 880px 520px at 15% -12%, rgba(15,118,110,0.12), rgba(15,118,110,0) 62%),
    radial-gradient(ellipse 720px 460px at 96% 8%, rgba(33,139,255,0.08), rgba(33,139,255,0) 60%); }
.lx .hero .wrap { position: relative; z-index: 1; display: grid; grid-template-columns: 1.08fr 0.92fr; gap: 56px; align-items: center; }
.lx .hero-copy { display: flex; flex-direction: column; gap: 22px; }
.lx .badge { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  background: var(--brand-soft-2); color: var(--brand-700); border: 1px solid var(--brand-soft);
  font-size: var(--fs-12); font-weight: 600; padding: 6px 13px; border-radius: var(--r-pill); }
.lx .badge .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--brand); }
.lx .hero h1 { font-family: var(--font-display); font-weight: 800;
  font-size: clamp(34px, 5vw, 60px); line-height: 1.04; letter-spacing: -0.03em;
  margin: 0; color: var(--ink); }
.lx .hero-sub { font-size: var(--fs-20); line-height: 1.55; color: var(--ink-2); margin: 0; max-width: 560px; }
@media (max-width: 640px) {
  .lx .hero-sub { font-size: var(--fs-16); }
}
.lx .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.lx .hero-trust { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 10px; }
.lx .hero-trust span { display: inline-flex; align-items: center; gap: 7px; font-size: var(--fs-14); color: var(--ink-3); }
.lx .hero-trust svg { width: 16px; height: 16px; color: var(--brand); }
.lx .hero-card-wrap { display: flex; justify-content: center; }
.lx .hero-card { width: 100%; max-width: 400px; background: #fff; border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--shadow-xl); padding: 11px; transform: rotate(1.4deg);
  display: flex; flex-direction: column; gap: 16px; }
.lx .hero-card .hc-top { display: flex; align-items: center; justify-content: space-between; }
.lx .hc-pill { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: var(--r-pill); background: var(--danger-bg); color: var(--danger-fg); }
.lx .hc-pill .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--danger-emphasis); }
.lx .hc-stage { font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }
.lx .hc-gauge { display: flex; align-items: center; gap: 18px; padding: 4px 0; }
.lx .hc-ring { flex: none; }
.lx .hc-metrics { display: flex; flex-direction: column; gap: 12px; flex: 1; }
.lx .hc-metric .l { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--ink-3); }
.lx .hc-metric .v { font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--ink); letter-spacing: -0.02em; }
.lx .hc-metric .v.risk { color: var(--danger-fg); }
.lx .hc-bars { display: flex; flex-direction: column; gap: 8px; }
.lx .hc-bar { display: flex; align-items: center; gap: 10px; }
.lx .hc-bar .name { width: 54px; font-size: 12px; font-weight: 600; color: var(--ink-2); }
.lx .hc-bar .track { flex: 1; height: 7px; border-radius: 4px; background: var(--canvas-inset); overflow: hidden; }
.lx .hc-bar .fill { height: 100%; border-radius: 4px; background: var(--brand); }
.lx .hc-bar .fill.low { background: var(--danger-emphasis); }
.lx .hc-bar .pct { width: 30px; text-align: right; font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }
.lx .hc-id { display: flex; align-items: center; gap: 10px; min-width: 0; }
.lx .hc-ava { width: 34px; height: 34px; border-radius: 9px; flex: none; background: linear-gradient(135deg, var(--brand), var(--brand-600)); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: 0.02em; box-shadow: var(--shadow-xs); }
.lx .hc-id-txt { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.lx .hc-id-txt b { font-weight: 700; font-size: 13px; color: var(--ink); line-height: 1.15; }
.lx .hc-id-txt i { font-style: normal; font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); white-space: nowrap; }
.lx .hc-flag { font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: var(--danger-fg); margin-top: 2px; }
.lx .hc-trend { display: flex; flex-direction: column; gap: 6px; padding: 2px 2px 0; }
.lx .hc-trend-head { display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--ink-3); }
.lx .hc-trend-delta { font-family: var(--font-mono); font-weight: 700; font-size: 11px; color: var(--brand); background: var(--brand-soft); padding: 2px 9px; border-radius: var(--r-pill); letter-spacing: 0; text-transform: none; }
.lx .hc-trend svg { width: 100%; height: 60px; display: block; }
.lx .hc-trend-x { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); }
.lx .metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.lx .metric { text-align: center; padding: 8px; }
.lx .metric .num { font-family: var(--font-display); font-weight: 800; font-size: clamp(30px, 4vw, 44px); letter-spacing: -0.03em; color: var(--brand); line-height: 1; }
.lx .metric .lab { font-size: var(--fs-14); color: var(--ink-2); margin-top: 8px; }
@media (max-width: 720px) {
  .lx .metrics { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
}
.lx .feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 940px) {
  .lx .feat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .lx .feat-grid { grid-template-columns: 1fr; }
}
.lx .feat-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 12px; display: flex; flex-direction: column; gap: 12px;
  transition: border-color var(--dur-base), box-shadow var(--dur-base), transform var(--dur-base); }
.lx .feat-card:hover { border-color: var(--brand-300); box-shadow: var(--shadow-md); transform: translateY(-3px); }
.lx .feat-ic { width: 44px; height: 44px; border-radius: 11px; display: grid; place-items: center; background: var(--brand-soft-2); color: var(--brand); flex: none; }
.lx .feat-ic svg { width: 22px; height: 22px; }
.lx .feat-card h3 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-20); margin: 2px 0 0; letter-spacing: -0.01em; }
.lx .feat-card p { font-size: var(--fs-14); line-height: 1.6; color: var(--ink-2); margin: 0; flex: 1; }
.lx .feat-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.lx .tag { font-size: 11.5px; font-weight: 600; color: var(--ink-2); background: var(--canvas-subtle); border: 1px solid var(--line-soft); border-radius: var(--r-pill); padding: 3px 10px; white-space: nowrap; }
.lx .show-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; margin-bottom: 64px; }
.lx .show-row:last-child { margin-bottom: 0; }
.lx .show-row.flip .show-text { order: 2; }
.lx .show-text h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(22px, 2.6vw, 30px); letter-spacing: -0.02em; margin: 10px 0 14px; }
.lx .show-text p { font-size: var(--fs-16); line-height: 1.65; color: var(--ink-2); margin: 0 0 18px; }
.lx .show-feats { display: flex; flex-direction: column; gap: 10px; }
.lx .show-feats li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--fs-14); color: var(--ink); list-style: none; }
.lx .show-feats { padding: 0; margin: 0; }
.lx .show-feats .ck { flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; margin-top: 1px; }
.lx .show-feats .ck svg { width: 12px; height: 12px; }
@media (max-width: 860px) {
  .lx .show-row { grid-template-columns: 1fr; gap: 28px; margin-bottom: 48px; }
  .lx .show-row.flip .show-text { order: 0; }
}
.lx .browser { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-lg); background: #fff; }
.lx .browser-bar { display: flex; align-items: center; gap: 7px; padding: 10px 14px; background: var(--canvas-subtle); border-bottom: 1px solid var(--line); }
.lx .browser-bar .dots { display: flex; gap: 6px; }
.lx .browser-bar .dots i { width: 11px; height: 11px; border-radius: 50%; display: block; }
.lx .browser-bar .dots i:nth-child(1) { background: #ff5f57; }
.lx .browser-bar .dots i:nth-child(2) { background: #febc2e; }
.lx .browser-bar .dots i:nth-child(3) { background: #28c840; }
.lx .browser-bar .url { flex: 1; margin-left: 8px; height: 22px; border-radius: var(--r-pill); background: #fff; border: 1px solid var(--line); display: flex; align-items: center; padding: 0 12px; font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }
.lx .browser-shot { position: relative; }
.lx .browser-shot img { width: 100%; display: block; }
.lx .shot-ph { aspect-ratio: 16/10; display: grid; place-items: center; background: linear-gradient(135deg, var(--brand-soft-2), #fff); color: var(--brand); text-align: center; padding: 10px; }
.lx .shot-ph .ph-ic { width: 46px; height: 46px; margin: 0 auto 12px; opacity: 0.7; }
.lx .shot-ph .ph-label { font-size: var(--fs-12); font-weight: 600; color: var(--ink-2); }
.lx .shot-ph .ph-path { font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); margin-top: 4px; }
.lx .steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: step; }
@media (max-width: 880px) {
  .lx .steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .lx .steps { grid-template-columns: 1fr; }
}
.lx .step { position: relative; padding: 13px 11px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); }
.lx .step .num { width: 38px; height: 38px; border-radius: 10px; background: var(--brand); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 18px; display: grid; place-items: center; margin-bottom: 16px; }
.lx .step h4 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-16); margin: 0 0 8px; }
.lx .step p { font-size: var(--fs-14); line-height: 1.6; color: var(--ink-2); margin: 0; }
.lx .aud-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 920px) {
  .lx .aud-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .lx .aud-grid { grid-template-columns: 1fr; }
}
.lx .aud-card { padding: 13px 11px; border: 1px solid var(--line); border-radius: var(--r-lg); background: #fff; transition: box-shadow var(--dur-base), transform var(--dur-base); }
.lx .aud-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.lx .aud-ic { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; color: #fff; margin-bottom: 16px; }
.lx .aud-ic svg { width: 23px; height: 23px; }
.lx .aud-card h4 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-16); margin: 0 0 8px; }
.lx .aud-card p { font-size: var(--fs-14); line-height: 1.6; color: var(--ink-2); margin: 0; }
.lx .gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 40px; }
@media (max-width: 880px) {
  .lx .gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .lx .gallery { grid-template-columns: 1fr; }
}
.lx .gal-item .browser { box-shadow: var(--shadow-md); }
.lx .gal-cap { font-size: var(--fs-12); color: var(--ink-2); margin-top: 10px; text-align: center; font-weight: 500; }
.lx .center-cta { text-align: center; }
.lx .sx-band { background: linear-gradient(135deg, var(--brand-700), var(--brand)); color: #fff; border-radius: var(--r-lg); padding: 28px; position: relative; overflow: hidden; }
.lx .sx-band::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 600px 400px at 100% 0%, rgba(255,255,255,0.10), transparent 60%); }
.lx .sx-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 44px; align-items: center; }
.lx .sx-inner .eyebrow { color: var(--brand-soft); }
.lx .sx-inner h2 { font-family: var(--font-display); font-weight: 800; font-size: clamp(24px, 3vw, 34px); letter-spacing: -0.025em; margin: 0 0 14px; color: #fff; }
.lx .sx-inner p { font-size: var(--fs-16); line-height: 1.65; color: rgba(255,255,255,0.86); margin: 0 0 24px; }
.lx .sx-list { display: flex; flex-direction: column; gap: 12px; }
.lx .sx-list .item { display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.16); border-radius: var(--r-md); padding: 14px 8px; font-weight: 600; font-size: var(--fs-14); }
.lx .sx-list .item svg { width: 18px; height: 18px; flex: none; color: var(--brand-soft); }
@media (max-width: 820px) {
  .lx .sx-band { padding: 18px 13px; }
  .lx .sx-inner { grid-template-columns: 1fr; gap: 28px; }
}
.lx .price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; }
@media (max-width: 880px) {
  .lx .price-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
}
.lx .plan { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 15px 13px; display: flex; flex-direction: column; }
.lx .plan.featured { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand), var(--shadow-lg); position: relative; }
.lx .plan-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--brand); color: #fff; font-size: 11px; font-weight: 700; padding: 5px 14px; border-radius: var(--r-pill); letter-spacing: 0.03em; }
.lx .plan h3 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-20); margin: 0 0 4px; }
.lx .plan .ptag { font-size: var(--fs-12); color: var(--ink-3); margin: 0 0 18px; }
.lx .plan .price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 4px; }
.lx .plan .price .amt { font-family: var(--font-display); font-weight: 800; font-size: 38px; letter-spacing: -0.03em; color: var(--ink); }
.lx .plan .price .cur { font-size: var(--fs-14); font-weight: 600; color: var(--ink-2); }
.lx .plan .per { font-size: var(--fs-12); color: var(--ink-3); margin: 0 0 22px; }
.lx .plan ul { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 11px; flex: 1; }
.lx .plan li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--fs-14); color: var(--ink); }
.lx .plan li .ck { flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; margin-top: 1px; }
.lx .plan li .ck svg { width: 11px; height: 11px; }
.lx .test-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 880px) {
  .lx .test-grid { grid-template-columns: 1fr; }
}
.lx .test-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 13px; display: flex; flex-direction: column; gap: 18px; }
.lx .test-stars { display: flex; gap: 2px; color: var(--attention-emphasis); }
.lx .test-stars svg { width: 16px; height: 16px; fill: currentColor; }
.lx .test-card .quote { font-size: var(--fs-16); line-height: 1.6; color: var(--ink); margin: 0; flex: 1; }
.lx .test-author { display: flex; align-items: center; gap: 12px; }
.lx .test-avatar { width: 44px; height: 44px; border-radius: 50%; flex: none; display: grid; place-items: center; color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 16px; }
.lx .test-author .n { font-weight: 700; font-size: var(--fs-14); }
.lx .test-author .r { font-size: var(--fs-12); color: var(--ink-3); }
.lx .faq-list { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.lx .faq-item { border: 1px solid var(--line); border-radius: var(--r-md); background: #fff; overflow: hidden; }
.lx .faq-q { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: 9px 10px; font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-16); color: var(--ink); }
.lx .faq-q .chev { flex: none; transition: transform var(--dur-base) var(--ease-out); color: var(--ink-3); }
.lx .faq-item.open .faq-q .chev { transform: rotate(180deg); }
.lx .faq-a { max-height: 0; overflow: hidden; transition: max-height var(--dur-slow) var(--ease-out); }
.lx .faq-a-inner { padding: 0 10px 9px; font-size: var(--fs-14); line-height: 1.65; color: var(--ink-2); }
.lx .final-cta { text-align: center; background: linear-gradient(135deg, var(--brand-700), var(--brand-600)); color: #fff; border-radius: var(--r-lg); padding: 32px 16px; position: relative; overflow: hidden; }
.lx .final-cta::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 700px 380px at 50% 0%, rgba(255,255,255,0.12), transparent 60%); }
.lx .final-cta > * { position: relative; z-index: 1; }
.lx .final-cta h2 { font-family: var(--font-display); font-weight: 800; font-size: clamp(26px, 3.6vw, 40px); letter-spacing: -0.025em; margin: 0 0 12px; }
.lx .final-cta p { font-size: var(--fs-20); color: rgba(255,255,255,0.88); margin: 0 0 28px; }
@media (max-width: 640px) {
  .lx .final-cta p { font-size: var(--fs-16); }
  .lx .final-cta { padding: 24px 11px; }
}
.lx .final-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.lx .footer { background: var(--neutral-emphasis-plus); color: #fff; padding: 30px 0 14px; }
.lx .footer .wrap { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; }
@media (max-width: 860px) {
  .lx .footer .wrap { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 480px) {
  .lx .footer .wrap { grid-template-columns: 1fr; }
}
.lx .footer .brand { color: #fff; margin-bottom: 14px; }
.lx .foot-about p { font-size: var(--fs-14); line-height: 1.6; color: rgba(255,255,255,0.62); margin: 0 0 16px; max-width: 320px; }
.lx .foot-socials { display: flex; gap: 10px; }
.lx .foot-socials a { width: 36px; height: 36px; border-radius: var(--r-md); background: rgba(255,255,255,0.08); display: grid; place-items: center; color: rgba(255,255,255,0.8); transition: background var(--dur-base), color var(--dur-base); }
.lx .foot-socials a:hover { background: var(--brand); color: #fff; }
.lx .foot-socials svg { width: 18px; height: 18px; }
.lx .foot-col h5 { font-size: var(--fs-12); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: rgba(255,255,255,0.5); margin: 0 0 14px; }
.lx .foot-col a { display: block; font-size: var(--fs-14); color: rgba(255,255,255,0.72); padding: 6px 0; transition: color var(--dur-base); }
.lx .foot-col a:hover { color: #fff; }
.lx .foot-bottom { border-top: 1px solid rgba(255,255,255,0.1); margin-top: 44px; padding-top: 11px; display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; justify-content: space-between; }
.lx .foot-bottom .disc { font-size: var(--fs-12); color: rgba(255,255,255,0.5); max-width: 560px; }
.lx .foot-bottom .copy { font-size: var(--fs-12); color: rgba(255,255,255,0.6); }
@media (max-width: 940px) {
  .lx .nav { display: none; }
  .lx .hdr-right .desktop-only { display: none; }
  .lx .menu-btn { display: flex; }
}
@media (max-width: 940px) {
  .lx .hero .wrap { grid-template-columns: 1fr; gap: 40px; }
  .lx .hero-card { transform: none; }
}
.lx .reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out); }
.lx .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .lx .reveal { opacity: 1; transform: none; transition: none; }
  .lx { scroll-behavior: auto; }
}
.lx .section-title, .lx .section-sub, .lx .hero h1, .lx .hero-sub, .lx .hc-metric .v, .lx .metric .num, .lx .feat-card h3, .lx .show-text h3, .lx .sx-inner h2, .lx .plan h3, .lx .plan .price .amt, .lx .final-cta h2, .lx .final-cta p, .lx .brand, .lx .step .num, .lx .test-avatar { font-size: 1.2rem !important; }
.lx { --fs-20:1.2rem; --fs-24:1.2rem; --fs-32:1.2rem; --fs-40:1.2rem; --fs-48:1.2rem; }
.lx .section-title, .lx .hero h1, .lx .hc-metric .v, .lx .metric .num, .lx .show-text h3, .lx .sx-inner h2, .lx .plan .price .amt, .lx .final-cta h2 { font-size: 1.2rem !important; }
