

:root {

  --color-primary-50:  #E5EEFE;
  --color-primary-100: #DBE8FE;
  --color-primary-200: #B9D3FD;
  --color-primary-300: #94BBFB;
  --color-primary-400: #5E9BF8;
  --color-primary-500: #0064E0;
  --color-primary-600: #0457CB;
  --color-primary-700: #0040A3;
  --color-primary-800: #002B73;
  --color-primary-900: #001B4D;

  --color-brand-cyan: #029CD4;

  --gradient-brand:        linear-gradient(120deg, var(--color-primary-500) 0%, var(--color-brand-cyan) 100%);
  --gradient-brand-hover:  linear-gradient(120deg, var(--color-primary-600) 0%, #0189BE 100%);
  --gradient-brand-active: linear-gradient(120deg, var(--color-primary-700) 0%, #0177A6 100%);
  --gradient-brand-soft:   linear-gradient(120deg, var(--color-primary-50) 0%, #E4F4FB 100%);

  --color-gray-0:   #FFFFFF;
  --color-gray-50:  #F3F3F3;
  --color-gray-100: #EEEEEE;
  --color-gray-200: #E8E8E8;
  --color-gray-300: #DDDDDD;
  --color-gray-400: #C6C6C6;
  --color-gray-500: #A6A6A6;
  --color-gray-600: #8B8B8B;
  --color-gray-700: #777777;
  --color-gray-800: #5E5E5E;
  --color-gray-900: #4B4B4B;

  --font-family-body: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB",
                      "Heiti SC", "STHeiti", "Inter", -apple-system, sans-serif;
  --font-family-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;

  --font-size-xs:   12px;
  --font-size-sm:   14px;
  --font-size-base: 14px;
  --font-size-lg:   16px;
  --font-size-xl:   20px;
  --font-size-2xl:  24px;
  --font-size-3xl:  30px;
  --font-size-4xl:  36px;

  --nav-item-h:           34px;

  --sidebar-brand-h:      92px;

  --font-weight-regular:  400;
  --font-weight-medium:   500;
  --font-weight-semibold: 600;

  --font-line-height-body: 1.5;
  --font-line-height-tight: 1.2;

  --font-letter-spacing-body:    0;
  --font-letter-spacing-display: -0.02em;
  --font-letter-spacing-caps:     0.06em;

  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-8:  32px;
  --space-10: 40px;
  --space-12: 48px;

  --control-height:       44px;
  --control-height-sm:    34px;
  --control-height-touch: 40px;

  --control-height-row:  42px;

  --radius-none: 0;
  --radius-sm:   4px;
  --radius-seg:  6px;
  --radius-md:   10px;
  --radius-lg:   16px;
  --radius-xl:   20px;
  --radius-pill: 9999px;
  --radius-full: var(--radius-pill);

  --tab-tray-bg:             #F1F3F5;

  --tab-tray-active-bg:      var(--color-surface);
  --tab-tray-radius:         var(--radius-lg);
  --tab-tray-item-radius:    8px;

  --glass-hi:    rgba(255, 255, 255, 0.70);
  --glass-lo:    rgba(255, 255, 255, 0.46);
  --glass-blur:  blur(20px) saturate(180%);
  --glass-lit:   inset 0 1px 0 rgba(255, 255, 255, 0.95);
  --glass-lift:  0 8px 26px rgba(16, 24, 40, 0.14);
  --glass-bg:    linear-gradient(180deg, var(--glass-hi) 0%, var(--glass-lo) 100%);

  --liquid-bg: linear-gradient(135deg,
                 rgba(255, 255, 255, 0.70) 0%,
                 rgba(255, 255, 255, 0.46) 48%,
                 rgba(255, 255, 255, 0.58) 100%);
  --liquid-blur: blur(22px) saturate(150%);
  --liquid-edge: rgba(255, 255, 255, 0.85);

  --liquid-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    inset 0 -1px 0 rgba(255, 255, 255, 0.55),
    0 3px 10px -3px rgba(16, 24, 40, 0.10);

  --liquid-tray-bg: rgba(227, 238, 251, 0.32);
  --liquid-tray-edge: rgba(255, 255, 255, 0.62);

  --tabs-bar-height: 60px;

  --shadow-flat:   none;

  --shadow-sm:     0 0 2px rgba(16, 24, 40, 0.03), 0 0 3px rgba(16, 24, 40, 0.04);
  --shadow-md:     0 2px 4px rgba(16, 24, 40, 0.03), 0 8px 20px rgba(16, 24, 40, 0.05);
  --shadow-lg:     0 4px 8px rgba(16, 24, 40, 0.04), 0 16px 40px rgba(16, 24, 40, 0.07);
  --shadow-ring:   0 0 0 1px var(--color-border);
  --shadow-raised: var(--shadow-lg);

  --shadow-card-float: 0 0 0 0.5px rgba(16, 24, 40, 0.12), 0 1px 3px rgba(16, 24, 40, 0.04), 0 10px 22px rgba(16, 24, 40, 0.08);

  --shadow-card:   0 0 2px rgba(16, 24, 40, 0.03), 0 0 4px rgba(16, 24, 40, 0.05);

  --shadow-pill-active: 0 2px 6px rgba(0, 100, 224, 0.28);

  --motion-fast: 110ms;
  --motion-base: 155ms;

  --nav-fold-dur: 360ms;
  --nav-fold-dur-close: 290ms;
  --nav-fold-ease: cubic-bezier(0.32, 0.72, 0, 1);

  --motion-slow: 300ms;

  --motion-page-enter: 378ms;

  --motion-tab-slide:   250ms;

  --motion-ease:          cubic-bezier(0.2, 1.34, 0.4, 1);
  --motion-ease-in-out:   cubic-bezier(0.2, 1.34, 0.4, 1);
  --motion-ease-exit:     cubic-bezier(0.5, 0, 0.9, 0.6);

  --motion-ease-glide:    cubic-bezier(0.45, 0, 0.25, 1);

  --motion-ease-standard: cubic-bezier(0.2, 0, 0.2, 1);

  --motion-ease-pop:      cubic-bezier(0.34, 1.68, 0.5, 1);

  --motion-ease-sheet: cubic-bezier(0.32, 0.72, 0, 1);

  --motion-rise:  12px;

  --motion-press: 0.96;

  --motion-stagger: 30ms;

  --icon-size-sm: 16px;
  --icon-size-md: 20px;
  --icon-size-lg: 24px;
  --icon-stroke-width: 2;

  --container-max:         1440px;

  --app-scale:             0.85;

  --form-max-width:        1040px;

  --sidebar-width:         224px;

  --sidebar-width-scaled:  calc(224px / var(--app-scale));
  --sidebar-width-icon:    64px;
  --sidebar-offset:        14px;

  --shell-inset:          8px;

  --shell-vh:            100vh;

  --shell-inset-radius:   10px;

  --color-sidebar-bg:     #E8EEF8;

  --nav-guide-line:       #A9B7CC;

  --frame-gap:             14px;
  --page-padding:          var(--space-10);

  --drawer-frame-left:     0px;
  --drawer-frame-top:      0px;
  --drawer-frame-width:    0px;
  --drawer-frame-height:   0px;

  --frame-gutter:          0px;

  --page-padding-right:    calc(var(--page-padding) - var(--frame-gutter));

  --header-height:         60px;
  --section-y:             var(--space-8);
  --bp-md:  768px;
  --bp-lg:  1024px;
  --bp-xl:  1280px;

  --z-base:     0;
  --z-dropdown: 1000;
  --z-sticky:   1100;
  --z-modal:    1200;
  --z-toast:    1300;

  --color-fg:        #1C1E21;
  --color-fg-2:      #3F4753;

  --color-muted:     #546579;
  --color-meta:      #7C8DA3;

  --color-fg-3:      #7C8DA3;
  --color-placeholder: #B9C1CC;
  --color-disabled:    #C4CBD4;

  --color-bg:        #F6F6F6;

  --color-app-bg:    #F4F7FC;

  --color-content-bg: #E8EEF8;
  --color-surface:   #FFFFFF;
  --color-surface-2: #F1F5F9;

  --color-border:      #E1E8F2;
  --color-border-soft: #EDF0F4;

  --color-accent:        var(--color-primary-500);
  --color-accent-hover:  var(--color-primary-600);
  --color-accent-active: var(--color-primary-700);
  --color-accent-on:     #FFFFFF;
  --color-accent-text:   var(--color-primary-500);
  --color-accent-border: var(--color-primary-200);
  --color-accent-bg:     var(--color-primary-50);

  --color-success:    #31A24C;
  --color-success-bg: #EAF6EF;
  --color-warning:    #F2A918;
  --color-warning-bg: #FEF5E7;
  --color-danger:     #E41E3F;
  --color-danger-bg:  #FDE8EB;
  --color-danger-soft: #FDE8EB;
  --color-price:      var(--color-danger);
  --color-info:       #0064E0;
  --color-info-bg:    #EDF4FE;
  --color-info-soft:  #EDF4FE;

  --color-success-text: #1B7F3B;
  --color-warning-text: #B25C0C;

  --color-warning-border:    #F2C879;
  --color-warning-bg-soft:   #FFFBF0;
  --color-warning-bg-hover:  #FFF6E3;
  --color-warning-accent:    #E8A33D;
  --color-danger-strong:     #D93025;
  --color-danger-border:     #F5B5AE;

  --notice-radius:        var(--radius-md);
  --notice-pad-y:         var(--space-2);
  --notice-pad-x:         var(--space-3);
  --notice-gap:           var(--space-2);
  --notice-bg:            var(--color-info-bg);
  --notice-border:        var(--color-primary-100);
  --notice-ico:           var(--color-info);
  --notice-fg:            var(--color-fg-2);
  --notice-warn-bg:       var(--color-warning-bg);
  --notice-warn-border:   var(--color-warning-border);
  --notice-warn-ico:      var(--color-warning);

  --color-tone-blue-bg:   var(--color-primary-50);
  --color-tone-blue-fg:   var(--color-primary-500);
  --color-tone-teal-bg:   #DCF3E9;
  --color-tone-teal-fg:   #0F6E56;
  --color-tone-orange-bg: #FBEDD9;
  --color-tone-orange-fg: #854F0B;
  --color-tone-green-bg:  #E9F3DB;
  --color-tone-green-fg:  #3B6D11;
  --color-tone-purple-bg: #DDD9FB;
  --color-tone-purple-fg: #534AB7;

  --color-entry-tone-1: #EAF2FC;
  --color-entry-tone-2: #E9F5F1;
  --color-entry-tone-3: #FAF2E9;
  --color-entry-tone-4: #EEF5E9;
  --color-entry-tone-5: #EFEDFC;

  --kpi-icon-blue:   #0064E0;
  --kpi-icon-green:  #2FA45A;
  --kpi-icon-orange: #E8952B;
  --kpi-icon-purple: #6E5BD8;
  --kpi-icon-pink:   #F03070;

  --color-chart-gmv: var(--kpi-icon-blue);
  --color-chart-gsv: var(--kpi-icon-green);

  --nav-domain-analysis: var(--kpi-icon-blue);
  --nav-domain-ops:      var(--kpi-icon-orange);
  --nav-domain-goods:    #0FA3A3;
  --nav-domain-finance:  var(--kpi-icon-green);
  --nav-domain-risk:     var(--kpi-icon-pink);
  --nav-domain-tool:     #8A94A6;
  --nav-domain-personal: var(--kpi-icon-purple);

  --color-tag-fallback:    #A6ADBC;

  --tag-line:              var(--color-border);
  --color-brand-starmedia: #2F6BFF;
  --color-tag-location:    #B45309;

  --color-watermark:        #7C8BA1;
  --color-watermark-strong: #64748B;

  --color-frame-border:        #EBECEF;
  --color-topbar-field-bg:     #F4F4F6;
  --color-topbar-chip-border:  #E8E8EC;
  --color-topbar-chip-hover:   #F7F7F9;
  --color-banner-danger:    #D43A38;

  --color-head-on-bg:  var(--color-warning-bg);
  --color-head-on-fg:  var(--color-warning-text);
  --color-head-off-bg: var(--color-success-bg);
  --color-head-off-fg: var(--color-success-text);

  --color-chart-1: #0064E0;
  --color-chart-2: #029CD4;
  --color-chart-3: #2BA471;
  --color-chart-4: #F5BA18;
  --color-chart-5: #E37318;
  --color-chart-6: #D54941;
  --color-chart-7: #8E56DD;
  --color-chart-8: #E851B3;

  --color-item-arrival:     #8B8B8B;
  --color-item-trace:       #2BA471;
  --color-item-source-live: #008858;
  --color-item-course:      #0064E0;
  --color-item-interview:   #8E56DD;
  --color-item-live:        #D54941;
  --color-item-departure:   #A6A6A6;
  --color-item-custom:      #8B8B8B;

  --color-item-arrival-soft:     #EEEEEE;
  --color-item-trace-soft:       #E3F9E9;
  --color-item-source-live-soft: #C6F3D7;
  --color-item-course-soft:      #EDF4FE;
  --color-item-interview-soft:   #FBF0FF;
  --color-item-live-soft:        #FFF0ED;
  --color-item-departure-soft:   #F3F3F3;
  --color-item-custom-soft:      #EEEEEE;

  --focus-ring: 0 0 0 3px rgba(0, 100, 224, 0.22);

  --button-primary-bg:     var(--color-accent);
  --button-primary-fg:     var(--color-accent-on);
  --button-primary-hover:  var(--color-accent-hover);
  --button-primary-active: var(--color-accent-active);

  --button-primary-image:        var(--gradient-brand);
  --button-primary-image-hover:  var(--gradient-brand-hover);
  --button-primary-image-active: var(--gradient-brand-active);
  --button-secondary-bg:     transparent;
  --button-secondary-fg:     var(--color-accent-text);
  --button-secondary-border: var(--color-gray-400);
  --button-ghost-bg:         transparent;
  --button-ghost-fg:         var(--color-fg);
  --button-danger-bg:        var(--color-danger);
  --button-danger-fg:        #FFFFFF;

  --button-soft-bg:          var(--color-primary-100);
  --button-soft-bg-hover:    var(--color-primary-200);
  --button-soft-fg:          var(--color-accent-text);

  --input-bg:            var(--color-surface);

  --input-border:        var(--color-border);
  --input-focus-border:  var(--color-accent);
  --input-error-border:  var(--color-danger);
  --input-disabled-bg:   var(--color-surface-2);
  --input-disabled-text: var(--color-disabled);

  --field-label-indent: 6px;

  --switch-active-bg: var(--color-accent);

  --table-header-bg:  var(--color-surface-2);
  --table-header-fg:  var(--color-fg);

  --table-header-line: var(--color-border);
  --table-row-hover:  var(--color-primary-50);
  --table-row-alt:    var(--color-bg);

  --table-divider:    var(--color-border-soft);

  --badge-success-fg: #0B7A55;
  --badge-success-bg: var(--color-success-bg);
  --badge-warning-fg: #9A5B00;
  --badge-warning-bg: var(--color-warning-bg);
  --badge-danger-fg:  #C4142F;
  --badge-danger-bg:  var(--color-danger-bg);
  --badge-info-fg:    var(--color-info);
  --badge-info-bg:    var(--color-info-bg);

  --kpi-value-fg: var(--color-primary-600);
}

@media (min-resolution: 1.5dppx) and (min-width: 1600px) {
  :root {
    --sidebar-width: var(--sidebar-width-scaled);
  }
}

@media (max-width: 768px) {
  :root {
    --font-size-xs:   11px;
    --font-size-sm:   13px;
    --font-size-base: 13px;
    --font-size-lg:   15px;
    --font-size-xl:   18px;
    --font-size-2xl:  21px;
    --font-size-3xl:  26px;
    --font-size-4xl:  32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

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

* {
  margin: 0;
  padding: 0;
}

html,
body {
  height: 100%;
}

html {

  overflow: hidden;
}

body {
  font-family: var(--font-family-body);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--font-line-height-body);
  letter-spacing: var(--font-letter-spacing-body);
  color: var(--color-fg);

  background: var(--color-content-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;

  overflow: hidden;
}

@media (min-resolution: 1.5dppx) and (min-width: 1600px) {
  body {
    zoom: var(--app-scale);
  }

  :root {
    --shell-vh: calc(100vh / var(--app-scale));
  }
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
}

input,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

ul,
ol {
  list-style: none;
}

img {
  display: block;
  max-width: 100%;
}

.hidden {
  display: none !important;
}

.num {
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.price {
  color: var(--color-price);
  font-weight: var(--font-weight-semibold);
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
}

.page > * {

  animation: page-fade-in var(--motion-page-enter) var(--motion-ease-standard) backwards;
}
.page > *:nth-child(2) { animation-delay: var(--motion-stagger); }
.page > *:nth-child(3) { animation-delay: calc(var(--motion-stagger) * 2); }
.page > *:nth-child(4) { animation-delay: calc(var(--motion-stagger) * 3); }
.page > *:nth-child(5) { animation-delay: calc(var(--motion-stagger) * 4); }

.page > .fin,
.page > .kq-page {
  animation: none;
}
.fin-main > *,
.kq-page > * {
  animation: page-fade-in var(--motion-page-enter) var(--motion-ease-standard) backwards;
}
.fin-main > *:nth-child(2),
.kq-page > *:nth-child(2) {
  animation-delay: var(--motion-stagger);
}

@keyframes page-fade-in {

  from { opacity: 0; transform: translateY(8px) scale(0.995); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.mono {
  font-family: var(--font-family-mono);
}

.ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-shell {
  display: flex;

  height: var(--shell-vh);

  overflow: hidden;
}

.sidebar {

  position: fixed;

  top: 0;
  left: 0;
  bottom: 0;

  width: var(--sidebar-width);
  display: flex;
  flex-direction: column;

  background: var(--color-sidebar-bg);

  border-radius: 0;

  border: none;
  box-shadow: none;
  overflow: hidden;

  overscroll-behavior: contain;
  z-index: var(--z-sticky);
  transition: width var(--motion-base) var(--motion-ease-standard);
}

.sidebar__brand {
  display: flex;
  align-items: center;

  gap: var(--space-2);

  height: var(--sidebar-brand-h);

  padding: 0 20px;
  border-bottom: none;
  flex-shrink: 0;

  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}

.sidebar__brand:hover {
  background: var(--color-surface-2);
}

.sidebar__brand:focus-visible {
  outline-offset: -2px;
}

.brand-logo {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.brand-logo img {

  width: auto;
  height: 100%;
}

.brand-mark {
  object-fit: contain;
  display: block;
  margin: 0;
  vertical-align: middle;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
}

.brand-name {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  overflow: hidden;
}

.brand-name__en {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.03em;
  color: var(--color-meta);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.brand-name__zh {

  font-size: 18px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--font-letter-spacing-body);
  color: var(--color-fg);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar__nav {
  flex: 1;
  overflow-y: auto;

  scrollbar-color: var(--color-gray-300) transparent;

  padding: 0 12px var(--space-2);
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
.sidebar__nav:hover {
  scrollbar-color: var(--color-gray-300) transparent;
}
.sidebar__nav::-webkit-scrollbar { width: 6px; }
.sidebar__nav::-webkit-scrollbar-thumb { background: var(--color-gray-300); border-radius: 3px; }
.sidebar__nav:hover::-webkit-scrollbar-thumb { background: var(--color-gray-400); }
.sidebar__nav::-webkit-scrollbar-track { background: transparent; }

.nav-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  height: var(--nav-item-h);
  padding: 0 22px;
  margin-bottom: 0;
  border-radius: var(--radius-md);
  color: var(--color-fg-2);

  font-size: 15px;
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  white-space: nowrap;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard);
}

.nav-item:hover {
  background: var(--color-surface-2);
  color: var(--color-fg);
}

.nav-item.is-active {
  background: var(--color-surface);
  color: var(--color-fg);

  font-weight: var(--font-weight-medium);
  box-shadow: none;
  position: relative;
}

.nav-item.is-active::after {
  display: none;
}

.nav-item .nav-icon {
  flex-shrink: 0;
  display: inline-flex;
}

.nav-item .nav-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-portal {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  height: 40px;
  padding: 0 var(--space-3);
  margin-bottom: 2px;
  border-radius: var(--radius-md);
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard);
}

.sidebar-portal__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  color: var(--color-meta);
}
.sidebar-portal:hover {
  background: var(--color-surface-2);
  color: var(--color-fg);
}
.sidebar-portal:hover .sidebar-portal__icon { color: var(--color-muted); }

.sidebar-portal:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: -2px;
}

.sidebar-portal .nav-text {
  flex: 0 0 auto;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}

.sidebar-portal__arrow {
  margin-left: auto;
  display: inline-flex;
  color: var(--color-muted);
}

.sysswitch {
  position: relative;
}

.sysswitch .sidebar-portal {
  width: 100%;
  border: 0;
  background: none;
  font-family: inherit;
  cursor: pointer;
  text-align: left;
}

.sysswitch__menu {
  position: absolute;
  top: auto;
  bottom: calc(100% + 8px);
  left: 0;
  right: auto;
  width: 100%;
  min-width: 208px;
  padding: var(--space-2);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  z-index: var(--z-dropdown);

  animation: panel-in var(--motion-base) var(--motion-ease-sheet) backwards;
}

.sysswitch__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  text-decoration: none;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.sysswitch__item:hover { background: var(--color-surface-2); }

.sysswitch__item:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: -2px;
}

.sysswitch__item .nav-text {
  flex: 0 0 auto;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}
.sysswitch__arrow {
  margin-left: auto;
  display: inline-flex;
  color: var(--color-muted);
}

.sysswitch__hint {
  padding: var(--space-2) var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.sidebar__footer {
  padding: var(--space-3) var(--space-2);
  border-top: 1px solid var(--color-border-soft);
  flex-shrink: 0;
}

.app-shell.is-collapsed .sidebar {

  width: var(--sidebar-width-icon);
}

.app-shell.is-collapsed .sidebar .brand-name,
.app-shell.is-collapsed .sidebar .nav-text,
.app-shell.is-collapsed .sidebar .nav-group-label,
.app-shell.is-collapsed .sidebar .user-meta {
  display: none;
}

.app-shell.is-collapsed .sidebar .nav-item {
  justify-content: center;
  padding: 0;
}

.app-shell.is-collapsed .sidebar .brand-logo {
  margin: 0 auto;
}

.app-shell.is-collapsed .sidebar .nav-subitems::before {
  display: none;
}

.nav-group {

  margin-bottom: 12px;
  padding-bottom: 0;
  position: relative;
}

.nav-group-label {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;

  height: 34px;
  padding: 0 22px;

  font-size: 15px;
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  letter-spacing: 0;
  background: transparent;
  border: 0;
  border-radius: var(--radius-md);
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-standard);
}

.nav-group-label:hover {
  color: var(--color-fg);
  background: var(--color-surface-2);
}

.nav-group-label--static {
  cursor: default;
}
.nav-group-label--static:hover {
  background: transparent;
}

.nav-group-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--color-fg-2);
  transition: color var(--motion-fast) var(--motion-ease-standard);
}

.sidebar .nav-group-icon svg { width: 22px; height: 22px; }

.sidebar .nav-item--home .nav-icon svg { width: 22px; height: 22px; }

.sidebar .nav-group-chevron svg { width: 14px; height: 14px; }

.sidebar .nav-group[data-domain="analysis"] .nav-group-icon { color: var(--nav-domain-analysis); }
.sidebar .nav-group[data-domain="ops"]      .nav-group-icon { color: var(--nav-domain-ops); }
.sidebar .nav-group[data-domain="goods"]    .nav-group-icon { color: var(--nav-domain-goods); }
.sidebar .nav-group[data-domain="finance"]  .nav-group-icon { color: var(--nav-domain-finance); }
.sidebar .nav-group[data-domain="risk"]     .nav-group-icon { color: var(--nav-domain-risk); }
.sidebar .nav-group[data-domain="tool"]     .nav-group-icon { color: var(--nav-domain-tool); }
.sidebar .nav-group[data-domain="personal"] .nav-group-icon { color: var(--nav-domain-personal); }

.sidebar .nav-item--home .nav-icon { color: var(--color-primary-400); }

.nav-group.has-active[data-domain] .nav-group-icon,
.nav-group.has-active .nav-group-icon,
.nav-group.has-active .nav-group-label {
  color: var(--color-accent-text);
}
.nav-group.has-active .nav-group-label {
  font-weight: var(--font-weight-semibold);
}

.nav-group-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-group-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-danger);
  flex-shrink: 0;
  margin-right: 4px;
  align-self: center;
}

.nav-group-chevron {
  display: inline-flex;
  color: var(--color-muted);

  transition: transform var(--nav-fold-dur-close) var(--nav-fold-ease);
}

.nav-group.is-collapsed .nav-group-chevron {
  transform: rotate(-90deg);
}

.nav-subitems {

  display: grid;
  grid-template-rows: 0fr;

  transition: grid-template-rows var(--nav-fold-dur) var(--nav-fold-ease);

  position: relative;
}

.nav-subitems:not(.is-hidden) {
  grid-template-rows: 1fr;
}

.nav-subitems.is-hidden {
  transition-duration: var(--nav-fold-dur-close);
}

.nav-subitems__inner {
  overflow: hidden;
  min-height: 0;

  transform: translateY(-8px);
  transition: transform var(--nav-fold-dur) var(--nav-fold-ease);
}
.nav-subitems:not(.is-hidden) .nav-subitems__inner {
  transform: none;
}

.nav-subitems::before {
  content: '';
  position: absolute;
  left: 33px;
  top: 2px;
  bottom: 2px;
  width: 1px;
  background: var(--nav-guide-line);
  border-radius: 1px;
  pointer-events: none;
}

.nav-item--home {
  gap: 12px;
  padding: 0 22px;

  font-size: 15px;
  font-weight: var(--font-weight-medium);

  margin-right: 22px;
}

.nav-item--home.is-active {
  position: relative;
}

.nav-item--sub {

  height: 34px;

  margin-left: 41px;

  margin-right: 22px;
  padding: 0 22px 0 15px;
  font-size: 14px;
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
  line-height: 34px;
}

.nav-item--sub + .nav-item--sub {
  margin-top: 4px;
}

.nav-item--sub .nav-icon {
  display: none;
}

.nav-item--sub:hover {
  background: var(--color-surface-2);
  color: var(--color-fg);
}

.nav-item--sub.is-active {
  background: var(--color-surface);
  color: var(--color-fg);

  font-weight: var(--font-weight-medium);
  box-shadow: none;

  position: relative;
}

.nav-item--sub.is-active::after,
.nav-item--home.is-active::after {
  display: block;
  content: '';
  position: absolute;
  right: 7px;
  top: 7px;
  bottom: 7px;
  width: 3px;
  border-radius: 2px;
  background: var(--color-accent);
}

::selection {
  background: var(--color-primary-100);
  color: var(--color-accent-text);
}

body {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
body:hover {
  scrollbar-color: var(--color-gray-300) transparent;
}
body::-webkit-scrollbar { width: 8px; height: 8px; }
body::-webkit-scrollbar-track { background: transparent; }
body::-webkit-scrollbar-thumb { background: transparent; border-radius: var(--radius-sm); }
body:hover::-webkit-scrollbar-thumb { background: var(--color-gray-300); }
body::-webkit-scrollbar-thumb:hover { background: var(--color-gray-400); }

:where(button, [role="button"], [tabindex]):focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.seg__btn:focus-visible,
.pill-filter__item:focus-visible,
.tab:focus-visible,
.sf-tab:focus-visible,
.login-switch:focus-visible,
.nav-item:focus-visible,
.icon-btn:focus-visible,
.page-help-btn:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.sidebar__personal {

  margin-bottom: 11px;
  border-bottom: 1px solid var(--color-border-soft);
}
.sidebar__personal .nav-item { margin-bottom: 2px; }
.sidebar__personal .nav-item:last-child { margin-bottom: 0; }

.nav-group--mine {

  margin-bottom: 11px;
  border-bottom: 1px solid var(--color-border-soft);
}

#sidebar-nav .nav-item--sub:not(.is-active) .nav-text {
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
}

.app-main {
  flex: 1;
  min-width: 0;

  margin-left: calc(var(--sidebar-width) + var(--shell-inset));

  margin-right: var(--shell-inset);
  margin-bottom: var(--shell-inset);

  margin-top: var(--shell-inset);
  padding: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-surface);

  border-radius: var(--shell-inset-radius);
  box-shadow: 0 2px 10px rgba(16, 24, 40, 0.045);

  height: calc(var(--shell-vh) - 2 * var(--shell-inset));
  overflow-y: auto;

  overflow-x: hidden;

  scrollbar-gutter: stable;
  transition: margin-left var(--motion-base) var(--motion-ease-standard);
}

.app-shell.has-overlay .app-main {
  overflow: hidden;
}

.app-shell.is-collapsed .app-main {

  margin-left: calc(var(--sidebar-width-icon) + var(--shell-inset));
}

.topbar {
  display: none;
}

.topbar__left, .topbar__right { display: none; }

.global-search {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: 36px;
  padding: 0 var(--space-4);
  background: var(--color-bg);
  border-radius: var(--radius-pill);
  min-width: 240px;
  width: 280px;
}
.global-search__icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--color-muted);
}
.global-search__input {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  outline: none;
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}
.global-search__input::placeholder {
  color: var(--color-placeholder);
}
.global-search {
  position: relative;
}
.global-search__panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;

  min-width: 420px;
  width: max-content;
  max-width: min(560px, calc(100vw - 32px));
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  max-height: 420px;
  overflow-y: auto;
  z-index: 300;
  padding: var(--space-2);
}
.gs-group__title {
  padding: var(--space-2) var(--space-3) 4px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted);
  letter-spacing: 0.02em;
}
.gs-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  cursor: pointer;
}
.gs-row:hover,
.gs-row.is-active {
  background: var(--color-surface-2);
}
.gs-row__icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--color-muted);
}
.gs-row__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  flex: 1;
  min-width: 0;
}
.gs-row__label {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gs-row__sub {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gs-row__go {
  margin-left: auto;
  flex-shrink: 0;
  white-space: nowrap;
  font-size: var(--font-size-xs);
  color: var(--color-accent-text);
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.gs-empty {
  padding: var(--space-4);
  text-align: center;
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.gs-ai {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: var(--space-2) calc(var(--space-2) * -1) calc(var(--space-2) * -1);
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--color-border-soft);
  background: var(--color-primary-50);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  cursor: pointer;
}
.gs-ai:hover,
.gs-ai.is-active {
  background: var(--color-primary-100);
}
.gs-ai__icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--color-primary-500);
}
.gs-ai__ask {
  flex-shrink: 0;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.gs-ai__q {
  flex: 1;
  min-width: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gs-ai__hint {
  margin-left: auto;
  flex-shrink: 0;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.gs-answer {
  padding: var(--space-3) var(--space-3) var(--space-2);
}
.gs-answer__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-bottom: var(--space-2);
}
.gs-answer__spin {
  display: inline-flex;
  animation: gs-spin 0.8s linear infinite;
}
@keyframes gs-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.gs-answer__body {
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  line-height: 1.7;
}
.gs-answer__body--dim {
  color: var(--color-muted);
}

.gs-answer__src {
  margin-top: var(--space-3);
  padding-top: var(--space-2);
  border-top: 1px dashed var(--color-border);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.gs-answer__srclink {
  color: var(--color-accent-text);
  text-decoration: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.gs-answer__srclink:hover {
  text-decoration: underline;
}
.gs-answer__sep {
  color: var(--color-border);
}
.gs-answer__warn {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  min-width: 0;
}

.breadcrumb__sep {
  color: var(--color-meta);
}

.breadcrumb__link {
  color: var(--color-muted);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  border-radius: var(--radius-sm);
  transition: color var(--motion-fast) var(--motion-ease-standard);
}
.breadcrumb__link:hover {
  color: var(--color-accent-text);
}

.breadcrumb__current {
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: var(--control-height-sm);
  height: var(--control-height-sm);
  border: none;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-fg-2);

  transition: background-color var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard),
    transform var(--motion-fast) var(--motion-ease-standard);
}

.icon-btn:hover {
  background: var(--color-surface-2);
  color: var(--color-fg);
}

.icon-btn:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.user-chip {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-3) var(--space-1) var(--space-1);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}

.user-chip:hover {
  background: var(--color-surface-2);
}

.user-avatar {

  padding-top: 1px;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  flex-shrink: 0;
}

.user-meta {
  display: flex;
  flex-direction: column;
  line-height: var(--font-line-height-tight);
}

.user-name {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.user-role {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.user-avatar-img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  display: block;
}

.profile-wrap {
  position: relative;
}
.profile-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 260px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
  overflow: hidden;
  z-index: var(--z-dropdown);

  animation: panel-in var(--motion-base) var(--motion-ease-sheet) backwards;
}
.profile-menu__header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border-bottom: 1px solid var(--color-border-soft);
}

.profile-menu__header > div {
  min-width: 0;
  overflow: hidden;
}
.profile-menu__name,
.profile-menu__sub {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.profile-avatar {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  flex-shrink: 0;
  overflow: hidden;
}
.profile-menu__name {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.profile-menu__sub {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-top: 2px;
}
.profile-menu__body {
  padding: var(--space-2);
}
.profile-menu__footer {
  padding: var(--space-2);
  border-top: 1px solid var(--color-border-soft);
}
.profile-menu__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: none;
  background: none;
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  cursor: pointer;
  text-align: left;
}
.profile-menu__item:hover {
  background: var(--color-surface-2);
}
.profile-menu__item--danger {
  color: var(--color-danger);
}
.profile-menu__item--danger:hover {
  background: var(--color-danger-soft));
}

.profile-menu__soon {
  margin-left: auto;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.notify-wrap {
  position: relative;
}
.notify-badge {

  position: absolute;
  top: -5px;
  right: -3px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: var(--radius-pill);
  background: var(--color-danger);
  color: #fff;
  font-size: var(--font-size-xs);
  line-height: 16px;
  text-align: center;
  pointer-events: none;
  box-sizing: border-box;
}

#notify-bell.is-shake svg {
  transform-origin: 50% 12%;
  animation: bell-shake 640ms var(--motion-ease-in-out);
}
@keyframes bell-shake {
  0%, 100% { transform: rotate(0); }
  16% { transform: rotate(11deg); }
  36% { transform: rotate(-8deg); }
  56% { transform: rotate(5deg); }
  76% { transform: rotate(-2.5deg); }
}
.notify-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 340px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
  overflow: hidden;
  z-index: var(--z-dropdown);
}
.notify-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-border-soft);
}
.notify-panel__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.notify-panel__readall {
  border: none;
  background: none;
  font-size: var(--font-size-xs);
  color: var(--color-accent-text);
  cursor: pointer;
  padding: 0;
}

.notify-tabs {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--color-border-soft);
  overflow-x: auto;
  scrollbar-width: none;
}
.notify-tabs::-webkit-scrollbar {
  display: none;
}
.notify-tab {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  border: none;
  background: none;
  padding: 4px var(--space-2);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard);
}
.notify-tab:hover {
  background: var(--color-surface-2);
  color: var(--color-fg);
}
.notify-tab.is-active {
  background: var(--color-primary-50);
  color: var(--color-accent-text);
  font-weight: var(--font-weight-medium);
}
.notify-tab__n {
  font-size: var(--font-size-xs);
  line-height: 1;
  color: inherit;
  opacity: 0.75;
}

.notify-tab.is-alert .notify-tab__n {
  min-width: 16px;
  padding: 2px 4px;
  border-radius: var(--radius-pill);
  background: var(--color-danger);
  color: #fff;
  opacity: 1;
  text-align: center;
  box-sizing: border-box;
}
.notify-panel__body {
  max-height: 400px;
  overflow-y: auto;
}
.notify-item {
  padding: var(--space-3) var(--space-4);
  cursor: pointer;
  border-bottom: 1px solid var(--color-border-soft);
}
.notify-item:last-child {
  border-bottom: none;
}
.notify-item:hover {
  background: var(--color-surface-2);
}
.notify-item.is-unread {
  background: var(--color-info-soft));
}
.notify-item__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.notify-item__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-danger);
  flex-shrink: 0;
}
.notify-item:not(.is-unread) .notify-item__dot {
  opacity: 0;
}
.notify-item__title {
  flex: 1;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.notify-item__time {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  flex-shrink: 0;
}
.notify-item__content {
  margin-top: 4px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: 1.5;
}
.notify-empty {
  padding: var(--space-6);
}

.page {
  flex: 1;

  padding: var(--space-4) var(--page-padding-right) var(--page-padding) var(--page-padding);
  width: 100%;

  max-width: 1900px;
  margin-left: auto;
  margin-right: auto;
}

.page-stack {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;

  width: auto;

  background: transparent;
  border-radius: 0;

  margin: 0;
  padding: 0;
  box-shadow: none;
}

.page-title,
.dashboard-overview__title,

.dashboard-overview__date { display: none; }

.page-header .page-title:has(.page-help-btn) {
  display: block;
  font-size: 0;
  line-height: 1;
}
.page-header .page-title:has(.page-help-btn) .page-help-btn {
  margin-left: 0;
}

.page-actions .page-help-btn {
  flex: none;
}

.detail-head .page-title { display: block; }

.detail-head .page-title .th-note--title {
  margin-left: 6px;
  color: var(--color-gray-400);
  vertical-align: 2px;
}
.detail-head .page-title .th-note--title svg { width: 17px; height: 17px; }
.detail-head .page-title .th-note--title:hover { color: var(--color-accent-text); }

.page-stack > .page.is-tab-hidden {
  display: none;
}

@keyframes tab-slide-in-from-right {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes tab-slide-in-from-left {
  from { opacity: 0; transform: translateX(-28px); }
  to { opacity: 1; transform: translateX(0); }
}

.is-panel-enter-from-right {
  animation: tab-slide-in-from-right var(--motion-tab-slide) var(--motion-ease-standard) backwards;
}
.is-panel-enter-from-left {
  animation: tab-slide-in-from-left var(--motion-tab-slide) var(--motion-ease-standard) backwards;
}

.app-main.is-panel-switching .page > *:not(.is-panel-enter-from-left):not(.is-panel-enter-from-right),
.app-main.is-panel-switching .fin-main > *:not(.is-panel-enter-from-left):not(.is-panel-enter-from-right),
.app-main.is-panel-switching .kq-page > *:not(.is-panel-enter-from-left):not(.is-panel-enter-from-right) {
  animation: none;
}

@media (prefers-reduced-motion: reduce) {
  .is-panel-enter-from-right,
  .is-panel-enter-from-left {
    animation: none;
  }
}

.page-tabs-bar {

  display: flex;
  align-items: center;
  gap: 0;
  height: var(--tabs-bar-height);
  flex: 0 0 auto;

  padding: 0 var(--page-padding-right) 0 var(--page-padding);

  position: sticky;

  top: 0;

  margin: 0;

  border-radius: var(--shell-inset-radius) var(--shell-inset-radius) 0 0;
  z-index: var(--z-sticky);

  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);

  box-shadow: var(--glass-lit);
  border-bottom: none;

  border-radius: var(--shell-inset-radius) var(--shell-inset-radius) 0 0;

  overflow: visible;
}
.page-tabs-bar__left {
  display: flex;
  align-items: center;
  flex: 0 0 auto;

  gap: 12px;

  width: auto;
  min-width: 0;
}

#page-tabs-tabs,
#pt-refresh,
#pt-close-all { display: none; }

.page-tabs-bar .bc-crumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--color-muted);
  white-space: nowrap;
  overflow: hidden;
}
.page-tabs-bar .bc-crumb__sep { color: var(--color-gray-300); font-size: 12px; }
.page-tabs-bar .bc-crumb__cur {
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
  font-size: 14px;
}

.page-tabs-bar .bc-crumb__link {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;

  border-radius: var(--radius-sm);
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-standard);
}
.page-tabs-bar .bc-crumb__link:hover {
  color: var(--color-accent-text);
  background: var(--color-accent-bg);
}

.page-tabs-bar .bc-crumb__link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.page-tabs-bar__tabs {

  display: flex;
  align-items: center;

  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}
.page-tabs-bar__tabs::-webkit-scrollbar { height: 0; }

.page-tab {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  height: 30px;
  padding: 0 8px;
  border: none;

  border-radius: var(--radius-seg);
  font-size: 12.5px;
  color: var(--color-muted);
  white-space: nowrap;
  cursor: pointer;
  min-width: 104px;
  max-width: 200px;
  transition: background var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard);
}

.page-tab:hover { background: var(--color-gray-50); color: var(--color-fg); }
.page-tab__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  min-width: 0;
}

.page-tab__ico {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--color-meta);
}

.page-tab__ico svg { width: 13px; height: 13px; }
.page-tab.is-active .page-tab__ico { color: var(--color-accent-text); }

.page-tab.is-active {
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
  font-weight: var(--font-weight-medium);
}

.page-tab__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-meta);
  line-height: 1;
  cursor: pointer;

  opacity: 0.5;
  transition: opacity var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.page-tab:hover .page-tab__close { opacity: 1; }
.page-tab.is-active .page-tab__close { opacity: 1; }
.page-tab__close:hover { background: var(--color-gray-300); color: var(--color-fg); }
.page-tab__close svg { display: block; }

.page-tab--last { min-width: 0; }
.page-tab--last .page-tab__close { display: none; }

.page-tabs-bar__tools {
  display: flex;
  align-items: center;

  gap: 10px;
  flex: 0 0 auto;
  padding-left: 10px;

  margin-left: auto;
  background: transparent;
}

.brand-switch {
  display: inline-flex;
  align-items: center;

}
.brand-switch:empty { display: none; }

.brand-switch .bpick__trigger {
  height: 40px;
  font-size: var(--font-size-sm);
  max-width: 132px;
}

.page-tabs-bar .icon-btn { width: 36px; height: 36px; }

.page-tabs-bar__tools .icon-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: transparent;
}

.page-tabs-bar__tools .notify-wrap {
  margin-left: 6px;
  padding-left: 10px;
  border-left: 1px solid var(--color-border-soft);
}

.page--narrow {

  max-width: 1410px;
  margin-left: auto;
  margin-right: auto;
}

.page:has(.sf-shell),
.page:has(.detail-shell) {
  max-width: calc(var(--form-max-width) + 2 * var(--page-padding));
}
.page--table {

  max-width: 1790px;
  margin-left: auto;
  margin-right: auto;
}

.page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);

  margin-top: var(--space-2);
  margin-bottom: var(--space-6);
}

.page-header--has-tabs {
  align-items: center;
  margin-bottom: var(--space-5);
  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);

  box-shadow: var(--shadow-card);

  padding: 10px;

  position: sticky;
  top: var(--tabs-bar-height);
  z-index: 60;

  transition: background-color var(--motion-base) var(--motion-ease-standard),
              border-color var(--motion-base) var(--motion-ease-standard),
              box-shadow var(--motion-base) var(--motion-ease-standard);
}

@media (min-width: 769px) {

  .page-header--has-tabs.page-header--filter-bar {
    justify-content: flex-start;
    column-gap: var(--space-6);
    row-gap: var(--space-2);
  }

  .page-header--filter-bar .page-actions {
    margin-left: auto;
    flex: 0 0 auto;
  }

  .page-header--filter-bar > .input--search {
    width: 180px;
    flex: 0 0 auto;
  }

  .page-header--filter-bar > .mp-host,
  .page-header--filter-bar > .dtp-trigger {
    flex: 0 0 auto;
  }

  .page-header--has-tabs:has(.table-tabs--in-header) .page-actions .btn,
  .page-header--has-tabs:has(.table-tabs--in-header) .page-actions .btn--lg {
    height: var(--control-height-row);
    min-height: var(--control-height-row);

    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }

  .page-header--filter-bar > .input--search,
  .page-header--filter-bar > .input--search > .input {
    height: var(--control-height-row);
    min-height: var(--control-height-row);
  }

  .page-header--filter-bar .mp-host,
  .page-header--filter-bar .mp-host .mp__trigger,
  .page-header--filter-bar > .dtp-trigger {
    height: var(--control-height-row);
    min-height: var(--control-height-row);
  }

  .page-header--filter-bar .select,
  .page-header--filter-bar .fin-ms__btn {
    height: var(--control-height-row);
    min-height: var(--control-height-row);
  }
}

@keyframes header-view-swap-in {
  from { opacity: 0; transform: translateX(12px); }
  to { opacity: 1; transform: translateX(0); }
}

.page-header--has-tabs[data-hs-view='influencer'] .hs-annex-only,
.page-header--has-tabs[data-hs-view='flat'] .hs-annex-only,
.page-header--has-tabs[data-hs-view='statement'] .hs-annex-only,
.page-header--has-tabs[data-hs-view='trend'] .hs-annex-only,
.page-header--has-tabs[data-hs-view='annex'] .hs-month-only,
.page-header--has-tabs[data-hs-view='annex'] .hs-dim-only {
  display: none;
}
.page-header--has-tabs[data-hs-view='annex'] .hs-annex-bar {
  display: flex;
}
.page-header--has-tabs[data-hs-view='annex'] .hs-annex-only,
.page-header--has-tabs[data-hs-view='influencer'] .hs-month-only,
.page-header--has-tabs[data-hs-view='influencer'] .hs-dim-only,
.page-header--has-tabs[data-hs-view='flat'] .hs-month-only,
.page-header--has-tabs[data-hs-view='flat'] .hs-dim-only,
.page-header--has-tabs[data-hs-view='statement'] .hs-month-only,
.page-header--has-tabs[data-hs-view='statement'] .hs-dim-only,
.page-header--has-tabs[data-hs-view='trend'] .hs-month-only,
.page-header--has-tabs[data-hs-view='trend'] .hs-dim-only {
  animation: header-view-swap-in var(--motion-tab-slide) var(--motion-ease-standard) backwards;
}

.page-header--has-tabs[data-hs-view='annex'] .hs-annex-bar .btn {
  min-width: 94px;
  justify-content: center;
}

.page-header--has-tabs.is-stuck {
  background: var(--liquid-bg);
  backdrop-filter: var(--liquid-blur);
  -webkit-backdrop-filter: var(--liquid-blur);
  border-color: var(--liquid-edge);
  box-shadow: var(--liquid-shadow);
}

.page-header--has-tabs.is-stuck .table-tabs--in-header {
  background: var(--liquid-tray-bg);
  border-color: var(--color-border);
}

.page-title {
  position: relative;
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--font-letter-spacing-display);
  line-height: var(--font-line-height-tight);
  color: var(--color-fg);
}

.page-desc {
  margin-top: var(--space-1);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.page-help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin-left: var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: transparent;
  color: var(--color-muted);
  cursor: pointer;
  vertical-align: middle;
  transition: color var(--motion-fast) var(--motion-ease-standard), border-color var(--motion-fast) var(--motion-ease-standard), background var(--motion-fast) var(--motion-ease-standard);
}
.page-help-btn:hover {
  color: var(--color-accent);
  border-color: var(--color-accent);
  background: var(--color-surface-2);
}

.help-section { margin-bottom: var(--space-4); }
.help-section:last-child { margin-bottom: 0; }
.help-label {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-accent-text);
  margin-bottom: var(--space-1);
}
.help-text {
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  line-height: 1.6;
}

.help-list {
  margin: 0;
  padding-left: 1.2em;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  line-height: 1.6;
}
.help-list li + li { margin-top: var(--space-1); }

.page-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}

.page-actions .btn--ghost {
  background: var(--color-surface);
  border-color: var(--color-gray-400);
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
}

.page-actions .btn--ghost:hover:not(:disabled) {
  border-color: var(--color-accent-text);
  color: var(--color-accent-text);
  background: var(--color-primary-50);
}

.app-shell { --drawer-top: 0; }

.app-shell:not(.is-standalone) { --drawer-top: var(--tabs-bar-height); }

.sidebar-toggle {
  display: none;
}

@media (max-width: 768px) {
  .sidebar-toggle {
    display: inline-flex;
  }
  .sidebar {

    top: var(--drawer-top);
    left: 0;
    bottom: 0;
    width: min(280px, 82vw);
    border-radius: 0 var(--radius-xl) var(--radius-xl) 0;
    transform: translateX(-100%);
    z-index: var(--z-modal);
    transition: transform var(--motion-base) var(--motion-ease-standard);
  }
  .app-shell.sidebar-open .sidebar {
    transform: translateX(0);
  }
  .app-main {
    margin-left: 0;
    padding-right: 0;

    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    background: transparent;
    border-radius: 0;
  }
  .sidebar {

    margin: 0;
  }
  .page-stack {
    background: var(--color-bg);
    border-radius: 0;
  }
  .topbar {
    top: 0;
    margin-top: 0;
    border-radius: 0;
    padding: 0 var(--space-4);
  }
  .page {
    padding: var(--space-4);

    padding-top: 66px;
  }

  .page .page {
    padding-top: var(--space-4);
  }
  .page-header {
    flex-direction: column;
    align-items: stretch;
  }
  .page-actions {
    flex-wrap: wrap;
  }

  .page-actions .btn--lg {
    width: 100%;
  }

  .page-header--has-tabs .table-tabs--in-header,
  .page-header--has-tabs .page-actions {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
  }
  .page-header--has-tabs .table-tabs--in-header {
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .page-header--has-tabs .page-actions {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    gap: var(--space-2);
  }

  .page-header--has-tabs .page-actions::-webkit-scrollbar {
    display: none;
  }
  .page-header--has-tabs .page-actions .btn,
  .page-header--has-tabs .page-actions .btn--lg {
    width: auto;
    flex: none;
    height: 36px;
    padding: 0 var(--space-3);

    font-size: var(--font-size-sm);
    white-space: nowrap;
  }

  .page .tabs,
  .page .sf-tabs__track {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .page .tabs__tray {
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .page .tabs__tray::-webkit-scrollbar {
    display: none;
  }
  .page .tabs__tray > * {
    flex: none;
  }

  #page-tabs-tabs {
    display: none;
  }

  .page-tabs-bar__left {
    width: auto;
    flex: 0 0 auto;
    min-width: 0;
  }
  .page-tabs-bar__left .brand-name {
    display: none;
  }

  .page-tabs-bar .bc-crumb {
    display: none;
  }

  .page-tabs-bar {
    left: 0;
    right: 0;
    border-radius: 0;
    padding: 0 var(--space-4);
  }
  .page-tabs-bar__tools {
    flex: 0 0 auto;
    overflow-x: auto;
    scrollbar-width: none;

    margin-left: auto;
  }
  .page-tabs-bar__tools::-webkit-scrollbar {
    display: none;
  }

  .page-tabs-bar .user-chip .user-meta {
    display: none;
  }
  .input,
  .select {
    min-height: 44px;
  }
  .icon-btn {
    width: 44px;
    height: 44px;
  }

  .page-tabs-bar .icon-btn {
    width: 44px;
    height: 44px;
  }

  :root {
    --tabs-bar-height: 56px;
    --header-height: 56px;
  }
}

.sidebar-backdrop {
  display: none;
}
@media (max-width: 768px) {
  .sidebar-backdrop {
    display: block;
    position: fixed;

    inset: var(--drawer-top) 0 0 0;
    background: color-mix(in srgb, var(--color-gray-900) 40%, transparent);
    z-index: calc(var(--z-modal) - 1);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--motion-base) var(--motion-ease-standard);
  }
  .app-shell.sidebar-open .sidebar-backdrop {
    opacity: 1;
    pointer-events: auto;
  }
}

.gs-entry {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 150px;

  height: 40px;
  padding: 0 var(--space-3);
  flex-shrink: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  font-family: inherit;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.gs-entry:hover { border-color: var(--color-accent-text); background: var(--color-surface); }
.gs-entry__icon { display: flex; flex-shrink: 0; opacity: .75; }
.gs-entry__text { flex: 1; text-align: left; }

.gs-entry__kbd {
  flex-shrink: 0;
  font-size: var(--font-size-xs);
  line-height: 16px;
  padding: 0 5px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-meta);
}

.gs-entry-wrap {
  display: flex;
  align-items: center;
  margin-left: 6px;
  padding-left: 10px;
  border-left: 1px solid var(--color-border-soft);
}

.page-tabs-bar__tools .notify-wrap {
  margin-left: 6px;
  padding-left: 0;
  border-left: none;
}

@media (max-width: 1100px) {
  .gs-entry { width: 36px; padding: 0; justify-content: center; }
  .gs-entry__text, .gs-entry__kbd { display: none; }
}

.sidebar__footer .user-chip > .nav-icon {
  margin-left: auto;
  flex-shrink: 0;
}

.sidebar__footer .user-chip > .user-meta {
  min-width: 0;
  overflow: hidden;
}
.sidebar__footer .user-chip .user-name,
.sidebar__footer .user-chip .user-role {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar__footer .user-chip { width: 100%; }

.sidebar__footer .profile-menu {
  top: auto;
  bottom: calc(100% + 8px);
  left: 0;
  right: auto;
  width: 100%;
  min-width: 208px;
}

.gs-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  background: color-mix(in srgb, var(--color-gray-900) 38%, transparent);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 12vh var(--space-4) var(--space-4);
  animation: fade-in var(--motion-slow) var(--motion-ease-sheet) both;
}
.gs-overlay[hidden] { display: none; }

.gs-overlay[data-closing] {
  animation: fade-out calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
}
.gs-dialog {
  width: min(640px, 100%);
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  animation: modal-in var(--motion-slow) var(--motion-ease-sheet) both;
}

.gs-dialog[data-closing] {
  animation: modal-out calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
  pointer-events: none;
}
.gs-head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0 var(--space-4);
  height: 52px;
  flex-shrink: 0;
  border-bottom: 1px solid var(--color-border-soft);
}
.gs-head__icon { display: flex; flex-shrink: 0; color: var(--color-muted); }
.gs-head__input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  background: transparent;
  font-size: var(--font-size-base);
  color: var(--color-fg);
}
.gs-head__input::placeholder { color: var(--color-placeholder); }
.gs-head__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-muted);
  cursor: pointer;
}
.gs-head__close:hover { background: var(--color-bg); color: var(--color-fg); }

.gs-dialog .global-search__panel {
  position: static;
  min-width: 0;
  width: 100%;
  max-width: none;
  max-height: none;
  flex: 1 1 auto;
  overflow-y: auto;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

body.gs-open { overflow: hidden; }

.topbar-brand {
  display: flex;
  align-items: center;
  gap: 12px;

  cursor: pointer;

  padding: 4px 8px;
  margin: -4px -8px;
  border-radius: var(--radius-md);
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.topbar-brand:hover {
  background: var(--color-surface-2);
}

.topbar-brand .brand-logo,
.topbar-brand .brand-logo svg {
  width: 34px;
  height: 34px;
  display: block;
}
.topbar-brand .brand-name__zh {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-fg);
  letter-spacing: -0.01em;
}

.topbar-brand .brand-name__en { display: none; }

.page-tabs-bar__tools .gs-entry {
  width: 40px;
  min-width: 40px;
  height: 40px;

  border-radius: var(--radius-md);
  background: transparent;
  border: 1px solid var(--color-border);
  padding: 0;
  justify-content: center;
}
.page-tabs-bar__tools .gs-entry__text,
.page-tabs-bar__tools .gs-entry__kbd { display: none; }
.page-tabs-bar__tools .gs-entry svg { width: 18px; height: 18px; }

.page-tabs-bar__tools .gs-entry { color: var(--color-fg-2); }
.page-tabs-bar__tools .gs-entry__icon { opacity: 1; }
.page-tabs-bar__tools .gs-entry:hover { background: var(--color-topbar-chip-hover); }
.page-tabs-bar__tools .gs-entry-wrap {
  border: 0;
  padding: 0;
}

.page-tabs-bar__tools #notify-wrap .icon-btn,
.page-tabs-bar__tools #notify-bell {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  background: transparent;
  border: 1px solid var(--color-border);
}
.page-tabs-bar__tools #notify-wrap .icon-btn:hover { background: var(--color-topbar-chip-hover); }
.page-tabs-bar__tools #notify-wrap .icon-btn svg { width: 18px; height: 18px; }

.page-tabs-bar__tools .profile-wrap { position: relative; }
.page-tabs-bar__tools .user-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  height: 40px;

  padding: 0 16px 0 5px;

  border-radius: var(--radius-pill);
  border: 1px solid var(--color-border);
  background: transparent;
  cursor: pointer;
  box-sizing: border-box;
}
.page-tabs-bar__tools .user-chip:hover { background: var(--color-topbar-chip-hover); }
.page-tabs-bar__tools .user-avatar,
.page-tabs-bar__tools .user-avatar * {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 14px;
}

.page-tabs-bar__tools .user-avatar { padding: 0; }

.page-tabs-bar__tools .user-meta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1px;
  line-height: 1.15;
}
.page-tabs-bar__tools .user-name {

  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  line-height: 1.15;
  white-space: nowrap;
  max-width: 7em;
  overflow: hidden;
  text-overflow: ellipsis;
}

.page-tabs-bar__tools .user-role {
  display: block;
  font-size: 11px;
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
  line-height: 1.15;
  white-space: nowrap;
  max-width: 7em;
  overflow: hidden;
  text-overflow: ellipsis;
}
.page-tabs-bar__tools .user-chip .nav-icon { display: none; }

.page-tabs-bar__tools .profile-menu {
  top: calc(100% + 10px);
  bottom: auto;
  right: 0;
  left: auto;
}

@media (max-width: 768px) {
  .page-tabs-bar__tools #notify-wrap .icon-btn,
  .page-tabs-bar__tools #notify-bell,
  .page-tabs-bar__tools .gs-entry {
    width: 44px;
    min-width: 44px;
    height: 44px;
  }
}

.export-wrap {
  position: relative;
  margin-left: 6px;
  padding-left: 0;
  border-left: none;
}
.page-tabs-bar__tools .notify-wrap {
  margin-left: 6px;
  padding-left: 0;
  border-left: none;
}

.export-btn { position: relative; }
.export-btn__icon { display: inline-flex; align-items: center; justify-content: center; }

@keyframes exportDrop {
  0%   { transform: translateY(-6px); opacity: .25; }
  45%  { transform: translateY(1.5px); opacity: 1; }
  72%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
.export-btn.is-dropping .export-btn__icon {
  animation: exportDrop 560ms cubic-bezier(0.32, 0.72, 0, 1);
}

@keyframes exportRing {
  0%   { opacity: .5; transform: scale(.72); }
  100% { opacity: 0;  transform: scale(1.6); }
}
.export-btn.is-new::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid var(--color-accent-text);
  animation: exportRing 900ms cubic-bezier(0.32, 0.72, 0, 1) 2;
  pointer-events: none;
}

.export-panel { width: 360px; }
.export-panel .notify-panel__body {
  max-height: 392px;
  overflow-y: auto;
  padding: 0;
}
.export-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 10px var(--space-4);
  border-bottom: 1px solid var(--color-border-soft);
  text-decoration: none;
  color: inherit;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.export-item:hover { background: var(--color-surface-2); }
.export-item__ico { display: inline-flex; flex-shrink: 0; color: var(--color-muted); }
.export-item__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.export-item__name {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.export-item__meta {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.export-item__dl { flex-shrink: 0; font-size: var(--font-size-xs); color: var(--color-accent-text); }
.export-item.is-failed { cursor: default; }
.export-item.is-failed .export-item__ico,
.export-item.is-failed .export-item__dl { color: var(--color-danger); }

.export-empty { padding: var(--space-6) var(--space-4); text-align: center; }
.export-empty__title { font-size: var(--font-size-sm); color: var(--color-fg); }
.export-empty__desc {
  margin-top: var(--space-1);
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  line-height: 1.6;
}
.export-more {
  display: block;
  width: calc(100% - var(--space-4) * 2);
  margin: var(--space-2) var(--space-4) var(--space-3);
  padding: 8px 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-accent-text);
  font-size: var(--font-size-xs);
  font-family: inherit;
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.export-more:hover { background: var(--color-surface-2); }

@keyframes exportCardIn {
  0%   { opacity: 0; transform: translateY(-8px) scale(.98); }
  100% { opacity: 1; transform: none; }
}
.export-done {
  position: fixed;
  top: 64px;
  right: 20px;
  width: 320px;
  z-index: var(--z-toast);
  padding: var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
  animation: exportCardIn 340ms cubic-bezier(0.32, 0.72, 0, 1);
}
.export-done.is-out {
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity var(--motion-base) var(--motion-ease-standard),
    transform var(--motion-base) var(--motion-ease-standard);
}
.export-done__head { display: flex; align-items: center; gap: var(--space-2); }
.export-done__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;

  background: var(--color-surface-2);
  color: var(--color-accent-text);
  flex-shrink: 0;
}
.export-done__title { flex: 1; font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.export-done__x {
  display: inline-flex;
  border: none;
  background: none;
  padding: 2px;
  color: var(--color-meta);
  cursor: pointer;
  border-radius: var(--radius-sm);
}
.export-done__x:hover { background: var(--color-surface-2); color: var(--color-fg); }
.export-done__file {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  word-break: break-all;
  line-height: 1.5;
}
.export-done__tip {
  margin-top: 4px;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  line-height: 1.6;
}
.export-done__hint { display: inline-flex; vertical-align: -2px; margin: 0 2px; color: var(--color-accent-text); }
.export-done__acts { display: flex; gap: var(--space-2); margin-top: var(--space-3); }

.upload-drop__tip {
  margin-top: var(--space-2);
  color: var(--color-fg-2);
}

#imp-preview .table th,
#imp-preview .table td {
  white-space: nowrap;
}

@keyframes exportSpin {
  to { transform: rotate(360deg); }
}
.export-spin {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-accent-text);
  animation: exportSpin .8s linear infinite;
}
.export-done.is-pending .export-done__ico {
  background: var(--color-surface-2);
}

.export-done.is-failed .export-done__ico {
  background: var(--color-surface-2);
  color: var(--color-danger);
}

.export-item.is-pending { cursor: default; }
.export-item.is-pending .export-item__dl { color: var(--color-meta); }

#page-root .ef-ext__merge {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
}

.unit-toggle .unit-toggle__txt {
  font-size: 12px;
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  letter-spacing: 0;
}

[data-perm-hidden="1"] {
  display: none !important;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);

  height: var(--control-height);
  padding: 0 var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid transparent;

  background: var(--color-surface);
  color: var(--color-fg);
  border-color: var(--color-border);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  line-height: 1;
  white-space: nowrap;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard),
    border-color var(--motion-fast) var(--motion-ease-standard),

    transform var(--motion-base) var(--motion-ease-sheet),
    box-shadow var(--motion-fast) var(--motion-ease-standard);
}

.btn:hover:not(:disabled) {
  background: var(--color-surface-2);
}

.btn:active:not(:disabled) {

  background: var(--color-gray-100);
  transform: scale(var(--motion-press));

  transition-duration: var(--motion-fast);
}

.btn--primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(0, 100, 224, 0.18);
}
.btn--primary:active:not(:disabled) {
  transform: translateY(0) scale(var(--motion-press));
  box-shadow: 0 1px 2px rgba(0, 100, 224, 0.16);
}

.btn:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.btn--lg {
  height: var(--control-height);
  padding: 0 var(--space-5);
}

.btn--sm {

  height: var(--control-height-sm);
  padding: 0 var(--space-3);
  font-size: var(--font-size-sm);
}

.btn--primary {
  background: var(--button-primary-bg);

  background-image: var(--button-primary-image);
  color: var(--button-primary-fg);

  border-color: transparent;
}

.btn--primary:hover:not(:disabled) {
  background: var(--button-primary-hover);
  background-image: var(--button-primary-image-hover);
}

.btn--primary:active:not(:disabled) {
  background: var(--button-primary-active);
  background-image: var(--button-primary-image-active);
}

.btn--secondary {
  background: var(--button-secondary-bg);
  color: var(--button-secondary-fg);
  border-color: var(--button-secondary-border);
}

.btn--secondary:hover:not(:disabled) {
  border-color: var(--color-accent-text);
  background: var(--color-primary-50);
}

.btn--accent {
  background: var(--color-surface);
  color: var(--color-accent-text);
  border-color: var(--color-accent-text);
}

.btn--accent:hover:not(:disabled) {
  background: var(--color-primary-50);
}

.btn--ghost {
  background: var(--button-ghost-bg);
  color: var(--button-ghost-fg);
  border-color: var(--color-border);
}

.btn--ghost:hover:not(:disabled) {
  background: var(--color-surface-2);
  border-color: var(--color-gray-400);
}

.btn--scope {
  color: var(--scope-fg, var(--color-fg-2));
  background: var(--scope-bg, transparent);
  border-color: var(--scope-bg, var(--color-border));
}

.btn--scope:hover:not(:disabled) {
  background: var(--scope-bg, var(--color-surface-2));
  border-color: var(--scope-fg, var(--color-gray-400));
}

.seg__btn--scope.is-active {
  background: var(--scope-fg, var(--color-accent));
  color: #FFFFFF;
}

.btn--danger {
  background: var(--button-danger-bg);
  color: var(--button-danger-fg);
  border-color: transparent;
}

.btn--danger:hover:not(:disabled) {

  background: var(--button-danger-bg);
  filter: brightness(0.9);
}

.btn--icon {
  width: 36px;
  padding: 0;
}

.input,
.select,
.textarea {
  height: var(--control-height);

  padding: 0 var(--space-4);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-bg);
  color: var(--color-fg);
  font-size: var(--font-size-base);
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    box-shadow var(--motion-fast) var(--motion-ease-standard);
}

.textarea {
  height: auto;
  padding: var(--space-2) var(--space-4);
  resize: vertical;
  min-height: 96px;
}

input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  flex: none;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  position: relative;
  cursor: pointer;
  transition: background var(--motion-fast) var(--motion-ease-standard),
              border-color var(--motion-fast) var(--motion-ease-standard),
              transform var(--motion-base) var(--motion-ease-sheet);
}
input[type="checkbox"]:hover:not(:disabled) { border-color: var(--color-accent); }
input[type="checkbox"]:checked { background: var(--color-accent); border-color: var(--color-accent); }
input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 3.5px;
  top: 0.5px;
  width: 4px;
  height: 8px;
  border: solid var(--color-accent-on);
  border-width: 0 1.6px 1.6px 0;
  transform: rotate(45deg);
}
input[type="checkbox"]:disabled { opacity: .5; cursor: not-allowed; }
input[type="checkbox"]:active:not(:disabled) { transform: scale(0.88); transition-duration: var(--motion-fast); }

input[type="radio"] {
  accent-color: var(--color-accent);
  transition: transform var(--motion-base) var(--motion-ease-sheet);
}
input[type="radio"]:active:not(:disabled) {
  transform: scale(0.88);
  transition-duration: var(--motion-fast);
}

.select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%238595A4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 12px;
  padding-right: 32px;
}

.input[list] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%238595A4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 12px;
  padding-right: 32px;
}

.input[list]::-webkit-calendar-picker-indicator {
  display: none !important;
  opacity: 0 !important;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.input::placeholder,
.textarea::placeholder {
  color: var(--color-placeholder);
}

.input:focus,
.select:focus,
.textarea:focus {
  outline: none;
  border-color: var(--input-focus-border);
  box-shadow: var(--focus-ring);
}

.input:disabled,
.select:disabled {
  background: var(--input-disabled-bg);
  color: var(--input-disabled-text);
  cursor: not-allowed;
}

.input--readonly {
  background: var(--input-disabled-bg);
  color: var(--input-disabled-text);
  cursor: default;
}

.sel-clear-wrap {
  position: relative;
  display: inline-block;
  width: 100%;
}
.sel-clear-wrap select.sel-clear {
  width: 100%;
  padding-right: 52px;
}
.sel-clear-x {
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  color: var(--color-fg-2);
  border-radius: 50%;
  line-height: 1;
}
.sel-clear-x:hover {
  color: var(--color-fg);
  background: var(--color-surface-2);
}

.input.is-error,
.select.is-error,
.textarea.is-error {
  border-color: var(--color-danger);
}
.input.is-error:focus,
.select.is-error:focus,
.textarea.is-error:focus {
  border-color: var(--color-danger);
  box-shadow: 0 0 0 3px var(--color-danger-bg);
}
.field-error {
  margin-top: var(--space-1);
  font-size: var(--font-size-xs);
  color: var(--color-danger);
}

.is-error .fp__box {
  border-color: var(--color-danger);
}

.input--search {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.input--search .search-icon,
.input--search > svg {
  position: absolute;
  left: var(--space-3);
  z-index: 1;
  color: var(--color-meta);
  pointer-events: none;
  display: inline-flex;
}

.input--search .input,
.input--search .select {
  padding-left: var(--space-8);
}

.range-filter {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-meta);
}
.range-filter > svg {
  flex-shrink: 0;
  color: var(--color-meta);
}
.range-filter__sep {
  color: var(--color-meta);
  font-size: var(--font-size-sm);
  flex-shrink: 0;
}

.input--password {
  position: relative;
  display: flex;
  align-items: center;
}
.input--password .input {
  width: 100%;
  padding-right: var(--space-10);
}
.pwd-toggle {
  position: absolute;
  right: var(--space-1);
  border: none;
  background: none;
  cursor: pointer;
  color: var(--color-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: var(--control-height-sm);
  border-radius: var(--radius-sm);
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-standard);
}
.pwd-toggle:hover {
  color: var(--color-fg);
  background: var(--color-surface-2);
}
.pwd-toggle:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.field-label {
  display: block;

  padding-left: var(--field-label-indent);
  margin-bottom: var(--space-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);
}

.field-hint {
  margin-top: var(--space-1);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.sub-mark {
  --sub-mark-color: var(--color-primary-500);
}
.sub-mark::before,
.eb-dt .dt__kind::before {
  content: ''; display: inline-block;
  width: 3px; height: 14px; margin-right: var(--space-2);
  background: var(--sub-mark-color);
  border-radius: 2px; vertical-align: -2px;
}

.field-hint.is-error {
  color: var(--color-danger);
}

.f-w-xs { width: 96px; }
.f-w-sm { width: 140px; }
.f-w-md { width: 220px; }

.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);

  height: 22px;

  padding: 1px var(--space-2) 0;
  border-radius: var(--radius-seg);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: 1;
  white-space: nowrap;
}

.badge--success { color: var(--badge-success-fg); background: var(--badge-success-bg); }
.badge--warning { color: var(--badge-warning-fg); background: var(--badge-warning-bg); }
.badge--danger  { color: var(--badge-danger-fg);  background: var(--badge-danger-bg); }
.badge--info    { color: var(--badge-info-fg);    background: var(--badge-info-bg); }
.badge--neutral { color: var(--color-fg-2);       background: var(--color-surface-2); }

.pending-approval {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 20px;
  margin-left: 6px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1;
  white-space: nowrap;

  background: var(--badge-warning-bg);
  color: var(--badge-warning-fg);
  cursor: pointer;
}
.pending-approval:hover {
  background: var(--color-warning);
  color: #fff;
}
.pending-approval__n {
  font-size: var(--font-size-xs);
  opacity: 0.8;
}

.badge--outline {
  background: transparent;
  border: 1px solid var(--color-border);
  color: var(--color-fg-2);
}

.tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;

  height: 20px;

  padding: 1px 6px 0;
  border-radius: var(--radius-seg);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: 1;
  white-space: nowrap;
  color: var(--tag-fg, var(--color-fg-2));
  background: var(--tag-bg, var(--color-surface-2));
}
.tag--sm {
  height: 18px;
  padding: 1px 6px 0;
  font-size: var(--font-size-xs);
}

.tag.comm-src--company { color: var(--color-tone-purple-fg); background: var(--color-tone-purple-bg); }
.tag.comm-src--own { color: var(--color-tone-teal-fg); background: var(--color-tone-teal-bg); }

.tag.comm-src--schedule { color: var(--color-tone-orange-fg); background: var(--color-tone-orange-bg); }

.card {

  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.card[style*="margin-bottom:var(--space-6)"],
.card[style*="margin-bottom:var(--space-4)"],
.card[style*="margin-bottom: var(--space-6)"],
.card[style*="margin-bottom: var(--space-4)"],
.chart-card[style*="margin-bottom:var(--space-6)"],
.chart-card[style*="margin-bottom:var(--space-4)"],
.chart-card[style*="margin-bottom: var(--space-6)"],
.chart-card[style*="margin-bottom: var(--space-4)"] {

  margin-bottom: var(--space-4) !important;
}

.module-card {

  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-6);
}

.module-card + .module-card {

  margin-top: var(--space-4);
}

.module-card--flush {
  padding: 0;
  overflow: hidden;
}

.module-card--flush > .module-card__head {
  margin: 0;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.module-card--bodyless {
  padding-bottom: 0;
}
.module-card--bodyless > .module-card__head {
  margin-bottom: 0;
  border-bottom: none;
}

.module-card--bare {
  background: none;
  box-shadow: none;
  border-radius: 0;
  padding: 0 0 var(--space-6);

  border: 0;
  border-bottom: 1px solid var(--color-border);
}

.module-card--bare.is-bodyless {
  border-bottom: 0;
  padding-bottom: 0;
}

.module-card--bare > .module-card__head {
  margin: 0 0 var(--space-4);
  padding: var(--space-3) 0 0;
  background: none;
  border-radius: 0;
  border-bottom: 0;
  min-height: 0;
}

.module-card--bodyless.module-card--bare {
  padding-bottom: var(--space-4);
}
.module-card--bodyless.module-card--bare > .module-card__head {
  margin-bottom: 0;
}

.module-card__sub {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border-soft);
}

.module-card__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  margin: calc(var(--space-4) * -1) calc(var(--space-4) * -1) var(--space-3);
  padding: var(--space-3) var(--space-4);

  background: transparent;
  border-radius: calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;
}

.module-card__head.is-on,
.module-card.is-on > .module-card__head {
  background: var(--color-head-on-bg);
}

.module-card__head .switch {
  margin-left: auto;
  margin-top: 0;
  margin-bottom: 0;
}
.module-card__title {

  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-head-off-fg);
}
.module-card__head.is-on .module-card__title,
.module-card.is-on > .module-card__head .module-card__title {
  color: var(--color-head-on-fg);
}

.module-card__head--plain {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
.module-card__head--plain .module-card__title {
  color: var(--color-fg);
}

.card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-6);

  border-bottom: 0;
}

.card__title--bar::before,
.card__title::before,
.module-card__title::before,
.module-card__title--bar::before,
.cal-approx__title::before,
.pc-sub-panel__title::before {
  content: '';
  flex: none;
  display: inline-block;
  width: 3px;

  height: 14px;

  align-self: center;
  margin-right: var(--space-2);
  border-radius: 2px;
  background: var(--color-primary-500);
  vertical-align: -2px;
}

.module-card__title--bar {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}

.module-card__head > .module-card__title { display: flex; align-items: center; }
.module-card__head > .module-card__title::before { margin-right: 0; }
.module-card__head > .module-card__title { gap: var(--space-2); }

.card__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: nowrap;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}

.card__header--tint {
  background: var(--liquid-tray-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.card__meta {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.card__help {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  margin-left: var(--space-1);
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-muted);
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard);
}
.card__help:hover { color: var(--color-accent-text); }
.card__help svg { flex: none; }

.card__body {
  padding: var(--space-6);
}

.card > .tabs {

  margin: var(--space-4) var(--space-5) 0;

  width: auto;
  position: sticky;

  top: var(--tabs-bar-height);
  z-index: 60;
  transition: box-shadow var(--motion-base) var(--motion-ease-standard),
              background-color var(--motion-base) var(--motion-ease-standard);
}

.tabs.is-stuck {
  background: var(--liquid-bg);
  backdrop-filter: var(--liquid-blur);
  -webkit-backdrop-filter: var(--liquid-blur);
  border-color: var(--liquid-edge);
  box-shadow: var(--liquid-shadow);
}

.card > .tabs + .card__body {
  padding-top: var(--space-4);
}
.card > .toolbar {
  padding: var(--space-4) var(--space-5) var(--space-3);
  margin: 0;
}
.card > .kpi-row {
  padding: var(--space-3) var(--space-5);
  margin-bottom: 0;
}

.switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-direction: row-reverse;
  cursor: pointer;
  user-select: none;
}
.switch input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
}
.switch__track {
  position: relative;
  width: 40px;
  height: 22px;
  background: var(--color-border);
  border-radius: var(--radius-pill);
  flex-shrink: 0;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.switch__thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);

  transition: transform var(--motion-base) var(--motion-ease-pop);
}
.switch input:checked + .switch__track {
  background: var(--switch-active-bg);
}
.switch input:checked + .switch__track .switch__thumb {
  transform: translateX(18px);
}
.switch input:focus-visible + .switch__track {
  box-shadow: var(--focus-ring);
}
.switch input:disabled + .switch__track {
  opacity: 0.5;
  cursor: not-allowed;
}
.switch__label {
  margin-right: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}
.switch--sm .switch__track {
  width: 34px;
  height: 19px;
}
.switch--sm .switch__thumb {
  width: 15px;
  height: 15px;
  top: 2px;
  left: 2px;
}
.switch--sm input:checked + .switch__track .switch__thumb {
  transform: translateX(15px);
}

.seg {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 3px;
  background: var(--tab-tray-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.seg__btn {

  height: 34px;
  padding: 6px 16px;
  border: none;
  border-radius: var(--radius-seg);
  background: transparent;
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.seg__btn:hover {
  color: var(--color-accent-text);
}
.seg__btn.is-active {
  background: var(--color-accent);

  background-image: var(--gradient-brand);
  color: var(--color-accent-on);

  box-shadow: var(--shadow-pill-active);
}

.seg__label {
  display: inline-flex;
  align-items: center;
  padding: 0 var(--space-2) 0 var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
}
.seg__divider {
  width: 1px;
  align-self: stretch;
  margin: 4px var(--space-1);
  background: var(--color-border);
}
.seg-select {
  padding: 6px 16px;
  border: none;
  border-radius: var(--radius-seg);
  background: transparent;
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  outline: none;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.seg-select:hover {
  color: var(--color-accent-text);
}
.seg-select.is-active {
  background: var(--color-accent);
  color: var(--color-accent-on);
}

.pill-filter {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);

  padding: 3px;

  background: var(--tab-tray-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);

}

.pill-filter.table-tabs {
  background: var(--tab-tray-bg);
  border-radius: var(--radius-md);
  width: fit-content;
  flex: 0 0 auto;
}

.seg.table-tabs:not(.table-tabs--in-header) {
  background: var(--tab-tray-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);

  padding: 3px;
  gap: var(--space-1);
  width: fit-content;
  flex: 0 0 auto;
}

.toolbar--has-page-tabs > .seg.table-tabs:not(.table-tabs--in-header) {
  flex: 0 0 100%;
  width: fit-content;
}

.seg.table-tabs:not(.table-tabs--in-header) .seg__btn {
  height: 34px;
  padding: 0 16px;
  border-radius: var(--radius-seg);
  font-size: var(--font-size-sm);

}
.seg.table-tabs:not(.table-tabs--in-header) .seg__btn:not(.is-active) {
  color: var(--color-fg-2);
}

.pill-filter__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 34px;

  padding: 6.8px 16px 5.2px;
  border: none;
  border-radius: var(--radius-seg);
  background: transparent;
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}

.pill-filter__item:hover {
  color: var(--color-accent-text);
}

.pill-filter__item.is-active {
  background: var(--color-accent);

  background-image: var(--gradient-brand);
  color: var(--color-accent-on);

  box-shadow: var(--shadow-pill-active);
}

.tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  padding: 0 6px;
  min-width: 19px;
  border-radius: var(--radius-seg);
  background: var(--color-gray-200);
  color: var(--color-fg-2);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  font-variant-numeric: tabular-nums;
  line-height: 18px;
}

.is-active .tab-count {
  background: rgba(255, 255, 255, 0.28);
  color: var(--color-accent-on);
}

.pill-filter__item .co-role-n {
  margin-left: 5px;
  font-size: var(--font-size-xs);
  font-style: normal;
  opacity: .78;
}

.pill-filter__item.is-empty {
  opacity: .45;
}
.pill-filter__item.is-empty.is-active {
  opacity: 1;
}

.product-thumb {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-sm);
  object-fit: cover;
  border: 1px solid var(--color-border-soft);
}
.product-thumb--empty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-2);
  color: var(--color-muted);
}

.img-upload {
  position: relative;
  width: 160px;
  height: 160px;
  border: 2px dashed var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  overflow: hidden;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.img-upload:hover {
  border-color: var(--color-accent-text);
}

.img-upload--drop {
  width: 100%;
  max-width: 100%;
  height: 96px;
}
.img-upload--drop .img-upload__empty,
.img-upload--drop .img-upload__docfile {
  flex-direction: row;
  gap: var(--space-2);
  text-align: left;
}
.img-upload--drop .img-upload__docfile {
  justify-content: center;
  padding: 0 var(--space-5);
}

.img-upload.is-dragover {
  border-color: var(--color-accent);
  background: var(--color-accent-bg);
}

.img-upload__docfile {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  text-align: center;
  word-break: break-all;
}
.img-upload__empty {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}
.img-upload__preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.img-upload__remove {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: var(--radius-sm);
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  cursor: pointer;
}
.img-upload__remove:hover {
  background: rgba(0, 0, 0, 0.7);
}

.up-wait {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-xs);

  color: var(--color-accent-text);
  white-space: nowrap;
}
.up-spin {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-accent);
  border-radius: 50%;
  animation: up-spin .8s linear infinite;
}
@keyframes up-spin { to { transform: rotate(360deg); } }

.img-upload--avatar {
  width: 160px;
  height: 160px;
  border-radius: var(--radius-pill);
  border: 2px dashed var(--color-border);

  overflow: hidden;
}

.img-upload--avatar:has(.img-upload__preview) {
  border-style: solid;
  border-color: transparent;
}

.img-upload--avatar .img-upload__empty {
  border-radius: var(--radius-pill);
  color: var(--color-accent-text);
  background: var(--color-primary-100);
}

.img-upload--avatar {
  background: var(--color-primary-100);
}

.fp {
  position: relative;
}
.fp__box {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;

  min-height: var(--control-height);
  padding: var(--space-1) var(--space-4);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-bg);
  cursor: text;
}
.fp__box:focus-within {
  border-color: var(--input-focus-border);
  box-shadow: var(--focus-ring);
}
.fp__field {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 1;
  min-width: 120px;
}
.fp__value {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-base);
}
.fp__placeholder {
  color: var(--color-muted);
}
.fp__search {
  flex: 1;
  min-width: 80px;
  border: none;
  outline: none;
  font-size: var(--font-size-base);
  background: transparent;
}
.fp__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.sp__dropdown {
  margin-top: var(--space-2);
  max-height: 240px;
  overflow-y: auto;
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-bg);
}
.sp__item {
  padding: var(--space-2) var(--space-4);
  font-size: var(--font-size-sm);
  cursor: pointer;
}
.sp__item:hover { background: var(--color-surface-2); }

.sp__item--new {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--color-accent-text);
  border-top: 1px solid var(--color-border-soft);
}

.sp__empty {
  padding: var(--space-3);
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  text-align: center;
}

.fp-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px 2px 2px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  font-size: var(--font-size-sm);
}
.fp-chip__x {
  border: none;
  background: none;
  cursor: pointer;
  color: var(--color-muted);
  display: inline-flex;
  padding: 0;

  position: relative;
}
.fp-chip__x::after {
  content: '';
  position: absolute;
  inset: -6px;
}
.fp-chip__x:hover {
  color: var(--color-danger);
}
.fp-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.fp-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.fp-avatar--empty {
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  font-size: var(--font-size-xs);
}
.fp__dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  width: 100%;
  max-height: 240px;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-raised);
  z-index: var(--z-dropdown);

  animation: panel-in var(--motion-base) var(--motion-ease-sheet) backwards;
}
.fp-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  cursor: pointer;
  font-size: var(--font-size-sm);
}

.fp__dropdown .fp-item:first-child,
.fp__dropdown .fp-empty:first-child {
  border-top-left-radius: calc(var(--radius-md) - 1px);
  border-top-right-radius: calc(var(--radius-md) - 1px);
}
.fp__dropdown .fp-item:last-child,
.fp__dropdown .fp-empty:last-child {
  border-bottom-left-radius: calc(var(--radius-md) - 1px);
  border-bottom-right-radius: calc(var(--radius-md) - 1px);
}
.fp-item:hover {
  background: var(--color-surface-2);
}
.fp-item__name {
  color: var(--color-fg);
}
.fp-empty {
  padding: var(--space-4);
  text-align: center;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}

.fp__box .fp__value {
  flex-shrink: 0;
  max-width: 100%;
}
.fp__search {
  flex: 1;
  min-width: 80px;
  cursor: text;
}

.fp-item__tag {
  margin-left: auto;
  padding: 0 6px;
  font-size: var(--font-size-xs);
  line-height: 16px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  color: var(--color-muted);
}

.fp__dropdown {
  -webkit-overflow-scrolling: touch;
}

.fp-item--external {
  border-top: 1px dashed var(--color-border-soft);
  margin-top: 4px;
  padding-top: 8px;
}
.fp-item__tag--ext {
  background: var(--color-warning-bg);
  color: var(--color-warning);
}

.table .toolbar {
  flex-wrap: nowrap;
}

.icon-btn[data-view] { color: var(--color-muted); }
.icon-btn[data-view]:hover { color: var(--color-fg); background: var(--color-surface-2); }
.icon-btn[data-edit] { color: var(--color-accent-text); }
.icon-btn[data-edit]:hover { color: var(--color-accent-hover); background: var(--color-primary-100); }
.icon-btn[data-del] { color: var(--color-danger); }
.icon-btn[data-del]:hover { color: var(--color-danger); background: var(--color-danger-bg); }

.icon-btn[data-view] { color: var(--color-muted); }
.icon-btn[data-view]:hover { color: var(--color-accent-text); background: var(--color-primary-100); }

.table .icon-btn[data-edit] { color: var(--color-muted); }
.table .icon-btn[data-edit]:hover { color: var(--color-accent-text); background: var(--color-primary-100); }

.icon-btn.n-del,
.icon-btn.sess-del,
.icon-btn.acc-del,
.icon-btn.bf-del,
.icon-btn.pid-del,
.icon-btn.rule-del,
.icon-btn.sk-del,
.icon-btn.item-del,
.icon-btn.pf-prod-del {
  color: var(--color-danger);
}
.icon-btn.n-del:hover,
.icon-btn.sess-del:hover,
.icon-btn.acc-del:hover,
.icon-btn.bf-del:hover,
.icon-btn.pid-del:hover,
.icon-btn.rule-del:hover,
.icon-btn.sk-del:hover,
.icon-btn.item-del:hover,
.icon-btn.pf-prod-del:hover {
  color: var(--color-danger);
  background: var(--color-danger-bg);
}

.btn--ghost[data-role], .btn--ghost[data-pwd] { color: var(--color-accent-text); }
.btn--ghost[data-role]:hover, .btn--ghost[data-pwd]:hover { color: var(--color-accent-hover); background: var(--color-primary-100); }
.btn--ghost[data-status] { color: var(--color-muted); }
.btn--ghost[data-status]:hover { color: var(--color-fg); background: var(--color-surface-2); }
.btn--ghost[data-del] { color: var(--color-danger); }
.btn--ghost[data-del]:hover { color: var(--color-danger); background: var(--color-danger-bg); }

.field-label .req { color: var(--color-danger); }

@media (max-width: 768px) {
  .input--search {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
  }
  .input--search .input {
    width: auto !important;
    flex: 1 1 auto;
    min-width: 0;
  }

  .input,
  .select {
    min-height: 44px;
  }
  .dtp-trigger,
  .fp__box {
    min-height: 44px;
  }
  .seg {
    min-height: 40px;
  }
  .btn {
    min-height: 40px;
  }
  .btn--lg {
    min-height: 44px;
  }

  .table tbody td {
    padding: 8px 12px;
  }
}

.upload-drop {
  border: 2px dashed var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6) var(--space-4);
  text-align: center;
  cursor: pointer;
  color: var(--color-muted);
  transition: border-color var(--motion-fast) var(--motion-ease-standard), background var(--motion-fast) var(--motion-ease-standard);
  margin-top: var(--space-2);
}
.upload-drop:hover { border-color: var(--color-accent); background: var(--color-surface-2); }
.upload-drop.is-dragover { border-color: var(--color-accent); background: var(--color-accent-bg); }
.upload-drop svg { color: var(--color-muted); }

.sheet-option {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-2);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard), background var(--motion-fast) var(--motion-ease-standard);
}
.sheet-option:hover { border-color: var(--color-accent); }
.sheet-option.is-active { border-color: var(--color-accent); background: var(--color-accent-bg); }

.pv-cell { cursor: text; }
.pv-cell.is-edited { background: var(--color-warning-bg); }

.ld-ok { color: var(--color-success-text); font-size: var(--font-size-sm); line-height: 1.4; }
.ld-bad { color: var(--color-danger); font-size: var(--font-size-sm); line-height: 1.4; }
.ld-ok + .ld-ok, .ld-bad + .ld-ok, .ld-ok + .ld-bad, .ld-bad + .ld-bad { margin-top: 2px; }

.ld-ok > svg, .ld-bad > svg, .icon-inline > svg { vertical-align: -0.15em; }

.tabs__tray {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: none;
  padding: 4px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);

  background: var(--tab-tray-bg);
  max-width: 100%;
  flex-wrap: wrap;

  transition: background-color var(--motion-base) var(--motion-ease-standard),
              border-color var(--motion-base) var(--motion-ease-standard);
}

@media (min-width: 769px) {
  .tabs__tray { padding: 3px; }
}

.tabs-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  padding: var(--space-4) var(--space-5) 0;
  margin-bottom: var(--space-4);
}
.tabs-card > .tabs { margin-bottom: 0; }

.bavatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
  color: #fff;
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  overflow: hidden;
  vertical-align: -0.15em;

  object-fit: contain;
}

.bavatar--all { color: var(--color-muted); background: var(--color-surface-2); }

.bpick { position: relative; display: inline-block; }

.bpick--block { display: block; width: 100%; }
.bpick--block .bpick__trigger { width: 100%; max-width: none; }
.bpick__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: var(--control-height);
  max-width: 176px;
  padding: 0 var(--space-2);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-bg);
  color: var(--color-fg);
  font-size: var(--font-size-base);
  font-family: inherit;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.bpick__trigger:hover { border-color: var(--input-focus-border); }
.bpick__trigger:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; }

.bpick__trigger.is-on { border-color: var(--color-accent); }
.bpick__label { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bpick__caret { display: inline-flex; flex: 0 0 auto; color: var(--color-muted); }
.bpick__panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: var(--z-dropdown);
  min-width: 200px;
  max-height: 320px;
  overflow-y: auto;
  padding: var(--space-1);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
}
.bpick__opt {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 7px var(--space-2);
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-fg);
  font-size: var(--font-size-base);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}
.bpick__opt:hover { background: var(--color-surface-2); }
.bpick__opt.is-active { font-weight: var(--font-weight-semibold); }
.bpick__name { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bpick__check { display: inline-flex; flex: 0 0 auto; color: var(--color-accent); }
.bpick__empty { padding: 10px var(--space-2); color: var(--color-muted); font-size: var(--font-size-sm); }

.mp { position: relative; display: inline-block; }

.mp--block { display: block; width: 100%; }
.mp--block .mp__trigger { width: 100%; text-align: left; }
.mp__trigger {
  height: var(--control-height);
  padding: 0 32px 0 var(--space-3);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-bg);
  color: var(--color-fg);
  font-size: var(--font-size-base);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%238595A4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 12px;
}
.mp__trigger:hover { border-color: var(--input-focus-border); }

.mp__trigger.is-on {
  border-color: var(--color-accent);
  color: var(--color-accent);
  font-weight: var(--font-weight-semibold);
  background-image: none;
  padding-right: var(--space-3);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.mp__trigger.is-on:hover { border-color: var(--color-accent); }
.mp__trigger .mp__label { white-space: nowrap; }
.mp__trigger.is-on > svg { flex-shrink: 0; }
.mp__clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 1px;
  opacity: .5;
  transition: opacity var(--motion-fast) var(--motion-ease-standard);
}
.mp__trigger.is-on:hover .mp__clear { opacity: 1; }

.mp__panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: var(--z-dropdown);
  min-width: 232px;
  padding: var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft));
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-raised);
}
.mp__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-2);
}
.mp__nav {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-fg-2);
  font-size: var(--font-size-lg);
  line-height: 1;
  cursor: pointer;
}
.mp__nav:hover:not(:disabled) { border-color: var(--color-accent); color: var(--color-accent-text); }
.mp__nav:disabled { opacity: .35; cursor: not-allowed; }
.mp__year { font-size: var(--font-size-base); font-weight: 600; color: var(--color-fg); }

.mp__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.mp__month {
  padding: 7px 0;
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard), background var(--motion-fast) var(--motion-ease-standard);
}
.mp__month:hover:not(:disabled) { border-color: var(--color-accent); }
.mp__month.is-active {
  border-color: var(--color-accent);
  background: var(--color-accent);
  color: var(--color-accent-on);
  font-weight: 600;
}
.mp__month.is-disabled,
.mp__month:disabled {
  border-color: var(--input-border);
  background: transparent;
  color: var(--input-disabled-text);
  opacity: .5;
  cursor: not-allowed;
}

.mp__month.is-current:not(.is-active) {
  border-color: var(--color-accent);
  color: var(--color-accent);
  font-weight: var(--font-weight-semibold);
}
.mp__month.is-current:not(.is-active):disabled {
  color: var(--input-disabled-text);
  opacity: .55;
}

.mp__foot {
  display: flex;
  gap: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border-soft));
}

.mp__today,
.mp__all {
  flex: 1;
  padding: 8px 0;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard), background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);
}
.mp__today {
  background: var(--color-surface-2);
  border-color: var(--color-border);
  color: var(--color-fg);
}
.mp__today:hover:not(:disabled) { border-color: var(--color-accent); color: var(--color-accent-text); }
.mp__today:disabled { color: var(--input-disabled-text); opacity: .5; cursor: not-allowed; }
.mp__all {

  background: var(--color-surface-2);
  border-color: var(--color-border);
  color: var(--color-fg);
}
.mp__all:hover { border-color: var(--color-accent); color: var(--color-accent-text); }

.filter-reset {
  height: var(--control-height);
  padding: 0 var(--space-4);
}

.pta-fee {
  margin-top: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}
.pta-fee__head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.pta-fee__title {
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.pta-fee__body {
  margin-top: var(--space-3);
}

.batch-bar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-3);
}
.batch-bar__count {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
}

.calib-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-warning);
  background: var(--color-warning-bg);
  border-radius: var(--radius-pill);
  vertical-align: middle;
}

.table tr.row-sub > td {
  background: var(--color-surface-2);
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
}
.table tbody tr.row-sub:hover > td {
  background: var(--table-row-hover);
}

.table th.group-sep,
.table td.group-sep {
  border-left: 1px solid var(--color-border);
  padding-left: var(--space-4);
}

.table td .table--sub {
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.table--sub th,
.table--sub td {
  padding: var(--space-2) var(--space-3);
  font-size: var(--font-size-xs);
}
.link-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: none;
  background: none;
  color: var(--color-accent-text);
  cursor: pointer;
  font-weight: var(--font-weight-medium);
}
.link-btn:hover {
  color: var(--color-primary-500);
  text-decoration: underline;
}

.table tr.is-excluded td {
  opacity: 0.55;
}

.ui-tip {
  position: fixed;
  z-index: var(--z-toast);
  max-width: 320px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: var(--color-fg);
  color: var(--color-surface);
  box-shadow: var(--shadow-md);
  font-size: var(--font-size-sm);
  line-height: 1.5;
  word-break: break-word;

  white-space: pre-line;
  pointer-events: none;
}

.rmk { line-height: 1.6; }
.rmk-line { display: block; }

.rmk--block > .rmk-line + .rmk-line { margin-top: 6px; }
.rmk--block { font-size: var(--font-size-sm); color: var(--color-fg); }

.rmk--cell { font-size: var(--font-size-xs); color: var(--color-fg-2); }
.rmk--cell > .rmk-line + .rmk-line { margin-top: 2px; }

.rmk--cell > .rmk-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rmk-empty, .rmk--empty { color: var(--color-muted); }

.rmk-more {
  margin-top: 3px; padding: 0;
  border: 0; background: none; cursor: pointer;
  font-size: var(--font-size-xs); font-family: inherit;
  color: var(--color-accent-text); text-decoration: none;
}
.rmk-more:hover { text-decoration: underline; }
.rmk-more:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; border-radius: 2px; }
.rmk-more-dot { color: var(--color-accent-text); }

.rmk-hl {
  background: none; color: inherit;
  padding: 0 2px; border-radius: var(--radius-sm);
  font-weight: var(--font-weight-medium);
}

.rmk-hl--id {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.94em;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  color: var(--color-fg);
  letter-spacing: -0.01em;
}

.rmk-hl--money { color: var(--color-price); font-weight: var(--font-weight-semibold); }

.rmk-hl--act { color: var(--color-warning-text); font-weight: var(--font-weight-semibold); }

.rmk-modal__meta {
  margin-bottom: var(--space-3); padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs); color: var(--color-meta);
}
.rmk-modal .rmk--block { font-size: var(--font-size-base); }
.rmk-modal .rmk--block > .rmk-line + .rmk-line { margin-top: var(--space-3); }

.ell {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

span.ell, div.ell { display: block; }

td.ell { max-width: 100%; }

.icon-btn:active:not(:disabled) {
  background: var(--color-gray-100);
  transform: scale(0.94);
}

.table tbody tr.c-row:active,
.table tbody tr.hs-row:active,
.table tbody tr.ip-row:active,
.table tbody tr.s-row:active,
.table tbody tr.so-row:active,
.table tbody tr.person-row:active,
.table tbody tr.group-row:active,
.table tbody tr.fe-group:active,
.table tbody tr[data-row]:active,
.table tbody tr[data-key]:active,
.table tbody tr[data-pkey]:active,
.table tbody tr[data-inf]:active,
.table tbody tr[data-id]:active,
.table tbody tr[data-day]:active,
.table tbody tr[style*="cursor:pointer"]:active {
  background: var(--color-primary-100);
}

@media (prefers-reduced-motion: reduce) {
  .btn:active:not(:disabled),
  .icon-btn:active:not(:disabled) {
    transform: none;
  }
}

.keep-space-hidden {
  visibility: hidden;
}

#pta-add {
  min-width: 150px;
  justify-content: center;
}

.page-loading {
  padding: 56px 24px;
  text-align: center;
  color: var(--color-fg-3);
  font-size: var(--font-size-sm);
}

.ct-extract {
  margin-bottom: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border: 1px dashed var(--color-border-soft);
  border-radius: 8px;
  background: var(--color-surface-2);
}
.ct-extract__hd {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 500; color: var(--color-fg);
  margin-bottom: var(--space-2);
}

.ct-extract__hd-tip { font-size: 12.5px; font-weight: 400; color: var(--color-fg-3); }

.ct-extract__pick { display: flex; align-items: flex-start; gap: var(--space-3); flex-wrap: wrap; }

.ct-extract__drop {

  padding: var(--space-2) var(--space-4); margin-top: 0;
  flex: 1 1 300px; min-width: 0; min-height: var(--control-height);
  display: flex; align-items: center; justify-content: center;
}
.ct-extract__drop-in { display: flex; align-items: center; justify-content: center; gap: var(--space-2); }
.ct-extract__drop-tip { font-size: 13px; color: var(--color-fg-2); }
.ct-extract__or { flex: none; font-size: 12.5px; color: var(--color-fg-3); }

.ct-extract__links { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.ct-extract__link { flex: none; width: 100%; min-width: 0; }

.ct-extract__row { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;
  margin-top: var(--space-3); }

.ct-extract__row--linkonly { justify-content: flex-end; }
.ct-extract__filename { flex: 1 1 auto; min-width: 0; font-size: 12.5px; color: var(--color-fg-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-extract__msg { margin-top: var(--space-2); font-size: 12.5px; line-height: 1.6; color: var(--color-fg-3); }
.ct-extract__msg--ok { color: var(--color-fg-2); }
.ct-extract__msg--err { color: var(--color-danger); }

.ct-extract__busy {
  display: flex; flex-direction: column; gap: var(--space-3);
  margin-top: var(--space-3); padding: var(--space-3) var(--space-4);
  background: var(--color-accent-bg); border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}

.ct-extract__busy[hidden] { display: none; }

.ct-steps { display: flex; gap: var(--space-2); }
.ct-step { flex: 1 1 0; min-width: 0; }
.ct-step__hd { display: flex; align-items: center; gap: 6px; }
.ct-step__dot {
  flex: none; width: 20px; height: 20px; box-sizing: border-box;
  border-radius: var(--radius-pill); display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: var(--font-weight-semibold);
  background: var(--color-surface); color: var(--color-fg-3); border: 1px solid var(--color-border);
  transition: background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);
}
.ct-step__line { flex: 1 1 auto; height: 2px; border-radius: var(--radius-pill); background: var(--color-border); }
.ct-step:last-child .ct-step__line { display: none; }
.ct-step__txt { margin-top: 6px; }
.ct-step__txt > b { display: block; font-size: 12.5px; font-weight: var(--font-weight-semibold); color: var(--color-fg-3); }
.ct-step__txt > span { display: block; margin-top: 1px; font-size: 11.5px; color: var(--color-fg-3); }

.ct-step.is-doing .ct-step__dot { background: var(--color-accent); border-color: var(--color-accent); }
.ct-step.is-doing .ct-step__txt > b { color: var(--color-fg); }
.ct-step__spin {
  width: 10px; height: 10px; box-sizing: border-box; display: block;
  border-radius: var(--radius-pill); border: 2px solid rgba(255, 255, 255, 0.5);
  border-top-color: #fff; animation: ct-spin 0.8s linear infinite;
}

.ct-step.is-done .ct-step__dot { background: var(--color-success-bg); border-color: transparent; color: var(--color-success-text); }
.ct-step.is-done .ct-step__line { background: var(--color-success); }
.ct-step.is-done .ct-step__txt > b { color: var(--color-fg-2); }

.ct-extract__busy-foot { display: flex; flex-direction: column; gap: var(--space-2); }
.ct-extract__spin {
  flex: none; width: 15px; height: 15px; box-sizing: border-box;
  border-radius: var(--radius-pill);
  border: 2px solid var(--color-border); border-top-color: var(--color-accent);
  animation: ct-spin 0.8s linear infinite;
}

.ct-extract__spin--btn { width: 12px; height: 12px; border-color: rgba(255, 255, 255, 0.45);
  border-top-color: #fff; display: inline-block; vertical-align: -1px; margin-right: 6px; }
.ct-extract__busy-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ct-extract__busy-t { font-size: 13px; font-weight: 600; color: var(--color-fg); }
.ct-extract__busy-sub { font-size: 12.5px; color: var(--color-fg-2); }

.ct-extract__busy-bar {
  flex: 1 0 100%; height: 3px; border-radius: var(--radius-pill);
  background: var(--color-border-soft); overflow: hidden; position: relative; display: block;
}
.ct-extract__busy-bar > i {
  position: absolute; top: 0; bottom: 0; width: 38%;
  border-radius: var(--radius-pill); background: var(--color-accent); display: block;
  animation: ct-busy-slide 1.15s var(--motion-ease-standard) infinite;
}
@keyframes ct-spin { to { transform: rotate(360deg); } }
@keyframes ct-busy-slide { 0% { transform: translateX(-100%); } 100% { transform: translateX(263%); } }

.ct-extract.is-busy .ct-extract__pick,
.ct-extract.is-busy .ct-extract__row { opacity: 0.5; pointer-events: none; }

.ct-extract__skel { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-1) 0; }

@media (max-width: 768px) {
  .ct-extract__pick { flex-direction: column; align-items: stretch; }
  .ct-extract__or { text-align: center; }
  .ct-extract__drop, .ct-extract__link { flex: 1 1 auto; width: 100%; }
}

.ct-extract__hint { margin-top: var(--space-2); font-size: 12.5px; line-height: 1.65; color: var(--color-fg-3); }
.ct-extract__result { margin-top: var(--space-3); border-top: 1px solid var(--color-border-soft); padding-top: var(--space-3); }

.ct-res__hd { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.ct-res__tag { font-size: 11px; padding: 1px 8px; border-radius: var(--radius-pill); }
.ct-res__tag--ai { background: var(--color-success-bg); color: var(--color-success-text); }
.ct-res__tag--rule { background: var(--color-warning-bg); color: var(--color-warning-text); }
.ct-res__meta { font-size: 11.5px; color: var(--color-fg-3); }

.ct-res__timing { margin-left: auto; font-size: 11.5px; color: var(--color-fg-3); }

.ct-res__src { margin-bottom: var(--space-2); padding: var(--space-2) var(--space-3);
  background: var(--color-accent-bg); border-radius: var(--radius-md);
  font-size: 12.5px; line-height: 1.6; color: var(--color-fg-2); }
.ct-res__sum { font-size: 13px; line-height: 1.7; color: var(--color-fg); background: var(--color-surface); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); margin-bottom: var(--space-3); }

.ct-res__block { border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); margin-bottom: var(--space-3); font-size: 12.5px; }
.ct-res__block ul { margin: 0; padding-left: 16px; }
.ct-res__block li { margin: 3px 0; line-height: 1.6; }
.ct-res__block-hd { display: flex; align-items: center; gap: 5px; font-weight: 500; margin-bottom: 4px; }
.ct-res__block--dev { background: var(--color-warning-bg); color: var(--color-warning-text); }
.ct-res__block--warn { background: var(--color-info-bg); color: var(--color-info); }

.ct-res__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-2); margin-bottom: var(--space-3); }
.ct-res__item { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); min-width: 0; }
.ct-res__item--full { grid-column: 1 / -1; }
.ct-res__label { font-size: 11.5px; color: var(--color-fg-3); margin-bottom: 3px; }
.ct-res__val { font-size: 13px; line-height: 1.65; color: var(--color-fg); word-break: break-word; }
.ct-res__ev { margin-top: 5px; font-size: 11.5px; line-height: 1.5; color: var(--color-fg-3); border-left: 2px solid var(--color-border-soft); padding-left: 8px; }
.ct-res__more { font-size: 12px; color: var(--color-fg-3); margin-bottom: var(--space-3); }
.ct-res__actions { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.ct-res__actions-hint { font-size: 12px; color: var(--color-fg-3); }

.ct-md__blk + .ct-md__blk { margin-top: var(--space-3); padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft); }
.ct-md__h { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold);
  color: var(--color-fg); margin-bottom: var(--space-2); }
.ct-md__p { margin: 0; font-size: var(--font-size-sm); line-height: 1.8; color: var(--color-fg-2); }
.ct-md__p + .ct-md__ul { margin-top: var(--space-1); }
.ct-md__ul { margin: 0; padding: 0; list-style: none; }
.ct-md__ul > li { position: relative; padding-left: var(--space-4);
  font-size: var(--font-size-sm); line-height: 1.8; color: var(--color-fg-2); }
.ct-md__ul > li + li { margin-top: 3px; }
.ct-md__ul > li::before { content: ''; position: absolute; left: 5px; top: 10px;
  width: 4px; height: 4px; border-radius: var(--radius-pill); background: var(--color-gray-400); }

.ct-md__n, .ct-md__b { font-weight: var(--font-weight-semibold); color: var(--color-fg); }

.ct-md__n--risk { color: var(--color-danger); }

.ct-md__blk--sum { background: var(--color-accent-bg); border-left: 3px solid var(--color-accent);
  border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); }
.ct-md__blk--sum .ct-md__h { font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
  color: var(--color-accent-text); letter-spacing: .5px; margin-bottom: var(--space-1); }
.ct-md__blk--sum .ct-md__p { font-size: var(--font-size-lg); font-weight: var(--font-weight-medium);
  line-height: 1.7; color: var(--color-fg); }

.ct-md__blk--risk .ct-md__h { color: var(--color-warning-text); }
.ct-md__blk--risk .ct-md__ul > li::before { background: var(--color-warning); }

.ct-md__blk--money .ct-md__h { color: var(--color-accent-text); }
.ct-md__blk--money .ct-md__ul > li::before { background: var(--color-accent); }

.ct-md__blk--note { background: var(--color-info-bg); border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3); }
.ct-md__blk--note .ct-md__h, .ct-md__blk--note .ct-md__p { color: var(--color-info); }

.ct-md__blk--warn { background: var(--color-warning-bg); border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3); }
.ct-md__blk--warn .ct-md__h, .ct-md__blk--warn .ct-md__p { color: var(--color-warning-text); }

.ct-md__blk--minor .ct-md__h { color: var(--color-fg-3); font-weight: var(--font-weight-medium); }
.ct-md__blk--minor .ct-md__p { color: var(--color-fg-3); }
.ct-remark__empty { font-size: var(--font-size-sm); color: var(--color-fg-3); }

.ct-detail__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-2); margin-bottom: var(--space-4); }
.ct-detail__item { background: var(--color-surface-2); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); }
.ct-detail__label { font-size: 11.5px; color: var(--color-fg-3); margin-bottom: 3px; }
.ct-detail__val { font-size: 13px; line-height: 1.6; color: var(--color-fg); word-break: break-word; }
.ct-detail__section { margin-bottom: var(--space-4); }
.ct-detail__section-hd { font-size: 13px; font-weight: 500; color: var(--color-fg-2); margin-bottom: var(--space-3);
  padding-bottom: 6px; border-bottom: 1px solid var(--color-border-soft); }
.ct-detail__link { font-size: 13px; }

.combo-wrap { position: relative; }
.combo-wrap .input { padding-right: 30px; }
.combo-btn {
  position: absolute; right: 1px; top: 1px; bottom: 1px; width: 28px;
  display: flex; align-items: center; justify-content: center;
  border: 0; background: transparent; cursor: pointer;
  color: var(--color-muted); border-radius: 0 var(--radius-seg) var(--radius-seg) 0;
}
.combo-btn:hover { color: var(--color-fg-2); background: var(--color-accent-bg); }
.combo-list {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 60;
  max-height: 216px; overflow: auto;
  background: var(--color-content-bg);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, .12);
  padding: 4px;
}
.combo-item {
  padding: 7px 10px; border-radius: var(--radius-seg); cursor: pointer;
  font-size: var(--font-size-sm); color: var(--color-fg);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.combo-item:hover { background: var(--color-accent-bg); }
.combo-item.is-on { background: var(--color-accent-bg); color: var(--color-accent); font-weight: 600; }
.combo-empty { padding: 10px; font-size: var(--font-size-xs); color: var(--color-muted); }

.fab-edit {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 60;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 44px;
  padding: 0 20px;
  border: none;
  border-radius: var(--radius-pill);

  background: var(--color-accent);
  color: var(--color-accent-on);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);

  transition: transform var(--motion-fast) var(--motion-ease-standard),
              box-shadow var(--motion-fast) var(--motion-ease-standard),
              filter var(--motion-fast) var(--motion-ease-standard);
}
.fab-edit:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
}
.fab-edit:active { transform: translateY(0); }
.fab-edit svg { width: 16px; height: 16px; }

@media (max-width: 720px) {
  .fab-edit { right: 16px; bottom: 16px; padding: 0 14px; height: 40px; }
  .fab-edit .fab-edit__text { display: none; }
}

.table-wrap {
  overflow-x: auto;
}

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-sm);
}

.table-empty {
  padding: var(--space-8) var(--space-4);
  text-align: center;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  line-height: var(--font-line-height-body);
}
.table td.table-empty {
  padding: var(--space-8) var(--space-4);
  text-align: center;
  color: var(--color-muted);
}

.table:not(:where(td .table)) > thead > tr > th:first-child,
.table:not(:where(td .table)) > tbody > tr > td:first-child {
  padding-left: var(--space-5);
}
.table:not(:where(td .table)) > thead > tr > th:last-child,
.table:not(:where(td .table)) > tbody > tr > td:last-child {
  padding-right: var(--space-5);
}

.table thead th {
  background: var(--table-header-bg);
  color: var(--table-header-fg);

  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-sm);
  letter-spacing: 0.01em;

  text-align: center;
  height: 44px;
  padding: 0 var(--space-3);

  border-bottom: 1px solid var(--table-header-line);
  white-space: nowrap;
}

.table thead th.is-num {

  text-align: right;
}

.table thead th.sortable {
  cursor: pointer;
  user-select: none;
}
.table thead th.sortable:hover {
  color: var(--color-accent-text);
}
.table thead th.sortable:hover .th-sort-ic {
  color: var(--color-accent-text);
}
.table thead th.is-sorted {
  color: var(--color-accent-text);
}
.table thead th .th-sort-ic {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  margin-left: 4px;
  color: var(--color-muted);
  line-height: 0;
}
.table thead th .th-sort-ic svg {
  display: block;
}
.table thead th .th-sort-ic svg + svg {
  margin-top: -4px;
}
.table thead th .th-sort-ic--on {
  color: var(--color-accent-text);
}

.table tbody td {
  padding: var(--space-3);
  border-bottom: 1px solid var(--table-divider);
  color: var(--color-fg);
  vertical-align: middle;

  height: 56px;
}

.table tbody tr:last-child td {
  border-bottom: none;
}

.table tbody tr {
  transition: none;
}

.table tbody tr:hover {
  background: var(--table-row-hover);
}

.table .is-num {
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  font-weight: var(--font-weight-medium);
}

.table tbody td.is-num,
.table tfoot td.is-num,
.table--sub tbody td.is-num,
.table--sub tfoot td.is-num {
  text-align: right;
}

.table:not(:where(td .table)) > thead > tr > th,
.table:not(:where(td .table)) > tbody > tr > td,
.table:not(:where(td .table)) > tfoot > tr > td {
  text-align: center;
}

.table .col-align-left,
.table--sub .col-align-left {
  text-align: left;
}

.table tbody td.num,
.table tfoot td.num,
.table--sub tbody td.num,
.table--sub tfoot td.num {
  text-align: right;
}

.table tbody td.num-pos,
.table--sub tbody td.num-pos,
.num-pos { color: var(--color-danger); }
.table tbody td.num-neg,
.table--sub tbody td.num-neg,
.num-neg { color: var(--color-success); }

.table tbody td.num-price,
.table tfoot td.num-price,
.table--sub tbody td.num-price,
.table--sub tfoot td.num-price {
  color: var(--color-price);
  font-weight: var(--font-weight-semibold);
}

.cell-sub {
  display: block;
  margin-top: 2px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.cell-line { display: block; line-height: 1.35; white-space: nowrap; }

.cell-hint { font-size: var(--font-size-xs); color: var(--color-muted); }

.cell-line.cell-line--wrap { white-space: normal; }

.table td.cell-sub,
.table--sub td.cell-sub {
  display: table-cell;
}

.cell-main {
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.cell-person {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.cell-person__body {
  flex: 1;
  min-width: 0;
}
.cell-person__line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.cell-person__line .cm-pitem__roles {
  margin-top: 0;
}

.cell-person__sub {
  margin-top: 2px;
  font-size: var(--font-size-xs);
  line-height: 1.3;
  color: var(--color-fg-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cell-person--full .cell-person__name {
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}

.cell-person__avatar {
  width: 28px;
  height: 28px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  flex-shrink: 0;
  overflow: hidden;
}

.cell-person__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cell-person__meta {
  min-width: 0;
}

.cell-person__name {
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cell-person__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 3px;
}

.cell-person__sub {
  margin-top: 2px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cell-person-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  min-width: 0;
}
.cell-person-row__name {
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  white-space: nowrap;
}
.cell-person-row__bd {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
}

.toolbar--join-target.card--has-tabs { padding-top: 28px; }

.table-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-6);
  margin: 0;
  padding: 0 var(--space-5);
  border: 0;
  border-bottom: 1px solid var(--color-border-soft);
  border-radius: 0;
  background: transparent;

  position: relative;

  overflow: visible;
}

.table-tabs > .table-toolbar__right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex: none;
}
.table-tabs > .table-toolbar__right .btn,
.table-tabs > .table-toolbar__right .select {

  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
  font-size: var(--font-size-sm);
}
.table-tabs > .table-toolbar__right .table-toolbar__total {
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  white-space: nowrap;
}
.table-tabs .pill-filter__item,
.table-tabs .seg__btn {
  position: relative;
  height: 44px;
  padding: 0 2px;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--color-muted);

  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
  transition: color var(--motion-fast) var(--motion-ease-standard);
}
.table-tabs .pill-filter__item:hover,
.table-tabs .seg__btn:hover { color: var(--color-accent-text); }

.table-tabs:not(.table-tabs--in-header) {
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.table-tabs:not(.table-tabs--in-header) .pill-filter__item,
.table-tabs:not(.table-tabs--in-header) .seg__btn {
  height: 34px;
  padding: 0 16px;
  border-radius: var(--radius-seg);
  font-size: var(--font-size-sm);
}

.table-tabs > .tabs__ink { border-radius: var(--radius-seg); }

.table-tabs > .tabs__ink {
  box-shadow: 0 1px 2px rgba(0, 100, 224, 0.22);
}

.table-tabs .pill-filter__item.is-active,
.table-tabs .seg__btn.is-active {
  color: var(--color-accent-on);
  font-weight: var(--font-weight-semibold);

  transition: color 0s linear var(--motion-tab-slide);
}

.table-tabs:not(:has(> .tabs__ink)) .pill-filter__item.is-active,
.table-tabs:not(:has(> .tabs__ink)) .seg__btn.is-active {
  background: var(--color-accent);
  border-radius: var(--radius-seg);

  background-image: var(--gradient-brand);

  box-shadow: var(--shadow-pill-active);
}

.table-tabs:has(> .tabs__ink) .pill-filter__item.is-active,
.table-tabs:has(> .tabs__ink) .seg__btn.is-active {
  box-shadow: none;
}

.table-tabs .pill-filter__item.is-active::after,
.table-tabs .seg__btn.is-active::after {
  display: none;
}

.toolbar--has-page-tabs > .table-tabs {
  flex-basis: 100%;
  padding: 0;

  margin-bottom: var(--space-2);
}

.page-header--has-tabs {
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}
.page-header--has-tabs > div:first-child {
  flex-shrink: 0;
}

.table-tabs--in-header {
  flex: 1 1 auto;
  min-width: 0;

  padding: 3px;

  background: var(--tab-tray-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  border-bottom: 1px solid var(--color-border);
  gap: var(--space-4);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}
.table-tabs--in-header::-webkit-scrollbar { display: none; }

.table-tabs[data-lifted]:not(.table-tabs--in-header) {
  margin-bottom: var(--space-3);
}

.table-tabs[data-lifted]:first-child { margin-top: 0; }

.page-header--has-tabs > div:first-child:empty,
.page-header--has-tabs > div:first-child:has(.page-title) { display: none; }

.table-tabs--in-header {
  flex: none;
  gap: var(--space-1);

  padding: 3px;

  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);

  background: var(--tab-tray-bg);
}
.table-tabs--in-header .pill-filter__item,
.table-tabs--in-header .seg__btn {
  height: 34px;
  padding: 0 16px;
  border-radius: var(--radius-seg);
  font-size: var(--font-size-sm);
  flex: none;
  white-space: nowrap;
}

@media (min-width: 769px) {

  .table-tabs--in-header {

    padding: 3px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);

    background: var(--tab-tray-bg);
  }
  .table-tabs--in-header .pill-filter__item,
  .table-tabs--in-header .seg__btn {

    height: 34px;
  }

  .table-tabs--in-header > .pill-filter__item:first-child,
  .table-tabs--in-header > .seg__btn:first-child {
    border-top-left-radius: 9px;
    border-bottom-left-radius: 9px;
  }
  .table-tabs--in-header > .pill-filter__item:last-child,
  .table-tabs--in-header > .seg__btn:last-child {
    border-top-right-radius: 9px;
    border-bottom-right-radius: 9px;
  }
}

.table-tabs--in-header .pill-filter__item,
.table-tabs--in-header .seg__btn { position: relative; }

.table-tabs--in-header .pill-filter__item.is-active,
.table-tabs--in-header .seg__btn.is-active {
  color: var(--color-accent-on);
  font-weight: var(--font-weight-medium);

  transition: color 0s linear var(--motion-tab-slide);
}
.table-tabs--in-header:not(:has(> .tabs__ink)) .pill-filter__item.is-active,
.table-tabs--in-header:not(:has(> .tabs__ink)) .seg__btn.is-active {
  background: var(--color-accent);
  background-image: var(--gradient-brand);

  border-radius: var(--radius-md);

  box-shadow: var(--shadow-pill-active);
}

.table-tabs--in-header .pill-filter__item.is-active::after,
.table-tabs--in-header .seg__btn.is-active::after {
  display: none;
}

.toolbar--list .select,
.toolbar--list .input,
.toolbar--list .input--search,
.toolbar--list .input--search > .input,
.toolbar--list .mp__trigger,
.toolbar--list .btn {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
}

.toolbar .input,
.toolbar .select,
.toolbar .input--search > .input,
.toolbar .mp__trigger,

.toolbar .dtp-trigger,

.toolbar .fp__box,
.toolbar .btn:not(.btn--lg) {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
}

.toolbar .icon-btn {
  width: var(--control-height-sm);
  height: var(--control-height-sm);
}

.toolbar > .input,
.toolbar > .select {
  padding-left: var(--space-3);
}

.table td .icon-btn,
.table td .btn {
  flex: none;
}

.table:not(:where(td .table)) > tbody > tr > td:has(> .toolbar) {
  padding-left: var(--space-1);
}

.table td > .toolbar > .btn + .btn {
  margin-left: 6px;
}

.table td .btn--primary,
.table td .btn--ghost {
  background: var(--button-soft-bg);
  background-image: none;
  color: var(--button-soft-fg);
  border-color: transparent;
  font-weight: var(--font-weight-semibold);
}
.table td .btn--primary:hover:not(:disabled),
.table td .btn--ghost:hover:not(:disabled) {
  background: var(--button-soft-bg-hover);
  color: var(--button-soft-fg);
}

.table td .btn--ghost[data-del] {
  background: transparent;
  color: var(--color-danger);
}
.table td .btn--ghost[data-del]:hover:not(:disabled) {
  background: var(--color-danger-bg);
  color: var(--color-danger);
}

.table td .icon-btn[data-log],
.table td .icon-btn[data-edit],
.table td .icon-btn[data-edit-live],
.table td .icon-btn[data-ops],
.table td .icon-btn[data-allocate] {
  color: var(--color-muted);
}
.table td .icon-btn[data-log]:hover,
.table td .icon-btn[data-edit]:hover,
.table td .icon-btn[data-edit-live]:hover,
.table td .icon-btn[data-ops]:hover,
.table td .icon-btn[data-allocate]:hover {
  color: var(--color-accent-text);
  background: var(--color-primary-100);
}

.table td .icon-btn[data-lock],
.table td .icon-btn[data-unlock],
.table td .icon-btn[data-confirm],
.table td .icon-btn[data-check],
.table td .icon-btn[data-finish],
.table td .icon-btn[data-void],
.table td .icon-btn[data-copy] {
  color: var(--color-accent-text);
}
.table td .icon-btn[data-lock]:hover,
.table td .icon-btn[data-unlock]:hover,
.table td .icon-btn[data-confirm]:hover,
.table td .icon-btn[data-check]:hover,
.table td .icon-btn[data-finish]:hover,
.table td .icon-btn[data-void]:hover,
.table td .icon-btn[data-copy]:hover {
  color: var(--color-accent-hover);
  background: var(--color-primary-100);
}

.table td .icon-btn.pc-del,
.table td .icon-btn.pc-rec-del {
  color: var(--color-danger);
}
.table td .icon-btn.pc-del:hover,
.table td .icon-btn.pc-rec-del:hover {
  color: var(--color-danger);
  background: var(--color-danger-bg);
}

.table td .icon-btn > svg,
.table td .btn > svg {
  width: 16px;
  height: 16px;
}

#dt-body .st-drill,
#dt-body .hs-drill,
#dt-body .co-expand {
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-top: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  padding: var(--space-4) var(--space-5);
  position: static;
}

#dt-body .table-wrap,
#dt-body .hs-drill .table--sub {
  background: transparent;
}

#dt-body .st-drill.st-drill--page {
  background: transparent;
  border: 0;
  border-top: 0;
  border-radius: 0;
  padding: 0;
  width: auto;
  max-width: none;
  position: static;
}

#dt-body .table--sub {
  font-size: var(--font-size-sm);
}

#dt-body .table--sub > thead > tr > th {
  font-size: var(--font-size-xs);
}

#dt-body .table--sub > tbody > tr > td {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
  font-size: var(--font-size-sm);
}

.toolbar--plain {
  margin: 0 0 var(--space-3);
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.toolbar--plain .select,
.toolbar--plain .input,
.toolbar--plain .mp__trigger,
.toolbar--plain > .input--search > .input,
.toolbar--plain .btn {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
}

.an-flex-between select.input,
.an-flex-between .input {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
}

.so-detail-tbl tbody td:not(:nth-child(4)) {
  white-space: nowrap;
}

.so-detail-tbl tbody td:nth-child(4) {
  max-width: 320px;
  overflow: hidden;
}

.table--sub {
  font-size: var(--font-size-xs);
  table-layout: fixed;
}

.table--sub thead th {
  position: static;
}

.table .col-sep,
.table--sub .col-sep {
  box-shadow: inset 1px 0 0 var(--color-border-soft);
}

.so-table--fixed {
  table-layout: fixed;
}

.table tbody td.so-expand-cell {
  padding: 0;
}

.table--sub tbody tr:hover {
  background: transparent;
}
.table--sub tbody td {
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
}

.table--sub .is-num {
  font-weight: normal;
}

.table--sub .sub-influencer {
  min-width: 0;
  overflow: hidden;
}

.table--sub tbody tr.so-unmatched {
  background: var(--color-gray-50);
}
.table--sub tbody tr.so-unmatched:hover {
  background: var(--color-gray-50);
}

.table--sub tbody tr.so-subtotal {
  border-top: 1px solid var(--table-divider);
  background: var(--color-surface);
  font-weight: var(--font-weight-medium);
}
.table--sub tbody tr.so-subtotal td {
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.table tbody tr.so-subtotal {
  background: var(--color-surface-2);
}

.skeleton {
  background: linear-gradient(
    90deg,
    var(--color-surface-2) 25%,
    var(--color-border-soft) 50%,
    var(--color-surface-2) 75%
  );
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.4s ease infinite;
  border-radius: var(--radius-sm);
}

@keyframes skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.skeleton-table-row {
  display: flex;
  gap: var(--space-4);
  padding: var(--space-3);
  border-bottom: 1px solid var(--table-divider);
  align-items: center;
}

.skeleton-line {
  height: 14px;
  border-radius: var(--radius-sm);
}

.table tbody tr.is-loading-row,
.table--sub tbody tr.is-loading-row {
  cursor: default;
}
.table tbody tr.is-loading-row:hover,
.table--sub tbody tr.is-loading-row:hover {
  background: transparent;
}
.table tbody tr.is-loading-row > td {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
}

.table tbody tr.is-loading-row .skeleton-line {
  margin: 0 auto;
  max-width: 88%;
}

.state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-12) var(--space-6);
  gap: var(--space-3);
}

.state__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-lg);
  background: var(--color-surface-2);
  color: var(--color-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}

.state__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.state__desc {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  max-width: 42ch;
}

.state__hint {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px dashed var(--color-border);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.state__hint-link {
  color: var(--color-accent);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
}
.state__hint-link:hover { text-decoration: underline; }

.kw-scope {
  margin: calc(var(--space-2) * -1) 0 var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  line-height: 1.6;
}
.kw-scope:empty { display: none; }

.toolbar + .kw-scope { margin-top: 0; }
.kw-scope:has(+ .toolbar) { margin-bottom: 0; }
.kw-scope {
  padding: 0 var(--space-5) var(--space-2);
}
.kw-scope b { color: var(--color-accent); font-weight: var(--font-weight-semibold); }
.kw-scope__sep { margin: 0 6px; color: var(--color-fg-3); }
.kw-scope__link { color: var(--color-accent); cursor: pointer; }
.kw-scope__link:hover { text-decoration: underline; }

.table-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding: var(--space-3) var(--space-5);
  border-bottom: 1px solid var(--color-border-soft);
}

.table-toolbar__right {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-left: auto;
}

.table-toolbar__total {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  white-space: nowrap;

  min-width: 100px;
  text-align: right;
}

.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.pagination__info {
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
}

.pagination__controls {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.pagination__page {
  min-width: 28px;
  height: var(--control-height-sm);
  padding: 0 6px;
  border: none;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: background var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard);
}
.pagination__page:hover {
  background: var(--color-surface-2);
}
.pagination__page.is-current {
  background: var(--color-accent);
  color: var(--color-accent-on);
  font-weight: var(--font-weight-medium);
}

.pagination__nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: var(--control-height-sm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg-2);
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    border-color var(--motion-fast) var(--motion-ease-standard);
}
.pagination__nav:hover:not(:disabled) {
  color: var(--color-accent-text);
  border-color: var(--color-accent);
}
.pagination__nav:disabled {
  color: var(--color-disabled);
  cursor: not-allowed;
}

.pagination__ellipsis {
  min-width: 20px;
  text-align: center;
  color: var(--color-meta);
}

.pagination__size {
  width: auto;
  height: var(--control-height-sm);
  padding: 0 26px 0 10px;
  margin-right: var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  border-radius: var(--radius-md);
  background-position: right 8px center;
}

.pagination__jump {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  white-space: nowrap;
}

.pagination__input {
  width: 48px;
  height: var(--control-height-sm);
  padding: 0 6px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  font-family: inherit;
  text-align: center;
  outline: none;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.pagination__input:focus {
  border-color: var(--color-accent);
}
.pagination__input::-webkit-outer-spin-button,
.pagination__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

@media (max-width: 768px) {
  .table-wrap {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }
  .pagination {
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
  }
  .pagination__info {
    order: 2;
    flex-basis: 100%;
    font-size: var(--font-size-xs);
    color: var(--color-meta);
  }
  .pagination__controls {
    flex-wrap: wrap;
    row-gap: var(--space-2);
  }
}

.cell-link {
  color: var(--color-primary-500);
  text-decoration: none;
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard);
}
.cell-link:hover {
  color: var(--color-primary-600);
  text-decoration: underline;
}
.cell-link:active { color: var(--color-primary-700); }

.table--dense thead th,
.table--dense tbody td {
  padding-left: 4px;
  padding-right: 4px;
}

.table--dense tbody td .toolbar { gap: 2px; }

.table:not(.table--dense):not(:where(td .table)) > tfoot > tr > td {
  padding: var(--space-3);
}
.table:not(.table--dense):not(:where(td .table)) > tfoot > tr > td:first-child {
  padding-left: var(--space-5);
}
.table:not(.table--dense):not(:where(td .table)) > tfoot > tr > td:last-child {
  padding-right: var(--space-5);
}

.table--dense:not(:where(td .table)) > tfoot > tr > td {
  padding: var(--space-3) 4px;
}

.table tfoot tr.is-sum > td,
.table tbody tr.is-sum > td {

  background: var(--color-info-bg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  border-top: 1px solid var(--color-primary-100);
}

.table tfoot tr.is-sum > td,
.table tbody tr.is-sum > td {
  white-space: nowrap;
}
.table tfoot tr.is-sum > td.num,
.table tbody tr.is-sum > td.num {
  font-variant-numeric: tabular-nums;
}

.table tfoot tr.is-sum > td.num-pos,
.table tbody tr.is-sum > td.num-pos { color: var(--color-danger); }
.table tfoot tr.is-sum > td.num-neg,
.table tbody tr.is-sum > td.num-neg { color: var(--color-success); }

.table tbody tr.is-custom > td {
  background: var(--color-head-on-bg);
}

.card:has(.table),
.module-card:has(.table),
.table-card { overflow: hidden; }

.table > thead > tr > th:first-child input[type="checkbox"],
.table > tbody > tr > td:first-child input[type="checkbox"] {
  visibility: hidden;
}
.table:hover > thead > tr > th:first-child input[type="checkbox"],
.table:hover > tbody > tr > td:first-child input[type="checkbox"],
.table > tbody > tr > td:first-child input[type="checkbox"]:checked,
.table > tbody > tr > td:first-child input[type="checkbox"]:focus-visible,
.table > thead > tr > th:first-child input[type="checkbox"]:focus-visible {
  visibility: visible;
}
@media (hover: none) {
  .table > thead > tr > th:first-child input[type="checkbox"],
  .table > tbody > tr > td:first-child input[type="checkbox"] {
    visibility: visible;
  }
}

.table td.col-pick {
  padding-top: 0;
  padding-bottom: 0;
}
.table td.col-pick > .row-pick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;

  margin: -6px -7px;
  vertical-align: middle;
  cursor: pointer;
  border-radius: var(--radius-sm);
  transition: background var(--motion-fast) var(--motion-ease-standard);
}
.table td.col-pick > .row-pick:hover {
  background: var(--color-surface-2);
}

:root {

  --cc-t1: #0064E0; --cc-t2: #2F82E8; --cc-t3: #5E9BF8;
  --cc-t4: #8CB8FF; --cc-t5: #B0CDFC; --cc-t6: #D3E3FD;

  --cc-h1: #E37318; --cc-h2: #F09B45; --cc-h3: #F8C078; --cc-h4: #FBD9BC;

  --cc-p1: #2BA471; --cc-p2: #57BE8C; --cc-p3: #8AD4AE; --cc-p4: #BFE8D3;

  --cc-r1: #0064E0; --cc-r2: #9FB6CE;

  --cw-row-h: 26px;
  --cw-gap: 6px;
  --cw-block-gap: 14px;
}

.cc-scope {

}

.cc-flex { display: flex; gap: var(--space-6); align-items: flex-start; flex-wrap: wrap; }
.cc-donut-box { position: relative; flex: none; }
.cc-donut-box svg { display: block; }

.cc-center {
  position: absolute; left: 0; right: 0; text-align: center; pointer-events: none;
}
.cc-center__t { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.5; }
.cc-center__v {
  font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold);
  color: var(--color-fg); letter-spacing: -0.3px; font-variant-numeric: tabular-nums;
}
.cc-center__s { font-size: var(--font-size-xs); color: var(--color-meta); margin-top: 2px; }

.cc-list { flex: 1 1 300px; min-width: 280px; max-width: 720px; }

.cc-li {
  display: flex; align-items: center; gap: var(--space-2);
  padding: 5px var(--space-2); border-radius: var(--radius-sm);
  font-size: var(--font-size-sm); border-left: 2px solid transparent;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.cc-li--pick { cursor: pointer; }
.cc-li--pick:hover { background: var(--color-surface-2); border-left-color: var(--color-border); }
.cc-li.is-on { background: var(--color-primary-50); border-left-color: var(--color-primary-500); }
.cc-li.is-dim { opacity: 0.4; }

.cc-dot { flex: none; width: 9px; height: 9px; border-radius: 2px; }
.cc-li__n { flex: 1 1 auto; color: var(--color-fg); min-width: 0; }
.cc-li__n em {
  font-style: normal; font-size: var(--font-size-xs); color: var(--color-meta);
  margin-left: 5px; white-space: nowrap;
}
.cc-li__v {
  flex: none; width: 84px; text-align: right; color: var(--color-fg);
  font-variant-numeric: tabular-nums;
}
.cc-li__p {
  flex: none; width: 52px; text-align: right; color: var(--color-muted);
  font-variant-numeric: tabular-nums;
}

.cc-li--hd {
  color: var(--color-muted); font-size: var(--font-size-xs); cursor: default;
  border-bottom: 1px solid var(--color-border); border-radius: 0;
  border-left-color: transparent; padding-bottom: 6px;
}
.cc-li--hd:hover { background: none; border-left-color: transparent; }

.cc-grp {
  font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
  color: var(--color-muted); padding: 9px var(--space-2) 3px;
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2);
}
.cc-grp b { color: var(--color-fg-2); font-weight: var(--font-weight-medium); }

.cc-bar { flex: none; width: 56px; height: 6px; border-radius: 3px; background: var(--color-border-soft); overflow: hidden; }
.cc-bar > i { display: block; height: 100%; border-radius: 3px; }

.cc-seg { transition: opacity var(--motion-fast) var(--motion-ease-standard); cursor: pointer; }
.cc-seg:hover { opacity: 0.78; }
.cc-seg.is-dim { opacity: 0.22; }
.cc-seg.is-hl { opacity: 1; }

.cc-panel {
  margin-top: var(--space-4); padding: var(--space-4);
  background: var(--color-surface-2); border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.cc-panel__hd {
  display: flex; align-items: center; gap: var(--space-2);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-medium);
  color: var(--color-fg); margin-bottom: var(--space-2); flex-wrap: wrap;
}
.cc-panel__hd .cc-sub { font-weight: normal; font-size: var(--font-size-xs); color: var(--color-meta); }
.cc-panel__hd .cc-spacer { margin-left: auto; }

.cc-more {
  border: 1px solid var(--color-border); background: var(--color-surface);
  color: var(--color-accent-text); border-radius: var(--radius-sm);
  padding: 3px 10px; font-size: var(--font-size-xs); cursor: pointer;
  display: inline-flex; align-items: center; gap: 4px;
}
.cc-more:hover { border-color: var(--color-accent); }

.cc-tbl { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm); }
.cc-tbl th {
  text-align: left; color: var(--color-muted); font-weight: var(--font-weight-medium);
  font-size: var(--font-size-xs); padding: 6px var(--space-2);
  border-bottom: 1px solid var(--color-border); white-space: nowrap;
}
.cc-tbl td {
  padding: 7px var(--space-2); border-bottom: 1px solid var(--color-border-soft);
  color: var(--color-fg); vertical-align: middle;
}
.cc-tbl tr:last-child td { border-bottom: none; }
.cc-tbl .cc-num { text-align: right; font-variant-numeric: tabular-nums; }
.cc-tbl tfoot td { font-weight: var(--font-weight-medium); border-top: 1px solid var(--color-border); }
.cc-tbl .cc-hint { color: var(--color-meta); font-size: var(--font-size-xs); }

.cc-residual td { background: var(--color-warning-bg); }
.cc-residual .cc-flag { color: var(--color-warning-text); font-weight: var(--font-weight-medium); }

.cc-sub td { background: var(--color-surface); }
.cc-sub-name {
  display: inline-block; padding-left: var(--space-4); position: relative;
  color: var(--color-fg-2); font-weight: var(--font-weight-medium);
}
.cc-sub-name::before {
  content: ''; position: absolute; left: 4px; top: 0.62em;
  width: 6px; height: 6px; border-left: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
.cc-rule { font-variant-numeric: tabular-nums; padding-left: var(--space-4); }
.cc-rule b { color: var(--color-fg-2); }

.cc-empty { font-size: var(--font-size-sm); color: var(--color-muted); line-height: 1.8; }
.cc-note {
  font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.8;
  margin-top: var(--space-3); padding-top: var(--space-2);
  border-top: 1px dashed var(--color-border);
}
.cc-note b { color: var(--color-fg-2); }

.cc-sec {
  display: flex; align-items: baseline; gap: var(--space-2);
  margin: var(--space-5) 0 var(--space-2);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.cc-sec__n { font-size: var(--font-size-xs); font-weight: 400; color: var(--color-meta); }

.cc-panel__t {
  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold);
  color: var(--color-fg); letter-spacing: -0.1px;
}

.cc-panel__sub {
  font-size: var(--font-size-xs); color: var(--color-meta);
  margin-bottom: var(--space-3);
}

.cc-tbl .cc-idx {
  display: inline-block; width: 16px; margin-right: 6px;
  color: var(--color-meta); font-size: var(--font-size-xs);
  font-variant-numeric: tabular-nums; text-align: right;
  background: none; border: 0; border-radius: 0; height: auto;
}

.cc-tbl tbody tr:hover td { background: var(--color-primary-50); }

.cc-tbl tbody tr.cc-residual:hover td { background: var(--color-warning-bg); }

.cc-note--foot { display: flex; gap: var(--space-2); align-items: flex-start; border-top-style: solid; }
.cc-note__k {
  flex: none; color: var(--color-fg-2); font-weight: var(--font-weight-medium);
  padding: 0 6px; border-radius: 3px; background: var(--color-surface);
  border: 1px solid var(--color-border-soft); line-height: 1.6;
}
.cc-note__v { min-width: 0; }

.cc-note--warn {
  color: var(--color-warning-text); border-top-color: var(--color-warning);
  display: flex; align-items: baseline; gap: 5px;
}

.cc-mini-legend { margin-top: var(--space-3); }

@media (max-width: 900px) {
  .cc-flex { gap: var(--space-4); }
  .cc-list { flex: 1 1 100%; min-width: 0; }
}

.cb-scope { }

.cb-flex { display: flex; gap: var(--space-6); align-items: flex-start; flex-wrap: wrap; }
.cb-fl { display: flex; gap: var(--space-6); align-items: flex-start; }

.cb-fl--main { flex: 0 0 auto; }

.cb-fl--main .cb-lg { flex: none; width: 420px; max-width: 100%; }

.cb-fl--sub { flex: 1 1 380px; min-width: 380px; }

.cb-fl[hidden] { display: none; }

@media (max-width: 1100px) {
  .cb-fl--main { flex: 1 1 auto; min-width: 0; }
  .cb-fl--main .cb-lg { flex: 1 1 auto; width: auto; min-width: 0; }
}
.cb-ring { position: relative; flex: none; }
.cb-ring__c { position: absolute; left: 0; right: 0; text-align: center; pointer-events: none; }
.cb-ring__t { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.5; }
.cb-ring__v { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); font-variant-numeric: tabular-nums; }
.cb-seg { cursor: pointer; transition: opacity var(--motion-fast) var(--motion-ease-standard); }
.cb-seg:hover { opacity: 0.78; }
.cb-lg { flex: 1 1 240px; min-width: 230px; max-width: 420px; }
.cb-li { display: flex; align-items: center; gap: var(--space-2); padding: 5px var(--space-2);
  border-radius: var(--radius-sm); font-size: var(--font-size-sm); border-left: 2px solid transparent; cursor: pointer; }
.cb-li:hover { background: var(--color-surface-2); border-left-color: var(--color-border); }
.cb-li.is-on { background: var(--color-primary-50); border-left-color: var(--color-primary-500); }
.cb-li--hd { font-size: var(--font-size-xs); color: var(--color-muted); border-bottom: 1px solid var(--color-border);
  border-radius: 0; cursor: default; }
.cb-li--hd:hover { background: none; border-left-color: transparent; }
.cb-dot { flex: none; width: 9px; height: 9px; border-radius: 2px; }
.cb-li__n { flex: 1 1 auto; color: var(--color-fg); min-width: 0; }

.cb-li__n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-li__v { flex: none; width: 78px; text-align: right; color: var(--color-fg); font-variant-numeric: tabular-nums; }
.cb-li__p { flex: none; width: 50px; text-align: right; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.cb-bar { flex: none; width: 44px; height: 6px; border-radius: 3px; background: var(--color-border-soft); overflow: hidden; }
.cb-bar > i { display: block; height: 100%; border-radius: 3px; }

@media (max-width: 900px) {
  .cb-flex { flex-direction: column; gap: var(--space-4); }
  .cb-fl { flex-direction: column; gap: var(--space-4); width: 100%; }
  .cb-fl--main { flex: 1 1 auto; }

  .cb-fl--sub { min-width: 0; flex: 1 1 auto; width: 100%; }

  .cb-fl--main .cb-lg, .cb-fl .cb-lg { flex: none; width: 100%; max-width: 100%; }
  .cb-fl .cb-ring { align-self: center; }
}

@media (max-width: 480px) {
  .cb-li__v { width: 58px; }
  .cb-li__p { width: 40px; }
}
@media (max-width: 1100px) {
  .cb-li .cb-bar { display: none; }
  .cb-li__v { width: 64px; }
  .cb-li__p { width: 44px; }
}
.cb-empty { color: var(--color-meta); font-size: var(--font-size-sm); text-align: center; padding: var(--space-6) 0; }

.cb-filter { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; margin-bottom: var(--space-4); }
.cb-filter__lb { font-size: var(--font-size-xs); color: var(--color-muted); }

.cb-filter select { height: var(--control-height-sm); border: 1px solid var(--color-border); border-radius: var(--radius-md);
  background: var(--color-surface); color: var(--color-fg); font-size: var(--font-size-sm); padding: 0 8px; }
.cb-hint { font-size: var(--font-size-xs); color: var(--color-primary-600); background: var(--color-primary-50);
  padding: 2px 8px; border-radius: var(--radius-sm); }

.cb-canvas { position: relative; height: 400px; margin-bottom: var(--space-2); }

.cb-canvas--cmp { height: 300px; }
.cb-canvas canvas { display: block; }

.cb-grid { --cb-n: 136px; --cb-v: 96px; --cb-x: 92px;
  display: grid; align-items: center; gap: 10px;
  padding: 7px 6px; border-radius: var(--radius-sm); font-size: var(--font-size-xs); }
.cb-grid--n4 { grid-template-columns: var(--cb-n) minmax(80px, 1fr) var(--cb-v) var(--cb-x); }
.cb-grid--n5 { grid-template-columns: var(--cb-n) minmax(80px, 1fr) var(--cb-v) var(--cb-x) var(--cb-x); }

.cb-grid--n6 { grid-template-columns: var(--cb-n) minmax(72px, 1fr) var(--cb-v) var(--cb-v) var(--cb-x) var(--cb-x); }
.cb-grid--hd { color: var(--color-muted); font-size: 11.5px; font-weight: var(--font-weight-medium);
  padding: 4px 6px 7px; border-bottom: 1px solid var(--color-border); }

.cb-grid--ft { font-weight: var(--font-weight-medium); border-top: 1px solid var(--color-border);
  padding-top: 9px; margin-top: 2px; }
.cb-grid--ft:hover { background: none; }
.cb-grid:not(.cb-grid--hd):hover { background: var(--color-surface-2); }
.cb-g-n { color: var(--color-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-g-bar { height: 16px; border-radius: var(--radius-sm); background: var(--color-surface-2); overflow: hidden; }
.cb-g-bar > i { display: block; height: 100%; border-radius: var(--radius-sm); }

.cb-g-bar--multi { display: flex; flex-direction: column; gap: 3px; justify-content: center; height: 24px; }
.cb-g-bar--multi > i { height: 8px; flex: none; box-sizing: border-box; }

.cb-g-bar--multi > i:first-child { height: 5px; margin-top: 1.5px; }
.cb-g-bar--multi > i:first-child { opacity: 0.85; }
.cb-g-v { text-align: right; font-variant-numeric: tabular-nums; font-feature-settings: "tnum", "lnum";
  color: var(--color-fg); white-space: nowrap; }

.cb-g-v--sub { color: var(--color-muted); overflow: hidden; text-overflow: ellipsis; }

.cb-g-em { display: block; font-style: normal; font-size: 11px; line-height: 1.25;
  color: var(--color-muted); font-weight: var(--font-weight-regular); }

.cb-grid--n5.cb-grid--widelast { grid-template-columns: var(--cb-n) minmax(72px, 1fr) var(--cb-v) var(--cb-v) minmax(150px, 1.2fr); }
.cb-grid--hd .cb-g-v { text-align: right; }
@media (max-width: 1100px) {
  .cb-grid { --cb-n: 106px; --cb-v: 86px; --cb-x: 78px; }
  .cb-grid--n5 { grid-template-columns: var(--cb-n) minmax(56px, 1fr) var(--cb-v) var(--cb-x); }
  .cb-grid--n5 > .cb-g-v:last-child { display: none; }

  .cb-grid--n6 { grid-template-columns: var(--cb-n) minmax(48px, 1fr) var(--cb-v) var(--cb-v) var(--cb-x); }
  .cb-grid--n6 > .cb-g-v:last-child { display: none; }

  .cb-grid--n5.cb-grid--widelast { grid-template-columns: var(--cb-n) minmax(56px, 1fr) var(--cb-v) var(--cb-x); }
  .cb-grid--n5.cb-grid--widelast > .cb-g-v:last-child { display: none; }
}

.cb-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--space-3); margin-bottom: var(--space-4); }
.cb-kpi { border: 1px solid var(--color-border); border-radius: var(--radius-md);
  padding: 11px 14px; background: var(--color-surface); }
.cb-kpi__t { font-size: var(--font-size-xs); color: var(--color-muted); margin-bottom: 4px; }
.cb-kpi__v { font-size: 19px; font-weight: var(--font-weight-semibold); color: var(--color-fg);
  font-variant-numeric: tabular-nums; }
.cb-kpi__h { font-size: 11.5px; color: var(--color-meta); margin-top: 3px; }

.cb-focus { font-size: var(--font-size-xs); color: var(--color-fg-2); line-height: 1.7;
  background: var(--color-primary-50); border-left: 3px solid var(--color-primary-500);
  border-radius: var(--radius-sm); padding: 5px 10px; margin-bottom: var(--space-2); }
.cb-focus b { color: var(--color-fg); }
.cb-tbl tr.is-dim,
.cb-mo.is-dim,
.cb-bars__col.is-dim { opacity: .34; }

.cb-grid.is-dim { opacity: .34; }
.cb-grid.is-hl { background: var(--color-primary-50); border-radius: var(--radius-sm); }
.cb-grid.is-hl:hover { background: var(--color-primary-50); }
.cb-tbl td.is-dim, .cb-tbl th.is-dim { opacity: .34; }
.cb-tbl tr.is-hl { background: var(--color-primary-50); }
.cb-tbl td.is-hl, .cb-tbl th.is-hl { background: var(--color-primary-50); color: var(--color-fg); }
.cb-mo.is-hl { background: var(--color-primary-50); border-radius: var(--radius-sm); }

.cb-chart { position: relative; padding-left: 104px; }
.cb-row { display: flex; align-items: center; gap: var(--space-2); padding: 2px 0; font-size: var(--font-size-xs); }
.cb-row__n { position: absolute; left: 0; width: 98px; text-align: right; color: var(--color-fg);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-row__t { flex: 1 1 auto; height: 20px; background: var(--color-surface-2); border-radius: var(--radius-sm); overflow: hidden; }
.cb-row__b { height: 100%; display: flex; }
.cb-row__b > i { display: block; height: 100%; }
.cb-row__v { flex: none; width: 74px; text-align: right; font-variant-numeric: tabular-nums; font-size: var(--font-size-xs); color: var(--color-fg); }
.cb-axis { position: relative; height: 18px; margin-top: 4px; }
.cb-axis span { position: absolute; transform: translateX(-50%); font-size: 10.5px; color: var(--color-muted); white-space: nowrap; }

.cb-chart .cb-grid { position: absolute; top: 0; bottom: 0; border-left: 1px dashed var(--color-border-soft); pointer-events: none; }
.cb-legend { display: flex; gap: var(--space-3); flex-wrap: wrap; font-size: var(--font-size-xs); color: var(--color-muted); margin-bottom: var(--space-2); }
.cb-legend span { display: flex; align-items: center; gap: 5px; }
.cb-legend i { width: 9px; height: 9px; border-radius: 2px; display: block; }

.cb-sub {
  display: flex; flex-wrap: wrap; align-items: baseline;

  column-gap: var(--space-3); row-gap: 2px;
  font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold);
  color: var(--color-fg); line-height: var(--font-line-height-tight);
  margin: var(--space-6) 0 var(--space-3);
}

.cb-split { display: flex; gap: var(--space-6); align-items: flex-start; flex-wrap: wrap; }
.cb-split__chart { flex: 1 1 520px; min-width: 400px; }
.cb-split__table { flex: 1 1 440px; min-width: 360px; }
@media (max-width: 900px) {
  .cb-split { flex-direction: column; gap: var(--space-4); }
  .cb-split__chart, .cb-split__table { flex: 1 1 auto; min-width: 0; width: 100%; }
}

.cb-hb { display: flex; align-items: center; gap: var(--space-2); padding: 3px 0; font-size: var(--font-size-xs); }
.cb-hb__n { flex: none; width: 132px; text-align: right; color: var(--color-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-hb__t { flex: 1 1 auto; height: 18px; background: var(--color-surface-2); border-radius: var(--radius-sm); overflow: hidden; }
.cb-hb__b { height: 100%; display: block; border-radius: var(--radius-sm); }
.cb-hb__v { flex: none; width: 66px; text-align: right; font-variant-numeric: tabular-nums; font-size: var(--font-size-xs); }
.cb-hb__x { flex: none; width: 84px; text-align: right; color: var(--color-muted); font-variant-numeric: tabular-nums; font-size: var(--font-size-xs); }

.cb-bars { display: flex; align-items: flex-end; gap: var(--space-3); height: 180px; padding: 0 var(--space-1); }
.cb-bars__col { flex: 1 1 0; text-align: center; }
.cb-bars__n { font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); margin-bottom: 3px; }
.cb-bars__bar { border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.cb-bars__lb { font-size: 10.5px; color: var(--color-muted); margin-top: 6px; line-height: 1.4; }

.cb-mo { padding: 5px 0; }
.cb-mo__hd { display: flex; gap: var(--space-2); align-items: center; font-size: var(--font-size-xs); margin-bottom: 3px; }
.cb-mo__nm { flex: none; width: 100px; color: var(--color-fg); }
.cb-mo__dl { margin-left: auto; font-weight: var(--font-weight-medium); }
.cb-mo__t { height: 9px; border-radius: 3px; }
.cb-up { color: var(--color-danger); }
.cb-down { color: var(--color-success); }

.cb-tbl { width: 100%; border-collapse: collapse; font-size: var(--font-size-xs); }
.cb-tbl th { text-align: left; color: var(--color-muted); font-weight: var(--font-weight-medium);
  font-size: 11.5px; padding: 6px 8px; border-bottom: 1px solid var(--color-border); white-space: nowrap; }
.cb-tbl th.is-num { text-align: center; }
.cb-tbl td { padding: 6px 8px; border-bottom: 1px solid var(--color-border-soft); color: var(--color-fg); }
.cb-tbl tr:last-child td { border-bottom: none; }
.cb-tbl tfoot td { font-weight: var(--font-weight-medium); border-top: 1px solid var(--color-border); }
.cb-tbl .cb-n { text-align: right; font-variant-numeric: tabular-nums; font-feature-settings: "tnum", "lnum"; }
.cb-tbl .cb-hint { color: var(--color-meta); font-size: 11px; }
.cb-warnrow { background: var(--color-warning-bg); }
.cb-hot { color: var(--color-danger); font-weight: var(--font-weight-semibold); }
.cb-pill { display: inline-block; padding: 1px 7px; border-radius: var(--radius-md); font-size: 10.5px;
  background: var(--color-surface-2); border: 1px solid var(--color-border); color: var(--color-muted); }
.cb-pill--warn { background: var(--color-warning-bg); border-color: transparent; color: var(--color-warning-text); font-weight: var(--font-weight-medium); }
.cb-note { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.8;
  margin-top: var(--space-3); padding-top: var(--space-2); border-top: 1px dashed var(--color-border); }
.cb-note b { color: var(--color-fg-2); }

@media (max-width: 1100px) {
  .cb-split__chart, .cb-split__table { flex: 1 1 100%; min-width: 0; }
  .cb-chart { padding-left: 88px; }
  .cb-row__n { width: 82px; }
}

.cb-li--pick:focus-visible { outline: 2px solid var(--color-primary-500); outline-offset: -1px; }
.cb-li:not(.cb-li--pick) { cursor: default; }

.cb-g-bar--stack { display: flex; flex-direction: row; }
.cb-g-bar--stack > i { flex: none; border-radius: 0; }
.cb-g-bar--stack > i:first-child { border-top-left-radius: var(--radius-sm); border-bottom-left-radius: var(--radius-sm); }
.cb-g-bar--stack > i:last-child { border-top-right-radius: var(--radius-sm); border-bottom-right-radius: var(--radius-sm); }

.cb-canvas--stack { height: 360px; }

.cb-sub__hint { font-weight: var(--font-weight-regular); color: var(--color-meta); font-size: var(--font-size-xs); }

.cb-grp { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  margin: var(--space-3) 0 var(--space-2); padding: 6px var(--space-2);
  background: var(--color-surface-2); border-radius: var(--radius-sm);
  font-size: var(--font-size-xs); color: var(--color-fg); font-weight: var(--font-weight-medium); }
.cb-grp em { font-style: normal; font-weight: var(--font-weight-regular); color: var(--color-meta); }
.cb-grp b { font-variant-numeric: tabular-nums; }

.cb-pjrow { display: grid; grid-template-columns: minmax(120px, 1.4fr) 96px 72px minmax(80px, 1fr);
  align-items: center; gap: 10px; padding: 6px var(--space-2); border-radius: var(--radius-sm);
  font-size: var(--font-size-xs); }
.cb-pjrow:hover { background: var(--color-surface-2); }
.cb-pjrow__n { color: var(--color-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-pjrow__v { text-align: right; font-variant-numeric: tabular-nums; color: var(--color-fg); }
.cb-pjrow__p { text-align: right; font-variant-numeric: tabular-nums; color: var(--color-meta); }
.cb-pjrow__h { color: var(--color-meta); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.cb-pjpeople { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4);
  padding: 2px var(--space-2) var(--space-3); }
.cb-pjpeople > span { display: inline-flex; align-items: center; gap: 5px;
  font-size: var(--font-size-xs); color: var(--color-meta); }
.cb-pjpeople i { width: 7px; height: 7px; border-radius: 2px; background: var(--color-chart-3); flex: none; }
.cb-pjpeople b { color: var(--color-fg); font-variant-numeric: tabular-nums; }
.cb-pjpeople em { font-style: normal; color: var(--color-meta); font-size: 11px; }

@media (max-width: 1100px) {
  .cb-pjrow { grid-template-columns: minmax(96px, 1.2fr) 88px 60px; }
  .cb-pjrow__h { display: none; }
}

.cw-scope {

}

.cw-head {
  display: flex; align-items: flex-end; gap: var(--space-6); flex-wrap: wrap;
  padding-bottom: var(--space-4); border-bottom: 1px solid var(--color-border-soft);
  margin-bottom: var(--space-5);
}
.cw-big {
  font-size: 28px; font-weight: var(--font-weight-semibold);
  letter-spacing: -0.4px; line-height: 1.15; font-variant-numeric: tabular-nums;
}
.cw-big small { font-size: var(--font-size-sm); font-weight: 400; color: var(--color-muted); margin-right: 6px; }
.cw-head__sub { font-size: var(--font-size-sm); color: var(--color-meta); margin-top: 3px; font-variant-numeric: tabular-nums; }
.cw-head__r { margin-left: auto; text-align: right; }
.cw-rate { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); font-variant-numeric: tabular-nums; }

.cw-rate small { font-size: var(--font-size-xs); font-weight: 400; color: var(--color-muted); margin-right: 5px; }
.cw-rate__t { font-size: var(--font-size-xs); color: var(--color-meta); }

.cw-rate__alt { font-size: var(--font-size-xs); color: var(--color-meta); margin-top: 3px; font-variant-numeric: tabular-nums; }

.cw-side { display: flex; gap: var(--space-6); align-items: flex-start; flex-wrap: wrap; }
.cw-main { flex: 1; min-width: 420px; }
.cw-list { width: 300px; flex: none; display: flex; flex-direction: column; gap: var(--cw-gap); }

.cw-wf { display: flex; flex-direction: column; gap: var(--cw-gap); }
.cw-row {
  display: grid; grid-template-columns: 90px 1fr 106px 58px;
  gap: var(--space-3); align-items: center;

  height: var(--cw-row-h);
}
.cw-lbl {
  font-size: var(--font-size-sm); color: var(--color-fg-2); text-align: right;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cw-track { height: 20px; background: var(--color-surface-2); border-radius: var(--radius-sm); overflow: hidden; }
.cw-track > i { display: block; height: 100%; border-radius: var(--radius-sm); }
.cw-val { font-size: var(--font-size-sm); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cw-pct { font-size: var(--font-size-xs); color: var(--color-meta); text-align: right; font-variant-numeric: tabular-nums; }

.cw-row--end, .cw-lr--sum {
  border-top: 1px solid var(--color-border);
  margin-top: var(--cw-block-gap);
}

.cw-row--end .cw-lbl, .cw-row--end .cw-val { font-weight: var(--font-weight-semibold); }

.cw-wf > .cw-row:first-child { margin-bottom: var(--cw-block-gap); }

.cw-row--pick { cursor: pointer; border-radius: var(--radius-sm); }
.cw-row--pick:hover, .cw-row--pick.is-on { background: var(--color-primary-50); }
.cw-row--pick:hover .cw-lbl, .cw-row--pick.is-on .cw-lbl { color: var(--color-accent-text); }
.cw-row--pick.is-on .cw-lbl { font-weight: var(--font-weight-medium); }
.cw-row--pick:focus-visible, .cw-lr--pick:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; }

.cw-scope .cw-zero { display: none; }
.cw-scope.is-showzero .cw-zero { display: grid; }

.cw-legend {
  display: flex; gap: var(--space-4); flex-wrap: wrap;
  margin-top: var(--space-4); font-size: var(--font-size-xs); color: var(--color-meta);
}
.cw-legend span { display: inline-flex; align-items: center; gap: 5px; }
.cw-dot { display: inline-block; width: 9px; height: 9px; border-radius: 2px; flex: none; vertical-align: middle; }

.cw-note { margin-top: var(--space-3); font-size: var(--font-size-xs); color: var(--color-meta); line-height: 1.7; }
.cw-note b { color: var(--color-fg-2); }

.cw-lh, .cw-lr {
  display: grid; grid-template-columns: 1fr 96px 62px;
  gap: var(--space-2); align-items: center;
  height: var(--cw-row-h);
}
.cw-lh {
  font-size: var(--font-size-xs); color: var(--color-meta);
  padding: 0 6px; border-bottom: 1px solid var(--color-border);

  margin-bottom: var(--cw-block-gap);
}
.cw-lh span:not(:first-child) { text-align: right; }
.cw-lr {
  padding: 0 6px; font-size: var(--font-size-sm);
  border-bottom: 1px solid var(--color-border-soft); border-radius: var(--radius-sm);
}
.cw-lr__n {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--color-fg-2);
}
.cw-lr__n .cw-dot { margin-right: 6px; }
.cw-lr__v, .cw-lr__p { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cw-lr__p { font-size: var(--font-size-xs); color: var(--color-meta); }
.cw-lr--sum { border-bottom: 0; font-weight: var(--font-weight-semibold); }
.cw-lr--sum .cw-lr__n { color: var(--color-fg); }
.cw-lr--pick { cursor: pointer; }
.cw-lr--pick:hover, .cw-lr--pick.is-on { background: var(--color-primary-50); }
.cw-lr--pick.is-on .cw-lr__n { color: var(--color-accent-text); }

.cw-fold {
  display: flex; align-items: center; gap: 4px; width: 100%;
  margin-top: var(--space-3); padding: 6px 10px;
  font-family: inherit; font-size: var(--font-size-xs); color: var(--color-meta);
  text-align: left; background: var(--color-surface-2); border: 0; border-radius: var(--radius-seg); cursor: pointer;
}
.cw-fold:hover { color: var(--color-fg-2); }
.cw-fold__i { display: inline-flex; transition: transform var(--motion-base) var(--motion-ease-in-out); }
.cw-scope.is-showzero .cw-fold__i { transform: rotate(180deg); }

.cw-panel:not(:empty) { margin-top: var(--space-5); }

@media (max-width: 900px) {
  .cw-main { min-width: 0; }
  .cw-list { width: 100%; }
  .cw-row { grid-template-columns: 76px 1fr 96px 54px; }
  .cw-sep, .cw-revsub { margin-left: 88px; }
}

#drawer-root {
  position: fixed;
  left: var(--drawer-frame-left);
  top: var(--drawer-frame-top);
  width: var(--drawer-frame-width);
  height: var(--drawer-frame-height);
  z-index: var(--z-modal);
  border-radius: var(--shell-inset-radius);
  overflow: hidden;
  pointer-events: none;
}
#drawer-root > .drawer-overlay,
#drawer-root > .drawer {
  pointer-events: auto;
}

.drawer-overlay {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--color-gray-900) 40%, transparent);
  z-index: var(--z-modal);
  animation: fade-in var(--motion-slow) var(--motion-ease-sheet) both;
}

.drawer-overlay[data-closing] {
  animation: fade-out calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
}

.drawer {

  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 560px;
  max-width: 92vw;
  background: var(--color-surface);
  box-shadow: var(--shadow-raised);
  z-index: var(--z-modal);
  display: flex;
  flex-direction: column;
  animation: slide-in-right var(--motion-slow) var(--motion-ease-sheet) both;
}

.drawer--wide { width: 1000px; }

.drawer[data-closing] {
  animation: slide-out-right calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
  pointer-events: none;
}

.drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-6);
  border-bottom: 1px solid var(--color-border-soft);
  flex-shrink: 0;
}

.drawer__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}

.drawer__header-extra {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}

.drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-5) var(--space-6);

  overscroll-behavior: contain;
}

.drawer__footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-6);
  border-top: 1px solid var(--color-border-soft);
  flex-shrink: 0;
}

@keyframes slide-in-right {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

@keyframes slide-out-right {
  from { transform: translateX(0); opacity: 1; }
  to { transform: translateX(24%); opacity: 0; }
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes fade-out {
  from { opacity: 1; }
  to { opacity: 0; }
}

.modal-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--color-gray-900) 40%, transparent);
  z-index: var(--z-modal);
  padding: var(--space-4);
  animation: fade-in var(--motion-slow) var(--motion-ease-sheet) both;
}

.modal-overlay[data-closing] {
  animation: fade-out calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
}

.modal {

  width: 880px;
  max-width: 100%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-raised);

  animation: modal-in var(--motion-slow) var(--motion-ease-sheet) both;
}

.modal[data-closing] {
  animation: modal-out calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
  pointer-events: none;
}

.modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: var(--space-4) var(--space-6);
  border-bottom: 1px solid var(--color-border-soft);
  flex-shrink: 0;
}

.modal__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
}

.modal__body {
  padding: var(--space-5) var(--space-6);
  overflow-y: auto;
  flex: 1;

  min-height: 260px;
}

.modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-6);
  border-top: 1px solid var(--color-border-soft);
  flex-shrink: 0;
}

.modal__footer .btn,
.drawer__footer .btn {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
  min-width: 88px;
}

@keyframes modal-in {

  from { opacity: 0; transform: translateY(var(--motion-rise)) scale(0.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes modal-out {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(4px) scale(0.985); }
}

@keyframes panel-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.row-menu {
  position: fixed;
  z-index: var(--z-dropdown);
  min-width: 136px;
  padding: var(--space-1) 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);

  transform-origin: top left;
  animation: row-menu-in var(--motion-base) var(--motion-ease-sheet) both;
}

.row-menu[data-flip] { transform-origin: bottom left; }
.row-menu[data-closing] {
  animation: row-menu-out calc(var(--motion-base) * 0.7) var(--motion-ease-exit) both;
  pointer-events: none;
}
@keyframes row-menu-in {
  from { opacity: 0; transform: translateY(-4px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes row-menu-out {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(-3px) scale(0.97); }
}
.row-menu__item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 0;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  text-align: left;
  white-space: nowrap;
}
.row-menu__item:hover:not(:disabled) { background: var(--color-surface-2); }
.row-menu__item:focus-visible { outline: 2px solid var(--color-accent); outline-offset: -2px; }

.row-menu__item:disabled { color: var(--color-disabled); cursor: not-allowed; }
.row-menu__item svg { flex: none; color: var(--color-muted); }
.row-menu__item:disabled svg { color: var(--color-disabled); }

.row-menu__item--danger,
.row-menu__item--danger svg { color: var(--color-danger); }

.toast-root {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  z-index: var(--z-toast);
  pointer-events: none;
}

.toast {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-gray-900);
  color: var(--color-gray-0);
  font-size: var(--font-size-sm);
  box-shadow: var(--shadow-raised);

  animation: toast-in var(--motion-base) var(--motion-ease-sheet) both;
}

.toast[data-closing] {
  animation: toast-out calc(var(--motion-base) * 0.62) var(--motion-ease-exit) both;
}

.toast--success { background: var(--color-success); color: var(--color-gray-0); }
.toast--error { background: var(--color-danger); color: var(--color-gray-0); }

@keyframes toast-in {
  from { opacity: 0; transform: translateY(calc(var(--motion-rise) * -1)); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes toast-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-6px); }
}

.toast:not(.toast--error) svg path {
  stroke-dasharray: 28;
  stroke-dashoffset: 28;

  animation: toast-check-draw 440ms var(--motion-ease-sheet) 80ms both;
}
@keyframes toast-check-draw {
  to { stroke-dashoffset: 0; }
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;

  gap: var(--space-5);
}

.form-grid > * {
  min-width: 0;
}

.form-grid .input,
.form-grid .select,
.form-grid .textarea {
  width: 100%;
}

.form-grid .input,
.form-grid .select,
.form-grid .dtp,
.form-grid .fp__box,

.form-grid .sf-readonly,

.form-grid .hs-static,

.form-grid .mp {
  max-width: 380px;
}
.form-grid .span-2 .input,
.form-grid .span-2 .select,
.form-grid .span-2 .dtp,
.form-grid .span-2 .fp__box,
.form-grid .span-2 .hs-static,
.form-grid .span-2 .mp {
  max-width: none;
}

.form-grid .span-2 {
  grid-column: span 2;
}

.form-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.form-grid--auto {
  grid-template-columns: auto 1fr;
}

.form-sec__title,
.pms-group__title,
.ia-group__title,
.rf-sec .module-card__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}

.form-sec__title,
.pms-group__title,
.ia-group__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.form-sec__no,
.pms-group__no,
.ia-group__no,
.rf-sec__no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 20px;
  height: 20px;
  border-radius: var(--radius-seg);
  background: var(--color-primary-50);
  color: var(--color-accent-text);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  font-variant-numeric: tabular-nums;
}

.form-sec__hint,
.ia-group__hint,
.rf-sec__sub {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.form-sec { margin-top: var(--space-6); }
.form-sec:first-child { margin-top: 0; }
.form-sec > .form-sec__title { margin-bottom: var(--space-4); }

.form-sec > .form-sec__hint { margin: calc(-1 * var(--space-2)) 0 var(--space-4); }

.sf-basic {
  display: flex;
  gap: var(--space-6);
  align-items: flex-start;
}
.sf-basic__media {
  flex: 0 0 160px;
}
.sf-basic__main {
  flex: 1;
  min-width: 0;
}

@media (max-width: 768px) {
  .form-grid,
  .form-grid--3,
  .form-grid--auto {
    grid-template-columns: 1fr;
  }
  .form-grid .span-2 {
    grid-column: span 1;
  }
  .sf-basic {
    flex-direction: column;
  }
  .sf-basic__media {
    flex: 0 0 auto;
  }

  .toolbar > .seg,
  .toolbar--join-card > .seg,
  .toolbar--has-page-tabs > .seg {
    flex: 1 1 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .toolbar > .seg::-webkit-scrollbar,
  .toolbar--join-card > .seg::-webkit-scrollbar,
  .toolbar--has-page-tabs > .seg::-webkit-scrollbar {
    display: none;
  }
  .toolbar > .seg .seg__btn,
  .toolbar--join-card > .seg .seg__btn,
  .toolbar--has-page-tabs > .seg .seg__btn {
    flex: none;
    white-space: nowrap;
  }

  .page .seg.table-tabs {
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .page .seg.table-tabs::-webkit-scrollbar {
    display: none;
  }
  .page .seg.table-tabs .seg__btn {
    flex: none;
    white-space: nowrap;
  }
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  margin-top: var(--space-5);
}

.toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}

.toolbar--join-card {

  margin-bottom: 0;
  padding: var(--space-3) var(--space-5);

  background: var(--liquid-tray-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);

  border: 1px solid var(--color-frame-border);

  border-bottom-width: 0;

  border-radius: var(--radius-lg) var(--radius-lg) 0 0;

  box-shadow: var(--shadow-card);

  flex-wrap: wrap;
  row-gap: var(--space-2);
}

.toolbar--join-card > .pill-filter,
.toolbar--join-card > .seg {
  height: auto;
  align-self: center;
  padding: 0 2px;
}
.toolbar--join-card > .table-toolbar__right {
  margin-left: auto;
  align-self: center;
}

.toolbar--join-card > .select,
.toolbar--join-card > .input,
.toolbar--join-card > .input--search,
.toolbar--join-card > .btn {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
}
.toolbar--join-card > .input--search > .input { height: var(--control-height-sm); }

.toolbar--join-card .mp__trigger {
  height: 34px;
  min-height: 34px;
}

.toolbar--join-target {

  border-top-width: 0 !important;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
  margin-top: 0 !important;

}

.toolbar--join-target > .table-toolbar:first-child {
  border-top: 0;
}

.toolbar__spacer {
  flex: 1;
}

.toolbar__right {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-left: auto;
}

.alert {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
}

.alert--warning {
  background: var(--color-warning-bg);
  color: var(--color-warning);
}

.alert.pl-alert--inline {
  margin: 0 0 var(--space-3);
  padding: 0;
  gap: 6px;
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: var(--font-size-xs);
  line-height: 1.5;
  color: var(--color-warning-text);
}

.alert--danger {
  background: var(--color-danger-bg);
  color: var(--color-danger);
}

.alert--info {
  background: var(--color-info-bg);
  color: var(--color-info);
}

.dashboard-overview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;

  margin-top: var(--space-5);
  margin-bottom: var(--space-4);
}
.dashboard-overview:not(:has(> * > :not(.dashboard-overview__title):not(.dashboard-overview__date))) {
  margin: 0;
}

.dashboard-overview__title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--font-letter-spacing-display);
}

.dashboard-overview__date {
  margin-top: var(--space-1);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}

.kpi-row.kpi-row--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 1100px) and (max-width: 1399px) {
  .kpi-row.kpi-row--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1099px) {
  .kpi-row.kpi-row--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 699px) {
  .kpi-row.kpi-row--three { grid-template-columns: minmax(0, 1fr); }
}

.kpi-row--overview { margin-bottom: var(--space-5); gap: var(--space-5); }
.kpi-row--overview .kpi-card { padding: var(--space-5) var(--space-5) var(--space-4); }

.kpi-row.kpi-row--five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1399px) {
  .kpi-row.kpi-row--five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  .kpi-row.kpi-row--five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .kpi-row.kpi-row--five { grid-template-columns: minmax(0, 1fr); }
}

.kpi-row--compact .kpi-card { padding: var(--space-4) var(--space-4) var(--space-3); }
.kpi-row--compact .kpi-card__value { font-size: var(--font-size-2xl); }
.kpi-row--compact .kpi-card__sub { line-height: 1.45; }

.kpi-row--six > :nth-child(5),
.kpi-row--six > :nth-child(6) { grid-column: span 2; }

@media (min-width: 1100px) {
  .kpi-row:has(> .kpi-card:only-child) { grid-template-columns: minmax(0, 1fr); }
  .kpi-row:has(> .kpi-card:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi-row:has(> .kpi-card:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1100px) and (max-width: 1399px) {

  .kpi-row--six > :nth-child(5) { grid-column: span 1; }
  .kpi-row--six > :nth-child(6) { grid-column: span 2; }
}
@media (max-width: 1099px) {
  .kpi-row--six > :nth-child(5),
  .kpi-row--six > :nth-child(6) { grid-column: span 1; }
}

.an-tag {
  display: inline-block;
  white-space: nowrap;
  font-size: var(--font-size-xs);
  line-height: 18px;
  padding: 0 6px;
  margin-left: 4px;
  color: var(--color-muted);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  vertical-align: 1px;
}

.an-tag--warn {
  color: var(--color-warning-text);
  background: var(--color-warning-bg);
  border-color: var(--color-warning);
}
.kpi-card.kpi-card--estimate,
.kpi-card.kpi-card--estimate:hover {
  border-color: var(--color-warning);
}

.kpi-row--overview .kpi-card--estimate,
.kpi-row--overview .kpi-card--estimate:hover { border-color: var(--color-border-soft); }

@media (min-width: 1400px) {
  .kpi-row { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1100px) and (max-width: 1399px) {
  .kpi-row { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1099px) {
  .kpi-row { grid-template-columns: repeat(2, 1fr); }
}

.kpi-card {

  position: relative;
  min-width: 0;
  padding: var(--space-5);
  background: var(--color-surface);

  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);

  box-shadow: var(--shadow-card);
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    transform var(--motion-fast) var(--motion-ease-standard);
}

.kpi-card:hover {
  border-color: var(--color-accent);

  transform: translateY(-1px);
}

.kpi-card--accent {
  background: var(--color-primary-50);
  border-color: var(--color-primary-200);
}
.kpi-card--accent .kpi-card__label { color: var(--color-accent-text); }

.kpi-card--tone-blue   { background: var(--color-tone-blue-bg);   border-color: transparent; }
.kpi-card--tone-teal   { background: var(--color-tone-teal-bg);   border-color: transparent; }
.kpi-card--tone-orange { background: var(--color-tone-orange-bg); border-color: transparent; }
.kpi-card--tone-green  { background: var(--color-tone-green-bg);  border-color: transparent; }
.kpi-card--tone-purple { background: var(--color-tone-purple-bg); border-color: transparent; }

#kpi-row .kpi-card--tone-blue,
#kpi-row .kpi-card--tone-teal,
#kpi-row .kpi-card--tone-orange,
#kpi-row .kpi-card--tone-green,
#kpi-row .kpi-card--tone-purple {
  background: var(--color-surface);

  border-color: var(--color-frame-border);
  box-shadow: var(--shadow-card);
}

.kpi-row--overview .kpi-card.kpi-card--tone-blue,
.kpi-row--overview .kpi-card.kpi-card--tone-teal,
.kpi-row--overview .kpi-card.kpi-card--tone-orange,
.kpi-row--overview .kpi-card.kpi-card--tone-green,
.kpi-row--overview .kpi-card.kpi-card--tone-purple { border-color: transparent; }

.kpi-row--grid6 .kpi-card.kpi-card--tone-blue,
.kpi-row--grid6 .kpi-card.kpi-card--tone-teal,
.kpi-row--grid6 .kpi-card.kpi-card--tone-orange,
.kpi-row--grid6 .kpi-card.kpi-card--tone-green,
.kpi-row--grid6 .kpi-card.kpi-card--tone-purple,
.kpi-row--grid5 .kpi-card.kpi-card--tone-blue,
.kpi-row--grid5 .kpi-card.kpi-card--tone-teal,
.kpi-row--grid5 .kpi-card.kpi-card--tone-orange,
.kpi-row--grid5 .kpi-card.kpi-card--tone-green,
.kpi-row--grid5 .kpi-card.kpi-card--tone-purple { border-color: transparent; }

.kpi-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-3);
}

#kpi-row .kpi-card__top {
  justify-content: flex-start;
  gap: 12px;
  margin-bottom: var(--space-4);
}
#kpi-row .kpi-card__label {
  font-size: 13px;
  color: var(--color-muted);
  font-weight: var(--font-weight-medium);
}

.kpi-card__label {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.kpi-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--color-primary-50);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.kpi-card__icon svg { width: 22px; height: 22px; }
.kpi-card__icon--blue   { background: var(--kpi-icon-blue); }
.kpi-card__icon--green  { background: var(--kpi-icon-green); }
.kpi-card__icon--orange { background: var(--kpi-icon-orange); }
.kpi-card__icon--purple { background: var(--kpi-icon-purple); }
.kpi-card__icon--pink   { background: var(--kpi-icon-pink); }

.kpi-card__value.num-pos,
.card__value.num-pos { color: var(--color-danger); }
.kpi-card__value.num-neg,
.card__value.num-neg { color: var(--color-success); }

.kpi-card__value--money { color: var(--color-danger); }

.kpi-card__value {

  font-size: var(--font-size-3xl);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;

  color: var(--color-fg);
  line-height: var(--font-line-height-tight);
}

.kpi-card__delta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
}

.kpi-card__delta.is-up { color: var(--color-success); }
.kpi-card__delta.is-down { color: var(--color-danger); }

.kpi-card__moms { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; margin-top: var(--space-2); }
.kpi-card__moms > .kpi-card__delta { margin-top: 0; }

.kpi-card__delta.is-none { color: var(--color-muted); font-weight: var(--font-weight-regular); }

.kpi-card__delta-label { color: var(--color-muted); font-weight: var(--font-weight-regular); }

.kpi-card__sub {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: 1.5;
}

.kpi-card__sub.hs-kpi-note {
  margin-top: var(--space-1);
  margin-bottom: var(--space-1);
  color: var(--color-meta);
}

.kpi-card__label.hs-kpi-title {
  color: var(--color-fg-2);
  font-weight: var(--font-weight-medium);
}

.kpi-src {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: var(--font-size-xs);
  color: var(--color-fg);
}
.kpi-src + .kpi-src { margin-top: 3px; }
.kpi-src__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.cost-bar-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.cost-bar-item__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
  font-size: var(--font-size-sm);
}
.cost-bar-item__head span:first-child { color: var(--color-fg); }
.cost-bar-item__head .num { color: var(--color-fg-2); font-variant-numeric: tabular-nums; }
.cost-bar-item__track {
  height: 8px;
  border-radius: var(--radius-pill);
  background: var(--color-gray-100);
  overflow: hidden;
}
.cost-bar-item__fill {
  height: 100%;
  border-radius: var(--radius-pill);
  background: var(--color-accent-text);
  transition: width var(--motion-base) var(--motion-ease-standard);
}

.chart-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.chart-grid--bottom {
  grid-template-columns: 1fr 1fr;
}

.chart-card {
  min-width: 0;
  overflow: hidden;
  background: var(--color-surface);

  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);

  box-shadow: var(--shadow-card);
}

.chart-card__body {
  padding: var(--space-5);
  min-height: 240px;
  position: relative;
  min-width: 0;
}

.chart-card__body canvas {
  max-width: 100%;
  display: block;
}

.chart-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 240px;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}

.ranking-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.ranking-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.ranking-item__rank {
  width: 20px;
  flex-shrink: 0;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-meta);
  text-align: center;
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
}

.ranking-item__name {
  width: 96px;
  flex-shrink: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ranking-item__bar {
  flex: 1;
  height: 8px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  overflow: hidden;
}

.ranking-item__bar-fill {
  height: 100%;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
}

.ranking-item__value {
  width: 88px;
  flex-shrink: 0;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.quick-links {
  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-3);
}
@media (max-width: 1099px) {
  .quick-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .quick-links { grid-template-columns: minmax(0, 1fr); }
}

.quick-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-4);
  border-radius: var(--radius-md);

  background: var(--color-surface);
  border: 1px solid var(--color-border);
  color: var(--color-fg-2);
  cursor: pointer;
  text-align: center;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard),
    box-shadow var(--motion-fast) var(--motion-ease-standard);
}

.quick-link:hover {
  border-color: var(--color-accent-border);
  box-shadow: var(--shadow-sm);
}

.quick-link--highlight {
  background: var(--color-primary-50);

  border-color: var(--color-accent-border);
}
.quick-link--highlight .quick-link__icon {
  background: var(--color-accent);
  color: var(--color-accent-on);
  box-shadow: none;
}
.quick-link--highlight .quick-link__label {
  color: var(--color-fg);
}
.quick-link--highlight .quick-link__desc {
  color: var(--color-muted);
}
.quick-link--highlight:hover {
  border-color: var(--color-accent);
  background: var(--color-primary-50);
}

.quick-link__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);

  background: var(--color-primary-50);
  color: var(--color-accent-text);
}

.quick-link__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.quick-link__label {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}

.quick-link__desc {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

@media (max-width: 768px) {
  .quick-links {
    grid-template-columns: repeat(2, 1fr);
  }
  .quick-link--highlight {
    grid-column: 1 / -1;
  }
}

.site-footer {
  margin-top: var(--space-8);
  padding: var(--space-6) 0;
  text-align: center;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.site-footer a {
  color: var(--color-muted);
  text-decoration: none;
}
.site-footer a:hover {
  color: var(--color-fg-2);
}

.login-root {
  position: relative;
  min-height: 100vh;
  display: flex;

  background: var(--color-bg);
}

.login-hero {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;

  width: 100vw;
  display: flex;
  flex-direction: column;
  justify-content: center;

  align-items: flex-start;
  padding: 0 6% 0 9.5%;
  overflow: hidden;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;

  --lh-ink: #0b1524;
  --lh-ink-sub: #0b1016;
}

@media (min-width: 769px) {
  .login-root--hub .login-hero { background-image: url('/img/login/portal.jpg'); }

  .login-root--finance .login-hero { background-image: url('/img/login/finance.jpg'); }

  .login-root--project .login-hero {

    background-image:
      linear-gradient(90deg,
        rgba(255, 255, 255, .24) 0%,
        rgba(255, 255, 255, .12) 36%,
        rgba(255, 255, 255, 0) 60%),
      url('/img/login/project.jpg');
  }

  .login-root--hr .login-hero { background-image: url('/img/login/hr.jpg'); }
  .login-root--main .login-hero { background-image: url('/img/login/dabotai.jpg'); }
}

.login-hero__brand {
  position: relative;

  z-index: 1;
  text-align: left;

  max-width: 520px;
}

.login-hero__logo { margin-bottom: var(--space-4); }
.login-hero__logo svg,
.login-hero__logo img {
  width: auto;

  height: 64px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 1px 6px rgba(255, 255, 255, 0.75));
}
.login-hero__title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing: .5px;
  margin-bottom: var(--space-3);

  color: var(--lh-ink);
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.62), 0 2px 12px rgba(255, 255, 255, 0.45);
}
.login-hero__subtitle {
  font-size: var(--font-size-base);
  color: var(--lh-ink-sub);
  font-weight: var(--font-weight-medium);

  max-width: 440px;
  line-height: 1.7;

  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.70), 0 2px 10px rgba(255, 255, 255, 0.50);

}

.login-hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-4);
}
.login-hero__tag {
  font-size: var(--font-size-xs);
  padding: 5px 11px;
  border-radius: var(--radius-pill);

  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.96);
  color: var(--lh-ink-sub);
}

.login-form-wrap {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;

  padding: var(--space-6) 10% var(--space-6) var(--space-6);
  background: transparent;
}

.login-card {
  position: relative;

  width: 448px;
  max-width: 100%;
  background: rgba(255, 255, 255, 0.62);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: var(--radius-xl);
  box-shadow:
    0 24px 60px rgba(10, 22, 40, 0.22),
    0 4px 14px rgba(10, 22, 40, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  padding: var(--space-8) var(--space-8);
  overflow: hidden;
}

.login-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(135deg,
    rgba(255, 255, 255, 0.50) 0%,
    rgba(255, 255, 255, 0.16) 32%,
    rgba(255, 255, 255, 0) 58%,
    rgba(255, 255, 255, 0.10) 100%);
}

.login-card > * { position: relative; z-index: 1; }

.login-card__header {
  text-align: center;
  margin-bottom: var(--space-6);
}
.login-card__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.login-card__desc {
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);

  color: #46505c;
}

.sso {
  width: 100%;
  height: 48px;
  margin-top: var(--space-3);
  border: none;
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  font-family: inherit;
  color: #fff;
  cursor: pointer;
  transition: filter var(--motion-fast) var(--motion-ease-standard),
    box-shadow var(--motion-fast) var(--motion-ease-standard);
}
.sso:hover { filter: brightness(1.07); box-shadow: 0 6px 18px rgba(14, 26, 43, 0.18); }
.sso:active { transform: translateY(1px); }
.sso--feishu { background: #1a6ae0; }
.sso--wechat { background: #04803f; }

.sso--primary { background: var(--login-brand-deep, var(--color-accent)); margin-top: var(--space-4); }

.brand-chip {
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 7px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}
.brand-chip img { display: block; width: 17px; height: 17px; object-fit: contain; }

.login-or {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: var(--space-5) 0 var(--space-2);
  color: #46505c;
  font-size: var(--font-size-xs);
}
.login-or::before,
.login-or::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(15, 30, 50, 0.14);
}

.login-switch {
  display: block;
  width: 100%;
  padding: var(--space-3);
  background: none;
  border: none;
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: #2f3a46;
  text-align: center;
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.login-switch:hover { color: var(--color-accent); background: rgba(255, 255, 255, 0.55); }

.login-field {
  height: var(--control-height);
  display: flex;
  align-items: center;
  padding: 0 var(--space-3);
  margin-top: var(--space-3);
  border: 1px solid rgba(40, 60, 85, 0.28);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.94);
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    box-shadow var(--motion-fast) var(--motion-ease-standard);
}
.login-field:focus-within {
  border-color: var(--color-accent);
  background: #fff;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 14%, transparent);
}
.login-field input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: none;
  outline: none;
  background: transparent;
  font-family: inherit;
  font-size: var(--font-size-sm);
  color: #0b1420;
}
.login-field input::placeholder { color: #5a6675; }
.login-field__eye {
  flex: none;
  display: flex;
  padding: 4px;
  border: none;
  background: none;
  color: #46505c;
  cursor: pointer;
}

.login-card__footer {
  margin-top: var(--space-5);
  font-size: var(--font-size-xs);

  color: #46505c;
  text-align: center;
}

@media (max-width: 768px) {
  .login-hero { display: none; }
  .login-form-wrap { flex: 1 1 100%; }
  .login-card { width: 100%; }
}

.callback-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-12) 0;
}

.spinner {
  width: 28px;
  height: 28px;
  border-radius: var(--radius-pill);
  border: 3px solid var(--color-border);
  border-top-color: var(--color-accent-text);
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 1024px) {
  .kpi-row {
    grid-template-columns: repeat(2, 1fr);
  }
  .chart-grid,
  .chart-grid--bottom {
    grid-template-columns: 1fr;
  }
}

.timeline {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-2) 0 var(--space-2) var(--space-1);
}
.timeline__item {
  display: flex;
  gap: var(--space-3);
  position: relative;
}
.timeline__item::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 14px;
  bottom: -18px;
  width: 2px;
  background: var(--color-border-soft);
}
.timeline__item:last-child::before { display: none; }
.timeline__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-accent);
  flex-shrink: 0;
  margin-top: 4px;
  z-index: 1;
}
.timeline__body { flex: 1; min-width: 0; }
.timeline__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.timeline__time {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}
.timeline__detail {
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  margin-top: 2px;
}

.node-card {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  margin-top: var(--space-3);
  background: var(--color-surface);
}
.node-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
}
.node-title {
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-base);
  color: var(--color-fg);
}
.form-actions {
  position: sticky;
  bottom: 0;
  z-index: 10;
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  background: var(--color-bg);
  border-top: 1px solid var(--color-border-soft);
}

#page-root .sf-actions,
#page-root .form-actions:not(.form-actions--total) {

  position: sticky;
  bottom: 24px;
  z-index: 90;
  width: fit-content;
  margin: var(--space-4) var(--space-6) 0 auto;

  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
  flex-wrap: nowrap;
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);

  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-lit), var(--glass-lift);
}

#page-root .sf-actions > .sf-actions__inner,
#page-root .sf-actions > .form-actions__inner,
#page-root .form-actions > .form-actions__inner {
  max-width: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
  flex-wrap: nowrap;
}

#page-root .sf-actions .btn,
#page-root .form-actions:not(.form-actions--total) .btn {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
}

#page-root .sf-actions .btn,
#page-root .form-actions:not(.form-actions--total) .btn {
  min-width: 88px;
}

@media (max-width: 760px) {
  #page-root .sf-actions,
  #page-root .form-actions:not(.form-actions--total) {
    margin: var(--space-3) 0 0;
    width: auto;
  }
  #page-root .sf-actions .btn,
  #page-root .form-actions:not(.form-actions--total) .btn {
    flex: 1;
  }
}

body.is-standalone #page-root .sf-actions,
body.is-standalone #page-root .form-actions:not(.form-actions--total) {
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
}

body.is-standalone .sf-shell > .form-actions.form-actions--total {
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
}

.bundle-picker {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  max-height: 220px;
  overflow-y: auto;
  padding: var(--space-2);
}
.bundle-pick-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
}
.bundle-pick-row:hover {
  background: var(--color-surface-2);
}

.s-prod-summary {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-all;
}
.bundle-pick-name {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.product-picker {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  max-height: 220px;
  overflow-y: auto;
  padding: var(--space-2);
}
.product-pick-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 130px 80px 90px auto;
  grid-template-areas: "img name code stock price action";
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  cursor: pointer;
}
.product-pick-row:hover { background: var(--color-surface-2); }
.pp-img { grid-area: img; width: 40px; height: 40px; border-radius: var(--radius-seg); object-fit: cover; }
.pp-img--empty { display: inline-flex; align-items: center; justify-content: center; background: var(--color-surface-2); color: var(--color-meta); }
.pp-name {
  grid-area: name;
  display: flex; align-items: center; gap: var(--space-2);
  min-width: 0;
}
.pp-name-text {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-weight: var(--font-weight-medium); color: var(--color-fg);
}

.pp-meta { display: contents; }
.pp-code { grid-area: code; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--font-size-sm); color: var(--color-fg-2); }
.pp-code--missing { color: var(--color-warning); }
.pp-stock { grid-area: stock; white-space: nowrap; font-size: var(--font-size-sm); color: var(--color-fg-2); }
.pp-price { grid-area: price; color: var(--color-price); font-weight: var(--font-weight-semibold); white-space: nowrap; }
.pp-action { grid-area: action; justify-self: end; }
.pp-picked { color: var(--color-accent); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); }

@media (max-width: 640px) {
  .product-pick-row {
    grid-template-columns: 48px minmax(0, 1fr) auto;
    grid-template-areas: "img name action" "img meta action";
    row-gap: 2px;
  }
  .pp-img { width: 48px; height: 48px; }

  .pp-meta {
    display: flex; align-items: center; gap: var(--space-3);
    grid-area: meta; min-width: 0; overflow: hidden;
    font-size: var(--font-size-sm); color: var(--color-fg-2);
  }
  .pp-code, .pp-stock, .pp-price { grid-area: auto; }
}

.sch-timeline {
  position: relative;
  padding: var(--space-4) var(--space-2);
  overflow-x: auto;
}
.sch-tl {
  position: relative;
}

.sch-tl-acc {
  position: relative;
  height: 56px;
  margin-bottom: var(--space-3);
}
.sch-tl-acc__block {
  position: absolute;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--acc, var(--color-muted)) 14%, #fff);
  border: 1px solid color-mix(in srgb, var(--acc, var(--color-muted)) 38%, #fff);
  overflow: hidden;
}
.sch-tl-acc__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--acc, var(--color-muted));
  flex-shrink: 0;
}
.sch-tl-acc__body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.35;
}
.sch-tl-acc__hotel {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sch-tl-acc__sub {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sch-tl-nodes-wrap {
  position: relative;
}
.sch-tl-line {
  position: absolute;
  left: 85px;
  right: 85px;
  top: 6px;
  height: 2px;
  background: var(--color-gray-400);
  z-index: 0;
}
.sch-timeline__nodes {
  display: flex;
  gap: 24px;
  position: relative;
}
.sch-timeline__node {
  position: relative;
  width: 170px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  z-index: 1;
}
.sch-timeline__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.08);
  flex-shrink: 0;
}
.sch-timeline__date {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
}
.sch-timeline__time {
  margin-top: 2px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.sch-timeline__label {
  margin-top: 2px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.sch-timeline__card {
  margin-top: var(--space-2);
  width: 100%;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  padding: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  line-height: 1.5;
}

.tl-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 20px;
}
.tl-row-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  color: var(--color-muted);
  flex-shrink: 0;
}
.tl-row-label {
  color: var(--color-muted);
  flex-shrink: 0;
}
.tl-avatar {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: var(--font-weight-medium);
  flex-shrink: 0;
  overflow: hidden;
}
.tl-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tl-row-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sch-timeline__session {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px dashed var(--color-border-soft);
}
.sch-timeline__session-title {
  font-weight: var(--font-weight-medium);
}
.sch-timeline__session-date {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
}
.sch-timeline__session-time {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.row-expand {
  background: var(--color-surface-2);
}

.ip-sub--live {
  background: var(--color-primary-50);
}
.ip-sub--private {
  background: var(--color-warning-bg);
}
.ip-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: var(--radius-pill);
  margin-right: 8px;
  flex: 0 0 auto;
}
.ip-dot--live {
  background: var(--color-accent);
}
.ip-dot--private {
  background: var(--color-warning-text);
}
.row-expand__inner {
  padding: var(--space-4);
}

.row-expand__inner.so-expand {
  padding: var(--space-2) 0;
}

.detail-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
}
.detail-grid > div {
  min-width: 120px;
}

.cm-picker {
  margin-top: var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  max-height: 220px;
  overflow-y: auto;
}
.cm-pick {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  cursor: pointer;
  font-size: var(--font-size-sm);
}
.cm-pick:hover {
  background: var(--color-surface-2);
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;

  padding: 3px 8px 1px;
  margin: 2px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  font-size: var(--font-size-sm);
}

.cell-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  padding: 1px 8px 0;
  margin: 1px 4px 1px 0;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  color: var(--color-fg-2);
  font-size: var(--font-size-xs);
  white-space: nowrap;
}
.chip__x {
  border: none;
  background: none;
  cursor: pointer;
  color: var(--color-muted);
  display: inline-flex;
  padding: 0;
}
.chip__x:hover {
  color: var(--color-danger);
}

.raw-data {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: var(--space-2);
}
.raw-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-2) var(--space-3);
  background: var(--color-surface-2);
  border-radius: var(--radius-sm);
  min-width: 0;
}
.raw-row--wide {
  grid-column: 1 / -1;
}
.raw-row__key {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.raw-row__val {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  word-break: break-all;
  line-height: 1.5;
}

.so-section-title {

  font-size: var(--font-size-lg);
  font-weight: 600;
  color: var(--color-fg);
  margin: 4px 0 10px;
}

.card-more {
  margin-left: auto;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-accent-text);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}
.card-more:hover { color: var(--color-accent-hover); }

.card__unit {
  margin-left: var(--space-2);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
  white-space: nowrap;
}

.plat-list { display: flex; flex-direction: column; gap: var(--space-4); }
.plat-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.plat-row__name {
  width: 56px;
  flex-shrink: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.plat-row__bar {
  flex: 1;
  height: 8px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  overflow: hidden;
}
.plat-row__fill {
  display: block;
  height: 100%;
  border-radius: var(--radius-pill);
  transition: width var(--motion-base) var(--motion-ease-standard);
}
.plat-row__pct {
  width: 40px;
  flex-shrink: 0;
  text-align: right;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
}

.today-list { display: flex; flex-direction: column; }
.today-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
}
.today-item + .today-item { margin-top: var(--space-2); }
.today-item__time {
  flex-shrink: 0;
  width: 92px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg-2);
  font-variant-numeric: tabular-nums;
}
.today-item__name {
  flex: 1;
  min-width: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.todo-list { display: flex; flex-direction: column; gap: var(--space-3); }
.todo-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.todo-item__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.todo-item__text {
  flex: 1;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.todo-item__count {
  min-width: 24px;
  height: 20px;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);
  font-variant-numeric: tabular-nums;
}

.todo-item--link {
  text-decoration: none;
  border-radius: var(--radius-sm);
  transition: color var(--motion-fast) var(--motion-ease-standard);
}
.todo-item--link:hover .todo-item__text,
.todo-item--link:hover .todo-item__go { color: var(--color-accent-text); }
.todo-item__go {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--color-muted);
}
.todo-item__sub {
  margin-left: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.todo-empty {
  padding: var(--space-6) 0;
  text-align: center;
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

@media (max-width: 768px) {
  .chart-card__body {
    padding: var(--space-3);
  }
  .today-item {
    flex-wrap: wrap;
  }
  .today-item__time {
    width: auto;
  }
}

@media (max-width: 480px) {
  .kpi-row {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }
  .dashboard-overview {
    margin-top: var(--space-3);
    margin-bottom: var(--space-3);
  }
}

.pf-card {
  padding: var(--space-6);
}

.toolbar > .toolbar__page-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.pf-card > .tabs {

  margin-bottom: var(--space-4);

  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
}

.an-sec {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: var(--space-6) 0 var(--space-4);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border-soft);
}
.an-sec:first-of-type { margin-top: var(--space-4); }
.an-sec__no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: none;
  border-radius: var(--radius-sm);
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  align-self: center;
}
.an-sec__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.an-sec__sub {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.an-card {
  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);

  box-shadow: var(--shadow-card);
  padding: var(--space-5) var(--space-5) var(--space-4);
  margin-bottom: var(--space-5);
}

.an-card > .an-sec {
  margin: 0 0 var(--space-4);
  padding-bottom: 0;
  border-bottom: 0;
}
.an-card > .an-sec .an-sec__title { font-size: 18px; }

.an-nav {
  position: sticky;
  top: var(--header-height);
  z-index: 900;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: 46px;
  margin: 0 0 var(--space-4);
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border-soft);
}

.an-nav__fixed {
  flex: 0 0 auto;
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  padding-right: var(--space-2);
  border-right: 1px solid var(--color-border-soft);
}

.an-nav__scroll {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--space-1);
  height: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.an-nav__scroll::-webkit-scrollbar { display: none; }

.an-nav__item {
  flex: 0 0 auto;
  height: 30px;
  padding: 0 var(--space-3);
  border: none;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  line-height: 30px;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard);
}
.an-nav__item:hover { background: var(--color-surface-2); color: var(--color-fg); }
.an-nav__item.is-active {
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
  font-weight: var(--font-weight-medium);
}
.an-nav__item:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.an-caliber { position: relative; display: flex; align-items: center; height: 100%; }
.an-caliber__btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  height: var(--control-height-sm);
  padding: 0 var(--space-3);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-pill);
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              border-color var(--motion-fast) var(--motion-ease-standard);
}
.an-caliber__btn:hover { background: var(--color-surface-2); }
.an-caliber__btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.an-caliber__label { line-height: 1; }
.an-caliber__caret {
  display: inline-flex;
  align-items: center;
  color: var(--color-accent-text);
  transition: transform var(--motion-fast) var(--motion-ease-standard);
}
.an-caliber__btn[aria-expanded="true"] .an-caliber__caret { transform: rotate(180deg); }

.an-caliber__static {
  display: inline-flex;
  align-items: center;
  height: var(--control-height-sm);
  padding: 0 var(--space-3);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-pill);
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1;
  white-space: nowrap;
}

.an-caliber__menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 168px;
  padding: var(--space-1);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  z-index: 950;
}
.an-caliber__menu[hidden] { display: none; }
.an-caliber__opt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  line-height: 1.4;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.an-caliber__opt:hover { background: var(--color-surface-2); color: var(--color-fg); }
.an-caliber__opt:focus-visible { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.an-caliber__opt.is-active { color: var(--color-accent-text); font-weight: var(--font-weight-medium); }
.an-caliber__opt-check { display: inline-flex; align-items: center; color: var(--color-accent); opacity: 0; }
.an-caliber__opt.is-active .an-caliber__opt-check { opacity: 1; }

#an-body .an-sec { scroll-margin-top: calc(var(--header-height) + 54px); }

.an-banner {
  display: flex;
  align-items: flex-start;
  gap: var(--notice-gap);
  padding: var(--notice-pad-y) var(--notice-pad-x);
  margin-bottom: var(--space-4);
  border-radius: var(--notice-radius);
  border: 1px solid var(--notice-border);
  background: var(--notice-bg);
  font-size: var(--font-size-sm);
  line-height: 1.6;
  color: var(--notice-fg);
}

.an-banner__ico {
  flex: none;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  height: 1.6em;
  color: var(--notice-ico);
}
.an-banner b { color: var(--color-fg); font-weight: var(--font-weight-semibold); }
.an-banner--info {
  border-color: var(--notice-border);
  background: var(--notice-bg);
}
.an-banner--info .an-banner__ico { color: var(--notice-ico); }

.an-banner--warn {
  border-color: var(--notice-warn-border);
  background: var(--notice-warn-bg);
}
.an-banner--warn .an-banner__ico { color: var(--notice-warn-ico); }

.an-chart-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-5) var(--space-3);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.an-chart-head__h {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-muted);

  white-space: normal;
  min-width: 0;
  overflow-wrap: anywhere;
}

.an-chart--tall { height: 340px; }

.an-grid-1 { grid-template-columns: 1fr; }
.an-type-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
@media (max-width: 1099px) {
  .an-type-grid { grid-template-columns: 1fr; }
}

.an-type-card--special .an-card-title { color: var(--color-tone-blue-fg); }
.an-type-card--private .an-card-title { color: var(--color-tone-teal-fg); }
.an-type-card--mixed   .an-card-title { color: var(--color-tone-purple-fg); }
.an-type-card--special .an-card-title::before,
.an-type-card--private .an-card-title::before,
.an-type-card--mixed   .an-card-title::before {
  content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  margin-right: 8px; vertical-align: 1px;
}
.an-type-card--special .an-card-title::before { background: var(--color-tone-blue-fg); }
.an-type-card--private .an-card-title::before { background: var(--color-tone-teal-fg); }
.an-type-card--mixed   .an-card-title::before { background: var(--color-tone-purple-fg); }

.an-type-card--special .an-card-title__sub,
.an-type-card--private .an-card-title__sub,
.an-type-card--mixed   .an-card-title__sub { color: var(--color-muted); }

.an-card-title {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-3);
}
.an-card-title__sub {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-muted);
  margin-left: 6px;
}
.an-stat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
}
.an-stat__label { font-size: var(--font-size-xs); color: var(--color-muted); }
.an-stat__value { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); margin-top: 2px; }
.an-card-foot {
  margin-top: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.an-cat-grid {
  display: grid;
  grid-template-columns: 150px 1fr 110px 72px;
  gap: 10px;
  align-items: center;
  font-size: var(--font-size-sm);
}
.an-cat-grid--head {
  margin-bottom: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.an-cat-grid--head > :nth-child(3),
.an-cat-grid--head > :nth-child(4) { text-align: right; }
.an-cat-track { background: var(--color-surface-2); border-radius: var(--radius-sm); height: 16px; }
.an-cat-fill { height: 16px; border-radius: var(--radius-sm); }
.an-cat-num { text-align: right; font-variant-numeric: tabular-nums; }
.an-cat-num--muted { color: var(--color-muted); }

.an-crumb { margin-bottom: var(--space-3); font-size: var(--font-size-xs); }
.an-crumb a { color: var(--color-accent-text); text-decoration: none; }
.an-crumb__sep { color: var(--color-muted); margin: 0 6px; }

.an-flex-between { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); }
.an-link { color: var(--color-accent-text); text-decoration: none; }
.an-warn-text { color: var(--color-warning-text); }

.pnl-flag { display: inline-flex; align-items: center; gap: 6px; font-size: var(--font-size-xs); white-space: nowrap; }
.pnl-flag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.pnl-flag--muted { color: var(--color-muted); }

.an-pnl-table tbody tr.an-pnl-total { background: var(--color-surface-2); }
.an-pnl-table tbody tr.an-pnl-total td { font-weight: var(--font-weight-medium); }

:root { --chain-border: var(--color-border-soft); }

.an-src-chain-wrap { overflow-x: auto; padding-bottom: 2px; }

.an-src-chain {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
  gap: var(--space-2);
  align-items: stretch;
}

.an-src-term { display: flex; align-items: stretch; gap: var(--space-2); min-width: 0; --grp-c: transparent; }
.an-src-term[data-grp="talent"] { --grp-c: var(--color-chart-1); }
.an-src-term[data-grp="hr"] { --grp-c: var(--color-chart-5); }

.an-src-term[data-grp="project"] { --grp-c: var(--color-tone-purple-fg); }

.an-src-term[data-grp="hr"], .an-src-term[data-grp="project"] { margin-left: 12px; }

.an-src-term--brk { grid-column: 1; margin-left: 0; }
.an-src-term--brk, .an-src-term--brk ~ .an-src-term { margin-top: var(--space-2); }
.an-src-card {

  flex: 1 1 auto; min-width: 0; display: block; text-align: left;

  background: var(--color-surface); border: 1px solid var(--chain-border);

  box-shadow: inset 3px 0 0 0 var(--grp-c, transparent);
  border-radius: var(--radius-lg); padding: 11px 15px;
  font-family: inherit; cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard), background var(--motion-fast) var(--motion-ease-standard);
}
.an-src-card:hover { border-color: var(--color-accent); }
.an-src-card[aria-pressed="true"] { border: 2px solid var(--color-accent); background: var(--color-accent-bg); padding: 10px 14px; }
.an-src-card__n { display: block; font-size: var(--font-size-sm); color: var(--color-muted); margin-bottom: 5px; }

.an-src-card__est {
  display: inline-block; margin-left: 4px; padding: 0 4px;
  font-size: 11px; line-height: 16px;
  color: var(--color-warning-text); background: var(--color-warning-bg);
  border-radius: 3px; vertical-align: 1px; font-weight: var(--font-weight-medium);
}

.an-src-card[data-src="ad"] .an-src-card__n::before,
.an-src-card[data-src="commission"] .an-src-card__n::before,
.an-src-card[data-src="ent_talent"] .an-src-card__n::before,
.an-src-card[data-src="hr_all"] .an-src-card__n::before,
.an-src-card[data-src="project_all"] .an-src-card__n::before {
  content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 2px;
  margin-right: 6px; vertical-align: 1px;
}
.an-src-card[data-src="ad"] .an-src-card__n::before { background: var(--color-chart-1); }
.an-src-card[data-src="commission"] .an-src-card__n::before { background: var(--color-chart-2); }
.an-src-card[data-src="ent_talent"] .an-src-card__n::before { background: var(--color-chart-5); }
.an-src-card[data-src="hr_all"] .an-src-card__n::before { background: var(--color-chart-3); }
.an-src-card[data-src="project_all"] .an-src-card__n::before { background: var(--color-chart-4); }
.an-src-card__v {
  display: block; font-size: var(--font-size-2xl); font-weight: 500; line-height: 1.15;
  color: var(--color-fg); font-variant-numeric: tabular-nums;
}

.an-src-card--result .an-src-card__v.num-pos { color: var(--color-danger); }
.an-src-card--result .an-src-card__v.num-neg { color: var(--color-success); }

.an-src-card--result { background: var(--color-tone-orange-bg); border-color: transparent; }
.an-src-card__h { display: block; font-size: var(--font-size-xs); color: var(--color-meta); margin-top: 5px; }

.an-src-card__h.is-clickable { color: var(--color-accent-text); font-weight: var(--font-weight-medium); }

.an-src-card[aria-pressed="true"] .an-src-card__h.is-clickable { font-weight: var(--font-weight-regular); }

.an-src-card.is-zero { border-color: var(--color-border); }
.an-src-card.is-zero .an-src-card__v { color: var(--color-muted); }
.an-src-op { flex: 0 0 auto; align-self: center; font-size: var(--font-size-2xl); font-weight: 500; color: var(--color-fg); padding: 0 2px; }
.an-src-ladder {
  margin-top: var(--space-4); padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.8;
}
.an-src-ladder b { color: var(--color-fg-2); font-weight: 600; }

.an-src-panel__title { font-size: var(--font-size-lg); font-weight: 600; color: var(--color-fg); }
.an-src-panel__total { font-size: var(--font-size-sm); color: var(--color-muted); }
.an-src-pg { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: var(--space-4); }
.an-src-cap { font-size: var(--font-size-xs); color: var(--color-muted); margin-bottom: 6px; }
.an-chart-src--ring { height: 230px; }
.an-chart-src--line { height: 220px; }
.an-chart-src--rank { height: 320px; }
.an-src-item {
  display: grid; grid-template-columns: minmax(0, 1fr) 96px 56px; gap: var(--space-2);
  align-items: center; padding: 8px 10px;
  border: 1px solid transparent; border-radius: var(--radius-md);
}
.an-src-item[role="button"] { cursor: pointer; }
.an-src-item[role="button"]:hover { background: var(--color-surface-2); }
.an-src-item.is-on { background: var(--color-accent-bg); border-color: var(--color-primary-200); }
.an-src-item__n { font-size: var(--font-size-sm); color: var(--color-fg-2); }
.an-src-item__v { font-size: var(--font-size-sm); color: var(--color-fg-2); text-align: right; font-variant-numeric: tabular-nums; }
.an-src-item__p { font-size: var(--font-size-xs); color: var(--color-meta); text-align: right; }
.an-src-note { margin-top: var(--space-3); line-height: 1.8; }
.an-src-note-line {
  font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.9;
  background: var(--color-surface-2); border-radius: var(--radius-md); padding: 10px 12px;
}
.an-src-block { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border-soft); }
.an-src-block__t { font-size: var(--font-size-sm); font-weight: 500; color: var(--color-fg); margin-bottom: 10px; }
.an-src-empty {
  display: flex; align-items: center; justify-content: center; min-height: 92px;
  padding: 14px 16px; border: 1px dashed var(--color-primary-200);
  border-radius: var(--radius-md); background: var(--color-surface-2);
  color: var(--color-meta); font-size: var(--font-size-xs); line-height: 1.7; text-align: center;
}

@media (max-width: 900px) {
  .an-src-pg { grid-template-columns: minmax(0, 1fr); }
}

.fe-prod {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-group td {
  background: var(--color-surface-2);
  font-weight: var(--font-weight-medium);
}
.fe-child td { background: var(--color-surface); }
.fe-child td:first-child { box-shadow: inset 2px 0 0 var(--color-border); }

.fe-caret { display: inline-flex; vertical-align: middle; margin-right: 6px; color: var(--color-muted); }

.kpi-row.fe-board-kpi {
  padding: var(--space-4) var(--space-5) var(--space-3);
  margin-bottom: 0;
}

.fe-foot-note { margin: var(--space-3) var(--space-5) var(--space-5); }

.fei-step {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.fei-step__no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
}
.fei-step__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.fei-sched-wrap { max-width: 520px; }

.fei-cost-block {
  margin: var(--space-3) 0 0;
  padding: var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
}
.fei-cost-block .table-wrap {
  background: var(--color-surface);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.fei-cost-head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-3);
}
.fei-cost-head .fei-step__label { display: inline-flex; align-items: center; gap: 5px; }
.fei-cost-foot {
  display: flex;
  align-items: baseline;
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.fei-cost-foot b { color: var(--color-fg); font-size: var(--font-size-base); }

.fei-sel { width: 100%; max-width: 260px; }

.af-crumb {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}
.af-back {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 4px 10px 4px 6px;
  font-size: var(--font-size-sm);
  color: var(--color-accent-text);
  background: var(--color-accent-bg);
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.af-back:hover { background: var(--color-primary-100); }
.af-back:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; }
.af-crumb__path { font-size: var(--font-size-sm); color: var(--color-muted); }
.af-crumb__path b { color: var(--color-fg); font-weight: var(--font-weight-medium); }
.af-crumb__sep { padding: 0 2px; color: var(--color-muted); }

.af-audit {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
}
.af-audit__head {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-3);
}
.af-audit__sub {
  font-size: var(--font-size-sm);
  font-weight: 400;
  color: var(--color-muted);
}
.af-audit__table { width: 100%; }
.af-audit__table th { font-size: var(--font-size-xs); color: var(--color-muted); font-weight: var(--font-weight-medium); }
.af-audit__name { white-space: nowrap; color: var(--color-fg-2); }
.af-audit__calc { color: var(--color-fg-2); font-variant-numeric: tabular-nums; }
.af-audit__note { margin-top: 2px; font-size: var(--font-size-xs); color: var(--color-muted); }
.af-audit__res {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--color-fg);
}

.af-audit__main { background: var(--color-surface-2); }
.af-audit__main .af-audit__name { font-weight: var(--font-weight-medium); color: var(--color-fg); }
.af-audit__main .af-audit__res { font-weight: var(--font-weight-medium); }
.af-audit__foot {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: 1.7;
}

.af-th-sub {
  display: inline-block;
  margin-top: 1px;
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-muted);
}

.af-def {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
}
.af-def__head {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-3);
}
.af-def__sub { font-size: var(--font-size-sm); font-weight: 400; color: var(--color-muted); }

.af-def__item {
  padding: var(--space-3) 0;
  border-top: 1px solid var(--color-border-soft);
}
.af-def__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.af-def__badge {
  padding: 1px 8px;
  font-size: var(--font-size-xs);
  font-weight: 400;
  border-radius: var(--radius-pill);
  background: var(--color-info-bg);
  color: var(--color-info);
}
.af-def__meaning { font-size: var(--font-size-sm); font-weight: 400; color: var(--color-muted); }

.af-def__formula {
  margin: var(--space-2) 0;
  padding: 6px 10px;
  font-size: var(--font-size-sm);
  font-variant-numeric: tabular-nums;
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  color: var(--color-fg);
}
.af-def__points {
  margin: 0 0 var(--space-2);
  padding-left: 1.2em;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  line-height: 1.8;
}
.af-def__points li { list-style: disc; }

.af-def__bd {
  margin: 0 0 var(--space-2);
  padding: 0;
  font-size: var(--font-size-sm);
}
.af-def__bd li {
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  padding: 3px 0 3px 1.2em;
  color: var(--color-fg-2);
}
.af-def__bd-label { min-width: 0; }
.af-def__bd-num { color: var(--color-fg); font-variant-numeric: tabular-nums; white-space: nowrap; }

.af-def__calc {
  margin-top: var(--space-2);
  padding: 6px 10px;
  font-size: var(--font-size-sm);
  font-variant-numeric: tabular-nums;
  background: var(--color-accent-bg);
  border-radius: var(--radius-md);
  color: var(--color-fg-2);
}
.af-def__calc b { color: var(--color-fg); }
.af-def__rel {
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  line-height: 1.8;
}
.af-def__warn {
  margin-top: var(--space-2);
  padding: 6px 10px;
  font-size: var(--font-size-xs);
  background: var(--color-warning-bg);
  color: var(--color-warning-text);
  border-radius: var(--radius-md);
}

.af-bd {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
}
.af-bd__head {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-3);
}
.af-bd__sub { font-size: var(--font-size-sm); font-weight: 400; color: var(--color-muted); }
.af-bd__idx { color: var(--color-muted); font-variant-numeric: tabular-nums; }
.af-bd__total { background: var(--color-surface-2); }
.af-bd__foot {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.kpi-row--grid6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 1440px) {
  .kpi-row--grid6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .kpi-row--grid6 .kpi-card__value { font-size: var(--font-size-2xl); }
}
@media (max-width: 899px) { .kpi-row--grid6 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.kpi-row--grid6 .kpi-card__sub { line-height: 1.45; }
.kpi-row--grid6 .kpi-card__value { white-space: nowrap; }

.kpi-row--grid5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kpi-row--grid5 > :nth-child(5) { grid-column: span 2; }
@media (min-width: 1440px) {
  .kpi-row--grid5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .kpi-row--grid5 > :nth-child(5) { grid-column: span 1; }
}
@media (max-width: 899px) {
  .kpi-row--grid5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi-row--grid5 > :nth-child(5) { grid-column: span 2; }
}
.kpi-row--grid5 .kpi-card__sub { line-height: 1.45; }
.kpi-row--grid5 .kpi-card__value { white-space: nowrap; }

.af-explain {
  display: flex;
  align-items: center;
  gap: var(--notice-gap);
  width: 100%;
  text-align: left;
  padding: var(--notice-pad-y) var(--notice-pad-x);
  margin-bottom: var(--space-4);
  background: var(--notice-bg);
  border: 1px solid var(--notice-border);
  border-radius: var(--notice-radius);
  cursor: pointer;
  font-family: inherit;

  font-size: var(--font-size-sm);
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              background var(--motion-fast) var(--motion-ease-standard);
}
.af-explain:hover { border-color: var(--color-primary-300); background: var(--color-primary-100); }
.af-explain:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.af-explain__ico { display: inline-flex; color: var(--color-primary-500); flex: none; }
.af-explain__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.af-explain__t { font-size: var(--font-size-base); font-weight: var(--font-weight-medium); color: var(--color-fg); }
.af-explain__s { font-size: var(--font-size-xs); color: var(--color-muted); }

.af-explain__chev { display: inline-flex; color: var(--color-meta); flex: none; }

.af-ex__nav {
  position: sticky;
  top: calc(-1 * var(--space-5));
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding: var(--space-2) 0 var(--space-3);
  margin: calc(-1 * var(--space-2)) 0 var(--space-3);
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border-soft);
}
.af-ex__navbtn {
  height: var(--control-height-sm);
  padding: 0 var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: var(--color-surface);
  color: var(--color-fg-2);
  font-family: inherit;
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard),
              background var(--motion-fast) var(--motion-ease-standard);
}
.af-ex__navbtn:hover { border-color: var(--color-primary-300); color: var(--color-primary-500); }
.af-ex__navbtn.is-on {
  border-color: var(--color-primary-500);
  background: var(--color-primary-50);
  color: var(--color-primary-600);
}
.af-ex__sec + .af-ex__sec { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--color-border-soft); }
.af-ex__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-3); }
.af-ex__no {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; flex: none;
  border-radius: var(--radius-sm);
  background: var(--color-primary-500); color: #fff;
  font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
}
.af-ex__t { font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.af-ex__h { font-size: var(--font-size-xs); color: var(--color-muted); }
.af-ex__body { min-width: 0; }

.af-caliber {
  display: inline-block;
  padding: 0 6px;
  border-radius: var(--radius-sm);
  background: var(--color-info-bg);
  color: var(--color-info);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.6;
  vertical-align: baseline;
}

.af-hint {
  position: relative;
  display: inline-flex;
  align-items: center;
  vertical-align: -2px;
  margin-left: 3px;
  color: var(--color-muted);
  cursor: help;
}
.af-hint:hover,
.af-hint:focus-visible { color: var(--color-accent-text); }
.af-hint:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; border-radius: 2px; }
.af-hint__tip {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 60;
  width: max-content;
  max-width: 240px;
  padding: 6px 10px;
  font-size: var(--font-size-xs);
  font-weight: 400;
  line-height: 1.55;
  text-align: left;
  white-space: normal;
  color: var(--color-accent-on);
  background: var(--color-fg);
  border-radius: var(--radius-md);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}
.af-hint:hover .af-hint__tip,
.af-hint:focus-visible .af-hint__tip { display: block; }

.af-money {
  position: relative;
  cursor: help;
}
.af-money:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; border-radius: 2px; }
.af-money__tip {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 60;
  width: max-content;
  padding: 6px 10px;
  font-size: var(--font-size-xs);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
  white-space: nowrap;
  color: var(--color-accent-on);
  background: var(--color-fg);
  border-radius: var(--radius-md);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}
.af-money:hover .af-money__tip,
.af-money:focus-visible .af-money__tip { display: block; }

.cm-hero {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: var(--space-8);
  align-items: center;
}
.cm-hero__label { font-size: var(--font-size-sm); color: var(--color-muted); }
.cm-hero__value {
  margin-top: var(--space-1);
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--font-letter-spacing-display);
  line-height: var(--font-line-height-tight);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
}
.cm-hero__sub {
  margin-top: var(--space-3);
  display: flex; flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}
.cm-cat__sub { margin-top: var(--space-1); font-size: var(--font-size-xs); color: var(--color-meta); font-variant-numeric: tabular-nums; }

.cm-grouphead { display: flex; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-3); }
.cm-grouphead__name {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg);
}
.cm-grouphead__meta { font-size: var(--font-size-xs); color: var(--color-muted); }
.cm-grouphead__amt { margin-left: auto; font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg); font-variant-numeric: tabular-nums; }
.cm-more { margin-top: var(--space-2); display: flex; justify-content: flex-end; }

.cm-narrow-sub { display: none; }

.cm-table td:last-child, .cm-table th:last-child { white-space: nowrap; }

.cm-master {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: var(--space-6);
  align-items: start;
}
.cm-plist { display: flex; flex-direction: column; gap: 2px; max-height: 460px; overflow-y: auto; }
.cm-plist__hd { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); }
.cm-plist__count { font-size: var(--font-size-xs); color: var(--color-meta); font-variant-numeric: tabular-nums; }
.cm-pitem {
  display: flex; align-items: center; gap: var(--space-3);
  width: 100%; padding: var(--space-2) var(--space-3);
  border: none; border-radius: var(--radius-md);
  background: transparent; text-align: left; cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.cm-pitem:hover { background: var(--color-surface-2); }
.cm-pitem:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.cm-pitem.is-active { background: var(--color-primary-50); }
.cm-pitem__meta { flex: 1; min-width: 0; }
.cm-pitem__name { display: block; font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-pitem__roles { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
.cm-pitem__amt { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg); font-variant-numeric: tabular-nums; white-space: nowrap; }

.cm-heroline { display: flex; align-items: center; gap: var(--space-3); }
.cm-heroline__meta { min-width: 0; }
.cm-heroline__name { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.cm-heroline__sub { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: 3px; }
.cm-heroline__amt { margin-left: auto; text-align: right; }
.cm-heroline__amt-label { font-size: var(--font-size-xs); color: var(--color-muted); }
.cm-heroline__amt-val {
  font-size: var(--font-size-2xl); font-weight: var(--font-weight-semibold); color: var(--color-fg);
  font-variant-numeric: tabular-nums; letter-spacing: var(--font-letter-spacing-display);
}
.cm-catgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.cm-catbox { padding: var(--space-3); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); background: var(--color-surface-2); }
.cm-catbox__label { font-size: var(--font-size-xs); color: var(--color-muted); }
.cm-catbox__val { margin-top: var(--space-1); font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); font-variant-numeric: tabular-nums; }
.cm-catbox__sub { margin-top: 2px; font-size: var(--font-size-xs); color: var(--color-meta); font-variant-numeric: tabular-nums; }
.cm-catbox--total { background: var(--color-accent-bg); border-color: var(--color-primary-200); }
.cm-catbox--total .cm-catbox__label { color: var(--color-accent-text); }

.cm-catbox--pick { cursor: pointer; transition: border-color var(--motion-fast) var(--motion-ease-standard), box-shadow var(--motion-fast) var(--motion-ease-standard); }

.cm-catbox--pick:hover { border-color: var(--color-primary-200); box-shadow: var(--shadow-sm); }
.cm-catbox--pick:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.cm-catbox--pick.is-active { border-color: var(--color-accent); background: var(--color-accent-bg); }
.cm-catbox--pick.is-active .cm-catbox__label { color: var(--color-accent-text); }

.cm-catbox__on { font-size: var(--font-size-xs); color: var(--color-accent-text); }
.cm-catgrid__tip { margin-top: var(--space-2); }

.cm-catchips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.cm-catchip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px var(--space-3);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  color: var(--color-fg-2);
  font-size: var(--font-size-xs);
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-standard);
}
.cm-catchip:hover { border-color: var(--color-primary-200); }
.cm-catchip:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.cm-catchip.is-active {
  background: var(--color-accent-bg);
  border-color: var(--color-primary-200);
  color: var(--color-accent-text);
  font-weight: var(--font-weight-medium);
}

.cm-table--detail { table-layout: fixed; }

.cm-table--detail .cm-c-grp { border-left: 1px solid var(--color-border); }
.cm-table--detail .st-col-fcast { border-left: 0; }

.cm-filter-tag {
  display: inline-flex; align-items: center; gap: var(--space-1);
  padding: 2px var(--space-2); border-radius: var(--radius-pill);
  background: var(--color-accent-bg); color: var(--color-accent-text);
  font-size: var(--font-size-xs); font-variant-numeric: tabular-nums;
}
.cm-filter-tag__x {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; padding: 0; border: 0; border-radius: 50%;
  background: transparent; color: inherit; cursor: pointer;
}
.cm-filter-tag__x:hover { background: var(--color-primary-200); }

.co-drill { cursor: pointer; border-bottom: 1px dashed transparent; transition: color var(--motion-fast) var(--motion-ease-standard); }
.co-drill:hover { color: var(--color-accent-text); border-bottom-color: var(--color-accent); }

.cm-report { display: flex; flex-direction: column; gap: var(--space-4); }
.cm-report__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.cm-report__kpi { padding: var(--space-3); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); background: var(--color-surface-2); }
.cm-report__kpi-label { font-size: var(--font-size-xs); color: var(--color-muted); }
.cm-report__kpi-val { margin-top: 2px; font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); font-variant-numeric: tabular-nums; }
.cm-report__sec { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg); }

.my-comm-card { cursor: pointer; transition: box-shadow var(--motion-fast) var(--motion-ease-standard); }
.my-comm-card:hover { box-shadow: var(--shadow-md); }
.my-comm-card:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.my-comm-card__title { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--color-fg); }
.my-comm-card__amount { font-size: var(--font-size-3xl); font-weight: var(--font-weight-semibold); color: var(--color-fg); font-variant-numeric: tabular-nums; letter-spacing: var(--font-letter-spacing-display); line-height: var(--font-line-height-tight); }
.my-comm-card__label { margin-top: var(--space-1); font-size: var(--font-size-xs); color: var(--color-muted); }
.my-comm-card__cats { margin-top: var(--space-3); font-size: var(--font-size-sm); color: var(--color-fg-2); }

.member-rate-list { display: flex; flex-direction: column; gap: var(--space-2); }
.member-rate-row { display: flex; align-items: center; gap: var(--space-3); min-height: 44px; }
.member-rate-row__name { flex: 1; min-width: 0; display: flex; align-items: center; gap: var(--space-2); font-size: var(--font-size-sm); color: var(--color-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.member-rate-row__input { flex: 0 0 132px; }
.member-rate-row__state { flex: 0 0 auto; font-size: var(--font-size-xs); }
.member-rate-hint { margin-top: var(--space-2); display: flex; align-items: flex-start; gap: var(--space-2); font-size: var(--font-size-xs); line-height: 1.7; }
.member-rate-hint--warn { color: var(--color-warning-text); }
.member-rate-hint--info { color: var(--color-muted); }

@media (max-width: 768px) {
  .cm-hero { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .cm-master { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }

  .cm-plist { flex-direction: row; overflow-x: auto; overflow-y: hidden; max-height: none; padding-bottom: var(--space-1); }
  .cm-pitem { flex: 0 0 auto; width: auto; padding-right: var(--space-4); }
  .cm-pitem__roles { display: none; }
  .cm-catgrid { grid-template-columns: minmax(0, 1fr); }

  .cm-c-time, .cm-c-base, .cm-c-rate { display: none; }
  .cm-narrow-sub { display: block; }
  .cm-table th, .cm-table td { padding-left: var(--space-2); padding-right: var(--space-2); }
  .cm-table td { overflow-wrap: break-word; }
  .cm-table td:first-child .mono, .cm-table th:first-child { font-size: var(--font-size-xs); }
  .cm-table td:first-child { width: 118px; }
  .cm-table td:last-child { min-width: 78px; }
  .cm-heroline { flex-wrap: wrap; row-gap: var(--space-3); }
  .cm-heroline__amt { margin-left: 0; width: 100%; text-align: left; }
  .cm-plist__count { white-space: nowrap; }
  .cm-report__kpis { grid-template-columns: minmax(0, 1fr); }
  .member-rate-row { flex-wrap: wrap; }
  .member-rate-row__input { flex: 1 1 132px; }
}

@media (max-width: 768px) {
  #ps-tabs { flex-wrap: wrap; padding: 4px; }
  #ps-tabs .seg__btn { flex: 1 1 auto; }
}

.co-row { cursor: pointer; }
.co-row.is-open { background: var(--color-surface-2); }
.co-toggle { color: var(--color-muted); }
.co-ops { white-space: nowrap; }
.co-ops .btn + .btn { margin-left: var(--space-2); }
.co-expand { padding: var(--space-4); background: var(--color-surface-2); }

.co-adj-scope {
  margin-top: var(--space-3);
  padding: var(--space-3);
  border: 1px solid var(--color-primary-200);
  border-left-width: 3px;
  border-radius: var(--radius-md);
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
  font-size: var(--font-size-sm);
  line-height: 1.6;
}

.st-row { cursor: pointer; }

.st-row.is-open,
.st-row.is-open:hover { background: var(--color-bg); }
.st-row.is-open > td { border-bottom-color: transparent; }

.st-drill {
  padding: var(--space-4) var(--space-4) var(--space-4);
  background: var(--color-bg);
  border-top: 2px solid var(--color-border);
}

@media (min-width: 1024px) {
  .st-drill {
    position: sticky;
    left: 0;
    width: calc(100vw - var(--sidebar-width) - var(--page-padding) * 2 - var(--space-3) * 2 - 2px);
    max-width: 100%;
  }
}

.st-drill-head {
  display: flex; align-items: center; gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.st-drill-head svg { flex: none; color: var(--color-muted); }

.st-drill-head__t { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.st-drill-head__meta { margin-left: auto; font-size: var(--font-size-xs); color: var(--color-meta); }
.st-drill-hint {
  display: flex; align-items: flex-start; gap: var(--space-2);
  padding: var(--space-3); margin-bottom: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-warning-bg); color: var(--color-warning-text);
  font-size: var(--font-size-sm);
}

.st-drill-kpis {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3); margin-bottom: var(--space-4);
}
.st-drill-kpi {
  padding: var(--space-3);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}
.st-drill-kpi__k { font-size: var(--font-size-xs); color: var(--color-muted); }
.st-drill-kpi__v {
  margin-top: var(--space-1);
  font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg-2);
  font-variant-numeric: tabular-nums;
}

.st-drill-kpi--main {
  background: var(--color-accent-bg);
  border-color: var(--color-primary-200);
}
.st-drill-kpi--main .st-drill-kpi__v {
  font-size: var(--font-size-xl); color: var(--color-fg);
}
.st-drill-diff { color: var(--color-warning-text); }
.st-drill-tag {
  display: inline-block; padding: 0 var(--space-2); border-radius: var(--radius-sm);
  background: var(--color-surface); color: var(--color-fg-2); font-size: var(--font-size-xs);

  white-space: nowrap;
}
.st-drill-tag--priv { background: var(--color-warning-bg); color: var(--color-warning-text); }

.st-col-on {
  color: var(--color-muted);
  font-feature-settings: "tnum", "lnum";
}
.st-col-off {

  color: var(--color-primary-600);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  font-feature-settings: "tnum", "lnum";
}
.st-col-off--zero { color: var(--color-muted); font-weight: var(--font-weight-regular); }
.st-col-sub {
  margin-top: 1px;
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: 1.35;
  white-space: nowrap;
}

.st-drill .table--sub tbody td.st-col-online,
.st-drill .table--sub tbody td.st-col-offline { vertical-align: top; padding-top: var(--space-2); }

.st-drill .table--sub tbody td {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
  background: transparent;
}
.st-drill .table--sub tbody tr:hover td { background: var(--color-surface-2); }

.st-drill .table--sub tbody td:first-child { font-size: var(--font-size-sm); }
.st-drill .table--sub tbody td:first-child .cell-sub { margin-top: var(--space-1); color: var(--color-meta); }

.st-drill .table--sub tbody td.st-drill-amt {
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-base);
  color: var(--color-fg);
}

.st-rule { margin-bottom: var(--space-3); }

.st-rule__inner {
  display: flex; align-items: flex-start; gap: var(--notice-gap);
  padding: var(--notice-pad-y) var(--notice-pad-x);
  border-radius: var(--notice-radius);
  border: 1px solid var(--notice-border);
  background: var(--notice-bg);
  color: var(--notice-fg);
  font-size: var(--font-size-sm);
  line-height: 1.6;
}

.st-rule__inner svg { flex: none; align-self: flex-start; margin-top: calc((1.6em - 16px) / 2); color: var(--notice-ico); }

.st-rule--danger .st-rule__inner {
  background: var(--color-danger-bg);
  border-color: var(--color-danger-border);
  color: var(--color-danger-strong);
}
.st-rule--danger .st-rule__inner svg { color: var(--color-danger-strong); }

.st-rule--warn .st-rule__inner {
  background: var(--color-warning-bg);
  border-color: var(--color-warning-border);
  color: var(--color-warning-text);
}
.st-rule--warn .st-rule__inner svg { color: var(--color-warning-text); }

.th-sub {
  display: block;
  font-weight: var(--font-weight-regular);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
  line-height: 1.35;
}

.th-note {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  margin-left: 3px;
  color: var(--color-muted);
  cursor: help;
  transition: color var(--motion-fast) var(--motion-ease-standard);
}
.th-note:hover { color: var(--color-accent-text); }
.th-note svg { flex: none; }

.field-label .th-note { margin-left: var(--space-1); vertical-align: -1px; }

.th-note.is-corner {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  margin-left: 0;
  z-index: 1;
}

.st-col-muted { color: var(--color-muted); }

.st-drill .table--sub thead .th-sub { color: var(--color-meta); }

@media (max-width: 768px) {
  .st-drill { padding: var(--space-3); }
  .st-drill-kpis { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .st-drill-kpi { display: flex; align-items: baseline; gap: var(--space-2); padding: var(--space-2) var(--space-3); }
  .st-drill-kpi__v { margin-top: 0; }
  .st-drill-head { flex-wrap: wrap; }
}

.st-col-note {
  margin-top: 2px;
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: 1.35;
  white-space: nowrap;
}

.st-drill .table--sub tbody tr.st-drill-sumrow td {

  border-top: 2px solid var(--color-border);
  font-weight: var(--font-weight-semibold);
  white-space: nowrap;
}
.st-drill .table--sub tbody tr.st-drill-sumrow td:first-child {
  color: var(--color-muted);
  font-weight: var(--font-weight-regular);
}

.st-col-pending {
  margin-top: 2px;
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: 1.35;
  white-space: nowrap;
}

.st-pending-bar {
  display: flex;
  align-items: flex-start;
  gap: var(--notice-gap);
  margin-top: var(--space-3);
  padding: var(--notice-pad-y) var(--notice-pad-x);

  border: 1px solid var(--notice-warn-border);
  border-radius: var(--notice-radius);
  background: var(--notice-warn-bg);
  color: var(--color-warning-text);
  font-size: var(--font-size-sm);
  line-height: 1.5;
}

.st-pending-bar svg { flex: none; align-self: flex-start; margin-top: calc((1.5em - 16px) / 2); }
.st-pending-bar b { font-weight: var(--font-weight-semibold); }

.st-pending-bar__body { flex: 1; min-width: 0; }
.st-pending-bar__stale { display: flex; align-items: flex-start; gap: var(--space-1); margin-bottom: var(--space-1); }
.st-pending-bar__stale svg { flex: none; margin-top: calc((1.5em - 14px) / 2); }

.st-col-ns { font-feature-settings: "tnum", "lnum"; }
.st-drill .table--sub tbody td.st-col-nscol { vertical-align: top; padding-top: var(--space-2); }
.st-drill .table--sub tbody tr.st-drill-sumrow td:nth-child(6) { font-feature-settings: "tnum", "lnum"; }

.st-col-pendcol {
  vertical-align: top;
  padding-top: var(--space-2);
  border-left: 1px dashed var(--color-border);
  border-right: 1px dashed var(--color-border);
}
.st-drill .table--sub thead th.st-col-pendhead {
  border-left: 1px dashed var(--color-border);
  border-right: 1px dashed var(--color-border);
}
.st-col-pending { font-feature-settings: "tnum", "lnum"; }
.st-col-none { color: var(--color-muted); }

.st-rule__more {
  margin-left: var(--space-2);
  color: var(--color-primary-500);
  border-bottom: 1px dashed currentColor;
  cursor: help;
  transition: color var(--motion-fast) var(--motion-ease-standard);
}
.st-rule__more:hover { color: var(--color-primary-600); }

.cm-table td.cm-co-total {
  color: var(--color-primary-600);
  font-weight: var(--font-weight-semibold);
  font-feature-settings: "tnum", "lnum";
}

.cm-foot-row td {
  border-top: 2px solid var(--color-border);
  background: var(--color-surface-2);
  font-weight: var(--font-weight-semibold);
  white-space: nowrap;
}

.cm-foot-row td:first-child {
  color: var(--color-muted);
  font-weight: var(--font-weight-regular);
}

.cm-table td.cm-co-sumtotal,
.cm-foot-row td.cm-co-sumtotal {
  color: var(--color-primary-600);
  font-size: var(--font-size-base);
}

.st-kpi-hidden { color: var(--color-muted); }

.cm-general {
  display: flex; align-items: center; gap: var(--notice-gap); flex-wrap: wrap;
  padding: var(--notice-pad-y) var(--notice-pad-x); margin-bottom: var(--space-3);
  border: 1px solid var(--notice-border); border-radius: var(--notice-radius);
  background: var(--notice-bg);
}
.cm-general--warn { border-color: var(--notice-warn-border); background: var(--notice-warn-bg); }

.cm-general__ico { flex: none; display: inline-flex; align-items: center; color: var(--notice-ico); }
.cm-general--warn .cm-general__ico { color: var(--notice-warn-ico); }

.cm-general > .btn, .cm-general > button:last-child { margin-left: auto; }

.cm-general:empty { display: none; }
.cm-gb__label { font-size: var(--font-size-sm); font-weight: 600; color: var(--color-primary-700); flex: none; }
.cm-gb__label--warn { color: var(--color-warning-text); }
.cm-gb__v {
  font-size: 22px; font-weight: 700; color: var(--color-primary-700);
  font-variant-numeric: tabular-nums; flex: none;
}
.cm-gb__v--warn { color: var(--color-warning-text); font-size: 18px; }
.cm-gb__d { font-size: var(--font-size-sm); color: var(--color-fg-2); line-height: 1.7; flex: 1; min-width: 220px; }
.cm-gb__d b { color: var(--color-fg); }
.cm-general .btn { flex: none; }

.cm-gb-note {
  grid-column: 1 / -1; margin-top: var(--space-2); padding: var(--space-3);
  border-radius: var(--radius-md); background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  font-size: var(--font-size-sm); color: var(--color-fg-2); line-height: 1.8;
}
.cm-gb-note b { color: var(--color-fg); }

.cm-pend-badge {
  display: inline-block; font-size: 11px; line-height: 16px; padding: 0 6px;
  border-radius: var(--radius-sm); white-space: nowrap; font-weight: var(--font-weight-semibold);
  background: var(--color-warning-bg); color: var(--color-warning-text);
  border: 1px solid var(--color-warning-border);
}

.table tbody tr.cm-pend-row > td { background: var(--color-warning-bg-soft); }
.table tbody tr.cm-pend-row:hover > td { background: var(--color-warning-bg-hover); }

.cm-pend-sold { color: var(--color-danger-strong); font-weight: var(--font-weight-semibold); font-size: var(--font-size-sm); }

.co-src {
  display: inline-flex;
  align-items: center;
  padding: 0 6px;
  height: 18px;
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-sm);
}
.co-src + .pnl-flag { margin-left: 4px; }

.co-carry {
  margin-top: 3px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-warning-text);
  white-space: nowrap;
  cursor: help;
}

.co-carry-head__badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 var(--space-2);
  margin-right: var(--space-2);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-warning-text);
  background: var(--color-warning-bg);
  border: 1px solid var(--color-warning);
  border-radius: var(--radius-sm);
  cursor: help;
}

.pf-hero {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  margin: var(--space-3) 0;
}

.pf-hero.is-win { background: var(--color-danger-bg); }
.pf-hero.is-loss { background: var(--color-success-bg); }
.pf-hero__main { flex: none; min-width: 220px; }
.pf-hero__k {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  margin-bottom: var(--space-1);
}
.pf-hero__v {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-semibold);
  font-feature-settings: "tnum", "lnum";
  line-height: 1.2;
}
.pf-hero.is-win .pf-hero__v { color: var(--color-danger); }
.pf-hero.is-loss .pf-hero__v { color: var(--color-success); }
.pf-hero__sub {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  margin-top: var(--space-1);
}
.pf-hero__side { flex: 1; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2) var(--space-5); }

.pf-sides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-4); }
.pf-side {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
}
.pf-side__t {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted);
  margin-bottom: var(--space-3);
}
.pf-kv {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-1) 0;
  font-size: var(--font-size-sm);
}
.pf-kv span { color: var(--color-muted); }
.pf-kv b { font-feature-settings: "tnum", "lnum"; font-weight: var(--font-weight-medium); }
.pf-kv--strong b { color: var(--color-primary-600); font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); }
.pf-note {
  margin-top: var(--space-3);
  padding-top: var(--space-2);
  border-top: 1px dashed var(--color-border);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: 1.5;
}

.pf-cat td {
  background: var(--color-surface-2);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg-2);
}

@media (max-width: 900px) {
  .pf-hero { flex-direction: column; align-items: flex-start; }
  .pf-sides { grid-template-columns: 1fr; }
}

.st-col-fcast {
  color: var(--color-primary-600);
  font-weight: var(--font-weight-semibold);
  font-feature-settings: "tnum", "lnum";
}

.table tbody td.st-col-fcast {
  color: var(--color-primary-600);
  font-weight: var(--font-weight-semibold);
}

.table thead th.st-col-payable,
.table tbody td.st-col-payable {
  color: var(--color-primary-600);
  font-weight: var(--font-weight-semibold);
}

.table thead th.st-col-online,
.table tbody td.st-col-online,
.table tfoot td.st-col-online {
  color: var(--color-muted);
  font-weight: 400;
}

.table thead th.st-col-fcast,
.table tbody td.st-col-fcast {
  border-left: 1px solid var(--color-border);
}

.t35-hint {
  display: block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
  white-space: nowrap;
  cursor: help;
}

td .t35-hint { margin-top: 1px; }

.table tbody td .an-tag {
  font-size: 11px;
  line-height: 16px;
  padding: 0 5px;
  vertical-align: 1px;
}
.st-drill .table--sub tbody td.st-col-forecast {
  vertical-align: top;
  padding-top: var(--space-2);

  background: transparent;
}

.table thead th.st-col-fcasthead,
.table thead th.st-col-fcast {
  color: var(--color-primary-600);
  font-weight: var(--font-weight-semibold);
}
.st-drill .table--sub thead th.st-col-fcasthead {

  background: var(--table-header-bg);
  color: var(--color-primary-600);
  font-weight: var(--font-weight-semibold);
  border-left: 1px solid var(--color-border);
}
.st-drill .table--sub tbody tr.st-drill-sumrow td.st-col-fcast {

  background: transparent;
  font-size: var(--font-size-base);
}

.ax-label {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  flex: none;
}

.ax-tilde {
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  flex: none;
  user-select: none;
}

.ax-stores { position: relative; flex: none; }
.ax-stores__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 10px;
  min-width: 186px;
  max-width: 300px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: var(--font-size-base);
  cursor: pointer;
}
.ax-stores__btn:hover { background: var(--color-surface-2); }
.ax-stores__sum {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ax-stores__caret {
  margin-left: auto;
  color: var(--color-muted);
  display: inline-flex;
  align-items: center;
}
.ax-stores__panel {
  position: absolute;
  z-index: 40;
  top: calc(100% + 4px);
  left: 0;
  min-width: 100%;
  max-height: 260px;
  overflow-y: auto;
  padding: 4px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
}
.ax-stores__opt {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  white-space: nowrap;
  font-size: var(--font-size-sm);
}
.ax-stores__opt:hover { background: var(--color-surface-2); }
.ax-stores__opt input { margin: 0; flex: none; }

.hs-row:hover { background: var(--color-surface-2); }

.table thead th.hs-grouphd,

.table thead th.pl-grouphd,
.table thead th.thead-grouphd {
  height: 34px;
  text-align: center;
  color: var(--color-fg);
  font-weight: var(--font-weight-semibold);
  border-bottom: 1px solid var(--color-border);
}

.card__body.hs-cardbody--flush-top { padding-top: 0; }

.hs-drill { padding: var(--space-2) 0 var(--space-2) var(--space-3); background: var(--color-surface-2); }
.hs-drill .table--sub { background: var(--color-bg); }

.detail-drill .hs-drill,
.detail-drill .hs-drill .table--sub {
  background: transparent;
}
.hs-sub-sep td {
  font-size: var(--font-size-xs); color: var(--color-muted);
  background: var(--color-surface-2); padding: var(--space-2) var(--space-3);
}

.table tfoot td.st-col-payable { color: var(--color-primary-600); font-weight: var(--font-weight-semibold); }
.table tfoot td.st-col-fcast { border-left: 1px solid var(--color-border); }

.hs-pend-note { color: var(--color-warning-text); }

.hs-store {
  display: inline-block; font-size: var(--font-size-xs); line-height: 18px; padding: 0 6px;
  border-radius: var(--radius-sm); white-space: nowrap;
  background: var(--color-primary-50); color: var(--color-primary-700);
  border: 1px solid var(--color-primary-200);
}

.hs-drill__head {
  display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-1) 0 var(--space-2);
}
.hs-drill__sum { margin-left: auto; font-size: var(--font-size-sm); color: var(--color-fg-2); }
.hs-drill__sum b { color: var(--color-primary-700); font-variant-numeric: tabular-nums; }

.hs-drill__sec {
  display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;
  margin: var(--space-3) 0 var(--space-2); padding-top: var(--space-2);
  border-top: 1px solid var(--color-border);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg);
}
.hs-drill__sec:first-of-type { margin-top: var(--space-1); }

.hs-drill__sec--pend { color: var(--color-warning-text); }
.hs-drill__sec-tag {
  font-size: 11px; line-height: 17px; padding: 0 7px; border-radius: var(--radius-sm);
  background: var(--color-surface-2); color: var(--color-fg-2); border: 1px solid var(--color-border);
  font-weight: var(--font-weight-regular); white-space: nowrap;
}
.hs-drill__sec--pend .hs-drill__sec-tag {
  background: var(--color-warning-bg); color: var(--color-warning-text); border-color: var(--color-warning-border);
}
.hs-drill__sec-num { margin-left: auto; font-size: var(--font-size-sm); font-weight: var(--font-weight-regular); color: var(--color-fg-2); }
.hs-drill__sec-num b { color: var(--color-fg); font-variant-numeric: tabular-nums; }
.hs-drill__sec--pend .hs-drill__sec-num b { color: var(--color-warning-text); }

.table tbody tr.hs-drill__sum-row > td {

  background: var(--color-info-bg); font-weight: var(--font-weight-semibold); color: var(--color-fg);
}

.hs-wel {
  display: inline-block; margin-left: 6px; font-size: var(--font-size-xs); line-height: 16px;
  padding: 0 5px; border-radius: var(--radius-sm); vertical-align: middle; white-space: nowrap;
  background: var(--color-warning-bg); color: var(--color-warning-text);
  border: 1px solid var(--color-warning-border); font-weight: var(--font-weight-semibold);
}

.hs-neg-tag {
  display: inline-block; margin-left: 6px; font-size: var(--font-size-xs); line-height: 16px;
  padding: 0 5px; border-radius: var(--radius-sm); vertical-align: middle; white-space: nowrap;
  background: var(--color-danger-bg); color: var(--color-danger-strong);
  border: 1px solid var(--color-danger-border); font-weight: var(--font-weight-semibold);
}

.table tbody tr.hs-prod-wel > td { background: var(--color-warning-bg); }
.table tbody tr.hs-prod-wel > td:first-child { box-shadow: inset 3px 0 0 var(--color-warning-accent); }

.hs-sku {
  display: inline-block; max-width: 140px; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; vertical-align: bottom;
  font-family: var(--font-family-mono); font-size: var(--font-size-xs); color: var(--color-fg);
}

.hs-static {
  display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;
  padding: 8px var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-surface-2); border: 1px solid var(--color-border);
  min-height: var(--control-height);
}

.hs-file { display: flex; align-items: center; gap: var(--space-3); }
.hs-file__box {
  flex: 1; min-width: 0; padding: 8px var(--space-3);
  border: 1px dashed var(--color-border); border-radius: var(--radius-sm);
  font-size: var(--font-size-sm); color: var(--color-fg-2); cursor: pointer;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.hs-file__box:hover { border-color: var(--color-primary-400); color: var(--color-primary-600); }

.sdo-filters { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }

.sdo-tip {
  display: flex; gap: var(--space-2); align-items: flex-start;
  background: var(--color-accent-bg); border: 1px solid var(--color-border-soft);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-3);
  font-size: var(--font-size-xs); line-height: 1.9; color: var(--color-fg-2);
}
.sdo-tip b { color: var(--color-fg); }
.sdo-em { color: var(--color-fg); font-weight: var(--font-weight-semibold); }

.sdo-chips { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-3); }
.sdo-chips__k { font-size: var(--font-size-xs); color: var(--color-meta); }
.sdo-chip {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: var(--font-size-xs); color: var(--color-meta);
  border: 1px solid var(--color-border-soft); border-radius: var(--radius-lg);
  padding: 3px 10px; background: var(--color-surface);
}
.sdo-chip b { color: var(--color-fg); }

.sdo-prod { line-height: 1.5; padding: 2px 0; }
.sdo-prod + .sdo-prod { border-top: 1px dashed var(--color-border-soft); margin-top: 4px; padding-top: 4px; }

.sdo-prod__head { line-height: 1.45; }
.sdo-prod__head .sdo-after { white-space: nowrap; margin-left: 4px; }

.sdo-prod__nm {
  white-space: normal; overflow-wrap: break-word; line-height: 1.45;
}

.sdo-prod__meta {
  display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;
  font-size: var(--font-size-xs); color: var(--color-meta); margin-top: 2px;
}
.sdo-prod__meta > * { flex: 0 0 auto; white-space: nowrap; }

.sdo-sku {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--font-size-xs);
  background: var(--color-surface-2); padding: 0 5px; border-radius: var(--radius-sm);
  white-space: nowrap;
}

.sdo-kind {
  font-size: var(--font-size-xs); border: 1px solid var(--color-border-soft);
  padding: 0 5px; border-radius: var(--radius-sm); white-space: nowrap;
}
.sdo-after { color: var(--color-warning); }
.sdo-unmatched { color: var(--color-danger); font-size: var(--font-size-xs); }

.sdo-sumtbl thead th.is-num,
.sdo-sumtbl tbody td.is-num,
.sdo-sumtbl tfoot td.is-num { white-space: nowrap; }

.sdo-no { font-size: var(--font-size-sm); }
.sdo-rf { color: var(--color-danger); }
.sdo-ses {
  font-size: var(--font-size-xs); white-space: nowrap;
  background: var(--color-accent-bg); color: var(--color-accent-text);
  padding: 1px 7px; border-radius: var(--radius-lg);
}
.sdo-st {
  font-size: var(--font-size-xs); white-space: nowrap;
  background: var(--color-surface-2); color: var(--color-fg-2);
  padding: 1px 7px; border-radius: var(--radius-sm);
}
.sdo-st--cancel { background: var(--color-danger-bg); color: var(--color-danger); }

.sdo-chk {
  margin-top: var(--space-3); padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-left: 3px solid var(--color-success);
  background: var(--color-success-bg);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs); line-height: 1.95; color: var(--color-fg-2);
}
.sdo-chk b { color: var(--color-fg); }
.sdo-chk--bad { background: var(--color-danger-bg); border-color: var(--color-danger); }

.sdo-scope {
  display: inline-block; margin-left: 8px;
  font-size: var(--font-size-xs); font-weight: var(--font-weight-regular);
  background: var(--color-accent); color: var(--color-accent-on);
  padding: 1px 8px; border-radius: var(--radius-lg);
}

.kpi-card__act {
  display: block; width: 100%; margin-top: var(--space-1); padding: 0;
  border: 0; background: none; text-align: left; cursor: pointer;
  font-size: var(--font-size-xs); line-height: 1.5;
  color: var(--color-warning-text);
}
.kpi-card__act:hover { text-decoration: underline; }
.kpi-card__act-go { font-weight: var(--font-weight-medium); text-decoration: underline; }
.kpi-card__act:disabled { opacity: 0.6; cursor: default; text-decoration: none; }

.st-rule__toggle {
  margin-left: var(--space-2); padding: 0; border: 0; background: none; cursor: pointer;
  font-size: inherit; font-family: inherit; line-height: inherit;
  color: var(--color-primary-500); border-bottom: 1px dashed currentColor;
}
.st-rule__toggle:hover { color: var(--color-primary-600); }
.st-rule__full {
  margin-top: var(--space-2); padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2); border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs); line-height: 1.9; color: var(--color-fg-2);
}
.st-rule__sec + .st-rule__sec {
  margin-top: var(--space-3); padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border-soft);
}
.st-rule__sec-t { font-weight: var(--font-weight-medium); color: var(--color-fg); margin-bottom: 2px; }
.st-rule__list { margin: 0; padding-left: 18px; }
.st-rule__list li { margin: 0; }

.st-drill .table--sub tbody tr.st-drill-segrow td {
  background: var(--color-surface-2);
  border-top: 2px solid var(--color-border);
  border-bottom: 1px solid var(--color-border-soft);
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
  white-space: nowrap;
}
.st-drill-segrow__t {
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg-2);
  margin-right: var(--space-3);
}
.st-drill-segrow__d { color: var(--color-meta); font-size: var(--font-size-xs); }

.st-drill .table--sub tbody tr.st-drill-pendrow td {
  background: var(--color-surface);
  color: var(--color-fg-2);
}
.st-drill .table--sub tbody tr.st-drill-pendrow td:first-child {
  border-left: 2px dashed var(--color-border);
}
.st-drill .table--sub tbody tr.st-drill-pendrow:hover td { background: var(--color-surface-2); }

.st-drill .table--sub tbody tr.st-drill-sumrow--pend td {
  border-top: 1px dashed var(--color-border);
  color: var(--color-meta);
}
.st-drill .table--sub tbody tr.st-drill-sumrow--pend td:first-child { color: var(--color-meta); }

.st-comp { margin-bottom: var(--space-4); }

.st-comp__head {
  display: flex; align-items: center; gap: var(--space-2);
  margin-bottom: var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border-soft);
}
.st-comp__head svg { flex: none; color: var(--color-accent); }

.st-comp__t { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.st-comp__meta { margin-left: auto; font-size: var(--font-size-xs); color: var(--color-meta); }
.st-comp__empty {
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  font-size: var(--font-size-sm); color: var(--color-fg-2);
}
.st-comp__empty b { color: var(--color-fg); }

.st-comp__tbl tbody td { vertical-align: top; }

.st-comp__tbl tbody td { padding: var(--space-2) var(--space-3); }

#dt-body .st-comp__tbl > tbody > tr > td {
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
}

.st-comp__tbl { table-layout: fixed; width: 100%; max-width: 900px; }

.st-comp__nm { color: var(--color-fg); font-weight: var(--font-weight-medium); }

.st-comp__tag {
  display: inline-block; margin-left: 6px; padding: 0 5px;
  border-radius: var(--radius-sm);
  background: var(--color-surface-2); color: var(--color-meta);
  font-size: var(--font-size-xs); font-weight: var(--font-weight-regular);
}

.st-comp__rate { font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.st-comp__na { color: var(--color-muted); font-weight: var(--font-weight-regular); }

.st-comp__amt { font-weight: var(--font-weight-semibold); }
.st-comp__amt.is-on { color: var(--color-accent-text); }
.st-comp__amt.is-passive { color: var(--color-muted); }

.st-comp__st { font-size: var(--font-size-xs); line-height: 1.5; }
.st-comp__st.is-off { color: var(--color-muted); }
.st-comp__st.is-on { color: var(--color-fg-2); }
.st-comp__st.is-warn { color: var(--color-warning-text); }
.st-comp__st b { font-weight: var(--font-weight-semibold); }

.st-comp__sumrow td {
  border-top: 1px dashed var(--color-border);
  color: var(--color-meta);
}
.st-comp__sumrow td:first-child { font-size: var(--font-size-xs); }
.st-comp__sumrow b { color: var(--color-fg); }

.st-comp__drift {
  display: flex; align-items: flex-start; gap: var(--space-2);
  padding: var(--space-3); margin-bottom: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-warning-bg); color: var(--color-warning-text);
  font-size: var(--font-size-xs); line-height: 1.7;
}

.st-comp__drift svg { flex: none; align-self: flex-start; margin-top: calc((1.7em - 16px) / 2); }
.st-comp__drift b { font-weight: var(--font-weight-semibold); }

.detail-head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  background: transparent;
  border: none;
  border-radius: 0;

  padding: var(--space-1) var(--space-6);
}

.detail-head--bare {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.detail-back {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: none;
  height: var(--control-height-sm);
  padding: 0 var(--space-3) 0 var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg-2);
  font-family: inherit;
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard),
    border-color var(--motion-fast) var(--motion-ease-standard);
}
.detail-back:hover { background: var(--color-surface-2); color: var(--color-fg); border-color: var(--color-gray-400); }
.detail-back:active { background: var(--color-gray-100); }
.detail-back:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.detail-head__main { flex: 1; min-width: 0; }
.detail-head__act { flex: none; }

.detail-head__act .btn--ghost {
  background: var(--color-surface);
  border-color: var(--color-gray-400);
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
}
.detail-head__act .btn--ghost:hover:not(:disabled) {
  border-color: var(--color-accent-text);
  color: var(--color-accent-text);
  background: var(--color-primary-50);
}

.detail-stack > * + * { margin-top: var(--space-4); }

.dt-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--space-2) var(--space-5); }
.dt-kv__row { display: flex; gap: var(--space-2); min-width: 0; font-size: var(--font-size-sm); line-height: 1.7; }
.dt-kv__row--wide { grid-column: 1 / -1; }
.dt-kv__k { flex: none; width: 112px; white-space: nowrap; color: var(--color-muted); }
.dt-kv__v { min-width: 0; color: var(--color-fg); word-break: break-word; }

@media (max-width: 760px) {
  .dt-kv { grid-template-columns: minmax(0, 1fr); }
}

.detail-drill .st-drill,
.detail-drill .hs-drill { margin-bottom: 0; }

.chart-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1279px) {
  .chart-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  .chart-grid--three { grid-template-columns: minmax(0, 1fr); }
}

.adcost__main {
  font-size: 26px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.adcost__label { margin-top: 2px; font-size: var(--font-size-xs); color: var(--color-muted); }

.adcost__bar {
  margin-top: var(--space-4);
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  overflow: hidden;
}
.adcost__bar > span {
  display: block; height: 100%;
  background: var(--color-accent);
  border-radius: var(--radius-pill);
  transition: width var(--motion-base) var(--motion-ease-standard);
}
.adcost__hint { margin-top: var(--space-2); font-size: var(--font-size-xs); color: var(--color-muted); }

.perf-pend-note {
  color: var(--color-warning-text);
  white-space: nowrap;
}

.pl-table { font-variant-numeric: tabular-nums; }

.pl-table thead tr:last-child th {
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);
}

.card__body.pl-cardbody--flush-top { padding-top: 0; }

.pl-head-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

#page-root .imp-runtime-card:empty { display: none; }
#page-root .imp-runtime-card:not(:empty) { margin-top: var(--space-4); }

.pl-head-right .select {
  height: var(--control-height-sm);
  padding-top: 0;
  padding-bottom: 0;
  font-size: var(--font-size-sm);
}
.pl-head-right .btn {
  height: var(--control-height-sm);
  padding-top: 0;
  padding-bottom: 0;
  font-size: var(--font-size-sm);
}

.table thead th.pl-owner {
  height: 34px;
  text-align: center;
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-xs);
  letter-spacing: 0.02em;
  border-bottom: 1px solid var(--color-border);
}
.table thead th.pl-owner--talent {
  background: var(--color-primary-50);
  color: var(--color-primary-700);
}
.table thead th.pl-owner--project {
  background: var(--color-surface-2);
  color: var(--color-fg-2);
}

.pl-link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dashed var(--color-border);
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
              border-color var(--motion-fast) var(--motion-ease-standard);
}
.pl-link:hover,
.pl-link:focus-visible {
  color: var(--color-accent-text);
  border-bottom-color: var(--color-accent-text);
}
.pl-link:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: 2px; }

.pl-strong { font-weight: var(--font-weight-semibold); }

.table th.pl-sub,
.table td.pl-sub {
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-700);
}

.pl-table tbody td:first-child { white-space: nowrap; }

.pl-link.pl-month {
  color: var(--color-primary-500);
  border-bottom: none;
  font-weight: var(--font-weight-semibold);
}
.pl-link.pl-month:hover,
.pl-link.pl-month:focus-visible {
  color: var(--color-primary-600);
  border-bottom: none;
  text-decoration: underline;
}

.pmd-table { font-variant-numeric: tabular-nums; }

.pmd-table tbody tr.pmd-row { cursor: pointer; }

.pmd-table tbody tr.pmd-row:hover > td { background: var(--color-surface-2); }
.pmd-table tbody tr.pmd-row.is-open > td { background: var(--color-surface-2); }

.pmd-caret {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; color: var(--color-muted);
  transition: transform var(--motion-fast) var(--motion-ease-standard);
}
.pmd-table tbody tr.pmd-row.is-open .pmd-caret { transform: rotate(90deg); }

.pmd-table tbody tr.pmd-sub[hidden] { display: none; }

.pmd-table tbody tr.pmd-sub > td {
  background: var(--color-surface-2);
  font-size: var(--font-size-sm);
  padding-top: var(--space-2); padding-bottom: var(--space-2);
}
.pmd-table tbody tr.pmd-sub:hover > td { background: var(--color-surface-2); }

.pmd-table tbody tr.pmd-sub > td:first-child { box-shadow: inset 3px 0 0 var(--color-border-soft); }

.pmd-noorder {
  display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: var(--radius-sm);
  font-size: var(--font-size-xs); line-height: 1.6;
  background: var(--color-warning-bg); color: var(--color-warning-text);
}
.pmd-noorder-row > td { opacity: 0.85; }

.pmd-table tbody tr.pmd-note[hidden] { display: none; }
.pmd-table tbody tr.pmd-note > td {
  background: var(--color-surface-2);
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  padding-top: 2px; padding-bottom: var(--space-2);

  white-space: normal;
}

.pmd-table tbody tr.pmd-note > td:first-child { box-shadow: inset 3px 0 0 var(--color-border-soft); }

.pmd-table tbody tr.pmd-note .pmd-noorder-tip { display: inline; margin-top: 0; max-width: none; white-space: normal; }

.pmd-table tbody tr.pmd-note .pmd-noorder { margin-left: 0; margin-right: var(--space-2); }

.pmd-table tbody tr.pmd-note .cell-sub + .cell-sub { margin-top: 0; }
.pmd-table tbody tr.pmd-note .pmd-noorder-tip + .cell-sub { margin-left: var(--space-3); }

.st-pend {
  margin-top: var(--space-1);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-warning-text);
  white-space: nowrap;
}

.perm-group { padding: var(--space-4) 0; border-bottom: 1px solid var(--color-border-soft); }
.perm-group:last-child { border-bottom: 0; }
.perm-group__head { display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; margin-bottom: var(--space-3); }

.perm-group__title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); }

.perm-group__menus { font-size: var(--font-size-xs); color: var(--color-muted); }

.perm-list { display: flex; flex-direction: column; gap: var(--space-1); }

.perm-item { display: flex; align-items: flex-start; gap: var(--space-2); padding: var(--space-2) var(--space-2);
  border-radius: var(--radius-sm); cursor: pointer; font-size: var(--font-size-sm); }
.perm-item:hover { background: var(--color-surface-2); }
.perm-item input[type="checkbox"] { margin-top: 2px; flex: none; }
.perm-item__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.perm-item__top { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
.perm-item__label { color: var(--color-fg); }

.perm-item__code { font-size: var(--font-size-xs); color: var(--color-muted); font-family: var(--font-family-mono);    }
.perm-item__scope { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.5; }

.perm-kind { display: inline-flex; align-items: center; height: 18px; padding: 0 var(--space-2);
  border-radius: var(--radius-pill); font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
  white-space: nowrap; }
.perm-kind--menu { color: var(--color-accent-text); background: var(--color-accent-bg); }
.perm-kind--action { color: var(--color-muted); background: var(--color-surface-2); }
.perm-kind--field { color: var(--color-warning-text); background: var(--color-warning-bg); }

.perm-legend { display: flex; align-items: center; gap: var(--space-2); margin-left: auto; flex-wrap: wrap; }
.perm-legend__t { font-size: var(--font-size-xs); color: var(--color-muted); margin-right: var(--space-2); }

.an-ins { margin-bottom: var(--space-6); }
.an-ins-headline {
  font-size: var(--font-size-base);
  color: var(--color-fg);
  line-height: 1.7;
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-3);
}
.an-ins-list { display: flex; flex-direction: column; }
.an-ins-row {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: var(--space-3);
  align-items: baseline;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  line-height: 1.7;
}
.an-ins-row + .an-ins-row { border-top: 1px solid var(--color-border-soft); }

.an-ins-row.is-risk { background: var(--color-warning-bg-soft); }
.an-ins-row.is-warn { background: var(--color-warning-bg-soft); }
.an-ins-label { font-size: var(--font-size-sm); color: var(--color-muted); white-space: nowrap; }
.an-ins-row.is-risk .an-ins-label { color: var(--color-warning-text); font-weight: var(--font-weight-medium); }
.an-ins-row.is-warn .an-ins-label { color: var(--color-warning-text); }
.an-ins-text { color: var(--color-fg); min-width: 0; }
.an-ins-text b { font-weight: var(--font-weight-semibold); }

.an-ins-num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; font-weight: var(--font-weight-medium); }
.an-ins-note { font-size: var(--font-size-xs); color: var(--color-muted); white-space: nowrap; }
.an-ins-row.is-risk .an-ins-note,
.an-ins-row.is-warn .an-ins-note { color: var(--color-warning-text); }

.an-ask { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border-soft); }
.an-ask__row { display: flex; gap: var(--space-2); align-items: center; }
.an-ask__row .input { flex: 1; min-width: 0; }
.an-ask__row .btn { flex: none; }
.an-ask__sug { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; margin-top: var(--space-2); }

.an-ask__chip {
  border: 1px solid var(--color-border-soft);
  background: var(--color-surface);
  color: var(--color-fg);
  border-radius: var(--radius-pill);
  padding: 2px var(--space-3);
  font-size: var(--font-size-xs);
  cursor: pointer;
}
.an-ask__chip:hover { border-color: var(--color-accent); color: var(--color-accent-text); }
.an-ask__hint { font-size: var(--font-size-xs); color: var(--color-muted); }
.an-ask__out:not(:empty) { margin-top: var(--space-3); }
.an-ask__loading { font-size: var(--font-size-sm); color: var(--color-muted); display: flex; align-items: center; gap: 6px; }
.an-ask__q { font-size: var(--font-size-sm); color: var(--color-muted); margin-bottom: var(--space-2); }
.an-ask__a {
  font-size: var(--font-size-sm);
  line-height: 1.8;
  color: var(--color-fg);
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
}

.an-ask__src { font-size: var(--font-size-xs); color: var(--color-muted); margin-top: var(--space-2); }
.an-ask__err { font-size: var(--font-size-sm); color: var(--color-danger); }

.perm-toolbar { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; padding-bottom: var(--space-3); margin-bottom: var(--space-3); border-bottom: 1px solid var(--color-border-soft); }
.perm-head-row, .perm-menu-row { display: grid; grid-template-columns: minmax(150px, 1fr) 104px 210px 200px; gap: var(--space-2); align-items: center; }
.perm-head-row { padding: var(--space-2) var(--space-3); font-size: var(--font-size-xs); color: var(--color-muted); border-bottom: 1px solid var(--color-border-soft); }
.perm-menu-row { padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-border-soft); }
.perm-menu-row:last-child { border-bottom: 0; }
.perm-menu-row:hover { background: var(--color-surface-2); }
.perm-menu-row__name { color: var(--color-fg); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.perm-menu-row__note { font-size: var(--font-size-xs); color: var(--color-muted); }

.perm-menu-row__note strong,
.perm-item__scope strong { font-weight: var(--font-weight-semibold); color: var(--color-fg-2); }
.perm-menu-row__note code,
.perm-item__scope code {
  padding: 0 4px; border-radius: var(--radius-sm);
  background: var(--color-surface-2); color: var(--color-fg-2);
  font-family: var(--font-family-mono); font-size: 0.94em;
}
.perm-menu-row__read, .perm-menu-row__act, .perm-menu-row__money { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.perm-read { display: inline-flex; align-items: center; gap: 4px; font-size: var(--font-size-sm); color: var(--color-fg); cursor: pointer; }
.perm-muted { font-size: var(--font-size-xs); color: var(--color-muted); }
.perm-chip { display: inline-block; padding: 1px 7px; border-radius: var(--radius-sm); font-size: var(--font-size-xs); cursor: pointer;
  border: 1px solid var(--color-border-soft); color: var(--color-muted); background: transparent; user-select: none; }
.perm-chip:hover { border-color: var(--color-border); color: var(--color-fg); }
.perm-chip.is-on { background: var(--color-accent-bg); border-color: var(--color-accent-border); color: var(--color-accent-text); }
.perm-chip--money.is-on { background: var(--color-warning-bg); border-color: var(--color-warning-border); color: var(--color-warning-text); }
.perm-group__head--fold { cursor: pointer; user-select: none; align-items: center; }
.perm-fold { font-size: 11px; color: var(--color-muted); width: 12px; }
.perm-group.is-folded .perm-group__body { display: none; }
.perm-global { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-2) 0; }
.perm-item--inline { align-items: center; }

.tt-bar {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  padding: var(--space-3) var(--space-5);
  margin-bottom: var(--space-6);
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  flex-wrap: wrap;
}
.tt-bar__l { display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; }
.tt-bar__k { font-size: var(--font-size-sm); color: var(--color-fg-2); }
.tt-bar__v { font-size: 20px; font-weight: var(--font-weight-medium); color: var(--color-accent-text); }
.tt-bar__hint { font-size: var(--font-size-sm); color: var(--color-muted); }
.tt-bar__r { display: flex; gap: var(--space-2); flex-shrink: 0; }
.tt-bar__r .btn { height: var(--control-height-sm); min-height: var(--control-height-sm); }

.me-counts { display: inline-flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
.me-counts__item {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--font-size-xs); color: var(--color-meta); white-space: nowrap;
}
.me-counts__item b { color: var(--color-fg); font-variant-numeric: tabular-nums; }
.me-counts__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--color-muted); }
.me-counts__dot--warning { background: var(--color-warning); }
.me-counts__dot--success { background: var(--color-success); }
.me-counts__dot--danger  { background: var(--color-danger); }

.me-reject { color: var(--color-danger); }

@media (max-width: 768px) {
  .tt-bar { flex-direction: column; align-items: stretch; gap: var(--space-3); }
  .tt-bar__r { justify-content: stretch; }
  .tt-bar__r .btn { flex: 1; min-height: var(--control-height-touch); }
  .tt-bar__hint { display: none; }

  .toolbar--join-card > .table-toolbar__right {
    flex-wrap: wrap;
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
  .me-counts { width: 100%; gap: var(--space-3); }
}

.rf-who {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-4);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
}
.rf-who__l { display: flex; align-items: baseline; gap: var(--space-2); flex-wrap: wrap; }
.rf-who__k { font-size: var(--font-size-sm); color: var(--color-fg-2); }
.rf-who__me { font-size: var(--font-size-base); font-weight: var(--font-weight-medium); }
.rf-who__tag {
  font-size: 11px; color: var(--color-fg-2);
  background: var(--color-surface); border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-pill); padding: 1px 8px;
}

.rf-who__tag--proxy {
  color: var(--color-warning-text);
  background: var(--color-warning-bg-soft);
  border-color: var(--color-warning-bg-soft);
}
.rf-who__other { margin-bottom: var(--space-4); }

.rf-req { color: var(--color-danger); }

.rf-sec { margin-bottom: var(--space-4); }
.rf-sec:last-child { margin-bottom: 0; }

.rf-sec__head { display: flex; gap: var(--space-2); align-items: flex-start; }

.rf-sec__sub { margin-top: 3px; line-height: 1.5; }

.rf-sec .module-card__body > div { margin-bottom: var(--space-4); }
.rf-sec .module-card__body > div:last-child { margin-bottom: 0; }

.rf-alloc-cell { margin-top: calc(var(--space-2) * -1); }
.rf-alloc-cell > .field-label { display: none; }
.rf-alloc {
  display: flex; align-items: center; gap: var(--space-2);
  padding: 9px 12px;
  border: 1px dashed var(--color-border-soft);
  border-radius: var(--radius-md);

  background: transparent;
}
.rf-alloc__k { font-size: var(--font-size-sm); color: var(--color-fg-2); }
.rf-alloc__v { font-size: var(--font-size-base); font-weight: var(--font-weight-medium); color: var(--color-accent-text); }

@media (max-width: 768px) {

  .rf-who { padding: var(--space-2) var(--space-3); }
  .rf-who__me { font-size: var(--font-size-sm); }

  .rf-sec { margin-bottom: var(--space-3); }
  .rf-sec .module-card__body > div { margin-bottom: var(--space-3); }
  .rf-sec__sub { display: none; }
}

.app-shell.is-standalone .sidebar,
.app-shell.is-standalone .page-tabs-bar {
  display: none !important;
}

.app-shell.is-hr,
.app-shell.is-finance,

.app-shell.is-project,

.app-shell.is-shop {
  --drawer-top: var(--tabs-bar-height);
}
.app-shell.is-standalone .app-main {
  margin-left: 0;
  width: 100%;
}

.app-shell.is-standalone .page { padding-top: var(--space-4); }

.app-shell.is-standalone.is-finance .sidebar {
  display: flex !important;
}
.app-shell.is-standalone.is-finance .app-main {
  margin-left: calc(var(--sidebar-width) + var(--shell-inset));
  width: auto;
}

@media (max-width: 768px) {
  .app-shell.is-standalone.is-finance .app-main {
    margin-left: 0;
    width: auto;
  }
}
.app-shell.is-standalone.is-finance .page-tabs-bar {
  display: flex !important;
}

.app-shell.is-standalone.is-admin .sidebar {
  display: flex !important;
}

.app-shell.is-standalone.is-admin .app-main {
  margin-left: calc(var(--sidebar-width) + var(--shell-inset));
  width: auto;
}
@media (max-width: 768px) {
  .app-shell.is-standalone.is-admin .app-main {
    margin-left: 0;
    width: auto;
  }
}

.app-shell.is-standalone.is-portal .sidebar {
  display: flex !important;
}

.app-shell.is-standalone.is-portal .app-main {
  margin-left: calc(var(--sidebar-width) + var(--shell-inset));
  width: auto;
}
@media (max-width: 768px) {
  .app-shell.is-standalone.is-portal .app-main {
    margin-left: 0;
    width: auto;
  }
}

body.is-standalone .sf-actions { padding-bottom: env(safe-area-inset-bottom, 0); }

.rf-sec .input,
.rf-sec .select,
.rf-sec .textarea {
  width: 100%;
}

.tt-kpi-price { color: var(--color-price); }

.tt-row > td:last-child,
.tt-row > td:nth-last-child(2) { white-space: nowrap; }

.tt-no {
  font-variant-numeric: tabular-nums;
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  white-space: nowrap;
}

.tt-src { white-space: nowrap; }
.tt-src--warn { color: var(--color-warning); }

.tt-note {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tt-att-thumb {
  display: block;
  width: 56px;
  height: 40px;
  object-fit: cover;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  background: #fff;
  cursor: zoom-in;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.tt-att-thumb:hover { border-color: var(--color-accent); }

.tt-att-pdf {
  position: relative; padding: 0; overflow: hidden;
  background: var(--color-surface-2); cursor: zoom-in;
}
.tt-att-pdf__cv { display: block; width: 100%; height: auto; }
.tt-att-pdf__badge {
  position: absolute; right: 2px; bottom: 2px;
  padding: 0 3px; border-radius: 2px;
  background: rgba(0, 0, 0, .55); color: #fff;
  font-size: 10px; line-height: 14px; letter-spacing: .3px;
}

.tt-att-pdf.is-ready .tt-att-pdf__badge { display: none; }

.tt-att-pdf.is-fallback { display: inline-flex; align-items: center; justify-content: center; }
.tt-att-pdf.is-fallback .tt-att-pdf__cv { display: none; }
.tt-att-pdf.is-fallback .tt-att-pdf__badge {
  position: static; background: transparent;
  color: var(--color-fg-3); font-size: var(--font-size-xs);
}

.fin-tk-amt { color: var(--color-price); font-weight: var(--font-weight-semibold); }

.fin-fixtbl .fin-tk-amt { color: var(--color-price); font-weight: var(--font-weight-semibold); }

.tt-att-doc {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: var(--control-height-sm);
  padding: 0 var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: none;
  color: var(--color-accent-text);
  font-family: inherit;
  font-size: var(--font-size-sm);
  white-space: nowrap;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.tt-att-doc:hover { border-color: var(--color-accent); background: var(--color-accent-bg); }

.av-stage {
  position: relative;
  height: 66vh;
  overflow: auto;
  padding: var(--space-3);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  cursor: grab;
}
.av-stage.is-drag { cursor: grabbing; }

.av-stage.is-drag, .av-stage.is-drag * { user-select: none; }

.av-inner { display: block; width: fit-content; margin: 0 auto; }

.av-img { display: block; max-width: none; height: auto; }

.av-page { display: block; background: var(--color-surface); margin: 0 auto var(--space-3); }
.av-page:last-child { margin-bottom: 0; }
.av-status {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  padding: 0 var(--space-6);
  color: var(--color-muted); font-size: var(--font-size-sm);
  text-align: center;

  pointer-events: none;
}
.av-status--err { color: var(--color-warning-text); }

.av-bar { display: flex; align-items: center; gap: var(--space-3); flex: 1; min-width: 0; }

.av-bar__l { display: flex; align-items: center; gap: var(--space-2); flex-shrink: 0; }

.av-bar__r { display: flex; align-items: center; gap: var(--space-3); margin-left: auto; min-width: 0; }

.av-bar__r > .btn { flex: 0 0 auto; }

.av-bar__pct { min-width: 48px; text-align: center; font-size: var(--font-size-sm); color: var(--color-fg-2); font-variant-numeric: tabular-nums; flex: 0 0 auto; }
.av-bar__sep { width: 1px; height: 18px; background: var(--color-border); flex: 0 0 auto; }

.av-bar__hint { font-size: var(--font-size-xs); color: var(--color-muted); white-space: nowrap; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 768px) {

  .av-bar__hint { display: none; }
  .av-stage { height: 56vh; }
}

.av { position: relative; }
.av-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  color: var(--color-fg-2);
  cursor: pointer;
  box-shadow: var(--shadow-sm);

  font: inherit;
}
.av-nav--prev { left: var(--space-2); }
.av-nav--next { right: var(--space-2); }
.av-nav:hover:not(:disabled) {
  border-color: var(--color-accent);
  color: var(--color-accent-text);
}
.av-nav:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; }
.av-nav:disabled { opacity: .35; cursor: default; box-shadow: none; }

.av-none {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 320px;
  padding: var(--space-6);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  text-align: center;
}
.av-none__sub { font-size: var(--font-size-xs); color: var(--color-muted); }

.av-note { margin-top: var(--space-2); font-size: var(--font-size-xs); color: var(--color-muted); }

.av-bar__name,
.av-bar__scope {
  max-width: 200px;

  min-width: 0;
  flex: 0 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.av-bar__scope { max-width: 240px; }
.av-bar__name:empty { display: none; }

.btn.is-disabled { opacity: .5; pointer-events: none; }

@media (max-width: 768px) {
  .av { display: flex; flex-wrap: wrap; align-items: center; }
  .av-stage { width: 100%; }
  .av-nav { position: static; transform: none; margin: var(--space-2) 0 0 var(--space-2); }
}

.tt-pv__doc { padding: var(--space-6) var(--space-4); text-align: center; }
.tt-pv__doc-t { margin-bottom: var(--space-4); color: var(--color-fg-2); font-size: var(--font-size-sm); }

.tt-detail__box {
  padding: 0;

  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: var(--space-6);
  align-items: start;
}

.tt-detail__box--noatt { grid-template-columns: minmax(0, 1fr); }
.tt-detail__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3) var(--space-5);
}
.tt-detail__item { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.tt-detail__item--wide { grid-column: 1 / -1; }
.tt-detail__k { font-size: var(--font-size-xs); color: var(--color-muted); }
.tt-detail__v {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  overflow-wrap: anywhere;
}

.tt-detail__att { min-width: 0; }

.tt-detail__img {
  display: block;

  max-width: 100%;
  max-height: 440px;
  object-fit: contain;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  background: var(--color-surface);

  cursor: zoom-in;
}
.tt-detail__doc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg);

  font-family: inherit;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
}
.tt-detail__doc:hover { border-color: var(--color-accent); }
.tt-detail__doc > span { display: flex; flex-direction: column; gap: 2px; font-size: var(--font-size-sm); }
.tt-detail__doc em { font-style: normal; font-size: var(--font-size-xs); color: var(--color-muted); }

.tu-note {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-1) var(--space-3);
  margin-bottom: var(--space-4);
}
.tu-note__k { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-price); }
.tu-note__v { font-size: var(--font-size-sm); color: var(--color-price); }

.tu-sec { margin-bottom: var(--space-4); }
.tu-sec--last { margin-bottom: 0; }

.tu-sec .module-card--bare { padding: var(--space-4) 0 0; border-bottom: none; }

.tu-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4) var(--space-5);
}
.tu-span2 { grid-column: 1 / -1; }

.tu-grid .field-hint { line-height: var(--font-line-height-body); }

#tt-fields { display: block; }
.tu-field { display: block; }

.tu-field > .input { width: 100%; }

.tu-alloc {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  margin-top: var(--space-1);
}
.tu-alloc__k { font-size: var(--font-size-sm); color: var(--color-price); }
.tu-alloc__v {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-price);
  font-variant-numeric: tabular-nums;
}

.tu-shot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-height: 132px;
  padding: var(--space-4);

  border: 2px dashed var(--color-primary-200);
  border-radius: var(--radius-md);

  background: transparent;
  color: var(--color-accent-text);
  font-family: inherit;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.tu-shot:hover { border-color: var(--color-accent); background: var(--color-surface-2); }

.tu-shot__ico { display: flex; }
.tu-shot__t { font-size: var(--font-size-base); font-weight: var(--font-weight-medium); }
.tu-shot__s { font-size: var(--font-size-xs); color: var(--color-muted); }

.tu-shot--busy {
  flex-direction: row;
  gap: var(--space-2);
  cursor: default;
  border-style: solid;
  border-color: var(--color-border);
  background: var(--color-surface-2);
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
}
.tu-shot__spin {
  width: 14px; height: 14px; flex: 0 0 auto;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-accent);
  border-radius: 50%;
  animation: tu-spin .8s linear infinite;
}
@keyframes tu-spin { to { transform: rotate(360deg); } }

.tu-shot__wrap { width: 100%; }

.tu-shot__view {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 120px;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  background: #fff;
  font-family: inherit;
  cursor: zoom-in;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.tu-shot__view:hover { border-color: var(--color-accent); }
.tu-shot__img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.tu-shot__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-success-text);
}
.tu-shot__bar > span { flex: 1; }

.tt-del { color: var(--color-danger); }

#tt-shot.is-dragover .tu-shot {
  border-style: solid;
  border-color: var(--color-accent);
  background: var(--color-primary-50);
}

#tt-shot.is-dragover .tu-shot__view { border-color: var(--color-accent); }

.tu-shot__doc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  max-width: calc(100% - var(--space-6));
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  color: var(--color-fg-2);
  text-align: left;
}
.tu-shot__doc > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  font-size: var(--font-size-base);
  color: var(--color-fg);
}
.tu-shot__doc em {
  font-style: normal;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.tu-shot__doc:hover { border-color: var(--color-primary-500); }

.tu-auto {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: var(--radius-full);
  background: var(--color-success-bg);
  color: var(--color-success-text);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  vertical-align: 1px;
}

@media (max-width: 1023px) {
  .tt-detail__box, .tt-detail__box--noatt { grid-template-columns: minmax(0, 1fr); }

  .tt-detail__att {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border-soft);
  }
}

@media (max-width: 768px) {

  .tt-detail__grid { grid-template-columns: 1fr; }
  .tt-detail__img { max-width: 100%; max-height: 320px; }
  .tu-grid { grid-template-columns: 1fr; }
  .tu-shot { min-height: 116px; }

  .tu-shot__view { height: 96px; }
}

.eb-head__s { font-size: var(--font-size-sm); color: var(--color-muted); }
.eb-head__s--end { margin-left: auto; }

.eb-who {

  display: flex; align-items: center; gap: var(--space-2);
  margin-left: auto;
  line-height: var(--font-line-height-body);
}

.module-card__head:has(.eb-who) { padding-top: 6px; padding-bottom: 6px; }

.eb-who--proxy .eb-chip--tag {
  background: var(--color-warning-bg-soft);
  color: var(--color-warning-text);
}
.eb-who__k { font-size: var(--font-size-sm); color: var(--color-fg-2); }

.eb-who__me {
  font-size: var(--font-size-base); font-weight: var(--font-weight-medium);
  color: var(--color-accent-text);
}
.eb-who-other { margin-bottom: var(--space-5); }

.eb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
.eb-fld { display: block; }

.eb-grid--inv { grid-template-columns: 1fr 1fr; margin-top: var(--space-6); }
@media (max-width: 768px) {
  .eb-grid--inv { grid-template-columns: 1fr; }
}

.eb-ro {
  display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;
  min-height: var(--control-height); padding: 0 var(--space-3);
  border: 1px dashed var(--color-border-soft); border-radius: var(--radius-md);
  background: var(--color-surface-2);
  font-size: var(--font-size-sm); color: var(--color-fg-2);
}
.eb-ro__v { font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); color: var(--color-fg); }

.eb-ro__v--amt { color: var(--color-price); }

.eb-ro__items {
  flex: 1 1 auto; min-width: 0;
  color: var(--color-fg-2); line-height: 1.5; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.eb-ro__n { font-size: var(--font-size-xs); color: var(--color-meta); }
.eb-ro__empty { color: var(--color-meta); }
.eb-ro__why { font-size: var(--font-size-xs); color: var(--color-meta); }

.eb-ro--warn {
  border-style: solid; border-color: var(--color-warning-text);
  background: var(--color-warning-bg); color: var(--color-fg-2);
}
.eb-ro--warn .eb-ro__why { color: var(--color-warning-text); }

.eb-invhd {
  display: flex; align-items: center; gap: var(--space-3);
  width: 100%; margin-top: var(--space-4);
  padding: 9px var(--space-3);
  border: 1px solid var(--color-border-soft); border-radius: var(--radius-md);
  background: var(--color-surface-2);
  font: inherit; font-size: var(--font-size-sm); color: var(--color-fg-2);
  cursor: pointer; text-align: left;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.eb-invhd:hover { border-color: var(--color-border); }
.eb-invhd__t { font-weight: var(--font-weight-medium); color: var(--color-fg); }
.eb-invhd__n { font-size: var(--font-size-xs); color: var(--color-meta); }

.eb-invhd__act { margin-left: auto; color: var(--color-accent-text); }

.eb-invhd[aria-expanded="true"] {
  border-bottom-left-radius: 0; border-bottom-right-radius: 0;
  border-bottom-color: transparent;
}

.eb-invpanel {
  margin-top: var(--space-2); padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border-soft); border-radius: var(--radius-md);
  background: var(--color-surface);
}

.eb-invhd[aria-expanded="true"] + .eb-invpanel {
  margin-top: 0;
  border-top-left-radius: 0; border-top-right-radius: 0; border-top-color: transparent;
}
.eb-invpanel__row {
  display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap;
  padding: 12px 0; border-bottom: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
}
.eb-invpanel__row:last-of-type { border-bottom: none; }

.eb-invpanel__n {
  flex: 0 0 auto; width: 20px; height: 20px; line-height: 20px; text-align: center;
  border-radius: 50%; background: var(--color-primary-50); color: var(--color-primary-700);
  font-size: 11px; font-weight: var(--font-weight-medium);
}

.eb-invpanel__src {
  flex: 0 0 auto; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--color-fg); font-weight: var(--font-weight-medium);
}

.eb-invpanel__f { color: var(--color-meta); }
.eb-invpanel__f b { color: var(--color-fg-2); font-weight: var(--font-weight-medium); font-variant-numeric: tabular-nums; }

.eb-invpanel__amt {
  margin-left: auto; color: var(--color-fg); font-weight: var(--font-weight-semibold);
  font-variant-numeric: tabular-nums;
}

.eb-invpanel__sub {
  flex: 1 1 100%; display: flex; flex-wrap: wrap;
  gap: 2px var(--space-4); padding-left: 32px;
}

.eb-invpanel__items { flex: 0 1 auto; color: var(--color-meta); overflow-wrap: anywhere; }
.eb-invpanel__items b { color: var(--color-fg-2); font-weight: var(--font-weight-medium); }

.eb-invpanel__tip {
  margin-top: var(--space-2); padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs); color: var(--color-meta); line-height: 1.6;
}

.eb-editbar {
  margin-bottom: var(--space-6); padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-accent-border); border-radius: var(--radius-md);
  background: var(--color-accent-bg);
  font-size: var(--font-size-sm); color: var(--color-fg-2);
}

.eb-editbar--reject {
  border-color: var(--color-danger-border);
  background: var(--color-danger-bg);
}
.eb-editbar__t { font-weight: var(--font-weight-medium); color: var(--color-fg); }
.eb-editbar__hint { margin-top: var(--space-1); color: var(--color-muted); }
.eb-editbar__r { margin-top: var(--space-1); color: var(--color-danger); }

.eb-editbar--reject .eb-editbar__t { color: var(--color-danger); }
.eb-editbar--reject .eb-editbar__t .mono { color: inherit; }

.eb-editbar__fails {
  margin-top: var(--space-2); padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-danger-border); border-radius: var(--radius-sm);
  background: var(--color-surface);
}
.eb-editbar__ft { font-weight: var(--font-weight-medium); color: var(--color-danger-strong); }
.eb-editbar__fl { margin: var(--space-1) 0 0; padding-left: 18px; list-style: disc; }
.eb-editbar__fl li { margin-top: 2px; color: var(--color-danger); }
.eb-editbar__fl code { font-family: var(--font-family-mono); font-size: var(--font-size-sm); }

.eb-editbar__fr { margin-left: var(--space-2); color: var(--color-fg-2); }

.eb-fld .input, .eb-fld .select { width: 100%; }
.eb-fld--full { grid-column: 1 / -1; }

.eb-grid--trip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-5);
}

.eb-schedbox {
  border: 1.5px solid var(--color-primary-200);
  border-radius: var(--radius-md);

  background: transparent;
  padding: var(--space-3) var(--space-4);
}

.eb-star-tip {
  display: flex;
  gap: var(--space-2);
  margin-top: var(--space-2);
  padding: var(--space-3) var(--space-4);
  background: var(--color-info-bg);
  border-left: 3px solid var(--color-primary-500);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  line-height: 1.6;
  color: var(--color-fg-2);
}

.eb-star-tip__ico { flex: 0 0 auto; display: inline-flex; margin-top: 2px; color: var(--color-primary-500); }
.eb-star-tip__body { flex: 1 1 auto; min-width: 0; }
.eb-star-tip__l--lead { font-weight: var(--font-weight-semibold); color: var(--color-primary-700); }
.eb-star-tip__l + .eb-star-tip__l { margin-top: 1px; }

.eb-star-tip__l:not(.eb-star-tip__l--lead) { padding-left: var(--space-2); }

.eb-chip--tag {
  display: inline-flex; align-items: center;

  padding: 1px var(--space-2);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-xs); white-space: nowrap;

  color: var(--color-primary-700); background: var(--color-primary-50);
}

.module-card__title .th-note { margin-left: var(--space-2); color: var(--color-muted); vertical-align: 1px; }
.module-card__title .th-note svg { width: 15px; height: 15px; }

.sf-shell > .form-actions.form-actions--total {
  display: flex;
  align-items: center;
  position: sticky;
  bottom: 24px;
  z-index: 90;
  width: fit-content;
  margin: var(--space-4) var(--space-6) 0 auto;
  padding: 12px 14px;
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-lit), var(--glass-lift);
}

.sf-shell > .form-actions.form-actions--total .eb-total__inner {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

.sf-shell > .form-actions.form-actions--total .btn {
  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
  min-width: 88px;
}

@media (max-width: 760px) {
  .sf-shell > .form-actions.form-actions--total {
    width: auto;
    margin: var(--space-3) 0 0;
  }
  .sf-shell > .form-actions.form-actions--total .btn { flex: 1; }
}
.eb-total__k { font-size: var(--font-size-sm); color: var(--color-fg-2); }
.eb-total__v {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  font-variant-numeric: tabular-nums;

  color: var(--color-price);
}
.eb-total__n { font-size: var(--font-size-xs); color: var(--color-muted); }

.eb-total__btns { display: flex; gap: var(--space-3); margin-left: auto; }

.eb-range { display: flex; align-items: center; gap: var(--space-2); }
.eb-range__item { flex: 1 1 0; min-width: 0; }
.eb-range__sep { flex: 0 0 auto; color: var(--color-muted); font-size: var(--font-size-sm); }

.eb-fld .dtp-trigger { height: var(--control-height); }

.eb-dt .dt__bd { padding: var(--space-4); }

.eb-add {
  width: 100%; margin-top: var(--space-3); height: var(--control-height);
  border: 1px dashed var(--color-border); border-radius: var(--radius-lg);
  background: transparent; color: var(--color-accent-text);
  font-size: var(--font-size-base); font-family: inherit; cursor: pointer;
}
.eb-add:hover { background: var(--color-accent-bg); border-color: var(--color-accent); }

.eb-grid--up { margin-top: var(--space-6); }
.eb-up {
  display: flex; align-items: center; gap: var(--space-2);
  min-height: var(--control-height); padding: var(--space-2) var(--space-3);
  border: 1px dashed var(--color-primary-200); border-radius: var(--radius-md);

  background: transparent; color: var(--color-accent-text);
  font-size: var(--font-size-sm); cursor: pointer;
}
.eb-up:hover { border-color: var(--color-accent); background: var(--color-surface-2); }

.eb-up--na {
  border-style: solid; border-color: var(--color-border-soft);
  background: var(--color-surface-2); color: var(--color-muted);
  cursor: default; font-size: var(--font-size-sm);
}
.eb-up--done { border-style: solid; border-color: var(--color-success); background: var(--color-success-bg); color: var(--color-success-text); cursor: default; }
.eb-up__img { width: 32px; height: 32px; object-fit: cover; border-radius: var(--radius-sm); flex: 0 0 auto; }
.eb-up__pdf {
  flex: 0 0 auto; padding: 2px 6px; border-radius: var(--radius-sm);
  background: var(--color-danger-bg); color: var(--color-danger); font-size: var(--font-size-xs);
}
.eb-up__name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--font-size-xs); }
.eb-up__del { border: none; background: transparent; color: var(--color-danger); font-size: var(--font-size-xs); cursor: pointer; }

.eb-opt { color: var(--color-muted); font-weight: var(--font-weight-regular); font-size: var(--font-size-xs); }

.eb-up--na.eb-tt {
  flex-direction: column; align-items: stretch; justify-content: center;
  gap: var(--space-1); min-height: 68px;

  padding: var(--space-1) var(--space-3);
}
.eb-tt__row { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }
.eb-tt__k { font-size: var(--font-size-sm); color: var(--color-muted); }
.eb-tt__v { font-size: var(--font-size-lg); color: var(--color-price); font-weight: var(--font-weight-semibold); }

.eb-tt__btn { margin-left: auto; flex: 0 0 auto; }
.eb-tt__note { font-size: var(--font-size-xs); color: var(--color-muted); }
.eb-tt__empty { color: var(--color-muted); font-weight: var(--font-weight-regular); }

.eb-files {
  display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;

  min-height: 68px; padding: 0 var(--space-3);

  border: 2px dashed var(--color-primary-200); border-radius: var(--radius-md);

  background: transparent;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              background var(--motion-fast) var(--motion-ease-standard);
}
.eb-files:hover { border-color: var(--color-accent); background: var(--color-surface-2); }
.eb-files:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.eb-files.is-dragover { border-style: solid; border-color: var(--color-accent); background: var(--color-primary-50); }

.eb-files.is-paste-target { border-style: solid; border-color: var(--color-accent); }

.eb-files.is-uploading { opacity: .6; pointer-events: none; }

.eb-files.is-uploading .eb-guide { display: none; }

.eb-guide { font-size: var(--font-size-xs); color: var(--color-meta); white-space: nowrap; }
.eb-guide b { color: var(--color-accent-text); font-weight: var(--font-weight-medium); }

.eb-guide__drop, .eb-guide__paste { display: none; }
.eb-files.is-dragover .eb-guide__idle { display: none; }
.eb-files.is-dragover .eb-guide__drop { display: inline; }
.eb-files.is-paste-target:not(.is-dragover) .eb-guide__idle { display: none; }
.eb-files.is-paste-target:not(.is-dragover) .eb-guide__paste { display: inline; }

.eb-files.has-files .eb-guide { display: none; }

.eb-file {
  position: relative; width: 54px; height: 54px; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--color-border); border-radius: var(--radius-md);
  background: var(--color-surface); overflow: visible;
}
.eb-file__img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-md); display: block; }

.eb-file__t {

  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold);
  color: var(--color-danger);
}
.eb-file--pdf { background: var(--color-danger-bg); border-color: var(--color-border); }

.eb-file--full { font-size: var(--font-size-xs); color: var(--color-muted); background: var(--color-surface-2); }

.eb-file__x {

  position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; padding: 0;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--color-border); border-radius: 50%;
  background: var(--color-surface); color: var(--color-muted);
  cursor: pointer; line-height: 1;
  transition: background var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard);
}

.eb-file__x:hover { background: var(--color-danger); border-color: var(--color-danger); color: var(--color-surface); }

.eb-file--locked { border-color: var(--color-success); background: var(--color-success-bg); }
.eb-file__lock {
  position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; padding: 0;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--color-success); border-radius: 50%;
  background: var(--color-success-bg); color: var(--color-success-text);
  line-height: 1;
}

.eb-file-add {
  width: 54px; height: 54px; flex: 0 0 auto; padding: 0;
  display: flex; align-items: center; justify-content: center;
  border: 1px dashed var(--color-primary-200); border-radius: var(--radius-md);
  background: var(--color-surface); color: var(--color-accent-text);
  cursor: pointer;
}
.eb-file-add:hover { border-color: var(--color-accent); background: var(--color-accent-bg); }

@media (max-width: 768px) {
  .eb-file, .eb-file-add { width: 40px; height: 40px; }
  .eb-file__x { top: -4px; right: -4px; }
}

@media (max-width: 768px) {
  .eb-grid { grid-template-columns: 1fr; }

  .module-card__head .eb-who { margin-left: 0; flex-basis: 100%; }

}

.eb-dt .dt__hd {
  display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2);
  border-bottom: 1px solid var(--color-border-soft);

  border-radius: calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;
}

.eb-dt.eb-dt--c1 .dt__hd { background: var(--color-entry-tone-1); }
.eb-dt.eb-dt--c2 .dt__hd { background: var(--color-entry-tone-2); }
.eb-dt.eb-dt--c3 .dt__hd { background: var(--color-entry-tone-3); }
.eb-dt.eb-dt--c4 .dt__hd { background: var(--color-entry-tone-4); }
.eb-dt.eb-dt--c5 .dt__hd { background: var(--color-entry-tone-5); }

.eb-dt.eb-dt--c1 { --sub-mark-color: var(--color-tone-blue-fg); }
.eb-dt.eb-dt--c2 { --sub-mark-color: var(--color-tone-teal-fg); }
.eb-dt.eb-dt--c3 { --sub-mark-color: var(--color-tone-orange-fg); }
.eb-dt.eb-dt--c4 { --sub-mark-color: var(--color-tone-green-fg); }
.eb-dt.eb-dt--c5 { --sub-mark-color: var(--color-tone-purple-fg); }

.eb-dt.eb-dt--rej { --sub-mark-color: var(--color-danger); }

.module-card__head--plain .module-card__title.eb-sec-title {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-weight: var(--font-weight-semibold);
}
.eb-dt .dt__kind { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); }
.eb-dt .dt__amt {
  margin-left: auto; padding-left: var(--space-3);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-medium);
  font-variant-numeric: tabular-nums;
}
.eb-dt .dt__del {
  flex: 0 0 auto; border: none; background: transparent;
  color: var(--color-danger); font-size: var(--font-size-sm);
  cursor: pointer; padding: 0 var(--space-1);
}

.eb-dt {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}
.eb-dt + .eb-dt { margin-top: var(--space-4); }

.me-ops { white-space: nowrap; }
.me-ops .btn + .btn { margin-left: var(--space-2); }

.me-amt { font-weight: var(--font-weight-medium); font-variant-numeric: tabular-nums; }

.me-dhead {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: var(--space-4) var(--space-5); flex-wrap: wrap;
}
.me-dhead__main {
  display: flex; align-items: baseline; flex-wrap: wrap;
  gap: var(--space-1) var(--space-2); min-width: 0;
}
.me-dhead__no {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.me-dhead__meta { font-size: var(--font-size-sm); color: var(--color-muted); }
.me-dhead__meta b { color: var(--color-fg); font-weight: var(--font-weight-medium); }
.me-dhead__amt { display: flex; align-items: baseline; gap: var(--space-2); flex: none; }
.me-dhead__amt-k { font-size: var(--font-size-xs); color: var(--color-muted); }

.me-dhead__amt-v {
  color: var(--color-price);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.me-dinfo {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: var(--space-1) var(--space-5);
  margin-top: var(--space-3); padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-sm);
}
.me-dinfo__i { display: inline-flex; align-items: baseline; gap: var(--space-2); min-width: 0; }
.me-dinfo__k { flex: none; color: var(--color-muted); }
.me-dinfo__v { color: var(--color-fg); word-break: break-all; }

.me-detail__reject {
  margin-top: var(--space-3); padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-danger-border); border-radius: var(--radius-md);
  background: var(--color-danger-bg); color: var(--color-danger);
  font-size: var(--font-size-sm);
}

.me-detail__reject--inv { margin-top: var(--space-2); }
.me-rj-inv {
  display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); margin-top: var(--space-1);
}
.me-rj-inv code {
  font-family: var(--font-family-mono); color: var(--color-danger-strong);
  font-weight: var(--font-weight-medium);
}

.me-rj-inv i { font-style: normal; margin-left: 4px; color: var(--color-fg-2); }
.me-detail__note { margin-top: var(--space-2); font-size: var(--font-size-sm); color: var(--color-muted); }
.me-detail .table-wrap { margin-top: var(--space-3); }
.me-detail__sec {
  margin-top: var(--space-4); font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium); color: var(--color-fg);
}
.me-detail__logs { margin: var(--space-2) 0 0; padding-left: 18px; font-size: var(--font-size-sm); color: var(--color-muted); }
.me-detail__logs li { margin-bottom: var(--space-1); }
.me-detail__acts { margin-top: var(--space-4); display: flex; gap: var(--space-2); justify-content: flex-end; }
.me-detail__err { padding: var(--space-4); color: var(--color-danger); font-size: var(--font-size-sm); }

.me-itbl td { vertical-align: top; font-size: var(--font-size-sm); }
.me-itbl__no { width: 34px; color: var(--color-muted); }
.me-itbl__files .ea-wrap { flex-wrap: wrap; gap: 4px; }

.me-itbl__files { min-width: 84px; }

.me-itbl__sum td { background: var(--color-surface-2); font-weight: var(--font-weight-medium); }

.me-diff {
  display: block; margin-top: 2px;
  font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
  color: var(--color-danger);
}
.me-sum__ok { color: var(--color-muted); }

.me-itbl .me-d-code { display: block; margin-top: 2px; width: fit-content; }

.me-d-code {
  display: inline-block; margin-right: var(--space-2); padding: 0 4px;
  border-radius: var(--radius-sm); background: var(--color-surface-2);
  font-size: var(--font-size-xs); color: var(--color-fg);
}

.eb-grid--tail { margin-top: var(--space-6); }
.eb-fld--full { grid-column: 1 / -1; }

.login-root--hub { --login-brand-deep: #0b5fd9; --color-accent: #0b5fd9; }

.login-root--finance { --login-brand-deep: #8f6111; --color-accent: #a8741a; }

.login-root--hr { --login-brand-deep: #3f5670; --color-accent: #4a6b8a; }

.login-root--project { --login-brand-deep: #0b6e5c; --color-accent: #0e8f76; }
.login-root--main { --login-brand-deep: #a85505; --color-accent: #c96e08; }

.ap-tabs { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; margin-bottom: var(--space-3); }
.ap-detail__head { display: flex; flex-direction: column; gap: 4px; margin-bottom: var(--space-3); }
.ap-no { font-size: var(--font-size-lg); font-weight: 600; }
.ap-meta { color: var(--color-muted); font-size: var(--font-size-sm); }
.ap-meta b { color: var(--color-fg); }

.ap-steps { display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  margin: var(--space-3) 0 var(--space-5); }
.ap-step { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px 3px 4px;
  border: 1px solid var(--color-border); border-radius: var(--radius-pill); font-size: var(--font-size-sm);
  color: var(--color-meta); background: var(--color-surface); }
.ap-step i { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px;
  border-radius: 50%; background: var(--color-surface-2); font-style: normal; font-size: 11px; }

.ap-step--done { background: var(--color-success); border-color: var(--color-success); color: #fff; }
.ap-step--done i { background: var(--color-surface); color: var(--color-success); }

.ap-step--current { background: var(--color-surface); border: 1px solid var(--color-accent);
  color: var(--color-accent-text); font-weight: 600; }
.ap-step--current > i { background: var(--color-accent); color: #fff;
  border-color: var(--color-accent); }
.ap-step--current .ap-step__who { border-left-color: var(--color-border); }
.ap-step--current .ap-step__who .cell-person__avatar { background: var(--color-accent-bg); }
.ap-step--current i { background: var(--color-surface); color: var(--color-accent); }

.ap-detail .module-card__head { margin-bottom: var(--space-2); padding-bottom: var(--space-2); }

.ap-step__who { display: inline-flex; align-items: center; gap: 4px;
  margin-left: 6px; padding-left: 6px; font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  border-left: 1px solid rgba(255, 255, 255, .55); }
.ap-step__who .cell-person__avatar { width: 16px; height: 16px; font-size: 9px;
  border: 0; background: rgba(255, 255, 255, .9); color: var(--color-accent-text); }
.ap-step--done .ap-step__who { border-left-color: rgba(255, 255, 255, .45); }

.ap-step__line { width: 14px; height: 1px; background: var(--color-border); }

.ap-mod + .ap-mod { margin-top: var(--space-3); }

.ap-detail > #ap-cmts { margin-top: var(--space-3); }

.ap-detail:has(> .ap-actions) > #ap-cmts > .ap-mod.ap-cmt {
  border-bottom: 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; box-shadow: none;
}

.ap-actions.ap-foot {
  margin-top: 0; padding: var(--space-4) var(--space-6);
  background: var(--color-surface);
  border: 1px solid var(--color-frame-border); border-top: 0;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.ap-actions.ap-foot { box-shadow: none; }

.ap-mod .module-card__title { color: var(--color-fg); }

.ap-reason { font-size: var(--font-size-sm); line-height: 1.6; color: var(--color-fg);
  background: var(--color-accent-bg); border-radius: var(--radius-md);
  padding: var(--space-3); }
.ap-section { margin-top: var(--space-3); }
.ap-section__title { font-size: var(--font-size-sm); font-weight: 600; margin-bottom: 6px; }

.ap-files { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-files img { width: 88px; height: 88px; object-fit: cover; border: 1px solid var(--color-border);
  border-radius: var(--radius-seg); display: block; }

.ap-invtbl__bar {
  display: flex; align-items: center; gap: var(--space-3);
  margin: var(--space-2) 0 6px;
  font-size: var(--font-size-xs); color: var(--color-muted);
}
.ap-invtbl__prog { margin-left: auto; }
.ap-invtbl__bar .is-bad { color: var(--color-danger-strong); font-weight: 500; }
.ap-invtbl {
  width: 100%; border-collapse: separate; border-spacing: 0;
  border: 1px solid var(--color-border-soft); border-radius: var(--radius-md);
  overflow: hidden; font-size: var(--font-size-sm);
}
.ap-invtbl th {
  text-align: left; font-weight: 500; color: var(--color-muted);
  background: var(--color-surface-2); padding: 6px 10px; font-size: var(--font-size-xs);
  border-bottom: 1px solid var(--color-border-soft);
}
.ap-invtbl td { padding: 6px 10px; border-bottom: 1px solid var(--color-border-soft); vertical-align: middle; }
.ap-invtbl tbody tr:last-child td { border-bottom: 0; }
.ap-invtbl__th-ops { width: 1%; }

.ap-invtbl__th-i { width: 1%; white-space: nowrap; }
.ap-invtbl__i {
  text-align: right; white-space: nowrap; color: var(--color-muted);
  font-size: var(--font-size-xs); font-variant-numeric: tabular-nums;
}
.ap-invtbl__no { white-space: nowrap; }
.ap-invtbl__no code {
  font-family: var(--font-family-mono); font-size: var(--font-size-sm);
  color: var(--color-fg); letter-spacing: .02em; user-select: all;
}
.ap-invtbl__date { white-space: nowrap; color: var(--color-fg-2); }

.ap-invtbl__items {
  display: inline-block; max-width: 260px; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom;
  color: var(--color-fg-2);
}

.ap-invtbl__ops { white-space: nowrap; display: inline-flex; align-items: center; gap: var(--space-2); }
.ap-invtbl tbody tr.is-ok td { background: var(--color-success-bg); }
.ap-invtbl tbody tr.is-bad td { background: var(--color-danger-bg); }

.ap-invtbl__why td { padding-top: 0; font-size: var(--font-size-xs); color: var(--color-danger-strong); }

.ap-invbtn { height: var(--control-height-sm); padding: 0 10px; font-size: var(--font-size-xs); }
.ap-invbtn--pass { background: var(--color-primary-50); color: var(--color-primary-500); border-color: var(--color-primary-200); }
.ap-invbtn--pass:hover:not(:disabled) { background: var(--color-primary-100); }
.ap-invbtn--pass.is-on { background: var(--color-primary-500); color: #fff; border-color: transparent; }
.ap-invbtn--fail { background: var(--color-danger-bg); color: var(--color-danger-strong); border-color: var(--color-danger-border); }
.ap-invbtn--fail:hover:not(:disabled) { background: var(--color-danger-border); }
.ap-invbtn--fail.is-on { background: var(--color-danger); color: #fff; border-color: transparent; }

.ap-invbtn:disabled { cursor: default; opacity: 1; }
.ap-invbtn--pass:disabled,
.ap-invbtn--pass.is-on:disabled {
  background: var(--color-success-bg); color: var(--color-success-text);
  border-color: var(--color-success);
}
.ap-invbtn--fail:disabled {
  background: var(--color-surface-2); color: var(--color-muted);
  border-color: var(--color-border-soft);
}

.ap-invok {
  display: inline-flex; align-items: center; gap: 4px; margin-right: var(--space-2);
  font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
  color: var(--color-success-text); white-space: nowrap;
}
.ap-attach { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 8px; }

.ap-actions { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-4);
  padding-top: var(--space-3); border-top: 1px solid var(--color-border); }

.ap-actions > .ap-actions__row {
  display: flex;
  gap: var(--space-2);
  justify-content: flex-end;
  flex-wrap: wrap;
}
.ap-actions > .ap-actions__row .btn { min-width: 88px; }
.ap-hint { color: var(--color-fg-3); font-size: var(--font-size-sm);

  background: var(--color-surface-2); border-radius: var(--radius-seg); padding: 8px 12px; margin: var(--space-3) 0; }
.ap-reject { color: var(--color-danger); background: var(--color-danger-bg); border-radius: var(--radius-seg);
  padding: 8px 12px; margin: var(--space-3) 0; font-size: var(--font-size-sm); }

.ap-tt-warn { color: var(--color-fg-2); background: var(--color-warning-bg);
  border-left: 3px solid var(--color-warning); border-radius: var(--radius-seg);
  padding: 10px 12px; margin: var(--space-3) 0;
  font-size: var(--font-size-sm); line-height: 1.65; }
.ap-tt-warn b { color: var(--color-warning-text); font-weight: 600; }

.eb-noinv-tip {
  grid-column: 1 / -1;
  margin-top: var(--space-2);
  padding: 8px 12px;
  background: var(--color-warning-bg);
  border-left: 3px solid var(--color-warning);
  border-radius: var(--radius-seg);
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  line-height: 1.6;
}
.eb-noinv-tip b { color: var(--color-warning-text); }

.eb-dup__lead { margin: 0 0 var(--space-3); font-size: var(--font-size-sm); color: var(--color-fg-2); }
.eb-dup__row {
  display: flex; align-items: baseline; gap: var(--space-3);
  padding: 7px 10px; margin-bottom: 4px;
  background: var(--color-surface-2); border-radius: var(--radius-seg);
  font-size: var(--font-size-sm);
}
.eb-dup__amt { color: var(--color-price); min-width: 76px; }
.eb-dup__no { font-family: var(--font-family-mono); color: var(--color-fg); }
.eb-dup__meta { color: var(--color-fg-3); }
.eb-dup__ask { margin: var(--space-3) 0 0; font-size: var(--font-size-sm); color: var(--color-fg-2); }
.eb-dup__ask b { color: var(--color-warning-text); }

.ap-dup {
  margin: var(--space-3) 0;
  padding: 10px 12px;
  background: var(--color-warning-bg);
  border-left: 3px solid var(--color-warning);
  border-radius: var(--radius-seg);
}
.ap-dup__hd { display: block; color: var(--color-warning-text); font-size: var(--font-size-sm); font-weight: 600; }
.ap-dup__hint { margin: 4px 0 var(--space-2); color: var(--color-fg-2); font-size: var(--font-size-sm); line-height: 1.6; }
.ap-dup__row {
  display: flex; align-items: baseline; gap: var(--space-3);
  padding: 5px 0; border-top: 1px dashed var(--color-border-soft);
  font-size: var(--font-size-sm);
}
.ap-dup__amt { color: var(--color-price); min-width: 76px; }
.ap-dup__no { font-family: var(--font-family-mono); color: var(--color-accent); text-decoration: underline; cursor: pointer; }
.ap-dup__no--plain { color: var(--color-fg-2); text-decoration: none; cursor: default; }
.ap-dup__meta { color: var(--color-fg-3); }

.ap-logs { margin: 0; padding: 0; list-style: none; font-size: var(--font-size-sm); }

.ap-log { position: relative; display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--space-2); padding: 3px 0 3px 18px; color: var(--color-fg); }

.ap-log::before { content: ''; position: absolute; left: 2px; top: 0; bottom: 0;
  width: 2px; background: var(--color-border); }
.ap-log:first-child::before { top: 10px; }
.ap-log:last-child::before { bottom: auto; height: 10px; }

.ap-log__dot { position: absolute; left: 0; top: 8px; width: 7px; height: 7px;
  border-radius: 50%; background: var(--color-border); box-shadow: 0 0 0 2px var(--color-surface); }

.ap-log__person { display: inline-flex; align-items: center; gap: 5px;

  height: 24px; min-width: 88px; padding: 2px 10px 2px 2px;
  border-radius: var(--radius-pill); background: var(--color-surface);

  border: 1px solid var(--color-border); }
.ap-log__person > .cell-person__avatar { width: 20px; height: 20px; font-size: 10px;
  background: var(--color-accent-bg); color: var(--color-accent-text); }
.ap-log__person .ap-log__who { font-size: 11px; color: var(--color-accent-text);
  font-weight: var(--font-weight-medium); }

.ap-log__act { flex: 0 0 auto; min-width: 62px; margin-left: var(--space-3);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); }
.ap-log__who { flex: 0 0 auto; font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.ap-log__step { flex: 0 0 auto; font-size: var(--font-size-xs); color: var(--color-muted); }
.ap-log__t { flex: 0 0 auto; margin-left: auto; font-size: var(--font-size-xs);
  color: var(--color-meta); font-variant-numeric: tabular-nums; }

.ap-log__reason { flex: 0 1 auto; min-width: 0; font-size: var(--font-size-xs);
  color: var(--color-muted); white-space: normal; word-break: break-word;

  padding-left: var(--space-1); }

.ap-log--submit .ap-log__dot, .ap-log--resubmit .ap-log__dot { background: var(--color-accent); }

.ap-log.is-divider { display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--space-3); padding: 12px 0 8px; padding-left: 0; }
.ap-log__divider-line { flex: 1 1 0; height: 1px; background: var(--color-border);
  min-width: 12px; }
.ap-log.is-divider .ap-log__divider-center { flex: 0 0 auto; display: inline-flex;
  align-items: baseline; gap: var(--space-2); max-width: 70%; }
.ap-log.is-divider .ap-log__divider-txt { flex: 0 0 auto; font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold); color: var(--color-accent-text); white-space: nowrap; }

.ap-log__divider-reason { flex: 0 1 auto; min-width: 0; font-size: var(--font-size-xs);
  color: var(--color-muted); white-space: normal; word-break: break-word; }
.ap-log.is-divider .ap-log__dot { display: none; }
.ap-log__divider-txt { flex: 0 0 auto; font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold); color: var(--color-accent-text); }

.ap-log--approve .ap-log__dot, .ap-log--approve_with_changes .ap-log__dot { background: var(--color-success); }
.ap-log--reject .ap-log__dot { background: var(--color-danger); }
.ap-log--cancel .ap-log__dot, .ap-log--skip .ap-log__dot { background: var(--color-border); }
.ap-log--approve .ap-log__act { color: var(--color-success-text); }
.ap-log--reject .ap-log__act { color: var(--color-danger); }

.ap-change { border: 1px solid var(--color-border); border-radius: var(--radius-seg);
  padding: var(--space-3); margin-bottom: var(--space-2); background: var(--color-surface); }
.ap-change__top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.ap-change__who { font-size: var(--font-size-xs); color: var(--color-muted); }
.ap-change__tag { font-size: var(--font-size-xs); padding: 1px 7px; border-radius: var(--radius-sm);
  background: var(--color-warning-bg); color: var(--color-warning-text); }
.ap-change__tag.is-reporter { background: var(--color-info-bg); color: var(--color-info); }
.ap-change__time { font-size: var(--font-size-xs); color: var(--color-meta); }
.ap-change__reason { font-size: var(--font-size-xs); color: var(--color-muted); margin-top: 6px; }
.ap-ctbl { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm); table-layout: fixed; }
.ap-ctbl th { text-align: left; font-weight: 600; font-size: var(--font-size-xs);
  color: var(--color-muted); padding: 4px 8px; background: var(--color-surface-2); }
.ap-ctbl td { padding: 5px 8px; border-top: 1px solid var(--color-border); word-break: break-all; }
.ap-ctbl__k { width: 32%; color: var(--color-muted); }
.ap-ctbl__from { color: var(--color-muted); }
.ap-ctbl__to { font-weight: 600; }

.ap-modify-item { border: 1px solid var(--color-border); border-radius: var(--radius-seg); padding: var(--space-3);
  margin-bottom: var(--space-2); }
.ap-modify-item__head { font-size: var(--font-size-sm); font-weight: 600;
  margin-bottom: var(--space-3); display: flex; align-items: baseline; gap: var(--space-3); }
.ap-modify-item__tip { font-weight: 400; font-size: var(--font-size-xs); color: var(--color-fg-3); }
.ap-mgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2) var(--space-3); }
.ap-field { display: flex; flex-direction: column; gap: 2px; font-size: var(--font-size-sm);
  min-width: 0; }
.ap-field > span { color: var(--color-fg-3); }

.ap-field > .input, .ap-field > .select, .ap-field > .dtp { width: 100%; }

.ap-field > textarea { width: 100%; resize: vertical; }

.ap-field--full { width: 100%; }

.ap-field--wide { grid-column: span 2; }
.ap-range { display: flex; align-items: center; gap: var(--space-2); }
.ap-range__i { flex: 1 1 0; min-width: 0; }
.ap-range__sep { color: var(--color-fg-3); flex: 0 0 auto; }

.xb-scope { margin-bottom: var(--space-2); }
.xb-filters { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; }
.xb-filters .input { width: 176px; }

.ef-flag { border-radius: var(--radius-seg); padding: 10px 14px; margin-bottom: var(--space-3);
  font-size: var(--font-size-sm); color: var(--color-fg); }
.ef-flag--on { background: var(--color-success-bg); }
.ef-flag--off { background: var(--color-warning-bg); }

.ef-flow {
  position: relative;
  display: flex; align-items: flex-start;

  padding: 20px 0 16px;
  margin-bottom: var(--space-4);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.ef-flow::before {
  content: '';
  position: absolute;
  left: 12.5%; right: 12.5%;

  top: 33px;
  height: 2px;
  background: var(--color-gray-300);
  z-index: 0;
}
.ef-node {
  position: relative; z-index: 1;
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 0 8px 10px;
  background: transparent; border: 0;
  border-radius: var(--radius-md); cursor: pointer;
  font: inherit; text-align: center;
}
.ef-node__dot {
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold);
  color: #fff; background: var(--color-muted);

  border: 2px solid var(--color-surface-2);
  box-sizing: border-box;
}
.ef-node--done .ef-node__dot { background: var(--color-success); }
.ef-node--warn .ef-node__dot { background: var(--color-danger); }
.ef-node__name {
  margin-top: var(--space-2);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-fg);
}
.ef-node__who { font-size: var(--font-size-xs); color: var(--color-muted); }
.ef-node--warn .ef-node__who { color: var(--color-danger); font-weight: var(--font-weight-medium); }

.ef-node__who--names { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; }
.ef-node__who--names .cell-person__avatar {
  width: 18px; height: 18px; font-size: 9px; flex: 0 0 auto;
}
.ef-node__names {
  font-size: var(--font-size-xs); color: var(--color-muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ef-node:hover .ef-node__dot { box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-muted) 18%, transparent); }
.ef-node.is-active .ef-node__dot {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-accent) 20%, transparent);
}
.ef-node.is-active .ef-node__name { color: var(--color-accent); font-weight: var(--font-weight-semibold); }
.ef-node:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.ef-panel { display: none; }
.ef-panel.is-active { display: block; }

.ef-step {
  border: 1px solid var(--color-border); border-radius: 8px;
  padding: var(--space-4) var(--space-4) 0;
}
.ef-step__head { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.ef-step__head b { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); }

.ef-step__note {
  font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.65;
  margin-bottom: var(--space-2);
}
.ef-step__note b, .ef-group__h b, .ef-notice b, .ef-pick-hint b {
  font-weight: var(--font-weight-semibold); color: var(--color-fg);
}

.ef-group { padding: var(--space-3) 0; border-bottom: 1px solid var(--color-border-soft); }
.ef-group:last-child { border-bottom: 0; }
.ef-group__t {
  display: flex; align-items: baseline; gap: var(--space-2); flex-wrap: wrap;
  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg);
  margin-bottom: var(--space-1);
}
.ef-group__n { font-weight: var(--font-weight-regular); font-size: var(--font-size-xs); color: var(--color-muted); }

.ef-group__n--live { color: var(--color-accent); font-weight: var(--font-weight-medium); }
.ef-group__h { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.65; margin-bottom: var(--space-2); }

.ef-notice { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.65; margin-bottom: var(--space-2); }
.ef-notice--warn {
  background: var(--color-warning-bg); color: var(--color-warning-text);
  border-radius: var(--radius-seg); padding: 6px 10px;
}

.ef-notice--block { display: block; line-height: 1.75; padding: 8px 12px; }
.ef-mode { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.ef-radio { display: inline-flex; align-items: center; gap: 5px; font-size: var(--font-size-sm); cursor: pointer; }
.ef-actions { display: flex; justify-content: flex-end; margin-top: var(--space-3); }

.ef-pick-hint { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.65; margin-top: var(--space-2); }
.ef-pick-hint--warn { color: var(--color-warning-text); }

.ef-sup2 {
  display: grid;

  grid-template-columns: minmax(0, 260px) 22px minmax(0, 1fr) auto;
  align-items: center; gap: var(--space-2);

  margin: 0 calc(-1 * var(--space-2));
  padding: var(--space-2);
  border-radius: var(--radius-md);
}

.ef-sup2 + .ef-sup2 { border-top: 1px solid var(--color-border-soft); }

.ef-sup2:hover { background: var(--color-surface-2); }
.ef-sup2__who { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; }
.ef-sup2__who-t {
  display: flex; flex-direction: column; min-width: 0;
  font-size: var(--font-size-sm); color: var(--color-fg);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.ef-sup2__who-n { line-height: 1.5; }
.ef-sup2__who-s { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.5; }
.ef-sup2__arrow { color: var(--color-fg-3); display: inline-flex; justify-content: center; }
.ef-sup2__sup { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; }
.ef-sup2__sup-t { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; }
.ef-chip-name { font-size: var(--font-size-sm); }

.ef-sup2__ops { display: inline-flex; align-items: center; gap: var(--space-1); margin-left: auto; }

.ef-act {
  background: transparent; border-color: transparent; color: var(--color-accent-text);
  padding: 0 var(--space-2); gap: 4px;
}
.ef-act:hover:not(:disabled) { background: var(--color-primary-100); border-color: transparent; }
.ef-act--danger { color: var(--color-danger); }
.ef-act--danger:hover:not(:disabled) { background: var(--color-danger-bg); border-color: transparent; }

@media (max-width: 900px) {
  .ef-sup2 { grid-template-columns: minmax(0, 1fr) 22px auto; row-gap: var(--space-1); }
  .ef-sup2__sup { grid-column: 1 / 3; grid-row: 2; padding-left: calc(28px + var(--space-2)); }
  .ef-sup2__ops { grid-column: 3; grid-row: 2; gap: 0; }

  .ef-act svg { display: none; }
  .ef-act { padding: 0 6px; }
}

.me-step { margin-left: 6px; font-size: var(--font-size-xs); color: var(--color-meta); }

.ef-dept { border-top: 1px solid var(--color-border-soft); }
.ef-dept__row {
  display: grid;

  grid-template-columns: minmax(0, 172px) minmax(0, 1fr) auto;
  align-items: center; gap: var(--space-3);
  padding: var(--space-2) var(--space-2);
  margin: 0 calc(-1 * var(--space-2));
  border-bottom: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}
.ef-dept__row:hover { background: var(--color-surface-2); }
.ef-dept__name {
  display: flex; align-items: center; gap: 6px; min-width: 0;
  font-size: var(--font-size-sm); color: var(--color-fg); font-weight: var(--font-weight-medium);
}

.ef-dept__name-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ef-dept__name .ef-dept__tag { flex: none; }

.ef-dept__n {
  flex: none; white-space: nowrap;
  font-size: var(--font-size-xs); color: var(--color-muted);
  font-weight: var(--font-weight-regular);
}

.ef-dept__tag {
  font-size: 11px; line-height: 1; padding: 2px 5px; border-radius: var(--radius-sm);
  background: var(--color-surface-2); color: var(--color-muted); font-weight: var(--font-weight-regular);
}
.ef-dept__who { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; min-width: 0; }

.ef-dept__chip {
  display: inline-flex; align-items: center; gap: 5px; max-width: 220px;
  padding: 2px 4px 2px 3px; border-radius: var(--radius-pill);
  background: var(--color-primary-50); border: 1px solid var(--color-primary-100);

  font-size: var(--font-size-xs); color: var(--color-accent-text);
}
.ef-dept__chip-n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ef-dept__chip.is-off {
  background: var(--color-surface-2); border-color: var(--color-border);
  color: var(--color-muted); opacity: .75;
}

.ef-dept__off {
  font-size: 11px; line-height: 1; padding: 1px 4px; border-radius: 3px;
  background: var(--color-danger-bg); color: var(--color-danger);
}
.ef-dept__x {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; border-radius: 50%; border: 0; background: transparent;
  color: inherit; opacity: .55; cursor: pointer; padding: 0;
}
.ef-dept__x:hover { opacity: 1; background: var(--color-danger-bg); color: var(--color-danger); }

.ef-dept__chip--feishu {
  background: var(--color-surface-2); border: 1px dashed var(--color-gray-400); color: var(--color-fg-2);
}
.ef-dept__src { font-size: var(--font-size-xs); color: var(--color-muted); }
.ef-dept__multi { font-size: var(--font-size-xs); color: var(--color-muted); }

.ef-dept__zero {
  font-size: var(--font-size-xs); color: var(--color-warning-text);
  background: var(--color-warning-bg); border-radius: var(--radius-sm); padding: 1px 6px;
}

.ef-dept__zero--quiet {
  color: var(--color-muted); background: transparent; padding-left: 0;
}

.ef-dept__none { font-size: var(--font-size-xs); color: var(--color-danger); }
.ef-dept__none b { font-weight: var(--font-weight-semibold); }
.ef-dept__ops { display: inline-flex; align-items: center; gap: var(--space-1); }
.ef-dept__foot {
  display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap;
  padding-top: var(--space-2);
}

@media (max-width: 900px) {
  .ef-dept__row { grid-template-columns: minmax(0, 1fr) auto; row-gap: var(--space-1); }
  .ef-dept__who { grid-column: 1 / -1; grid-row: 2; }
  .ef-dept__ops { grid-column: 2; grid-row: 1; }
}

.ef-add { padding-bottom: var(--space-2); }
.ef-add__r { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-3); }
.ef-add__r > span { font-size: var(--font-size-sm); color: var(--color-muted); min-width: 84px; flex: 0 0 auto; }

.ef-add__r > div { flex: 1; min-width: 0; }

.me-applicant { white-space: nowrap; }

.ap-vt { margin-top: 2px; }
.ap-vch { display: inline-flex; align-items: center; gap: 4px; }
.ap-vch__n {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: var(--radius-pill); background: var(--color-surface-2);
  font-size: 11px; line-height: 1; color: var(--color-fg-2);
}
.ap-vch-none { color: var(--color-meta); }
.ap-legend { font-size: var(--font-size-xs); color: var(--color-muted); margin-bottom: var(--space-2); }

.ap-vch-grp { margin-top: var(--space-3); }
.ap-vch-cnt { margin-left: 6px; font-size: var(--font-size-xs); color: var(--color-muted); font-weight: 400; }

.ap-vfy { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap;
  margin-top: var(--space-2); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 10px 12px; }
.ap-vfy--passed { border-color: var(--color-success-bg); background: var(--color-success-bg); }
.ap-vfy--failed { border-color: var(--color-danger-border); background: var(--color-danger-bg); }
.ap-vfy__ops { display: flex; gap: 6px; flex-shrink: 0; margin-left: auto; }

.ap-vfy__ops .btn { height: var(--control-height-sm); padding: 0 12px; font-size: var(--font-size-sm); }
.ap-vfy__state { flex: 1 1 auto; min-width: 0; font-size: var(--font-size-xs); color: var(--color-muted); }
.ap-vfy__state.is-ok { color: var(--color-success); }
.ap-vfy__state.is-bad { color: var(--color-danger-strong); }

.ap-vfy__only-reject { font-weight: var(--font-weight-medium); }

.ap-approve-hint { font-size: var(--font-size-xs); color: var(--color-danger-strong); margin-bottom: 6px; }

.ap-items { max-height: 320px; overflow-y: auto; }
.ap-items thead th { position: sticky; top: 0; z-index: 1; background: var(--color-surface); }
.ap-seq { width: 34px; color: var(--color-meta); }
.ap-amt { font-weight: var(--font-weight-medium); white-space: nowrap; }

.ap-vt .tag { font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); }

.ap-vch--none { opacity: .55; }

.ap-sched { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px;
  margin-bottom: 10px; border-radius: var(--radius-lg); background: var(--color-success-bg);
  border: 1px solid var(--color-success); }
.ap-sched--warn { background: var(--color-danger-bg); border-color: var(--color-danger-border); }
.ap-sched__ico { font-size: 15px; line-height: 1.4; flex: none; }
.ap-sched__body { flex: 1; min-width: 0; }
.ap-sched__k { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium);
  color: var(--color-success-text); }
.ap-sched--warn .ap-sched__k { color: var(--color-danger-strong); }
.ap-sched__chip { display: inline-flex; align-items: baseline; gap: 6px; margin: 5px 6px 0 0;
  padding: 2px 9px; border-radius: var(--radius-pill); background: var(--color-surface);
  border: 1px solid var(--color-success); font-size: var(--font-size-sm); color: var(--color-fg); }
.ap-sched__chip b { font-family: var(--font-family-mono); color: var(--color-success-text); }
.ap-sched__chip i { font-style: normal; color: var(--color-muted); font-size: var(--font-size-xs); }
.ap-sched__hint { font-size: var(--font-size-sm); color: var(--color-danger-strong); margin-top: 5px; }

.ap-sched-badge { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; max-width: 100%;
  padding: 1px 7px; border-radius: var(--radius-pill); background: var(--color-success-bg);
  border: 1px solid var(--color-success); color: var(--color-success-text);
  font-size: var(--font-size-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-sched-badge b { font-family: var(--font-family-mono); }
.ap-sched-badge--warn { background: var(--color-danger-bg);
  border-color: var(--color-danger-border); color: var(--color-danger-strong); }
.ap-sched-badge__more { color: var(--color-muted); }

.ap-who .cell-person,
.ap-who .cell-person__body,
.ap-who .cell-person__line { min-width: 0; }
.ap-who .cell-person__line { flex-wrap: nowrap; }
.ap-who .cell-main { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ap-ellip { display: inline-block; max-width: 100%; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

.u-group > td {

  background: var(--color-gray-50);
  padding: var(--space-2) var(--space-3);
  cursor: pointer;
  user-select: none;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border-soft);
}

.table:not(:where(td .table)) > tbody > tr.u-group > td {
  text-align: left;
}

.u-group:hover > td { background: var(--color-surface-2); }
.u-group__i {
  display: inline-flex; align-items: center; vertical-align: middle;
  margin-right: var(--space-2); color: var(--color-muted);
  transition: transform var(--motion-fast) var(--motion-ease-standard);
}
.u-group.is-folded .u-group__i { transform: rotate(-90deg); }
.u-group__t {
  font-weight: var(--font-weight-semibold); color: var(--color-fg);
  font-size: var(--font-size-sm);
}

.u-group__n {
  display: inline-flex; align-items: center; vertical-align: middle;
  margin-left: var(--space-2); padding: 1px 8px;
  border-radius: var(--radius-full);
  background: var(--color-surface); border: 1px solid var(--color-border);
  font-size: var(--font-size-xs); color: var(--color-muted);
}

.u-group--warn > td { background: var(--color-warning-bg-soft); }
.u-group--warn:hover > td { background: var(--color-warning-bg); }
.u-group--warn .u-group__t { color: var(--color-warning-text); }
.u-group--warn .u-group__n {
  background: var(--color-warning-bg); border-color: var(--color-warning);
  color: var(--color-warning-text); font-weight: var(--font-weight-medium);
}
.u-group__warn {
  margin-left: var(--space-3); vertical-align: middle;
  font-size: var(--font-size-xs); color: var(--color-warning-text);
}

.table-tabs.seg .seg__btn.u-dept-tab--warn[data-udept]:not(.is-active) { color: var(--color-warning-text); }

.u-tbl { table-layout: fixed; min-width: 1060px; }

#u-table .u-tbl tbody td:not(:nth-child(3)) { white-space: nowrap; }
#u-table .u-tbl .badge { white-space: nowrap; }

.u-selbar {
  display: flex; align-items: center; gap: var(--space-2);
  margin-bottom: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
}

.u-selbar[hidden] { display: none; }
.u-selbar__n b { color: var(--color-fg); }

.u-pending {
  display: flex; align-items: center; gap: var(--notice-gap);
  margin-bottom: var(--space-3);
  padding: var(--notice-pad-y) var(--notice-pad-x);
  background: var(--notice-bg);
  border: 1px solid var(--notice-border);
  border-radius: var(--notice-radius);
  color: var(--notice-fg);
  font-size: var(--font-size-sm);
}
.u-pending__ico { display: inline-flex; flex: none; color: var(--notice-ico); }
.u-pending__sp { flex: 1; }
.u-pending__t b { color: var(--color-fg); }

.u-pending__more { margin-top: var(--space-2); font-size: var(--font-size-xs); color: var(--color-muted); }

.u-dm { display: flex; flex-direction: column; }
.u-dm__row {
  display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-2) 0;
  border-bottom: 1px solid var(--color-border-soft);
}
.u-dm__row:last-child { border-bottom: 0; }
.u-dm__name { font-weight: var(--font-weight-medium); color: var(--color-fg); }

.dm-pk { border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); max-height: 320px; overflow-y: auto; }
.dm-pk__row {
  display: flex; align-items: center; gap: var(--space-2);
  padding: 7px var(--space-3); cursor: pointer;
  font-size: var(--font-size-sm);
  border-bottom: 1px solid var(--color-border-soft);
}
.dm-pk__row:last-child { border-bottom: 0; }
.dm-pk__row:hover { background: var(--color-surface-2); }
.dm-pk__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dm-pk__dept { flex: 0 0 auto; font-size: var(--font-size-xs); color: var(--color-muted); }
.dm-pk__tag {
  flex: 0 0 auto; font-size: var(--font-size-xs); color: var(--color-muted);
  border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 0 4px;
}

.u-dm__off {
  flex: 0 0 auto;
  height: 20px; padding: 0 var(--space-2);
  display: inline-flex; align-items: center;
  border: 1px solid transparent; border-radius: var(--radius-seg);
  font-size: var(--font-size-xs); line-height: 1;
  color: var(--badge-warning-fg); background: var(--badge-warning-bg);
}

.u-roles { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }

.u-acct {
  display: inline-flex; align-items: center; flex: 0 0 auto;
  height: 20px; padding: 0 var(--space-2);
  border: 1px solid var(--color-border); border-radius: var(--radius-seg);
  font-size: var(--font-size-xs); line-height: 1;
  white-space: nowrap;
}
.u-acct--int {
  color: var(--badge-info-fg); background: var(--badge-info-bg); border-color: transparent;
}
.u-acct--ext {
  color: var(--badge-warning-fg); background: var(--badge-warning-bg); border-color: transparent;
  font-weight: var(--font-weight-medium);
}

#u-table .cell-person__line { flex-wrap: nowrap; }
#u-table .cell-person__name { min-width: 0; }

.role-item__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.role-item__side { display: inline-flex; align-items: center; gap: var(--space-2); flex: 0 0 auto; }
.role-item__more {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; padding: 0; flex: 0 0 auto;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--color-muted); cursor: pointer;
}
.role-item__more:hover { background: var(--color-surface-2); color: var(--color-fg); }
.role-item.is-active .role-item__more { color: var(--color-accent-text); }

.ef-dept__tag--local { background: var(--color-surface-2); color: var(--color-fg-2); }

.ef-dept__src--warn {
  color: var(--color-warning-text);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.ef-dept__src--warn b { font-weight: var(--font-weight-semibold); }

.ef-dept__chip--alias {
  background: transparent;
  border: 1px dashed var(--color-border);
  color: var(--color-fg-2);

  padding-right: 6px;
}

.ef-dept__merge {
  flex: none; width: 116px; height: 28px;
  padding: 0 6px; font-size: var(--font-size-xs);
}

.ef-dept__showtoggle {
  display: inline-flex; align-items: center; gap: 4px;
  margin-left: var(--space-3);
  font-size: var(--font-size-xs); font-weight: var(--font-weight-regular);
  color: var(--color-muted); cursor: pointer;
}
.ef-dept__showtoggle input { margin: 0; }

.ef-dept__row.is-blocked { opacity: .55; }
.ef-dept__row.is-blocked .ef-dept__name { text-decoration: line-through; }

.ef-dept__ops .icon-btn.is-on { color: var(--color-warning-text); }

.ef-ext { border-top: 1px solid var(--color-border-soft); }
.ef-ext__row {
  display: grid;
  grid-template-columns: minmax(0, 172px) minmax(0, 1fr) auto;
  align-items: center; gap: var(--space-3);
  padding: var(--space-2) var(--space-2);
  margin: 0 calc(-1 * var(--space-2));
  border-bottom: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}
.ef-ext__row:hover { background: var(--color-surface-2); }
.ef-ext__tag {
  display: flex; align-items: center; gap: 6px; min-width: 0;
  font-size: var(--font-size-sm); color: var(--color-fg); font-weight: var(--font-weight-medium);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ef-ext__n { font-size: var(--font-size-xs); color: var(--color-muted); font-weight: var(--font-weight-regular); flex: none; }

.ef-ext__todo {
  flex: none; font-size: 11px; line-height: 1; padding: 1px 5px; border-radius: 3px;
  background: var(--color-warning-bg); color: var(--color-warning-text);
}
.ef-ext__who {
  font-size: var(--font-size-xs); color: var(--color-fg-2); min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ef-ext__ops { display: inline-flex; align-items: center; gap: var(--space-1); }

.ef-ext__merge { flex: none; width: 148px; height: 28px; padding: 0 6px; font-size: var(--font-size-xs); }

.ef-ext__bad {
  grid-column: 1 / -1; font-size: var(--font-size-xs); color: var(--color-warning-text);
}
@media (max-width: 900px) {
  .ef-ext__row { grid-template-columns: minmax(0, 1fr) auto; row-gap: var(--space-1); }
  .ef-ext__who { grid-column: 1 / -1; grid-row: 2; }
  .ef-ext__ops { grid-column: 2; grid-row: 1; }
}

#ef-box { padding: var(--space-2); }

.ef-group__tools {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: var(--space-3);
  align-self: center;
}

.ef-dept__chip .cell-person__avatar { width: 20px; height: 20px; font-size: 11px; }

.fin-batch-open {
  display: inline-flex; align-items: center; gap: 5px;
  background: transparent; border: 0; padding: 0; cursor: pointer;
  color: inherit; font: inherit;
}
.fin-batch-caret {
  display: inline-flex; color: var(--color-muted);
  transition: transform var(--motion-fast) var(--motion-ease-standard);
}
.fin-batch-open.is-open .fin-batch-caret { transform: rotate(90deg); }

.fin-batch-n { font-size: var(--font-size-xs); color: var(--color-muted); }
.fin-batch-open:hover .fin-code { text-decoration: underline; }

.fin-bdet-row > td { background: var(--color-surface-2); padding: 8px 12px 10px 32px; }
.fin-bdet { display: flex; flex-direction: column; gap: 2px; }
.fin-bdet__item {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto auto;
  align-items: center; gap: var(--space-3);
  padding: 4px 6px; border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
}
.fin-bdet__item:hover { background: var(--color-surface); }
.fin-bdet__code { text-decoration: none; }
.fin-bdet__who { display: flex; align-items: center; gap: 6px; min-width: 0; }
.fin-bdet__amt { font-variant-numeric: tabular-nums; }
.fin-bdet__st { flex: none; }
@media (max-width: 900px) {
  .fin-bdet__item { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; }
  .fin-bdet__who { grid-column: 1 / -1; }
}

.ps-sup-list { display: flex; flex-direction: column; gap: var(--space-2); }
.ps-sup-row {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}
.ps-sup-row__main { flex: 1 1 auto; min-width: 0; }
.ps-sup-row__amt { flex: 0 0 auto; font-variant-numeric: tabular-nums; }

.ap-cmt__list { list-style: none; margin: 0; padding: 0; }
.ap-cmt__item { display: block; }
.ap-cmt__item + .ap-cmt__item { margin-top: var(--space-2); }

.ap-cmt__replies { margin-top: var(--space-2); padding: var(--space-3);
  background: var(--color-surface-2); border-radius: var(--radius-md);
  display: flex; flex-direction: column; gap: var(--space-3); }
.ap-cmt__item.is-nested > .ap-cmt__bubble { background: transparent; padding: 0;
  border-radius: 0; }

.ap-cmt__replies > .ap-cmt__item + .ap-cmt__item { margin-top: 0; }

.ap-cmt__item.is-reply { margin-left: 0; }

.ap-cmt__bubble { display: flex; flex-wrap: wrap; align-items: baseline;
  column-gap: 6px; row-gap: 2px;
  background: var(--color-accent-bg); border-radius: var(--radius-lg);
  padding: var(--space-3) var(--space-4); }

.ap-cmt__item.is-deleted .ap-cmt__bubble { background: var(--color-surface-2); }

.ap-cmt__body { flex: 1 1 200px; min-width: 0; font-size: var(--font-size-base);
  line-height: 1.5; color: var(--color-fg); word-break: break-word; }

.ap-cmt__meta { display: inline-flex; align-items: center; gap: 6px;
  flex: 0 1 auto; min-width: 0; }
.ap-cmt__meta > .cell-person__avatar { flex: 0 0 auto; width: 22px; height: 22px;
  font-size: var(--font-size-xs); background: var(--color-surface); color: var(--color-muted); }

.ap-cmt__who { font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
  color: var(--color-accent-text); white-space: nowrap;

  display: inline-block; }

.ap-cmt__person { display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 10px 2px 3px; border-radius: var(--radius-pill);
  background: var(--color-surface); border: 1px solid var(--color-accent-border);

  flex: 0 0 auto; white-space: nowrap; width: max-content; }
.ap-cmt__person > .cell-person__avatar { width: 20px; height: 20px; font-size: 11px;
  background: var(--color-accent-bg); color: var(--color-accent-text); }

.ap-cmt__role-txt { font-size: var(--font-size-xs); color: var(--color-muted);
  white-space: nowrap; }

.ap-cmt__role { font-size: var(--font-size-xs); color: var(--color-muted); }
.ap-cmt__t { margin-left: auto; font-size: var(--font-size-xs); color: var(--color-meta);
  white-space: nowrap; }
.ap-cmt__empty { font-size: var(--font-size-sm); color: var(--color-muted); padding: var(--space-2) 0;
  line-height: 1.6; }

.ap-cmt__form { display: flex; flex-direction: column; gap: var(--space-2);
  margin-top: var(--space-3); padding: var(--space-3);
  background: var(--color-surface-2); border-radius: var(--radius-md); }
.ap-cmt__form .ap-cmt__replybar { background: var(--color-surface); }
.ap-cmt__row { display: flex; gap: var(--space-2); align-items: flex-end; }
.ap-cmt__box { flex: 1 1 auto; resize: vertical; min-height: 44px; }
.ap-cmt__send { flex: 0 0 auto; }

.ap-cmt__replybar[hidden] { display: none; }
.ap-cmt__replybar { display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-2) var(--space-3); border-radius: var(--radius-md);
  background: var(--color-surface-2); border-left: 3px solid var(--color-accent);
  font-size: var(--font-size-xs); color: var(--color-muted); }
.ap-cmt__replybar-txt { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-cmt__replybar-x { flex: 0 0 auto; border: 0; background: transparent; cursor: pointer;
  padding: 0 var(--space-1); font-size: var(--font-size-base); line-height: 1;
  color: var(--color-muted); border-radius: var(--radius-sm); }
.ap-cmt__replybar-x:hover { color: var(--color-fg); }

.ap-cmt__quote-inline { flex: 1 1 100%; font-size: var(--font-size-xs); color: var(--color-muted);
  min-width: 0; white-space: normal; word-break: break-word; }

.ap-cmt__quote-person { display: inline-flex; align-items: center; gap: 4px;
  height: 20px; padding: 1px 8px 1px 2px; border-radius: var(--radius-pill);
  background: var(--color-surface); border: 1px solid var(--color-accent-border);
  vertical-align: middle; }
.ap-cmt__quote-person > .cell-person__avatar { width: 16px; height: 16px; font-size: 9px;
  background: var(--color-accent-bg); color: var(--color-accent-text); }
.ap-cmt__quote-who { color: var(--color-accent-text); font-size: 11px;
  font-weight: var(--font-weight-medium); }
.ap-cmt__quote-arrow { color: var(--color-meta); margin-right: 2px; }
.ap-cmt__quote-txt { color: var(--color-meta); }
.ap-cmt__quote-inline.is-gone .ap-cmt__quote-txt { font-style: italic; }

.ap-cmt__item.is-deleted .ap-cmt__body { color: var(--color-muted); }
.ap-cmt__gone { font-style: italic; color: var(--color-muted); }

.ap-cmt__ops { flex: 1 1 100%; display: flex; gap: var(--space-3); margin-top: 2px; }

.ap-cmt__btn { display: inline-flex; align-items: center; gap: 4px; }
.ap-cmt__btn svg { flex: 0 0 auto; }
.ap-cmt__btn { border: 0; background: transparent; cursor: pointer; padding: 0;
  font-size: var(--font-size-xs); color: var(--color-accent); }
.ap-cmt__btn:hover { text-decoration: underline; }
.ap-cmt__btn--danger { color: var(--color-danger); }

#hs-body-inner .table-wrap > table.table { min-width: 1480px; }

.page-header[data-hs-view="month"] #hs-month,
.page-header[data-hs-view="annex"] #hs-month { display: none; }
.page-header[data-hs-view="influencer"] #hs-tabs,
.page-header[data-hs-view="statement"] #hs-tabs { display: none; }

#pmd-body td.is-num, #pmd-body th.is-num { white-space: nowrap; }

.me-drafts { display: flex; flex-direction: column; gap: 6px; }
.me-draft {
  display: flex; align-items: center; gap: var(--space-3);
  padding: 10px 12px; background: var(--color-surface-2);
  border-radius: var(--radius-seg);
}
.me-draft__amt { min-width: 88px; color: var(--color-price); font-weight: var(--font-weight-semibold); }
.me-draft__meta {
  flex: 1; min-width: 0; color: var(--color-fg-2); font-size: var(--font-size-sm);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.me-draft__time { color: var(--color-fg-3); font-size: var(--font-size-sm); white-space: nowrap; }

.me-draft__who { color: var(--color-accent); font-weight: var(--font-weight-semibold); }

#pmd-body table.table { width: 100%; }

.st-rule--modal { margin-bottom: 0; }
.st-rule--modal .st-rule__inner { margin-bottom: var(--space-3); }
.st-rule--modal .st-rule__full { max-height: 52vh; overflow-y: auto; }
.st-rule--modal .st-rule__sec + .st-rule__sec { margin-top: var(--space-3); }

.page-header[data-hs-view="month"] .hs-annex-only { display: none !important; }
.page-header[data-hs-view="annex"] .hs-month-only { display: none !important; }

.batch-bar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-4);
  margin-bottom: var(--space-4);
  background: var(--color-primary-50);
  border: 1px solid var(--color-primary-100);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
}

.batch-bar__count {
  font-weight: var(--font-weight-medium);
  color: var(--color-accent-text);
}

.platform-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 20px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  color: var(--color-fg-2);
  font-size: var(--font-size-xs);
  background: var(--color-surface);
}

.platform-dot {
  width: 6px;
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
}

.cell-agency-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 4px;
}
.cell-agency-row {
  display: flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  min-width: 0;
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
}
.cell-agency-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
  flex-shrink: 0;
}
.cell-agency-platform {
  flex-shrink: 0;
  color: var(--color-fg-2);
}

.cell-agency-row .tag,
.platform-detail-row .tag {
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.platform-detail-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
  min-width: 0;
}
.platform-detail-platform {
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
  flex-shrink: 0;
}
.platform-detail-account {
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-shell {
  max-width: var(--form-max-width);
  margin-left: auto;
  margin-right: auto;
}

.detail-shell--modules,
.sf-shell--modules {
  background: transparent;
  border: none;
  box-shadow: none;
  overflow: visible;
}

.sf-shell.sf-shell--modules,
.detail-shell.detail-shell--modules {
  background: transparent;
  border: none;
  box-shadow: none;
  overflow: visible;
}
.detail-shell--modules .sf-body,
.sf-shell--modules .sf-body {
  background: transparent;
}

.detail-shell--modules .detail-hero {
  margin-bottom: var(--space-5);
}
.detail-shell--modules .sf-body__content,
.sf-shell--modules .sf-body__content {

  padding-top: var(--space-4);
  padding-bottom: var(--space-6);

  padding-left: 0;
  padding-right: 0;
}

.detail-hero {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  padding: var(--space-5) var(--space-6);
  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);
  margin-bottom: var(--space-5);
}

.sf-shell .tabs {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  justify-content: space-between;
  align-items: center;

  background: var(--color-surface);

  border: 1px solid var(--color-gray-300);

  padding: 10px;
  position: sticky;

  top: var(--tabs-bar-height);
  z-index: 60;
  transition: box-shadow var(--motion-base) var(--motion-ease-standard),
              background-color var(--motion-base) var(--motion-ease-standard),
              border-color var(--motion-base) var(--motion-ease-standard);
}
.sf-shell .tabs .detail-head__act {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.sf-shell .tabs .detail-head__act .th-note.co-hd-tip {
  flex: none;
  margin-left: 0;
  margin-right: var(--space-1);
}
.sf-shell .tabs .detail-head__act .th-note.co-hd-tip svg {
  width: 17px;
  height: 17px;
}

.sf-shell .tabs.is-stuck {
  background: var(--liquid-bg);
  backdrop-filter: var(--liquid-blur);
  -webkit-backdrop-filter: var(--liquid-blur);
  border-color: var(--liquid-edge);
  box-shadow: var(--liquid-shadow);
}

.sf-shell .tabs.is-stuck .tabs__tray {
  background: var(--liquid-tray-bg);
  border-color: var(--color-border);
}

.sf-shell .tabs .tab {
  padding: 0 16px;
  border-radius: var(--radius-seg);
  height: 34px;
}

.sf-shell .tabs .detail-head__act .btn {

  height: var(--control-height-sm);
  min-height: var(--control-height-sm);
  padding: 0 var(--space-4);
}

@media (min-width: 769px) {
  .sf-shell .tabs .detail-head__act .btn {
    height: var(--control-height-row);
    min-height: var(--control-height-row);
  }
}
.sf-shell .tabs .detail-head__act .btn--ghost {
  background: var(--color-primary-50);
  border-color: transparent;
  color: var(--color-accent-text);
  font-weight: var(--font-weight-semibold);
}
.sf-shell .tabs .detail-head__act .btn--ghost:hover:not(:disabled) {
  background: var(--color-primary-100);
  border-color: transparent;
  color: var(--color-accent-text);
}

.sf-shell .detail-hero {
  transition: height var(--motion-fast) var(--motion-ease-standard),
              padding var(--motion-fast) var(--motion-ease-standard);
  overflow: hidden;
}
.sf-shell .detail-hero .detail-avatar {
  transition: width var(--motion-fast) var(--motion-ease-standard),
              height var(--motion-fast) var(--motion-ease-standard);
  flex: none;
}
.sf-shell.is-scrolled .detail-hero {
  height: 60px;
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
  margin-bottom: var(--space-2);
}
.sf-shell.is-scrolled .detail-hero .detail-avatar {
  width: 36px;
  height: 36px;
}

.detail-avatar {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  flex-shrink: 0;
  overflow: hidden;
}

.detail-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.detail-name {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}

.detail-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
}

.detail-bd-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.bd-cell-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

.inf-bd-cell .bd-cell-list {
  flex-direction: column;
  align-items: flex-start;
}
.bd-cell-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 1px var(--space-1) 1px 1px;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  font-size: var(--font-size-xs);
  color: var(--color-fg);
}
.bd-cell-avatar {
  padding-top: 1px;
  width: 20px;
  height: 20px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  flex-shrink: 0;
  overflow: hidden;
}
.bd-cell-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bd-cell-name {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.detail-bd-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 1px var(--space-1) 1px 1px;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  font-size: var(--font-size-xs);
  color: var(--color-fg);
}
.detail-bd-avatar {
  width: 20px;
  height: 20px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  flex-shrink: 0;
  overflow: hidden;
}
.detail-bd-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.info-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5) var(--space-4);
  padding: var(--space-2) 0;
}

.info-item {
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
}

.info-item__label {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: 1.4;
  margin-bottom: var(--space-1);
}

.info-item__value {
  font-size: var(--font-size-base);
  color: var(--color-fg);
  line-height: 1.5;
  word-break: break-all;
}

.detail-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-3);
}

.detail-section__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  margin-bottom: var(--space-3);
}

.detail-section__head .detail-section__title {
  margin-bottom: 0;
}

.tabs {
  display: flex;
  align-items: center;
  gap: 2px;

  padding: 10px;
  background: var(--tab-tray-bg);

  border: 1px solid var(--color-frame-border);
  border-radius: var(--tab-tray-radius);

  position: relative;

  width: fit-content;
  max-width: 100%;
  flex-wrap: wrap;
}

.card > .tabs:not(:has(> .tabs__tray)) {
  padding: 3px;
  border-radius: var(--radius-md);
}

.tabs__ink {
  position: absolute;

  top: 0;
  left: 0;
  border-radius: var(--tab-tray-item-radius);

  background: var(--gradient-brand);
  box-shadow: var(--shadow-pill-active);
  pointer-events: none;
  will-change: transform;

  transition: transform var(--motion-tab-slide) var(--motion-ease-glide),
              width var(--motion-tab-slide) var(--motion-ease-glide),
              height var(--motion-tab-slide) var(--motion-ease-glide),

              opacity var(--motion-fast) var(--motion-ease-standard);
}

.tab:not(.is-active):hover { color: var(--color-accent-text); }
.sf-tab:not(.is-active):hover { color: var(--color-accent-text); }

.tabs.is-inking .tab:not(.is-active):hover,
.sf-tabs__track.is-inking .sf-tab:not(.is-active):hover,
.table-tabs.is-inking .pill-filter__item:not(.is-active):hover,
.table-tabs.is-inking .seg__btn:not(.is-active):hover {
  background: transparent;
}

.tab {
  position: relative;

  height: 34px;
  padding: 0 16px;
  background: transparent;
  border: none;
  border-radius: var(--radius-seg);
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-standard);
}

.tab:not(.is-active):hover {
  color: var(--color-accent-text);

}

.tab.is-active {

  background: transparent;
  color: var(--color-accent-on);

  transition: color 0s linear var(--motion-tab-slide);
  font-weight: var(--font-weight-semibold);
  box-shadow: none;

}

.sf-shell {
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  box-shadow: none;
  overflow: hidden;
  max-width: var(--form-max-width);
  margin-left: auto;
  margin-right: auto;
}

.sf-tabs {
  display: flex;
  align-items: center;

  margin-top: var(--space-4);
  padding: 0;
  border-bottom: 0;

  background: transparent;
  overflow-x: visible;

  position: sticky;
  top: var(--tabs-bar-height);
  z-index: 60;
  transition: box-shadow var(--motion-base) var(--motion-ease-standard);
}

.sf-tabs__inner {
  display: flex;
  align-items: center;
  width: 100%;

  max-width: var(--form-max-width);
  margin: 0 auto;
  padding: 0;
}

.sf-tabs__track {
  display: inline-flex;
  align-items: center;
  gap: 2px;

  padding: 10px;

  background: var(--color-surface);

  border: 1px solid var(--color-gray-300);
  border-radius: var(--tab-tray-radius);
  flex-wrap: wrap;

  position: relative;
}

.sf-tabs.is-stuck .sf-tabs__track {
  background: var(--liquid-bg);
  backdrop-filter: var(--liquid-blur);
  -webkit-backdrop-filter: var(--liquid-blur);
  border-color: var(--liquid-edge);
  box-shadow: var(--liquid-shadow);
}

.sf-tabs.is-stuck .tabs__tray {
  background: var(--liquid-tray-bg);
  border-color: var(--color-border);
}

.sf-tab {
  position: relative;

  height: 34px;
  padding: 0 16px;
  border: none;
  border-radius: var(--radius-seg);
  background: transparent;
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-standard);
}

.sf-tab:not(.is-active):hover {
  color: var(--color-accent-text);

}

.sf-tab.is-active {

  background: transparent;
  color: var(--color-accent-on);

  transition: color 0s linear var(--motion-tab-slide);
  font-weight: var(--font-weight-semibold);
  box-shadow: none;
}

.tabs:not(:has(> .tabs__ink)) .tab.is-active {
  background: var(--gradient-brand);
  box-shadow: var(--shadow-pill-active);
}
.sf-tabs__track:not(:has(> .tabs__ink)) .sf-tab.is-active {
  background: var(--gradient-brand);
  box-shadow: var(--shadow-pill-active);
}

.sf-body {
  background: var(--color-surface);
}

.sf-body__content {
  padding: var(--space-5) var(--space-6);
  max-width: var(--form-max-width);
  margin: 0 auto;
}

.sf-panel-body {
  width: 100%;
}

.platform-group {
  border: 1.5px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-2);
}
.platform-group:last-child {
  margin-bottom: 0;
}

.platform-group__main {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  min-height: 44px;
}
.platform-group__head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  align-self: stretch;
  padding-right: var(--space-4);
  border-right: 1px solid var(--color-border-soft);
}
.platform-group__name {
  min-width: 56px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.platform-group__head .switch { margin: 0; flex-shrink: 0; }

.platform-group__off {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  font-size: var(--font-size-xs);
  color: var(--color-fg-3);
}

.pg-field {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.pg-field__label {
  flex: 0 0 auto;
  width: 84px;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  white-space: nowrap;

  padding-left: 0;
  margin-bottom: 0;
}
.pg-field__ctl { flex: 1 1 auto; min-width: 0; max-width: 260px; }

.platform-group__fields {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3) var(--space-5);
  min-width: 0;
}

.platform-group__line {
  border-top: 1px solid var(--color-border-soft);
  margin-top: var(--space-3);
  padding-top: var(--space-3);
}

.platform-group__head--bare {
  padding-right: 0;
  border-right: none;
}

.platform-agency-box {
  display: grid;
}

@media (max-width: 768px) {
  .platform-group__main {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3);
  }
  .platform-group__head {
    align-self: auto;
    padding-right: 0;
    padding-bottom: var(--space-3);
    border-right: none;
    border-bottom: 1px solid var(--color-border-soft);
  }
  .platform-group__head--bare {
    padding-bottom: 0;
    border-bottom: none;
  }
  .platform-group__fields { grid-template-columns: 1fr; }

  .pg-field__label { width: 72px; }
}

.sf-shell > .form-actions {
  display: block;
  padding: 0;
  border-top: 1px solid var(--color-border-soft);
  background: var(--color-surface);
}

.sf-shell > .form-actions .form-actions__inner {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  width: 100%;

  max-width: var(--form-max-width);
  margin: 0 auto;
  padding: var(--space-4) var(--space-6);
}

@media (max-width: 1024px) {
  .sf-tabs__inner {
    padding: 0 var(--space-4);
  }
  .sf-tab {
    margin-right: var(--space-4);
  }
  .sf-body__content {
    padding: var(--space-4);
  }
  .sf-shell > .form-actions .form-actions__inner {
    padding: var(--space-4);
  }
}

@media (max-width: 1024px) {
  .info-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.comm-timeline {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.comm-timeline__row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  font-size: var(--font-size-sm);
  border-top: 1px solid var(--color-border-soft);
}
.comm-timeline__row:first-child { border-top: none; }
.comm-timeline__row.is-sched {
  background: var(--color-warning-bg);
  box-shadow: inset 3px 0 0 var(--color-warning);
}
.comm-timeline__when {
  flex: none;
  min-width: 150px;
  color: var(--color-fg-2);
  font-variant-numeric: tabular-nums;
}
.comm-timeline__rate { flex: 1; color: var(--color-fg); font-weight: var(--font-weight-medium); }
.comm-timeline__src { flex: none; color: var(--color-muted); font-size: var(--font-size-xs); }

.comm-channel {
  margin-bottom: var(--space-4);
  padding: var(--space-3);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  border: 1.5px solid var(--color-success);
}
.comm-channel--dy {
  border-color: var(--color-info);
}
.comm-channel:last-child { margin-bottom: 0; }
.comm-channel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-2);
}

.comm-channel-act { flex: none; }
.comm-channel--off .comm-channel-act { margin-left: auto; }

.comm-channel--off { padding: var(--space-2) var(--space-3); }
.comm-channel--off .comm-channel-title { margin-bottom: 0; color: var(--color-muted); }

.comm-channel-sum {
  margin-left: auto;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
  font-variant-numeric: tabular-nums;
}
.comm-channel-sum--none { color: var(--color-fg-2); opacity: .65; }
.comm-channel-title::before {
  content: '';
  width: 4px;
  height: 14px;
  border-radius: 2px;
  background: var(--color-success);
  flex-shrink: 0;
}
.comm-channel-title--dy {
  color: var(--color-info);
}
.comm-channel-title--dy::before {
  background: var(--color-info);
}
.comm-channel-warn {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 8px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  color: var(--color-warning);
  background: var(--color-warning-bg);
  border-radius: var(--radius-pill);
  vertical-align: middle;
}

.co-ch-note {
  padding: var(--space-2) var(--space-4) 0;
  font-size: var(--font-size-sm);
  line-height: 1.6;
  color: var(--color-fg-2);
}

.co-ch-note__src { font-weight: 600; color: var(--color-info); }

.co-cv__row {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  column-gap: var(--space-3);
  align-items: center;
}
.co-cv__row + .co-cv__row {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border-soft);
}

.co-cv__sc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  white-space: nowrap;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.co-cv__tag { font-size: var(--font-size-xs); color: var(--color-muted); }

.co-cv__tag--own { color: var(--color-info); }
.co-cv__off { font-size: var(--font-size-sm); color: var(--color-muted); }

.comm-off {
  opacity: 0.5;
}

.comm-scene {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  padding: var(--space-3);
  margin-bottom: var(--space-2);
  background: var(--color-surface);
}
.comm-scene:last-child { margin-bottom: 0; }
.comm-scene-head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-3);
}
.comm-scene-name { font-weight: var(--font-weight-medium); font-size: var(--font-size-sm); }
.comm-scene-period {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-left: 6px;
}

.comm-current {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  line-height: 1.5;
  color: var(--color-muted);
}

.comm-rate-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
  padding: var(--space-2) 0 var(--space-2);
}
.comm-rate-lbl {
  display: block;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-bottom: 2px;
}
.comm-rate-val {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}
.comm-rate-val--off { color: var(--color-muted); font-weight: var(--font-weight-regular); }

.comm-rate-empty {
  padding: var(--space-1) 0 var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.comm-rate-inc {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  padding-bottom: var(--space-1);
}

.comm-scene-head-act { margin-left: auto; }
.comm-scene-edit-act { display: flex; justify-content: flex-end; margin-top: var(--space-2); }

.comm-edit-panel {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border-soft);
}

.comm-exempt-tag {
  display: inline-block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-warning);
  background: var(--color-warning-bg);
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  line-height: 1.4;
}

.it-blk-head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.it-blk-head__name {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.it-blk-head .btn {
  margin-left: auto;
}
.it-blk-desc {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  line-height: 1.7;
  color: var(--color-fg-2);
}
.it-blk-desc b {
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}

.lock-ok, .lock-diff {
  display: inline-block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  line-height: 1.4;
}
.lock-ok { color: var(--color-success); background: var(--color-success-bg); }
.lock-diff { color: var(--color-warning); background: var(--color-warning-bg); }
.lock-diff-num { color: var(--color-danger); font-weight: var(--font-weight-medium); }
.comm-scene-tag {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-accent-text);
  background: var(--color-primary-100);
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  line-height: 1.4;
}
.comm-follow {
  font-size: var(--font-size-xs);
  color: var(--color-success);
  margin-left: auto;
  background: var(--color-success-bg);
  padding: 2px 10px;
  border-radius: var(--radius-pill);
  line-height: 1.4;
}
.comm-channel--dy .comm-follow {
  color: var(--color-info);
  background: var(--color-info-bg);
}
.comm-scene-fields {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}
.comm-scene-body {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border);

  display: block;
}
.comm-field {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.comm-field-label { font-size: var(--font-size-xs); color: var(--color-fg-2); }
.comm-input-suffix {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.comm-input-suffix input { width: 80px; }
.comm-unit { font-size: var(--font-size-xs); color: var(--color-fg-2); }
.comm-more-wrap {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.comm-extra-summary {
  font-size: var(--font-size-xs);
  color: var(--color-success);
  line-height: 1.6;
  background: var(--color-success-bg);
  padding: 2px 10px;
  border-radius: var(--radius-pill);
}

.comm-more-sum {
  margin-left: 6px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
  font-variant-numeric: tabular-nums;
}
.comm-more-ico { display: inline-flex; align-items: center; margin-right: 2px; }
.comm-channel--dy .comm-extra-summary {
  color: var(--color-info);
  background: var(--color-info-bg);
}
.comm-extra {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border);
  width: 100%;
}
.comm-extra-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--space-3);
}
.comm-extra-item { display: flex; flex-direction: column; gap: 6px; }
.comm-extra-item > label { font-size: var(--font-size-xs); color: var(--color-fg-2); }
.comm-extra-item .comm-input-suffix { width: 100%; }
.comm-extra-item .comm-input-suffix input { flex: 1; width: auto; }
.comm-extra-hint { margin-top: var(--space-2); }

.dc-table {
  table-layout: fixed;
}
.dc-table thead th.dc-th-scene {
  position: relative;
  border-left: 1px solid var(--color-border-soft);
}
.dc-scene-cell {
  padding: var(--space-2) var(--space-3);
  border-left: 1px solid var(--color-border-soft);
}
.dc-cell-line {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 2px 0;
  min-height: 24px;
}
.dc-cell-line--off { opacity: 0.55; }
.dc-cell-text {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: var(--font-size-sm);
}

.dc-rates {
  display: flex;

  flex-direction: row;
  flex-wrap: wrap;
  gap: 3px 10px;
  min-width: 0;
  flex: 1;
}
.dc-rate-row {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
  font-size: var(--font-size-sm);
  line-height: 1.35;
}

.dc-rate--online { color: var(--color-accent-text); }
.dc-rate--offline { color: var(--color-warning); }
.dc-rate--yearly { color: var(--color-success); }
.dc-rate--rebate { color: var(--color-chart-7); }
.dc-rate--incentive { color: var(--color-danger); }
.dc-rate-row .dc-rate-label {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  white-space: nowrap;
}
.dc-rate-row .dc-rate-num {
  font-weight: var(--font-weight-semibold);
  color: inherit;
  font-variant-numeric: tabular-nums;
}
.dc-rate-row .dc-rate-period {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  white-space: nowrap;
}
.dc-extra-chips {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.dc-extra-chip {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  background: var(--color-gray-100);
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
  line-height: 1.4;
}
.dc-chip-tag {
  display: inline-block;
  font-weight: var(--font-weight-medium);
  color: var(--color-success);
  background: var(--color-success-bg);
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  flex-shrink: 0;
  font-size: var(--font-size-xs);
  line-height: 1.5;
  white-space: nowrap;
}
.dc-chip-tag--dy {
  color: var(--color-info);
  background: var(--color-info-bg);
}
.dc-follow {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  background: var(--color-gray-100);
  padding: 2px 10px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}

.up-grid { display: flex; flex-direction: column; gap: var(--space-4); }
.up-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-2);
}
.up-section-count {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
}
.up-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-2);
}
.up-card {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  padding: var(--space-3);
}
.up-card-top {
  display: flex;
  align-items: center;
  gap: 10px;
}
.up-card-img {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  object-fit: cover;
  flex-shrink: 0;
  background: var(--color-gray-100);
}
.up-card-img--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-fg-2);
}
.up-card-name {
  flex: 1;
  min-width: 0;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.up-card-rate {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-accent-text);
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.up-card-bottom {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--space-2);
}
.up-card-type {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
}
.up-card-actions {
  margin-left: auto;
  display: flex;
  gap: 2px;
}

.st-ch-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}
.st-ch-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  background: var(--color-success-bg);
  color: var(--color-success);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
    background-color var(--motion-fast) var(--motion-ease-standard),
    border-color var(--motion-fast) var(--motion-ease-standard);
}
.st-ch-tag--dy {
  background: var(--color-info-bg);
  color: var(--color-info);
}
.st-ch-tag:hover {
  border-color: var(--color-border);
}
.st-ch-tag.is-active {
  background: var(--color-primary-50);
  border-color: var(--color-primary-200);
  color: var(--color-accent-text);
  font-weight: var(--font-weight-medium);
}
.st-ch-tag__amt {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum", "lnum";
}

.st-ch-tag--static {
  cursor: default;
}
.st-ch-tag--static:hover {
  border-color: transparent;
}

.comm-history {
  margin-top: var(--space-2);
}
.comm-history-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-xs);
}
.comm-history-table td {
  padding: 4px 8px;
  border-bottom: 1px solid var(--color-border-soft);
  vertical-align: top;
  color: var(--color-fg-2);
}

.comm-history-row--cur td {
  color: var(--color-info);
  font-weight: var(--font-weight-medium);
}
.comm-history-period {
  width: 38%;
  white-space: nowrap;
  color: var(--color-muted);
}
.comm-history-row--cur .comm-history-period {
  color: var(--color-info);
}
.comm-history-toggle {
  margin-top: 6px;
  padding: 0;
  color: var(--color-fg-2);
}
.comm-history-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.spc-section .spc-group { margin-bottom: var(--space-3); }
.spc-group__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-2);
}
.spc-group__head::before {
  content: '';
  width: 3px;
  height: 14px;
  border-radius: 2px;
  background: var(--color-accent);
}
.spc-table { margin: 0; }
.spc-lock-tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
  color: var(--color-fg-2);
  font-size: var(--font-size-xs);
}
.spc-toggle { gap: 6px; }

.spc-sched-row { display: flex; align-items: center; gap: var(--space-3); }
.spc-sched-link { color: var(--color-info); font-weight: var(--font-weight-medium); text-decoration: none; cursor: pointer; }
.spc-sched-link:hover { text-decoration: underline; }
.spc-sched-time { color: var(--color-fg-2); }

.spc-sched-card { padding: var(--space-1) 0 var(--space-2); }
.spc-sched-card + .spc-sched-card { border-top: 1px solid var(--color-border-soft); }
.spc-sched-comm { display: flex; gap: var(--space-2); align-items: baseline; color: var(--color-fg-2); margin-top: 2px; }
.spc-sched-comm-label { color: var(--color-muted); font-size: var(--font-size-xs); flex-shrink: 0; }

.spc-comm-diff { color: var(--color-danger); font-weight: var(--font-weight-semibold); }

.commission-section {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
  background: var(--color-surface);
}
.commission-section:last-child { margin-bottom: 0; }
.commission-section__sub {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border-soft);
}

#ip-body table.table tbody td.is-num {
  white-space: nowrap;
}

#ip-body table.table { min-width: 1560px; }

.co-pick-list {
  max-height: 360px;
  overflow: auto;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}
.co-pick-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  cursor: pointer;
  border-bottom: 1px solid var(--color-border-soft);
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.co-pick-item:last-child { border-bottom: 0; }
.co-pick-item:hover { background: var(--color-surface-2); }

.co-pick-item.is-picked {
  background: var(--color-primary-50);
  box-shadow: inset 3px 0 0 var(--color-primary-500);
}
.co-pick-item__name {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}

.ia-group {
  margin-top: var(--space-4);
  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);

  box-shadow: var(--shadow-card);
  padding: var(--space-6);
}
.ia-group:first-child { margin-top: 0; }

.ia-group__title {
  margin-bottom: var(--space-4);
}

.ia-group .module-card + .module-card { margin-top: var(--space-4); }

.ia-page .ia-group > .module-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;

  box-shadow: none;
}

.ia-page .ia-group > :is(.ia-group__title + .module-card, .ia-group__title + .card + .module-card) > .module-card__head > .module-card__title {
  display: none;
}

.ia-page .ia-group > :is(.ia-group__title + .module-card, .ia-group__title + .card + .module-card) > .module-card__head:not(:has(> :not(.module-card__title))) {
  display: none;
}

.ia-page .ia-group > .ia-group__title + .module-card .spc-section > .detail-section__head > .detail-section__title {
  display: none;
}
.ia-page .ia-group > .ia-group__title + .module-card .spc-section > .detail-section__head {
  justify-content: flex-end;
}

.module-card--sub {
  background: var(--color-surface-2);
  border-color: transparent;
}

.ia-page .ia-group > .module-card--sub {
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
}

.module-card--sub > .module-card__head { background: transparent; }

.module-card--sub .table thead th { background: transparent; }

.form-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}
.form-row > .field-label {
  flex: none;
  width: 112px;
  margin-bottom: 0;
  text-align: right;

  line-height: 1.35;
}
.form-row__ctrl { flex: 1; min-width: 0; }

.form-grid + .form-row { margin-top: var(--space-6); }

.form-row:has(> .form-row__ctrl > textarea) { align-items: flex-start; }
.form-row:has(> .form-row__ctrl > textarea) > .field-label { padding-top: 10px; }

@media (max-width: 900px) {
  .form-row { display: block; }
  .form-row > .field-label { width: auto; text-align: left; margin-bottom: var(--space-2); }
}

.co-card__t {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.co-sc-name { display: flex; align-items: center; gap: 6px; min-height: 34px; }
.co-sc-name .sc-label { font-weight: var(--font-weight-medium); font-size: var(--font-size-sm); flex: none; }

.co-sc-name .co-sc-tag {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-accent-text);
  background: var(--color-primary-100);
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  line-height: 1.4;
  flex: none;
}

.co-sc-name .co-sc-sw { margin-left: auto; flex: none; }

.co-sc-name .co-follow { margin-left: 0; }

.co-rate { display: flex; align-items: center; gap: var(--space-2); }

.co-rate--view { gap: var(--space-2); }
.co-rate__val { font-size: var(--font-size-base); font-weight: var(--font-weight-medium); font-variant-numeric: tabular-nums; }
.co-rate__val--off { color: var(--color-muted); font-weight: var(--font-weight-regular); }

.co-rate__remark-txt { font-size: var(--font-size-xs); color: var(--color-muted); }
.co-rate__sw {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: none;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  cursor: pointer;
  white-space: nowrap;
}
.co-rate__in { width: 76px; flex: none; }

.co-rate__remark { width: 140px; flex: none; }

.co-follow {
  display: inline-block;
  margin-left: 6px;
  font-size: var(--font-size-xs);
  color: var(--color-success);
  background: var(--color-success-bg);
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  vertical-align: 1px;
  cursor: help;
}

.co-tier-desc { margin-top: 4px; }
.co-tier-btn { flex: none; }

.co-kpi { margin-bottom: var(--space-4); }
.co-kpi .kpi-card__value { white-space: nowrap; }

.co-ch { border-width: 1.5px; }
.co-ch--wx { border-color: var(--color-success); }
.co-ch--dy { border-color: var(--color-info); }
.co-ch__t { display: flex; align-items: center; gap: 8px; }
.co-ch__t::before {
  content: '';
  width: 4px;
  height: 14px;
  border-radius: 2px;
  background: var(--color-success);
  flex-shrink: 0;
}
.co-ch--dy .co-ch__t { color: var(--color-info); }
.co-ch--dy .co-ch__t::before { background: var(--color-info); }

.co-ch--dy .co-follow { color: var(--color-info); background: var(--color-info-bg); }

.co-ch__sw { margin-left: auto; }
.co-ch--off { border-color: var(--color-frame-border) !important; }
.co-ch--off > .module-card__head .co-ch__t { color: var(--color-muted); }
.co-ch--off > .module-card__head .co-ch__t::before { background: var(--color-muted); }
.co-ch-note--off { color: var(--color-muted); }

.co-inc-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  margin-top: var(--space-2);
}
.co-inc-stat {
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3);
}
.co-inc-stat .l { font-size: var(--font-size-xs); color: var(--color-muted); }
.co-inc-stat .v { font-size: var(--font-size-lg); font-weight: 500; margin-top: 2px; }

.co-inc-hit { color: var(--color-success); }
.co-inc-desc { font-weight: 500; }

.co-follow--off { color: var(--color-muted); background: var(--color-surface-2); }

.co-inherit-cell {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.co-inherit-cell .switch { min-height: var(--control-height); }

.co-inherit-cell .switch input:disabled ~ .switch__label { opacity: 0.5; }

.co-comm__msg {
  padding: var(--space-6) 0;
  text-align: center;
  color: var(--color-muted);
}
.co-comm__note {
  margin-top: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.co-comm-cell .dc-cell-line { gap: 6px; padding: 0; min-height: 20px; }
.co-comm-cell .dc-cell-line + .dc-cell-line {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px dashed var(--color-border-soft);
}
.co-comm-cell .dc-rates { gap: 2px 8px; }
.co-comm-cell .dc-rate-row { gap: 4px; font-size: var(--font-size-xs); }

.calendar-toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}

.calendar-filters {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-3);
}

.calendar-filters > * {
  flex: 0 0 auto;
}

.calendar-month {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  min-width: 140px;
  text-align: center;
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
}

.legend {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;

  margin-left: auto;
}

.legend-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  cursor: pointer;
  user-select: none;
}

.legend-item__dot {
  width: 10px;
  height: 10px;
  border-radius: var(--radius-sm);
}

.legend-item.is-off {
  opacity: 0.4;
}

.calendar {
  background: var(--color-surface-2);
  border: none;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.calendar__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: transparent;
  border-bottom: none;
}

.calendar__weekday {
  padding: var(--space-2);
  text-align: center;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--table-header-fg);
}

.calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);

  padding: 3px;
}

.calendar-cell {

  min-height: 182px;
  min-width: 0;

  background: var(--color-surface);
  border: 3px solid var(--color-surface-2);

  border-radius: 12px;
  padding: 5px;
  position: relative;
  overflow: hidden;
}

.calendar-cell.is-outside {
  background: transparent;
  border-color: transparent;
}
.calendar-cell.is-outside .calendar-cell__day {
  color: var(--color-muted);
}

.calendar-cell.is-today .calendar-cell__day {
  background: var(--color-accent);
  color: var(--color-accent-on);
  border: none;
}

.calendar-cell__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding-top: 1px;
  border-radius: var(--radius-pill);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
}

.calendar-cell__events {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin-top: var(--space-1);
  overflow: hidden;
}

.cal-event {
  display: flex;
  align-items: center;
  gap: 3px;
  height: 20px;
  padding: 0 3px;
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs);
  line-height: 1;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
}

.cal-event__bar {
  width: 2px;
  height: 100%;
  border-radius: var(--radius-sm);
  flex-shrink: 0;
}

.cal-event__time {

  font-weight: var(--font-weight-regular);
  color: var(--color-fg-2);
  flex-shrink: 0;
}

.cal-event__text {
  overflow: hidden;
  text-overflow: ellipsis;
}

.cal-event:hover {
  filter: brightness(0.96);
}

.cal-event.is-past {
  opacity: 0.5;
}
.cal-event.is-past:hover {
  opacity: 0.85;
}

.cal-more {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  padding: 0 var(--space-1);
}

.cal-approx {
  margin-top: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}
.cal-approx__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg-2);
  margin-bottom: var(--space-2);
}
.cal-approx__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.cal-approx-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.cal-approx-item:hover { border-color: var(--color-accent-text); }
.cal-approx-item__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-muted);
  flex-shrink: 0;
}
.cal-approx-item__name {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
}
.cal-approx-item__type {
  font-size: var(--font-size-xs);
}
.cal-approx-item__bd {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.drawer-detail {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.detail-section__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  margin-bottom: var(--space-3);
}

.detail-block + .detail-block {
  border-top: 1px dashed var(--color-border-soft);
  padding-top: var(--space-3);
}

.detail-section__title--with-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.detail-item-title {
  font-size: 16px;
  font-weight: var(--font-weight-semibold);
}

.detail-item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-2);
}

.timeline__lbl {
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-sm);
}

.timeline__item.is-current .timeline__lbl {
  font-weight: var(--font-weight-semibold);
}

.ie-box {
  border: 1px solid var(--color-border-soft);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--radius-lg);
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2);
  margin-bottom: var(--space-4);
}

.ie-actions {
  display: flex;
  gap: var(--space-2);
  margin-top: var(--space-3);
  justify-content: flex-end;
}

.item-detail {
  border: 1.5px solid var(--color-accent);
  border-radius: var(--radius-lg);
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2);
}

.detail-item-block {
  padding: var(--space-2) 0;
}
.detail-item-block + .detail-item-block {
  border-top: 1px dashed var(--color-border-soft);
  margin-top: var(--space-2);
  padding-top: var(--space-3);
}
.detail-item-block__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.detail-item-block__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.detail-item-block__label {
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-sm);
}
.detail-item-block__fields {
  padding-left: var(--space-4);
}

.kv-row {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-2) 0;
  font-size: var(--font-size-sm);
}

.kv-row__k {
  color: var(--color-muted);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.kv-row__icon {
  display: inline-flex;
  align-items: center;
  color: var(--color-muted);
  flex-shrink: 0;
}
.kv-row__icon svg {
  display: block;
}

.kv-row__v {
  color: var(--color-fg);
  text-align: right;
  word-break: break-all;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 4px;
}

.schedule-conflict {
  margin-top: var(--space-3);
}

.sf-hero-line {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  max-width: var(--form-max-width);
  margin: 0 auto var(--space-4);

  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);
  padding: 14px var(--space-5);
}

.sf-hero-line #sf-hero-meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.sf-hero-line #sf-hero-meta .cell-person__tags { margin-top: 0; }

.sf-card {
  max-width: var(--form-max-width);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--space-5);
}
.sf-card .card__body {
  max-width: none;
}

.pf-prod-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.pf-prod-row .icon-btn {
  color: var(--color-danger);
}

.sf-actions {
  position: sticky;
  bottom: 0;
  z-index: 10;
  background: var(--color-bg);
  border-top: 1px solid var(--color-border-soft);
}
.sf-actions__inner {
  max-width: var(--form-max-width);
  margin: 0 auto;
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: var(--space-4) 0;
}

.page-header ~ .form-actions {
  max-width: var(--form-max-width);
  margin-left: auto;
  margin-right: auto;
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
}

.node-rate-block {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
}
.node-rate-block__title {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);
}

.sf-rate-sum {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  min-height: 40px;
}
.sf-rate-sum__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 4px var(--space-3);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-full);
  font-size: var(--font-size-xs);
  line-height: 1.6;
}
.sf-rate-sum__k { color: var(--color-muted); }
.sf-rate-sum__v {
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
  font-variant-numeric: tabular-nums;
}

.sf-rate-sum__v.is-empty {
  color: var(--color-muted);
  font-weight: var(--font-weight-regular);
}
.sf-rate-sum--empty {
  display: flex;
  align-items: center;
  height: 40px;
  color: var(--color-muted);
  font-size: var(--font-size-base);
}

.rate-sched { width: 100%; border-collapse: collapse; }
.rate-sched th {
  text-align: left;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-muted);
  padding: 0 var(--space-3) var(--space-2) 0;
  border-bottom: 1px solid var(--color-border);
}
.rate-sched td {
  padding: var(--space-2) var(--space-3) var(--space-2) 0;
  border-bottom: 1px solid var(--color-border-soft);
  vertical-align: middle;
}
.rate-sched tr:last-child td { border-bottom: 0; }
.rate-sched th:last-child, .rate-sched td:last-child { padding-right: 0; }

.rate-sched input.input { width: 100%; max-width: 160px; }
.rate-sched__k { font-size: var(--font-size-sm); color: var(--color-fg); white-space: nowrap; }
.rate-sched__d { font-size: var(--font-size-xs); color: var(--color-muted); margin-left: var(--space-2); }

.rate-sched__tag {
  margin-left: var(--space-2);
  padding: 1px var(--space-2);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--radius-md);
  background: var(--color-warning-bg);
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  white-space: nowrap;
}

.rate-sched tr.is-by-person td input.rsc-input {
  border-style: dashed;
  color: var(--color-muted);
}

.sf-readonly--two {
  gap: var(--space-3);
  justify-content: flex-start;
}
.sf-readonly--two > span {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}
.sf-readonly--two em {
  font-style: normal;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
}
.sf-readonly__sep {
  width: 1px;
  height: 14px;
  background: var(--color-border);
}

.sf-tab-panel[data-panel="detail"] > #sf-approx-card {
  padding-bottom: var(--space-8);
}
.sf-tab-panel[data-panel="detail"] > #sf-timeline {
  margin-top: var(--space-8);
}

.tl {
  display: flex;
  flex-direction: column;
  position: relative;

  --tl-line-top: 26px;
  --tl-line-h: 0;
}

.tl::before {
  content: '';
  position: absolute;
  left: 9px;
  top: var(--tl-line-top);
  height: var(--tl-line-h);
  width: 2px;
  background: var(--color-border);
  pointer-events: none;
}

.tl-item {
  display: flex;
  gap: var(--space-3);
}

.tl-item__rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 20px;
  flex-shrink: 0;
}

.tl-item__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--color-accent);

  margin-top: var(--space-5);
  flex-shrink: 0;
  z-index: 1;
  position: relative;
  box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);
}

.tl-item__content {
  flex: 1;
  min-width: 0;
  margin-bottom: var(--space-4);
}

.tl-add-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  margin: calc(-1 * var(--space-1)) 0 var(--space-3) 26px;
}
.tl-add-row__line {
  flex: 1;
  border-top: 1px dashed var(--color-border);
}
.tl-add-row__btn {
  flex-shrink: 0;
}

.tl-item__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
}

.tl-item__title {
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-base);
  color: var(--color-fg);
}

.tl-item__title .is-sub {
  color: var(--color-muted);
  font-weight: var(--font-weight-regular);
  font-size: var(--font-size-sm);
}

.tl-item__time {
  color: var(--color-muted);
  font-weight: var(--font-weight-regular);
  font-size: var(--font-size-sm);
  margin-left: var(--space-2);
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
}

.sf-switch {
  display: flex;
  width: fit-content;
  margin: var(--space-3) 0 var(--space-2);
}
.sf-switch .switch__label {
  font-weight: var(--font-weight-semibold);
}

.sf-switch--muted .switch__label {
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
}

.sf-card-row {
  display: flex;
  gap: var(--space-5);
  margin-bottom: var(--space-4);
  align-items: flex-start;
}
.sf-card-row:last-child { margin-bottom: 0; }
.sf-field-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}
.sf-field-col .sf-label {
  display: block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);

  padding-left: var(--field-label-indent);
  margin-bottom: var(--space-2);
  line-height: 1.4;
}
.sf-field-col .sf-label .req { color: var(--color-danger); margin-left: 2px; }

.sf-field-col .input,
.sf-field-col .select {
  width: 100%;
}
.sf-field-col textarea {
  width: 100%;
}

.sf-field-col .fp__box {
  min-height: 40px;
  font-size: var(--font-size-base);
}
.sf-field-col .fp__value { font-size: var(--font-size-base); }
.sf-field-col .fp__search { font-size: var(--font-size-base); }

.sf-field-col .sf-readonly {
  display: flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  font-size: var(--font-size-base);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-disabled-bg);
  color: var(--color-fg-2);
}
.sf-field-col.sf-grow-1 { flex: 1; }
.sf-field-col.sf-grow-15 { flex: 1.5; }
.sf-field-col.sf-w-live { flex: 0 0 200px; }

.sf-field-col.sf-w-brand { flex: 0 0 200px; }
.sf-field-col.sf-w-gmv  { flex: 0 0 300px; }

.sf-platform-checks {
  display: flex;
  gap: var(--space-4);
  align-items: center;
  min-height: 40px;
}
.sf-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--font-size-base);
  color: var(--color-fg);
  cursor: pointer;
}
.sf-check input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-accent);
  cursor: pointer;
}
.pta-checks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  padding-top: 2px;
}

.sf-commission-label {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);
  margin-bottom: var(--space-2);
}

.sf-switch--state {
  --switch-active-bg: var(--color-warning);
}

.sf-plat-switches {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.sf-plat-switches .switch { margin-left: 0; }

#sf-commission-rates .cr-remark { width: 140px; flex: none; }

.sf-inv-row {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.sf-inv-note {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  color: var(--color-muted);
}

.sf-comm-ref__src { font-weight: 600; color: var(--color-info); }
.sf-comm-mode-tip {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  margin-bottom: var(--space-3);
}
.sf-comm-mode-tip svg {
  flex-shrink: 0;
}
.sf-comm-mode-tip--follow { color: var(--color-success-text); }
.sf-comm-mode-tip--lock { color: var(--color-warning-text); }

.sf-comm-ref {
  font-size: var(--font-size-xs);
  line-height: 1.6;
  color: var(--color-muted);
  margin: calc(var(--space-2) * -1) 0 var(--space-3) 0;
}

.sd-comm-ch {
  border: 1.5px solid var(--color-success);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  padding: var(--space-3) var(--space-4);
}
.sd-comm-ch + .sd-comm-ch { margin-top: var(--space-3); }
.sd-comm-ch--dy { border-color: var(--color-info); }
.sd-comm-ch--plain { border-color: var(--color-border-soft); }

.sd-comm-ch__act { margin-left: auto; flex: none; }

.sd-comm-ch--off { padding: var(--space-2) var(--space-3); }
.sd-comm-ch--off .sd-comm-ch__name { color: var(--color-muted); }
.sd-comm-ch--off .sd-comm-ch__note { color: var(--color-muted); }
.sd-comm-ch__head {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--space-1) var(--space-3);
  margin-bottom: var(--space-2);
}
.sd-comm-ch__name {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.sd-comm-ch__name::before {
  content: '';
  width: 4px; height: 14px; border-radius: 2px;
  background: var(--color-success);
  flex: none;
}
.sd-comm-ch--dy .sd-comm-ch__name::before { background: var(--color-info); }
.sd-comm-ch--plain .sd-comm-ch__name::before { background: var(--color-muted); }
.sd-comm-ch__note { font-size: var(--font-size-xs); color: var(--color-muted); }

.sd-comm-ch__src { font-weight: 600; font-size: var(--font-size-sm); color: var(--color-success); }
.sd-comm-ch--dy .sd-comm-ch__src { color: var(--color-info); }
.sd-comm-ch--plain .sd-comm-ch__src { color: var(--color-fg-2); }
.sd-comm-ch__src--warn { color: var(--color-danger) !important; }
.sd-comm-ch__basis { font-size: var(--font-size-xs); color: var(--color-muted); }
.sd-comm-ch__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}
.sd-comm-ch__lbl {
  display: block;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-bottom: 2px;
}

.sd-comm-ch__val {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);

  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}
.sd-comm-ch__val--off { color: var(--color-muted); font-weight: var(--font-weight-regular); }

.sd-comm-segs {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.sd-comm-seg {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-2) 0;
  border-top: 1px dashed var(--color-border-soft);
}
.sd-comm-seg:first-child { border-top: none; padding-top: 0; }
.sd-comm-seg:last-child { padding-bottom: 0; }
.sd-comm-seg__when {
  flex: none;
  min-width: 86px;
  padding-top: 2px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-muted);
  font-variant-numeric: tabular-nums;
}
.sd-comm-seg .sd-comm-ch__grid { flex: 1; }

.sf-comm-hist-btn {
  margin-left: auto;
  flex: none;
}

.sf-comm-plat {
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--color-border-soft);
}
.sf-comm-plat:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
.sf-commission-block {
  padding: var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-4);
  background: var(--color-surface);
}
.sf-commission-block:last-child { margin-bottom: 0; }
.sf-commission-title {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: var(--space-3);
}

.sf-inf-box {
  position: relative;
  padding-right: 30px;
}
.sf-inf-box::after {
  content: '';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%238595A4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
  pointer-events: none;
}

.sf-readonly {
  display: flex;
  align-items: center;
  height: 40px;
  padding: 0 var(--space-3);
  color: var(--color-fg-2);
  font-size: var(--font-size-base);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-disabled-bg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 768px) {
  .sf-card-row { flex-wrap: wrap; }
  .sf-card-row .sf-field-col { flex: 1 1 100% !important; }
}

.calendar-legend-mobile,
.calendar-subscribe-mobile {
  display: none;
}

@media (max-width: 768px) {
  .calendar-cell {

    min-height: 135px;
    padding: 3px;
    overflow: hidden;

    border: 2px solid var(--color-surface-2);
    border-radius: var(--radius-seg);
    padding: 1px;
  }

  .calendar-cell.is-outside {
    border-color: transparent;
  }
  .calendar__grid {
    padding: 2px;
  }
  .calendar-cell__day {
    width: 18px;
    height: 18px;
    font-size: var(--font-size-xs);
  }
  .calendar-cell__holiday,
  .calendar-cell__workday {
    font-size: var(--font-size-xs);
    line-height: 13px;
  }
  .cal-event {
    height: 14px;
    padding: 0 3px;
    gap: 2px;
    font-size: var(--font-size-xs);
    border-radius: 3px;
  }
  .cal-event__bar {
    width: 2px;
    height: 9px;
  }

  .cal-more {
    display: block;
    font-size: var(--font-size-xs);
  }

  .calendar--week {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .calendar--week .calendar__weekdays,
  .calendar--week .calendar__grid {
    min-width: 620px;
  }
  .calendar__grid--week .calendar-cell {
    min-height: 160px;
  }

  .calendar-toolbar .calendar-month {
    min-width: 0;
    flex: 1 1 auto;
  }

  .calendar-toolbar .legend {
    display: none;
  }
  .calendar-legend-mobile {
    display: flex;
    margin-top: var(--space-3);
  }

  .page-actions #cal-subscribe {
    display: none;
  }
  .calendar-subscribe-mobile {
    display: block;
    margin-top: var(--space-4);
    text-align: center;
  }

  .calendar-filters > * {
    flex: 1 1 auto;
    max-width: 100%;
  }
  #cal-filter-inf {
    flex: 1 1 100% !important;
  }

  .calendar-filters .input--search,
  .calendar-filters #cal-filter-loc,
  .calendar-filters #cal-filter-live-type {
    flex: 1 1 calc(50% - 6px) !important;
    max-width: calc(50% - 6px);
  }
  .calendar-filters .select {
    width: 100% !important;
  }
  .calendar-filters .input--search .select {
    width: 100% !important;
  }

  #cal-only-mine-switch {
    flex: 1 1 auto;
    justify-content: flex-end;
  }
}

.support-body {
  margin-top: var(--space-2);
  margin-bottom: calc(var(--space-3) * 2.25);
}

.module-card .support-body {
  margin-bottom: 0;
}

.sf-support-item {
  border-bottom: 1px solid var(--color-border-soft);
}
.sf-support-item:last-child {
  border-bottom: none;
}
.sf-support-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3) 0;
}
.sf-support-row .sf-switch {
  margin: 0;
}
.sf-support-row__name {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}
.sf-support-body {
  padding-bottom: var(--space-3);
}
.sf-support-hint {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg-2);
  margin-bottom: var(--space-2);
}

.tl-item__actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.tl-add {
  margin-top: var(--space-2);
}

.tl .node-card {
  border: none;
  padding: 0;
  margin-top: 0;
  background: transparent;
}

#sf-timeline .tl-item__content {
  background: var(--color-surface-2);
  border-radius: var(--radius-lg);
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-5);
}
#sf-timeline .tl-item__head { margin-bottom: var(--space-3); }

#sf-timeline .form-grid .input,
#sf-timeline .form-grid .select,
#sf-timeline .form-grid .dtp,
#sf-timeline .form-grid .fp__box { max-width: none; }

#sf-timeline .tl-add-row { margin: 0 0 var(--space-4) 26px; }

#sf-timeline .tl-item { gap: 6px; }
#sf-timeline .tl-item__dot::after {
  content: '';
  position: absolute;
  left: 100%;
  top: 50%;
  margin-top: -1px;
  width: 10px;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
  opacity: .45;
  pointer-events: none;
}

#sf-timeline .field-label + .input,
#sf-acc-list .field-label + .input { width: 100%; }

.cal-head-filters {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}
.cal-head-filters #cal-filter-inf { width: 190px; flex: 0 0 auto; }
.cal-head-filters #cal-filter-loc { width: 160px; flex: 0 0 auto; }
.cal-head-filters #cal-filter-live-type { width: 140px; flex: 0 0 auto; }
.cal-head-filters .select,
.cal-head-filters .fp__box {
  height: var(--control-height-row);
  min-height: var(--control-height-row);
}

.cal-head-filters #cal-only-mine-switch { flex: 0 0 auto; }

.calendar-toolbar > .btn {
  height: var(--control-height-row);
  min-height: var(--control-height-row);
}

.calendar-cell__day { position: relative; }
.calendar-cell.is-weekend:not(.is-today) .calendar-cell__day { color: var(--color-muted); }
.calendar-cell.is-holiday:not(.is-today) .calendar-cell__day { color: var(--color-muted); font-weight: var(--font-weight-semibold); }

.calendar-cell__holiday {
  position: absolute;
  top: 4px;
  right: 4px;
  padding: 0 3px;
  border-radius: var(--radius-sm);
  background: var(--color-danger-bg);
  color: var(--color-danger);
  font-size: var(--font-size-xs);
  line-height: 15px;
  pointer-events: none;
}
.calendar-cell__workday {
  position: absolute;
  top: 4px;
  right: 4px;
  padding: 0 3px;
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  line-height: 15px;
  pointer-events: none;
}

.calendar__grid--week .calendar-cell {
  min-height: 416px;
}

.agenda { display: flex; flex-direction: column; gap: var(--space-3); }
.agenda-day {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.agenda-day__head {
  padding: var(--space-3) var(--space-4);
  background: var(--table-header-bg);
  border-bottom: 1px solid var(--color-border-soft);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.agenda-day__items { padding: var(--space-2); display: flex; flex-direction: column; gap: 2px; }
.agenda-day__items .cal-event { cursor: pointer; }

.calendar-cell[data-date] { cursor: pointer; }

.calendar-cell[data-date]::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 2px solid transparent;
  border-radius: var(--radius-md);
  pointer-events: none;

  box-shadow: 0 2px 6px rgba(0, 100, 224, 0);
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              box-shadow var(--motion-fast) var(--motion-ease-standard);
}
.calendar-cell[data-date]:hover::after {
  border-color: color-mix(in srgb, var(--color-accent-text) 38%, transparent);
}

.calendar-cell[data-date].is-selected {
  background: color-mix(in srgb, var(--color-accent-text) 5%, transparent);
}
.calendar-cell[data-date].is-selected::after {
  border-color: var(--color-accent-text);

  box-shadow: var(--shadow-pill-active);
}

.calendar-cell[data-date].is-selected:not(.is-today) .calendar-cell__day {
  color: var(--color-accent-text);
  font-weight: var(--font-weight-semibold);
}

.calendar-cell[data-date].is-selected:hover::after {
  border-color: var(--color-accent-text);
}

@media (max-width: 768px) {
  .calendar-cell[data-date]::after {
    inset: 0;
    border-width: 1.5px;
    border-radius: var(--radius-seg);
  }
}

.day-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.day-item {
  display: flex;
  align-items: stretch;
  gap: var(--space-3);
  padding: var(--space-3);

  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}

.day-item:hover {
  border-color: var(--color-accent-text);
}

.day-item.is-past {
  opacity: 0.55;
}
.day-item.is-past:hover {
  opacity: 1;
}

.day-split {
  display: flex;
  align-items: stretch;
  height: 100%;
}
.day-split__list {
  flex: 1 1 auto;
  min-width: 0;
  overflow-y: auto;
  padding: var(--space-5);
}
.day-split__detail { display: none; }
.day-split.is-open .day-split__list { flex: 0 0 384px; }

@keyframes split-detail-in {
  from { opacity: 0; transform: translateX(100%); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes split-detail-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.day-split.is-open .day-split__detail {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  overflow-y: auto;
  padding: var(--space-5);
  border-left: 1px solid var(--color-border-soft);

  animation: split-detail-in var(--motion-slow) var(--motion-ease-sheet) backwards;
}

.day-split.is-open .day-split__detail.is-detail-switch {
  animation: split-detail-fade var(--motion-base) var(--motion-ease-standard) backwards;
}
.day-split.is-open .day-split__detail.is-fading-out {
  opacity: 0;
  transition: opacity var(--motion-fast) var(--motion-ease-standard);
}

.drawer--split { width: 1000px; }
.drawer--split .drawer__body { padding: 0; overflow: hidden; }

.day-item.is-selected {
  border-color: var(--color-accent-text);
  background: var(--color-surface);

  box-shadow: inset 0 0 0 1px var(--color-accent-text), var(--shadow-pill-active);
}

@media (max-width: 900px) {
  .drawer--split { width: 100%; max-width: 100vw; }
  .day-split.is-open { flex-direction: column; }
  .day-split.is-open .day-split__list {
    flex: 0 0 auto;
    max-height: 38%;
    border-bottom: 1px solid var(--color-border-soft);
  }
  .day-split.is-open .day-split__detail { border-left: 0; }
}

.day-item__bar {
  width: 3px;
  border-radius: var(--radius-pill);
  flex-shrink: 0;
}

.day-item__body {
  min-width: 0;
  flex: 1;
}

.day-item__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.day-item__type {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  flex-shrink: 0;
}
.day-item__type svg {
  flex-shrink: 0;
}

.day-item__person {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: var(--space-2);
  min-width: 0;
}

.day-item__name {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.day-item__tags {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.day-item__meta {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-top: var(--space-2);
  line-height: 1.7;
  word-break: break-word;
}

.day-item__meta span + .day-item__sep,
.day-item__meta .day-item__sep + span {
  margin: 0 var(--space-1);
  color: var(--color-meta);
}

.day-item__sep {
  color: var(--color-meta);
}

.day-item__time {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  flex-shrink: 0;
  white-space: nowrap;
}

.day-item__staffs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-top: var(--space-2);
}
.day-item__staff {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.day-item__role {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  flex-shrink: 0;
}
.day-item__chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 24px;
  box-sizing: border-box;
  padding: 0 9px 0 2px;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  line-height: 1;
}
.day-item__chip-name {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1;
  padding-top: 1px;
}
.day-item__avatar {
  padding-top: 1px;
  width: 20px;
  height: 20px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-accent-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  flex: none;
  overflow: hidden;
  box-sizing: border-box;
}
.day-item__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.day-item__remark {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  background: var(--color-surface-2);
  border-radius: var(--radius-sm);
  padding: 4px 8px;
  margin-top: var(--space-2);
  line-height: 1.5;
}

.day-item__actions {

  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.day-item__lock {
  display: inline-flex;
  align-items: center;
  color: var(--color-warning);
}
.day-item__pending-btn {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-meta);
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
    border-color var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard);
}
.day-item__pending-btn:hover {
  border-color: var(--color-warning);
  color: var(--color-warning);
}

.day-item__pending-btn.is-on {
  background: var(--color-warning);
  border-color: var(--color-warning);
  color: #fff;
}
.day-item__pending-btn.is-on:hover {
  background: var(--color-warning-accent);
  border-color: var(--color-warning-accent);
}
.day-item__pending-note {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: var(--space-2);
  padding: 5px 8px;
  border-radius: var(--radius-sm);

  background: var(--color-warning-bg);
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
  line-height: 1.5;
}
.day-item__pending-note svg {
  flex-shrink: 0;
  margin-top: 2px;
}

.day-item.has-pending {
  border-color: var(--color-warning);
}

.cal-event__pending {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  color: var(--color-warning);
  margin-left: 2px;
}

.day-nav__btn {
  flex-shrink: 0;
}

.cal-fs-toggle { display: none; }
@media (max-width: 768px) {
  .cal-fs-toggle { display: inline-flex; }
}
.cal-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 1150;
  background: var(--color-bg);
  overflow: hidden;
}
.cal-fs__stage {
  position: absolute;
  inset: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--color-bg);
}

.cal-fs__zoombox .calendar {
  margin: 0 auto;
}

.cal-fs__exit {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 1250;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.cal-fs__exit:active { background: rgba(0, 0, 0, 0.75); }

.cal-fs__zoomctrl {
  position: fixed;
  right: 12px;
  bottom: 16px;
  z-index: 1250;
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 0, 0, 0.55);
  border-radius: 24px;
  padding: 6px 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.cal-fs__zbtn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.cal-fs__zbtn:active { background: rgba(255, 255, 255, 0.35); }
.cal-fs__level {
  min-width: 42px;
  text-align: center;
  font-size: var(--font-size-xs);
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.cal-fs-active .drawer {
  width: 380px;
  max-width: 70vw;
}

.sf-comm-follow-summary {
  display: block;
}
.sf-comm-follow-empty {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.pt-ov {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-4);
  margin-bottom: var(--space-4);
  padding: var(--space-3);
  border: 1px solid var(--color-primary-200);
  border-left-width: 3px;
  border-radius: var(--radius-md);
  background: var(--color-accent-bg);
}
.pt-ov__grp { font-size: var(--font-size-sm); color: var(--color-accent-text); }
.pt-ov__grp b { font-weight: var(--font-weight-semibold); margin-right: var(--space-1); }
.pt-ov__grp em { font-style: normal; font-variant-numeric: tabular-nums; }

.pt-ov__grp em.pt-ov__zero { color: var(--color-muted); }
.pt-off { font-size: var(--font-size-sm); color: var(--color-meta); }
.pt-name { font-size: var(--font-size-sm); color: var(--color-fg); }
.rate-sched td .pt-input { max-width: 130px; }

.is-lock-readonly {
  pointer-events: none;
  opacity: .65;
  user-select: none;
}

.is-view-only {
  pointer-events: none;
  user-select: none;
  cursor: default;

  --input-bg: var(--color-surface-2);
  --input-border: transparent;
}

.is-view-only .input,
.is-view-only .select,
.is-view-only .textarea,
.is-view-only input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.is-view-only select,
.is-view-only textarea {
  background: var(--color-surface-2);
  border-color: transparent;
  box-shadow: none;
}

.is-view-only .dtp,
.is-view-only .dtp-trigger,
.is-view-only .combo,
.is-view-only .combo-trigger,
.is-view-only .feishu-pick,
.is-view-only .fr-trigger {
  background: var(--color-surface-2);
  border-color: transparent;
  box-shadow: none;
}

.is-view-only .sw,
.is-view-only .switch,
.is-view-only .switch__track,
.is-view-only [class*="switch"] {
  filter: grayscale(1) opacity(0.5);
  cursor: default;
}

.is-view-only input[type="checkbox"],
.is-view-only input[type="radio"] {
  filter: grayscale(1) opacity(0.45);
  cursor: default;
}

.is-view-only .row-pick,
.is-view-only label:has(> input[type="checkbox"]) {
  cursor: default;
}

.sch-time,
.sch-time div { white-space: nowrap; }

.sch-status { white-space: nowrap; }

.sch-bd { white-space: nowrap; }
.sch-bd .bd-cell-list { flex-direction: column; align-items: flex-start; }

.table td.sch-comm {
  vertical-align: middle;
}

.ptl {
  min-height: 100%;
  display: flex;
  flex-direction: column;

  background: transparent;
}

.app-shell.is-standalone .page:has(> .ptl) {
  padding: 0;
}

.ptl-top {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  height: var(--tabs-bar-height);
  padding: 0 24px;
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
}
.ptl-brand {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.ptl-brand__logo {
  display: inline-flex;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}
.ptl-brand__en {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.03em;
  color: var(--color-meta);
}
.ptl-brand__zh {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.ptl-user {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.ptl-user__n {
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.ptl-out {
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg-2);
  font-family: inherit;
  font-size: var(--font-size-xs);
  cursor: pointer;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard),
              transform var(--motion-base) var(--motion-ease-sheet);
}
.ptl-out:hover {
  background: var(--color-surface-2);
  color: var(--color-fg);
}

.ptl-out:active { transform: scale(var(--motion-press)); transition-duration: var(--motion-fast); }
.ptl-out:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: -1px;
}

.ptl-main {
  flex: 1;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;

  padding: var(--space-4) var(--page-padding-right) var(--page-padding) var(--page-padding);
}

.ptl-h1 {
  margin: 0 0 var(--space-5);
}

.ptl-grid {
  display: grid;

  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
  gap: var(--space-4);
  align-items: start;
}

.ptl-loading {
  grid-column: 1 / -1;
  padding: var(--space-8) 0;
  text-align: center;
  color: var(--color-meta);
  font-size: var(--font-size-sm);
}

.ptl-card {
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              transform var(--motion-fast) var(--motion-ease-standard);
}

.ptl-card:hover {
  border-color: var(--color-accent);
  transform: translateY(-1px);
}

.ptl-card__t {
  margin: 0 0 var(--space-1);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.ptl-card__d {
  margin: 0 0 var(--space-4);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: var(--font-line-height-body);
}

.ptl-kpis {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}
.ptl-kpi {
  flex: 1 1 0;
  min-width: 108px;
  padding: var(--space-2) var(--space-3);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}
.ptl-kpi__l {
  font-size: 11px;
  color: var(--color-meta);
  margin-bottom: 2px;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 4px;
  overflow: hidden;
}

.ptl-kpi__tag {
  font-size: 10px;
  line-height: 1.4;
  padding: 0 4px;
  border-radius: var(--radius-sm);
  background: var(--color-warning-bg);
  color: var(--color-warning-text);
  flex-shrink: 0;
}
.ptl-kpi__v {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  line-height: 1.15;

  overflow: hidden;
  text-overflow: ellipsis;
}
.ptl-kpi__v i {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  font-style: normal;
  color: var(--color-muted);
  margin-left: 2px;
}
.ptl-kpi__s {
  font-size: 11px;
  color: var(--color-meta);
  margin-top: 2px;
}

.ptl-kpi--warn .ptl-kpi__v { color: var(--color-danger); }

.ptl-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}
.ptl-link {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  background: var(--color-gray-50);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
  text-decoration: none;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard);
}
.ptl-link:hover {
  background: var(--color-primary-50);
  color: var(--color-accent-text);
}

.ptl-enter {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  height: 36px;
  border-radius: var(--radius-md);
  background: var(--color-accent);
  color: var(--color-accent-on);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              transform var(--motion-base) var(--motion-ease-sheet);
}
.ptl-enter:hover { background: var(--color-primary-600); }
.ptl-enter:active { transform: scale(var(--motion-press)); transition-duration: var(--motion-fast); }
.ptl-enter__a { font-size: var(--font-size-xs); }

.ptl-card--ghost {
  border-style: dashed;
  border-color: var(--color-gray-300);
  background: transparent;
  justify-content: center;
}
.ptl-card--ghost:hover { border-color: var(--color-gray-400); box-shadow: none; transform: none; }

.ptl-ghost__t {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-muted);
  margin-bottom: var(--space-3);
}
.ptl-ghost__l { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-3); }
.ptl-ghost__p {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  border: 1px dashed var(--color-gray-300);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
}
.ptl-ghost__n { font-size: 11px; color: var(--color-meta); }

.ptl-enter:focus-visible,
.ptl-link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

@media (max-width: 768px) {
  .ptl-top { padding: 0 16px; }
  .ptl-brand__en { display: none; }
  .ptl-main { padding: var(--space-5) 16px var(--space-8); }
  .ptl-grid { grid-template-columns: 1fr; gap: var(--space-3); }
  .ptl-card { padding: var(--space-4); }
  .ptl-kpi { min-width: 0; }
}

.fin {
  min-height: 100%;
  display: flex;
  flex-direction: column;

  background: transparent;
}

.app-shell.is-standalone .page:has(> .fin) {
  padding: 0;
}

.fin-body {
  flex: 1;
  display: flex;
  min-height: 0;
  width: 100%;
}

.fin-main {
  flex: 1;
  min-width: 0;

  padding: var(--space-4) var(--page-padding-right) var(--page-padding) var(--page-padding);
}

.fin-loading {
  padding: var(--space-8) 0;
  text-align: center;
  color: var(--color-meta);
  font-size: var(--font-size-sm);
}

.fin-count {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-bottom: var(--space-2);
}.fin-count b { color: var(--color-fg); font-weight: var(--font-weight-semibold); }

.fin-help {
  position: relative;
  display: inline-flex;
  align-items: center;
  align-self: center;

  margin-left: auto;
  margin-right: 0;
}
.fin-help[hidden] { display: none; }
.fin-help__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--color-meta);
  cursor: pointer;

  transition: color var(--motion-fast) var(--motion-ease-standard),
              background-color var(--motion-fast) var(--motion-ease-standard);
}

.fin-help__btn:hover,
.fin-help__btn[aria-expanded="true"] {
  color: var(--color-accent-text);
  background: var(--color-accent-bg);
}
.fin-help__btn:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}
.fin-help__panel {
  position: absolute;
  top: calc(100% + var(--space-2));
  left: 0;
  z-index: 30;
  width: 400px;
  max-width: min(400px, 82vw);
  padding: var(--space-4);
  background: var(--color-surface);
  color: var(--color-fg-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  font-size: var(--font-size-xs);
  line-height: 1.75;
  text-align: left;
  white-space: normal;

  animation: panel-in var(--motion-base) var(--motion-ease-sheet) backwards;
}
.fin-help__panel[hidden] { display: none; }

@media (max-width: 768px) {
  .fin-help__panel { left: calc(-1 * var(--space-4)); }
}

.fin-h3 {
  margin: var(--space-5) 0 var(--space-3);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}

.fin-note {
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-4);
  background: var(--color-primary-50);
  border-radius: var(--radius-md);
  font-size: var(--font-size-xs);
  line-height: 1.65;
  color: var(--color-fg-2);
}
.fin-note b { color: var(--color-accent-text); font-weight: var(--font-weight-semibold); }
.fin-note__sub { display: block; color: var(--color-muted); margin-top: 2px; }

.fin-code {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-xs);
  color: var(--color-fg);
}

.fin-tag {
  display: inline-block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  padding: 1px 7px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.fin-tag--success { background: var(--color-success-bg); color: var(--color-success-text); }
.fin-tag--danger  { background: var(--color-danger-bg);  color: var(--color-danger); }
.fin-tag--warning { background: var(--color-warning-bg); color: var(--color-warning-text); }
.fin-tag--muted   { background: var(--color-gray-50);    color: var(--color-muted); }

.fin-tag--todo    { background: var(--color-primary-100); color: var(--color-primary-700); }

.fin-miss {
  display: inline-block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  padding: 1px 7px;
  border-radius: var(--radius-sm);
  background: var(--color-warning-bg);
  color: var(--color-warning-text);
}

@media (max-width: 768px) {
  .fin-body { flex-direction: column; }
  .fin-main { padding: var(--space-4) var(--space-4) var(--space-8); }

  .toolbar__right { width: 100%; margin-left: 0; }
}

.fin-ovcard { padding: 0; overflow: hidden; }
.fin-ovcard > .table-toolbar { padding: var(--space-3) var(--space-5); }

.fin-ovcard + .fin-ovcard { margin-top: var(--space-4); }

.fin-ovcard > .fin-count { padding: var(--space-2) var(--space-5); margin-bottom: 0; }

.fin-ovcard > .fin-note { margin: var(--space-4) var(--space-5) 0; }
.fin-ovcard > .fin-note + .fin-count { padding-top: var(--space-3); }

.fin-cardttl { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.fin-ttl__right { margin-left: auto; display: inline-flex; align-items: center; gap: var(--space-3); }

.kpi-row--fin .kpi-card__top {
  justify-content: flex-start;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.kpi-row--fin { margin-bottom: var(--space-4); }

.fin-ms { position: relative; display: inline-flex; }
.fin-ms[hidden] { display: none; }
.fin-ms__btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 150px;
  cursor: pointer;
  text-align: left;
}
.fin-ms__txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fin-ms__btn > svg { flex: none; color: var(--color-muted); }
.fin-ms__panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: var(--z-dropdown);
  display: block;
  min-width: 210px;
  max-height: 280px;
  overflow: auto;
  padding: var(--space-1);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
}
.fin-ms__panel[hidden] { display: none; }
.fin-ms__head {
  display: flex;
  gap: var(--space-4);
  padding: var(--space-1) var(--space-2) var(--space-2);
  margin-bottom: var(--space-1);
  border-bottom: 1px solid var(--color-border-soft);
}
.fin-ms__act {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: var(--color-accent);
  font-size: var(--font-size-sm);
}
.fin-ms__item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 7px var(--space-2);
  border-radius: var(--radius-seg);
  font-size: var(--font-size-sm);
  cursor: pointer;
}
.fin-ms__item:hover { background: var(--color-surface-2); }
.fin-ms__item input { flex: none; }
.fin-ms__empty { padding: var(--space-2); font-size: var(--font-size-sm); color: var(--color-muted); }
.fin-acts__pick {
  font-size: var(--font-size-sm);
  color: var(--color-meta);
  white-space: nowrap;
}

.fin-main .page-actions[hidden] { display: none; }

.fin-main .page-header > [data-fbar-moved][hidden] { display: none; }

.fin-doc__reject {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-danger-bg);
  color: var(--color-danger);
  font-size: var(--font-size-sm);
}
.fin-doc__reject > svg { flex: none; }
.fin-doc__reject-k { font-weight: var(--font-weight-medium); }
.fin-doc__reject-v { font-weight: var(--font-weight-semibold); word-break: break-word; }

.fin-sechead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
}
.fin-sechead .fin-h3 { margin-bottom: 0; }

.fin-invcell { max-width: 220px; }
.fin-invno {
  display: block;
  font-family: var(--font-family-mono);
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  line-height: 1.7;
  letter-spacing: 0.2px;
  word-break: break-all;
}

.fin-ovtbl tbody tr td:first-child { text-align: left; }

.fin-ovtbl .fin-badge { white-space: nowrap; }
.fin-ovtbl .fin-code { white-space: nowrap; }

.fin-ovtbl { table-layout: fixed; }

.fin-fixtbl { table-layout: fixed; }

.fin-fixtbl .fin-tk-op { white-space: nowrap; }
.fin-fixtbl .fin-tk-op .btn + .btn { margin-left: var(--space-2); }

.fin-ovtbl tbody tr td { overflow-wrap: anywhere; }

.fin-ovtbl thead th:first-child { text-align: left; }

.fin-ovtbl .pg,
.fin-cell-prog .pg {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: var(--space-2);
  row-gap: 3px;
  margin-top: 0;
}
.fin-ovtbl .pg > .fin-tag,
.fin-cell-prog .pg > .fin-tag { grid-column: 1; grid-row: 1 / span 2; }
.fin-ovtbl .pg > .pg__txt,
.fin-cell-prog .pg > .pg__txt { grid-column: 2; grid-row: 1; white-space: nowrap; }
.fin-ovtbl .pg > .pg__bars,
.fin-cell-prog .pg > .pg__bars { grid-column: 2; grid-row: 2; justify-self: start; }

.fin-ovtbl .fin-prog,
.fin-prog.fin-cell-prog { display: inline-block; width: 160px; max-width: 100%; text-align: left; }

.pg { display: inline-flex; align-items: center; gap: var(--space-3); margin-top: var(--space-2); }
.pg__bars { display: inline-flex; gap: 3px; flex-shrink: 0; }
.pg__bar {
  width: 22px;
  height: 6px;
  border-radius: 3px;
  background: var(--color-gray-200);
}
.pg__bar.is-done { background: var(--color-success); }
.pg__bar.is-cur  { background: var(--color-warning); }
.pg__bar.is-rej  { background: var(--color-danger); }

.pg__txt {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  white-space: nowrap;
}

.pg__txt.is-cur  { color: var(--color-warning-text); font-weight: var(--font-weight-medium); }
.pg__txt.is-rej  { color: var(--color-danger); font-weight: var(--font-weight-medium); }
.pg__txt.is-done { color: var(--color-success-text); }

@media (max-width: 768px) {
  .pg { gap: var(--space-2); }
  .pg__bar { width: 14px; }
}

.fin-flags { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.fin-flag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: var(--font-size-xs);
  padding: 1px 7px;
  border-radius: var(--radius-sm);
  background: transparent;
  border: 1px solid var(--color-border);
  color: var(--color-muted);
  white-space: nowrap;
}
.fin-flag.is-on {
  background: var(--color-success-bg);
  border-color: var(--color-success);
  color: var(--color-success-text);
  font-weight: var(--font-weight-medium);
}

.fin-row { cursor: pointer; }
.fin-row:hover > td { background: var(--color-primary-50); }

.table tbody tr.fin-row--new > td { background: var(--color-warning-bg-soft); }
.table tbody tr.fin-row--new:hover > td { background: var(--color-warning-bg-hover); }

.fin-row__go { width: 56px; white-space: nowrap; }

.fin-row__go.eb-act { width: auto; }
.fin-row__go.eb-act .eb-dl { margin-right: 8px; vertical-align: middle; }
.fin-row__go .fin-link { font-size: var(--font-size-xs); }
.fin-row:hover .fin-row__go .fin-link { text-decoration: underline; }
.fin-link { color: var(--color-accent-text); cursor: pointer; }
.fin-link:hover { text-decoration: underline; }

button.fin-link {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: var(--color-accent-text);
}

.fin-badge {
  display: inline-block;
  margin-left: 6px;
  font-size: var(--font-size-xs);
  padding: 0 5px;
  border-radius: var(--radius-sm);
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
}

.fin-badge--new { background: var(--color-warning-bg); color: var(--color-warning-text); }
.fin-miss {
  display: inline-block;
  font-size: var(--font-size-xs);
  padding: 1px 7px;
  border-radius: var(--radius-sm);
  background: var(--color-warning-bg);
  color: var(--color-warning-text);
}
.fin-count__hint { color: var(--color-meta); }

.fin-note--danger { background: var(--color-danger-bg); color: var(--color-fg); }
.fin-note--danger b { color: var(--color-danger); }
.fin-dup { margin-top: 4px; font-size: var(--font-size-xs); }

.fin-back {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-bottom: var(--space-3);
  padding: 4px 10px 4px 6px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg-2);
  font-family: inherit;
  font-size: var(--font-size-xs);
  cursor: pointer;
}
.fin-back:hover { background: var(--color-surface-2); color: var(--color-fg); }

.fin-drill {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.fin-drill .fin-back { margin-bottom: 0; }
.fin-drill__hint { font-size: var(--font-size-xs); color: var(--color-muted); }

.fin-doc__hd {
  padding: var(--space-4);
  margin-bottom: var(--space-4);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.fin-doc__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}
.fin-doc__state { flex-shrink: 0; }

.fin-doc__id {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.fin-doc__dot { color: var(--color-border); }
.fin-doc__no {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  min-width: 0;
  word-break: break-all;
}

.fin-doc__reason {
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  margin-top: var(--space-2);
  line-height: 1.5;
}
.fin-doc__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-3);
  padding-top: var(--space-3);

  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.fin-doc__meta b { color: var(--color-fg); font-weight: var(--font-weight-medium); }

.fin-doc__amt {
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.fin-doc__amt b {
  color: var(--color-price);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-lg);
}

.fin-paybar { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }

.fin-pics {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-3);
}
.fin-picbox {
  padding: var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.fin-picbox__h { font-size: var(--font-size-xs); color: var(--color-fg-2); margin-bottom: 3px; }
.fin-picbox__no { font-size: var(--font-size-xs); color: var(--color-muted); font-family: var(--font-family-mono); margin-bottom: var(--space-2); }
.fin-picbox__b { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.fin-pic {
  display: block;
  width: 132px;
  text-decoration: none;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-surface-2);
}
.fin-pic img { display: block; width: 100%; height: 96px; object-fit: cover; }

button.fin-pic {
  padding: 0;
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
button.fin-pic:hover { border-color: var(--color-accent); }
button.fin-pic:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; }
.fin-pic__n {
  display: block;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  padding: 2px 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fin-pic--none {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: auto;
  padding: 6px 10px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  border-style: dashed;
}

.fin-ckcol { width: 40px; }

@media (max-width: 768px) {
  .fin-pics { grid-template-columns: 1fr; }
  .fin-doc__meta { gap: var(--space-3); }
}

#finance-profile {
  display: flex;
  align-items: center;
  align-self: center;
  height: 40px;

  margin-left: var(--space-1);
  padding-left: var(--space-3);
  border-left: 1px solid var(--color-border);
}

#finance-profile .user-chip {
  padding-top: 2px;
  padding-bottom: 2px;
}

.af-step-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  padding: var(--space-3) var(--space-5);
}

.fin-chain { display: block; }

.fin-flow__sum {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-3);
  min-height: 28px;
}
.fin-flow__k {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted);
}

.fin-flow__sum .pg { margin-top: 0; }
.fin-flow__vsep {
  width: 1px;
  height: 14px;
  flex: 0 0 auto;
  background: var(--color-border-soft);
}
.fin-flow__pay { font-size: var(--font-size-xs); color: var(--color-fg-2); }
.fin-flow__pay b { color: var(--color-fg); font-weight: var(--font-weight-semibold); }
.fin-flow__note { font-size: var(--font-size-xs); color: var(--color-muted); }

.fin-flow__grp {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.fin-flow__when {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.fin-flow__tog { margin-left: auto; }
.fin-flow__full {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border-soft);
}

.fin-sum td {
  background: var(--color-surface-2);
  border-top: 1px solid var(--color-border);
  font-weight: var(--font-weight-medium);
}
.fin-sum td:first-child { color: var(--color-fg-2); font-size: var(--font-size-sm); }
.fin-sum b { color: var(--color-fg); font-weight: var(--font-weight-semibold); }

.fin-chain__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
  flex-wrap: wrap;
}
.fin-chain__lab {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  padding: 2px 10px;
  border-radius: var(--radius-sm);
  background: var(--color-success-bg);
  color: var(--color-success-text);
}
.fin-chain__lab--pay { background: var(--color-accent-bg); color: var(--color-accent-text); }
.fin-chain__hint { font-size: var(--font-size-xs); color: var(--color-meta); }

.fin-chain__vsep {
  width: 1px;
  height: 14px;
  background: var(--color-border);
  margin: 0 var(--space-2);
  flex-shrink: 0;
}

.af-step__n {
  flex: 1 1 84px;
  min-width: 72px;
  max-width: 124px;
  width: auto;
}

.af-step__bar--bridge {
  background: none;
  border-top: 2px dashed var(--color-border);
  height: 0;
  margin-top: 13px;
  min-width: 28px;
  flex: 1 1 28px;
}
.af-step__bar--bridge.is-done {
  border-top-style: solid;
  border-top-color: var(--color-success);
}

.fin-chain__row { overflow-x: auto; padding: 4px 0; }

.af-step__n--pay .af-step__dot { border-radius: var(--radius-sm); }

.af-step__n--empty { flex: 1 1 140px; max-width: 200px; }
.af-step__dot--empty {
  background: var(--color-surface-2);
  border-style: dashed;
  color: var(--color-muted);
}

.af-step { display: flex; align-items: flex-start; }

.af-step__n {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.af-step__dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  background: var(--color-surface);
  color: var(--color-muted);
  border: 2px solid var(--color-border);
  box-sizing: border-box;
}

.af-step__n.is-done .af-step__dot {
  background: var(--color-success);
  border-color: var(--color-success);
  color: #fff;
}
.af-step__n.is-rejected .af-step__dot {
  background: var(--color-danger);
  border-color: var(--color-danger);
  color: #fff;
}

.af-step__n.is-current .af-step__dot {
  background: var(--color-warning-bg);
  border-color: var(--color-warning);
  color: var(--color-warning-text);
  box-shadow: 0 0 0 4px var(--color-warning-bg);
}

.af-step__t {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-top: var(--space-2);
}
.af-step__n.is-current .af-step__t { color: var(--color-warning-text); }
.af-step__m {
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  margin-top: 2px;

  word-break: break-all;
}
.af-step__d {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-top: 1px;
}
.af-step__n.is-rejected .af-step__d { color: var(--color-danger); }

.af-step__bar {
  flex: 1;
  height: 2px;
  min-width: 16px;
  background: var(--color-border);
  margin-top: 13px;
}
.af-step__bar.is-done { background: var(--color-success); }

.af-step__bar--pay.is-done { background: var(--color-accent); }

.af-step__n--pay.is-done .af-step__dot {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-accent-on);
}
.af-step__n--pay.is-current .af-step__dot {
  background: var(--color-accent-bg);
  border-color: var(--color-accent);
  color: var(--color-accent-text);
  box-shadow: 0 0 0 4px var(--color-accent-bg);
}
.af-step__n--pay.is-current .af-step__t { color: var(--color-accent-text); }

.af-step__n--pay.is-current .af-step__d { color: var(--color-accent-text); }

@media (max-width: 768px) {

  .af-step-card { padding: var(--space-4) var(--space-4); }
  .af-step { flex-direction: column; }
  .af-step__n {
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    text-align: left;
  }
  .af-step__t { margin-top: 0; }
  .af-step__m, .af-step__d { margin-top: 0; margin-left: auto; }
  .af-step__bar {
    width: 2px;
    height: 18px;
    flex: none;
    min-width: 0;
    margin: 2px 0 2px 13px;
  }
}

.fin td .cell-person__avatar {
  width: 24px;
  height: 24px;
  font-size: var(--font-size-xs);
}

.fin-person {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-weight: var(--font-weight-medium);
}
.fin-person .cell-person__avatar {
  width: 24px;
  height: 24px;
  font-size: var(--font-size-xs);
  vertical-align: middle;
}

.eb-summary {
  position: sticky;
  top: 0;
  z-index: 2;
  margin-bottom: var(--space-3);
}
.eb-bar {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.eb-bar__k { font-size: var(--font-size-sm); color: var(--color-fg-2); }
.eb-bar__u { font-size: var(--font-size-sm); color: var(--color-fg-2); margin-right: var(--space-3); }
.eb-bar__n { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); }

.eb-bar__v {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
}
.eb-bar__btns { margin-left: auto; }

.eb-dlg__sum {
  padding: var(--space-3);
  margin-bottom: var(--space-4);
  background: var(--color-gray-50);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.eb-dlg__sum b { color: var(--color-fg); font-variant-numeric: tabular-nums; }

.eb-warn {
  padding: var(--space-3);
  margin-bottom: var(--space-3);
  background: var(--color-warning-bg);
  border-left: 3px solid var(--color-warning);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}

.eb-dlg .req { color: var(--color-danger); margin-left: 2px; }

.eb-bank-ck {
  border: 1px solid var(--color-border-soft);

  border-left: 3px solid var(--color-accent);
  background: var(--color-gray-50);
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-4);
}
.eb-bank-ck__hd {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  margin-bottom: var(--space-2);
}
.eb-bank-ck__row {
  display: flex;
  gap: var(--space-3);
  font-size: var(--font-size-sm);
  line-height: 1.9;
  color: var(--color-fg-3);
}
.eb-bank-ck__row > span { flex: none; width: 4em; }
.eb-bank-ck__row > b { color: var(--color-fg); font-weight: var(--font-weight-medium); }

.eb-bank-ck__row > b.is-acct { font-variant-numeric: tabular-nums; letter-spacing: .02em; }

.eb-ck-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  cursor: pointer;
}

.eb-where {
  margin-top: var(--space-3);
  font-size: var(--font-size-xs);
  line-height: 1.9;
  color: var(--color-fg-3);
}
.eb-where b { color: var(--color-fg-2); font-weight: var(--font-weight-medium); }

.ebd-head__r { display: flex; align-items: center; gap: var(--space-3); }
.ebd-actions {
  display: flex;
  flex-wrap: wrap;

  justify-content: flex-end;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.ebd-chart { padding: var(--space-4); margin-bottom: var(--space-4); }
.ebd-chart__hd {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.ebd-chart__t { font-size: var(--font-size-base); font-weight: var(--font-weight-medium); color: var(--color-fg); }
.ebd-chart__h { font-size: var(--font-size-xs); color: var(--color-muted); }

.ebd-charts { display: flex; gap: var(--space-6); align-items: flex-start; flex-wrap: wrap; }
.ebd-charts__c { min-width: 0; }
.ebd-charts__c--type { flex: 1 1 540px; }
.ebd-charts__c--who { flex: 1 1 440px; }

.ebd-subhd { display: flex; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-2); }
.ebd-subhd__t { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-fg); }
.ebd-subhd__h { font-size: var(--font-size-xs); color: var(--color-muted); }

.ebd-canvas { position: relative; height: 220px; }

.ebd-canvas .cc-empty { display: flex; align-items: center; justify-content: center; height: 100%; }

.ebd-actions .btn--danger {
  background: var(--button-ghost-bg);
  border-color: var(--color-border);
  color: var(--color-danger);
}

.ebd-actions .btn--danger:hover:not(:disabled) {
  background: var(--color-danger-bg);
  border-color: var(--color-danger);
  color: var(--color-danger);
  filter: none;
}

.fin-kv {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-3) var(--space-4);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.fin-kv__i { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fin-kv__k { font-size: var(--font-size-xs); color: var(--color-fg-2); }
.fin-kv__v {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.ea-wrap { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ea-set { display: inline-flex; align-items: center; gap: 4px; }
.ea-set__lab {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
}
.ea-thumb {
  display: block;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
  overflow: hidden;
  cursor: pointer;

  font: inherit;
  line-height: 0;
}
.ea-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ea-thumb:hover { border-color: var(--color-accent); }
.ea-thumb:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; }

.ea-thumb--file {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: normal;
  color: var(--color-muted);
}

.ea-thumb--pdf { position: relative; }
.ea-thumb__cv { display: block; width: 100%; height: 100%; }
.ea-thumb__ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: normal;
  color: var(--color-muted);
}
.ea-thumb__pdf {
  position: absolute;
  right: 1px;
  bottom: 1px;
  font-size: 8px;
  font-style: normal;
  line-height: 1.2;
  padding: 0 2px;
  border-radius: 2px;
  background: var(--color-danger);
  color: #fff;
}

.ea-thumb__cv[data-pdf-ok] + .ea-thumb__ph { display: none; }
.ea-more {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
}
.ea-empty, .ea-none { color: var(--color-muted); }

.table .ea-cell { min-width: 96px; }

.table .ea-thumb { width: 32px; height: 32px; }
.table .ea-set__lab { font-size: 11px; }

.table .ea-cell--inv .ea-set,
.table .ea-cell--proof .ea-set {
  display: grid;
  grid-template-columns: repeat(5, 32px);
  gap: 6px;
  align-items: center;
}

.fin-doc .table .ea-cell { min-width: 200px; }

.me-detail .table .me-itbl__files { min-width: 200px; }

.table .ea-cell .ea-wrap { gap: 12px; }
.table .ea-cell .ea-set { gap: 6px; }

.ea-thumb--file {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-muted);
  background: var(--color-surface-2);
  border-style: dashed;
}
.ea-thumb--file:hover { color: var(--color-accent); border-color: var(--color-accent); }

.fin-main .toolbar--has-page-tabs:not(.toolbar--tabs-up) {
  position: sticky;
  top: 0;
  z-index: 20;
}

@media (min-width: 769px) {
  .app-shell.is-finance .page-header--has-tabs {
    justify-content: flex-start;
    column-gap: var(--space-6);
  }
}

.tag.tag--caliber { color: var(--color-tone-orange-fg); background: var(--color-tone-orange-bg); }
.tag.tag--state   { color: var(--color-tone-teal-fg);   background: var(--color-tone-teal-bg); }
.tag.tag--channel { color: var(--color-success);        background: var(--color-success-bg); }
.tag.tag--risk    { color: var(--color-danger);         background: var(--color-danger-bg); }
.tag.tag--kind    { color: var(--color-tone-purple-fg); background: var(--color-tone-purple-bg); }

.ebd-whosum { padding: var(--space-4); margin-bottom: var(--space-4); }
.ebd-whosum .ebd-chart__hd { margin-bottom: var(--space-3); }
.ebd-whosum__tbl { margin: 0; }

.ebd-whosum__tbl tfoot td { font-weight: var(--font-weight-medium); }

.eb-rmk {
  display: inline-block; max-width: 220px; vertical-align: middle;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--color-fg-2);
}

.fin-ellip {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.fin-row__go.fin-act { width: auto; white-space: nowrap; }
.fin-row__go.fin-act > .btn + .btn { margin-left: 8px; }
.fin-row__go.eb-act > .btn + .btn { margin-left: 8px; }

.eb-scope {
  display: inline-block; padding: 1px 6px; border-radius: var(--radius-sm);
  font-size: var(--font-size-xs); color: var(--color-fg-2);

  background: var(--color-surface-2); white-space: nowrap;
}
.eb-scope--inf { color: var(--color-accent); background: var(--color-accent-bg); }
.eb-sched { display: inline-block; margin-right: 8px; white-space: nowrap; }
.eb-sched:last-child { margin-right: 0; }

.app-shell.is-standalone.is-hr .sidebar { display: flex !important; }
.app-shell.is-standalone.is-hr .page-tabs-bar { display: flex !important; }

.app-shell.is-standalone.is-hr .app-main {
  margin-left: calc(var(--sidebar-width) + var(--shell-inset));
  width: auto;
}
@media (max-width: 768px) {
  .app-shell.is-standalone.is-hr .app-main {
    margin-left: 0;
    width: auto;
  }
}

.kq-page .kpi-row { margin-bottom: var(--space-4); }

.kq-page .card + .toolbar { margin-top: var(--space-4); }

.kq-muted { font-size: var(--font-size-xs); color: var(--color-muted); }
.kq-hidden-file { display: none; }

.kq-pager:empty { display: none; }

.kq-trend > .card__body { padding-top: 0; }
.kq-trend__meta { font-size: var(--font-size-xs); color: var(--color-muted); }
.kq-trend__bars {
  display: flex;
  align-items: flex-end;
  gap: var(--space-1);
  height: var(--space-12);

  border-bottom: 1px solid var(--color-border-soft);
}
.kq-trend__bar {
  flex: 1 1 0;
  min-width: 1px;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  background: var(--color-accent);
  opacity: 0.72;

  transition: opacity var(--motion-fast) var(--motion-ease-standard);
}
.kq-trend__bar:hover { opacity: 1; }

.kq-mask {
  position: fixed; inset: 0; z-index: var(--z-modal);
  background: color-mix(in srgb, var(--color-gray-900) 45%, transparent);
  display: flex; align-items: center; justify-content: center;
  animation: fade-in var(--motion-slow) var(--motion-ease-sheet) both;
}

.kq-mask[data-closing] {
  animation: fade-out calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
}
.kq-modal {
  width: 460px; max-width: calc(100vw - var(--space-8));
  background: var(--color-surface);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-raised);
  animation: modal-in var(--motion-slow) var(--motion-ease-sheet) both;
}
.kq-modal[data-closing] {
  animation: modal-out calc(var(--motion-slow) * 0.62) var(--motion-ease-exit) both;
  pointer-events: none;
}
.kq-modal__head {
  padding: var(--space-4) var(--space-6);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  border-bottom: 1px solid var(--color-border-soft);
}
.kq-modal__body { padding: var(--space-5) var(--space-6); }
.kq-modal__foot {
  padding: var(--space-4) var(--space-6);
  display: flex; justify-content: flex-end; gap: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
}

.kq-field {
  display: flex; align-items: center; gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.kq-field > span { flex: 0 0 62px; font-size: var(--font-size-sm); color: var(--color-muted); }
.kq-field .input,
.kq-field .select { flex: 1 1 auto; }
.kq-field > span i { color: var(--color-danger); font-style: normal; }
.kq-field--col { display: block; }
.kq-field--col > span { display: block; margin-bottom: var(--space-2); }

.kq-photo-row { display: block; }
.kq-photo-preview {
  width: 100%;
  aspect-ratio: 5 / 2;
  border-radius: var(--radius-md);
  border: 1px dashed var(--color-border);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--font-size-xs); color: var(--color-muted);
  overflow: hidden;

  padding: 0;
  font-family: inherit;
  text-align: center;
  background: var(--color-surface);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard);
}

.kq-photo-preview:hover { border-color: var(--color-primary-400); color: var(--color-accent-text); }
.kq-photo-preview--img { border-style: solid; }

.kq-photo-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); }

.kq-photo-empty em { font-style: normal; font-size: var(--font-size-sm); }

.kq-photo-empty svg { color: var(--color-primary-500); }

.kq-photo-empty--filled { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.kq-photo-empty--filled img { height: 100%; width: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.kq-photo-preview--img .kq-photo-empty--filled img { border-radius: var(--radius-sm); }

.kq-photo-side { margin-top: var(--space-3); text-align: center; }

.kq-phone-note { margin: 0 0 var(--space-3); font-size: var(--font-size-xs); }

.kq-sync-note {
  margin-bottom: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--radius-md);
  background: var(--color-warning-bg-soft);
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
  line-height: 1.6;
}

.kq-row-click { cursor: pointer; }
.kq-row-click:hover > td { background: var(--color-surface-2); }

.kq-loc-tag { margin-left: var(--space-1); font-size: var(--font-size-xs); color: var(--color-muted); }

.kq-page .bd-cell-chip {
  font-size: var(--font-size-sm);
  gap: var(--space-2);
}
.kq-page .bd-cell-avatar {

  font-size: var(--font-size-sm);
  width: 1.8em;
  height: 1.8em;
}

.kq-pp-tabs {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1);
  background: var(--tab-tray-bg);
  border-radius: var(--radius-md);
}

.kq-page:has(.kq-quick) .page-header { display: none; }

.kq-quick { max-width: 560px; margin: 0 auto; }
.kq-quick__head { margin-bottom: var(--space-5); }
.kq-quick__title { font-size: var(--font-size-xl); margin-bottom: var(--space-2); }
.kq-quick__desc { color: var(--color-muted); font-size: var(--font-size-sm); }

.kq-quick__card { padding: var(--space-6); }

.kq-qfield { display: block; margin-bottom: var(--space-5); }
.kq-qfield > span { display: block; margin-bottom: var(--space-2); font-size: var(--font-size-sm); color: var(--color-fg-2); }
.kq-qfield > span i { color: var(--color-danger); font-style: normal; }

.kq-qfield .input { width: 100%; }
.kq-quick__save { width: 100%; margin-top: var(--space-2); }

@media (max-width: 768px) {

  .app-shell.is-hr:has(.kq-quick) .sidebar { display: none !important; }
  .app-shell.is-hr:has(.kq-quick) .app-main { margin-left: 0; }
  .app-shell.is-hr:has(.kq-quick) .kq-quick { max-width: 100%; }

  .kq-quick__head { margin-bottom: var(--space-4); }
  .kq-quick__card { padding: var(--space-4); }
  .kq-qfield { margin-bottom: var(--space-4); }

  .kq-quick .input,
  .kq-quick__save { font-size: 16px; }
}

.kq-door__card { padding: var(--space-5); }
.kq-door > div + div { margin-top: var(--space-4); }
.kq-door__hd {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: var(--space-3); margin-bottom: var(--space-3); flex-wrap: wrap;
}
.kq-door__title { font-size: var(--font-size-lg); }
.kq-door__switch {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: var(--font-size-sm); margin-bottom: var(--space-4);
}
.kq-door__row { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); align-items: center; }
.kq-door__field {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: var(--font-size-sm); color: var(--color-fg-2);
}
.kq-door__field .input { width: 5em; }
.kq-door__field .select { width: 8em; }
.kq-door__field--wide { flex: 1 1 100%; }
.kq-door__field--wide .input { width: 100%; }
.kq-door__note {
  margin-top: var(--space-3); font-size: var(--font-size-xs);
  color: var(--color-muted); line-height: 1.9;
}

.kq-door__todo { color: var(--color-warning-text); }
.kq-door__sep { border-top: 1px solid var(--color-border-soft); margin: var(--space-5) 0; }
.kq-door__actions {
  display: flex; align-items: center; gap: var(--space-3);
  margin-top: var(--space-4); flex-wrap: wrap;
}

.kq-ev-sum { margin-bottom: var(--space-3); font-size: var(--font-size-sm); color: var(--color-fg); }

.kq-ex-target {
  margin-bottom: var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}
.kq-ex-tip {
  margin-top: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--notice-bg);
  color: var(--notice-fg);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}
.kq-ex-tip b { font-weight: var(--font-weight-medium); }
.kq-photo-tag { font-size: var(--font-size-xs); color: var(--color-accent-text); }

.kq-photo-tag--linked { color: var(--color-fg); }

#kq-att-dept > .fin-ms__btn,
#kq-pp-dept > .fin-ms__btn {
  background-image: none;
  padding-right: var(--space-3);
}

.kq-tabbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;

  position: sticky;
  top: var(--tabs-bar-height);
  z-index: 20;
}
.kq-tabbar__acts {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}

.kq-tabbar__acts .btn:not(.fin-help__btn) {
  height: var(--control-height-row);
  min-height: var(--control-height-row);

  padding-left: var(--space-4);
  padding-right: var(--space-4);
}

.kq-gate-diff {
  display: inline-block;
  margin-left: var(--space-1);
  padding: 0 var(--space-1);
  font-size: var(--font-size-xs);
  border-radius: var(--radius-sm);
  background: var(--color-warning-bg);
  color: var(--color-warning-text);
  border: 1px solid var(--color-warning-border);
  vertical-align: middle;
  cursor: help;
  white-space: nowrap;
}

.kq-pick-none {
  color: var(--color-fg-3);
  text-align: center;
}

.app-shell.is-standalone.is-project .sidebar { display: flex !important; }
.app-shell.is-standalone.is-project .page-tabs-bar { display: flex !important; }
.app-shell.is-standalone.is-project .app-main {
  margin-left: calc(var(--sidebar-width) + var(--shell-inset));
  width: auto;
}
@media (max-width: 768px) {
  .app-shell.is-standalone.is-project .app-main {
    margin-left: 0;
    width: auto;
  }
}

.page > .page.pms-page {
  padding: 0;
}

:root {
  --pms-k-brand: var(--color-tone-blue-fg);
  --pms-k-partner: var(--color-tone-green-fg);
  --pms-k-chan: var(--color-tone-teal-fg);
  --pms-k-link: var(--color-tone-purple-fg);
  --pms-k-brand-bg: var(--color-tone-blue-bg);
  --pms-k-partner-bg: var(--color-tone-green-bg);
  --pms-k-chan-bg: var(--color-tone-teal-bg);
  --pms-k-link-bg: var(--color-tone-purple-bg);

}

.pms-group {
  --pms-k-now: var(--color-primary-500);
  --pms-k-now-bg: var(--color-surface-2);
}

.pms-group--k-brand { --pms-k-now: var(--pms-k-brand); --pms-k-now-bg: var(--pms-k-brand-bg); }
.pms-group--k-partner { --pms-k-now: var(--pms-k-partner); --pms-k-now-bg: var(--pms-k-partner-bg); }
.pms-group--k-chan { --pms-k-now: var(--pms-k-chan); --pms-k-now-bg: var(--pms-k-chan-bg); }
.pms-group--k-link { --pms-k-now: var(--pms-k-link); --pms-k-now-bg: var(--pms-k-link-bg); }

.pms-group--box {
  padding: var(--space-5);
  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.pms-chips { display: flex; flex-direction: column; gap: 6px; }
.pms-chips__grp { display: flex; flex-wrap: wrap; gap: 6px; }
.pms-chips__ghead { font-size: var(--font-size-xs); color: var(--color-muted); }
.pms-chips__hint { font-size: var(--font-size-xs); color: var(--color-muted); }
.pms-chip,
.pjt-chip {
  font: inherit;
  font-size: var(--font-size-sm);
  line-height: 1.4;
  text-align: left;
  padding: 5px 12px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-fg);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    background var(--motion-fast) var(--motion-ease-standard);
}
.pms-chip:hover,
.pjt-chip:hover { border-color: var(--pms-k-now); }
.pms-chip.is-on,
.pjt-chip.is-on {
  background: var(--pms-k-now);
  border-color: var(--pms-k-now);
  color: var(--color-accent-on);
}

.pms-chip--new,
.pjt-chip--new { border-style: dashed; color: var(--pms-k-now); }

.pms-chip--sub { margin-left: calc(var(--d) * 14px); }

.pms-newlist { margin-top: 10px; }
.pms-newlist__hd { font-size: var(--font-size-xs); color: var(--color-muted); margin-bottom: 4px; }
.pms-newlist__ul { margin: 0; padding-left: 18px; max-height: 132px; overflow: auto; }
.pms-newlist__ul li { font-size: var(--font-size-sm); line-height: 1.7; color: var(--color-muted); }

.pms-table-wrap .table thead th.pms-th--k-brand { color: var(--pms-k-brand); }
.pms-table-wrap .table thead th.pms-th--k-partner { color: var(--pms-k-partner); }
.pms-table-wrap .table thead th.pms-th--k-chan { color: var(--pms-k-chan); }
.pms-table-wrap .table thead th.pms-th--k-link { color: var(--pms-k-link); }

.pjm { display: flex; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.pjm__layers { flex: 0 0 104px; background: var(--color-surface-2); border-right: 1px solid var(--color-border); }
.pjm-lay { display: flex; align-items: center; justify-content: flex-end; padding-right: var(--space-3);
  border-top: 1px solid var(--color-border); font-size: var(--font-size-xs); color: var(--color-muted); }
.pjm-lay:first-child { border-top: 0; }
.pjm__scroll { flex: 1 1 auto; overflow-x: auto; }
.pjm__canvas { position: relative; width: max-content; min-width: 100%; }
.pjm__inner { position: relative; margin: 0 auto; }
.pjm-band { position: absolute; left: 0; right: 0; border-top: 1px solid var(--color-border); }
.pjm-band:first-child { border-top: 0; }
.pjm__svg { position: absolute; left: 0; top: 0; color: var(--color-border); pointer-events: none; }

.pjm-nd { --pjm-c: var(--color-primary-500);
  position: absolute; display: flex; align-items: center; justify-content: center;
  padding: 0 var(--space-2); border-radius: var(--radius-md); background: var(--color-surface);
  border: 2px solid var(--pjm-c); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium);
  color: var(--color-fg); cursor: pointer; user-select: none; white-space: nowrap; overflow: hidden;
  transition: background var(--motion-fast) var(--motion-ease-standard); }
.pjm-nd:hover { background: var(--pms-k-now-bg); }
.pjm-nd__nm { overflow: hidden; text-overflow: ellipsis; }
.pjm-nd.is-root { background: var(--pms-k-brand-bg); }

.pjm-nd__x { position: absolute; right: 3px; top: 1px; font-size: 11px; line-height: 1;
  color: var(--color-border); cursor: pointer; opacity: 0; }
.pjm-nd:hover .pjm-nd__x { opacity: 1; }
.pjm-nd__x:hover { color: var(--color-danger); }

.pjm-add { --pjm-c: var(--color-primary-500);
  position: absolute; width: 22px; height: 22px; padding: 0; border-radius: var(--radius-full);
  border: 1.5px solid var(--pjm-c); background: var(--color-surface); color: var(--pjm-c);
  font: inherit; font-size: 14px; line-height: 1; display: flex; align-items: center;
  justify-content: center; cursor: pointer; opacity: 0; z-index: 3;
  transition: opacity var(--motion-fast) var(--motion-ease-standard); }
.pjm-nd:hover + .pjm-add, .pjm-add:hover, .pjm-add.is-open { opacity: 1; }
.pjm-add:hover { background: var(--pms-k-now-bg); }

.pjm-pop { position: absolute; z-index: 9; background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius-md); box-shadow: 0 6px 20px rgba(28, 30, 33, .10); padding: 10px 12px; min-width: 210px; }

.pjm-pop__x { position: absolute; right: 3px; top: 3px; width: 20px; height: 20px; padding: 0;
  border: 0; background: transparent; color: var(--color-muted); cursor: pointer; font: inherit;
  font-size: 12px; line-height: 1; border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center; }
.pjm-pop__x:hover { background: var(--color-surface-2); color: var(--color-fg); }

.pjm-pop__hd { font-size: var(--font-size-xs); color: var(--color-muted); margin-bottom: var(--space-2);
  padding-right: 18px; }
.pjm-pop__bd { display: flex; flex-wrap: wrap; gap: 7px; }
.pjm-pop__bd--col { flex-direction: column; align-items: stretch; }
.pjm-pop__empty { font-size: var(--font-size-xs); color: var(--color-muted); }
.pjm-cand { display: inline-flex; align-items: center; padding: 5px 11px; border-radius: var(--radius-md);
  border: 1.5px dashed currentColor; background: var(--color-surface); color: var(--color-fg);
  font: inherit; font-size: var(--font-size-sm); cursor: pointer; text-align: left; }
.pjm-cand:hover { background: var(--color-surface-2); }
.pjm-cand--new { border-style: dotted; color: var(--color-muted); }

.pms-page .pms-body > * + * {
  margin-top: var(--space-5);
}

.pms-help-tab { margin-bottom: var(--space-2); }
.pms-help-tab:last-child { margin-bottom: 0; }
.pms-help-tab > b { color: var(--color-fg-2); font-weight: 500; }

.pms-cell-main {
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
}
.pms-cell-sub {
  margin-top: 2px;
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  line-height: 1.4;
}

.pms-col-num { white-space: nowrap; }

.table thead th.pms-col-num,
.table tbody td.pms-col-num,
.table tfoot td.pms-col-num { text-align: right; }
.pms-col-op { white-space: nowrap; width: 1%; }

.pms-rowbtn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  justify-content: flex-end;
}

.pms-tree {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;

  padding: 2px 0;
}

.pms-tree__kids {

  margin: 1px 0 2px 9px;
  position: relative;

  padding-left: 16px;
}

.pms-tree__kids::before {
  content: '';
  position: absolute;
  left: 0;

  top: -11px;

  bottom: 17px;
  border-left: 1px solid var(--color-border);
}

.pms-tree__kids:has(.pms-tree:hover)::before { border-left-color: var(--color-primary-400); }
.pms-tree:hover > .pms-tree__name { color: var(--color-accent-text); }

.pms-tree__fold {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: var(--radius-sm);
  color: var(--color-muted);
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
              background-color var(--motion-fast) var(--motion-ease-standard);
}
.pms-tree__fold:hover { color: var(--color-accent-text); background: var(--color-accent-bg); }
.pms-tree__fold-ph { flex: none; width: 18px; }
.pms-tree__name {
  flex: none;
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
}

.pms-tree--lv1 .pms-tree__name { font-size: 14px; font-weight: 600; color: var(--color-fg); }
.pms-tree--lv2 .pms-tree__name { font-size: 13px; font-weight: 500; color: var(--color-fg-2); }
.pms-tree--lv3 .pms-tree__name { font-size: 12px; font-weight: 500; color: var(--color-muted); }
.pms-tree--lv4 .pms-tree__name { font-size: 12px; font-weight: 400; color: var(--color-muted); }

#pms-links-list .pms-tree-row > td { vertical-align: top; }

.pms-tree__mini {
  flex: none;
  margin-left: 6px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
}
.pms-tree__mini--off { color: var(--color-danger); }

.pms-tree__path {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.pms-tree__add {
  flex: none;
  margin-left: 8px;
  padding: 2px 6px;
  border: 0;
  background: transparent;
  border-radius: var(--radius-sm);
  color: var(--color-fg-3);
  font-family: inherit;
  font-size: var(--font-size-xs);
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-ease-standard),
              background-color var(--motion-fast) var(--motion-ease-standard);
}
.pms-tree__add:hover { color: var(--color-accent-text); background: var(--color-accent-bg); }

#pms-links-list .pms-tree-row { --pms-lk-row-h: 34px; }
#pms-links-list .pms-tree { min-height: var(--pms-lk-row-h); }
#pms-links-list .pms-cellrow { min-height: var(--pms-lk-row-h); }

.pms-cellrow {
  display: flex;
  align-items: center;
  min-height: var(--pms-lk-row-h);
}

#pms-links-list .pms-cellrow { justify-content: center; }

#pms-links-list td.pms-col-left .pms-cellrow,
#pms-links-list td.col-align-left .pms-cellrow { justify-content: flex-start; }

#pms-links-list td.pms-col-op .pms-cellrow,
#pms-links-list td.is-num .pms-cellrow,
#pms-links-list td.num .pms-cellrow,
#pms-links-list .pms-cellrow--right { justify-content: flex-end; }

.pms-table-wrap .table thead th.pms-col-left,
.pms-table-wrap .table tbody td.pms-col-left { text-align: left; }

.pms-col-cnt .pms-cellrow {
  flex-direction: column;

  align-items: center;
  justify-content: center;
  line-height: 1.15;
}
.pms-col-cnt .pms-cell-sub { margin-top: 1px; line-height: 1.15; }

.pms-col-cnt .pms-cellkids .pms-cellrow { color: var(--color-muted); }

.pms-cellkids { margin: 1px 0 2px; }

.pms-inherit { color: var(--color-muted); }

.pms-inherit--off { color: var(--color-danger); }

.pms-rel__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.pms-rel__hint {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-fg-3);
}

.pms-rel__chain {
  display: flex;
  align-items: stretch;
  gap: 8px;
  flex-wrap: nowrap;
}
@media (max-width: 900px) {
  .pms-rel__chain { flex-wrap: wrap; }
}
.pms-rel__node {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1 1 0;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              background-color var(--motion-fast) var(--motion-ease-standard);
}
.pms-rel__node:hover { border-color: var(--color-primary-300); background: var(--color-accent-bg); }
.pms-rel__node:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.pms-rel__label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.pms-rel__value {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}

.pms-rel__node--derived { border-style: dashed; background: var(--color-surface-2); }
.pms-rel__node--derived .pms-rel__value { color: var(--color-fg-2); }
.pms-rel__tag {
  font-size: var(--font-size-xs);
  color: var(--color-fg-3);
}

.pms-rel__node--empty .pms-rel__value { color: var(--color-fg-3); font-weight: 400; }
.pms-rel__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 14px;
  color: var(--color-fg-3);
  font-size: var(--font-size-xs);
  user-select: none;
}
.pms-rel__sub {
  margin-top: 10px;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

#pms-bl-body {
  --pms-lk-row-h: 34px;

  --pms-node-brand: var(--color-tone-blue-fg);
  --pms-node-chan: var(--color-tone-teal-fg);
  --pms-node-link: var(--color-tone-purple-fg);
}
#pms-bl-body .pms-tree { min-height: var(--pms-lk-row-h); }
.pms-bl__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pms-bl__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.pms-bl__sel { width: 220px; }
.pms-bl__hint {
  flex: 1 1 260px;
  min-width: 0;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.pms-bl__chhead {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--color-border-soft);
}
.pms-bl__chname {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.pms-bl__ports { font-size: var(--font-size-xs); color: var(--color-muted); }
.pms-bl__warn { color: var(--color-danger); }
.pms-bl__tree { padding-top: 6px; }
.pms-bl__none { font-size: var(--font-size-xs); color: var(--color-fg-3); }

.pms-bl__pj {
  flex: none;
  margin-left: 8px;
  padding: 1px 8px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  color: var(--color-accent-text);
  font-family: inherit;
  font-size: var(--font-size-xs);
  white-space: nowrap;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
              background-color var(--motion-fast) var(--motion-ease-standard);
}
.pms-bl__pj:hover { border-color: var(--color-primary-300); background: var(--color-accent-bg); }
.pms-bl__pj:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.pms-bl__views { flex: none; }

button.pms-tree__name,
button.pms-bl__chname, button.pms-bl__ports,
button.pms-bl-ln__seg, button.pms-bl-ln__tag,
button.pblm-nd__nm {
  padding: 0;
  border: 0;
  background: none;
  font-family: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
}

button.pms-tree__name:hover,
button.pms-bl__chname:hover, button.pms-bl__ports:hover,
button.pms-bl-ln__seg:hover, button.pms-bl-ln__tag:hover,
button.pblm-nd__nm:hover {
  color: var(--color-accent-text);
  text-decoration: underline;
}

button.pms-tree__name:focus-visible,
button.pms-bl__chname:focus-visible, button.pms-bl__ports:focus-visible,
button.pms-bl-ln__seg:focus-visible, button.pms-bl-ln__tag:focus-visible,
button.pblm-nd__nm:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.pms-bl-ln { padding-top: 6px; padding-bottom: 8px; }
.pms-bl-ln__row {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 46px;
  padding: 8px 10px;
  margin: 0 -10px;
  border-radius: var(--radius-sm);
  border-bottom: 1px solid var(--color-border-soft);
}
.pms-bl-ln__row:last-child { border-bottom: 0; }
.pms-bl-ln__row:hover { background: var(--color-surface-2); }

.pms-bl-ln__path {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.pms-bl-ln__seg { flex: none; color: var(--pms-node-link); }
.pms-bl-ln__seg--lv1 { font-size: 14px; font-weight: 600; }
.pms-bl-ln__seg--lv2 { font-size: 13px; font-weight: 500; }
.pms-bl-ln__seg--lv3 { font-size: 12px; font-weight: 500; }
.pms-bl-ln__seg--lv4 { font-size: 12px; font-weight: 400; }

.pms-bl-ln__seg.is-end { font-weight: 600; }
.pms-bl-ln__sep { flex: none; color: var(--color-fg-3); font-size: 12px; user-select: none; }
.pms-bl-ln__tags {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
}
.pms-bl-ln__tag {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pms-bl-ln__tag--partner { color: var(--color-tone-teal-fg); }
.pms-bl-ln__tag--product { color: var(--color-tone-orange-fg); }
.pms-bl-ln__pjs {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 40%;
}
.pms-bl-ln__pjs .pms-bl__pj { margin-left: 0; }

.pblm-wrap { padding: 14px 16px; }
.pblm { border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.pblm__scroll { overflow-x: auto; }
.pblm__canvas { position: relative; width: max-content; min-width: 100%; }
.pblm__inner { position: relative; }
.pblm-lay { position: absolute; top: 0; height: var(--pblm-hdr);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--font-size-xs); color: var(--color-muted); }
.pblm__hdline { position: absolute; left: 0; right: 0; border-top: 1px solid var(--color-border); }

.pblm-band { position: absolute; top: 0; bottom: 0; border-left: 1px solid var(--color-border); }
.pblm__svg { position: absolute; left: 0; top: 0; color: var(--color-border); pointer-events: none; }

.pblm-nd { --pbl-c: var(--color-primary-500);
  position: absolute; box-sizing: border-box; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 3px; padding: 4px var(--space-2);
  border-radius: var(--radius-lg); background: var(--color-surface);
  border: 2px solid var(--pbl-c); font-size: var(--font-size-sm); color: var(--color-fg);
  transition: background var(--motion-fast) var(--motion-ease-standard); }
.pblm-nd.is-root { background: var(--pms-k-brand-bg); }
.pblm-nd__nm { max-width: 100%; padding: 0; border: 0; background: none; font-family: inherit;
  font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-fg);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
button.pblm-nd__nm { cursor: pointer; }
button.pblm-nd__nm:hover { color: var(--color-accent-text); }

.pblm-nd__row { display: flex; align-items: center; gap: 4px; max-width: 100%; }
.pblm-nd__none { font-size: var(--font-size-xs); color: var(--color-fg-3); }

.pblm-nd__acts { position: absolute; right: 1px; top: 1px; display: flex; }

.pblm-add { --pbl-c: var(--color-primary-500);
  position: absolute; width: 22px; height: 22px; padding: 0; border-radius: var(--radius-full);
  border: 1.5px solid var(--pbl-c); background: var(--color-surface); color: var(--pbl-c);
  font: inherit; font-size: 14px; line-height: 1; display: flex; align-items: center;
  justify-content: center; cursor: pointer; opacity: 0; z-index: 3;
  transition: opacity var(--motion-fast) var(--motion-ease-standard); }
.pblm-nd:hover + .pblm-add, .pblm-add:hover, .pblm-add:focus-visible, .pblm-add.is-open { opacity: 1; }
.pblm-add:hover { background: var(--pbl-c-bg); }
@media (hover: none) { .pblm-add { opacity: .55; } }

.pblm-pop__note { margin-top: var(--space-2); padding-top: var(--space-2);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs); color: var(--color-muted); max-width: 260px; }

.pms-nodemenu {
  flex: none;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: var(--color-surface);
  color: var(--color-muted);
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--motion-fast) ease, color var(--motion-fast) ease,
    border-color var(--motion-fast) ease;
}
.pblm-nd:hover .pms-nodemenu,
.pms-nodemenu:focus-visible { opacity: 1; }
.pms-nodemenu:hover { color: var(--color-primary-500); border-color: var(--color-primary-500); }

@media (hover: none) { .pms-nodemenu { opacity: .55; } }

#pms-pj-tabs { display: contents; }

.pms-pj__tabbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);

  background: var(--color-surface);
  border: 1px solid var(--color-frame-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 10px;
  margin-bottom: var(--space-5);
  position: sticky;
  top: var(--tabs-bar-height);
  z-index: 60;
  transition: background-color var(--motion-base) var(--motion-ease-standard),
              border-color var(--motion-base) var(--motion-ease-standard),
              box-shadow var(--motion-base) var(--motion-ease-standard);
}

.pms-pj__tabbar.is-stuck {
  background: var(--liquid-bg);
  -webkit-backdrop-filter: var(--liquid-blur);
  backdrop-filter: var(--liquid-blur);
  border-color: var(--liquid-edge);
  box-shadow: var(--liquid-shadow);
}

.pms-pj__right {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.pms-pj__right .btn:not(.page-help-btn) {
  height: var(--control-height-row);
  min-height: var(--control-height-row);

  padding-left: var(--space-4);
  padding-right: var(--space-4);
}

.pms-pj__left {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.pms-pj__views { margin-bottom: 0; }

.pms-a-pick {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--space-2);
}

.pms-imp__drop-in { text-align: center; }
.pms-imp__drop-tip { margin-top: 8px; color: var(--color-fg-2); }

.pms-imp__result { margin-top: var(--space-4); }

.pms-imp__result:empty { display: none; }

.pms-imp__result > * + * { margin-top: var(--space-4); }

.pms-imp__foot {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-top: var(--space-3);
}

.pblm-nd__row .pms-bl__pj { margin-left: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; background: var(--color-surface-2); }

.pblm-nd__row .pms-bl__pj:hover { background: var(--color-accent-bg); }

.pms-card__body { padding: 0; }

.pms-link {
  color: var(--color-accent-text);
  text-decoration: none;
}
.pms-link:hover { text-decoration: underline; }

.pms-card-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.pms-links {
  overflow-x: auto;
  padding-bottom: var(--space-2);
}
.pms-links__row {
  display: flex;
  align-items: center;
  min-height: 44px;
  border-bottom: 1px solid var(--color-border-soft);

  padding-right: var(--space-6);
}
.pms-links__row:last-child { border-bottom: 0; }
.pms-links__row--head {
  min-height: 38px;
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
}
.pms-links__brand {
  flex: 0 0 200px;
  position: sticky;
  left: 0;

  background: var(--color-surface);

  padding-left: var(--space-6);
  padding-right: var(--space-4);
  z-index: 1;
}
.pms-links__cell {
  flex: 0 0 96px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pms-check {
  position: relative;
  display: inline-flex;
  cursor: pointer;
}
.pms-check input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  margin: 0;
}
.pms-check__box {
  width: 20px;
  height: 20px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  transition: background-color var(--motion-fast) var(--motion-ease-standard),
              border-color var(--motion-fast) var(--motion-ease-standard);
}
.pms-check input:checked + .pms-check__box {
  background: var(--color-accent);
  border-color: var(--color-accent);
}

.pms-check input:checked + .pms-check__box::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 3px;
  width: 5px;
  height: 10px;
  border: 2px solid #fff;
  border-top: 0;
  border-left: 0;
  transform: rotate(45deg);
}

.pms-check input:disabled { cursor: not-allowed; }

.pms-multi {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-4);
  padding: 4px 0 2px;
}
.pms-multi .pms-check { align-items: center; gap: 6px; }

.pms-multi__label {
  font-size: var(--font-size-sm);

  color: var(--color-fg);
}

.pms-multi--tree {
  display: block;
  max-height: 288px;
  overflow: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 4px 0;
}

.pms-multi--tree .pms-multi__grp + .pms-multi__grp { border-top: 1px solid var(--color-border-soft); }
.pms-multi__row {

  --d: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;

  padding: 0 10px 0 calc(10px + var(--d) * 20px);
}
.pms-multi__row:hover { background: var(--color-surface-2); }

.pms-multi__row--head { background: var(--color-surface-2); }
.pms-multi__row--head .pms-multi__label { font-weight: var(--font-weight-medium); }

.pms-multi__meta {
  margin-left: auto;
  flex: none;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
}
.pms-check input:disabled + .pms-check__box { opacity: 0.45; }

.pms-check input:focus-visible + .pms-check__box {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.pms-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4) var(--space-6);
  align-items: start;
}

.pms-group + .pms-group { margin-top: var(--space-6); }

.pms-group__title {
  margin-bottom: var(--space-4);
}

.pms-group--fold > summary.pms-group__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.pms-group--fold > summary.pms-group__title::-webkit-details-marker { display: none; }
.pms-group--fold > summary.pms-group__title::marker { content: ''; }
.pms-group--fold .pms-group__caret {
  display: inline-flex;
  margin-left: auto;
  color: var(--color-muted);
  transition: transform var(--motion-fast) var(--motion-ease-standard);
}
.pms-group--fold[open] .pms-group__caret { transform: rotate(180deg); }

.pms-fromline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-5);
  background: var(--color-primary-50);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.pms-fromline__icon { display: inline-flex; color: var(--color-accent-text); }

.pms-fromline__path { display: inline-flex; align-items: center; flex-wrap: wrap; gap: var(--space-1); }

.pms-fromline__seg {
  padding: 0 2px;
  border: 0;
  border-bottom: 1px dashed var(--color-accent-text);
  background: transparent;
  font-family: inherit;
  font-size: inherit;
  font-weight: 600;
  color: var(--color-accent-text);
  cursor: pointer;
}
.pms-fromline__seg:hover {
  color: var(--color-primary-500);
  border-bottom-color: var(--color-primary-500);
}

.pms-embed__foot,
.pms-flow-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  padding-top: var(--space-4);
  margin-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}
.pms-flow-wrap { padding-top: var(--space-2); }

.pms-subpage {
  max-width: var(--form-max-width);
  margin-left: auto;
  margin-right: auto;
}

.pms-new { display: flex; flex-direction: column; gap: var(--space-4); }
.pms-new__card { margin: 0; }
.pms-new__h {
  font-size: var(--font-size-base);
  font-weight: 600;
  color: var(--color-fg);
  margin-bottom: var(--space-1);
}
.pms-new__no { color: var(--color-primary-500); margin-right: 4px; }
.pms-new__tip {
  margin: 0 0 var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  line-height: 1.6;
}
.pms-fromline__sep { color: var(--color-muted); font-style: normal; padding: 0 2px; }
.pms-fromline__hint { color: var(--color-muted); font-size: var(--font-size-xs); }

.pms-span2 { grid-column: 1 / -1; }

.pms-grid .field-label {
  width: auto;
  min-width: 96px;
  max-width: 140px;
}

.table thead th.pms-col-op,
.table tbody td.pms-col-op,
.table tfoot td.pms-col-op { text-align: right; }

@media (max-width: 900px) {
  .pms-grid { grid-template-columns: minmax(0, 1fr); }
  .pms-links__brand { flex-basis: 140px; }
  .pms-links__cell { flex-basis: 76px; }
}

.pms-name { font-weight: var(--font-weight-medium); color: var(--color-fg); }

.table--fixed { table-layout: fixed; }
.table--fixed > thead > tr > th,
.table--fixed > tbody > tr > td,
.table--fixed > tfoot > tr > td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table--fixed > tbody > tr > td.pms-cell-wrap,
.table--fixed > tbody > tr > td .pms-cell-sub {
  white-space: normal;
}

.pms-cell-clip { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.pms-row-link { cursor: pointer; }
.pms-row-link:hover { background: var(--color-surface-2); }

.pms-unused { display: inline-flex; align-items: center; gap: var(--space-2); }
.pms-unused__lb { font-size: var(--font-size-sm); color: var(--color-muted); }

.pms-note {
  padding: var(--space-4) 0;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  line-height: var(--font-line-height-body);
}

.pms-todo {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-3);
  color: inherit;
  text-decoration: none;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.pms-todo:last-child { margin-bottom: 0; }
.pms-todo:hover { background: var(--color-surface-2); }
.pms-todo__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; flex: none;
  border-radius: var(--radius-sm);
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
}
.pms-todo__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.pms-todo__text { font-weight: var(--font-weight-medium); color: var(--color-fg); }
.pms-todo__sub { font-size: var(--font-size-sm); color: var(--color-muted); }
.pms-todo__go { color: var(--color-muted); flex: none; }

.pms-dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3) var(--space-5);
  margin: 0;
}
@media (max-width: 900px) {
  .pms-dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .pms-dl { grid-template-columns: 1fr; }
}

.pms-dl__hd {
  margin-bottom: var(--space-3);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.pms-dl__row {
  display: flex;
  gap: var(--space-3);
  font-size: var(--font-size-sm);
  line-height: var(--font-line-height-body);
}
.pms-dl__row dt { flex: none; width: 96px; color: var(--color-muted); }
.pms-dl__row dd { margin: 0; color: var(--color-fg); word-break: break-word; }

.pms-tl { display: flex; flex-direction: column; gap: var(--space-3); }
.pms-tl__item {
  position: relative;
  padding-left: var(--space-5);
  border-left: 1px solid var(--color-border-soft);
  padding-bottom: var(--space-3);
}
.pms-tl__item:last-child { padding-bottom: 0; }
.pms-tl__item::before {
  content: '';
  position: absolute;
  left: -4px; top: 6px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--color-accent);
}
.pms-tl__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); }
.pms-tl__act { font-weight: var(--font-weight-medium); color: var(--color-fg); }
.pms-tl__who { font-size: var(--font-size-sm); color: var(--color-fg-2); }
.pms-tl__at { font-size: var(--font-size-xs); color: var(--color-muted); }
.pms-tl__body { margin-top: 2px; font-size: var(--font-size-sm); color: var(--color-fg-2); }
.pms-tl__note { margin-top: 2px; font-size: var(--font-size-xs); color: var(--color-muted); }

.pms-check-inline {
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: 0 var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  white-space: nowrap;
  cursor: pointer;
}
.pms-check-inline input { cursor: pointer; }

.pms-page .tabs, .pms-body .tabs { margin-top: var(--space-4); }

.pms-nowrap { white-space: nowrap; }

.pms-table-wrap td.pms-col-op,
.pms-table-wrap th.pms-col-op {
  position: sticky;
  right: 0;
  z-index: 1;
  background: var(--color-surface);
  box-shadow: inset 1px 0 0 var(--color-border-soft);
}
.pms-table-wrap .table tbody tr:hover td.pms-col-op { background: var(--table-row-hover); }

.pms-flow { display: block; }
.pms-flow__item { display: flex; gap: var(--space-3); }
.pms-flow__rail { position: relative; width: 20px; flex: none; }
.pms-flow__rail::before {
  content: '';
  position: absolute;
  left: 9px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--color-border);
}

.pms-flow__item:first-child .pms-flow__rail::before { top: 14px; }
.pms-flow__item:last-child .pms-flow__rail::before { bottom: auto; height: 14px; }
.pms-flow__dot {
  position: relative;
  z-index: 1;
  display: block;
  width: 12px;
  height: 12px;
  margin: 7px auto 0;
  border-radius: var(--radius-full);
  background: var(--color-border);
}

.pms-flow__item.is-set .pms-flow__dot { background: var(--color-primary-500); }
.pms-flow__body { flex: 1; min-width: 0; padding-bottom: var(--space-4); }
.pms-flow__head { font-size: var(--font-size-sm); color: var(--color-fg-2); margin-bottom: 6px; }
.pms-flow__ctrl { display: flex; align-items: center; gap: var(--space-2); }
.pms-flow__ctrl .input { max-width: 340px; }
.pms-flow__wait { font-size: var(--font-size-sm); color: var(--color-muted); }
.pms-flow__hint { margin-top: var(--space-2); font-size: var(--font-size-sm); color: var(--color-muted); }

.pms-owner__row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.pms-owner__k {
  flex: none;
  width: 88px;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.pms-owner__row .input { flex: 1; min-width: 0; }
.pms-owner__hint {
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  line-height: 1.6;
}

.pms-focus { margin-bottom: var(--space-3); }
.pms-focus__bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px;
}
.pms-focus__label {
  margin-right: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}

.pms-focus__c {
  padding: 2px 6px;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  cursor: pointer;
}
.pms-focus__c:hover { color: var(--color-primary-500); background: var(--color-surface-2); }
.pms-focus__c.is-cur { color: var(--color-fg); font-weight: 600; cursor: default; }
.pms-focus__c.is-cur:hover { color: var(--color-fg); background: transparent; }
.pms-focus__sep { display: inline-flex; align-items: center; color: var(--color-muted); }

.pms-focus__sp { flex: 1; }

.pms-lkg { display: flex; gap: var(--space-4); align-items: stretch; min-height: 380px; }
.pms-lkg__side { width: 220px; flex: none; display: flex; flex-direction: column; gap: var(--space-3); }
.pms-lkg__list { display: flex; flex-direction: column; gap: 2px; overflow: auto; }
.pms-lkg__item { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2);
  width: 100%; padding: 8px 10px; border: 1px solid transparent; border-radius: var(--radius-md);
  background: var(--color-surface-2); cursor: pointer; font-size: 13px; text-align: left; }
.pms-lkg__item:hover { border-color: var(--color-border); }
.pms-lkg__item.is-on { border-color: var(--color-accent-border); background: var(--color-accent-bg); }
.pms-lkg__nm { font-weight: 500; color: var(--color-fg); }
.pms-lkg__cnt { font-size: 12px; color: var(--color-fg-3); }
.pms-lkg__main { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.pms-lkg__fld { display: flex; flex-direction: column; gap: 6px; }
.pms-lkg__tree { border: 1px solid var(--color-border); border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3); max-height: 260px; overflow: auto; }
.pms-lkg__row { display: flex; align-items: center; gap: var(--space-2); padding: 3px 0; }
.pms-lkg__chk { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; color: var(--color-fg); }
.pms-lkg__kids { font-size: 12px; color: var(--color-fg-3); }
.pms-lkg__empty { padding: var(--space-3); font-size: 12px; color: var(--color-fg-3); }
.pms-lkg__sug { display: flex; align-items: center; gap: 6px; min-height: 20px; font-size: 12px; color: var(--color-fg-3); }
.pms-lkg__sugbtn { border: 1px dashed var(--color-border); border-radius: var(--radius-sm);
  background: transparent; padding: 1px 8px; font-size: 12px; cursor: pointer; color: var(--color-accent-text); }
.pms-lkg__sugbtn:hover { border-color: var(--color-accent-border); }
.pms-lkg__foot { margin-left: auto; display: flex; gap: var(--space-2); }

.pjt-sign__rows {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.pjt-sign__row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.pjt-sign__row .select { flex: 1 1 0; min-width: 0; }
.pjt-sign__row .icon-btn { flex: none; }

.pms-drill__hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
}
.pms-drill__name {
  font-size: var(--font-size-lg);
  font-weight: 500;
}
.pms-drill__meta {
  margin-top: var(--space-1);
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}
.pms-drill__grid {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-top: var(--space-4);
}

.pms-row--go { cursor: pointer; }
.pms-row--go:hover { background: var(--color-surface-2); }

.pms-card-head--left {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  min-width: 0;
}
.pms-card-head--left .seg.table-tabs { flex: 0 0 auto; }

.card__header:has(.pms-card-head--left) { flex-wrap: wrap; row-gap: var(--space-2); }
@media (max-width: 1024px) {
  .pms-card-head--left { flex: 1 1 100%; flex-wrap: wrap; gap: var(--space-2) var(--space-3); }
}

.pms-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 32px;
  align-items: flex-start;

  padding: 0 var(--space-6) var(--space-5);
}
.pms-facts__c { flex: 1 1 190px; min-width: 0; }

.pms-facts__c--wide { flex: 2.6 1 320px; }
.pms-facts__k {
  margin-bottom: 7px;
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  line-height: 1;
}

.pms-facts__k--chan { color: var(--pms-k-chan); }
.pms-facts__k--link { color: var(--pms-k-link); }
.pms-facts__v {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  line-height: 1.7;
  word-break: break-word;
}

.pms-facts__ln { display: block; }
.pms-facts__sep { color: var(--color-fg-3); }

.pms-chip {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 1px 6px 0;
  border-radius: var(--radius-seg);
  font-size: var(--font-size-xs);
  line-height: 1;
  white-space: nowrap;
}
.pms-chip--chan { color: var(--pms-k-chan); background: var(--pms-k-chan-bg); }
.pms-chip--link { color: var(--pms-k-link); background: var(--pms-k-link-bg); }
.pms-put__none { color: var(--color-muted); }

.pms-recon {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-3);
  padding: var(--space-2) var(--space-4);
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}
.pms-recon b {
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
}
.pms-recon__diff.is-warn b { color: var(--color-danger); }
.pms-recon__note { font-size: var(--font-size-xs); color: var(--color-muted); }

.pms-detail { display: block; }
.pms-detail__head { margin-bottom: var(--space-4); }
.pms-detail__no-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-1);
}

.pms-detail__no {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.pms-detail__meta { color: var(--color-muted); font-size: var(--font-size-sm); }
.pms-detail__meta b { color: var(--color-fg); font-weight: var(--font-weight-medium); }

.pms-mod { padding: var(--space-4); }
.pms-mod + .pms-mod,
.pms-detail > #pms-rch-plat + .pms-mod,
.pms-mod + #pms-rch-plat { margin-top: var(--space-3); }

.pms-detail > #pms-rch-plat { margin-top: var(--space-3); }

.pms-mod .pms-dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3) var(--space-5);
}
.pms-mod .pms-dl__row dt { width: 96px; white-space: nowrap; }

.pms-mod .pms-recon {
  margin-top: 0;
  padding: 0;
  background: transparent;
}
.pms-mod .pms-recon__note { display: block; margin-top: var(--space-2); }

.pms-mod .textarea {
  width: 100%;
  min-height: 72px;
  box-sizing: border-box;
}

.pms-steps {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: var(--space-1) 0 var(--space-4);
}
.pms-step {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 12px 3px 4px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  font-size: var(--font-size-sm);
  color: var(--color-meta);
}
.pms-step i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-surface-2);
  font-style: normal;
  font-size: 11px;
}
.pms-step--done {
  background: var(--color-success);
  border-color: var(--color-success);
  color: #fff;
}
.pms-step--done i { background: var(--color-surface); color: var(--color-success); }
.pms-step--current {
  border-color: var(--color-accent);
  color: var(--color-accent-text);
  font-weight: var(--font-weight-semibold);
}
.pms-step--current i { background: var(--color-accent); color: #fff; }
.pms-step--bad {
  border-color: var(--color-danger);
  color: var(--color-danger);
  font-weight: var(--font-weight-semibold);
}
.pms-step--bad i { background: var(--color-danger); color: #fff; }

.pms-step__gap {
  width: 14px;
  height: 1px;
  background: var(--color-border);
}

.pms-recon--sep {
  border-top: 1px solid var(--color-border-soft);
  margin-top: var(--space-4);
  padding-top: var(--space-3);
}

.pms-recon--sep .pms-recon__cap {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.pms-recon--sep .pms-recon__row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  font-size: var(--font-size-sm);
}

.pms-recon--sep { display: block; }

.pms-mod { padding: 14px; }
.pms-mod .pms-dl { gap: 8px 20px; }
.pms-mod .textarea { min-height: 56px; }
.pms-detail__head { margin-bottom: var(--space-3); }
.pms-steps { margin: 6px 0 var(--space-3); }
.pms-recon--sep { margin-top: var(--space-3); padding-top: var(--space-2); }

.pms-step__who {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 6px;
  padding-left: 6px;
  border-left: 1px solid var(--color-border);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
}
.pms-step--done .pms-step__who { border-left-color: rgba(255, 255, 255, .55); }
.pms-step__who .cell-person__avatar {
  width: 16px;
  height: 16px;
  font-size: 9px;
  border: 0;
  background: var(--color-accent-bg);
  color: var(--color-accent-text);
}
.pms-step--done .pms-step__who .cell-person__avatar {
  background: rgba(255, 255, 255, .9);
  color: var(--color-success);
}

#pms-fo-extra { margin-top: var(--space-6); }

.pms-fo-tabs { margin: 0 0 var(--space-3); }
.pms-fo-tabs__n {
  margin-left: 6px;
  padding: 0 5px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  font-variant-numeric: tabular-nums;
}
.pms-fo-tabs .seg__btn.is-active .pms-fo-tabs__n {
  background: var(--color-primary-50);
  color: var(--color-accent-text);
}

.pms-shd-table th,
.pms-shd-table td {
  white-space: nowrap;
}

.pms-tags {
  display: inline-flex;
  align-items: center;

  gap: var(--space-1);
  flex-wrap: nowrap;
}

.pms-accpick {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 4px;

  border-radius: var(--radius-seg);
  cursor: pointer;
}
.pms-accpick:hover { background: var(--color-surface-2); }

.pms-accpick > input { margin-top: 2px; flex: 0 0 auto; }
.pms-accpick__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pms-accpick__l1 { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.pms-accpick__id {
  flex: 0 0 auto;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  font-variant-numeric: tabular-nums;
}
.pms-accpick__nm {
  flex: 1 1 auto; min-width: 0;
  font-size: var(--font-size-sm);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pms-accpick__bal {
  flex: 0 0 auto;
  font-size: var(--font-size-sm);
  font-variant-numeric: tabular-nums;
}
.pms-accpick__l2 {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}
.pms-accpick__off { color: var(--color-danger); }

.pms-pachips {
  display: flex;

  flex-wrap: nowrap;
  gap: 6px;

  justify-content: center;
}

.pms-th-sub {
  display: block;
  margin-top: 2px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
}
.pms-pachip {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border: 1px dashed var(--color-border-soft);
  border-radius: var(--radius-seg);
  background: transparent;
  color: var(--color-muted);
  font-family: inherit;
  font-size: var(--font-size-xs);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: none;
}
.pms-pachip:hover {
  border-color: var(--color-muted);
  color: var(--color-fg);
}
.pms-pachip.is-on {
  border-style: solid;

  border-color: var(--tag-line);
  background: var(--tag-bg);
  color: var(--tag-fg);
}
.pms-pachip.is-on:hover { color: var(--tag-fg); }
.pms-pachip[disabled] {
  cursor: default;
  opacity: 0.55;
}
.pms-pachip[disabled]:hover {
  border-color: var(--color-border-soft);
  color: var(--color-muted);
}

#pms-a-batchbar {
  margin-top: var(--space-2);

  margin-left: 0;
  margin-right: 0;
}

#pms-a-batchbar .btn {
  flex: 0 0 auto;
}

.pms-linknew {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border-soft);
}
.pms-linknew__hint {
  color: var(--color-muted);
  font-size: var(--font-size-xs);
}

.pms-combo {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  vertical-align: top;
}
.pms-combo__line i {
  font-style: normal;
  color: var(--color-muted);
  margin-right: var(--space-2);
}
.pms-combo__line i::after {
  content: '：';
}

.pms-cb {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.pms-cbhead__sub {
  margin-left: var(--space-2);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  font-weight: 400;
}
.pms-cbrow {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 1px dashed var(--color-border-soft);
}
.pms-cbrow:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.pms-cbrow__link {
  flex: 0 0 200px;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 32px;
}
.pms-cbrow__name {
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  font-weight: 600;
  word-break: break-all;
}
.pms-cbrow__hint {
  color: var(--color-meta);
  font-size: var(--font-size-xs);
  flex: 0 0 auto;
}
.pms-cbrow__pick {
  flex: 1 1 auto;
  min-width: 0;
}
.pms-cbempty {
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  line-height: 1.7;
}

.pms-tree__name--open {
  cursor: pointer;
}
.pms-tree__name--open:hover {
  color: var(--color-accent);
  text-decoration: underline;
}
.pms-ld__hd {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-4) 0 var(--space-2);
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: var(--color-fg);
}
.pms-ld__n {
  min-width: 20px;
  padding: 0 var(--space-1);
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  font-weight: 400;
  text-align: center;
}
.pms-ld__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.pms-ld__row {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
  text-align: left;
}
.pms-ld__row--link {
  cursor: pointer;
  border: 0;
  font: inherit;
  color: inherit;
}
.pms-ld__row--link:hover {
  background: var(--color-surface-2);
  outline: 1px solid var(--color-border-soft);
}
.pms-ld__main {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  word-break: break-all;
}
.pms-ld__sub {
  flex: 0 0 auto;
  color: var(--color-muted);
  font-size: var(--font-size-xs);
}
.pms-ld__tag {
  flex: 0 0 auto;
  color: var(--color-meta);
  font-size: var(--font-size-xs);
}
.pms-ld__prodrow {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
}
.pms-ld__prodproj {
  flex: 0 0 220px;
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-size: var(--font-size-sm);
  color: var(--color-accent);
  cursor: pointer;
  text-align: left;
  word-break: break-all;
}
.pms-ld__prodproj:hover {
  text-decoration: underline;
}
.pms-ld__prods {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}
.pms-ld__empty {
  padding: var(--space-3);
  border: 1px dashed var(--color-border-soft);
  border-radius: var(--radius-sm);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}
.pms-ld__note {
  margin-top: var(--space-4);
  color: var(--color-meta);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}

.pms-lr__name {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  font-weight: 600;
  word-break: break-all;
}
.pms-lr__prods,
.pms-lr__acc {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
}
.pms-lr__note {
  margin-top: var(--space-3);
  padding: var(--space-3);
  border: 1px dashed var(--color-border-soft);
  border-radius: var(--radius-sm);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}
.pms-lr-config__hd {
  margin: var(--space-3) 0 var(--space-2);
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: var(--color-fg);
}
.pms-lr-config__hd:first-child {
  margin-top: 0;
}
.pms-lr-config__note {
  margin-top: var(--space-3);
  color: var(--color-meta);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}

.pms-lrows {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.pms-lrows__hd,
.pms-lrow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) var(--control-height-sm);
  gap: var(--space-3);
  align-items: start;
}
.pms-lrows__hd {
  padding: 0 var(--space-1);
  font-size: var(--font-size-xs);
  color: var(--color-meta);
}
.pms-lrow__acc { min-width: 0; }
.pms-lrow__del {
  margin-top: calc((var(--control-height) - var(--control-height-sm)) / 2);
  color: var(--color-meta);
}
.pms-lrow__del:hover { color: var(--color-danger); }

.pms-lrows__hint {
  display: flex;
  align-items: center;
  min-height: var(--control-height);
  padding: 0 var(--space-3);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  color: var(--color-meta);
  font-size: var(--font-size-sm);
}
.pms-lrows__empty {
  padding: var(--space-3);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-meta);
  font-size: var(--font-size-sm);
}
.pms-lrows__foot { display: flex; }
.pms-lrows__opt {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  color: var(--color-meta);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  cursor: pointer;
}
.pms-lrows__opt input { margin-top: 2px; }

.pms-namebar {
  display: flex;
  align-items: stretch;
  gap: var(--space-3);
  flex-wrap: wrap;
}

.pms-namebar__pre {
  display: flex;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  height: var(--control-height);
  padding: 0 var(--space-4);
  border: 1px dashed var(--color-border-soft);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  color: var(--color-fg);
  font-size: var(--font-size-base);
  font-weight: 600;
  word-break: break-all;
}
.pms-namepre__ph {
  color: var(--color-meta);
  font-weight: 400;
}

.pms-namepre__keep {
  margin-right: var(--space-2);
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--color-bg);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  font-weight: 400;
  white-space: nowrap;
}
.pms-namebar__sfx {
  flex: 1 1 0;
  min-width: 0;
  height: var(--control-height);
}

.pjt-sign__empty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding: var(--space-3) var(--space-4);
  border: 1px dashed var(--color-border-soft);
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
}
.pjt-sign__emptytxt {
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}

.pms-fieldwarn {
  margin-top: var(--space-1);
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
  line-height: 1.6;
}

.pms-count {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  white-space: nowrap;
}
.pms-count i {
  margin-left: 2px;
  font-style: normal;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.pms-signrows {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.pms-signrow {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  padding: 10px 12px;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
}
.pms-signrow__ent {
  flex: 0 0 280px;
  min-width: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  word-break: break-all;
}
.pms-signrow__ct {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  word-break: break-all;
}
.pms-signrow--empty {
  display: block;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  background: var(--color-surface);
  border-style: dashed;
}

.pms-rel__act {
  margin-left: auto;
}

.pms-linkbtn {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  color: var(--color-accent);
  cursor: pointer;
  text-align: left;
  word-break: break-all;
}
.pms-linkbtn:hover {
  text-decoration: underline;
}
.pms-bl__note {
  margin-top: var(--space-3);
  color: var(--color-meta);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}

.pms-bl__proj {
  display: block;
  max-width: 300px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
}

.pms-fee__bar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}
.pms-fee__month {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}
.pms-fee__month .input {
  width: 150px;
}
.pms-fee__hint {
  color: var(--color-meta);
  font-size: var(--font-size-xs);
}
.pms-fee__grow {
  flex: 1 1 auto;
}

.pms-fee__ct {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pms-fee__sub {
  margin-left: var(--space-2);
  color: var(--color-meta);
  font-size: var(--font-size-xs);
  font-weight: 400;
}
.pms-fee__ok {
  color: var(--color-muted);
  font-size: var(--font-size-xs);
}
.pms-fee__todo {
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
}
.pms-fee__total {
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}
.pms-fee__total b {
  margin-left: var(--space-2);
  color: var(--color-fg);
  font-size: var(--font-size-base);
}
.pms-fee__warn {
  margin-top: var(--space-3);
  padding: var(--space-3);
  border: 1px dashed var(--color-warning-text);
  border-radius: var(--radius-sm);
  color: var(--color-warning-text);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}
.pms-fee__err {
  padding: var(--space-4);
  color: var(--color-warning-text);
  font-size: var(--font-size-sm);
}

.pms-fee-page .table-wrap {
  max-height: none;
  overflow-x: auto;
}

.pms-pb-note {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
  padding: var(--space-3) var(--space-4);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}
.pms-pb-note svg { flex: none; margin-top: 2px; }
.pms-pb-na { color: var(--color-meta); }

#pms-pb-grain { flex: 0 0 auto; }

.pms-fee-page .pms-card-head .pms-fee__total {
  padding-left: var(--space-3);
  border-left: 1px solid var(--color-border-soft);
}

.pms-feeform__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3) var(--space-4);
}
.pms-feeform__f {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}
.pms-feeform__f > span {
  color: var(--color-muted);
  font-size: var(--font-size-xs);
}
.pms-feeform__f--wide {
  grid-column: 1 / -1;
}
.pms-feeform__chk {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
  color: var(--color-fg-2);
  font-size: var(--font-size-sm);
}
.pms-feeform__tiers {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border-soft);
}
.pms-feeform__tierhd {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  font-weight: 600;
}
.pms-feeform__tt .input {
  min-width: 0;
  padding: 4px 6px;
}

.pms-feeparam .pms-feeform__tierhd {
  margin-top: var(--space-4);
}
.pms-feeparam .table-wrap {
  overflow-x: auto;
}

.pms-feelink .pms-fee__hint {
  display: block;
  line-height: 1.7;
}

.app-shell.is-standalone.is-shop .sidebar { display: flex !important; }
.app-shell.is-standalone.is-shop .page-tabs-bar { display: flex !important; }
.app-shell.is-standalone.is-shop .app-main {
  margin-left: calc(var(--sidebar-width) + var(--shell-inset));
  width: auto;
}
@media (max-width: 768px) {
  .app-shell.is-standalone.is-shop .app-main {
    margin-left: 0;
    width: auto;
  }
}

.shop-pagehint {
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);
  line-height: 1.6;
  color: var(--color-muted);
}

.shop-calc__title {
  font-size: var(--font-size-lg);
  font-weight: 500;
  color: var(--color-fg);
}
.shop-calc__body {
  padding: 0 var(--space-5) var(--space-5);
}
.shop-calc__line {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border-soft);
  font-size: var(--font-size-sm);
}
.shop-calc__line:last-of-type { border-bottom: 0; }
.shop-calc__lab {
  color: var(--color-muted);
  flex: 0 0 220px;
  min-width: 0;
}
.shop-calc__val {
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
}

.shop-calc__line--total { padding-top: var(--space-4); }
.shop-calc__line--total .shop-calc__lab {
  color: var(--color-fg);
  font-weight: 500;
}
.shop-calc__line--total .shop-calc__val {
  font-size: var(--font-size-xl);
  font-weight: 600;
  color: var(--color-accent-text);
}

.shop-calc__tag {
  display: inline-block;
  margin-left: var(--space-2);
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs);
  font-weight: 400;
  line-height: 18px;
  white-space: nowrap;
  background: var(--color-primary-50);
  color: var(--color-primary-700);
}
.shop-calc__note {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
  line-height: 1.7;
  color: var(--color-meta);
}

.shop-num {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.shop-pager {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) 0 var(--space-2);
}
.shop-pager__info {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  font-variant-numeric: tabular-nums;
}

.shop-form {
  padding: var(--space-2) var(--space-5) var(--space-5);
}
.shop-form__row {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
  max-width: 560px;
}
.shop-form__label {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  font-weight: 500;
}
.shop-form__hint {
  max-width: 560px;
  font-size: var(--font-size-xs);
  line-height: 1.7;
  color: var(--color-meta);
}

.shop-lives { display: flex; flex-direction: column; gap: var(--space-5); }
.shop-live__name { font-size: var(--font-size-lg); font-weight: 600; color: var(--color-fg); }
.shop-live__meta {
  margin-left: var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}
.shop-live__warn { color: var(--color-warning-text); }

.shop-tgbar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-3);
}
.shop-tgbar__left { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; flex: 1 1 auto; min-width: 0; }
.shop-tgbar__name { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-fg); }
.shop-tgbar__dept {
  padding: 0 var(--space-2);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-xs);
  color: var(--color-accent);
  background: var(--color-accent-bg);
}
.shop-tgbar__stat { font-size: var(--font-size-sm); color: var(--color-muted); font-variant-numeric: tabular-nums; }

.shop-tgcard { padding: 0; overflow: hidden; }
.shop-tg { --shop-tg-gutter: 52px; }

.shop-tg__head {
  display: grid;
  grid-template-columns: var(--shop-tg-gutter) repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface-2);
}
.shop-tg__corner {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid var(--color-border);
}
.shop-tg__dayhead {
  padding: var(--space-2);
  text-align: center;
  border-left: 1px solid var(--color-border-soft);
  line-height: 1.4;
}
.shop-tg__dayhead b { display: block; font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); color: var(--color-fg); }
.shop-tg__dayhead span { font-size: var(--font-size-xs); color: var(--color-meta); }
.shop-tg__daystat { display: block; font-size: var(--font-size-xs); font-style: normal; color: var(--color-success); }

.shop-tg__body { display: flex; position: relative; }
.shop-tg__gutter {
  flex: 0 0 var(--shop-tg-gutter);
  position: relative;
  border-right: 1px solid var(--color-border);
  background: var(--color-surface-2);
}

.shop-tg__time {
  position: absolute;
  right: var(--space-2);
  transform: translateY(-0.6em);
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  font-variant-numeric: tabular-nums;
}
.shop-tg__area { flex: 1 1 auto; position: relative; min-width: 0; }
.shop-tg__lines { position: absolute; inset: 0; pointer-events: none; }
.shop-tg__lines i {
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid var(--color-border-soft);
}

.shop-tg__lines i:nth-child(4n + 1) { border-top-color: var(--color-border); }
.shop-tg__cols {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.shop-tg__col {
  position: relative;
  border-left: 1px solid var(--color-border-soft);
  cursor: pointer;
}
.shop-tg__col:hover { background: var(--color-primary-50); }

.shop-tg__col:last-child { border-right: 1px solid var(--color-border-soft); }

.shop-tg__block {
  position: absolute;
  left: 2px;
  right: 2px;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
  border-left: 3px solid var(--color-border);
  background: var(--color-surface-2);
  font-size: var(--font-size-xs);
  line-height: 1.35;
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 1px;
  transition: background-color var(--motion-fast) var(--motion-ease-standard);
}
.shop-tg__block:hover { background: var(--color-accent-bg); }
.shop-tg__block--host { border-left-color: var(--color-primary-500); }
.shop-tg__block--ctrl { border-left-color: var(--color-tone-teal-fg); }
.shop-tg__btime { color: var(--color-meta); font-variant-numeric: tabular-nums; }
.shop-tg__bwho { color: var(--color-fg); font-weight: var(--font-weight-medium); }

.shop-tg__orphan {
  position: absolute;
  top: -22px;
  left: 2px;
  right: 2px;
  font-size: var(--font-size-xs);
  color: var(--color-warning-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shop-week-range {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  font-variant-numeric: tabular-nums;
}

.shop-inline { display: flex; gap: var(--space-2); align-items: center; }

.shop-inline--grow .input { flex: 1 1 auto; min-width: 0; }
.shop-wxstep__row .shop-calc__lab { flex: 0 0 46%; }

.shop-shiftedit { display: flex; flex-direction: column; gap: var(--space-2); }
.shop-shiftrow { display: flex; gap: var(--space-2); align-items: center; }
.shop-shiftrow__sep { color: var(--color-meta); }
.shop-shiftedit__hint {
  margin-top: var(--space-2);
  font-size: var(--font-size-xs);
  line-height: 1.7;
  color: var(--color-meta);
}

.shop-tabrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin: var(--space-4) 0 var(--space-3);
}

.shop-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}
@media (max-width: 640px) {
  .shop-grid2 { grid-template-columns: 1fr; }
}

.shop-badge {
  display: inline-block;
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs);
  line-height: 18px;
  background: var(--color-primary-50);
  color: var(--color-primary-700);
  white-space: nowrap;
}
.shop-badge--muted {
  background: var(--color-surface-2);
  color: var(--color-meta);
}
.shop-dash-muted { color: var(--color-meta); font-size: var(--font-size-xs); }

.shop-plan-hint {
  margin-bottom: var(--space-3);
  font-size: var(--font-size-xs);
  line-height: 1.7;
  color: var(--color-meta);
}
.shop-plan-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.shop-plan-ck {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  white-space: nowrap;
}

.shop-plan-bar {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}
.shop-plan-count {
  margin-left: auto;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  white-space: nowrap;
}
.shop-plan-empty {
  padding: var(--space-5);
  text-align: center;
  font-size: var(--font-size-sm);
  color: var(--color-meta);
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
}

.shop-av {
  flex: 0 0 auto;
  width: var(--space-6);
  height: var(--space-6);
  border-radius: var(--radius-pill);
  overflow: hidden;
  background: var(--color-surface-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.shop-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shop-av--empty {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  font-weight: var(--font-weight-medium);
}

.shop-person {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
}
.shop-person__id {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-2);
}
.shop-person__name {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
}
.shop-person__sub {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.shop-person__badge {
  flex: 0 0 auto;
  padding: 0 var(--space-2);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  color: var(--color-meta);
  background: var(--color-surface);
  box-shadow: var(--shadow-ring);
}
.shop-person__badge--gone {
  color: var(--color-danger);
  background: var(--color-surface);
}

.shop-person--gone .shop-person__name,
.shop-person--gone .shop-person__sub { color: var(--color-meta); }
.shop-person--gone .shop-av { opacity: 0.55; }

.shop-pick-list {
  max-height: 46vh;
  overflow-y: auto;
  margin-top: var(--space-2);
}
.shop-pick {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  cursor: pointer;
}
.shop-pick:hover { background: var(--color-surface-2); }
.shop-pick.is-on { background: var(--color-accent-bg); }
.shop-pick.is-used { opacity: 0.5; cursor: not-allowed; }
.shop-pick__name {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  white-space: nowrap;
}
.shop-pick__sub {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.shop-pick__tag {
  flex: 0 0 auto;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  padding: 0 var(--space-2);
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-ring);
}
.shop-pick__tag--hit {
  color: var(--color-accent);
  box-shadow: none;
  background: var(--color-accent-bg);
}

.shop-livetable td,
.shop-livetable th { vertical-align: middle; }
.shop-livetable .shop-livetd__ops { width: 1%; }
.shop-livetable th:nth-child(4),
.shop-livetable th:nth-child(5) { min-width: 150px; }

.shop-livetd__name {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.shop-livetd__tag {
  padding: 0 var(--space-2);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  color: var(--color-meta);
  background: var(--color-surface-2);
}
.shop-livetd__sub {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  margin-top: 2px;
}
.shop-livetd__none { color: var(--color-meta); }
.shop-livetd__warn { color: var(--color-danger); }
.shop-livetd__ops { white-space: nowrap; text-align: right; }
.shop-livetd__ops .btn + .btn { margin-left: var(--space-2); }

.shop-avstack {
  display: inline-flex;
  align-items: center;
}
.shop-avstack__one {
  position: relative;
  width: var(--space-6);
  height: var(--space-6);
  border-radius: var(--radius-pill);
  overflow: hidden;
  background: var(--color-surface-2);
  box-shadow: 0 0 0 2px var(--color-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  margin-left: -6px;
  transition: transform var(--motion-fast) var(--motion-ease-standard);
}
.shop-avstack__one:first-child { margin-left: 0; }
.shop-avstack__one:hover { transform: translateY(-2px); z-index: 1; }
.shop-avstack__one img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shop-avstack__one i { font-style: normal; }

.shop-avstack__gone {
  position: absolute;
  inset: 0;
  border-radius: var(--radius-pill);
  border: 1.5px dashed var(--color-danger);
  opacity: 0.7;
}
.shop-avstack__more {
  width: var(--space-6);
  height: var(--space-6);
  margin-left: -6px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  box-shadow: 0 0 0 2px var(--color-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
}
.shop-avstack__n {
  margin-left: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-meta);
  white-space: nowrap;
}

.shop-shift {
  cursor: pointer;
}
.shop-shift:hover {
  border-color: var(--color-accent-border);
}
.shop-shift__perf {
  display: block;
  width: 100%;
  margin-top: var(--space-1);
  font-size: var(--font-size-xs);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.shop-shift__perf.is-done { color: var(--color-success); }
.shop-shift__perf.is-todo { color: var(--color-warning); }
.shop-shift__perf.is-idle { display: none; }

.shop-shift--extra {
  border-style: dashed;
  opacity: 0.85;
}

.shop-sess__head {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border);
}
.shop-sess__headline {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.shop-sess__plan {
  font-size: var(--font-size-xs);
  color: var(--color-meta);
}
.shop-sess__count {
  margin-left: auto;
  font-size: var(--font-size-xs);
  color: var(--color-meta);
}
.shop-sess__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin: var(--space-2) 0 var(--space-3);
}
.shop-sess__empty {
  padding: var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-meta);
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
}
.shop-sess {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  font-size: var(--font-size-xs);
}
.shop-sess__time { color: var(--color-fg); font-weight: var(--font-weight-medium); }
.shop-sess__who { color: var(--color-fg); }
.shop-sess__num { color: var(--color-fg); margin-left: auto; }
.shop-sess__num--cost { color: var(--color-meta); }
.shop-sess__note {
  flex: 0 0 100%;
  font-size: var(--font-size-xs);
  color: var(--color-warning);
}

.shop-sess--changed {
  background: var(--color-warning-bg);
}
.shop-sess__divider {
  margin: var(--space-3) 0 var(--space-2);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--color-border);
  font-size: var(--font-size-xs);
  color: var(--color-meta);
}
.shop-sess__ck {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  margin-bottom: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.shop-tg__dayhead { position: relative; }
.shop-tg__add {
  position: absolute;
  top: 2px;
  right: 4px;
  width: 18px;
  height: 18px;
  line-height: 1;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  color: var(--color-meta);
  font-size: var(--font-size-xs);
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--motion-fast) var(--motion-ease-standard),
              color var(--motion-fast) var(--motion-ease-standard);
}
.shop-tg__dayhead:hover .shop-tg__add,
.shop-tg__add:focus-visible { opacity: 1; }
.shop-tg__add:hover { color: var(--color-accent); border-color: var(--color-accent-border); }

.shop-tg__hint {
  position: absolute;
  left: 50%;
  top: 40%;
  transform: translate(-50%, -50%);
  z-index: 2;
  pointer-events: none;
  width: min(420px, 80%);
  padding: var(--space-4) var(--space-5);
  text-align: center;
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-raised);
  border: 1px solid var(--color-border);
}
.shop-tg__hint b {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.shop-tg__hint span {
  font-size: var(--font-size-xs);
  line-height: 1.8;
  color: var(--color-meta);
}

.shop-credresult {
  margin-top: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}
.shop-credresult[hidden] { display: none; }
.shop-credresult b { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); }
.shop-credresult.is-ok {
  background: var(--color-success-bg);
  color: var(--color-success-text);
  border: 1px solid var(--color-success);
}
.shop-credresult.is-bad {
  background: var(--color-danger-bg);
  color: var(--color-danger);
  border: 1px solid var(--color-danger-border);
}
.shop-credresult__meta { font-variant-numeric: tabular-nums; opacity: 0.9; }
.shop-credresult__fix { font-weight: var(--font-weight-medium); }

.shop-wx__ok { margin-left: var(--space-2); font-size: var(--font-size-xs); color: var(--color-success); }
.shop-wx__bad { font-size: var(--font-size-xs); color: var(--color-danger); }
.shop-wx__link {
  font-size: var(--font-size-xs);
  color: var(--color-accent);
  word-break: break-all;
}

.shop-toolbox { display: contents; }

.shop-hint {
  margin-top: var(--space-1);
  color: var(--color-muted);
  font-size: var(--font-size-xs);
  line-height: var(--font-line-height-body);
}

.shop-wxops {
  gap: var(--space-1);
  margin: 0;
  justify-content: flex-end;
}
.shop-wxcost {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  max-height: 380px;
  overflow-y: auto;
}
.shop-wxcost__row {
  display: grid;
  grid-template-columns: 64px 1fr 44px;
  align-items: center;
  gap: var(--space-2);
}
.shop-wxcost__date {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  font-variant-numeric: tabular-nums;
}
.shop-wxcost__in { text-align: right; }

.kpi-card--act { cursor: pointer; }
.kpi-card--act:hover { border-color: var(--color-accent-border); }
.kpi-card__more {
  margin-left: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-accent-text);
  font-weight: var(--font-weight-regular);
}

.table tbody td.shop-profit--gain,
.table tfoot td.shop-profit--gain,
.kpi-card__value.shop-profit--gain { color: var(--color-danger-strong); }
.table tbody td.shop-profit--loss,
.table tfoot td.shop-profit--loss,
.kpi-card__value.shop-profit--loss { color: var(--color-success-text); }

.shop-daylink {
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-accent-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  font-variant-numeric: tabular-nums;
  cursor: pointer;
}
.shop-daylink:hover { text-decoration: underline; }

.shop-costinfo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2) var(--space-4);
  padding: var(--space-3);
  margin-bottom: var(--space-3);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  background: var(--color-bg-subtle, transparent);
}
.shop-costinfo__item { min-width: 0; }
.shop-costinfo__k {
  display: block;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-bottom: 2px;
}
.shop-costinfo__v {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  font-variant-numeric: tabular-nums;
  word-break: break-all;
}

.table tbody tr.is-rowopen { cursor: pointer; }
.table tbody tr.is-rowopen:hover > td { background: var(--color-bg-hover, rgba(0, 0, 0, 0.03)); }
.table tbody tr.is-rowopen td button,
.table tbody tr.is-rowopen td a,
.table tbody tr.is-rowopen td select,
.table tbody tr.is-rowopen td input { cursor: default; }
.table tbody tr.is-rowopen td button { cursor: pointer; }

.shop-fold > summary {
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.shop-fold > summary::-webkit-details-marker { display: none; }
.shop-fold > summary::marker { content: ''; }
.shop-fold > summary:hover { background: var(--color-bg-hover, rgba(0, 0, 0, 0.02)); }
.shop-fold__caret {
  display: inline-flex;
  align-items: center;
  margin-left: var(--space-2);
  color: var(--color-muted);
  transition: transform 0.15s ease;
}
.shop-fold[open] > summary .shop-fold__caret { transform: rotate(180deg); }

.shop-brandcell {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.shop-brandcell > b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shop-branddot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  color: #fff;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  line-height: 1;

}
.shop-crumb {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  font-size: var(--font-size-sm);
  color: var(--color-muted);
}
.shop-crumb a {
  color: var(--color-primary);
  text-decoration: none;
}
.shop-crumb a:hover { text-decoration: underline; }
.shop-crumb__sep { color: var(--color-border); }

.shop-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shop-warnblock {
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-danger-bg);
  color: var(--color-danger);
  border: 1px solid var(--color-danger-border);
  font-size: var(--font-size-sm);
  line-height: 1.7;
}

.dtp {
  position: relative;
  display: block;
}

.dtp-trigger {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;

  height: var(--control-height);
  padding: 0 var(--space-4);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  background: var(--input-bg);
  color: var(--color-fg);
  font-size: var(--font-size-base);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--motion-ease-standard),
    box-shadow var(--motion-fast) var(--motion-ease-standard);
}
.dtp-trigger:hover { border-color: var(--input-focus-border); }
.dtp-trigger:focus-visible { outline: none; border-color: var(--input-focus-border); box-shadow: var(--focus-ring); }
.dtp-trigger__icon { color: var(--color-meta); display: inline-flex; flex-shrink: 0; }
.dtp-trigger__text {
  flex: 1;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
}
.dtp-trigger:not(.is-filled) .dtp-trigger__text { color: var(--color-meta); }
.dtp-trigger__clear { display: none; color: var(--color-meta); flex-shrink: 0; }
.dtp-trigger__clear:hover { color: var(--color-danger); }

.dtp-panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: var(--z-dropdown);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  animation: dtp-fade-in var(--motion-base) var(--motion-ease-sheet);
}
@keyframes dtp-fade-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.dtp-panel[hidden] { display: none !important; }

.dtp-panel--date {
  width: 296px;
}

.dtp-panel--month {
  width: 296px;
}
.dtp-panel--month .dtp-panel__body {
  display: block;
}

.dtp-panel--datetime,
.dtp-panel--range {
  display: flex;
  flex-direction: column;
}
.dtp-panel__body {
  display: flex;
}

.dtp-cal {
  flex-shrink: 0;
  padding: var(--space-3);
}
.dtp-panel--date .dtp-cal { width: 100%; }
.dtp-panel--datetime .dtp-cal,
.dtp-panel--range .dtp-cal { width: 296px; }

.dtp-cal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-2);
}
.dtp-cal__title {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  border: none;
  background: transparent;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  user-select: none;
  transition: background var(--motion-fast) var(--motion-ease-standard);
}
.dtp-cal__title:hover { background: var(--color-surface-2); }
.dtp-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-fg-2);
  cursor: pointer;
  transition: background var(--motion-fast) var(--motion-ease-standard);
}
.dtp-nav:hover { background: var(--color-surface-2); color: var(--color-fg); }

.dtp-cal__week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 4px;
}
.dtp-cal__week span {
  text-align: center;
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  padding: 4px 0;
  user-select: none;
}

.dtp-cal__days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.dtp-day {
  height: 34px;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  cursor: pointer;
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  transition: background var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard);
}
.dtp-day:hover { background: var(--color-primary-50); }
.dtp-day.is-out { color: var(--color-meta); opacity: 0.4; }
.dtp-day.is-today { color: var(--color-accent-text); font-weight: var(--font-weight-semibold); }
.dtp-day.is-picked { background: var(--color-accent); color: var(--color-accent-on); font-weight: var(--font-weight-medium); }
.dtp-day.is-picked:hover { background: var(--color-accent-hover); }
.dtp-day.is-holiday:not(.is-picked) { color: var(--color-danger); }

.dtp-month-panel {
  padding: var(--space-3);
  width: 100%;
}
.dtp-month-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-2);
}
.dtp-month-panel__year {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  user-select: none;
}
.dtp-month-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-fg-2);
  cursor: pointer;
  transition: background var(--motion-fast) var(--motion-ease-standard);
}
.dtp-month-nav:hover { background: var(--color-surface-2); color: var(--color-fg); }
.dtp-month-panel__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-2);
}
.dtp-month-item {
  height: 40px;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: background var(--motion-fast) var(--motion-ease-standard),
    color var(--motion-fast) var(--motion-ease-standard);
}
.dtp-month-item:hover { background: var(--color-primary-50); }
.dtp-month-item.is-active {
  background: var(--color-accent);
  color: var(--color-accent-on);
  font-weight: var(--font-weight-medium);
}
.dtp-month-item.is-active:hover { background: var(--color-accent-hover); }

.dtp-day.is-in-range { background: var(--color-primary-50); border-radius: 0; }
.dtp-day.is-range-start {
  background: var(--color-accent);
  color: var(--color-accent-on);
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
}
.dtp-day.is-range-end {
  background: var(--color-accent);
  color: var(--color-accent-on);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.dtp-day.is-range-start.is-range-end {
  border-radius: var(--radius-sm);
}

.dtp-times {
  width: 112px;
  border-left: 1px solid var(--color-border-soft);
  display: flex;
  flex-direction: column;
}

.dtp-time-input {
  display: block;
  width: 100%;
  height: 28px;
  padding: 0 var(--space-2);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  background: var(--input-bg);
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  text-align: center;
  flex-shrink: 0;
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  outline: none;
  transition: border-color var(--motion-fast) var(--motion-ease-standard);
}
.dtp-time-input:focus { border-color: var(--input-focus-border); box-shadow: var(--focus-ring); }
.dtp-time-input:disabled { opacity: 0.4; cursor: not-allowed; }
.dtp-time-input::placeholder { color: var(--color-meta); }
.dtp-times .dtp-time-input { margin: var(--space-2); width: auto; }
.dtp-range-col .dtp-time-input { margin-bottom: var(--space-1); }
.dtp-times__list {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-1) 0;
  max-height: 300px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.dtp-times__list::-webkit-scrollbar { width: 4px; }
.dtp-times__list::-webkit-scrollbar-thumb { background: var(--color-gray-400); border-radius: 2px; }
.dtp-times__list::-webkit-scrollbar-track { background: transparent; }

.dtp-time-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 var(--space-2);
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-fg);
  font-size: var(--font-size-sm);
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  width: 100%;
  transition: background var(--motion-fast) var(--motion-ease-standard);
}
.dtp-time-item:hover { background: var(--color-surface-2); }
.dtp-time-item.is-active {
  background: var(--color-accent);
  color: var(--color-accent-on);
  font-weight: var(--font-weight-medium);
}
.dtp-time-item.is-active:hover { background: var(--color-accent-hover); }
.dtp-time-item.is-disabled {
  color: var(--color-meta);
  opacity: 0.35;
  cursor: not-allowed;
}
.dtp-time-item.is-disabled:hover { background: transparent; }

.dtp-range-panel {
  width: 224px;
  border-left: 1px solid var(--color-border-soft);
  display: flex;
  flex-direction: column;
  padding: var(--space-3);
  gap: var(--space-2);
}
.dtp-range-tbd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-1) 0;
}
.dtp-range-tbd__label {
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  user-select: none;
}
.dtp-range-cols {
  display: flex;
  gap: var(--space-2);
  flex: 1;
  min-height: 0;
}
.dtp-range-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.dtp-range-col__label {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  margin-bottom: var(--space-1);
  text-align: center;
  user-select: none;
}
.dtp-range-col__list {
  flex: 1;
  overflow-y: auto;
  max-height: 240px;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.dtp-range-col__list::-webkit-scrollbar { width: 4px; }
.dtp-range-col__list::-webkit-scrollbar-thumb { background: var(--color-gray-400); border-radius: 2px; }
.dtp-range-col__list::-webkit-scrollbar-track { background: transparent; }
.dtp-range-col__list .dtp-time-item { height: 30px; font-size: var(--font-size-xs); }

.dtp-range-cols.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}

.dtp-foot {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-2) var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  background: var(--color-surface);
}
.dtp-foot__btn {
  height: 28px;
  padding: 0 var(--space-3);
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: background var(--motion-fast) var(--motion-ease-standard);
  white-space: nowrap;
}
.dtp-foot__today { color: var(--color-accent-text); }
.dtp-foot__today:hover { background: var(--color-primary-50); }
.dtp-foot__clear { color: var(--color-danger); margin-left: auto; }
.dtp-foot__clear:hover { background: var(--color-danger-bg); }
.dtp-foot__save {
  background: var(--color-accent);
  color: var(--color-accent-on);
  font-weight: var(--font-weight-medium);
  padding: 0 var(--space-4);
}
.dtp-foot__save:hover { background: var(--color-accent-hover); }
.dtp-foot__dur {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  font-feature-settings: "tnum", "lnum";
  font-variant-numeric: tabular-nums;
  margin-left: var(--space-2);
}

@media (max-width: 520px) {
  .dtp-panel--datetime,
  .dtp-panel--range {
    position: fixed;
    left: 8px;
    right: 8px;
    top: auto;
    bottom: 8px;
    width: auto;
    max-height: 80vh;
  }
  .dtp-panel--datetime .dtp-cal,
  .dtp-panel--range .dtp-cal { width: 100%; border-bottom: 1px solid var(--color-border-soft); }
  .dtp-panel__body { flex-direction: column; }
  .dtp-times { width: 100%; border-left: none; border-top: 1px solid var(--color-border-soft); }
  .dtp-range-panel { width: 100%; border-left: none; border-top: 1px solid var(--color-border-soft); }
  .dtp-times__list { max-height: 160px; }
  .dtp-range-col__list { max-height: 160px; }
}

@media (max-width: 768px) {
  .dtp-trigger { height: 36px; }
}

.pc-matrix {
  display: grid;

  grid-template-columns: 104px minmax(0, 1fr) minmax(0, 1fr);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.pc-matrix__corner,
.pc-matrix__head {
  background: var(--color-surface-2);
  padding: var(--space-3);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  border-bottom: 1px solid var(--color-border);
}

.pc-matrix__corner {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  color: var(--color-muted);
}
.pc-matrix__head {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  letter-spacing: .02em;
  text-align: center;
}

.pc-matrix__head { box-shadow: inset 0 -2px 0 var(--color-primary-500); }
.pc-matrix__head--theirs { box-shadow: inset 0 -2px 0 var(--color-border); }

.pc-matrix__head,
.pc-matrix__cell { border-left: 1px solid transparent; }
.pc-matrix__head--theirs,
.pc-matrix__cell--theirs { border-left-color: var(--color-border); }

.pc-matrix__lbl {
  padding: var(--space-3) var(--space-2);
  background: var(--color-surface-2);
  border-bottom: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
  line-height: 1.45;
  color: var(--color-muted);
}

.pc-matrix__unit { font-size: 10px; color: var(--color-muted); margin-left: 2px; }

.pc-matrix__lbl {
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.pc-matrix__lbl { font-size: var(--font-size-xs); color: var(--color-muted); }
.pc-tip {
  position: static;
  flex: none;
  width: 16px;
  height: 16px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-muted);
  font-size: 10px;
  line-height: 1;
  cursor: pointer;
  font-family: inherit;
}
.pc-tip:hover, .pc-tip:focus-visible {
  border-color: var(--color-primary-500);
  color: var(--color-primary-500);
  outline: none;
}
.pc-tip.is-open {
  border-color: var(--color-primary-500);
  background: var(--color-primary-500);
  color: #fff;
}

.pc-tip-pop {
  position: fixed;
  z-index: 900;
  max-width: 320px;
  padding: var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg));
  font-size: var(--font-size-xs);
  line-height: 1.7;
  color: var(--color-fg-2);

  white-space: pre-line;
}
.pc-tip-pop[hidden] { display: none; }

.pc-tip-pop::before {
  content: '';
  position: absolute;
  top: -5px;
  width: 9px;
  height: 9px;
  background: var(--color-surface);
  border-left: 1px solid var(--color-border);
  border-top: 1px solid var(--color-border);
  transform: rotate(45deg);
}

.pc-matrix__cell {
  min-width: 0;
  padding: var(--space-3);
  border-bottom: 1px solid var(--color-border-soft);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  justify-content: flex-start;
}

.pc-matrix > div:nth-last-child(-n+3) { border-bottom: 0; }

.pc-matrix__tbl { table-layout: fixed; }

.pc-matrix__tbl thead th { white-space: nowrap; }
.pc-matrix__tbl .pc-col-qty { width: 62px; }
.pc-matrix__tbl .pc-col-price { width: 86px; }
.pc-matrix__tbl .pc-col-anchor { width: 52px; }
.pc-matrix__tbl .pc-col-del { width: 34px; }

.pc-static {

  height: 44px;
  display: flex;
  align-items: center;
  padding: 0 var(--space-3);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  color: var(--color-fg);
  font-size: var(--font-size-base);
}
.pc-static--empty { color: var(--color-muted); }

.pc-radio-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  height: 44px;
}
.pc-radio {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--font-size-sm);
  color: var(--color-fg);
  cursor: pointer;
}
.pc-radio span { font-size: var(--font-size-xs); color: var(--color-muted); }

@media (max-width: 900px) {
  .pc-matrix__corner { display: none; }
  .pc-matrix__lbl {
    grid-column: 1 / -1;
    border-top: 1px solid var(--color-border);
  }
  .pc-matrix__cell { padding: var(--space-3) var(--space-2); }
}

.pc-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--space-3);
}
@media (max-width: 640px) {
  .pc-grid { grid-template-columns: minmax(0, 1fr); }
}
.pc-field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.pc-field .sf-label {
  display: flex;
  align-items: center;
  min-height: 22px;
  margin-bottom: var(--space-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pc-field__hint {
  margin-top: var(--space-1);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  line-height: 1.5;
}

.input.is-num,
.pc-table input.is-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.pc-subsidy {
  height: 44px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 var(--space-1);
  font-size: var(--font-size-base);
  color: var(--color-fg-2);
  line-height: 1.3;
}
.pc-subsidy b { color: var(--color-primary-500); font-variant-numeric: tabular-nums; }

.pc-subsidy.is-zero b { color: var(--color-muted); }

.sf-card.pc-card { max-width: none; }

.pc-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin-top: var(--space-3);
}
.pc-table th {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-muted);
  text-align: left;
  padding: 0 var(--space-3) var(--space-2) 0;
  border-bottom: 1px solid var(--color-border-soft);
  white-space: nowrap;
}
.pc-table td {

  padding: var(--space-3) var(--space-3) var(--space-3) 0;
  border-bottom: 1px solid var(--color-border-soft);
  vertical-align: top;
}

.pc-table tr:last-child td { border-bottom: 0; }
.pc-table th:last-child, .pc-table td:last-child { padding-right: 0; }
.pc-table input.input { width: 100%; }
.pc-table th.is-num, .pc-table td.is-num { text-align: right; }
.pc-table th.is-center, .pc-table td.is-center { text-align: center; }
.pc-table td.is-num, .pc-table--ro td.is-num { font-variant-numeric: tabular-nums; color: var(--color-fg-2); }

.pc-prod { display: flex; gap: var(--space-3); align-items: flex-start; min-width: 0; }
.pc-prod__img {
  flex: none;
  width: 44px; height: 44px;
  border-radius: var(--radius-sm);
  object-fit: cover;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
}
.pc-prod__img--empty {
  display: flex; align-items: center; justify-content: center;
  color: var(--color-muted);
}
.pc-prod__main { min-width: 0; flex: 1; }
.pc-prod__name { color: var(--color-fg); font-size: var(--font-size-sm); line-height: 1.5; }
.pc-prod__meta { font-size: var(--font-size-xs); color: var(--color-muted); margin-top: 2px; }

.pc-search { position: relative; }
.pc-search__panel {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 30;
  margin-top: 2px;
  max-height: 264px;
  overflow-y: auto;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md));
  padding: var(--space-1) 0;
}
.pc-search__count {
  padding: var(--space-1) var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  border-bottom: 1px solid var(--color-border-soft);
  margin-bottom: 2px;
}
.pc-search__empty { padding: var(--space-3); font-size: var(--font-size-sm); color: var(--color-muted); }
.pc-search__item {
  display: block;
  width: 100%;
  text-align: left;
  padding: var(--space-2) var(--space-3);
  font-size: var(--font-size-sm);
  font-family: inherit;
  color: var(--color-fg);
  background: transparent;
  border: 0;
  cursor: pointer;
  line-height: 1.5;
}
.pc-search__item:hover { background: var(--color-surface-2); }
.pc-search__item.is-cur { color: var(--color-primary-500); font-weight: var(--font-weight-medium); }

.pc-table tr.pc-row--check td:first-child { box-shadow: inset 3px 0 0 var(--color-danger); }
.pc-table tr.pc-row--check .pc-ti[data-k="name"] { border-color: var(--color-danger); }

.pc-table tr.pc-row--anchor td { background: var(--color-primary-50)); }
.pc-table tr.pc-row--anchor td:first-child { box-shadow: inset 3px 0 0 var(--color-primary-500); }
.pc-hint {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  margin-top: 4px;
}
.pc-hint__txt { font-size: var(--font-size-xs); color: var(--color-danger-strong); font-weight: var(--font-weight-medium); }
.pc-cand {
  font-size: var(--font-size-xs);
  padding: 0 6px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-border-soft);
  background: transparent;
  color: var(--color-fg-2);
  cursor: pointer;
  font-family: inherit;
}
.pc-cand:hover { border-color: var(--color-primary-500); color: var(--color-primary-500); }

.pc-paste { margin-top: var(--space-3); }.pc-paste__row {
  display: flex;
  gap: var(--space-2);
  align-items: center;
}
.pc-paste__row .input { flex: 1; min-width: 0; }
.pc-paste__row .btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 640px) {
  .pc-paste__row { flex-wrap: wrap; }
  .pc-paste__row .btn { width: 100%; justify-content: center; }
}
.pc-parse-note {
  margin-top: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  background: var(--color-surface-2);
  color: var(--color-fg-2);
}

.pc-parse-note--warn {
  background: transparent;
  box-shadow: inset 3px 0 0 var(--color-danger);
  color: var(--color-danger-strong);
}

.pc-sub-panel { margin-top: var(--space-4); }
.pc-sub-panel__head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  cursor: pointer;
  user-select: none;
}
.pc-sub-panel__head:hover { background: var(--color-surface-2); }
.pc-sub-panel__title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  flex: none;
}
.pc-sub-panel__desc {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pc-sub-panel__caret { margin-left: auto; flex: none; font-size: var(--font-size-xs); color: var(--color-primary-500); }
.pc-sub-panel__inner { padding: 0 var(--space-4) var(--space-4); }
@media (max-width: 768px) {
  .pc-sub-panel__desc { display: none; }
}

.pc-field__hint--warn { color: var(--color-danger-strong); font-weight: var(--font-weight-medium); }

.pc-tag {
  display: inline-block;
  padding: 0 6px;
  border-radius: var(--radius-pill);
  font-size: var(--font-size-xs);
  background: var(--color-primary-50);
  color: var(--color-primary-500);
}
.pc-tag--gift { background: var(--color-surface-2); color: var(--color-muted); }

.pc-caliber {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
}
.pc-caliber__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.pc-caliber__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
}
.pc-caliber__note { font-size: var(--font-size-xs); color: var(--color-muted); line-height: 1.5; }
.pc-caliber__opts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

@media (max-width: 900px) {
  .pc-caliber__opts { grid-template-columns: minmax(0, 1fr); }
}
.pc-opt {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  cursor: pointer;
}
.pc-opt:hover { border-color: var(--color-primary-300)); }
.pc-opt.is-on {
  border-color: var(--color-primary-500);
  background: var(--color-primary-50));

  box-shadow: inset 0 0 0 1px var(--color-primary-500);
}
.pc-opt > input[type="radio"] { flex: none; margin-top: 3px; }
.pc-opt__body { min-width: 0; }
.pc-opt__t {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
}
.pc-opt.is-on .pc-opt__t { color: var(--color-primary-600)); }
.pc-opt__badge {
  font-style: normal;
  font-size: 10px;
  font-weight: var(--font-weight-regular);
  padding: 1px 6px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  color: var(--color-muted);
  white-space: nowrap;
}
.pc-opt.is-on .pc-opt__badge {
  background: var(--color-primary-100));
  color: var(--color-primary-600));
}

.pc-opt__d {
  display: block;
  margin-top: 3px;
  font-size: var(--font-size-xs);
  color: var(--color-fg-2);
  line-height: 1.5;
}

.pc-hero {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
  background: var(--color-surface-2);
}

.pc-hero--ours { border-color: var(--color-success); background: var(--color-success-bg)); }
.pc-hero--theirs { border-color: var(--color-danger); background: var(--color-danger-bg)); }
.pc-hero__verdict {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  text-align: center;
  margin-bottom: var(--space-3);
}
.pc-hero--ours .pc-hero__verdict { color: var(--color-success); }
.pc-hero--theirs .pc-hero__verdict { color: var(--color-danger); }
.pc-hero--same .pc-hero__verdict { color: var(--color-fg-2); }
.pc-hero__row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: var(--space-3);
  align-items: center;
}
.pc-hero__side {
  text-align: center;
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
}
.pc-hero__who { font-size: var(--font-size-xs); color: var(--color-muted); }

.pc-hero__val {
  font-size: 28px;
  font-weight: var(--font-weight-semibold);
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
  color: var(--color-fg);
}
.pc-hero__unit { font-size: var(--font-size-xs); color: var(--color-muted); }

.pc-hero__anchor { font-size: 11px; color: var(--color-muted); margin-top: 2px; line-height: 1.4; }

.pc-hero__calc {
  margin-top: var(--space-3);
  padding-top: var(--space-2);
  border-top: 1px dashed var(--color-border);
  font-size: var(--font-size-xs);
  line-height: 1.75;
  color: var(--color-fg-2);
  text-align: left;
}
.pc-hero__calc-t {
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  margin-bottom: 2px;
}
.pc-hero__calc-note { color: var(--color-muted); margin-bottom: var(--space-1); }
.pc-hero__calc-row { display: flex; gap: var(--space-2); }

.pc-hero__calc-fml { min-width: 0; font-variant-numeric: tabular-nums; }
.pc-hero__calc-who { flex: none; width: 28px; color: var(--color-muted); }
.pc-hero__calc b { color: var(--color-fg); font-weight: var(--font-weight-medium); }

.pc-hero__side.is-good { border-color: var(--color-success); }
.pc-hero__side.is-good .pc-hero__val { color: var(--color-success); }
.pc-hero__side.is-bad { border-color: var(--color-danger); }
.pc-hero__side.is-bad .pc-hero__val { color: var(--color-danger); }
.pc-hero__mid { text-align: center; min-width: 96px; }
.pc-hero__diff {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-fg);
  font-variant-numeric: tabular-nums;
}
.pc-hero__rate { font-size: var(--font-size-xs); color: var(--color-muted); }
.pc-hero__caliber {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
  color: var(--color-muted);
  text-align: center;
}
@media (max-width: 640px) {

  .pc-hero__val { font-size: 22px; }
  .pc-hero__row { gap: var(--space-2); }
  .pc-hero__mid { min-width: 64px; }
}

.pc-cmp {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-sm);
}
.pc-cmp th {
  text-align: left;
  font-weight: var(--font-weight-medium);
  color: var(--color-muted);
  padding: var(--space-2) var(--space-3) var(--space-2) 0;
  border-bottom: 1px solid var(--color-border-soft);
  font-size: var(--font-size-xs);
}
.pc-cmp th.is-num { text-align: right; }
.pc-cmp td {
  padding: var(--space-3) var(--space-3) var(--space-3) 0;
  border-bottom: 1px solid var(--color-border-soft);
  color: var(--color-fg);
  vertical-align: top;
}
.pc-cmp tr:last-child td, .pc-cmp tr:last-child th { border-bottom: 0; }
.pc-cmp th:last-child, .pc-cmp td:last-child { padding-right: 0; }
.pc-cmp td.is-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
}
.pc-cmp__hint { font-size: 11px; color: var(--color-muted); margin-top: 2px; font-weight: var(--font-weight-regular); }
.pc-cmp__diff { font-size: var(--font-size-xs); color: var(--color-fg-2); white-space: nowrap; }
.pc-cmp__diff.is-dim { color: var(--color-muted); }

.pc-cmp__main th, .pc-cmp__main td { background: var(--color-primary-50)); }
.pc-cmp__main th:first-child {
  border-left: 3px solid var(--color-primary-500);
  padding-left: var(--space-3);
}
.pc-cmp__star { color: var(--color-primary-500); }

.pc-cmp__badge {
  font-style: normal;
  font-size: 10px;
  font-weight: var(--font-weight-regular);
  margin-left: 5px;
  padding: 1px 5px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  color: var(--color-muted);
  white-space: nowrap;
}
.pc-cmp__main .pc-cmp__badge { background: var(--color-primary-100)); color: var(--color-primary-600)); }

.pc-cmp__ref th, .pc-cmp__ref td { opacity: .62; }
.pc-cmp__sep th, .pc-cmp__sep td { border-top: 1px solid var(--color-border); }

.pc-cmp td.is-good { color: var(--color-success); }
.pc-cmp td.is-bad { color: var(--color-danger); }

.pc-callout {
  display: flex;
  gap: var(--space-2);
  align-items: baseline;
  margin-top: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  background: var(--color-surface-2);
  color: var(--color-fg-2);
}
.pc-callout__k { flex: none; font-weight: var(--font-weight-medium); color: var(--color-fg); }
.pc-callout--action { background: var(--color-primary-50)); }
.pc-callout--action .pc-callout__k { color: var(--color-primary-500); }

.pc-callout--warn {
  background: transparent;
  box-shadow: inset 3px 0 0 var(--color-danger);
  color: var(--color-danger-strong);
}
.pc-callout--warn .pc-callout__k { color: var(--color-danger-strong); }

.pc-duo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--space-3);
}
@media (max-width: 900px) {
  .pc-duo { grid-template-columns: minmax(0, 1fr); }
}
.pc-duo__f { min-width: 0; }
.pc-duo__k {
  display: block;
  font-size: 11px;
  line-height: 1.4;
  color: var(--color-muted);
  margin-bottom: 3px;
  white-space: nowrap;
}

.pc-duo__f .pc-static,
.pc-duo__f .pc-subsidy,
.pc-duo__f .input { width: 100%; }

.pc-auto {
  height: 44px;
  display: flex;
  align-items: center;
  padding: 0 var(--space-3);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  color: var(--color-fg);
  font-size: var(--font-size-base);
  font-variant-numeric: tabular-nums;
}
.pc-auto--empty { color: var(--color-muted); }

.pc-talk { margin-top: var(--space-4); }
.pc-talk__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--font-size-sm);
  color: var(--color-fg-2);
  margin-bottom: var(--space-2);
}
.pc-talk__body {
  margin: 0;
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  line-height: 1.8;
  color: var(--color-fg);
  white-space: pre-wrap;
  word-break: break-word;
  font-family: inherit;
}

