/* 高定 UI · 10 条铁律（后台/商家台共用 · bing） */
:root{
  --ui-ease-ink:cubic-bezier(.215,.61,.355,1);
  --ui-ease-snap:cubic-bezier(.2,.9,.2,1);
  --ui-ease-pop:cubic-bezier(.34,1.56,.64,1);
  --ui-surface-0:#f5f5f3;
  --ui-surface-1:#fcfcfb;
  --ui-surface-2:#f0f0ee;
  --ui-ink:#1c1c1a;
  --ui-muted:#6b6b66;
  --ui-fw-regular:400;
  --ui-fw-medium:500;
  --ui-fw-semibold:600;
  --ui-fw-bold:700;
  --ui-ring:0 0 0 1px rgba(28,28,26,.06), 0 0 0 4px rgba(28,28,26,.04);
  --ui-ring-focus:0 0 0 1px rgba(var(--mc-primary-rgb,43,109,229),.55), 0 0 0 4px rgba(var(--mc-primary-rgb,43,109,229),.14);
}

.tabular-nums,
.ov-kpi .v,.cs-hero-item .val,.cs-biz .num,.mv-kpi .v,.adm-stat .v,
.mon-main .table td:has(.price),.price,.cs-asset b,.cs-sys b{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

.mi,.inline-ico,i.mi,svg.inline-ico{vertical-align:-0.125em}

.mon-main p,.mon-main .adm-hint,.cs-biz .sub,.ov-panel-hd p,.auth-note{text-wrap:pretty}

.ui-layer-0{background:var(--ui-surface-0,#f5f5f3);border:0 !important;box-shadow:none !important}
.ui-layer-1{background:var(--ui-surface-1,#fcfcfb);border:0 !important;box-shadow:none !important}
.ui-layer-2{background:var(--ui-surface-2,#f0f0ee);border:0 !important;box-shadow:none !important}

.input:focus,select.input:focus,textarea.input:focus,
.mon-main .input:focus,.mon-main select.input:focus,.mon-main textarea.input:focus,
.auth-field .input:focus{
  outline:none !important;
  border-color:transparent !important;
  box-shadow:var(--ui-ring-focus) !important;
}

.input,select.input,textarea.input,.mon-main .input,.mon-main select.input,.mon-main textarea.input{
  border:0 !important;
  background:var(--theme-surface-2,var(--ui-surface-2)) !important;
  box-shadow:var(--ui-ring);
  transition:box-shadow .2s var(--ui-ease-ink), background .2s ease;
}

.ui-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s var(--ui-ease-ink)}
.ui-collapse.is-open{grid-template-rows:1fr}
.ui-collapse > .ui-collapse-inner{overflow:hidden;min-height:0}

@keyframes uiInkChar{
  from{opacity:0;filter:blur(6px);transform:translateY(.08em)}
  to{opacity:1;filter:blur(0);transform:none}
}
.ui-ink-stream{display:inline}
.ui-ink-stream .ch{
  display:inline-block;
  opacity:0;
  animation:uiInkChar 90ms var(--ui-ease-ink) forwards;
}
.ui-ok-mark{display:inline;opacity:0;color:var(--mc-ok,#059669);font-weight:700}
.ui-ink-stream .ch:nth-child(1){animation-delay:0ms}
.ui-ink-stream .ch:nth-child(2){animation-delay:30ms}
.ui-ink-stream .ch:nth-child(3){animation-delay:60ms}
.ui-ink-stream .ch:nth-child(4){animation-delay:90ms}
.ui-ink-stream .ch:nth-child(5){animation-delay:120ms}
.ui-ink-stream .ch:nth-child(6){animation-delay:150ms}
.ui-ink-stream .ch:nth-child(7){animation-delay:180ms}
.ui-ink-stream .ch:nth-child(8){animation-delay:210ms}
.ui-ink-stream .ch:nth-child(9){animation-delay:240ms}
.ui-ink-stream .ch:nth-child(10){animation-delay:270ms}
.ui-ink-stream .ch:nth-child(n+11){animation-delay:calc(270ms + (var(--i,0) * 30ms))}

@keyframes uiNumIn{
  from{opacity:0;filter:blur(5px);transform:translateY(6px)}
  to{opacity:1;filter:blur(0);transform:none}
}
.ui-num-in{
  animation:uiNumIn .55s var(--ui-ease-ink) both;
  font-variant-numeric:tabular-nums;
}

@keyframes uiGridIn{
  from{opacity:0;transform:translateY(10px) scale(.985);filter:blur(4px)}
  to{opacity:1;transform:none;filter:blur(0)}
}
.ui-grid-stagger > *{animation:uiGridIn .48s var(--ui-ease-ink) both}
.ui-grid-stagger > *:nth-child(1){animation-delay:20ms}
.ui-grid-stagger > *:nth-child(2){animation-delay:50ms}
.ui-grid-stagger > *:nth-child(3){animation-delay:80ms}
.ui-grid-stagger > *:nth-child(4){animation-delay:110ms}
.ui-grid-stagger > *:nth-child(5){animation-delay:140ms}
.ui-grid-stagger > *:nth-child(6){animation-delay:170ms}
.ui-grid-stagger > *:nth-child(7){animation-delay:200ms}
.ui-grid-stagger > *:nth-child(8){animation-delay:230ms}
.ui-grid-stagger > *:nth-child(n+9){animation-delay:260ms}

.ui-snap{transition:transform .18s var(--ui-ease-snap), box-shadow .18s ease;will-change:transform}
.ui-snap:active{transform:scale(.985)}
.ui-pop{transition:transform .42s var(--ui-ease-pop)}
.ui-pop:active{transform:scale(.92)}
.ui-pop.is-pop{animation:uiPopBounce .55s var(--ui-ease-pop)}
@keyframes uiPopBounce{
  0%{transform:scale(1)}
  35%{transform:scale(1.18)}
  60%{transform:scale(.94)}
  100%{transform:scale(1)}
}

.ui-feedback-ok{position:relative}
.ui-feedback-ok::after{
  content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:inherit;border-radius:inherit;opacity:0;pointer-events:none;
  transition:opacity .35s var(--ui-ease-ink);
  color:var(--mc-ok,#059669);font-weight:700;
}
.ui-feedback-ok.is-done::after{opacity:1;animation:uiFeedbackFade 2.5s var(--ui-ease-ink) forwards}
@keyframes uiFeedbackFade{
  0%,70%{opacity:1}
  100%{opacity:0}
}

/* 3. 暗色补偿：字重悄悄减约 40，防白字发胖 */
html[data-theme-dark="1"],
html.theme-is-dark,
body.theme-dark,
.mon-shell[data-dark="1"]{
  --ui-fw-regular:360;
  --ui-fw-medium:460;
  --ui-fw-semibold:560;
  --ui-fw-bold:660;
  font-weight:var(--ui-fw-regular);
}
html[data-theme-dark="1"] .mc-page-title,
html[data-theme-dark="1"] .ov-kpi .v,
html[data-theme-dark="1"] .cs-hero-item .val,
html.theme-is-dark .mc-page-title,
body.theme-dark .mc-page-title,
.mon-shell[data-dark="1"] .mc-page-title{
  font-weight:var(--ui-fw-bold);
}
html[data-theme-dark="1"] .btn,
html.theme-is-dark .btn,
body.theme-dark .btn,
.mon-shell[data-dark="1"] .btn{
  font-weight:var(--ui-fw-semibold);
}

@media (prefers-reduced-motion:reduce){
  .ui-ink-stream .ch,.ui-num-in,.ui-grid-stagger > *,.ui-pop.is-pop{animation:none !important;opacity:1;filter:none;transform:none}
  .ui-collapse{transition:none}
}
