@charset "UTF-8";
:root {
  --ink: #0d0f12;
  --ink-2: #454b54;
  --ink-3: #7c838d;
  --ink-4: #aab0b9;
  --paper: #ffffff;
  --paper-2: #f7f8fa;
  --paper-3: #eef0f3;
  --desk: #e8eaee;
  --line: #edeef1;
  --line-2: #dfe2e7;
  --accent: #2b52d9;
  --accent-h: #2244bb;
  --accent-rgb: 43, 82, 217;
  --mint: #059669;
  --mint-h: #047857;
  --flame: #dc2626;
  --flame-h: #b91c1c;
  --warning: #d97706;
  --lime: #a3e635;
  --ink-surface: #0d0f12;
  --ink-surface-h: #000000;
  --on-ink-surface: #ffffff;
  --grid-head: #2749bd;
  --grid-sec: #4a66c8;
  --grid-cur: #1d368c;
  --on-grid: #ffffff;
  --on-grid-2: rgba(255, 255, 255, .72);
  --on-grid-3: rgba(255, 255, 255, .12);
  --on-ink: #ffffff;
  --on-ink-2: rgba(255, 255, 255, .62);
  --on-ink-3: rgba(255, 255, 255, .14);
  --sh-card: 0 1px 2px rgba(13, 15, 18, .04), 0 10px 28px -18px rgba(13, 15, 18, .22);
  --sh-pop: 0 2px 6px rgba(13, 15, 18, .06), 0 18px 44px -20px rgba(13, 15, 18, .30);
  --sh-lift: 0 6px 16px -10px rgba(13, 15, 18, .9);
  --r-xl: 22px;
  --r-lg: 16px;
  --r-md: 12px;
  --r-sm: 9px;
  --r-pill: 999px;
  --radius: 12px;
  --mono: SFMono-Regular, ui-monospace, Cascadia Mono, Consolas, monospace;
  --ch-grid: #eceef1;
  --ch-tick: #7c838d;
  --ch-1: #059669;
  --ch-2: #dc2626;
  --ch-3: #2b52d9;
  --ch-4: #d97706;
  --ch-5: #7c3aed;
  --ch-6: #0891b2;
  --ch-7: #db2777;
  --ch-fill: rgba(43, 82, 217, .10);
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) {
    --ink: #f2f3f6;
    --ink-2: #b7bcc7;
    --ink-3: #858c9a;
    --ink-4: #5f6673;
    --paper: #16181f;
    --paper-2: #1d1f27;
    --paper-3: #262933;
    --desk: #0a0b0f;
    --line: #23262f;
    --line-2: #2f333e;
    --accent: #7f9cff;
    --accent-h: #9ab0ff;
    --accent-rgb: 127, 156, 255;
    --mint: #34d399;
    --mint-h: #5ee0ad;
    --flame: #f87171;
    --flame-h: #fb8f8f;
    --warning: #fbbf24;
    --lime: #bef264;
    --ink-surface: #7f9cff;
    --ink-surface-h: #9ab0ff;
    --on-ink-surface: #0b1020;
    --grid-head: #28314d;
    --grid-sec: #4a5269;
    --grid-cur: #1e2439;
    --on-grid: #ffffff;
    --on-grid-2: rgba(255, 255, 255, .72);
    --on-grid-3: rgba(255, 255, 255, .12);
    --on-ink: #f2f3f6;
    --on-ink-2: rgba(242, 243, 246, .60);
    --on-ink-3: rgba(242, 243, 246, .12);
    --sh-card: 0 1px 2px rgba(0, 0, 0, .40), 0 12px 30px -20px rgba(0, 0, 0, .90);
    --sh-pop: 0 2px 8px rgba(0, 0, 0, .50), 0 22px 50px -22px rgba(0, 0, 0, 1);
    --sh-lift: 0 6px 18px -10px rgba(0, 0, 0, .9);
    --ch-grid: #23262f;
    --ch-tick: #858c9a;
    --ch-1: #34d399;
    --ch-2: #f87171;
    --ch-3: #8ea6ff;
    --ch-4: #fbbf24;
    --ch-5: #c084fc;
    --ch-6: #22d3ee;
    --ch-7: #f472b6;
    --ch-fill: rgba(142, 166, 255, .16);
    color-scheme: dark;
  }
}
:root[data-theme=dark] {
  --ink: #f2f3f6;
  --ink-2: #b7bcc7;
  --ink-3: #858c9a;
  --ink-4: #5f6673;
  --paper: #16181f;
  --paper-2: #1d1f27;
  --paper-3: #262933;
  --desk: #0a0b0f;
  --line: #23262f;
  --line-2: #2f333e;
  --accent: #7f9cff;
  --accent-h: #9ab0ff;
  --accent-rgb: 127, 156, 255;
  --mint: #34d399;
  --mint-h: #5ee0ad;
  --flame: #f87171;
  --flame-h: #fb8f8f;
  --warning: #fbbf24;
  --lime: #bef264;
  --ink-surface: #7f9cff;
  --ink-surface-h: #9ab0ff;
  --on-ink-surface: #0b1020;
  --grid-head: #28314d;
  --grid-sec: #4a5269;
  --grid-cur: #1e2439;
  --on-grid: #ffffff;
  --on-grid-2: rgba(255, 255, 255, .72);
  --on-grid-3: rgba(255, 255, 255, .12);
  --on-ink: #f2f3f6;
  --on-ink-2: rgba(242, 243, 246, .60);
  --on-ink-3: rgba(242, 243, 246, .12);
  --sh-card: 0 1px 2px rgba(0, 0, 0, .40), 0 12px 30px -20px rgba(0, 0, 0, .90);
  --sh-pop: 0 2px 8px rgba(0, 0, 0, .50), 0 22px 50px -22px rgba(0, 0, 0, 1);
  --sh-lift: 0 6px 18px -10px rgba(0, 0, 0, .9);
  --ch-grid: #23262f;
  --ch-tick: #858c9a;
  --ch-1: #34d399;
  --ch-2: #f87171;
  --ch-3: #8ea6ff;
  --ch-4: #fbbf24;
  --ch-5: #c084fc;
  --ch-6: #22d3ee;
  --ch-7: #f472b6;
  --ch-fill: rgba(142, 166, 255, .16);
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .stat.accent,
  :root:not([data-theme=light]) .panel.panel-dark {
    background: var(--paper-3);
    border-color: var(--line-2);
  }
  :root:not([data-theme=light]) .nav-main a.active {
    color: var(--ink);
    background: var(--paper-3);
    box-shadow: inset 0 0 0 1px var(--line-2);
  }
  :root:not([data-theme=light]) .badge-c {
    color: color-mix(in srgb, var(--c, #6b727b) 55%, white);
    background: color-mix(in srgb, var(--c, #6b727b) 20%, var(--paper));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c, #6b727b) 38%, transparent);
  }
  :root:not([data-theme=light]) .dot {
    background: color-mix(in srgb, var(--c, #6b727b) 62%, white);
  }
  :root:not([data-theme=light]) .form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23858c9a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  }
  :root:not([data-theme=light]) .btn-close {
    filter: invert(1) grayscale(100%) brightness(180%);
  }
}
:root[data-theme=dark] .stat.accent,
:root[data-theme=dark] .panel.panel-dark {
  background: var(--paper-3);
  border-color: var(--line-2);
}
:root[data-theme=dark] .nav-main a.active {
  color: var(--ink);
  background: var(--paper-3);
  box-shadow: inset 0 0 0 1px var(--line-2);
}
:root[data-theme=dark] .badge-c {
  color: color-mix(in srgb, var(--c, #6b727b) 55%, white);
  background: color-mix(in srgb, var(--c, #6b727b) 20%, var(--paper));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c, #6b727b) 38%, transparent);
}
:root[data-theme=dark] .dot {
  background: color-mix(in srgb, var(--c, #6b727b) 62%, white);
}
:root[data-theme=dark] .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23858c9a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
:root[data-theme=dark] .btn-close {
  filter: invert(1) grayscale(100%) brightness(180%);
}

:root {
  --fs-scale: 1;
  --fs-3xs: calc(11.5px * var(--fs-scale));
  --fs-2xs: calc(12.5px * var(--fs-scale));
  --fs-xs: calc(13.5px * var(--fs-scale));
  --fs-sm: calc(14.5px * var(--fs-scale));
  --fs-base: calc(15.5px * var(--fs-scale));
  --fs-md: calc(17px * var(--fs-scale));
  --fs-lg: calc(19px * var(--fs-scale));
  --fs-xl: calc(22px * var(--fs-scale));
  --fs-2xl: calc(26px * var(--fs-scale));
  --fs-3xl: calc(30px * var(--fs-scale));
  --fs-figure: calc(38px * var(--fs-scale));
  --ic: calc(21px * var(--fs-scale));
  --ic-xs: calc(15px * var(--fs-scale));
  --ic-sm: calc(18px * var(--fs-scale));
  --ic-lg: calc(25px * var(--fs-scale));
  --ic-xl: calc(32px * var(--fs-scale));
}

:root[data-density=compact] {
  --fs-scale: .92;
}

:root[data-density=default] {
  --fs-scale: 1;
}

:root[data-density=large] {
  --fs-scale: 1.09;
}

:root[data-density=xl] {
  --fs-scale: 1.18;
}

.fs-3xs {
  font-size: var(--fs-3xs);
}

.fs-2xs {
  font-size: var(--fs-2xs);
}

.fs-xs {
  font-size: var(--fs-xs);
}

.fs-sm {
  font-size: var(--fs-sm);
}

.fs-base {
  font-size: var(--fs-base);
}

.fs-md {
  font-size: var(--fs-md);
}

.fs-lg {
  font-size: var(--fs-lg);
}

.fs-xl {
  font-size: var(--fs-xl);
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  height: 100%;
}

/* Not `height`: a fixed-height body ends where the viewport does, and a sticky
   element only sticks inside its own parent — so a topbar over a page taller
   than one screen would scroll away. */
body {
  min-height: 100%;
}

/* The topbar is sticky, so anything scrolled to — an anchor, or the control the
   keyboard just moved focus to — has to stop below it rather than behind it. */
html {
  scroll-padding-top: 86px;
}

body {
  font-family: "Noto Sans Thai", "Noto Sans", -apple-system, "Segoe UI", sans-serif;
  font-size: var(--fs-base);
  line-height: 1.5;
  color: var(--ink);
  background: var(--desk);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--ink);
  text-decoration: none;
  transition: color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
a:hover {
  color: var(--accent);
  text-decoration: none;
}

::selection {
  background: rgba(var(--accent-rgb), 0.18);
}

.bi {
  font-size: var(--ic);
  line-height: 1;
  display: inline-block;
  vertical-align: -0.16em;
  user-select: none;
}

.ic-sm {
  font-size: var(--ic-sm);
}

.ic-lg {
  font-size: var(--ic-lg);
}

.ic-xl {
  font-size: var(--ic-xl);
}

.num {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.micro {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.muted {
  color: var(--ink-3);
}

.muted-2 {
  color: var(--ink-4);
}

.pos {
  color: var(--mint);
}

.neg {
  color: var(--flame);
}

.figure {
  font-size: var(--fs-figure);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.figure small {
  font-size: 0.52em;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink-3);
}

.chip-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 15.64px;
  color: var(--ink);
  background: var(--paper-3);
}

.chip-ico-accent {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 15.64px;
  color: #fff;
  background: var(--accent);
}

.chip-ico-mint {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 15.64px;
  color: #fff;
  background: var(--mint);
}

.chip-ico-flame {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 15.64px;
  color: #fff;
  background: var(--flame);
}

.chip-ico-ink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 15.64px;
  color: var(--on-ink-surface);
  background: var(--ink-surface);
}

.scroll-y {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.scroll-y::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.scroll-y::-webkit-scrollbar-track {
  background: transparent;
}
.scroll-y::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.scroll-y::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}

.empty-state {
  text-align: center;
  padding: 44px 20px;
  color: var(--ink-3);
}
.empty-state .bi {
  font-size: var(--ic-xl);
  color: var(--ink-4);
  display: block;
  margin-bottom: 6px;
}

.page {
  padding: 18px 22px 22px;
}

/* A save swaps #pageMain from the server rather than reloading the document.
   The region dims for the moment that takes — enough to say "working", not
   enough to make a local round trip feel like a page load. */
#pageMain {
  transition: opacity 0.12s ease;
}
#pageMain.is-refreshing {
  opacity: 0.45;
  pointer-events: none;
}

.page-head {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 16px;
}

.page-title {
  font-size: var(--fs-2xl);
  font-weight: 700;
  letter-spacing: -0.03em;
  margin: 0;
}

.page-sub {
  font-size: var(--fs-sm);
  color: var(--ink-3);
  margin: 3px 0 0;
}

@media (max-width: 992px) {
  .page {
    padding: 14px 12px 16px;
  }
  .page-title {
    font-size: var(--fs-xl);
  }
}
.login-shell {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px;
}

.login-card {
  width: 100%;
  max-width: 380px;
  padding: 30px 30px 26px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--sh-card);
}
.login-card .login-mark {
  width: 52px;
  height: 52px;
  margin-bottom: 16px;
}
.login-card .login-mark img {
  width: 100%;
  height: 100%;
  display: block;
}
.login-card .login-title {
  margin: 0;
  font-size: var(--fs-2xl);
  font-weight: 700;
  letter-spacing: -0.03em;
}
.login-card .login-lede {
  margin: 2px 0 22px;
  font-size: var(--fs-sm);
}
.login-card .login-foot {
  margin: 22px 0 0;
  font-size: var(--fs-2xs);
  line-height: 1.5;
}
.login-card .alert {
  font-size: var(--fs-sm);
  padding: 9px 13px;
}
.login-card .btn {
  padding: 10px 18px;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  padding: 10px 14px 0;
  background: var(--desk);
}
.topbar-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 10px 8px 16px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 999px;
  box-shadow: var(--sh-card);
}

.brand {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: var(--fs-md);
  letter-spacing: -0.03em;
  color: var(--ink) !important;
  white-space: nowrap;
}
.brand:hover {
  color: var(--ink) !important;
}
.brand-mark {
  display: inline-flex;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
}
.brand-mark img {
  width: 100%;
  height: 100%;
  display: block;
}
.brand span {
  font-weight: 400;
  color: var(--ink-3);
}

.nav-main {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 4px;
  border-radius: 999px;
  background: var(--paper-2);
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.nav-main::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.nav-main::-webkit-scrollbar-track {
  background: transparent;
}
.nav-main::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.nav-main::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}
.nav-main a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--ink-3);
  border-radius: 999px;
  white-space: nowrap;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.nav-main a .bi {
  font-size: var(--ic-sm);
}
.nav-main a:hover {
  color: var(--ink);
  background: var(--paper-3);
}
.nav-main a.active {
  color: var(--on-ink-surface);
  background: var(--ink-surface);
  font-weight: 600;
  box-shadow: var(--sh-lift);
}

.topbar-actions {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 16.56px;
  color: var(--ink-2);
  background: var(--paper-2);
  position: relative;
  border: 0;
  cursor: pointer;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.icon-btn:hover {
  background: var(--paper-3);
  color: var(--ink);
}
.icon-btn.has-dot::after {
  content: "";
  position: absolute;
  top: 7px;
  right: 8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--flame);
  border: 2px solid var(--paper);
}

.user-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 3px 10px 3px 3px;
  border-radius: 999px;
  background: var(--paper-2);
  font-size: var(--fs-sm);
  font-weight: 500;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.user-chip:hover {
  background: var(--paper-3);
  color: var(--ink);
}
.user-chip .avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 13.8px;
  color: #fff;
  background: var(--accent);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.user-chip .bi {
  font-size: var(--ic-sm);
  color: var(--ink-3);
}

@media (max-width: 1200px) {
  .nav-main a {
    padding: 6px 11px;
  }
  .nav-main a .bi {
    display: none;
  }
}
@media (max-width: 992px) {
  .topbar {
    padding: 8px 8px 0;
  }
  .topbar-inner {
    border-radius: 16px;
    flex-wrap: wrap;
  }
  .brand, .topbar-actions {
    flex: 0 0 auto;
  }
  .topbar-actions {
    margin-left: auto;
  }
  .nav-main {
    order: 3;
    width: 100%;
    overflow-x: auto;
  }
}
.site-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 10px;
  padding: 20px 22px 26px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.site-foot a {
  color: var(--ink-2);
  transition: color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.site-foot a:hover {
  color: var(--ink);
}
.site-foot .foot-dot {
  color: var(--ink-4);
}
.site-foot .foot-ver {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 26px;
  position: relative;
}
.timeline::before {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 5px;
  width: 2px;
  border-radius: 999px;
  background: var(--line-2);
}

.timeline-item {
  position: relative;
}
.timeline-item + .timeline-item {
  margin-top: 14px;
}

.timeline-dot {
  position: absolute;
  top: 22px;
  left: -26px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--paper);
  box-shadow: 0 0 0 2px var(--line-2);
}
.timeline-dot.is-current {
  background: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.2);
}

.release-group {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 14px;
  padding: 12px 0;
}
.release-group + .release-group {
  border-top: 1px solid var(--line);
}

.release-kind {
  padding-top: 1px;
}

.release-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--fs-sm);
  line-height: 1.65;
  color: var(--ink-2);
}
.release-list li {
  position: relative;
  padding-left: 15px;
}
.release-list li::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ink-4);
}
.release-list li + li {
  margin-top: 5px;
}
.release-list b {
  color: var(--ink);
  font-weight: 600;
}
.release-list code {
  font-family: var(--mono);
  font-size: var(--fs-2xs);
}

@media (max-width: 768px) {
  .release-group {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.panel {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--sh-card);
  overflow: hidden;
}
.panel + .panel {
  margin-top: 14px;
}
.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 13px 16px;
  background: var(--paper);
}
.panel-title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: var(--fs-md);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.panel-body {
  padding: 4px 16px 16px;
}
.panel-body.tight {
  padding: 0 0 4px;
}
.panel-body.flush {
  padding: 0;
}
.panel.panel-dark {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.panel.panel-dark .panel-head {
  background: transparent;
}
.panel.panel-dark .panel-title,
.panel.panel-dark .figure {
  color: #fff;
}
.panel.panel-dark .muted, .panel.panel-dark .panel-title small {
  color: rgba(255, 255, 255, 0.6);
}
.panel.panel-dark .bar {
  background: rgba(255, 255, 255, 0.14);
}
.panel.panel-dark .bar > i {
  background: var(--lime);
}

.panel-tools {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-xs);
}

.stat {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--sh-card);
  height: 100%;
  padding: 14px 16px;
  transition: box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.stat:hover {
  box-shadow: var(--sh-pop);
}
.stat .k {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: flex;
  align-items: center;
  gap: 7px;
}
.stat .v {
  margin-top: 6px;
  font-size: var(--fs-xl);
  font-weight: 700;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.stat .d {
  margin-top: 2px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.stat.accent {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.stat.accent .k, .stat.accent .d {
  color: rgba(255, 255, 255, 0.62);
}
.stat.accent .v {
  color: #fff;
}
.stat.accent .pos {
  color: var(--lime);
}
.stat.accent .neg {
  color: #ff8a92;
}

.delta {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px 2px 5px;
  border-radius: 999px;
  font-size: var(--fs-2xs);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.delta .bi {
  font-size: var(--ic-xs);
}
.delta.up {
  color: var(--mint-h);
  background: rgba(0, 197, 102, 0.13);
}
.delta.down {
  color: var(--flame);
  background: rgba(245, 51, 63, 0.12);
}
.delta.flat {
  color: var(--ink-3);
  background: var(--paper-3);
}

.bar {
  height: 6px;
  border-radius: 999px;
  background: var(--paper-3);
  overflow: hidden;
}
.bar > i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--ink);
  transition: width 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.bar.bar-accent > i {
  background: var(--accent);
}
.bar.bar-mint > i {
  background: var(--mint);
}
.bar.bar-flame > i {
  background: var(--flame);
}

.legend {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.legend > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.theme-opt {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  height: 100%;
  padding: 13px 14px;
  text-align: left;
  cursor: pointer;
  border: 1px solid var(--line-2);
  border-radius: 16px;
  background: var(--paper);
  transition: border-color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.theme-opt .bi {
  color: var(--ink-3);
  margin-bottom: 4px;
}
.theme-opt b {
  font-size: var(--fs-sm);
  font-weight: 600;
}
.theme-opt small {
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  line-height: 1.35;
}
.theme-opt:hover {
  border-color: var(--ink-4);
  background: var(--paper-2);
}
.theme-opt.active {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.06);
  box-shadow: 0 0 0 1px var(--accent) inset;
}
.theme-opt.active .bi {
  color: var(--accent);
}

.size-sample {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin-bottom: 5px;
  color: var(--ink-2);
}
.size-sample .ss-a {
  font-size: var(--fs-md);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.size-sample .ss-n {
  font-size: var(--fs-base);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.size-sample .ss-m {
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}

.stat.accent .delta.up {
  color: var(--lime);
  background: rgba(255, 255, 255, 0.12);
}
.stat.accent .delta.down {
  color: #ff9aa4;
  background: rgba(255, 255, 255, 0.12);
}
.stat.accent .delta.flat {
  color: var(--on-ink-2);
  background: rgba(255, 255, 255, 0.1);
}

.stat .k .bi {
  color: var(--ink-4);
}

.stat.accent .k .bi {
  color: rgba(255, 255, 255, 0.5);
}

.hovercard {
  position: fixed;
  z-index: 2000;
  max-width: 300px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--sh-pop);
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--ink-2);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(3px);
  transition: opacity 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), visibility 0.16s;
}
.hovercard.is-on {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.hovercard .hc-t {
  font-weight: 700;
  font-size: var(--fs-sm);
  color: var(--ink);
  letter-spacing: -0.01em;
}
.hovercard .hc-s {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  color: var(--ink-3);
  margin-top: 1px;
}
.hovercard .hc-l {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 12px;
  margin: 8px 0 0;
}
.hovercard .hc-l dt {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  color: var(--ink-3);
  white-space: nowrap;
}
.hovercard .hc-l dd {
  margin: 0;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.hovercard .hc-l .dot {
  width: 7px;
  height: 7px;
  margin-right: 3px;
}

.stat.has-spark {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 200px;
  gap: 10px;
  align-items: center;
}
.stat .spark-box {
  grid-row: 1/-1;
  grid-column: 2;
  width: 200px;
  height: 54px;
  overflow: hidden;
}
.stat .spark {
  display: block;
  width: 100%;
  height: 100%;
}
.stat .stat-main {
  grid-column: 1;
  min-width: 0;
}

@media (max-width: 1200px) {
  .stat.has-spark {
    grid-template-columns: minmax(0, 1fr) 92px;
  }
  .stat .spark-box {
    width: 92px;
    height: 46px;
  }
}
@media (max-width: 768px) {
  .stat.has-spark {
    grid-template-columns: minmax(0, 1fr) 74px;
  }
  .stat .spark-box {
    width: 74px;
    height: 40px;
  }
}
.spark-tip {
  position: absolute;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  padding: 5px 9px;
  border-radius: 9px;
  background: var(--ink-surface);
  color: var(--on-ink-surface);
  box-shadow: var(--sh-pop);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, calc(-100% - 10px));
  transition: opacity 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), visibility 0.16s;
}
.spark-tip.is-on {
  opacity: 1;
  visibility: visible;
}
.spark-tip b {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  color: color-mix(in srgb, var(--on-ink-surface) 62%, transparent);
}
.spark-tip span {
  font-size: var(--fs-2xs);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.meter {
  display: flex;
  align-items: center;
  gap: 10px;
}
.meter .meter-track {
  flex: 1 1 auto;
  height: 9px;
  border-radius: 999px;
  background: var(--paper-3);
  overflow: hidden;
}
.meter .meter-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--accent);
  transition: width 0.45s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.meter .meter-val {
  flex: 0 0 auto;
  font-size: var(--fs-xs);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.meter.is-warn .meter-fill {
  background: var(--warning, #d97706);
}
.meter.is-over .meter-fill {
  background: var(--flame);
}
.meter.is-over .meter-val {
  color: var(--flame);
}

.list-rows {
  list-style: none;
  margin: 0;
  padding: 0;
}

.list-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 9px 16px;
  border-bottom: 1px solid var(--line);
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.list-row:last-child {
  border-bottom: 0;
}
.list-row:hover {
  background: var(--paper-2);
}
.list-row.is-clickable {
  cursor: pointer;
}
.list-row .lr-dot {
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
}
.list-row .lr-main {
  flex: 1 1 auto;
  min-width: 0;
}
.list-row .lr-title {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.list-row .lr-sub {
  display: block;
  margin-top: 1px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.list-row .lr-amt {
  flex: 0 0 auto;
  font-size: var(--fs-sm);
  font-weight: 700;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.list-row .lr-side {
  flex: 0 0 auto;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.tabs-pill {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 3px;
  padding: 4px;
  margin-bottom: 14px;
  border-radius: 999px;
  background: var(--paper-2);
  border: 1px solid var(--line);
}
.tabs-pill .nav-item {
  display: contents;
}
.panel-tools .tabs-pill, .panel-head > .tabs-pill {
  margin-bottom: 0;
}
.tabs-pill .nav-link,
.tabs-pill > a, .tabs-pill > button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 15px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-3);
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.tabs-pill .nav-link .bi,
.tabs-pill > a .bi, .tabs-pill > button .bi {
  font-size: var(--ic-sm);
}
.tabs-pill .nav-link:hover,
.tabs-pill > a:hover, .tabs-pill > button:hover {
  color: var(--ink);
  background: var(--paper-3);
}
.tabs-pill .nav-link.active,
.tabs-pill > a.active, .tabs-pill > button.active {
  color: var(--on-ink-surface);
  background: var(--ink-surface);
  box-shadow: var(--sh-lift);
}
.tabs-pill .nav-link .count,
.tabs-pill > a .count, .tabs-pill > button .count {
  font-size: var(--fs-2xs);
  font-weight: 600;
  opacity: 0.62;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.share {
  display: flex;
  align-items: center;
  gap: 8px;
}
.share .share-track {
  flex: 1 1 auto;
  min-width: 46px;
  height: 5px;
  border-radius: 999px;
  background: var(--paper-3);
  overflow: hidden;
}
.share .share-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--c, var(--ink-4));
}
.share .share-pct {
  flex: 0 0 34px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.term {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.term .term-track {
  width: 66px;
  height: 5px;
  border-radius: 999px;
  background: var(--paper-3);
  overflow: hidden;
}
.term .term-fill {
  display: block;
  height: 100%;
  background: var(--accent);
  border-radius: 999px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.hero {
  --hero-fg-2: color-mix(in srgb, var(--on-ink-surface) 66%, transparent);
  --hero-line: color-mix(in srgb, var(--on-ink-surface) 15%, transparent);
  --hero-btn: color-mix(in srgb, var(--on-ink-surface) 12%, transparent);
  --hero-btn-h: color-mix(in srgb, var(--on-ink-surface) 20%, transparent);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--sh-card);
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 18px 20px 16px;
  background: var(--ink-surface);
  border-color: var(--ink-surface);
  color: var(--on-ink-surface);
}
.hero .hero-k {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--hero-fg-2);
}
.hero .hero-k .bi {
  font-size: var(--ic-xs);
}
.hero .hero-v {
  margin-top: 8px;
  font-size: var(--fs-figure);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.035em;
  color: var(--on-ink-surface);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.hero .hero-v small {
  font-size: var(--fs-lg);
  font-weight: 600;
  opacity: 0.6;
  margin-right: 4px;
}
.hero .hero-d {
  margin-top: 6px;
  font-size: var(--fs-2xs);
  color: var(--hero-fg-2);
}
.hero .hero-rows {
  margin-top: 15px;
}
.hero .hero-foot {
  margin-top: auto;
  padding-top: 14px;
  display: flex;
  gap: 8px;
}

.kv-rows {
  list-style: none;
  margin: 0;
  padding: 0;
}

.kv-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  font-size: var(--fs-sm);
  border-top: 1px solid var(--line);
}
.kv-row:first-child {
  border-top: 0;
}
.kv-row .kv-k {
  flex: 1 1 auto;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--ink-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.kv-row .kv-v {
  flex: 0 0 auto;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.kv-row .kv-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
}
.hero .kv-row {
  border-color: var(--hero-line);
}
.hero .kv-row .kv-k {
  color: var(--hero-fg-2);
}
.hero .kv-row .kv-v {
  color: var(--on-ink-surface);
}

.outlook {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
}
.outlook .ol-col {
  min-width: 0;
}
.outlook .ol-col.is-next .ol-v {
  color: var(--accent);
}
.outlook .ol-y {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.outlook .ol-v {
  margin-top: 3px;
  font-size: var(--fs-xl);
  font-weight: 700;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.outlook .ol-s {
  margin-top: 2px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.outlook .ol-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-4);
  font-size: var(--ic-lg);
}

@media (max-width: 768px) {
  .outlook {
    grid-template-columns: 1fr 1fr;
  }
  .outlook .ol-arrow {
    display: none;
  }
}
.lr-right {
  flex: 0 0 auto;
  text-align: right;
  line-height: 1.25;
}
.lr-right b {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.lr-right small {
  display: block;
  margin-top: 1px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.list-row.is-soon {
  box-shadow: inset 3px 0 0 var(--accent);
}

.panel-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 16px 16px;
  padding: 11px 14px;
  border-radius: 16px;
  background: var(--paper-3);
  font-size: var(--fs-sm);
}
.panel-foot.tight {
  margin: 0 0 4px;
}
.panel-foot .pf-k {
  color: var(--ink-2);
}
.panel-foot .pf-v {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.panel-foot.is-accent {
  background: rgba(var(--accent-rgb), 0.09);
}
.panel-foot.is-accent .pf-v {
  color: var(--accent);
}

.ins-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
}
.ins-card + .ins-card {
  margin-top: 9px;
}
.ins-card .ins-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 15.64px;
  color: var(--ink);
  background: var(--paper-3);
  margin-top: 1px;
}
.ins-card .ins-main {
  min-width: 0;
  flex: 1 1 auto;
}
.ins-card .ins-t {
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.ins-card .ins-b {
  margin: 2px 0 0;
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--ink-3);
}
.ins-card b.num {
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.ins-card.is-warn .ins-ico {
  color: var(--flame);
  background: rgba(245, 51, 63, 0.11);
}
.ins-card.is-good .ins-ico {
  color: var(--mint-h);
  background: rgba(0, 197, 102, 0.12);
}
.ins-card.is-note .ins-ico {
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.11);
}

.hero .hero-foot .btn {
  border-color: transparent;
  background: var(--hero-btn);
  color: var(--on-ink-surface);
}
.hero .hero-foot .btn:hover {
  background: var(--hero-btn-h);
  color: var(--on-ink-surface);
}
.hero .hero-foot .btn-on-ink {
  background: var(--paper);
  color: var(--ink);
}
.hero .hero-foot .btn-on-ink:hover {
  background: var(--paper-2);
  color: var(--ink);
}

.chart-box {
  position: relative;
  width: 100%;
  height: 190px;
}
.chart-box > canvas {
  display: block;
}
.chart-box.is-tall {
  height: 250px;
}
.chart-box.is-ring {
  height: 230px;
}
.chart-box.is-xtall {
  height: 360px;
}
.chart-box.is-rows {
  height: auto;
  min-height: 180px;
}

@media (max-width: 768px) {
  .chart-box {
    height: 165px;
  }
  .chart-box.is-tall {
    height: 200px;
  }
  .chart-box.is-xtall {
    height: 280px;
  }
}
.col-fill {
  display: flex;
  flex-direction: column;
}
.col-fill > .panel {
  flex: 0 0 auto;
}
.col-fill > .panel.is-grow {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.col-fill .panel-body.is-fill {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
.col-fill .panel-body.is-fill:has(> .chart-box) {
  justify-content: center;
}

.dash-bar {
  position: sticky;
  top: var(--topbar-h, 62px);
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 16px -8px 10px;
  padding: 8px;
  background: var(--desk);
}
.dash-bar .tabs-pill {
  margin-bottom: 0;
}

.panel-foot + .panel-foot {
  margin-top: -10px;
}

.ins-grid .ins-card {
  height: 100%;
  margin-top: 0;
}

.ins-stack .ins-card {
  margin-top: 0;
  height: 100%;
}

.stat .stat-meter {
  margin-top: 9px;
  cursor: help;
}
.stat .stat-meter .meter-track {
  height: 5px;
}

.panel-foot .pf-v {
  white-space: nowrap;
}

.badge-c {
  display: inline-block;
  max-width: 170px;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: var(--fs-2xs);
  font-weight: 600;
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  color: color-mix(in srgb, var(--c, #6b727b) 78%, var(--ink));
  background: color-mix(in srgb, var(--c, #6b727b) 13%, var(--paper));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c, #6b727b) 26%, transparent);
}

.pill {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 999px;
  font-size: var(--fs-2xs);
  font-weight: 600;
  color: #fff;
}
.pill-mint {
  background: var(--mint);
}
.pill-flame {
  background: var(--flame);
}
.pill-ink {
  background: var(--ink-surface);
  color: var(--on-ink-surface);
}
.pill-soft {
  background: var(--paper-3);
  color: var(--ink-2);
}

.dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  vertical-align: middle;
  background: var(--c, var(--ink-4));
}

.swatch {
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  background: var(--c, var(--ink-4));
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
  transition: transform 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.swatch:hover {
  transform: scale(1.12);
}
.swatch.active {
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12), 0 0 0 2px var(--paper), 0 0 0 4px var(--c, var(--ink-4));
}

.swatch-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 999px;
  font-size: var(--fs-sm);
  font-weight: 600;
  padding: 8px 18px;
  border: 1px solid transparent;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), border-color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.btn .bi {
  font-size: var(--ic-sm);
}
.btn:focus-visible {
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.24);
}

.btn-dark,
.btn-primary {
  color: var(--on-ink-surface);
  background: var(--ink-surface);
  border-color: var(--ink-surface);
  box-shadow: var(--sh-lift);
}
.btn-dark:hover, .btn-dark:focus,
.btn-primary:hover,
.btn-primary:focus {
  color: var(--on-ink-surface);
  background: var(--ink-surface-h);
  border-color: var(--ink-surface-h);
}

.btn-accent {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 6px 16px -9px rgba(var(--accent-rgb), 0.8);
}
.btn-accent:hover, .btn-accent:focus {
  color: #fff;
  background: var(--accent-h);
  border-color: var(--accent-h);
}

.btn-outline-dark,
.btn-ghost {
  color: var(--ink);
  background: var(--paper);
  border-color: var(--line-2);
}
.btn-outline-dark:hover, .btn-outline-dark:focus,
.btn-ghost:hover,
.btn-ghost:focus {
  color: var(--ink);
  background: var(--paper-2);
  border-color: var(--ink-4);
}

.btn-soft {
  color: var(--ink);
  background: var(--paper-2);
  border-color: transparent;
}
.btn-soft:hover {
  background: var(--paper-3);
  color: var(--ink);
}

.btn-danger {
  color: #fff;
  background: var(--flame);
  border-color: var(--flame);
}
.btn-danger:hover, .btn-danger:focus {
  color: #fff;
  background: var(--flame-h);
  border-color: var(--flame-h);
}

.btn-sm {
  padding: 6px 14px;
  font-size: var(--fs-xs);
}
.btn-sm .bi {
  font-size: var(--ic-sm);
}

.btn-xs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 11px;
  border-radius: 999px;
  border: 1px solid var(--line-2);
  background: var(--paper);
  color: var(--ink-2);
  font-size: var(--fs-2xs);
  font-weight: 600;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), border-color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.btn-xs .bi {
  font-size: var(--ic-xs);
}
.btn-xs:hover {
  background: var(--ink-surface);
  color: var(--on-ink-surface);
  border-color: var(--ink-surface);
}

.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 14.72px;
  color: var(--ink-2);
  background: var(--paper-2);
  border: 0;
  cursor: pointer;
}
.btn-icon:hover {
  background: var(--paper-3);
  color: var(--ink);
}

.form-control,
.form-select {
  font-size: var(--fs-sm);
  padding: 8px 13px;
  border-radius: 12px;
  border-color: var(--line-2);
  color: var(--ink);
  background-color: var(--paper);
  transition: border-color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.form-control::placeholder,
.form-select::placeholder {
  color: var(--ink-4);
  opacity: 1;
}
.form-control:hover,
.form-select:hover {
  border-color: var(--ink-4);
}
.form-control:focus,
.form-select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
  color: var(--ink);
  background-color: var(--paper);
}
.form-control:disabled, .form-control[readonly],
.form-select:disabled,
.form-select[readonly] {
  color: var(--ink-3);
  background-color: var(--paper-2);
}

.form-control-sm,
.form-select-sm {
  padding: 5px 11px;
  font-size: var(--fs-xs);
  border-radius: 999px;
}

.form-select {
  background-position: right 11px center;
}

.form-label {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 4px;
}

.input-group > .form-control:first-child,
.input-group > .form-select:first-child {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .btn:last-child {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.form-check-input {
  border-color: var(--line-2);
}
.form-check-input:checked {
  background-color: var(--ink-surface);
  border-color: var(--ink-surface);
}
.form-check-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
}

.form-block {
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.form-block:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.form-block-t {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  color: var(--ink-3);
  margin-bottom: 10px;
}

.form-hint {
  margin-top: 4px;
  font-size: var(--fs-2xs);
  line-height: 1.4;
  color: var(--ink-3);
}

.modal-sub {
  font-size: var(--fs-xs);
  color: var(--ink-3);
  margin-top: 1px;
}

.input-group-text {
  border-color: var(--line-2);
  background: var(--paper-2);
  color: var(--ink-3);
  font-size: var(--fs-xs);
  border-radius: 12px;
}

.search {
  position: relative;
}
.search .bi {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fs-lg);
  color: var(--ink-4);
  pointer-events: none;
}
.search .form-control {
  padding-left: 36px;
  border-radius: 999px;
}
.search .search-clear {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ink-3);
  cursor: pointer;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.search .search-clear .bi {
  font-size: var(--ic-xs);
}
.search .search-clear:hover {
  background: var(--paper-3);
  color: var(--ink);
}
.search .search-clear:focus-visible {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
}
.search input[type=search]::-webkit-search-cancel-button {
  display: none;
}

.segment {
  display: inline-flex;
  padding: 3px;
  border-radius: 999px;
  background: var(--paper-2);
}
.segment a, .segment button {
  padding: 4px 12px;
  border: 0;
  background: transparent;
  border-radius: 999px;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-3);
}
.segment a.active, .segment button.active {
  background: var(--paper);
  color: var(--ink);
  box-shadow: var(--sh-card);
}

.cset-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}

.cset-preset {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 8px;
  border: 0;
  border-radius: var(--r-pill);
  cursor: pointer;
  background: var(--paper-2);
  box-shadow: inset 0 0 0 1px var(--line-2);
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.cset-preset b {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-2);
}
.cset-preset:hover {
  background: var(--paper-3);
  transform: translateY(-1px);
}
.cset-preset:hover b {
  color: var(--ink);
}

.cset-preset-chips {
  display: inline-flex;
}
.cset-preset-chips i {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--c, var(--ink-4));
  box-shadow: 0 0 0 1.5px var(--paper-2);
}
.cset-preset-chips i + i {
  margin-left: -5px;
}

.cset-group {
  margin: 18px 0 8px;
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.cset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 8px;
}

.cset-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: var(--r-md);
  background: var(--paper-2);
  box-shadow: inset 0 0 0 1px var(--line);
}

.cset-txt {
  flex: 1;
  min-width: 0;
}
.cset-txt b {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.2;
}
.cset-txt small {
  display: block;
  font-size: var(--fs-3xs);
  color: var(--ink-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cset-dot {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--line-2);
}
.cset-dot::-webkit-color-swatch-wrapper {
  padding: 2px;
}
.cset-dot::-webkit-color-swatch {
  border: 0;
  border-radius: 50%;
}
.cset-dot::-moz-color-swatch {
  border: 0;
  border-radius: 50%;
}

.cset-hex {
  flex: 0 0 84px;
  width: 84px;
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  text-transform: lowercase;
}

.cset-sample {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: var(--r-lg);
  background: var(--desk);
  box-shadow: inset 0 0 0 1px var(--line-2);
}
.cset-sample b {
  font-size: var(--fs-lg);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.cset-sample .pos {
  color: var(--mint);
}
.cset-sample .neg {
  color: var(--flame);
}
.cset-sample .acc {
  color: var(--accent);
}

.cset-sample-lab {
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.cset-acts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}

table.tbl {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--fs-sm);
}
table.tbl th {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  padding: 9px 16px;
  text-align: left;
  white-space: nowrap;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
table.tbl td {
  padding: 10px 16px;
  vertical-align: middle;
  border-bottom: 1px solid var(--line);
}
table.tbl tbody tr {
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
table.tbl tbody tr:hover td {
  background: var(--paper-2);
}
table.tbl tbody tr:last-child td {
  border-bottom: 0;
}
table.tbl .r {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
table.tbl .cell-lead {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
table.tbl .cell-lead .chip-ico {
  width: 28px;
  height: 28px;
  font-size: var(--ic-xs);
}
table.tbl tfoot tr:last-child th, table.tbl tfoot tr:last-child td {
  border-bottom: none;
}

.tbl-wrap {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.tbl-wrap::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.tbl-wrap::-webkit-scrollbar-track {
  background: transparent;
}
.tbl-wrap::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.tbl-wrap::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}

table.tbl th.th-grip, table.tbl td.td-grip {
  width: 28px;
  padding-left: 10px;
  padding-right: 0;
}
table.tbl .grip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-3);
  cursor: grab;
  opacity: 0;
  transition: opacity 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
table.tbl .grip:active {
  cursor: grabbing;
}
table.tbl tbody tr:hover .grip,
table.tbl tbody tr.is-dragging .grip {
  opacity: 1;
}
table.tbl tbody tr.is-dragging {
  opacity: 0.55;
}
table.tbl tbody tr.is-dragging td {
  background: var(--paper-2);
}

@media (hover: none) {
  table.tbl .grip {
    opacity: 1;
  }
}
table.tbl.tbl-flush th:first-child, table.tbl.tbl-flush td:first-child {
  padding-left: 16px;
}
table.tbl.tbl-flush th:last-child, table.tbl.tbl-flush td:last-child {
  padding-right: 16px;
}

table.tbl .nowrap {
  white-space: nowrap;
}
table.tbl tbody tr.is-done td {
  color: var(--ink-3);
}
table.tbl tbody tr.is-done b {
  font-weight: 500;
}

.tag-warn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--flame) 12%, transparent);
  color: var(--flame);
  font-size: var(--fs-2xs);
  font-weight: 700;
}

.pagination {
  gap: 5px;
}

table.tbl tbody tr.is-clickable {
  cursor: pointer;
}

.grid-wrap {
  overflow: auto;
  max-height: calc(100vh - 214px);
  min-height: 0;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--paper);
  box-shadow: var(--sh-card);
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.grid-wrap::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.grid-wrap::-webkit-scrollbar-track {
  background: transparent;
}
.grid-wrap::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.grid-wrap::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}

table.grid {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--fs-xs);
  background: var(--paper);
}
table.grid th, table.grid td {
  padding: 5px 9px;
  vertical-align: top;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
table.grid thead th {
  position: sticky;
  top: 0;
  z-index: 20;
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  color: var(--on-grid-2);
  background: var(--grid-head);
  padding: 10px 9px;
  text-align: right;
  white-space: nowrap;
  border-right-color: var(--on-grid-3);
  border-bottom-color: var(--grid-head);
}
table.grid thead th.cur {
  color: var(--on-grid);
  background: var(--grid-cur);
  box-shadow: inset 0 -3px 0 var(--lime);
}
table.grid .c0 {
  position: sticky;
  left: 0;
  z-index: 15;
  min-width: 232px;
  max-width: 300px;
  text-align: left;
  background: var(--paper);
  border-right: 1px solid var(--line-2);
}
table.grid thead .c0 {
  z-index: 30;
  background: var(--grid-head);
}
table.grid tbody tr:hover .c0 {
  background: var(--paper-2);
}
table.grid .ctot {
  position: sticky;
  right: 0;
  z-index: 15;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
  background: var(--paper-2);
  border-left: 1px solid var(--line-2);
}
table.grid thead .ctot {
  z-index: 30;
  background: var(--grid-head);
}
table.grid tbody tr:hover .ctot {
  background: var(--paper-3);
}
table.grid tr.sec td {
  position: sticky;
  left: 0;
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  color: var(--on-grid);
  background: var(--grid-sec);
  padding: 7px 12px;
}
table.grid tr.sec td.c0 {
  z-index: 16;
  color: var(--on-grid);
  background: var(--grid-sec);
}
table.grid td.m {
  min-width: 94px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
table.grid td.m.cur {
  background: rgba(var(--accent-rgb), 0.05);
}
table.grid td.m.empty {
  color: var(--ink-4);
}
table.grid tr.sub td {
  position: sticky;
  left: 0;
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  color: var(--ink-2);
  background: var(--paper-3);
  padding: 6px 12px 6px 22px;
}
table.grid tr.sub td.c0 {
  z-index: 16;
  background: var(--paper-3);
}
table.grid tr.tot td {
  font-weight: 700;
  background: var(--paper-2);
}
table.grid tr.tot td.c0 {
  background: var(--paper-2);
}
table.grid tr.tot.grand td {
  color: var(--on-grid);
  background: var(--grid-head);
}
table.grid tr.tot.grand td.c0, table.grid tr.tot.grand td.ctot {
  color: var(--on-grid);
  background: var(--grid-head);
}
table.grid tr.tot.grand td .cell-neg {
  color: color-mix(in srgb, var(--flame) 55%, var(--on-grid));
}
table.grid tr.tot.running td {
  color: var(--ink-2);
  background: var(--paper-3);
  font-weight: 600;
}
table.grid tr.tot.running td.c0, table.grid tr.tot.running td.ctot {
  background: var(--paper-3);
}

.cell-amt {
  display: block;
  font-weight: 600;
}

.cell-line {
  display: block;
  padding: 1px 0;
}
.cell-line + .cell-line {
  border-top: 1px dotted var(--line-2);
}

.cell-neg {
  color: var(--flame);
}

.row-label {
  display: block;
  font-weight: 600;
  line-height: 1.35;
}

.row-meta {
  display: block;
  margin-top: 2px;
  font-size: var(--fs-3xs);
  color: var(--ink-3);
}

.row-dots {
  display: inline-flex;
  gap: 3px;
  margin-top: 4px;
}
.row-dots .dot {
  width: 7px;
  height: 7px;
}

table.grid .c0[data-pop] {
  cursor: help;
}

td.stack {
  padding: 4px 9px;
}
td.stack .cell-line {
  display: flex;
  align-items: baseline;
  gap: 5px;
  font-size: var(--fs-2xs);
}
td.stack .cell-line b {
  font-weight: 600;
  margin-left: auto;
  padding-left: 6px;
}
td.stack .dot {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  align-self: center;
}
td.stack .ot-name {
  flex: 0 1 auto;
  max-width: 105px;
  text-align: left;
  color: var(--ink-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cell-edit {
  cursor: pointer;
  transition: box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.cell-edit:hover {
  box-shadow: inset 0 0 0 2px var(--accent);
  border-radius: 9px;
}

@media (max-width: 992px) {
  .grid-wrap {
    max-height: calc(100vh - 178px);
    border-radius: 16px;
  }
}
body.page-year {
  height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
body.page-year .page {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding-bottom: 0;
}
body.page-year #pageMain {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
body.page-year .page-head {
  margin-bottom: 10px;
}
body.page-year .page-sub {
  display: none;
}
body.page-year .row.g-2 {
  margin-bottom: 10px !important;
}
body.page-year .stat {
  padding: 9px 12px;
}
body.page-year .stat .v {
  margin-top: 2px;
  font-size: var(--fs-lg);
}
body.page-year .stat .d {
  display: none;
}
body.page-year .grid-wrap {
  flex: 1 1 auto;
  max-height: none;
}
body.page-year .site-foot {
  padding: 6px 22px 8px;
}

.grid-wrap.grid-wrap-sm {
  max-height: none;
  border: 0;
  border-radius: 0 0 22px 22px;
  box-shadow: none;
}

table.grid.grid-people {
  font-size: var(--fs-xs);
}
table.grid.grid-people .c0 {
  min-width: 196px;
  max-width: 260px;
}
table.grid.grid-people td.m {
  min-width: 84px;
  padding: 7px 9px;
}
table.grid.grid-people .row-label {
  display: flex;
  align-items: center;
  gap: 6px;
}
table.grid.grid-people .row-label .dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
}
table.grid.grid-people .cell-amt {
  font-size: var(--fs-sm);
}
table.grid.grid-people .cell-state {
  display: block;
  margin-top: 2px;
  font-size: var(--fs-3xs);
  color: var(--ink-4);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
table.grid.grid-people td.m.empty {
  padding-top: 12px;
}
table.grid.grid-people tr.tot .cell-state {
  display: none;
}

.oth-sheet {
  text-align: left;
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.oth-sheet .oth-line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 2px;
  border-bottom: 1px dotted var(--line-2);
}
.oth-sheet .oth-line span {
  color: var(--ink-2);
}
.oth-sheet .oth-line b {
  font-weight: 600;
  white-space: nowrap;
}
.oth-sheet .oth-sum {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding: 8px 2px 2px;
  border-top: 1px solid var(--line-2);
  font-size: var(--fs-base);
}
.oth-sheet .oth-sum span {
  color: var(--ink-3);
}
.oth-sheet .oth-sum b {
  font-weight: 700;
}

.msg-split .msg-view,
.msg-split .msg-box {
  height: 320px;
}

.msg-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.msg-head .msg-head-label {
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.msg-head .msg-head-hint {
  font-size: var(--fs-2xs);
  color: var(--ink-4);
}

.msg-view {
  overflow: auto;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--paper-2);
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.msg-view .msg-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--ink);
}
.msg-view .msg-count {
  font-size: var(--fs-2xs);
  font-weight: 500;
  white-space: nowrap;
  color: var(--ink-4);
}
.msg-view .msg-group + .msg-group {
  margin-top: 14px;
}
.msg-view .msg-group-head {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 4px;
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--ink-2);
}
.msg-view .msg-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 0;
  border-bottom: 1px dotted var(--line-2);
}
.msg-view .msg-row .msg-row-name {
  color: var(--ink-2);
}
.msg-view .msg-row b {
  font-weight: 600;
  white-space: nowrap;
}
.msg-view .msg-sub {
  border-bottom: 0;
  color: var(--ink-3);
}
.msg-view .msg-sub span {
  color: var(--ink-3);
}
.msg-view .msg-sub b {
  color: var(--ink-2);
}
.msg-view .msg-total {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid var(--line-2);
  font-size: var(--fs-base);
}
.msg-view .msg-total span {
  color: var(--ink-3);
}
.msg-view .msg-total b {
  font-weight: 700;
  white-space: nowrap;
}
.msg-view .msg-empty {
  padding: 24px 0;
  text-align: center;
  color: var(--ink-4);
}

.msg-box {
  font-family: "SFMono-Regular", ui-monospace, "Cascadia Mono", Consolas, monospace, "Noto Sans Thai", sans-serif;
  font-size: var(--fs-xs);
  line-height: 1.65;
  white-space: pre;
  resize: vertical;
  background: var(--paper-2);
  color: var(--ink);
}
.msg-box:focus {
  background: var(--paper);
}

.oth-term {
  font-style: normal;
  color: var(--ink-4);
}

.drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1045;
  width: min(560px, 94vw);
  display: flex;
  flex-direction: column;
  background: var(--paper-2);
  border-left: 1px solid var(--line);
  box-shadow: var(--sh-lift);
  transform: translateX(102%);
  visibility: hidden;
  transition: transform 0.24s cubic-bezier(0.2, 0.7, 0.3, 1), visibility 0.24s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.drawer .drawer-head {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px 12px;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.drawer .drawer-t {
  margin: 0;
  font-size: var(--fs-lg);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.drawer .drawer-s {
  margin: 2px 0 0;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.drawer .drawer-filter {
  flex: 0 0 auto;
  padding: 10px 14px 0;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.drawer .drawer-filter::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.drawer .drawer-filter::-webkit-scrollbar-track {
  background: transparent;
}
.drawer .drawer-filter::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.drawer .drawer-filter::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}
.drawer .drawer-filter .tabs-pill {
  margin-bottom: 10px;
  flex-wrap: nowrap;
}
.drawer .drawer-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 4px 14px 18px;
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.drawer .drawer-body::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.drawer .drawer-body::-webkit-scrollbar-track {
  background: transparent;
}
.drawer .drawer-body::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.drawer .drawer-body::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}
.drawer .drawer-body .panel + .panel {
  margin-top: 10px;
}
.drawer .drawer-foot {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px;
  background: var(--paper);
  border-top: 1px solid var(--line);
  font-size: var(--fs-sm);
}
.drawer .drawer-foot b {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.drawer-scrim {
  position: fixed;
  inset: 0;
  z-index: 1044;
  background: rgba(0, 0, 0, 0.42);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.24s cubic-bezier(0.2, 0.7, 0.3, 1), visibility 0.24s cubic-bezier(0.2, 0.7, 0.3, 1);
}

body.has-drawer {
  overflow: hidden;
}
body.has-drawer .drawer {
  transform: none;
  visibility: visible;
}
body.has-drawer .drawer-scrim {
  opacity: 1;
  visibility: visible;
}

.score {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.score-ring {
  --pct: 0;
  --sc: var(--accent);
  position: relative;
  flex: 0 0 auto;
  width: 124px;
  height: 124px;
  border-radius: 50%;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  background: conic-gradient(var(--sc) calc(var(--pct) * 3.6deg), var(--paper-3) 0);
}
.score-ring::before {
  content: "";
  position: absolute;
  inset: 11px;
  border-radius: 50%;
  background: var(--paper);
}
.score-ring.is-good {
  --sc: var(--mint-h);
}
.score-ring.is-note {
  --sc: var(--accent);
}
.score-ring.is-warn {
  --sc: var(--flame);
}
.score-ring .sc-v {
  position: relative;
  font-size: var(--fs-2xl);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.score-ring .sc-v small {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-3);
}
.score-ring .sc-b {
  position: relative;
  margin-top: 4px;
  max-width: 78%;
  line-height: 1.1;
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.score-parts {
  flex: 1 1 210px;
  min-width: 190px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.score-parts li + li {
  margin-top: 9px;
}
.score-parts .sp-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-size: var(--fs-xs);
  font-weight: 600;
}
.score-parts .sp-pts {
  color: var(--ink-3);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.score-parts .sp-note {
  display: block;
  margin-top: 2px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.score-parts .sp-track {
  display: block;
  height: 5px;
  margin-top: 4px;
  border-radius: 999px;
  background: var(--paper-3);
  overflow: hidden;
}
.score-parts .sp-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--accent);
}

.flowbar {
  display: flex;
  height: 30px;
  border-radius: 999px;
  overflow: hidden;
  background: var(--paper-3);
}
.flowbar > i {
  display: block;
  height: 100%;
  min-width: 0;
  background: var(--c, var(--ink-4));
  transition: width 0.45s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.flowbar > i + i {
  border-left: 2px solid var(--paper);
}
.flowbar.is-over > i:last-child {
  background: repeating-linear-gradient(45deg, var(--flame) 0 6px, color-mix(in srgb, var(--flame) 62%, var(--paper)) 6px 12px);
}

.flow-note {
  margin: 10px 0 0;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}

.tbl.cmp td, .tbl.cmp th {
  white-space: nowrap;
}
.tbl.cmp .c-name {
  white-space: normal;
}
.tbl.cmp .c-bar {
  width: 26%;
  min-width: 90px;
}

.dim {
  color: var(--ink-3);
}

@media (max-width: 768px) {
  .score {
    gap: 14px;
  }
  .score-ring {
    width: 104px;
    height: 104px;
  }
}
.panel.has-tabs > .panel-head {
  flex-wrap: wrap;
  row-gap: 8px;
}
.panel.has-tabs > .tab-content {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.panel.has-tabs.is-grow > .tab-content {
  flex: 1 1 auto;
}
.panel.has-tabs > .tab-content > .tab-pane {
  flex-direction: column;
  min-height: 0;
}
.panel.has-tabs > .tab-content > .tab-pane.active {
  display: flex;
  flex: 1 1 auto;
}

.pane-scroll {
  flex: 1 1 auto;
  min-height: 0;
  max-height: 336px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.pane-scroll::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.pane-scroll::-webkit-scrollbar-track {
  background: transparent;
}
.pane-scroll::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.pane-scroll::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}

.pane-split {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(250px, 480px) minmax(0, 1fr);
  align-items: start;
}
.pane-split > .panel-body:first-child {
  padding-top: 12px;
}
.pane-split .chart-box.is-ring {
  height: 320px;
}

@media (max-width: 1200px) {
  .pane-split {
    grid-template-columns: minmax(0, 1fr);
  }
}
.sec-rows {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sec-rows .sec-row {
  padding: 10px 16px;
}
.sec-rows .sec-row + .sec-row {
  border-top: 1px solid var(--line);
}
.sec-rows .sr-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-size: var(--fs-xs);
}
.sec-rows .cell-lead {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  font-weight: 600;
}
.sec-rows .sr-now {
  font-weight: 700;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.sec-rows .share {
  margin-top: 7px;
}
.sec-rows .sr-sub {
  display: block;
  margin-top: 5px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.sec-rows .sr-sub b {
  color: var(--ink-2);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.wk-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) 360px;
  gap: 16px 20px;
  align-items: stretch;
}
.wk-split .plan-rail {
  align-self: start;
}

@media (max-width: 1200px) {
  .wk-split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .wk-split .plan-rail {
    grid-column: 1/-1;
  }
}
@media (max-width: 992px) {
  .wk-split {
    grid-template-columns: minmax(0, 1fr);
  }
}
.next-rail {
  padding: 0 20px 0 0;
  border-right: 1px solid var(--line);
}
@media (max-width: 992px) {
  .next-rail {
    padding: 0 0 14px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
}
.next-rail .nr-cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  height: 100%;
}
@media (max-width: 1200px) and (min-width: 993px) {
  .next-rail .nr-cols {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 768px) {
  .next-rail .nr-cols {
    grid-template-columns: minmax(0, 1fr);
  }
}
.next-rail .nr-rows {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: 100%;
}
.next-rail .nr-k {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  flex: 0 0 auto;
}
.next-rail .nr-list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: 300px;
  margin-top: 4px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.next-rail .nr-list::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.next-rail .nr-list::-webkit-scrollbar-track {
  background: transparent;
}
.next-rail .nr-list::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.next-rail .nr-list::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}
.next-rail .nr-list .list-row {
  padding-left: 0;
  padding-right: 0;
}
.next-rail .pr-say {
  margin-bottom: 0;
}

.wk-main {
  position: relative;
  min-height: 200px;
}
.wk-main .ins-stack {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  align-content: start;
}
@media (max-width: 1200px) and (min-width: 993px) {
  .wk-main .ins-stack {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 768px) {
  .wk-main .ins-stack {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (min-width: 1201px) {
  .wk-main .ins-stack {
    position: absolute;
    inset: 0;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--line-2) transparent;
  }
  .wk-main .ins-stack::-webkit-scrollbar {
    width: 9px;
    height: 9px;
  }
  .wk-main .ins-stack::-webkit-scrollbar-track {
    background: transparent;
  }
  .wk-main .ins-stack::-webkit-scrollbar-thumb {
    background: var(--line-2);
    border: 2px solid var(--paper);
    border-radius: 999px;
  }
  .wk-main .ins-stack::-webkit-scrollbar-thumb:hover {
    background: var(--ink-4);
  }
}

.plan-rail {
  padding: 14px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--paper-2);
}

.plan-rail .pr-head,
.next-rail .pr-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.plan-rail .pr-k,
.next-rail .pr-k {
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: -0.02em;
}
.plan-rail .pr-pick,
.next-rail .pr-pick {
  margin-bottom: 0;
  background: var(--paper);
}
.plan-rail .pr-pick .nav-link,
.next-rail .pr-pick .nav-link {
  padding: 4px 10px;
  font-size: var(--fs-2xs);
}
.plan-rail .pr-say,
.next-rail .pr-say {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}

.plan-rail .pr-target {
  margin-top: 12px;
}
.plan-rail .pr-t-k {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.plan-rail .pr-t-v {
  margin-top: 3px;
  font-size: var(--fs-2xl);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.plan-rail .pr-t-v small {
  margin-right: 5px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-3);
}
.plan-rail .pr-t-s {
  margin-top: 3px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.plan-rail .pr-rows {
  margin-top: 12px;
}

.bullet {
  --bu: var(--accent);
  margin-top: 14px;
}
.bullet.is-hit {
  --bu: var(--mint-h);
}
.bullet.is-miss {
  --bu: var(--accent);
}
.bullet .bu-track {
  position: relative;
  display: block;
  height: 10px;
  border-radius: 999px;
  background: var(--paper-3);
  overflow: hidden;
}
.bullet .bu-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--bu);
  transition: width 0.45s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.bullet .bu-mark {
  position: absolute;
  top: -2px;
  bottom: -2px;
  width: 2px;
  margin-left: -1px;
  border-radius: 999px;
  background: var(--ink-2);
  transition: left 0.45s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.bullet .bu-legend {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-top: 7px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.bullet .bu-legend b {
  color: var(--ink-2);
  font-weight: 600;
}
.bullet .bu-l .dot {
  width: 7px;
  height: 7px;
  margin-right: 5px;
  background: var(--bu);
}

.cfg-shell {
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.cfg-nav {
  position: sticky;
  top: var(--cfg-top, 74px);
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--sh-card);
}

.cfg-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 12px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-3);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.cfg-link .bi {
  font-size: var(--ic-sm);
  color: var(--ink-4);
  transition: color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.cfg-link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  border-radius: 999px;
  background: var(--accent);
  transform: translateY(-50%);
  transition: height 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.cfg-link:hover {
  color: var(--ink);
  background: var(--paper-2);
}
.cfg-link:hover .bi {
  color: var(--ink-2);
}
.cfg-link:focus-visible {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
}
.cfg-link.active {
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.07);
}
.cfg-link.active .bi {
  color: var(--accent);
}
.cfg-link.active::before {
  height: 18px;
}

.cfg-body {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
}

.cfg-sec {
  scroll-margin-top: calc(var(--cfg-top, 74px) + 12px);
}
.cfg-sec > .panel {
  margin-bottom: 0;
}

@media (max-width: 992px) {
  .cfg-shell {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }
  .cfg-nav {
    z-index: 20;
    flex-direction: row;
    gap: 4px;
    padding: 6px;
    overflow-x: auto;
    border-radius: 999px;
    scrollbar-width: thin;
    scrollbar-color: var(--line-2) transparent;
  }
  .cfg-nav::-webkit-scrollbar {
    width: 9px;
    height: 9px;
  }
  .cfg-nav::-webkit-scrollbar-track {
    background: transparent;
  }
  .cfg-nav::-webkit-scrollbar-thumb {
    background: var(--line-2);
    border: 2px solid var(--paper);
    border-radius: 999px;
  }
  .cfg-nav::-webkit-scrollbar-thumb:hover {
    background: var(--ink-4);
  }
  .cfg-link {
    padding: 7px 14px;
    border-radius: 999px;
  }
  .cfg-link::before {
    display: none;
  }
  .cfg-link.active {
    background: rgba(var(--accent-rgb), 0.1);
  }
}
.shapes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media (max-width: 992px) {
  .shapes {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .shapes {
    grid-template-columns: 1fr;
  }
}

.shape {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--sh-card);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 15px;
  transition: box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), border-color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.shape:hover {
  box-shadow: var(--sh-pop);
}
.shape.is-lead {
  border-color: color-mix(in srgb, var(--accent) 34%, var(--line));
  background: color-mix(in srgb, var(--accent) 5%, var(--paper));
}
.shape-t {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: var(--fs-base);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.shape-t .bi {
  color: var(--ink-3);
  font-size: var(--ic-sm);
}
.shape-t .pill {
  margin-left: auto;
}
.shape-b {
  flex: 1 1 auto;
  margin: 0;
  font-size: var(--fs-2xs);
  line-height: 1.5;
  color: var(--ink-3);
}
.shape-a {
  align-self: flex-start;
}
.shape-note {
  margin: 0;
  font-size: var(--fs-3xs);
  color: var(--ink-4);
}

.exp-what {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.exp-what .sum-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 11px;
  border-radius: 999px;
  background: var(--paper-2);
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.exp-what .sum-chip .bi {
  font-size: var(--ic-xs);
  color: var(--ink-4);
}
.exp-what .sum-chip b {
  font-weight: 600;
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.exp-what.is-empty .sum-chip:last-child {
  background: color-mix(in srgb, var(--flame) 11%, transparent);
  color: var(--flame);
}
.exp-what.is-empty .sum-chip:last-child .bi, .exp-what.is-empty .sum-chip:last-child b {
  color: var(--flame);
}

.exp-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.exp-quick {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-bottom: 14px;
}
.exp-quick-t {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-right: 2px;
}

.tick-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 4px;
}

.tick {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 5px 10px;
  margin: 0;
  border-radius: 12px;
  font-size: var(--fs-sm);
  cursor: pointer;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.tick:hover {
  background: var(--paper-2);
}
.tick .form-check-input {
  margin: 0;
  flex: 0 0 auto;
}
.tick .dot {
  flex: 0 0 auto;
}
.tick-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tick-tag {
  margin-left: auto;
  padding: 1px 7px;
  border-radius: 999px;
  background: var(--paper-3);
  font-size: var(--fs-3xs);
  color: var(--ink-3);
}
.tick:has(.form-check-input:not(:checked)) .tick-name {
  color: var(--ink-3);
}
.tick:has(.form-check-input:not(:checked)) .dot {
  opacity: 0.45;
}

.shape .btn.disabled,
.shape .btn[aria-disabled=true] {
  opacity: 0.45;
  pointer-events: none;
}

.step-n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 10.12px;
  color: var(--on-ink-surface);
  background: var(--ink-surface);
  font-size: var(--fs-2xs);
  font-weight: 700;
}

.acct-cols {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr);
}

.acct-rail {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.acct-rail > .panel + .panel {
  margin-top: 0;
}

@media (min-width: 992px) and (max-width: 1399px) {
  .acct-cols {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  }
  .acct-bio {
    grid-column: 1;
    grid-row: 1;
  }
  .acct-main {
    grid-column: 1;
    grid-row: 2;
  }
  .acct-side {
    grid-column: 2;
    grid-row: 1/span 2;
  }
}
@media (min-width: 1400px) {
  .acct-cols {
    grid-template-columns: minmax(0, 300px) minmax(0, 1fr) minmax(0, 330px);
  }
}
.acct-id {
  --acct-fg-2: color-mix(in srgb, var(--on-ink-surface) 66%, transparent);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--sh-card);
  display: flex;
  flex-direction: column;
  gap: 13px;
  padding: 18px 20px;
  background: var(--ink-surface);
  border-color: var(--ink-surface);
  color: var(--on-ink-surface);
}

.acct-top {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.acct-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  font-size: 24.84px;
  color: #fff;
  background: var(--accent);
  font-size: var(--fs-lg);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.acct-who {
  min-width: 0;
}

.acct-name {
  margin: 0;
  font-size: var(--fs-lg);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--on-ink-surface);
  overflow-wrap: anywhere;
}

.acct-sub {
  margin-top: 2px;
  font-size: var(--fs-xs);
  color: var(--acct-fg-2);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.acct-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin-top: 7px;
}
.acct-tags .badge-c {
  color: var(--on-ink-surface);
  background: color-mix(in srgb, var(--on-ink-surface) 14%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--on-ink-surface) 22%, transparent);
}

.acct-mail {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-xs);
  color: var(--acct-fg-2);
  overflow-wrap: anywhere;
}
.acct-mail .bi {
  font-size: var(--ic-xs);
  flex: 0 0 auto;
}
.acct-mail.is-none {
  font-style: italic;
}

.acct-acts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.acct-acts .btn {
  flex: 1 1 auto;
  justify-content: center;
  font-size: var(--fs-xs);
  color: var(--on-ink-surface);
  background: color-mix(in srgb, var(--on-ink-surface) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--on-ink-surface) 22%, transparent);
}
.acct-acts .btn .bi {
  font-size: var(--ic-xs);
}
.acct-acts .btn:hover, .acct-acts .btn:focus-visible {
  color: var(--on-ink-surface);
  background: color-mix(in srgb, var(--on-ink-surface) 22%, transparent);
  border-color: color-mix(in srgb, var(--on-ink-surface) 34%, transparent);
}

.panel-link {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: var(--fs-2xs);
  font-weight: 600;
  color: var(--ink-3);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.panel-link .bi {
  font-size: var(--ic-xs);
}
.panel-link:hover {
  color: var(--accent);
}

.built-span {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 3px 7px;
  margin-bottom: 4px;
  padding: 10px 12px;
  border-radius: 16px;
  background: var(--paper-2);
}
.built-span b {
  font-size: var(--fs-lg);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.built-span span {
  font-size: var(--fs-xs);
  color: var(--ink-2);
}
.built-span small {
  flex: 1 0 100%;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.micro-t {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 5px;
}

.panel-head.is-stack {
  flex-wrap: wrap;
  row-gap: 8px;
}

.li-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  font-size: 11.96px;
  color: var(--ink);
  background: var(--paper-3);
  color: color-mix(in srgb, var(--c, #6b727b) 80%, var(--ink));
  background: color-mix(in srgb, var(--c, #6b727b) 13%, var(--paper));
}
.li-ico .bi {
  font-size: var(--ic-xs);
}

.pane-scroll.is-tall {
  max-height: 60vh;
}

.pane-scroll.is-mid {
  max-height: 520px;
}

.acct-side .tabs-pill.sm {
  display: flex;
  margin: 0 16px 8px;
  padding: 3px;
}
.acct-side .tabs-pill.sm > button {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: center;
  gap: 4px;
  padding: 5px 7px;
  font-size: var(--fs-2xs);
}
.acct-side .list-row {
  padding: 8px 16px;
}
.acct-side .kv-row .bi {
  color: var(--ink-4);
  font-size: var(--ic-xs);
}

.acct-main .stat.has-spark {
  grid-template-columns: minmax(0, 1fr) minmax(84px, 150px);
}
.acct-main .stat .spark-box {
  width: 100%;
  height: 48px;
}

.list-row .bar {
  display: block;
  max-width: 220px;
}

.kv-v.is-warn {
  color: var(--flame);
}

.pw-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
}

.pw-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-xs);
  color: var(--ink-3);
  transition: color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.pw-check .bi {
  font-size: var(--ic-xs);
  color: var(--ink-4);
  transition: color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.pw-check.is-ok {
  color: var(--mint-h);
}
.pw-check.is-ok .bi {
  color: var(--mint);
}

.u-cell {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
}

.u-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 14.72px;
  color: var(--ink);
  background: var(--paper-3);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: color-mix(in srgb, var(--c, #6b727b) 78%, var(--ink));
  background: color-mix(in srgb, var(--c, #6b727b) 14%, var(--paper));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c, #6b727b) 26%, transparent);
}

.u-who {
  min-width: 0;
}
.u-who b {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.3;
}
.u-who small {
  display: block;
  margin-top: 1px;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tbl-users tbody tr.is-off .u-avatar, .tbl-users tbody tr.is-off .u-who b {
  opacity: 0.62;
}

.row-acts {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  justify-content: flex-end;
}
.row-acts .act {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--ink-3);
  cursor: pointer;
  transition: background 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), border-color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.row-acts .act .bi {
  font-size: var(--ic-sm);
}
.row-acts .act:hover {
  color: var(--ink);
  background: var(--paper-2);
  border-color: var(--line-2);
}
.row-acts .act:focus-visible {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
}
.row-acts .act.is-danger:hover {
  color: var(--flame);
  background: color-mix(in srgb, var(--flame) 10%, transparent);
  border-color: color-mix(in srgb, var(--flame) 30%, transparent);
}

@media (hover: none) {
  .row-acts {
    gap: 6px;
  }
  .row-acts .act {
    width: 40px;
    height: 40px;
  }
}
.seed-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 992px) {
  .seed-grid {
    grid-template-columns: 1fr;
  }
}

.seed-col {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper-2);
}

.seed-t {
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 9px;
}
.seed-t .bi {
  font-size: var(--ic-xs);
  color: var(--ink-4);
}

.seed-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.lang-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}

.lang-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--sh-card);
  padding: 14px 15px;
}
.lang-card.is-current {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
}
.lang-card .lc-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 11px;
}
.lang-card .lc-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 14.72px;
  color: var(--ink-2);
  background: var(--paper-3);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.lang-card .lc-name {
  min-width: 0;
  flex: 1 1 auto;
}
.lang-card .lc-name b {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: 1.25;
}
.lang-card .lc-name small {
  display: block;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
}
.lang-card .lc-foot {
  margin: 8px 0 0;
  font-size: var(--fs-2xs);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.lang-card .meter.is-full .meter-fill {
  background: var(--mint);
}

.lang-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 4px 0 12px;
}
.lang-tools .tabs-pill {
  margin-bottom: 0;
}

.lang-search {
  flex: 1 1 280px;
  min-width: 0;
}
.lang-search .form-control {
  padding-right: 38px;
}

.lang-scroll {
  position: relative;
  max-height: 62vh;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 16px;
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.lang-scroll::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.lang-scroll::-webkit-scrollbar-track {
  background: transparent;
}
.lang-scroll::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.lang-scroll::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}

.lang-tbl thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  box-shadow: inset 0 -1px 0 var(--line);
}
.lang-tbl td {
  padding: 8px 16px;
  vertical-align: top;
}
.lang-tbl .lang-src {
  width: 52%;
}
.lang-tbl .lang-val {
  width: 48%;
}
.lang-tbl .ls-en {
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--ink);
}
.lang-tbl .ls-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin-top: 3px;
}
.lang-tbl .ls-meta code {
  font-size: var(--fs-3xs);
  color: var(--ink-4);
  overflow-wrap: anywhere;
}
.lang-tbl tbody tr.is-dirty td {
  background: color-mix(in srgb, var(--accent) 5%, transparent);
}
.lang-tbl tbody tr.is-dirty .form-control {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line-2));
}
.lang-tbl tbody tr[data-state=missing] .form-control {
  border-color: color-mix(in srgb, var(--warning) 45%, var(--line-2));
}

@media (max-width: 768px) {
  .lang-tbl .lang-src, .lang-tbl .lang-val {
    width: auto;
  }
}
.lang-save {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 16px;
  background: var(--paper-2);
}

.dropdown-menu {
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--sh-pop);
  padding: 6px;
  font-size: var(--fs-sm);
  background: var(--paper);
  color: var(--ink);
}

.dropdown-item {
  display: flex;
  align-items: center;
  gap: 9px;
  border-radius: 9px;
  padding: 7px 10px;
  color: var(--ink-2);
}
.dropdown-item .bi {
  font-size: var(--ic-sm);
  color: var(--ink-3);
}
.dropdown-item:hover, .dropdown-item:focus {
  background: var(--paper-2);
  color: var(--ink);
}
.dropdown-item:active {
  background: var(--ink-surface);
  color: var(--on-ink-surface);
}
.dropdown-item:active .bi {
  color: var(--on-ink-surface);
}

.dropdown-divider {
  border-color: var(--line);
  margin: 5px 2px;
}

.dropdown-header {
  padding: 4px 10px 2px;
  font-size: var(--fs-3xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-4);
}

.modal-content {
  border: 0;
  border-radius: 22px;
  box-shadow: var(--sh-pop);
  background: var(--paper);
  color: var(--ink);
}

.modal-header, .modal-footer {
  border-color: var(--line);
  padding: 14px 18px;
}

.modal-body {
  padding: 16px 18px;
}

.modal-title {
  font-size: var(--fs-md);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.card {
  border-color: var(--line);
  border-radius: 16px;
}

.alert {
  border-radius: 16px;
  border-color: var(--line);
  font-size: var(--fs-sm);
}

.nav-tabs {
  border-bottom-color: var(--line);
}
.nav-tabs .nav-link {
  border: 0;
  border-radius: 999px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-3);
}
.nav-tabs .nav-link.active {
  color: var(--on-ink-surface);
  background: var(--ink-surface);
}

.form-select {
  padding-right: 2rem !important;
}

.swal2-popup {
  font-family: "Noto Sans Thai", "Noto Sans", -apple-system, "Segoe UI", sans-serif !important;
  font-size: var(--fs-base) !important;
  border-radius: 22px !important;
  box-shadow: var(--sh-pop) !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
}

.swal2-title {
  font-size: var(--fs-lg) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
  color: var(--ink) !important;
}

.swal2-html-container {
  color: var(--ink-2) !important;
}

.swal2-input, .swal2-textarea, .swal2-select {
  background: var(--paper-2) !important;
  color: var(--ink) !important;
  border-color: var(--line-2) !important;
}

.swal2-styled.swal2-confirm {
  border-radius: 999px !important;
  background: var(--ink-surface) !important;
  font-weight: 600;
}
.swal2-styled.swal2-deny {
  border-radius: 999px !important;
  background: var(--flame) !important;
}
.swal2-styled.swal2-cancel {
  border-radius: 999px !important;
  background: var(--paper-3) !important;
  color: var(--ink) !important;
}

.swal2-toast {
  border-radius: 16px !important;
  box-shadow: var(--sh-pop) !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
}

.select2-container {
  width: 100% !important;
}
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple {
  height: auto;
  min-height: 38px;
  padding: 3px 4px;
  border: 1px solid var(--line-2);
  border-radius: 12px;
  background: var(--paper);
  transition: border-color 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.select2-container .select2-selection__rendered {
  padding-left: 9px;
  color: var(--ink);
  font-size: var(--fs-sm);
  line-height: 30px;
}
.select2-container .select2-selection__placeholder {
  color: var(--ink-4);
}
.select2-container .select2-selection__arrow {
  height: 36px;
}
.select2-container .select2-selection__arrow b {
  border-color: var(--ink-3) transparent transparent;
}
.select2-container .select2-selection__clear {
  color: var(--ink-3);
  margin-right: 6px;
}

.select2-container--open .select2-selection--single,
.select2-container--focus .select2-selection--single {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
}

.select2-dropdown {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--sh-pop);
  overflow: hidden;
}

.select2-search--dropdown {
  padding: 8px;
}
.select2-search--dropdown .select2-search__field {
  border: 1px solid var(--line-2) !important;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: var(--fs-sm);
  color: var(--ink);
  background: var(--paper-2);
}
.select2-search--dropdown .select2-search__field:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
}

.select2-results__options {
  scrollbar-width: thin;
  scrollbar-color: var(--line-2) transparent;
}
.select2-results__options::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.select2-results__options::-webkit-scrollbar-track {
  background: transparent;
}
.select2-results__options::-webkit-scrollbar-thumb {
  background: var(--line-2);
  border: 2px solid var(--paper);
  border-radius: 999px;
}
.select2-results__options::-webkit-scrollbar-thumb:hover {
  background: var(--ink-4);
}

.select2-results__option {
  padding: 7px 12px;
  font-size: var(--fs-sm);
  color: var(--ink-2);
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted {
  background: var(--paper-2);
  color: var(--ink);
}

.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option--selected {
  background: var(--ink-surface);
  color: var(--on-ink-surface);
}

.modal .select2-container {
  z-index: 1056;
}

.select2-container--open {
  z-index: 2100;
}

div.dataTables_wrapper {
  font-size: var(--fs-sm);
  padding: 0 16px 10px;
}
div.dataTables_wrapper .dataTables_filter input,
div.dataTables_wrapper .dataTables_length select {
  border: 1px solid var(--line-2);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: var(--fs-sm);
  color: var(--ink);
  background-color: var(--paper);
}
div.dataTables_wrapper .dataTables_filter input:focus,
div.dataTables_wrapper .dataTables_length select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.18);
  color: var(--ink);
  background-color: var(--paper);
}
div.dataTables_wrapper .dataTables_info {
  color: var(--ink-3);
  font-size: var(--fs-xs);
}

td.dataTables_empty {
  text-align: center;
  padding: 44px 20px;
  color: var(--ink-3);
}

table.dataTable thead th {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
  border-bottom: 1px solid var(--line) !important;
}

.page-link {
  border: 0;
  color: var(--ink-2);
  border-radius: 999px !important;
  margin: 0 1px;
  font-size: var(--fs-xs);
}
.page-link:hover {
  background: var(--paper-2);
  color: var(--ink);
}

.page-item.active .page-link {
  color: var(--on-ink-surface);
  background: var(--ink-surface);
}

@media print {
  body {
    background: #fff;
  }
  .topbar, .no-print {
    display: none !important;
  }
  .panel, .grid-wrap {
    box-shadow: none;
    border-radius: 0;
  }
  .tab-pane {
    display: block !important;
    opacity: 1 !important;
  }
  .grid-wrap {
    max-height: none;
    overflow: visible;
    border: 0;
  }
  table.grid thead th {
    background: #000 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/*# sourceMappingURL=app.css.map */
